blob: cd85a39eb5007d86133ed6c4737c09eb0f338467 [file] [log] [blame]
Bu Sun Kim65020912020-05-20 12:08:20 -07001<html><body>
2<style>
3
4body, h1, h2, h3, div, span, p, pre, a {
5 margin: 0;
6 padding: 0;
7 border: 0;
8 font-weight: inherit;
9 font-style: inherit;
10 font-size: 100%;
11 font-family: inherit;
12 vertical-align: baseline;
13}
14
15body {
16 font-size: 13px;
17 padding: 1em;
18}
19
20h1 {
21 font-size: 26px;
22 margin-bottom: 1em;
23}
24
25h2 {
26 font-size: 24px;
27 margin-bottom: 1em;
28}
29
30h3 {
31 font-size: 20px;
32 margin-bottom: 1em;
33 margin-top: 1em;
34}
35
36pre, code {
37 line-height: 1.5;
38 font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
39}
40
41pre {
42 margin-top: 0.5em;
43}
44
45h1, h2, h3, p {
46 font-family: Arial, sans serif;
47}
48
49h1, h2, h3 {
50 border-bottom: solid #CCC 1px;
51}
52
53.toc_element {
54 margin-top: 0.5em;
55}
56
57.firstline {
58 margin-left: 2 em;
59}
60
61.method {
62 margin-top: 1em;
63 border: solid 1px #CCC;
64 padding: 1em;
65 background: #EEE;
66}
67
68.details {
69 font-weight: bold;
70 font-size: 14px;
71}
72
73</style>
74
75<h1><a href="dlp_v2.html">Cloud Data Loss Prevention (DLP) API</a> . <a href="dlp_v2.projects.html">projects</a> . <a href="dlp_v2.projects.locations.html">locations</a> . <a href="dlp_v2.projects.locations.content.html">content</a></h1>
76<h2>Instance Methods</h2>
77<p class="toc_element">
Bu Sun Kimd059ad82020-07-22 17:02:09 -070078 <code><a href="#deidentify">deidentify(parent, body=None, x__xgafv=None)</a></code></p>
Bu Sun Kim65020912020-05-20 12:08:20 -070079<p class="firstline">De-identifies potentially sensitive info from a ContentItem.</p>
80<p class="toc_element">
Bu Sun Kimd059ad82020-07-22 17:02:09 -070081 <code><a href="#inspect">inspect(parent, body=None, x__xgafv=None)</a></code></p>
Bu Sun Kim65020912020-05-20 12:08:20 -070082<p class="firstline">Finds potentially sensitive info in content.</p>
83<p class="toc_element">
Bu Sun Kimd059ad82020-07-22 17:02:09 -070084 <code><a href="#reidentify">reidentify(parent, body=None, x__xgafv=None)</a></code></p>
Bu Sun Kim65020912020-05-20 12:08:20 -070085<p class="firstline">Re-identifies content that has been de-identified.</p>
86<h3>Method Details</h3>
87<div class="method">
Bu Sun Kimd059ad82020-07-22 17:02:09 -070088 <code class="details" id="deidentify">deidentify(parent, body=None, x__xgafv=None)</code>
Bu Sun Kim65020912020-05-20 12:08:20 -070089 <pre>De-identifies potentially sensitive info from a ContentItem.
90This method has limits on input size and output size.
91See https://cloud.google.com/dlp/docs/deidentify-sensitive-data to
92learn more.
93
94When no InfoTypes or CustomInfoTypes are specified in this request, the
95system will automatically choose what detectors to run. By default this may
96be all types, but may change over time as detectors are updated.
97
98Args:
Bu Sun Kimd059ad82020-07-22 17:02:09 -070099 parent: string, Parent resource name.
100- Format:projects/[PROJECT-ID]
101- Format:projects/[PROJECT-ID]/locations/[LOCATION-ID] (required)
Bu Sun Kim65020912020-05-20 12:08:20 -0700102 body: object, The request body.
103 The object takes the form of:
104
105{ # Request to de-identify a list of items.
106 &quot;item&quot;: { # Container structure for the content to inspect. # The item to de-identify. Will be treated as text.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700107 &quot;value&quot;: &quot;A String&quot;, # String data to inspect or redact.
Bu Sun Kim65020912020-05-20 12:08:20 -0700108 &quot;byteItem&quot;: { # Container for bytes to inspect or redact. # Content data to inspect or redact. Replaces `type` and `data`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700109 &quot;data&quot;: &quot;A String&quot;, # Content data to inspect or redact.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700110 &quot;type&quot;: &quot;A String&quot;, # The type of data stored in the bytes string. Default will be TEXT_UTF8.
Bu Sun Kim65020912020-05-20 12:08:20 -0700111 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700112 &quot;table&quot;: { # Structured content to inspect. Up to 50,000 `Value`s per request allowed. # Structured content for inspection. See
113 # https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
114 # learn more.
115 # See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
116 # learn more.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700117 &quot;headers&quot;: [ # Headers of the table.
118 { # General identifier of a data field in a storage service.
119 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
120 },
121 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700122 &quot;rows&quot;: [ # Rows of the table.
123 { # Values of the row.
124 &quot;values&quot;: [ # Individual cells.
125 { # Set of primitive values supported by the system.
126 # Note that for the purposes of inspection or transformation, the number
127 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
128 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
129 # 123456789, the number of bytes would be counted as 9, even though an
130 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700131 &quot;integerValue&quot;: &quot;A String&quot;, # integer
132 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
133 # or are specified elsewhere. An API may choose to allow leap seconds. Related
134 # types are google.type.Date and `google.protobuf.Timestamp`.
135 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
136 # allow the value 60 if it allows leap-seconds.
137 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
138 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
139 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
140 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
141 },
142 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
143 &quot;floatValue&quot;: 3.14, # float
144 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim65020912020-05-20 12:08:20 -0700145 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
146 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
147 # and time zone are either specified elsewhere or are not significant. The date
148 # is relative to the Proleptic Gregorian Calendar. This can represent:
149 #
150 # * A full date, with non-zero year, month and day values
151 # * A month and day value, with a zero year, e.g. an anniversary
152 # * A year on its own, with zero month and day values
153 # * A year and month value, with a zero day, e.g. a credit card expiration date
154 #
155 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700156 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
157 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700158 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
159 # a year.
Bu Sun Kim65020912020-05-20 12:08:20 -0700160 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
161 # if specifying a year by itself or a year and month where the day is not
162 # significant.
163 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700164 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim65020912020-05-20 12:08:20 -0700165 },
166 ],
167 },
168 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700169 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700170 },
171 &quot;deidentifyConfig&quot;: { # The configuration that controls how the data will change. # Configuration for the de-identification of the content item.
172 # Items specified here will override the template referenced by the
173 # deidentify_template_name argument.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700174 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and # Treat the dataset as free-form text and apply the same free text
175 # transformation everywhere.
176 # apply various `PrimitiveTransformation`s to each finding, where the
177 # transformation is applied to only values that were identified as a specific
178 # info_type.
179 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one
180 # for a given infoType.
181 { # A transformation to apply to text that is identified as a specific
182 # info_type.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700183 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause
184 # this transformation to apply to all findings that correspond to
185 # infoTypes that were requested in `InspectConfig`.
186 { # Type of information detected by the API.
187 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
188 # creating a CustomInfoType, or one of the names listed
189 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
190 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
191 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700192 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700193 ],
194 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700195 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
196 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
197 # to learn more.
198 &quot;context&quot;: { # General identifier of a data field in a storage service. # Points to the field that contains the context, for example, an entity id.
199 # If set, must also set cryptoKey. If set, shift will be consistent for the
200 # given context.
201 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
202 },
203 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
204 # range (inclusive ends). Negative means shift to earlier in time. Must not
205 # be more than 365250 days (1000 years) each direction.
206 #
207 # For example, 3 means shift date to at most 3 days into the future.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700208 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Causes the shift to be computed based on this key and the context. This
209 # results in the same shift for the same context and crypto_key. If
210 # set, must also set context. Can only be applied to table items.
211 # a key encryption key (KEK) stored by KMS).
212 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
213 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
214 # unwrap the data crypto key.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700215 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
216 # It will be discarded after the request finishes.
217 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
218 # This is an arbitrary string used to differentiate different keys.
219 # A unique key is generated per name: two separate `TransientCryptoKey`
220 # protos share the same generated key if their names are the same.
221 # When the data crypto key is generated, this name is not used in any way
222 # (repeating the api call will result in a different key being generated).
223 },
224 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
225 # The wrapped key must be a 128/192/256 bit key.
226 # Authorization requires the following IAM permissions when sending a request
227 # to perform a crypto transformation using a kms-wrapped crypto key:
228 # dlp.kms.encrypt
229 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
230 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
231 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700232 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
233 # leaking the key. Choose another type of key if possible.
234 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
235 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700236 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700237 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
238 },
239 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
240 # portion of the value.
241 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700242 },
243 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
244 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700245 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
246 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
247 # Note that for the purposes of inspection or transformation, the number
248 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
249 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
250 # 123456789, the number of bytes would be counted as 9, even though an
251 # int64 only holds up to 8 bytes of data.
252 &quot;integerValue&quot;: &quot;A String&quot;, # integer
253 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
254 # or are specified elsewhere. An API may choose to allow leap seconds. Related
255 # types are google.type.Date and `google.protobuf.Timestamp`.
256 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
257 # allow the value 60 if it allows leap-seconds.
258 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
259 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
260 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
261 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
262 },
263 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
264 &quot;floatValue&quot;: 3.14, # float
265 &quot;stringValue&quot;: &quot;A String&quot;, # string
266 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
267 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
268 # and time zone are either specified elsewhere or are not significant. The date
269 # is relative to the Proleptic Gregorian Calendar. This can represent:
270 #
271 # * A full date, with non-zero year, month and day values
272 # * A month and day value, with a zero year, e.g. an anniversary
273 # * A year on its own, with zero month and day values
274 # * A year and month value, with a zero day, e.g. a credit card expiration date
275 #
276 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
277 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
278 # month and day.
279 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
280 # a year.
281 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
282 # if specifying a year by itself or a year and month where the day is not
283 # significant.
284 },
285 &quot;booleanValue&quot;: True or False, # boolean
286 },
287 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700288 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
289 # Uses SHA-256.
290 # The key size must be either 32 or 64 bytes.
291 # Outputs a base64 encoded representation of the hashed output
292 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
293 # Currently, only string and integer values can be hashed.
294 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
295 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
296 # a key encryption key (KEK) stored by KMS).
297 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
298 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
299 # unwrap the data crypto key.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700300 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
301 # It will be discarded after the request finishes.
302 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
303 # This is an arbitrary string used to differentiate different keys.
304 # A unique key is generated per name: two separate `TransientCryptoKey`
305 # protos share the same generated key if their names are the same.
306 # When the data crypto key is generated, this name is not used in any way
307 # (repeating the api call will result in a different key being generated).
308 },
309 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
310 # The wrapped key must be a 128/192/256 bit key.
311 # Authorization requires the following IAM permissions when sending a request
312 # to perform a crypto transformation using a kms-wrapped crypto key:
313 # dlp.kms.encrypt
314 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
315 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
316 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700317 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
318 # leaking the key. Choose another type of key if possible.
319 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
320 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700321 },
322 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700323 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
324 # fixed character. Masking can start from the beginning or end of the string.
325 # This can be used on data of any type (numbers, longs, and so on) and when
326 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
327 # type. (This allows you to take a long like 123 and modify it to a string like
328 # **3.
329 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
330 # characters. For example, if the input string is `555-555-5555` and you
331 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
332 # returns `***-**5-5555`.
333 { # Characters to skip when doing deidentification of a value. These will be left
334 # alone and skipped.
335 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
336 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
337 # punctuation.
338 },
339 ],
340 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
341 # masked. Skipped characters do not count towards this tally.
342 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
343 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
344 # code or credit card number. This string must have a length of 1. If not
345 # supplied, this value defaults to `*` for strings, and `0` for digits.
346 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
347 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
348 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
349 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
350 # is `true`, then the string `12345` is masked as `12***`.
351 },
352 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
353 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
354 # output would be &#x27;My phone number is &#x27;.
355 },
356 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
357 # Bucketing transformation can provide all of this functionality,
358 # but requires more configuration. This message is provided as a convenience to
359 # the user for simple bucketing strategies.
360 #
361 # The transformed value will be a hyphenated string of
362 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
363 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
364 #
365 # This can be used on data of type: double, long.
366 #
367 # If the bound Value type differs from the type of data
368 # being transformed, we will first attempt converting the type of the data to
369 # be transformed to match the type of the bound before comparing.
370 #
371 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
372 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
373 # grouped together into a single bucket; for example if `upper_bound` = 89,
374 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
375 # Note that for the purposes of inspection or transformation, the number
376 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
377 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
378 # 123456789, the number of bytes would be counted as 9, even though an
379 # int64 only holds up to 8 bytes of data.
380 &quot;integerValue&quot;: &quot;A String&quot;, # integer
381 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
382 # or are specified elsewhere. An API may choose to allow leap seconds. Related
383 # types are google.type.Date and `google.protobuf.Timestamp`.
384 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
385 # allow the value 60 if it allows leap-seconds.
386 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
387 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
388 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
389 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
390 },
391 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
392 &quot;floatValue&quot;: 3.14, # float
393 &quot;stringValue&quot;: &quot;A String&quot;, # string
394 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
395 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
396 # and time zone are either specified elsewhere or are not significant. The date
397 # is relative to the Proleptic Gregorian Calendar. This can represent:
398 #
399 # * A full date, with non-zero year, month and day values
400 # * A month and day value, with a zero year, e.g. an anniversary
401 # * A year on its own, with zero month and day values
402 # * A year and month value, with a zero day, e.g. a credit card expiration date
403 #
404 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
405 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
406 # month and day.
407 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
408 # a year.
409 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
410 # if specifying a year by itself or a year and month where the day is not
411 # significant.
412 },
413 &quot;booleanValue&quot;: True or False, # boolean
414 },
415 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
416 # grouped together into a single bucket; for example if `lower_bound` = 10,
417 # then all values less than 10 are replaced with the value &quot;-10&quot;.
418 # Note that for the purposes of inspection or transformation, the number
419 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
420 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
421 # 123456789, the number of bytes would be counted as 9, even though an
422 # int64 only holds up to 8 bytes of data.
423 &quot;integerValue&quot;: &quot;A String&quot;, # integer
424 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
425 # or are specified elsewhere. An API may choose to allow leap seconds. Related
426 # types are google.type.Date and `google.protobuf.Timestamp`.
427 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
428 # allow the value 60 if it allows leap-seconds.
429 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
430 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
431 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
432 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
433 },
434 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
435 &quot;floatValue&quot;: 3.14, # float
436 &quot;stringValue&quot;: &quot;A String&quot;, # string
437 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
438 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
439 # and time zone are either specified elsewhere or are not significant. The date
440 # is relative to the Proleptic Gregorian Calendar. This can represent:
441 #
442 # * A full date, with non-zero year, month and day values
443 # * A month and day value, with a zero year, e.g. an anniversary
444 # * A year on its own, with zero month and day values
445 # * A year and month value, with a zero day, e.g. a credit card expiration date
446 #
447 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
448 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
449 # month and day.
450 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
451 # a year.
452 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
453 # if specifying a year by itself or a year and month where the day is not
454 # significant.
455 },
456 &quot;booleanValue&quot;: True or False, # boolean
457 },
458 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
459 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
460 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
461 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
462 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700463 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
464 # (FPE) with the FFX mode of operation; however when used in the
465 # `ReidentifyContent` API method, it serves the opposite function by reversing
466 # the surrogate back into the original identifier. The identifier must be
467 # encoded as ASCII. For a given crypto key and context, the same identifier
468 # will be replaced with the same surrogate. Identifiers must be at least two
469 # characters long. In the case that the identifier is the empty string, it will
470 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
471 # more.
472 #
473 # Note: We recommend using CryptoDeterministicConfig for all use cases which
474 # do not require preserving the input alphabet space and size, plus warrant
475 # referential integrity.
476 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
477 # This annotation will be applied to the surrogate by prefixing it with
478 # the name of the custom infoType followed by the number of
479 # characters comprising the surrogate. The following scheme defines the
480 # format: info_type_name(surrogate_character_count):surrogate
481 #
482 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
483 # the surrogate is &#x27;abc&#x27;, the full replacement value
484 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
485 #
486 # This annotation identifies the surrogate when inspecting content using the
487 # custom infoType
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700488 # [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700489 # This facilitates reversal of the surrogate when it occurs in free text.
490 #
491 # In order for inspection to work properly, the name of this infoType must
492 # not occur naturally anywhere in your data; otherwise, inspection may
493 # find a surrogate that does not correspond to an actual identifier.
494 # Therefore, choose your custom infoType name carefully after considering
495 # what your data looks like. One way to select a name that has a high chance
496 # of yielding reliable detection is to include one or more unicode characters
497 # that are highly improbable to exist in your data.
498 # For example, assuming your data is entered from a regular ASCII keyboard,
499 # the symbol with the hex code point 29DD might be used like so:
500 # ⧝MY_TOKEN_TYPE
501 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
502 # creating a CustomInfoType, or one of the names listed
503 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700504 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
505 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700506 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700507 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700508 &quot;context&quot;: { # General identifier of a data field in a storage service. # The &#x27;tweak&#x27;, a context may be used for higher security since the same
509 # identifier in two different contexts won&#x27;t be given the same surrogate. If
510 # the context is not set, a default tweak will be used.
511 #
512 # If the context is set but:
513 #
514 # 1. there is no record present when transforming a given value or
515 # 1. the field is not present when transforming a given value,
516 #
517 # a default tweak will be used.
518 #
519 # Note that case (1) is expected when an `InfoTypeTransformation` is
520 # applied to both structured and non-structured `ContentItem`s.
521 # Currently, the referenced field may be of value type integer or string.
522 #
523 # The tweak is constructed as a sequence of bytes in big endian byte order
524 # such that:
525 #
526 # - a 64 bit integer is encoded followed by a single byte of value 1
527 # - a string is encoded in UTF-8 format followed by a single byte of value 2
528 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
529 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700530 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
531 # that the FFX mode natively supports. This happens before/after
532 # encryption/decryption.
533 # Each character listed must appear only once.
534 # Number of characters must be in the range [2, 95].
535 # This must be encoded as ASCII.
536 # The order of characters does not matter.
537 # The full list of allowed characters is:
538 # &lt;code&gt;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
539 # ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/&lt;/code&gt;
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700540 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
541 # a key encryption key (KEK) stored by KMS).
542 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
543 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
544 # unwrap the data crypto key.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700545 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
546 # It will be discarded after the request finishes.
547 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
548 # This is an arbitrary string used to differentiate different keys.
549 # A unique key is generated per name: two separate `TransientCryptoKey`
550 # protos share the same generated key if their names are the same.
551 # When the data crypto key is generated, this name is not used in any way
552 # (repeating the api call will result in a different key being generated).
553 },
554 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
555 # The wrapped key must be a 128/192/256 bit key.
556 # Authorization requires the following IAM permissions when sending a request
557 # to perform a crypto transformation using a kms-wrapped crypto key:
558 # dlp.kms.encrypt
559 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
560 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
561 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700562 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
563 # leaking the key. Choose another type of key if possible.
564 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
565 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700566 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700567 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
568 },
569 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
570 # input. Outputs a base64 encoded representation of the encrypted output.
571 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700572 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
573 # referential integrity such that the same identifier in two different
574 # contexts will be given a distinct surrogate. The context is appended to
575 # plaintext value being encrypted. On decryption the provided context is
576 # validated against the value used during encryption. If a context was
577 # provided during encryption, same context must be provided during decryption
578 # as well.
579 #
580 # If the context is not set, plaintext would be used as is for encryption.
581 # If the context is set but:
582 #
583 # 1. there is no record present when transforming a given value or
584 # 2. the field is not present when transforming a given value,
585 #
586 # plaintext would be used as is for encryption.
587 #
588 # Note that case (1) is expected when an `InfoTypeTransformation` is
589 # applied to both structured and non-structured `ContentItem`s.
590 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
591 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700592 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
593 # This annotation will be applied to the surrogate by prefixing it with
594 # the name of the custom info type followed by the number of
595 # characters comprising the surrogate. The following scheme defines the
596 # format: {info type name}({surrogate character count}):{surrogate}
597 #
598 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
599 # the surrogate is &#x27;abc&#x27;, the full replacement value
600 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
601 #
602 # This annotation identifies the surrogate when inspecting content using the
603 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
604 # surrogate when it occurs in free text.
605 #
606 # Note: For record transformations where the entire cell in a table is being
607 # transformed, surrogates are not mandatory. Surrogates are used to denote
608 # the location of the token and are necessary for re-identification in free
609 # form text.
610 #
611 # In order for inspection to work properly, the name of this info type must
612 # not occur naturally anywhere in your data; otherwise, inspection may either
613 #
614 # - reverse a surrogate that does not correspond to an actual identifier
615 # - be unable to parse the surrogate and result in an error
616 #
617 # Therefore, choose your custom info type name carefully after considering
618 # what your data looks like. One way to select a name that has a high chance
619 # of yielding reliable detection is to include one or more unicode characters
620 # that are highly improbable to exist in your data.
621 # For example, assuming your data is entered from a regular ASCII keyboard,
622 # the symbol with the hex code point 29DD might be used like so:
623 # ⧝MY_TOKEN_TYPE.
624 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
625 # creating a CustomInfoType, or one of the names listed
626 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700627 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
628 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700629 },
630 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
631 # a key encryption key (KEK) stored by KMS).
632 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
633 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
634 # unwrap the data crypto key.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700635 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
636 # It will be discarded after the request finishes.
637 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
638 # This is an arbitrary string used to differentiate different keys.
639 # A unique key is generated per name: two separate `TransientCryptoKey`
640 # protos share the same generated key if their names are the same.
641 # When the data crypto key is generated, this name is not used in any way
642 # (repeating the api call will result in a different key being generated).
643 },
644 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
645 # The wrapped key must be a 128/192/256 bit key.
646 # Authorization requires the following IAM permissions when sending a request
647 # to perform a crypto transformation using a kms-wrapped crypto key:
648 # dlp.kms.encrypt
649 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
650 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
651 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700652 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
653 # leaking the key. Choose another type of key if possible.
654 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
655 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700656 },
657 },
658 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
659 # replacement values are dynamically provided by the user for custom behavior,
660 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
661 # This can be used on
662 # data of type: number, long, string, timestamp.
663 # If the bound `Value` type differs from the type of data being transformed, we
664 # will first attempt converting the type of the data to be transformed to match
665 # the type of the bound before comparing.
666 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
667 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
668 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700669 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700670 # Note that for the purposes of inspection or transformation, the number
671 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
672 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
673 # 123456789, the number of bytes would be counted as 9, even though an
674 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700675 &quot;integerValue&quot;: &quot;A String&quot;, # integer
676 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
677 # or are specified elsewhere. An API may choose to allow leap seconds. Related
678 # types are google.type.Date and `google.protobuf.Timestamp`.
679 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
680 # allow the value 60 if it allows leap-seconds.
681 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
682 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
683 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
684 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
685 },
686 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
687 &quot;floatValue&quot;: 3.14, # float
688 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700689 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
690 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
691 # and time zone are either specified elsewhere or are not significant. The date
692 # is relative to the Proleptic Gregorian Calendar. This can represent:
693 #
694 # * A full date, with non-zero year, month and day values
695 # * A month and day value, with a zero year, e.g. an anniversary
696 # * A year on its own, with zero month and day values
697 # * A year and month value, with a zero day, e.g. a credit card expiration date
698 #
699 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700700 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
701 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700702 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
703 # a year.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700704 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
705 # if specifying a year by itself or a year and month where the day is not
706 # significant.
707 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700708 &quot;booleanValue&quot;: True or False, # boolean
709 },
710 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Required. Replacement value for this bucket.
711 # Note that for the purposes of inspection or transformation, the number
712 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
713 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
714 # 123456789, the number of bytes would be counted as 9, even though an
715 # int64 only holds up to 8 bytes of data.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700716 &quot;integerValue&quot;: &quot;A String&quot;, # integer
717 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
718 # or are specified elsewhere. An API may choose to allow leap seconds. Related
719 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700720 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
721 # allow the value 60 if it allows leap-seconds.
722 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700723 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
724 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
725 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
726 },
727 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
728 &quot;floatValue&quot;: 3.14, # float
729 &quot;stringValue&quot;: &quot;A String&quot;, # string
730 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
731 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
732 # and time zone are either specified elsewhere or are not significant. The date
733 # is relative to the Proleptic Gregorian Calendar. This can represent:
734 #
735 # * A full date, with non-zero year, month and day values
736 # * A month and day value, with a zero year, e.g. an anniversary
737 # * A year on its own, with zero month and day values
738 # * A year and month value, with a zero day, e.g. a credit card expiration date
739 #
740 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
741 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
742 # month and day.
743 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
744 # a year.
745 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
746 # if specifying a year by itself or a year and month where the day is not
747 # significant.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700748 },
749 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700750 },
751 &quot;min&quot;: { # Set of primitive values supported by the system. # Lower bound of the range, inclusive. Type should be the same as max if
752 # used.
753 # Note that for the purposes of inspection or transformation, the number
754 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
755 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
756 # 123456789, the number of bytes would be counted as 9, even though an
757 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700758 &quot;integerValue&quot;: &quot;A String&quot;, # integer
759 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
760 # or are specified elsewhere. An API may choose to allow leap seconds. Related
761 # types are google.type.Date and `google.protobuf.Timestamp`.
762 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
763 # allow the value 60 if it allows leap-seconds.
764 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
765 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
766 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
767 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
768 },
769 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
770 &quot;floatValue&quot;: 3.14, # float
771 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700772 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
773 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
774 # and time zone are either specified elsewhere or are not significant. The date
775 # is relative to the Proleptic Gregorian Calendar. This can represent:
776 #
777 # * A full date, with non-zero year, month and day values
778 # * A month and day value, with a zero year, e.g. an anniversary
779 # * A year on its own, with zero month and day values
780 # * A year and month value, with a zero day, e.g. a credit card expiration date
781 #
782 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700783 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
784 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700785 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
786 # a year.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700787 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
788 # if specifying a year by itself or a year and month where the day is not
789 # significant.
790 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700791 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700792 },
793 },
794 ],
795 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700796 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700797 },
798 ],
799 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700800 &quot;transformationErrorHandling&quot;: { # How to handle transformation errors during de-identification. A # Mode for handling transformation errors. If left unspecified, the default
801 # mode is `TransformationErrorHandling.ThrowError`.
802 # transformation error occurs when the requested transformation is incompatible
803 # with the data. For example, trying to de-identify an IP address using a
804 # `DateShift` transformation would result in a transformation error, since date
805 # info cannot be extracted from an IP address.
806 # Information about any incompatible transformations, and how they were
807 # handled, is returned in the response as part of the
808 # `TransformationOverviews`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700809 &quot;leaveUntransformed&quot;: { # Skips the data without modifying it if the requested transformation would # Ignore errors
810 # cause an error. For example, if a `DateShift` transformation were applied
811 # an an IP address, this mode would leave the IP address unchanged in the
812 # response.
813 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700814 &quot;throwError&quot;: { # Throw an error and fail the request when a transformation error occurs. # Throw an error
815 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700816 },
817 &quot;recordTransformations&quot;: { # A type of transformation that is applied over structured data such as a # Treat the dataset as structured. Transformations can be applied to
818 # specific locations within structured datasets, such as transforming
819 # a column within a table.
820 # table.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700821 &quot;recordSuppressions&quot;: [ # Configuration defining which records get suppressed entirely. Records that
822 # match any suppression rule are omitted from the output.
823 { # Configuration to suppress records whose suppression conditions evaluate to
824 # true.
825 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to # A condition that when it evaluates to true will result in the record being
826 # evaluated to be suppressed from the transformed content.
827 # a field.
828 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
829 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
830 &quot;conditions&quot;: [ # A collection of conditions.
831 { # The field type of `value` and `field` do not need to match to be
832 # considered equal, but not all comparisons are possible.
833 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
834 # but all other comparisons are invalid with incompatible types.
835 # A `value` of type:
836 #
837 # - `string` can be compared against all other types
838 # - `boolean` can only be compared against other booleans
839 # - `integer` can be compared against doubles or a string if the string value
840 # can be parsed as an integer.
841 # - `double` can be compared against integers or a string if the string can
842 # be parsed as a double.
843 # - `Timestamp` can be compared against strings in RFC 3339 date string
844 # format.
845 # - `TimeOfDay` can be compared against timestamps and strings in the format
846 # of &#x27;HH:mm:ss&#x27;.
847 #
848 # If we fail to compare do to type mismatch, a warning will be given and
849 # the condition will evaluate to false.
850 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
851 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
852 },
853 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
854 # Note that for the purposes of inspection or transformation, the number
855 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
856 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
857 # 123456789, the number of bytes would be counted as 9, even though an
858 # int64 only holds up to 8 bytes of data.
859 &quot;integerValue&quot;: &quot;A String&quot;, # integer
860 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
861 # or are specified elsewhere. An API may choose to allow leap seconds. Related
862 # types are google.type.Date and `google.protobuf.Timestamp`.
863 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
864 # allow the value 60 if it allows leap-seconds.
865 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
866 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
867 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
868 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
869 },
870 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
871 &quot;floatValue&quot;: 3.14, # float
872 &quot;stringValue&quot;: &quot;A String&quot;, # string
873 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
874 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
875 # and time zone are either specified elsewhere or are not significant. The date
876 # is relative to the Proleptic Gregorian Calendar. This can represent:
877 #
878 # * A full date, with non-zero year, month and day values
879 # * A month and day value, with a zero year, e.g. an anniversary
880 # * A year on its own, with zero month and day values
881 # * A year and month value, with a zero day, e.g. a credit card expiration date
882 #
883 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
884 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
885 # month and day.
886 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
887 # a year.
888 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
889 # if specifying a year by itself or a year and month where the day is not
890 # significant.
891 },
892 &quot;booleanValue&quot;: True or False, # boolean
893 },
894 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
895 },
896 ],
897 },
898 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
899 # only supported value is `AND`.
900 },
901 },
902 },
903 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700904 &quot;fieldTransformations&quot;: [ # Transform the record by applying various field transformations.
905 { # The transformation to apply to the field.
Bu Sun Kim65020912020-05-20 12:08:20 -0700906 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and # Treat the contents of the field as free text, and selectively
907 # transform content that matches an `InfoType`.
908 # apply various `PrimitiveTransformation`s to each finding, where the
909 # transformation is applied to only values that were identified as a specific
910 # info_type.
911 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one
912 # for a given infoType.
913 { # A transformation to apply to text that is identified as a specific
914 # info_type.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700915 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause
916 # this transformation to apply to all findings that correspond to
917 # infoTypes that were requested in `InspectConfig`.
918 { # Type of information detected by the API.
919 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
920 # creating a CustomInfoType, or one of the names listed
921 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
922 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
923 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700924 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700925 ],
926 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Bu Sun Kim65020912020-05-20 12:08:20 -0700927 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
928 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
929 # to learn more.
930 &quot;context&quot;: { # General identifier of a data field in a storage service. # Points to the field that contains the context, for example, an entity id.
931 # If set, must also set cryptoKey. If set, shift will be consistent for the
932 # given context.
933 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
934 },
935 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
936 # range (inclusive ends). Negative means shift to earlier in time. Must not
937 # be more than 365250 days (1000 years) each direction.
938 #
939 # For example, 3 means shift date to at most 3 days into the future.
Bu Sun Kim65020912020-05-20 12:08:20 -0700940 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Causes the shift to be computed based on this key and the context. This
941 # results in the same shift for the same context and crypto_key. If
942 # set, must also set context. Can only be applied to table items.
943 # a key encryption key (KEK) stored by KMS).
944 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
945 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
946 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -0700947 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
948 # It will be discarded after the request finishes.
949 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
950 # This is an arbitrary string used to differentiate different keys.
951 # A unique key is generated per name: two separate `TransientCryptoKey`
952 # protos share the same generated key if their names are the same.
953 # When the data crypto key is generated, this name is not used in any way
954 # (repeating the api call will result in a different key being generated).
955 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700956 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
957 # The wrapped key must be a 128/192/256 bit key.
958 # Authorization requires the following IAM permissions when sending a request
959 # to perform a crypto transformation using a kms-wrapped crypto key:
960 # dlp.kms.encrypt
961 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
962 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
963 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700964 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
965 # leaking the key. Choose another type of key if possible.
966 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
967 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700968 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700969 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
970 },
971 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
972 # portion of the value.
973 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
Bu Sun Kim65020912020-05-20 12:08:20 -0700974 },
975 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
976 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700977 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
978 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
979 # Note that for the purposes of inspection or transformation, the number
980 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
981 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
982 # 123456789, the number of bytes would be counted as 9, even though an
983 # int64 only holds up to 8 bytes of data.
984 &quot;integerValue&quot;: &quot;A String&quot;, # integer
985 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
986 # or are specified elsewhere. An API may choose to allow leap seconds. Related
987 # types are google.type.Date and `google.protobuf.Timestamp`.
988 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
989 # allow the value 60 if it allows leap-seconds.
990 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
991 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
992 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
993 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
994 },
995 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
996 &quot;floatValue&quot;: 3.14, # float
997 &quot;stringValue&quot;: &quot;A String&quot;, # string
998 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
999 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1000 # and time zone are either specified elsewhere or are not significant. The date
1001 # is relative to the Proleptic Gregorian Calendar. This can represent:
1002 #
1003 # * A full date, with non-zero year, month and day values
1004 # * A month and day value, with a zero year, e.g. an anniversary
1005 # * A year on its own, with zero month and day values
1006 # * A year and month value, with a zero day, e.g. a credit card expiration date
1007 #
1008 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
1009 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1010 # month and day.
1011 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1012 # a year.
1013 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1014 # if specifying a year by itself or a year and month where the day is not
1015 # significant.
1016 },
1017 &quot;booleanValue&quot;: True or False, # boolean
1018 },
1019 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001020 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
1021 # Uses SHA-256.
1022 # The key size must be either 32 or 64 bytes.
1023 # Outputs a base64 encoded representation of the hashed output
1024 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
1025 # Currently, only string and integer values can be hashed.
1026 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
1027 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
1028 # a key encryption key (KEK) stored by KMS).
1029 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
1030 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
1031 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07001032 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
1033 # It will be discarded after the request finishes.
1034 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
1035 # This is an arbitrary string used to differentiate different keys.
1036 # A unique key is generated per name: two separate `TransientCryptoKey`
1037 # protos share the same generated key if their names are the same.
1038 # When the data crypto key is generated, this name is not used in any way
1039 # (repeating the api call will result in a different key being generated).
1040 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001041 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
1042 # The wrapped key must be a 128/192/256 bit key.
1043 # Authorization requires the following IAM permissions when sending a request
1044 # to perform a crypto transformation using a kms-wrapped crypto key:
1045 # dlp.kms.encrypt
1046 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1047 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1048 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001049 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
1050 # leaking the key. Choose another type of key if possible.
1051 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1052 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001053 },
1054 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001055 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
1056 # fixed character. Masking can start from the beginning or end of the string.
1057 # This can be used on data of any type (numbers, longs, and so on) and when
1058 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
1059 # type. (This allows you to take a long like 123 and modify it to a string like
1060 # **3.
1061 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
1062 # characters. For example, if the input string is `555-555-5555` and you
1063 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
1064 # returns `***-**5-5555`.
1065 { # Characters to skip when doing deidentification of a value. These will be left
1066 # alone and skipped.
1067 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
1068 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
1069 # punctuation.
1070 },
1071 ],
1072 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
1073 # masked. Skipped characters do not count towards this tally.
1074 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
1075 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
1076 # code or credit card number. This string must have a length of 1. If not
1077 # supplied, this value defaults to `*` for strings, and `0` for digits.
1078 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
1079 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
1080 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
1081 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
1082 # is `true`, then the string `12345` is masked as `12***`.
1083 },
1084 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
1085 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
1086 # output would be &#x27;My phone number is &#x27;.
1087 },
1088 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
1089 # Bucketing transformation can provide all of this functionality,
1090 # but requires more configuration. This message is provided as a convenience to
1091 # the user for simple bucketing strategies.
1092 #
1093 # The transformed value will be a hyphenated string of
1094 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
1095 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
1096 #
1097 # This can be used on data of type: double, long.
1098 #
1099 # If the bound Value type differs from the type of data
1100 # being transformed, we will first attempt converting the type of the data to
1101 # be transformed to match the type of the bound before comparing.
1102 #
1103 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
1104 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
1105 # grouped together into a single bucket; for example if `upper_bound` = 89,
1106 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
1107 # Note that for the purposes of inspection or transformation, the number
1108 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1109 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
1110 # 123456789, the number of bytes would be counted as 9, even though an
1111 # int64 only holds up to 8 bytes of data.
1112 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1113 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1114 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1115 # types are google.type.Date and `google.protobuf.Timestamp`.
1116 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1117 # allow the value 60 if it allows leap-seconds.
1118 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1119 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1120 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1121 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1122 },
1123 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1124 &quot;floatValue&quot;: 3.14, # float
1125 &quot;stringValue&quot;: &quot;A String&quot;, # string
1126 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1127 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1128 # and time zone are either specified elsewhere or are not significant. The date
1129 # is relative to the Proleptic Gregorian Calendar. This can represent:
1130 #
1131 # * A full date, with non-zero year, month and day values
1132 # * A month and day value, with a zero year, e.g. an anniversary
1133 # * A year on its own, with zero month and day values
1134 # * A year and month value, with a zero day, e.g. a credit card expiration date
1135 #
1136 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
1137 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1138 # month and day.
1139 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1140 # a year.
1141 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1142 # if specifying a year by itself or a year and month where the day is not
1143 # significant.
1144 },
1145 &quot;booleanValue&quot;: True or False, # boolean
1146 },
1147 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
1148 # grouped together into a single bucket; for example if `lower_bound` = 10,
1149 # then all values less than 10 are replaced with the value &quot;-10&quot;.
1150 # Note that for the purposes of inspection or transformation, the number
1151 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1152 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
1153 # 123456789, the number of bytes would be counted as 9, even though an
1154 # int64 only holds up to 8 bytes of data.
1155 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1156 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1157 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1158 # types are google.type.Date and `google.protobuf.Timestamp`.
1159 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1160 # allow the value 60 if it allows leap-seconds.
1161 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1162 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1163 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1164 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1165 },
1166 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1167 &quot;floatValue&quot;: 3.14, # float
1168 &quot;stringValue&quot;: &quot;A String&quot;, # string
1169 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1170 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1171 # and time zone are either specified elsewhere or are not significant. The date
1172 # is relative to the Proleptic Gregorian Calendar. This can represent:
1173 #
1174 # * A full date, with non-zero year, month and day values
1175 # * A month and day value, with a zero year, e.g. an anniversary
1176 # * A year on its own, with zero month and day values
1177 # * A year and month value, with a zero day, e.g. a credit card expiration date
1178 #
1179 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
1180 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1181 # month and day.
1182 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1183 # a year.
1184 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1185 # if specifying a year by itself or a year and month where the day is not
1186 # significant.
1187 },
1188 &quot;booleanValue&quot;: True or False, # boolean
1189 },
1190 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
1191 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
1192 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
1193 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
1194 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001195 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
1196 # (FPE) with the FFX mode of operation; however when used in the
1197 # `ReidentifyContent` API method, it serves the opposite function by reversing
1198 # the surrogate back into the original identifier. The identifier must be
1199 # encoded as ASCII. For a given crypto key and context, the same identifier
1200 # will be replaced with the same surrogate. Identifiers must be at least two
1201 # characters long. In the case that the identifier is the empty string, it will
1202 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
1203 # more.
1204 #
1205 # Note: We recommend using CryptoDeterministicConfig for all use cases which
1206 # do not require preserving the input alphabet space and size, plus warrant
1207 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07001208 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
1209 # This annotation will be applied to the surrogate by prefixing it with
1210 # the name of the custom infoType followed by the number of
1211 # characters comprising the surrogate. The following scheme defines the
1212 # format: info_type_name(surrogate_character_count):surrogate
1213 #
1214 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
1215 # the surrogate is &#x27;abc&#x27;, the full replacement value
1216 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
1217 #
1218 # This annotation identifies the surrogate when inspecting content using the
1219 # custom infoType
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001220 # [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
Bu Sun Kim65020912020-05-20 12:08:20 -07001221 # This facilitates reversal of the surrogate when it occurs in free text.
1222 #
1223 # In order for inspection to work properly, the name of this infoType must
1224 # not occur naturally anywhere in your data; otherwise, inspection may
1225 # find a surrogate that does not correspond to an actual identifier.
1226 # Therefore, choose your custom infoType name carefully after considering
1227 # what your data looks like. One way to select a name that has a high chance
1228 # of yielding reliable detection is to include one or more unicode characters
1229 # that are highly improbable to exist in your data.
1230 # For example, assuming your data is entered from a regular ASCII keyboard,
1231 # the symbol with the hex code point 29DD might be used like so:
1232 # ⧝MY_TOKEN_TYPE
1233 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
1234 # creating a CustomInfoType, or one of the names listed
1235 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001236 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
1237 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001238 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001239 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Bu Sun Kim65020912020-05-20 12:08:20 -07001240 &quot;context&quot;: { # General identifier of a data field in a storage service. # The &#x27;tweak&#x27;, a context may be used for higher security since the same
1241 # identifier in two different contexts won&#x27;t be given the same surrogate. If
1242 # the context is not set, a default tweak will be used.
1243 #
1244 # If the context is set but:
1245 #
1246 # 1. there is no record present when transforming a given value or
1247 # 1. the field is not present when transforming a given value,
1248 #
1249 # a default tweak will be used.
1250 #
1251 # Note that case (1) is expected when an `InfoTypeTransformation` is
1252 # applied to both structured and non-structured `ContentItem`s.
1253 # Currently, the referenced field may be of value type integer or string.
1254 #
1255 # The tweak is constructed as a sequence of bytes in big endian byte order
1256 # such that:
1257 #
1258 # - a 64 bit integer is encoded followed by a single byte of value 1
1259 # - a string is encoded in UTF-8 format followed by a single byte of value 2
1260 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1261 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001262 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
1263 # that the FFX mode natively supports. This happens before/after
1264 # encryption/decryption.
1265 # Each character listed must appear only once.
1266 # Number of characters must be in the range [2, 95].
1267 # This must be encoded as ASCII.
1268 # The order of characters does not matter.
1269 # The full list of allowed characters is:
1270 # &lt;code&gt;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
1271 # ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/&lt;/code&gt;
Bu Sun Kim65020912020-05-20 12:08:20 -07001272 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
1273 # a key encryption key (KEK) stored by KMS).
1274 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
1275 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
1276 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07001277 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
1278 # It will be discarded after the request finishes.
1279 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
1280 # This is an arbitrary string used to differentiate different keys.
1281 # A unique key is generated per name: two separate `TransientCryptoKey`
1282 # protos share the same generated key if their names are the same.
1283 # When the data crypto key is generated, this name is not used in any way
1284 # (repeating the api call will result in a different key being generated).
1285 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001286 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
1287 # The wrapped key must be a 128/192/256 bit key.
1288 # Authorization requires the following IAM permissions when sending a request
1289 # to perform a crypto transformation using a kms-wrapped crypto key:
1290 # dlp.kms.encrypt
1291 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1292 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1293 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001294 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
1295 # leaking the key. Choose another type of key if possible.
1296 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1297 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001298 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001299 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07001300 },
1301 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
1302 # input. Outputs a base64 encoded representation of the encrypted output.
1303 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001304 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
1305 # referential integrity such that the same identifier in two different
1306 # contexts will be given a distinct surrogate. The context is appended to
1307 # plaintext value being encrypted. On decryption the provided context is
1308 # validated against the value used during encryption. If a context was
1309 # provided during encryption, same context must be provided during decryption
1310 # as well.
1311 #
1312 # If the context is not set, plaintext would be used as is for encryption.
1313 # If the context is set but:
1314 #
1315 # 1. there is no record present when transforming a given value or
1316 # 2. the field is not present when transforming a given value,
1317 #
1318 # plaintext would be used as is for encryption.
1319 #
1320 # Note that case (1) is expected when an `InfoTypeTransformation` is
1321 # applied to both structured and non-structured `ContentItem`s.
1322 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1323 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001324 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
1325 # This annotation will be applied to the surrogate by prefixing it with
1326 # the name of the custom info type followed by the number of
1327 # characters comprising the surrogate. The following scheme defines the
1328 # format: {info type name}({surrogate character count}):{surrogate}
1329 #
1330 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
1331 # the surrogate is &#x27;abc&#x27;, the full replacement value
1332 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
1333 #
1334 # This annotation identifies the surrogate when inspecting content using the
1335 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
1336 # surrogate when it occurs in free text.
1337 #
1338 # Note: For record transformations where the entire cell in a table is being
1339 # transformed, surrogates are not mandatory. Surrogates are used to denote
1340 # the location of the token and are necessary for re-identification in free
1341 # form text.
1342 #
1343 # In order for inspection to work properly, the name of this info type must
1344 # not occur naturally anywhere in your data; otherwise, inspection may either
1345 #
1346 # - reverse a surrogate that does not correspond to an actual identifier
1347 # - be unable to parse the surrogate and result in an error
1348 #
1349 # Therefore, choose your custom info type name carefully after considering
1350 # what your data looks like. One way to select a name that has a high chance
1351 # of yielding reliable detection is to include one or more unicode characters
1352 # that are highly improbable to exist in your data.
1353 # For example, assuming your data is entered from a regular ASCII keyboard,
1354 # the symbol with the hex code point 29DD might be used like so:
1355 # ⧝MY_TOKEN_TYPE.
1356 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
1357 # creating a CustomInfoType, or one of the names listed
1358 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001359 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
1360 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001361 },
1362 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
1363 # a key encryption key (KEK) stored by KMS).
1364 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
1365 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
1366 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07001367 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
1368 # It will be discarded after the request finishes.
1369 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
1370 # This is an arbitrary string used to differentiate different keys.
1371 # A unique key is generated per name: two separate `TransientCryptoKey`
1372 # protos share the same generated key if their names are the same.
1373 # When the data crypto key is generated, this name is not used in any way
1374 # (repeating the api call will result in a different key being generated).
1375 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001376 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
1377 # The wrapped key must be a 128/192/256 bit key.
1378 # Authorization requires the following IAM permissions when sending a request
1379 # to perform a crypto transformation using a kms-wrapped crypto key:
1380 # dlp.kms.encrypt
1381 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1382 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1383 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001384 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
1385 # leaking the key. Choose another type of key if possible.
1386 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1387 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001388 },
1389 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001390 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
1391 # replacement values are dynamically provided by the user for custom behavior,
1392 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
1393 # This can be used on
1394 # data of type: number, long, string, timestamp.
1395 # If the bound `Value` type differs from the type of data being transformed, we
1396 # will first attempt converting the type of the data to be transformed to match
1397 # the type of the bound before comparing.
1398 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
1399 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
1400 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001401 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
Bu Sun Kim65020912020-05-20 12:08:20 -07001402 # Note that for the purposes of inspection or transformation, the number
1403 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1404 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
1405 # 123456789, the number of bytes would be counted as 9, even though an
1406 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001407 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1408 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1409 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1410 # types are google.type.Date and `google.protobuf.Timestamp`.
1411 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1412 # allow the value 60 if it allows leap-seconds.
1413 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1414 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1415 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1416 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1417 },
1418 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1419 &quot;floatValue&quot;: 3.14, # float
1420 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim65020912020-05-20 12:08:20 -07001421 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1422 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1423 # and time zone are either specified elsewhere or are not significant. The date
1424 # is relative to the Proleptic Gregorian Calendar. This can represent:
1425 #
1426 # * A full date, with non-zero year, month and day values
1427 # * A month and day value, with a zero year, e.g. an anniversary
1428 # * A year on its own, with zero month and day values
1429 # * A year and month value, with a zero day, e.g. a credit card expiration date
1430 #
1431 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001432 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1433 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001434 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1435 # a year.
Bu Sun Kim65020912020-05-20 12:08:20 -07001436 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1437 # if specifying a year by itself or a year and month where the day is not
1438 # significant.
1439 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001440 &quot;booleanValue&quot;: True or False, # boolean
1441 },
1442 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Required. Replacement value for this bucket.
1443 # Note that for the purposes of inspection or transformation, the number
1444 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1445 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
1446 # 123456789, the number of bytes would be counted as 9, even though an
1447 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07001448 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1449 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1450 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1451 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001452 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1453 # allow the value 60 if it allows leap-seconds.
1454 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001455 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1456 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1457 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1458 },
1459 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1460 &quot;floatValue&quot;: 3.14, # float
1461 &quot;stringValue&quot;: &quot;A String&quot;, # string
1462 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1463 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1464 # and time zone are either specified elsewhere or are not significant. The date
1465 # is relative to the Proleptic Gregorian Calendar. This can represent:
1466 #
1467 # * A full date, with non-zero year, month and day values
1468 # * A month and day value, with a zero year, e.g. an anniversary
1469 # * A year on its own, with zero month and day values
1470 # * A year and month value, with a zero day, e.g. a credit card expiration date
1471 #
1472 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
1473 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1474 # month and day.
1475 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1476 # a year.
1477 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1478 # if specifying a year by itself or a year and month where the day is not
1479 # significant.
Bu Sun Kim65020912020-05-20 12:08:20 -07001480 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001481 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001482 },
1483 &quot;min&quot;: { # Set of primitive values supported by the system. # Lower bound of the range, inclusive. Type should be the same as max if
1484 # used.
1485 # Note that for the purposes of inspection or transformation, the number
1486 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1487 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
1488 # 123456789, the number of bytes would be counted as 9, even though an
1489 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001490 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1491 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1492 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1493 # types are google.type.Date and `google.protobuf.Timestamp`.
1494 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1495 # allow the value 60 if it allows leap-seconds.
1496 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1497 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1498 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1499 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1500 },
1501 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1502 &quot;floatValue&quot;: 3.14, # float
1503 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001504 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1505 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1506 # and time zone are either specified elsewhere or are not significant. The date
1507 # is relative to the Proleptic Gregorian Calendar. This can represent:
1508 #
1509 # * A full date, with non-zero year, month and day values
1510 # * A month and day value, with a zero year, e.g. an anniversary
1511 # * A year on its own, with zero month and day values
1512 # * A year and month value, with a zero day, e.g. a credit card expiration date
1513 #
1514 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001515 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1516 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001517 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1518 # a year.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001519 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1520 # if specifying a year by itself or a year and month where the day is not
1521 # significant.
1522 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001523 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim65020912020-05-20 12:08:20 -07001524 },
1525 },
1526 ],
1527 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001528 },
1529 },
1530 ],
1531 },
1532 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Apply the transformation to the entire field.
Bu Sun Kim65020912020-05-20 12:08:20 -07001533 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
1534 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
1535 # to learn more.
1536 &quot;context&quot;: { # General identifier of a data field in a storage service. # Points to the field that contains the context, for example, an entity id.
1537 # If set, must also set cryptoKey. If set, shift will be consistent for the
1538 # given context.
1539 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1540 },
1541 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
1542 # range (inclusive ends). Negative means shift to earlier in time. Must not
1543 # be more than 365250 days (1000 years) each direction.
1544 #
1545 # For example, 3 means shift date to at most 3 days into the future.
Bu Sun Kim65020912020-05-20 12:08:20 -07001546 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Causes the shift to be computed based on this key and the context. This
1547 # results in the same shift for the same context and crypto_key. If
1548 # set, must also set context. Can only be applied to table items.
1549 # a key encryption key (KEK) stored by KMS).
1550 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
1551 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
1552 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07001553 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
1554 # It will be discarded after the request finishes.
1555 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
1556 # This is an arbitrary string used to differentiate different keys.
1557 # A unique key is generated per name: two separate `TransientCryptoKey`
1558 # protos share the same generated key if their names are the same.
1559 # When the data crypto key is generated, this name is not used in any way
1560 # (repeating the api call will result in a different key being generated).
1561 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001562 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
1563 # The wrapped key must be a 128/192/256 bit key.
1564 # Authorization requires the following IAM permissions when sending a request
1565 # to perform a crypto transformation using a kms-wrapped crypto key:
1566 # dlp.kms.encrypt
1567 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1568 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1569 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001570 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
1571 # leaking the key. Choose another type of key if possible.
1572 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1573 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001574 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001575 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
1576 },
1577 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
1578 # portion of the value.
1579 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
Bu Sun Kim65020912020-05-20 12:08:20 -07001580 },
1581 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
1582 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001583 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
1584 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
1585 # Note that for the purposes of inspection or transformation, the number
1586 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1587 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
1588 # 123456789, the number of bytes would be counted as 9, even though an
1589 # int64 only holds up to 8 bytes of data.
1590 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1591 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1592 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1593 # types are google.type.Date and `google.protobuf.Timestamp`.
1594 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1595 # allow the value 60 if it allows leap-seconds.
1596 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1597 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1598 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1599 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1600 },
1601 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1602 &quot;floatValue&quot;: 3.14, # float
1603 &quot;stringValue&quot;: &quot;A String&quot;, # string
1604 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1605 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1606 # and time zone are either specified elsewhere or are not significant. The date
1607 # is relative to the Proleptic Gregorian Calendar. This can represent:
1608 #
1609 # * A full date, with non-zero year, month and day values
1610 # * A month and day value, with a zero year, e.g. an anniversary
1611 # * A year on its own, with zero month and day values
1612 # * A year and month value, with a zero day, e.g. a credit card expiration date
1613 #
1614 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
1615 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1616 # month and day.
1617 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1618 # a year.
1619 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1620 # if specifying a year by itself or a year and month where the day is not
1621 # significant.
1622 },
1623 &quot;booleanValue&quot;: True or False, # boolean
1624 },
1625 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001626 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
1627 # Uses SHA-256.
1628 # The key size must be either 32 or 64 bytes.
1629 # Outputs a base64 encoded representation of the hashed output
1630 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
1631 # Currently, only string and integer values can be hashed.
1632 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
1633 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
1634 # a key encryption key (KEK) stored by KMS).
1635 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
1636 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
1637 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07001638 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
1639 # It will be discarded after the request finishes.
1640 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
1641 # This is an arbitrary string used to differentiate different keys.
1642 # A unique key is generated per name: two separate `TransientCryptoKey`
1643 # protos share the same generated key if their names are the same.
1644 # When the data crypto key is generated, this name is not used in any way
1645 # (repeating the api call will result in a different key being generated).
1646 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001647 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
1648 # The wrapped key must be a 128/192/256 bit key.
1649 # Authorization requires the following IAM permissions when sending a request
1650 # to perform a crypto transformation using a kms-wrapped crypto key:
1651 # dlp.kms.encrypt
1652 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1653 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1654 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001655 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
1656 # leaking the key. Choose another type of key if possible.
1657 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1658 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001659 },
1660 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001661 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
1662 # fixed character. Masking can start from the beginning or end of the string.
1663 # This can be used on data of any type (numbers, longs, and so on) and when
1664 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
1665 # type. (This allows you to take a long like 123 and modify it to a string like
1666 # **3.
1667 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
1668 # characters. For example, if the input string is `555-555-5555` and you
1669 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
1670 # returns `***-**5-5555`.
1671 { # Characters to skip when doing deidentification of a value. These will be left
1672 # alone and skipped.
1673 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
1674 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
1675 # punctuation.
1676 },
1677 ],
1678 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
1679 # masked. Skipped characters do not count towards this tally.
1680 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
1681 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
1682 # code or credit card number. This string must have a length of 1. If not
1683 # supplied, this value defaults to `*` for strings, and `0` for digits.
1684 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
1685 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
1686 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
1687 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
1688 # is `true`, then the string `12345` is masked as `12***`.
1689 },
1690 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
1691 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
1692 # output would be &#x27;My phone number is &#x27;.
1693 },
1694 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
1695 # Bucketing transformation can provide all of this functionality,
1696 # but requires more configuration. This message is provided as a convenience to
1697 # the user for simple bucketing strategies.
1698 #
1699 # The transformed value will be a hyphenated string of
1700 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
1701 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
1702 #
1703 # This can be used on data of type: double, long.
1704 #
1705 # If the bound Value type differs from the type of data
1706 # being transformed, we will first attempt converting the type of the data to
1707 # be transformed to match the type of the bound before comparing.
1708 #
1709 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
1710 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
1711 # grouped together into a single bucket; for example if `upper_bound` = 89,
1712 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
1713 # Note that for the purposes of inspection or transformation, the number
1714 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1715 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
1716 # 123456789, the number of bytes would be counted as 9, even though an
1717 # int64 only holds up to 8 bytes of data.
1718 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1719 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1720 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1721 # types are google.type.Date and `google.protobuf.Timestamp`.
1722 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1723 # allow the value 60 if it allows leap-seconds.
1724 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1725 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1726 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1727 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1728 },
1729 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1730 &quot;floatValue&quot;: 3.14, # float
1731 &quot;stringValue&quot;: &quot;A String&quot;, # string
1732 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1733 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1734 # and time zone are either specified elsewhere or are not significant. The date
1735 # is relative to the Proleptic Gregorian Calendar. This can represent:
1736 #
1737 # * A full date, with non-zero year, month and day values
1738 # * A month and day value, with a zero year, e.g. an anniversary
1739 # * A year on its own, with zero month and day values
1740 # * A year and month value, with a zero day, e.g. a credit card expiration date
1741 #
1742 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
1743 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1744 # month and day.
1745 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1746 # a year.
1747 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1748 # if specifying a year by itself or a year and month where the day is not
1749 # significant.
1750 },
1751 &quot;booleanValue&quot;: True or False, # boolean
1752 },
1753 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
1754 # grouped together into a single bucket; for example if `lower_bound` = 10,
1755 # then all values less than 10 are replaced with the value &quot;-10&quot;.
1756 # Note that for the purposes of inspection or transformation, the number
1757 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1758 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
1759 # 123456789, the number of bytes would be counted as 9, even though an
1760 # int64 only holds up to 8 bytes of data.
1761 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1762 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1763 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1764 # types are google.type.Date and `google.protobuf.Timestamp`.
1765 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1766 # allow the value 60 if it allows leap-seconds.
1767 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1768 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1769 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1770 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1771 },
1772 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1773 &quot;floatValue&quot;: 3.14, # float
1774 &quot;stringValue&quot;: &quot;A String&quot;, # string
1775 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1776 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1777 # and time zone are either specified elsewhere or are not significant. The date
1778 # is relative to the Proleptic Gregorian Calendar. This can represent:
1779 #
1780 # * A full date, with non-zero year, month and day values
1781 # * A month and day value, with a zero year, e.g. an anniversary
1782 # * A year on its own, with zero month and day values
1783 # * A year and month value, with a zero day, e.g. a credit card expiration date
1784 #
1785 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
1786 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1787 # month and day.
1788 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1789 # a year.
1790 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1791 # if specifying a year by itself or a year and month where the day is not
1792 # significant.
1793 },
1794 &quot;booleanValue&quot;: True or False, # boolean
1795 },
1796 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
1797 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
1798 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
1799 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
1800 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001801 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
1802 # (FPE) with the FFX mode of operation; however when used in the
1803 # `ReidentifyContent` API method, it serves the opposite function by reversing
1804 # the surrogate back into the original identifier. The identifier must be
1805 # encoded as ASCII. For a given crypto key and context, the same identifier
1806 # will be replaced with the same surrogate. Identifiers must be at least two
1807 # characters long. In the case that the identifier is the empty string, it will
1808 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
1809 # more.
1810 #
1811 # Note: We recommend using CryptoDeterministicConfig for all use cases which
1812 # do not require preserving the input alphabet space and size, plus warrant
1813 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07001814 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
1815 # This annotation will be applied to the surrogate by prefixing it with
1816 # the name of the custom infoType followed by the number of
1817 # characters comprising the surrogate. The following scheme defines the
1818 # format: info_type_name(surrogate_character_count):surrogate
1819 #
1820 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
1821 # the surrogate is &#x27;abc&#x27;, the full replacement value
1822 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
1823 #
1824 # This annotation identifies the surrogate when inspecting content using the
1825 # custom infoType
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001826 # [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
Bu Sun Kim65020912020-05-20 12:08:20 -07001827 # This facilitates reversal of the surrogate when it occurs in free text.
1828 #
1829 # In order for inspection to work properly, the name of this infoType must
1830 # not occur naturally anywhere in your data; otherwise, inspection may
1831 # find a surrogate that does not correspond to an actual identifier.
1832 # Therefore, choose your custom infoType name carefully after considering
1833 # what your data looks like. One way to select a name that has a high chance
1834 # of yielding reliable detection is to include one or more unicode characters
1835 # that are highly improbable to exist in your data.
1836 # For example, assuming your data is entered from a regular ASCII keyboard,
1837 # the symbol with the hex code point 29DD might be used like so:
1838 # ⧝MY_TOKEN_TYPE
1839 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
1840 # creating a CustomInfoType, or one of the names listed
1841 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001842 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
1843 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001844 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001845 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Bu Sun Kim65020912020-05-20 12:08:20 -07001846 &quot;context&quot;: { # General identifier of a data field in a storage service. # The &#x27;tweak&#x27;, a context may be used for higher security since the same
1847 # identifier in two different contexts won&#x27;t be given the same surrogate. If
1848 # the context is not set, a default tweak will be used.
1849 #
1850 # If the context is set but:
1851 #
1852 # 1. there is no record present when transforming a given value or
1853 # 1. the field is not present when transforming a given value,
1854 #
1855 # a default tweak will be used.
1856 #
1857 # Note that case (1) is expected when an `InfoTypeTransformation` is
1858 # applied to both structured and non-structured `ContentItem`s.
1859 # Currently, the referenced field may be of value type integer or string.
1860 #
1861 # The tweak is constructed as a sequence of bytes in big endian byte order
1862 # such that:
1863 #
1864 # - a 64 bit integer is encoded followed by a single byte of value 1
1865 # - a string is encoded in UTF-8 format followed by a single byte of value 2
1866 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1867 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001868 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
1869 # that the FFX mode natively supports. This happens before/after
1870 # encryption/decryption.
1871 # Each character listed must appear only once.
1872 # Number of characters must be in the range [2, 95].
1873 # This must be encoded as ASCII.
1874 # The order of characters does not matter.
1875 # The full list of allowed characters is:
1876 # &lt;code&gt;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
1877 # ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/&lt;/code&gt;
Bu Sun Kim65020912020-05-20 12:08:20 -07001878 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
1879 # a key encryption key (KEK) stored by KMS).
1880 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
1881 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
1882 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07001883 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
1884 # It will be discarded after the request finishes.
1885 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
1886 # This is an arbitrary string used to differentiate different keys.
1887 # A unique key is generated per name: two separate `TransientCryptoKey`
1888 # protos share the same generated key if their names are the same.
1889 # When the data crypto key is generated, this name is not used in any way
1890 # (repeating the api call will result in a different key being generated).
1891 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001892 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
1893 # The wrapped key must be a 128/192/256 bit key.
1894 # Authorization requires the following IAM permissions when sending a request
1895 # to perform a crypto transformation using a kms-wrapped crypto key:
1896 # dlp.kms.encrypt
1897 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1898 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1899 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001900 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
1901 # leaking the key. Choose another type of key if possible.
1902 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1903 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001904 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001905 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07001906 },
1907 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
1908 # input. Outputs a base64 encoded representation of the encrypted output.
1909 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001910 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
1911 # referential integrity such that the same identifier in two different
1912 # contexts will be given a distinct surrogate. The context is appended to
1913 # plaintext value being encrypted. On decryption the provided context is
1914 # validated against the value used during encryption. If a context was
1915 # provided during encryption, same context must be provided during decryption
1916 # as well.
1917 #
1918 # If the context is not set, plaintext would be used as is for encryption.
1919 # If the context is set but:
1920 #
1921 # 1. there is no record present when transforming a given value or
1922 # 2. the field is not present when transforming a given value,
1923 #
1924 # plaintext would be used as is for encryption.
1925 #
1926 # Note that case (1) is expected when an `InfoTypeTransformation` is
1927 # applied to both structured and non-structured `ContentItem`s.
1928 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1929 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001930 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
1931 # This annotation will be applied to the surrogate by prefixing it with
1932 # the name of the custom info type followed by the number of
1933 # characters comprising the surrogate. The following scheme defines the
1934 # format: {info type name}({surrogate character count}):{surrogate}
1935 #
1936 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
1937 # the surrogate is &#x27;abc&#x27;, the full replacement value
1938 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
1939 #
1940 # This annotation identifies the surrogate when inspecting content using the
1941 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
1942 # surrogate when it occurs in free text.
1943 #
1944 # Note: For record transformations where the entire cell in a table is being
1945 # transformed, surrogates are not mandatory. Surrogates are used to denote
1946 # the location of the token and are necessary for re-identification in free
1947 # form text.
1948 #
1949 # In order for inspection to work properly, the name of this info type must
1950 # not occur naturally anywhere in your data; otherwise, inspection may either
1951 #
1952 # - reverse a surrogate that does not correspond to an actual identifier
1953 # - be unable to parse the surrogate and result in an error
1954 #
1955 # Therefore, choose your custom info type name carefully after considering
1956 # what your data looks like. One way to select a name that has a high chance
1957 # of yielding reliable detection is to include one or more unicode characters
1958 # that are highly improbable to exist in your data.
1959 # For example, assuming your data is entered from a regular ASCII keyboard,
1960 # the symbol with the hex code point 29DD might be used like so:
1961 # ⧝MY_TOKEN_TYPE.
1962 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
1963 # creating a CustomInfoType, or one of the names listed
1964 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001965 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
1966 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001967 },
1968 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
1969 # a key encryption key (KEK) stored by KMS).
1970 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
1971 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
1972 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07001973 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
1974 # It will be discarded after the request finishes.
1975 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
1976 # This is an arbitrary string used to differentiate different keys.
1977 # A unique key is generated per name: two separate `TransientCryptoKey`
1978 # protos share the same generated key if their names are the same.
1979 # When the data crypto key is generated, this name is not used in any way
1980 # (repeating the api call will result in a different key being generated).
1981 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001982 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
1983 # The wrapped key must be a 128/192/256 bit key.
1984 # Authorization requires the following IAM permissions when sending a request
1985 # to perform a crypto transformation using a kms-wrapped crypto key:
1986 # dlp.kms.encrypt
1987 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1988 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1989 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001990 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
1991 # leaking the key. Choose another type of key if possible.
1992 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1993 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001994 },
1995 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001996 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
1997 # replacement values are dynamically provided by the user for custom behavior,
1998 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
1999 # This can be used on
2000 # data of type: number, long, string, timestamp.
2001 # If the bound `Value` type differs from the type of data being transformed, we
2002 # will first attempt converting the type of the data to be transformed to match
2003 # the type of the bound before comparing.
2004 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
2005 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
2006 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002007 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
Bu Sun Kim65020912020-05-20 12:08:20 -07002008 # Note that for the purposes of inspection or transformation, the number
2009 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2010 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2011 # 123456789, the number of bytes would be counted as 9, even though an
2012 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002013 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2014 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2015 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2016 # types are google.type.Date and `google.protobuf.Timestamp`.
2017 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2018 # allow the value 60 if it allows leap-seconds.
2019 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2020 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2021 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2022 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2023 },
2024 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2025 &quot;floatValue&quot;: 3.14, # float
2026 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim65020912020-05-20 12:08:20 -07002027 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2028 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2029 # and time zone are either specified elsewhere or are not significant. The date
2030 # is relative to the Proleptic Gregorian Calendar. This can represent:
2031 #
2032 # * A full date, with non-zero year, month and day values
2033 # * A month and day value, with a zero year, e.g. an anniversary
2034 # * A year on its own, with zero month and day values
2035 # * A year and month value, with a zero day, e.g. a credit card expiration date
2036 #
2037 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002038 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2039 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002040 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2041 # a year.
Bu Sun Kim65020912020-05-20 12:08:20 -07002042 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2043 # if specifying a year by itself or a year and month where the day is not
2044 # significant.
2045 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002046 &quot;booleanValue&quot;: True or False, # boolean
2047 },
2048 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Required. Replacement value for this bucket.
2049 # Note that for the purposes of inspection or transformation, the number
2050 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2051 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2052 # 123456789, the number of bytes would be counted as 9, even though an
2053 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07002054 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2055 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2056 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2057 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002058 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2059 # allow the value 60 if it allows leap-seconds.
2060 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002061 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2062 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2063 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2064 },
2065 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2066 &quot;floatValue&quot;: 3.14, # float
2067 &quot;stringValue&quot;: &quot;A String&quot;, # string
2068 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2069 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2070 # and time zone are either specified elsewhere or are not significant. The date
2071 # is relative to the Proleptic Gregorian Calendar. This can represent:
2072 #
2073 # * A full date, with non-zero year, month and day values
2074 # * A month and day value, with a zero year, e.g. an anniversary
2075 # * A year on its own, with zero month and day values
2076 # * A year and month value, with a zero day, e.g. a credit card expiration date
2077 #
2078 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
2079 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2080 # month and day.
2081 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2082 # a year.
2083 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2084 # if specifying a year by itself or a year and month where the day is not
2085 # significant.
Bu Sun Kim65020912020-05-20 12:08:20 -07002086 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002087 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002088 },
2089 &quot;min&quot;: { # Set of primitive values supported by the system. # Lower bound of the range, inclusive. Type should be the same as max if
2090 # used.
2091 # Note that for the purposes of inspection or transformation, the number
2092 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2093 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2094 # 123456789, the number of bytes would be counted as 9, even though an
2095 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002096 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2097 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2098 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2099 # types are google.type.Date and `google.protobuf.Timestamp`.
2100 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2101 # allow the value 60 if it allows leap-seconds.
2102 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2103 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2104 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2105 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2106 },
2107 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2108 &quot;floatValue&quot;: 3.14, # float
2109 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002110 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2111 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2112 # and time zone are either specified elsewhere or are not significant. The date
2113 # is relative to the Proleptic Gregorian Calendar. This can represent:
2114 #
2115 # * A full date, with non-zero year, month and day values
2116 # * A month and day value, with a zero year, e.g. an anniversary
2117 # * A year on its own, with zero month and day values
2118 # * A year and month value, with a zero day, e.g. a credit card expiration date
2119 #
2120 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002121 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2122 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002123 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2124 # a year.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002125 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2126 # if specifying a year by itself or a year and month where the day is not
2127 # significant.
2128 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002129 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim65020912020-05-20 12:08:20 -07002130 },
2131 },
2132 ],
2133 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002134 },
2135 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to # Only apply the transformation if the condition evaluates to true for the
2136 # given `RecordCondition`. The conditions are allowed to reference fields
2137 # that are not used in the actual transformation.
2138 #
2139 # Example Use Cases:
2140 #
2141 # - Apply a different bucket transformation to an age column if the zip code
2142 # column for the same record is within a specific range.
2143 # - Redact a field if the date of birth field is greater than 85.
2144 # a field.
2145 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
Bu Sun Kim65020912020-05-20 12:08:20 -07002146 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
2147 &quot;conditions&quot;: [ # A collection of conditions.
2148 { # The field type of `value` and `field` do not need to match to be
2149 # considered equal, but not all comparisons are possible.
2150 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
2151 # but all other comparisons are invalid with incompatible types.
2152 # A `value` of type:
2153 #
2154 # - `string` can be compared against all other types
2155 # - `boolean` can only be compared against other booleans
2156 # - `integer` can be compared against doubles or a string if the string value
2157 # can be parsed as an integer.
2158 # - `double` can be compared against integers or a string if the string can
2159 # be parsed as a double.
2160 # - `Timestamp` can be compared against strings in RFC 3339 date string
2161 # format.
2162 # - `TimeOfDay` can be compared against timestamps and strings in the format
2163 # of &#x27;HH:mm:ss&#x27;.
2164 #
2165 # If we fail to compare do to type mismatch, a warning will be given and
2166 # the condition will evaluate to false.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002167 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
2168 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2169 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002170 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
2171 # Note that for the purposes of inspection or transformation, the number
2172 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2173 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2174 # 123456789, the number of bytes would be counted as 9, even though an
2175 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002176 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2177 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2178 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2179 # types are google.type.Date and `google.protobuf.Timestamp`.
2180 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2181 # allow the value 60 if it allows leap-seconds.
2182 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2183 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2184 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2185 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2186 },
2187 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2188 &quot;floatValue&quot;: 3.14, # float
2189 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim65020912020-05-20 12:08:20 -07002190 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2191 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2192 # and time zone are either specified elsewhere or are not significant. The date
2193 # is relative to the Proleptic Gregorian Calendar. This can represent:
2194 #
2195 # * A full date, with non-zero year, month and day values
2196 # * A month and day value, with a zero year, e.g. an anniversary
2197 # * A year on its own, with zero month and day values
2198 # * A year and month value, with a zero day, e.g. a credit card expiration date
2199 #
2200 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002201 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2202 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002203 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2204 # a year.
Bu Sun Kim65020912020-05-20 12:08:20 -07002205 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2206 # if specifying a year by itself or a year and month where the day is not
2207 # significant.
2208 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002209 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002210 },
2211 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
Bu Sun Kim65020912020-05-20 12:08:20 -07002212 },
2213 ],
2214 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002215 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
2216 # only supported value is `AND`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002217 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002218 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002219 &quot;fields&quot;: [ # Required. Input field(s) to apply the transformation to.
2220 { # General identifier of a data field in a storage service.
2221 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2222 },
2223 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002224 },
2225 ],
2226 },
2227 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002228 &quot;deidentifyTemplateName&quot;: &quot;A String&quot;, # Template to use. Any configuration directly specified in
2229 # deidentify_config will override those set in the template. Singular fields
2230 # that are set in this request will replace their corresponding fields in the
2231 # template. Repeated fields are appended. Singular sub-messages and groups
2232 # are recursively merged.
2233 &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # Configuration for the inspector.
2234 # Items specified here will override the template referenced by the
2235 # inspect_template_name argument.
2236 # When used with redactContent only info_types and min_likelihood are currently
2237 # used.
2238 &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
2239 # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
2240 { # Custom information type provided by the user. Used to find domain-specific
2241 # sensitive information configurable to the data in question.
2242 &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
2243 # be used to match sensitive information specific to the data, such as a list
2244 # of employee IDs or job titles.
2245 #
2246 # Dictionary words are case-insensitive and all characters other than letters
2247 # and digits in the unicode [Basic Multilingual
2248 # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
2249 # will be replaced with whitespace when scanning for matches, so the
2250 # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
2251 # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
2252 # surrounding any match must be of a different type than the adjacent
2253 # characters within the word, so letters must be next to non-letters and
2254 # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
2255 # match the first three letters of the text &quot;jen123&quot; but will return no
2256 # matches for &quot;jennifer&quot;.
2257 #
2258 # Dictionary words containing a large number of characters that are not
2259 # letters or digits may result in unexpected findings because such characters
2260 # are treated as whitespace. The
2261 # [limits](https://cloud.google.com/dlp/limits) page contains details about
2262 # the size limits of dictionaries. For dictionaries that do not fit within
2263 # these constraints, consider using `LargeCustomDictionaryConfig` in the
2264 # `StoredInfoType` API.
2265 &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
2266 # is accepted.
2267 &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
2268 # Example: gs://[BUCKET_NAME]/dictionary.txt
2269 },
2270 &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
2271 &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
2272 # at least one phrase and every phrase must contain at least 2 characters
2273 # that are letters or digits. [required]
2274 &quot;A String&quot;,
2275 ],
2276 },
2277 },
2278 &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
2279 # infoType, when the name matches one of existing infoTypes and that infoType
2280 # is specified in `InspectContent.info_types` field. Specifying the latter
2281 # adds findings to the one detected by the system. If built-in info type is
2282 # not specified in `InspectContent.info_types` list then the name is treated
2283 # as a custom info type.
2284 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
2285 # creating a CustomInfoType, or one of the names listed
2286 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
2287 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
2288 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
2289 },
2290 &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
2291 # altered by a detection rule if the finding meets the criteria specified by
2292 # the rule. Defaults to `VERY_LIKELY` if not specified.
2293 &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
2294 # Rules are applied in order that they are specified. Not supported for the
2295 # `surrogate_type` CustomInfoType.
2296 { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
2297 # `CustomInfoType` to alter behavior under certain circumstances, depending
2298 # on the specific details of the rule. Not supported for the `surrogate_type`
2299 # custom infoType.
2300 &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
2301 # proximity of hotwords.
2302 &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
2303 # The total length of the window cannot exceed 1000 characters. Note that
2304 # the finding itself will be included in the window, so that hotwords may
2305 # be used to match substrings of the finding itself. For example, the
2306 # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
2307 # adjusted upwards if the area code is known to be the local area code of
2308 # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
2309 # is the area code in question.
2310 # rule.
2311 &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
2312 &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
2313 },
2314 &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
2315 # part of a detection rule.
2316 &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
2317 &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
2318 # levels. For example, if a finding would be `POSSIBLE` without the
2319 # detection rule and `relative_likelihood` is 1, then it is upgraded to
2320 # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
2321 # Likelihood may never drop below `VERY_UNLIKELY` or exceed
2322 # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
2323 # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
2324 # a final likelihood of `LIKELY`.
2325 },
2326 &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
2327 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
2328 # specified, the entire match is returned. No more than 3 may be included.
2329 42,
2330 ],
2331 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
2332 # (https://github.com/google/re2/wiki/Syntax) can be found under the
2333 # google/re2 repository on GitHub.
2334 },
2335 },
2336 },
2337 ],
2338 &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
2339 # support reversing.
2340 # such as
2341 # [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
2342 # These types of transformations are
2343 # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
2344 # output. This should be used in conjunction with a field on the
2345 # transformation such as `surrogate_info_type`. This CustomInfoType does
2346 # not support the use of `detection_rules`.
2347 },
2348 &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
2349 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
2350 # specified, the entire match is returned. No more than 3 may be included.
2351 42,
2352 ],
2353 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
2354 # (https://github.com/google/re2/wiki/Syntax) can be found under the
2355 # google/re2 repository on GitHub.
2356 },
2357 &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
2358 # `InspectDataSource`. Not currently supported in `InspectContent`.
2359 &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
2360 # `organizations/433245324/storedInfoTypes/432452342` or
2361 # `projects/project-id/storedInfoTypes/432452342`.
2362 &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
2363 # inspection was created. Output-only field, populated by the system.
2364 },
2365 &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
2366 # to be returned. It still can be used for rules matching.
2367 },
2368 ],
2369 &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
2370 # POSSIBLE.
2371 # See https://cloud.google.com/dlp/docs/likelihood to learn more.
2372 &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
2373 &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
2374 # When set within `InspectContentRequest`, the maximum returned is 2000
2375 # regardless if this is set higher.
2376 &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
2377 { # Max findings configuration per infoType, per content item or long
2378 # running DlpJob.
2379 &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
2380 # info_type should be provided. If InfoTypeLimit does not have an
2381 # info_type, the DLP API applies the limit against all info_types that
2382 # are found but not specified in another InfoTypeLimit.
2383 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
2384 # creating a CustomInfoType, or one of the names listed
2385 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
2386 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
2387 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
2388 },
2389 &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
2390 },
2391 ],
2392 &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
2393 # When set within `InspectJobConfig`,
2394 # the maximum returned is 2000 regardless if this is set higher.
2395 # When set within `InspectContentRequest`, this field is ignored.
2396 },
2397 &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
2398 &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
2399 # included in the response; see Finding.quote.
2400 &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
2401 # Exclusion rules, contained in the set are executed in the end, other
2402 # rules are executed in the order they are specified for each info type.
2403 { # Rule set for modifying a set of infoTypes to alter behavior under certain
2404 # circumstances, depending on the specific details of the rules within the set.
2405 &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
2406 { # Type of information detected by the API.
2407 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
2408 # creating a CustomInfoType, or one of the names listed
2409 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
2410 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
2411 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
2412 },
2413 ],
2414 &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
2415 { # A single inspection rule to be applied to infoTypes, specified in
2416 # `InspectionRuleSet`.
2417 &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
2418 # proximity of hotwords.
2419 &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
2420 # The total length of the window cannot exceed 1000 characters. Note that
2421 # the finding itself will be included in the window, so that hotwords may
2422 # be used to match substrings of the finding itself. For example, the
2423 # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
2424 # adjusted upwards if the area code is known to be the local area code of
2425 # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
2426 # is the area code in question.
2427 # rule.
2428 &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
2429 &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
2430 },
2431 &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
2432 # part of a detection rule.
2433 &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
2434 &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
2435 # levels. For example, if a finding would be `POSSIBLE` without the
2436 # detection rule and `relative_likelihood` is 1, then it is upgraded to
2437 # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
2438 # Likelihood may never drop below `VERY_UNLIKELY` or exceed
2439 # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
2440 # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
2441 # a final likelihood of `LIKELY`.
2442 },
2443 &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
2444 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
2445 # specified, the entire match is returned. No more than 3 may be included.
2446 42,
2447 ],
2448 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
2449 # (https://github.com/google/re2/wiki/Syntax) can be found under the
2450 # google/re2 repository on GitHub.
2451 },
2452 },
2453 &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
2454 # `InspectionRuleSet` are removed from results.
2455 &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
2456 &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
2457 # be used to match sensitive information specific to the data, such as a list
2458 # of employee IDs or job titles.
2459 #
2460 # Dictionary words are case-insensitive and all characters other than letters
2461 # and digits in the unicode [Basic Multilingual
2462 # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
2463 # will be replaced with whitespace when scanning for matches, so the
2464 # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
2465 # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
2466 # surrounding any match must be of a different type than the adjacent
2467 # characters within the word, so letters must be next to non-letters and
2468 # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
2469 # match the first three letters of the text &quot;jen123&quot; but will return no
2470 # matches for &quot;jennifer&quot;.
2471 #
2472 # Dictionary words containing a large number of characters that are not
2473 # letters or digits may result in unexpected findings because such characters
2474 # are treated as whitespace. The
2475 # [limits](https://cloud.google.com/dlp/limits) page contains details about
2476 # the size limits of dictionaries. For dictionaries that do not fit within
2477 # these constraints, consider using `LargeCustomDictionaryConfig` in the
2478 # `StoredInfoType` API.
2479 &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
2480 # is accepted.
2481 &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
2482 # Example: gs://[BUCKET_NAME]/dictionary.txt
2483 },
2484 &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
2485 &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
2486 # at least one phrase and every phrase must contain at least 2 characters
2487 # that are letters or digits. [required]
2488 &quot;A String&quot;,
2489 ],
2490 },
2491 },
2492 &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
2493 &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
2494 # contained within with a finding of an infoType from this list. For
2495 # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
2496 # `exclusion_rule` containing `exclude_info_types.info_types` with
2497 # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
2498 # with EMAIL_ADDRESS finding.
2499 # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
2500 # finding, namely email address.
2501 { # Type of information detected by the API.
2502 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
2503 # creating a CustomInfoType, or one of the names listed
2504 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
2505 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
2506 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
2507 },
2508 ],
2509 },
2510 &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
2511 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
2512 # specified, the entire match is returned. No more than 3 may be included.
2513 42,
2514 ],
2515 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
2516 # (https://github.com/google/re2/wiki/Syntax) can be found under the
2517 # google/re2 repository on GitHub.
2518 },
2519 },
2520 },
2521 ],
2522 },
2523 ],
2524 &quot;contentOptions&quot;: [ # List of options defining data content to scan.
2525 # If empty, text, images, and other content will be included.
2526 &quot;A String&quot;,
2527 ],
2528 &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
2529 # InfoType values returned by ListInfoTypes or listed at
2530 # https://cloud.google.com/dlp/docs/infotypes-reference.
2531 #
2532 # When no InfoTypes or CustomInfoTypes are specified in a request, the
2533 # system may automatically choose what detectors to run. By default this may
2534 # be all types, but may change over time as detectors are updated.
2535 #
2536 # If you need precise control and predictability as to what detectors are
2537 # run you should specify specific InfoTypes listed in the reference,
2538 # otherwise a default list will be used, which may change over time.
2539 { # Type of information detected by the API.
2540 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
2541 # creating a CustomInfoType, or one of the names listed
2542 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
2543 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
2544 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
2545 },
2546 ],
2547 },
2548 &quot;inspectTemplateName&quot;: &quot;A String&quot;, # Template to use. Any configuration directly specified in
2549 # inspect_config will override those set in the template. Singular fields
2550 # that are set in this request will replace their corresponding fields in the
2551 # template. Repeated fields are appended. Singular sub-messages and groups
2552 # are recursively merged.
2553 &quot;locationId&quot;: &quot;A String&quot;, # Deprecated. This field has no effect.
Bu Sun Kim65020912020-05-20 12:08:20 -07002554 }
2555
2556 x__xgafv: string, V1 error format.
2557 Allowed values
2558 1 - v1 error format
2559 2 - v2 error format
2560
2561Returns:
2562 An object of the form:
2563
2564 { # Results of de-identifying a ContentItem.
Bu Sun Kim65020912020-05-20 12:08:20 -07002565 &quot;overview&quot;: { # Overview of the modifications that occurred. # An overview of the changes that were made on the `item`.
2566 &quot;transformationSummaries&quot;: [ # Transformations applied to the dataset.
2567 { # Summary of a single transformation.
2568 # Only one of &#x27;transformation&#x27;, &#x27;field_transformation&#x27;, or &#x27;record_suppress&#x27;
2569 # will be set.
Bu Sun Kim65020912020-05-20 12:08:20 -07002570 &quot;transformation&quot;: { # A rule for transforming a value. # The specific transformation these stats apply to.
Bu Sun Kim65020912020-05-20 12:08:20 -07002571 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
2572 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
2573 # to learn more.
2574 &quot;context&quot;: { # General identifier of a data field in a storage service. # Points to the field that contains the context, for example, an entity id.
2575 # If set, must also set cryptoKey. If set, shift will be consistent for the
2576 # given context.
2577 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2578 },
2579 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
2580 # range (inclusive ends). Negative means shift to earlier in time. Must not
2581 # be more than 365250 days (1000 years) each direction.
2582 #
2583 # For example, 3 means shift date to at most 3 days into the future.
Bu Sun Kim65020912020-05-20 12:08:20 -07002584 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Causes the shift to be computed based on this key and the context. This
2585 # results in the same shift for the same context and crypto_key. If
2586 # set, must also set context. Can only be applied to table items.
2587 # a key encryption key (KEK) stored by KMS).
2588 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
2589 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
2590 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07002591 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
2592 # It will be discarded after the request finishes.
2593 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
2594 # This is an arbitrary string used to differentiate different keys.
2595 # A unique key is generated per name: two separate `TransientCryptoKey`
2596 # protos share the same generated key if their names are the same.
2597 # When the data crypto key is generated, this name is not used in any way
2598 # (repeating the api call will result in a different key being generated).
2599 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002600 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
2601 # The wrapped key must be a 128/192/256 bit key.
2602 # Authorization requires the following IAM permissions when sending a request
2603 # to perform a crypto transformation using a kms-wrapped crypto key:
2604 # dlp.kms.encrypt
2605 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2606 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2607 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002608 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
2609 # leaking the key. Choose another type of key if possible.
2610 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2611 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002612 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002613 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
2614 },
2615 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
2616 # portion of the value.
2617 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
Bu Sun Kim65020912020-05-20 12:08:20 -07002618 },
2619 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
2620 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002621 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
2622 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
2623 # Note that for the purposes of inspection or transformation, the number
2624 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2625 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2626 # 123456789, the number of bytes would be counted as 9, even though an
2627 # int64 only holds up to 8 bytes of data.
2628 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2629 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2630 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2631 # types are google.type.Date and `google.protobuf.Timestamp`.
2632 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2633 # allow the value 60 if it allows leap-seconds.
2634 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2635 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2636 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2637 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2638 },
2639 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2640 &quot;floatValue&quot;: 3.14, # float
2641 &quot;stringValue&quot;: &quot;A String&quot;, # string
2642 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2643 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2644 # and time zone are either specified elsewhere or are not significant. The date
2645 # is relative to the Proleptic Gregorian Calendar. This can represent:
2646 #
2647 # * A full date, with non-zero year, month and day values
2648 # * A month and day value, with a zero year, e.g. an anniversary
2649 # * A year on its own, with zero month and day values
2650 # * A year and month value, with a zero day, e.g. a credit card expiration date
2651 #
2652 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
2653 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2654 # month and day.
2655 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2656 # a year.
2657 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2658 # if specifying a year by itself or a year and month where the day is not
2659 # significant.
2660 },
2661 &quot;booleanValue&quot;: True or False, # boolean
2662 },
2663 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002664 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
2665 # Uses SHA-256.
2666 # The key size must be either 32 or 64 bytes.
2667 # Outputs a base64 encoded representation of the hashed output
2668 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
2669 # Currently, only string and integer values can be hashed.
2670 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
2671 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
2672 # a key encryption key (KEK) stored by KMS).
2673 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
2674 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
2675 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07002676 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
2677 # It will be discarded after the request finishes.
2678 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
2679 # This is an arbitrary string used to differentiate different keys.
2680 # A unique key is generated per name: two separate `TransientCryptoKey`
2681 # protos share the same generated key if their names are the same.
2682 # When the data crypto key is generated, this name is not used in any way
2683 # (repeating the api call will result in a different key being generated).
2684 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002685 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
2686 # The wrapped key must be a 128/192/256 bit key.
2687 # Authorization requires the following IAM permissions when sending a request
2688 # to perform a crypto transformation using a kms-wrapped crypto key:
2689 # dlp.kms.encrypt
2690 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2691 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2692 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002693 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
2694 # leaking the key. Choose another type of key if possible.
2695 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2696 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002697 },
2698 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002699 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
2700 # fixed character. Masking can start from the beginning or end of the string.
2701 # This can be used on data of any type (numbers, longs, and so on) and when
2702 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
2703 # type. (This allows you to take a long like 123 and modify it to a string like
2704 # **3.
2705 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
2706 # characters. For example, if the input string is `555-555-5555` and you
2707 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
2708 # returns `***-**5-5555`.
2709 { # Characters to skip when doing deidentification of a value. These will be left
2710 # alone and skipped.
2711 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
2712 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
2713 # punctuation.
2714 },
2715 ],
2716 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
2717 # masked. Skipped characters do not count towards this tally.
2718 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
2719 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
2720 # code or credit card number. This string must have a length of 1. If not
2721 # supplied, this value defaults to `*` for strings, and `0` for digits.
2722 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
2723 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
2724 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
2725 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
2726 # is `true`, then the string `12345` is masked as `12***`.
2727 },
2728 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
2729 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
2730 # output would be &#x27;My phone number is &#x27;.
2731 },
2732 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
2733 # Bucketing transformation can provide all of this functionality,
2734 # but requires more configuration. This message is provided as a convenience to
2735 # the user for simple bucketing strategies.
2736 #
2737 # The transformed value will be a hyphenated string of
2738 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
2739 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
2740 #
2741 # This can be used on data of type: double, long.
2742 #
2743 # If the bound Value type differs from the type of data
2744 # being transformed, we will first attempt converting the type of the data to
2745 # be transformed to match the type of the bound before comparing.
2746 #
2747 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
2748 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
2749 # grouped together into a single bucket; for example if `upper_bound` = 89,
2750 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
2751 # Note that for the purposes of inspection or transformation, the number
2752 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2753 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2754 # 123456789, the number of bytes would be counted as 9, even though an
2755 # int64 only holds up to 8 bytes of data.
2756 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2757 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2758 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2759 # types are google.type.Date and `google.protobuf.Timestamp`.
2760 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2761 # allow the value 60 if it allows leap-seconds.
2762 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2763 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2764 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2765 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2766 },
2767 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2768 &quot;floatValue&quot;: 3.14, # float
2769 &quot;stringValue&quot;: &quot;A String&quot;, # string
2770 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2771 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2772 # and time zone are either specified elsewhere or are not significant. The date
2773 # is relative to the Proleptic Gregorian Calendar. This can represent:
2774 #
2775 # * A full date, with non-zero year, month and day values
2776 # * A month and day value, with a zero year, e.g. an anniversary
2777 # * A year on its own, with zero month and day values
2778 # * A year and month value, with a zero day, e.g. a credit card expiration date
2779 #
2780 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
2781 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2782 # month and day.
2783 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2784 # a year.
2785 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2786 # if specifying a year by itself or a year and month where the day is not
2787 # significant.
2788 },
2789 &quot;booleanValue&quot;: True or False, # boolean
2790 },
2791 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
2792 # grouped together into a single bucket; for example if `lower_bound` = 10,
2793 # then all values less than 10 are replaced with the value &quot;-10&quot;.
2794 # Note that for the purposes of inspection or transformation, the number
2795 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2796 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2797 # 123456789, the number of bytes would be counted as 9, even though an
2798 # int64 only holds up to 8 bytes of data.
2799 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2800 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2801 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2802 # types are google.type.Date and `google.protobuf.Timestamp`.
2803 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2804 # allow the value 60 if it allows leap-seconds.
2805 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2806 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2807 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2808 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2809 },
2810 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2811 &quot;floatValue&quot;: 3.14, # float
2812 &quot;stringValue&quot;: &quot;A String&quot;, # string
2813 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2814 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2815 # and time zone are either specified elsewhere or are not significant. The date
2816 # is relative to the Proleptic Gregorian Calendar. This can represent:
2817 #
2818 # * A full date, with non-zero year, month and day values
2819 # * A month and day value, with a zero year, e.g. an anniversary
2820 # * A year on its own, with zero month and day values
2821 # * A year and month value, with a zero day, e.g. a credit card expiration date
2822 #
2823 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
2824 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2825 # month and day.
2826 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2827 # a year.
2828 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2829 # if specifying a year by itself or a year and month where the day is not
2830 # significant.
2831 },
2832 &quot;booleanValue&quot;: True or False, # boolean
2833 },
2834 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
2835 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
2836 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
2837 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
2838 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002839 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
2840 # (FPE) with the FFX mode of operation; however when used in the
2841 # `ReidentifyContent` API method, it serves the opposite function by reversing
2842 # the surrogate back into the original identifier. The identifier must be
2843 # encoded as ASCII. For a given crypto key and context, the same identifier
2844 # will be replaced with the same surrogate. Identifiers must be at least two
2845 # characters long. In the case that the identifier is the empty string, it will
2846 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
2847 # more.
2848 #
2849 # Note: We recommend using CryptoDeterministicConfig for all use cases which
2850 # do not require preserving the input alphabet space and size, plus warrant
2851 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07002852 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
2853 # This annotation will be applied to the surrogate by prefixing it with
2854 # the name of the custom infoType followed by the number of
2855 # characters comprising the surrogate. The following scheme defines the
2856 # format: info_type_name(surrogate_character_count):surrogate
2857 #
2858 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
2859 # the surrogate is &#x27;abc&#x27;, the full replacement value
2860 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
2861 #
2862 # This annotation identifies the surrogate when inspecting content using the
2863 # custom infoType
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002864 # [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
Bu Sun Kim65020912020-05-20 12:08:20 -07002865 # This facilitates reversal of the surrogate when it occurs in free text.
2866 #
2867 # In order for inspection to work properly, the name of this infoType must
2868 # not occur naturally anywhere in your data; otherwise, inspection may
2869 # find a surrogate that does not correspond to an actual identifier.
2870 # Therefore, choose your custom infoType name carefully after considering
2871 # what your data looks like. One way to select a name that has a high chance
2872 # of yielding reliable detection is to include one or more unicode characters
2873 # that are highly improbable to exist in your data.
2874 # For example, assuming your data is entered from a regular ASCII keyboard,
2875 # the symbol with the hex code point 29DD might be used like so:
2876 # ⧝MY_TOKEN_TYPE
2877 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
2878 # creating a CustomInfoType, or one of the names listed
2879 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002880 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
2881 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002882 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002883 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Bu Sun Kim65020912020-05-20 12:08:20 -07002884 &quot;context&quot;: { # General identifier of a data field in a storage service. # The &#x27;tweak&#x27;, a context may be used for higher security since the same
2885 # identifier in two different contexts won&#x27;t be given the same surrogate. If
2886 # the context is not set, a default tweak will be used.
2887 #
2888 # If the context is set but:
2889 #
2890 # 1. there is no record present when transforming a given value or
2891 # 1. the field is not present when transforming a given value,
2892 #
2893 # a default tweak will be used.
2894 #
2895 # Note that case (1) is expected when an `InfoTypeTransformation` is
2896 # applied to both structured and non-structured `ContentItem`s.
2897 # Currently, the referenced field may be of value type integer or string.
2898 #
2899 # The tweak is constructed as a sequence of bytes in big endian byte order
2900 # such that:
2901 #
2902 # - a 64 bit integer is encoded followed by a single byte of value 1
2903 # - a string is encoded in UTF-8 format followed by a single byte of value 2
2904 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2905 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002906 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
2907 # that the FFX mode natively supports. This happens before/after
2908 # encryption/decryption.
2909 # Each character listed must appear only once.
2910 # Number of characters must be in the range [2, 95].
2911 # This must be encoded as ASCII.
2912 # The order of characters does not matter.
2913 # The full list of allowed characters is:
2914 # &lt;code&gt;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
2915 # ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/&lt;/code&gt;
Bu Sun Kim65020912020-05-20 12:08:20 -07002916 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
2917 # a key encryption key (KEK) stored by KMS).
2918 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
2919 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
2920 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07002921 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
2922 # It will be discarded after the request finishes.
2923 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
2924 # This is an arbitrary string used to differentiate different keys.
2925 # A unique key is generated per name: two separate `TransientCryptoKey`
2926 # protos share the same generated key if their names are the same.
2927 # When the data crypto key is generated, this name is not used in any way
2928 # (repeating the api call will result in a different key being generated).
2929 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002930 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
2931 # The wrapped key must be a 128/192/256 bit key.
2932 # Authorization requires the following IAM permissions when sending a request
2933 # to perform a crypto transformation using a kms-wrapped crypto key:
2934 # dlp.kms.encrypt
2935 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2936 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2937 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002938 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
2939 # leaking the key. Choose another type of key if possible.
2940 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2941 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002942 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002943 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07002944 },
2945 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
2946 # input. Outputs a base64 encoded representation of the encrypted output.
2947 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002948 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
2949 # referential integrity such that the same identifier in two different
2950 # contexts will be given a distinct surrogate. The context is appended to
2951 # plaintext value being encrypted. On decryption the provided context is
2952 # validated against the value used during encryption. If a context was
2953 # provided during encryption, same context must be provided during decryption
2954 # as well.
2955 #
2956 # If the context is not set, plaintext would be used as is for encryption.
2957 # If the context is set but:
2958 #
2959 # 1. there is no record present when transforming a given value or
2960 # 2. the field is not present when transforming a given value,
2961 #
2962 # plaintext would be used as is for encryption.
2963 #
2964 # Note that case (1) is expected when an `InfoTypeTransformation` is
2965 # applied to both structured and non-structured `ContentItem`s.
2966 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2967 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002968 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
2969 # This annotation will be applied to the surrogate by prefixing it with
2970 # the name of the custom info type followed by the number of
2971 # characters comprising the surrogate. The following scheme defines the
2972 # format: {info type name}({surrogate character count}):{surrogate}
2973 #
2974 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
2975 # the surrogate is &#x27;abc&#x27;, the full replacement value
2976 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
2977 #
2978 # This annotation identifies the surrogate when inspecting content using the
2979 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
2980 # surrogate when it occurs in free text.
2981 #
2982 # Note: For record transformations where the entire cell in a table is being
2983 # transformed, surrogates are not mandatory. Surrogates are used to denote
2984 # the location of the token and are necessary for re-identification in free
2985 # form text.
2986 #
2987 # In order for inspection to work properly, the name of this info type must
2988 # not occur naturally anywhere in your data; otherwise, inspection may either
2989 #
2990 # - reverse a surrogate that does not correspond to an actual identifier
2991 # - be unable to parse the surrogate and result in an error
2992 #
2993 # Therefore, choose your custom info type name carefully after considering
2994 # what your data looks like. One way to select a name that has a high chance
2995 # of yielding reliable detection is to include one or more unicode characters
2996 # that are highly improbable to exist in your data.
2997 # For example, assuming your data is entered from a regular ASCII keyboard,
2998 # the symbol with the hex code point 29DD might be used like so:
2999 # ⧝MY_TOKEN_TYPE.
3000 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
3001 # creating a CustomInfoType, or one of the names listed
3002 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07003003 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
3004 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07003005 },
3006 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
3007 # a key encryption key (KEK) stored by KMS).
3008 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
3009 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
3010 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07003011 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
3012 # It will be discarded after the request finishes.
3013 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
3014 # This is an arbitrary string used to differentiate different keys.
3015 # A unique key is generated per name: two separate `TransientCryptoKey`
3016 # protos share the same generated key if their names are the same.
3017 # When the data crypto key is generated, this name is not used in any way
3018 # (repeating the api call will result in a different key being generated).
3019 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003020 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
3021 # The wrapped key must be a 128/192/256 bit key.
3022 # Authorization requires the following IAM permissions when sending a request
3023 # to perform a crypto transformation using a kms-wrapped crypto key:
3024 # dlp.kms.encrypt
3025 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3026 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3027 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07003028 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
3029 # leaking the key. Choose another type of key if possible.
3030 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3031 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003032 },
3033 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003034 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
3035 # replacement values are dynamically provided by the user for custom behavior,
3036 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
3037 # This can be used on
3038 # data of type: number, long, string, timestamp.
3039 # If the bound `Value` type differs from the type of data being transformed, we
3040 # will first attempt converting the type of the data to be transformed to match
3041 # the type of the bound before comparing.
3042 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
3043 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
3044 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07003045 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
Bu Sun Kim65020912020-05-20 12:08:20 -07003046 # Note that for the purposes of inspection or transformation, the number
3047 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3048 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3049 # 123456789, the number of bytes would be counted as 9, even though an
3050 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07003051 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3052 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3053 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3054 # types are google.type.Date and `google.protobuf.Timestamp`.
3055 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3056 # allow the value 60 if it allows leap-seconds.
3057 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3058 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3059 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3060 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3061 },
3062 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3063 &quot;floatValue&quot;: 3.14, # float
3064 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim65020912020-05-20 12:08:20 -07003065 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3066 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3067 # and time zone are either specified elsewhere or are not significant. The date
3068 # is relative to the Proleptic Gregorian Calendar. This can represent:
3069 #
3070 # * A full date, with non-zero year, month and day values
3071 # * A month and day value, with a zero year, e.g. an anniversary
3072 # * A year on its own, with zero month and day values
3073 # * A year and month value, with a zero day, e.g. a credit card expiration date
3074 #
3075 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07003076 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3077 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07003078 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3079 # a year.
Bu Sun Kim65020912020-05-20 12:08:20 -07003080 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3081 # if specifying a year by itself or a year and month where the day is not
3082 # significant.
3083 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07003084 &quot;booleanValue&quot;: True or False, # boolean
3085 },
3086 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Required. Replacement value for this bucket.
3087 # Note that for the purposes of inspection or transformation, the number
3088 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3089 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3090 # 123456789, the number of bytes would be counted as 9, even though an
3091 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07003092 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3093 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3094 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3095 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003096 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3097 # allow the value 60 if it allows leap-seconds.
3098 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07003099 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3100 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3101 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3102 },
3103 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3104 &quot;floatValue&quot;: 3.14, # float
3105 &quot;stringValue&quot;: &quot;A String&quot;, # string
3106 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3107 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3108 # and time zone are either specified elsewhere or are not significant. The date
3109 # is relative to the Proleptic Gregorian Calendar. This can represent:
3110 #
3111 # * A full date, with non-zero year, month and day values
3112 # * A month and day value, with a zero year, e.g. an anniversary
3113 # * A year on its own, with zero month and day values
3114 # * A year and month value, with a zero day, e.g. a credit card expiration date
3115 #
3116 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3117 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3118 # month and day.
3119 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3120 # a year.
3121 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3122 # if specifying a year by itself or a year and month where the day is not
3123 # significant.
Bu Sun Kim65020912020-05-20 12:08:20 -07003124 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003125 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003126 },
3127 &quot;min&quot;: { # Set of primitive values supported by the system. # Lower bound of the range, inclusive. Type should be the same as max if
3128 # used.
3129 # Note that for the purposes of inspection or transformation, the number
3130 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3131 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3132 # 123456789, the number of bytes would be counted as 9, even though an
3133 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07003134 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3135 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3136 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3137 # types are google.type.Date and `google.protobuf.Timestamp`.
3138 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3139 # allow the value 60 if it allows leap-seconds.
3140 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3141 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3142 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3143 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3144 },
3145 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3146 &quot;floatValue&quot;: 3.14, # float
3147 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003148 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3149 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3150 # and time zone are either specified elsewhere or are not significant. The date
3151 # is relative to the Proleptic Gregorian Calendar. This can represent:
3152 #
3153 # * A full date, with non-zero year, month and day values
3154 # * A month and day value, with a zero year, e.g. an anniversary
3155 # * A year on its own, with zero month and day values
3156 # * A year and month value, with a zero day, e.g. a credit card expiration date
3157 #
3158 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003159 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3160 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07003161 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3162 # a year.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003163 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3164 # if specifying a year by itself or a year and month where the day is not
3165 # significant.
3166 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003167 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim65020912020-05-20 12:08:20 -07003168 },
3169 },
3170 ],
3171 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003172 },
3173 &quot;field&quot;: { # General identifier of a data field in a storage service. # Set if the transformation was limited to a specific FieldId.
3174 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Bu Sun Kim65020912020-05-20 12:08:20 -07003175 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07003176 &quot;fieldTransformations&quot;: [ # The field transformation that was applied.
3177 # If multiple field transformations are requested for a single field,
3178 # this list will contain all of them; otherwise, only one is supplied.
3179 { # The transformation to apply to the field.
3180 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and # Treat the contents of the field as free text, and selectively
3181 # transform content that matches an `InfoType`.
3182 # apply various `PrimitiveTransformation`s to each finding, where the
3183 # transformation is applied to only values that were identified as a specific
3184 # info_type.
3185 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one
3186 # for a given infoType.
3187 { # A transformation to apply to text that is identified as a specific
3188 # info_type.
3189 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause
3190 # this transformation to apply to all findings that correspond to
3191 # infoTypes that were requested in `InspectConfig`.
3192 { # Type of information detected by the API.
3193 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
3194 # creating a CustomInfoType, or one of the names listed
3195 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
3196 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
3197 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
3198 },
3199 ],
3200 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
3201 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
3202 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
3203 # to learn more.
3204 &quot;context&quot;: { # General identifier of a data field in a storage service. # Points to the field that contains the context, for example, an entity id.
3205 # If set, must also set cryptoKey. If set, shift will be consistent for the
3206 # given context.
3207 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3208 },
3209 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
3210 # range (inclusive ends). Negative means shift to earlier in time. Must not
3211 # be more than 365250 days (1000 years) each direction.
3212 #
3213 # For example, 3 means shift date to at most 3 days into the future.
3214 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Causes the shift to be computed based on this key and the context. This
3215 # results in the same shift for the same context and crypto_key. If
3216 # set, must also set context. Can only be applied to table items.
3217 # a key encryption key (KEK) stored by KMS).
3218 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
3219 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
3220 # unwrap the data crypto key.
3221 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
3222 # It will be discarded after the request finishes.
3223 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
3224 # This is an arbitrary string used to differentiate different keys.
3225 # A unique key is generated per name: two separate `TransientCryptoKey`
3226 # protos share the same generated key if their names are the same.
3227 # When the data crypto key is generated, this name is not used in any way
3228 # (repeating the api call will result in a different key being generated).
3229 },
3230 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
3231 # The wrapped key must be a 128/192/256 bit key.
3232 # Authorization requires the following IAM permissions when sending a request
3233 # to perform a crypto transformation using a kms-wrapped crypto key:
3234 # dlp.kms.encrypt
3235 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3236 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3237 },
3238 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
3239 # leaking the key. Choose another type of key if possible.
3240 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3241 },
3242 },
3243 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
3244 },
3245 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
3246 # portion of the value.
3247 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
3248 },
3249 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
3250 },
3251 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
3252 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
3253 # Note that for the purposes of inspection or transformation, the number
3254 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3255 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3256 # 123456789, the number of bytes would be counted as 9, even though an
3257 # int64 only holds up to 8 bytes of data.
3258 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3259 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3260 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3261 # types are google.type.Date and `google.protobuf.Timestamp`.
3262 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3263 # allow the value 60 if it allows leap-seconds.
3264 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3265 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3266 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3267 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3268 },
3269 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3270 &quot;floatValue&quot;: 3.14, # float
3271 &quot;stringValue&quot;: &quot;A String&quot;, # string
3272 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3273 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3274 # and time zone are either specified elsewhere or are not significant. The date
3275 # is relative to the Proleptic Gregorian Calendar. This can represent:
3276 #
3277 # * A full date, with non-zero year, month and day values
3278 # * A month and day value, with a zero year, e.g. an anniversary
3279 # * A year on its own, with zero month and day values
3280 # * A year and month value, with a zero day, e.g. a credit card expiration date
3281 #
3282 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3283 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3284 # month and day.
3285 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3286 # a year.
3287 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3288 # if specifying a year by itself or a year and month where the day is not
3289 # significant.
3290 },
3291 &quot;booleanValue&quot;: True or False, # boolean
3292 },
3293 },
3294 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
3295 # Uses SHA-256.
3296 # The key size must be either 32 or 64 bytes.
3297 # Outputs a base64 encoded representation of the hashed output
3298 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
3299 # Currently, only string and integer values can be hashed.
3300 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
3301 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
3302 # a key encryption key (KEK) stored by KMS).
3303 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
3304 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
3305 # unwrap the data crypto key.
3306 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
3307 # It will be discarded after the request finishes.
3308 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
3309 # This is an arbitrary string used to differentiate different keys.
3310 # A unique key is generated per name: two separate `TransientCryptoKey`
3311 # protos share the same generated key if their names are the same.
3312 # When the data crypto key is generated, this name is not used in any way
3313 # (repeating the api call will result in a different key being generated).
3314 },
3315 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
3316 # The wrapped key must be a 128/192/256 bit key.
3317 # Authorization requires the following IAM permissions when sending a request
3318 # to perform a crypto transformation using a kms-wrapped crypto key:
3319 # dlp.kms.encrypt
3320 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3321 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3322 },
3323 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
3324 # leaking the key. Choose another type of key if possible.
3325 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3326 },
3327 },
3328 },
3329 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
3330 # fixed character. Masking can start from the beginning or end of the string.
3331 # This can be used on data of any type (numbers, longs, and so on) and when
3332 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
3333 # type. (This allows you to take a long like 123 and modify it to a string like
3334 # **3.
3335 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
3336 # characters. For example, if the input string is `555-555-5555` and you
3337 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
3338 # returns `***-**5-5555`.
3339 { # Characters to skip when doing deidentification of a value. These will be left
3340 # alone and skipped.
3341 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
3342 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
3343 # punctuation.
3344 },
3345 ],
3346 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
3347 # masked. Skipped characters do not count towards this tally.
3348 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
3349 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
3350 # code or credit card number. This string must have a length of 1. If not
3351 # supplied, this value defaults to `*` for strings, and `0` for digits.
3352 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
3353 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
3354 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
3355 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
3356 # is `true`, then the string `12345` is masked as `12***`.
3357 },
3358 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
3359 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
3360 # output would be &#x27;My phone number is &#x27;.
3361 },
3362 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
3363 # Bucketing transformation can provide all of this functionality,
3364 # but requires more configuration. This message is provided as a convenience to
3365 # the user for simple bucketing strategies.
3366 #
3367 # The transformed value will be a hyphenated string of
3368 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
3369 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
3370 #
3371 # This can be used on data of type: double, long.
3372 #
3373 # If the bound Value type differs from the type of data
3374 # being transformed, we will first attempt converting the type of the data to
3375 # be transformed to match the type of the bound before comparing.
3376 #
3377 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
3378 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
3379 # grouped together into a single bucket; for example if `upper_bound` = 89,
3380 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
3381 # Note that for the purposes of inspection or transformation, the number
3382 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3383 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3384 # 123456789, the number of bytes would be counted as 9, even though an
3385 # int64 only holds up to 8 bytes of data.
3386 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3387 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3388 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3389 # types are google.type.Date and `google.protobuf.Timestamp`.
3390 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3391 # allow the value 60 if it allows leap-seconds.
3392 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3393 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3394 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3395 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3396 },
3397 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3398 &quot;floatValue&quot;: 3.14, # float
3399 &quot;stringValue&quot;: &quot;A String&quot;, # string
3400 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3401 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3402 # and time zone are either specified elsewhere or are not significant. The date
3403 # is relative to the Proleptic Gregorian Calendar. This can represent:
3404 #
3405 # * A full date, with non-zero year, month and day values
3406 # * A month and day value, with a zero year, e.g. an anniversary
3407 # * A year on its own, with zero month and day values
3408 # * A year and month value, with a zero day, e.g. a credit card expiration date
3409 #
3410 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3411 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3412 # month and day.
3413 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3414 # a year.
3415 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3416 # if specifying a year by itself or a year and month where the day is not
3417 # significant.
3418 },
3419 &quot;booleanValue&quot;: True or False, # boolean
3420 },
3421 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
3422 # grouped together into a single bucket; for example if `lower_bound` = 10,
3423 # then all values less than 10 are replaced with the value &quot;-10&quot;.
3424 # Note that for the purposes of inspection or transformation, the number
3425 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3426 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3427 # 123456789, the number of bytes would be counted as 9, even though an
3428 # int64 only holds up to 8 bytes of data.
3429 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3430 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3431 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3432 # types are google.type.Date and `google.protobuf.Timestamp`.
3433 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3434 # allow the value 60 if it allows leap-seconds.
3435 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3436 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3437 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3438 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3439 },
3440 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3441 &quot;floatValue&quot;: 3.14, # float
3442 &quot;stringValue&quot;: &quot;A String&quot;, # string
3443 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3444 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3445 # and time zone are either specified elsewhere or are not significant. The date
3446 # is relative to the Proleptic Gregorian Calendar. This can represent:
3447 #
3448 # * A full date, with non-zero year, month and day values
3449 # * A month and day value, with a zero year, e.g. an anniversary
3450 # * A year on its own, with zero month and day values
3451 # * A year and month value, with a zero day, e.g. a credit card expiration date
3452 #
3453 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3454 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3455 # month and day.
3456 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3457 # a year.
3458 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3459 # if specifying a year by itself or a year and month where the day is not
3460 # significant.
3461 },
3462 &quot;booleanValue&quot;: True or False, # boolean
3463 },
3464 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
3465 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
3466 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
3467 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
3468 },
3469 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
3470 # (FPE) with the FFX mode of operation; however when used in the
3471 # `ReidentifyContent` API method, it serves the opposite function by reversing
3472 # the surrogate back into the original identifier. The identifier must be
3473 # encoded as ASCII. For a given crypto key and context, the same identifier
3474 # will be replaced with the same surrogate. Identifiers must be at least two
3475 # characters long. In the case that the identifier is the empty string, it will
3476 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
3477 # more.
3478 #
3479 # Note: We recommend using CryptoDeterministicConfig for all use cases which
3480 # do not require preserving the input alphabet space and size, plus warrant
3481 # referential integrity.
3482 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
3483 # This annotation will be applied to the surrogate by prefixing it with
3484 # the name of the custom infoType followed by the number of
3485 # characters comprising the surrogate. The following scheme defines the
3486 # format: info_type_name(surrogate_character_count):surrogate
3487 #
3488 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
3489 # the surrogate is &#x27;abc&#x27;, the full replacement value
3490 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
3491 #
3492 # This annotation identifies the surrogate when inspecting content using the
3493 # custom infoType
3494 # [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
3495 # This facilitates reversal of the surrogate when it occurs in free text.
3496 #
3497 # In order for inspection to work properly, the name of this infoType must
3498 # not occur naturally anywhere in your data; otherwise, inspection may
3499 # find a surrogate that does not correspond to an actual identifier.
3500 # Therefore, choose your custom infoType name carefully after considering
3501 # what your data looks like. One way to select a name that has a high chance
3502 # of yielding reliable detection is to include one or more unicode characters
3503 # that are highly improbable to exist in your data.
3504 # For example, assuming your data is entered from a regular ASCII keyboard,
3505 # the symbol with the hex code point 29DD might be used like so:
3506 # ⧝MY_TOKEN_TYPE
3507 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
3508 # creating a CustomInfoType, or one of the names listed
3509 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
3510 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
3511 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
3512 },
3513 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
3514 &quot;context&quot;: { # General identifier of a data field in a storage service. # The &#x27;tweak&#x27;, a context may be used for higher security since the same
3515 # identifier in two different contexts won&#x27;t be given the same surrogate. If
3516 # the context is not set, a default tweak will be used.
3517 #
3518 # If the context is set but:
3519 #
3520 # 1. there is no record present when transforming a given value or
3521 # 1. the field is not present when transforming a given value,
3522 #
3523 # a default tweak will be used.
3524 #
3525 # Note that case (1) is expected when an `InfoTypeTransformation` is
3526 # applied to both structured and non-structured `ContentItem`s.
3527 # Currently, the referenced field may be of value type integer or string.
3528 #
3529 # The tweak is constructed as a sequence of bytes in big endian byte order
3530 # such that:
3531 #
3532 # - a 64 bit integer is encoded followed by a single byte of value 1
3533 # - a string is encoded in UTF-8 format followed by a single byte of value 2
3534 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3535 },
3536 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
3537 # that the FFX mode natively supports. This happens before/after
3538 # encryption/decryption.
3539 # Each character listed must appear only once.
3540 # Number of characters must be in the range [2, 95].
3541 # This must be encoded as ASCII.
3542 # The order of characters does not matter.
3543 # The full list of allowed characters is:
3544 # &lt;code&gt;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
3545 # ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/&lt;/code&gt;
3546 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
3547 # a key encryption key (KEK) stored by KMS).
3548 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
3549 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
3550 # unwrap the data crypto key.
3551 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
3552 # It will be discarded after the request finishes.
3553 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
3554 # This is an arbitrary string used to differentiate different keys.
3555 # A unique key is generated per name: two separate `TransientCryptoKey`
3556 # protos share the same generated key if their names are the same.
3557 # When the data crypto key is generated, this name is not used in any way
3558 # (repeating the api call will result in a different key being generated).
3559 },
3560 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
3561 # The wrapped key must be a 128/192/256 bit key.
3562 # Authorization requires the following IAM permissions when sending a request
3563 # to perform a crypto transformation using a kms-wrapped crypto key:
3564 # dlp.kms.encrypt
3565 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3566 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3567 },
3568 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
3569 # leaking the key. Choose another type of key if possible.
3570 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3571 },
3572 },
3573 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
3574 },
3575 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
3576 # input. Outputs a base64 encoded representation of the encrypted output.
3577 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
3578 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
3579 # referential integrity such that the same identifier in two different
3580 # contexts will be given a distinct surrogate. The context is appended to
3581 # plaintext value being encrypted. On decryption the provided context is
3582 # validated against the value used during encryption. If a context was
3583 # provided during encryption, same context must be provided during decryption
3584 # as well.
3585 #
3586 # If the context is not set, plaintext would be used as is for encryption.
3587 # If the context is set but:
3588 #
3589 # 1. there is no record present when transforming a given value or
3590 # 2. the field is not present when transforming a given value,
3591 #
3592 # plaintext would be used as is for encryption.
3593 #
3594 # Note that case (1) is expected when an `InfoTypeTransformation` is
3595 # applied to both structured and non-structured `ContentItem`s.
3596 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3597 },
3598 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
3599 # This annotation will be applied to the surrogate by prefixing it with
3600 # the name of the custom info type followed by the number of
3601 # characters comprising the surrogate. The following scheme defines the
3602 # format: {info type name}({surrogate character count}):{surrogate}
3603 #
3604 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
3605 # the surrogate is &#x27;abc&#x27;, the full replacement value
3606 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
3607 #
3608 # This annotation identifies the surrogate when inspecting content using the
3609 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
3610 # surrogate when it occurs in free text.
3611 #
3612 # Note: For record transformations where the entire cell in a table is being
3613 # transformed, surrogates are not mandatory. Surrogates are used to denote
3614 # the location of the token and are necessary for re-identification in free
3615 # form text.
3616 #
3617 # In order for inspection to work properly, the name of this info type must
3618 # not occur naturally anywhere in your data; otherwise, inspection may either
3619 #
3620 # - reverse a surrogate that does not correspond to an actual identifier
3621 # - be unable to parse the surrogate and result in an error
3622 #
3623 # Therefore, choose your custom info type name carefully after considering
3624 # what your data looks like. One way to select a name that has a high chance
3625 # of yielding reliable detection is to include one or more unicode characters
3626 # that are highly improbable to exist in your data.
3627 # For example, assuming your data is entered from a regular ASCII keyboard,
3628 # the symbol with the hex code point 29DD might be used like so:
3629 # ⧝MY_TOKEN_TYPE.
3630 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
3631 # creating a CustomInfoType, or one of the names listed
3632 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
3633 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
3634 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
3635 },
3636 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
3637 # a key encryption key (KEK) stored by KMS).
3638 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
3639 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
3640 # unwrap the data crypto key.
3641 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
3642 # It will be discarded after the request finishes.
3643 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
3644 # This is an arbitrary string used to differentiate different keys.
3645 # A unique key is generated per name: two separate `TransientCryptoKey`
3646 # protos share the same generated key if their names are the same.
3647 # When the data crypto key is generated, this name is not used in any way
3648 # (repeating the api call will result in a different key being generated).
3649 },
3650 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
3651 # The wrapped key must be a 128/192/256 bit key.
3652 # Authorization requires the following IAM permissions when sending a request
3653 # to perform a crypto transformation using a kms-wrapped crypto key:
3654 # dlp.kms.encrypt
3655 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3656 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3657 },
3658 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
3659 # leaking the key. Choose another type of key if possible.
3660 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3661 },
3662 },
3663 },
3664 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
3665 # replacement values are dynamically provided by the user for custom behavior,
3666 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
3667 # This can be used on
3668 # data of type: number, long, string, timestamp.
3669 # If the bound `Value` type differs from the type of data being transformed, we
3670 # will first attempt converting the type of the data to be transformed to match
3671 # the type of the bound before comparing.
3672 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
3673 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
3674 { # Bucket is represented as a range, along with replacement values.
3675 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
3676 # Note that for the purposes of inspection or transformation, the number
3677 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3678 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3679 # 123456789, the number of bytes would be counted as 9, even though an
3680 # int64 only holds up to 8 bytes of data.
3681 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3682 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3683 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3684 # types are google.type.Date and `google.protobuf.Timestamp`.
3685 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3686 # allow the value 60 if it allows leap-seconds.
3687 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3688 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3689 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3690 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3691 },
3692 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3693 &quot;floatValue&quot;: 3.14, # float
3694 &quot;stringValue&quot;: &quot;A String&quot;, # string
3695 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3696 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3697 # and time zone are either specified elsewhere or are not significant. The date
3698 # is relative to the Proleptic Gregorian Calendar. This can represent:
3699 #
3700 # * A full date, with non-zero year, month and day values
3701 # * A month and day value, with a zero year, e.g. an anniversary
3702 # * A year on its own, with zero month and day values
3703 # * A year and month value, with a zero day, e.g. a credit card expiration date
3704 #
3705 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3706 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3707 # month and day.
3708 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3709 # a year.
3710 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3711 # if specifying a year by itself or a year and month where the day is not
3712 # significant.
3713 },
3714 &quot;booleanValue&quot;: True or False, # boolean
3715 },
3716 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Required. Replacement value for this bucket.
3717 # Note that for the purposes of inspection or transformation, the number
3718 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3719 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3720 # 123456789, the number of bytes would be counted as 9, even though an
3721 # int64 only holds up to 8 bytes of data.
3722 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3723 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3724 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3725 # types are google.type.Date and `google.protobuf.Timestamp`.
3726 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3727 # allow the value 60 if it allows leap-seconds.
3728 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3729 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3730 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3731 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3732 },
3733 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3734 &quot;floatValue&quot;: 3.14, # float
3735 &quot;stringValue&quot;: &quot;A String&quot;, # string
3736 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3737 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3738 # and time zone are either specified elsewhere or are not significant. The date
3739 # is relative to the Proleptic Gregorian Calendar. This can represent:
3740 #
3741 # * A full date, with non-zero year, month and day values
3742 # * A month and day value, with a zero year, e.g. an anniversary
3743 # * A year on its own, with zero month and day values
3744 # * A year and month value, with a zero day, e.g. a credit card expiration date
3745 #
3746 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3747 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3748 # month and day.
3749 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3750 # a year.
3751 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3752 # if specifying a year by itself or a year and month where the day is not
3753 # significant.
3754 },
3755 &quot;booleanValue&quot;: True or False, # boolean
3756 },
3757 &quot;min&quot;: { # Set of primitive values supported by the system. # Lower bound of the range, inclusive. Type should be the same as max if
3758 # used.
3759 # Note that for the purposes of inspection or transformation, the number
3760 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3761 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3762 # 123456789, the number of bytes would be counted as 9, even though an
3763 # int64 only holds up to 8 bytes of data.
3764 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3765 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3766 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3767 # types are google.type.Date and `google.protobuf.Timestamp`.
3768 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3769 # allow the value 60 if it allows leap-seconds.
3770 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3771 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3772 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3773 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3774 },
3775 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3776 &quot;floatValue&quot;: 3.14, # float
3777 &quot;stringValue&quot;: &quot;A String&quot;, # string
3778 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3779 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3780 # and time zone are either specified elsewhere or are not significant. The date
3781 # is relative to the Proleptic Gregorian Calendar. This can represent:
3782 #
3783 # * A full date, with non-zero year, month and day values
3784 # * A month and day value, with a zero year, e.g. an anniversary
3785 # * A year on its own, with zero month and day values
3786 # * A year and month value, with a zero day, e.g. a credit card expiration date
3787 #
3788 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3789 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3790 # month and day.
3791 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3792 # a year.
3793 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3794 # if specifying a year by itself or a year and month where the day is not
3795 # significant.
3796 },
3797 &quot;booleanValue&quot;: True or False, # boolean
3798 },
3799 },
3800 ],
3801 },
3802 },
3803 },
3804 ],
3805 },
3806 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Apply the transformation to the entire field.
3807 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
3808 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
3809 # to learn more.
3810 &quot;context&quot;: { # General identifier of a data field in a storage service. # Points to the field that contains the context, for example, an entity id.
3811 # If set, must also set cryptoKey. If set, shift will be consistent for the
3812 # given context.
3813 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3814 },
3815 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
3816 # range (inclusive ends). Negative means shift to earlier in time. Must not
3817 # be more than 365250 days (1000 years) each direction.
3818 #
3819 # For example, 3 means shift date to at most 3 days into the future.
3820 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Causes the shift to be computed based on this key and the context. This
3821 # results in the same shift for the same context and crypto_key. If
3822 # set, must also set context. Can only be applied to table items.
3823 # a key encryption key (KEK) stored by KMS).
3824 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
3825 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
3826 # unwrap the data crypto key.
3827 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
3828 # It will be discarded after the request finishes.
3829 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
3830 # This is an arbitrary string used to differentiate different keys.
3831 # A unique key is generated per name: two separate `TransientCryptoKey`
3832 # protos share the same generated key if their names are the same.
3833 # When the data crypto key is generated, this name is not used in any way
3834 # (repeating the api call will result in a different key being generated).
3835 },
3836 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
3837 # The wrapped key must be a 128/192/256 bit key.
3838 # Authorization requires the following IAM permissions when sending a request
3839 # to perform a crypto transformation using a kms-wrapped crypto key:
3840 # dlp.kms.encrypt
3841 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3842 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3843 },
3844 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
3845 # leaking the key. Choose another type of key if possible.
3846 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3847 },
3848 },
3849 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
3850 },
3851 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
3852 # portion of the value.
3853 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
3854 },
3855 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
3856 },
3857 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
3858 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
3859 # Note that for the purposes of inspection or transformation, the number
3860 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3861 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3862 # 123456789, the number of bytes would be counted as 9, even though an
3863 # int64 only holds up to 8 bytes of data.
3864 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3865 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3866 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3867 # types are google.type.Date and `google.protobuf.Timestamp`.
3868 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3869 # allow the value 60 if it allows leap-seconds.
3870 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3871 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3872 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3873 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3874 },
3875 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3876 &quot;floatValue&quot;: 3.14, # float
3877 &quot;stringValue&quot;: &quot;A String&quot;, # string
3878 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3879 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3880 # and time zone are either specified elsewhere or are not significant. The date
3881 # is relative to the Proleptic Gregorian Calendar. This can represent:
3882 #
3883 # * A full date, with non-zero year, month and day values
3884 # * A month and day value, with a zero year, e.g. an anniversary
3885 # * A year on its own, with zero month and day values
3886 # * A year and month value, with a zero day, e.g. a credit card expiration date
3887 #
3888 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3889 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3890 # month and day.
3891 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3892 # a year.
3893 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3894 # if specifying a year by itself or a year and month where the day is not
3895 # significant.
3896 },
3897 &quot;booleanValue&quot;: True or False, # boolean
3898 },
3899 },
3900 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
3901 # Uses SHA-256.
3902 # The key size must be either 32 or 64 bytes.
3903 # Outputs a base64 encoded representation of the hashed output
3904 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
3905 # Currently, only string and integer values can be hashed.
3906 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
3907 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
3908 # a key encryption key (KEK) stored by KMS).
3909 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
3910 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
3911 # unwrap the data crypto key.
3912 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
3913 # It will be discarded after the request finishes.
3914 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
3915 # This is an arbitrary string used to differentiate different keys.
3916 # A unique key is generated per name: two separate `TransientCryptoKey`
3917 # protos share the same generated key if their names are the same.
3918 # When the data crypto key is generated, this name is not used in any way
3919 # (repeating the api call will result in a different key being generated).
3920 },
3921 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
3922 # The wrapped key must be a 128/192/256 bit key.
3923 # Authorization requires the following IAM permissions when sending a request
3924 # to perform a crypto transformation using a kms-wrapped crypto key:
3925 # dlp.kms.encrypt
3926 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3927 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3928 },
3929 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
3930 # leaking the key. Choose another type of key if possible.
3931 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3932 },
3933 },
3934 },
3935 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
3936 # fixed character. Masking can start from the beginning or end of the string.
3937 # This can be used on data of any type (numbers, longs, and so on) and when
3938 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
3939 # type. (This allows you to take a long like 123 and modify it to a string like
3940 # **3.
3941 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
3942 # characters. For example, if the input string is `555-555-5555` and you
3943 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
3944 # returns `***-**5-5555`.
3945 { # Characters to skip when doing deidentification of a value. These will be left
3946 # alone and skipped.
3947 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
3948 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
3949 # punctuation.
3950 },
3951 ],
3952 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
3953 # masked. Skipped characters do not count towards this tally.
3954 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
3955 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
3956 # code or credit card number. This string must have a length of 1. If not
3957 # supplied, this value defaults to `*` for strings, and `0` for digits.
3958 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
3959 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
3960 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
3961 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
3962 # is `true`, then the string `12345` is masked as `12***`.
3963 },
3964 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
3965 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
3966 # output would be &#x27;My phone number is &#x27;.
3967 },
3968 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
3969 # Bucketing transformation can provide all of this functionality,
3970 # but requires more configuration. This message is provided as a convenience to
3971 # the user for simple bucketing strategies.
3972 #
3973 # The transformed value will be a hyphenated string of
3974 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
3975 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
3976 #
3977 # This can be used on data of type: double, long.
3978 #
3979 # If the bound Value type differs from the type of data
3980 # being transformed, we will first attempt converting the type of the data to
3981 # be transformed to match the type of the bound before comparing.
3982 #
3983 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
3984 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
3985 # grouped together into a single bucket; for example if `upper_bound` = 89,
3986 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
3987 # Note that for the purposes of inspection or transformation, the number
3988 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3989 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3990 # 123456789, the number of bytes would be counted as 9, even though an
3991 # int64 only holds up to 8 bytes of data.
3992 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3993 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3994 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3995 # types are google.type.Date and `google.protobuf.Timestamp`.
3996 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3997 # allow the value 60 if it allows leap-seconds.
3998 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3999 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4000 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4001 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4002 },
4003 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4004 &quot;floatValue&quot;: 3.14, # float
4005 &quot;stringValue&quot;: &quot;A String&quot;, # string
4006 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4007 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4008 # and time zone are either specified elsewhere or are not significant. The date
4009 # is relative to the Proleptic Gregorian Calendar. This can represent:
4010 #
4011 # * A full date, with non-zero year, month and day values
4012 # * A month and day value, with a zero year, e.g. an anniversary
4013 # * A year on its own, with zero month and day values
4014 # * A year and month value, with a zero day, e.g. a credit card expiration date
4015 #
4016 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
4017 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4018 # month and day.
4019 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4020 # a year.
4021 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4022 # if specifying a year by itself or a year and month where the day is not
4023 # significant.
4024 },
4025 &quot;booleanValue&quot;: True or False, # boolean
4026 },
4027 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
4028 # grouped together into a single bucket; for example if `lower_bound` = 10,
4029 # then all values less than 10 are replaced with the value &quot;-10&quot;.
4030 # Note that for the purposes of inspection or transformation, the number
4031 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4032 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4033 # 123456789, the number of bytes would be counted as 9, even though an
4034 # int64 only holds up to 8 bytes of data.
4035 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4036 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4037 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4038 # types are google.type.Date and `google.protobuf.Timestamp`.
4039 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4040 # allow the value 60 if it allows leap-seconds.
4041 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4042 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4043 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4044 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4045 },
4046 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4047 &quot;floatValue&quot;: 3.14, # float
4048 &quot;stringValue&quot;: &quot;A String&quot;, # string
4049 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4050 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4051 # and time zone are either specified elsewhere or are not significant. The date
4052 # is relative to the Proleptic Gregorian Calendar. This can represent:
4053 #
4054 # * A full date, with non-zero year, month and day values
4055 # * A month and day value, with a zero year, e.g. an anniversary
4056 # * A year on its own, with zero month and day values
4057 # * A year and month value, with a zero day, e.g. a credit card expiration date
4058 #
4059 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
4060 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4061 # month and day.
4062 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4063 # a year.
4064 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4065 # if specifying a year by itself or a year and month where the day is not
4066 # significant.
4067 },
4068 &quot;booleanValue&quot;: True or False, # boolean
4069 },
4070 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
4071 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
4072 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
4073 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
4074 },
4075 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
4076 # (FPE) with the FFX mode of operation; however when used in the
4077 # `ReidentifyContent` API method, it serves the opposite function by reversing
4078 # the surrogate back into the original identifier. The identifier must be
4079 # encoded as ASCII. For a given crypto key and context, the same identifier
4080 # will be replaced with the same surrogate. Identifiers must be at least two
4081 # characters long. In the case that the identifier is the empty string, it will
4082 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
4083 # more.
4084 #
4085 # Note: We recommend using CryptoDeterministicConfig for all use cases which
4086 # do not require preserving the input alphabet space and size, plus warrant
4087 # referential integrity.
4088 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
4089 # This annotation will be applied to the surrogate by prefixing it with
4090 # the name of the custom infoType followed by the number of
4091 # characters comprising the surrogate. The following scheme defines the
4092 # format: info_type_name(surrogate_character_count):surrogate
4093 #
4094 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
4095 # the surrogate is &#x27;abc&#x27;, the full replacement value
4096 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
4097 #
4098 # This annotation identifies the surrogate when inspecting content using the
4099 # custom infoType
4100 # [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
4101 # This facilitates reversal of the surrogate when it occurs in free text.
4102 #
4103 # In order for inspection to work properly, the name of this infoType must
4104 # not occur naturally anywhere in your data; otherwise, inspection may
4105 # find a surrogate that does not correspond to an actual identifier.
4106 # Therefore, choose your custom infoType name carefully after considering
4107 # what your data looks like. One way to select a name that has a high chance
4108 # of yielding reliable detection is to include one or more unicode characters
4109 # that are highly improbable to exist in your data.
4110 # For example, assuming your data is entered from a regular ASCII keyboard,
4111 # the symbol with the hex code point 29DD might be used like so:
4112 # ⧝MY_TOKEN_TYPE
4113 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
4114 # creating a CustomInfoType, or one of the names listed
4115 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
4116 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
4117 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
4118 },
4119 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
4120 &quot;context&quot;: { # General identifier of a data field in a storage service. # The &#x27;tweak&#x27;, a context may be used for higher security since the same
4121 # identifier in two different contexts won&#x27;t be given the same surrogate. If
4122 # the context is not set, a default tweak will be used.
4123 #
4124 # If the context is set but:
4125 #
4126 # 1. there is no record present when transforming a given value or
4127 # 1. the field is not present when transforming a given value,
4128 #
4129 # a default tweak will be used.
4130 #
4131 # Note that case (1) is expected when an `InfoTypeTransformation` is
4132 # applied to both structured and non-structured `ContentItem`s.
4133 # Currently, the referenced field may be of value type integer or string.
4134 #
4135 # The tweak is constructed as a sequence of bytes in big endian byte order
4136 # such that:
4137 #
4138 # - a 64 bit integer is encoded followed by a single byte of value 1
4139 # - a string is encoded in UTF-8 format followed by a single byte of value 2
4140 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4141 },
4142 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
4143 # that the FFX mode natively supports. This happens before/after
4144 # encryption/decryption.
4145 # Each character listed must appear only once.
4146 # Number of characters must be in the range [2, 95].
4147 # This must be encoded as ASCII.
4148 # The order of characters does not matter.
4149 # The full list of allowed characters is:
4150 # &lt;code&gt;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
4151 # ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/&lt;/code&gt;
4152 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
4153 # a key encryption key (KEK) stored by KMS).
4154 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
4155 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
4156 # unwrap the data crypto key.
4157 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
4158 # It will be discarded after the request finishes.
4159 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
4160 # This is an arbitrary string used to differentiate different keys.
4161 # A unique key is generated per name: two separate `TransientCryptoKey`
4162 # protos share the same generated key if their names are the same.
4163 # When the data crypto key is generated, this name is not used in any way
4164 # (repeating the api call will result in a different key being generated).
4165 },
4166 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
4167 # The wrapped key must be a 128/192/256 bit key.
4168 # Authorization requires the following IAM permissions when sending a request
4169 # to perform a crypto transformation using a kms-wrapped crypto key:
4170 # dlp.kms.encrypt
4171 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4172 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4173 },
4174 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
4175 # leaking the key. Choose another type of key if possible.
4176 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4177 },
4178 },
4179 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
4180 },
4181 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
4182 # input. Outputs a base64 encoded representation of the encrypted output.
4183 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
4184 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
4185 # referential integrity such that the same identifier in two different
4186 # contexts will be given a distinct surrogate. The context is appended to
4187 # plaintext value being encrypted. On decryption the provided context is
4188 # validated against the value used during encryption. If a context was
4189 # provided during encryption, same context must be provided during decryption
4190 # as well.
4191 #
4192 # If the context is not set, plaintext would be used as is for encryption.
4193 # If the context is set but:
4194 #
4195 # 1. there is no record present when transforming a given value or
4196 # 2. the field is not present when transforming a given value,
4197 #
4198 # plaintext would be used as is for encryption.
4199 #
4200 # Note that case (1) is expected when an `InfoTypeTransformation` is
4201 # applied to both structured and non-structured `ContentItem`s.
4202 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4203 },
4204 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
4205 # This annotation will be applied to the surrogate by prefixing it with
4206 # the name of the custom info type followed by the number of
4207 # characters comprising the surrogate. The following scheme defines the
4208 # format: {info type name}({surrogate character count}):{surrogate}
4209 #
4210 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
4211 # the surrogate is &#x27;abc&#x27;, the full replacement value
4212 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
4213 #
4214 # This annotation identifies the surrogate when inspecting content using the
4215 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
4216 # surrogate when it occurs in free text.
4217 #
4218 # Note: For record transformations where the entire cell in a table is being
4219 # transformed, surrogates are not mandatory. Surrogates are used to denote
4220 # the location of the token and are necessary for re-identification in free
4221 # form text.
4222 #
4223 # In order for inspection to work properly, the name of this info type must
4224 # not occur naturally anywhere in your data; otherwise, inspection may either
4225 #
4226 # - reverse a surrogate that does not correspond to an actual identifier
4227 # - be unable to parse the surrogate and result in an error
4228 #
4229 # Therefore, choose your custom info type name carefully after considering
4230 # what your data looks like. One way to select a name that has a high chance
4231 # of yielding reliable detection is to include one or more unicode characters
4232 # that are highly improbable to exist in your data.
4233 # For example, assuming your data is entered from a regular ASCII keyboard,
4234 # the symbol with the hex code point 29DD might be used like so:
4235 # ⧝MY_TOKEN_TYPE.
4236 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
4237 # creating a CustomInfoType, or one of the names listed
4238 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
4239 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
4240 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
4241 },
4242 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
4243 # a key encryption key (KEK) stored by KMS).
4244 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
4245 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
4246 # unwrap the data crypto key.
4247 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
4248 # It will be discarded after the request finishes.
4249 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
4250 # This is an arbitrary string used to differentiate different keys.
4251 # A unique key is generated per name: two separate `TransientCryptoKey`
4252 # protos share the same generated key if their names are the same.
4253 # When the data crypto key is generated, this name is not used in any way
4254 # (repeating the api call will result in a different key being generated).
4255 },
4256 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
4257 # The wrapped key must be a 128/192/256 bit key.
4258 # Authorization requires the following IAM permissions when sending a request
4259 # to perform a crypto transformation using a kms-wrapped crypto key:
4260 # dlp.kms.encrypt
4261 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4262 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4263 },
4264 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
4265 # leaking the key. Choose another type of key if possible.
4266 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4267 },
4268 },
4269 },
4270 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
4271 # replacement values are dynamically provided by the user for custom behavior,
4272 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
4273 # This can be used on
4274 # data of type: number, long, string, timestamp.
4275 # If the bound `Value` type differs from the type of data being transformed, we
4276 # will first attempt converting the type of the data to be transformed to match
4277 # the type of the bound before comparing.
4278 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
4279 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
4280 { # Bucket is represented as a range, along with replacement values.
4281 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
4282 # Note that for the purposes of inspection or transformation, the number
4283 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4284 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4285 # 123456789, the number of bytes would be counted as 9, even though an
4286 # int64 only holds up to 8 bytes of data.
4287 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4288 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4289 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4290 # types are google.type.Date and `google.protobuf.Timestamp`.
4291 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4292 # allow the value 60 if it allows leap-seconds.
4293 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4294 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4295 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4296 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4297 },
4298 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4299 &quot;floatValue&quot;: 3.14, # float
4300 &quot;stringValue&quot;: &quot;A String&quot;, # string
4301 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4302 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4303 # and time zone are either specified elsewhere or are not significant. The date
4304 # is relative to the Proleptic Gregorian Calendar. This can represent:
4305 #
4306 # * A full date, with non-zero year, month and day values
4307 # * A month and day value, with a zero year, e.g. an anniversary
4308 # * A year on its own, with zero month and day values
4309 # * A year and month value, with a zero day, e.g. a credit card expiration date
4310 #
4311 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
4312 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4313 # month and day.
4314 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4315 # a year.
4316 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4317 # if specifying a year by itself or a year and month where the day is not
4318 # significant.
4319 },
4320 &quot;booleanValue&quot;: True or False, # boolean
4321 },
4322 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Required. Replacement value for this bucket.
4323 # Note that for the purposes of inspection or transformation, the number
4324 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4325 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4326 # 123456789, the number of bytes would be counted as 9, even though an
4327 # int64 only holds up to 8 bytes of data.
4328 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4329 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4330 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4331 # types are google.type.Date and `google.protobuf.Timestamp`.
4332 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4333 # allow the value 60 if it allows leap-seconds.
4334 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4335 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4336 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4337 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4338 },
4339 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4340 &quot;floatValue&quot;: 3.14, # float
4341 &quot;stringValue&quot;: &quot;A String&quot;, # string
4342 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4343 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4344 # and time zone are either specified elsewhere or are not significant. The date
4345 # is relative to the Proleptic Gregorian Calendar. This can represent:
4346 #
4347 # * A full date, with non-zero year, month and day values
4348 # * A month and day value, with a zero year, e.g. an anniversary
4349 # * A year on its own, with zero month and day values
4350 # * A year and month value, with a zero day, e.g. a credit card expiration date
4351 #
4352 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
4353 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4354 # month and day.
4355 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4356 # a year.
4357 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4358 # if specifying a year by itself or a year and month where the day is not
4359 # significant.
4360 },
4361 &quot;booleanValue&quot;: True or False, # boolean
4362 },
4363 &quot;min&quot;: { # Set of primitive values supported by the system. # Lower bound of the range, inclusive. Type should be the same as max if
4364 # used.
4365 # Note that for the purposes of inspection or transformation, the number
4366 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4367 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4368 # 123456789, the number of bytes would be counted as 9, even though an
4369 # int64 only holds up to 8 bytes of data.
4370 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4371 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4372 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4373 # types are google.type.Date and `google.protobuf.Timestamp`.
4374 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4375 # allow the value 60 if it allows leap-seconds.
4376 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4377 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4378 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4379 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4380 },
4381 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4382 &quot;floatValue&quot;: 3.14, # float
4383 &quot;stringValue&quot;: &quot;A String&quot;, # string
4384 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4385 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4386 # and time zone are either specified elsewhere or are not significant. The date
4387 # is relative to the Proleptic Gregorian Calendar. This can represent:
4388 #
4389 # * A full date, with non-zero year, month and day values
4390 # * A month and day value, with a zero year, e.g. an anniversary
4391 # * A year on its own, with zero month and day values
4392 # * A year and month value, with a zero day, e.g. a credit card expiration date
4393 #
4394 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
4395 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4396 # month and day.
4397 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4398 # a year.
4399 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4400 # if specifying a year by itself or a year and month where the day is not
4401 # significant.
4402 },
4403 &quot;booleanValue&quot;: True or False, # boolean
4404 },
4405 },
4406 ],
4407 },
4408 },
4409 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to # Only apply the transformation if the condition evaluates to true for the
4410 # given `RecordCondition`. The conditions are allowed to reference fields
4411 # that are not used in the actual transformation.
4412 #
4413 # Example Use Cases:
4414 #
4415 # - Apply a different bucket transformation to an age column if the zip code
4416 # column for the same record is within a specific range.
4417 # - Redact a field if the date of birth field is greater than 85.
4418 # a field.
4419 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
4420 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
4421 &quot;conditions&quot;: [ # A collection of conditions.
4422 { # The field type of `value` and `field` do not need to match to be
4423 # considered equal, but not all comparisons are possible.
4424 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
4425 # but all other comparisons are invalid with incompatible types.
4426 # A `value` of type:
4427 #
4428 # - `string` can be compared against all other types
4429 # - `boolean` can only be compared against other booleans
4430 # - `integer` can be compared against doubles or a string if the string value
4431 # can be parsed as an integer.
4432 # - `double` can be compared against integers or a string if the string can
4433 # be parsed as a double.
4434 # - `Timestamp` can be compared against strings in RFC 3339 date string
4435 # format.
4436 # - `TimeOfDay` can be compared against timestamps and strings in the format
4437 # of &#x27;HH:mm:ss&#x27;.
4438 #
4439 # If we fail to compare do to type mismatch, a warning will be given and
4440 # the condition will evaluate to false.
4441 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
4442 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4443 },
4444 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
4445 # Note that for the purposes of inspection or transformation, the number
4446 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4447 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4448 # 123456789, the number of bytes would be counted as 9, even though an
4449 # int64 only holds up to 8 bytes of data.
4450 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4451 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4452 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4453 # types are google.type.Date and `google.protobuf.Timestamp`.
4454 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4455 # allow the value 60 if it allows leap-seconds.
4456 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4457 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4458 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4459 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4460 },
4461 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4462 &quot;floatValue&quot;: 3.14, # float
4463 &quot;stringValue&quot;: &quot;A String&quot;, # string
4464 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4465 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4466 # and time zone are either specified elsewhere or are not significant. The date
4467 # is relative to the Proleptic Gregorian Calendar. This can represent:
4468 #
4469 # * A full date, with non-zero year, month and day values
4470 # * A month and day value, with a zero year, e.g. an anniversary
4471 # * A year on its own, with zero month and day values
4472 # * A year and month value, with a zero day, e.g. a credit card expiration date
4473 #
4474 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
4475 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4476 # month and day.
4477 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4478 # a year.
4479 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4480 # if specifying a year by itself or a year and month where the day is not
4481 # significant.
4482 },
4483 &quot;booleanValue&quot;: True or False, # boolean
4484 },
4485 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
4486 },
4487 ],
4488 },
4489 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
4490 # only supported value is `AND`.
4491 },
4492 },
4493 &quot;fields&quot;: [ # Required. Input field(s) to apply the transformation to.
4494 { # General identifier of a data field in a storage service.
4495 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4496 },
4497 ],
4498 },
4499 ],
4500 &quot;infoType&quot;: { # Type of information detected by the API. # Set if the transformation was limited to a specific InfoType.
4501 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
4502 # creating a CustomInfoType, or one of the names listed
4503 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
4504 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
4505 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
4506 },
4507 &quot;results&quot;: [ # Collection of all transformations that took place or had an error.
4508 { # A collection that informs the user the number of times a particular
4509 # `TransformationResultCode` and error details occurred.
4510 &quot;count&quot;: &quot;A String&quot;, # Number of transformations counted by this result.
4511 &quot;code&quot;: &quot;A String&quot;, # Outcome of the transformation.
4512 &quot;details&quot;: &quot;A String&quot;, # A place for warnings or errors to show up if a transformation didn&#x27;t
4513 # work as expected.
4514 },
4515 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07004516 &quot;recordSuppress&quot;: { # Configuration to suppress records whose suppression conditions evaluate to # The specific suppression option these stats apply to.
4517 # true.
4518 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to # A condition that when it evaluates to true will result in the record being
4519 # evaluated to be suppressed from the transformed content.
4520 # a field.
4521 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
Bu Sun Kim65020912020-05-20 12:08:20 -07004522 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
4523 &quot;conditions&quot;: [ # A collection of conditions.
4524 { # The field type of `value` and `field` do not need to match to be
4525 # considered equal, but not all comparisons are possible.
4526 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
4527 # but all other comparisons are invalid with incompatible types.
4528 # A `value` of type:
4529 #
4530 # - `string` can be compared against all other types
4531 # - `boolean` can only be compared against other booleans
4532 # - `integer` can be compared against doubles or a string if the string value
4533 # can be parsed as an integer.
4534 # - `double` can be compared against integers or a string if the string can
4535 # be parsed as a double.
4536 # - `Timestamp` can be compared against strings in RFC 3339 date string
4537 # format.
4538 # - `TimeOfDay` can be compared against timestamps and strings in the format
4539 # of &#x27;HH:mm:ss&#x27;.
4540 #
4541 # If we fail to compare do to type mismatch, a warning will be given and
4542 # the condition will evaluate to false.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004543 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
4544 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4545 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004546 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
4547 # Note that for the purposes of inspection or transformation, the number
4548 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4549 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4550 # 123456789, the number of bytes would be counted as 9, even though an
4551 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004552 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4553 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4554 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4555 # types are google.type.Date and `google.protobuf.Timestamp`.
4556 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4557 # allow the value 60 if it allows leap-seconds.
4558 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4559 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4560 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4561 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4562 },
4563 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4564 &quot;floatValue&quot;: 3.14, # float
4565 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim65020912020-05-20 12:08:20 -07004566 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4567 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4568 # and time zone are either specified elsewhere or are not significant. The date
4569 # is relative to the Proleptic Gregorian Calendar. This can represent:
4570 #
4571 # * A full date, with non-zero year, month and day values
4572 # * A month and day value, with a zero year, e.g. an anniversary
4573 # * A year on its own, with zero month and day values
4574 # * A year and month value, with a zero day, e.g. a credit card expiration date
4575 #
4576 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004577 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4578 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004579 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4580 # a year.
Bu Sun Kim65020912020-05-20 12:08:20 -07004581 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4582 # if specifying a year by itself or a year and month where the day is not
4583 # significant.
4584 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004585 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004586 },
4587 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
Bu Sun Kim65020912020-05-20 12:08:20 -07004588 },
4589 ],
4590 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004591 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
4592 # only supported value is `AND`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004593 },
4594 },
4595 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004596 &quot;transformedBytes&quot;: &quot;A String&quot;, # Total size in bytes that were transformed in some way.
Bu Sun Kim65020912020-05-20 12:08:20 -07004597 },
4598 ],
4599 &quot;transformedBytes&quot;: &quot;A String&quot;, # Total size in bytes that were transformed in some way.
4600 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004601 &quot;item&quot;: { # Container structure for the content to inspect. # The de-identified item.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004602 &quot;value&quot;: &quot;A String&quot;, # String data to inspect or redact.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004603 &quot;byteItem&quot;: { # Container for bytes to inspect or redact. # Content data to inspect or redact. Replaces `type` and `data`.
4604 &quot;data&quot;: &quot;A String&quot;, # Content data to inspect or redact.
4605 &quot;type&quot;: &quot;A String&quot;, # The type of data stored in the bytes string. Default will be TEXT_UTF8.
4606 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004607 &quot;table&quot;: { # Structured content to inspect. Up to 50,000 `Value`s per request allowed. # Structured content for inspection. See
4608 # https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
4609 # learn more.
4610 # See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
4611 # learn more.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004612 &quot;headers&quot;: [ # Headers of the table.
4613 { # General identifier of a data field in a storage service.
4614 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4615 },
4616 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004617 &quot;rows&quot;: [ # Rows of the table.
4618 { # Values of the row.
4619 &quot;values&quot;: [ # Individual cells.
4620 { # Set of primitive values supported by the system.
4621 # Note that for the purposes of inspection or transformation, the number
4622 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4623 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4624 # 123456789, the number of bytes would be counted as 9, even though an
4625 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004626 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4627 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4628 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4629 # types are google.type.Date and `google.protobuf.Timestamp`.
4630 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4631 # allow the value 60 if it allows leap-seconds.
4632 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4633 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4634 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4635 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4636 },
4637 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4638 &quot;floatValue&quot;: 3.14, # float
4639 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004640 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4641 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4642 # and time zone are either specified elsewhere or are not significant. The date
4643 # is relative to the Proleptic Gregorian Calendar. This can represent:
4644 #
4645 # * A full date, with non-zero year, month and day values
4646 # * A month and day value, with a zero year, e.g. an anniversary
4647 # * A year on its own, with zero month and day values
4648 # * A year and month value, with a zero day, e.g. a credit card expiration date
4649 #
4650 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004651 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4652 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004653 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4654 # a year.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004655 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4656 # if specifying a year by itself or a year and month where the day is not
4657 # significant.
4658 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004659 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004660 },
4661 ],
4662 },
4663 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004664 },
4665 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004666 }</pre>
4667</div>
4668
4669<div class="method">
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004670 <code class="details" id="inspect">inspect(parent, body=None, x__xgafv=None)</code>
Bu Sun Kim65020912020-05-20 12:08:20 -07004671 <pre>Finds potentially sensitive info in content.
4672This method has limits on input size, processing time, and output size.
4673
4674When no InfoTypes or CustomInfoTypes are specified in this request, the
4675system will automatically choose what detectors to run. By default this may
4676be all types, but may change over time as detectors are updated.
4677
4678For how to guides, see https://cloud.google.com/dlp/docs/inspecting-images
4679and https://cloud.google.com/dlp/docs/inspecting-text,
4680
4681Args:
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004682 parent: string, Parent resource name.
4683- Format:projects/[PROJECT-ID]
4684- Format:projects/[PROJECT-ID]/locations/[LOCATION-ID] (required)
Bu Sun Kim65020912020-05-20 12:08:20 -07004685 body: object, The request body.
4686 The object takes the form of:
4687
4688{ # Request to search for potentially sensitive info in a ContentItem.
4689 &quot;item&quot;: { # Container structure for the content to inspect. # The item to inspect.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004690 &quot;value&quot;: &quot;A String&quot;, # String data to inspect or redact.
Bu Sun Kim65020912020-05-20 12:08:20 -07004691 &quot;byteItem&quot;: { # Container for bytes to inspect or redact. # Content data to inspect or redact. Replaces `type` and `data`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004692 &quot;data&quot;: &quot;A String&quot;, # Content data to inspect or redact.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004693 &quot;type&quot;: &quot;A String&quot;, # The type of data stored in the bytes string. Default will be TEXT_UTF8.
Bu Sun Kim65020912020-05-20 12:08:20 -07004694 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004695 &quot;table&quot;: { # Structured content to inspect. Up to 50,000 `Value`s per request allowed. # Structured content for inspection. See
4696 # https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
4697 # learn more.
4698 # See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
4699 # learn more.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004700 &quot;headers&quot;: [ # Headers of the table.
4701 { # General identifier of a data field in a storage service.
4702 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4703 },
4704 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07004705 &quot;rows&quot;: [ # Rows of the table.
4706 { # Values of the row.
4707 &quot;values&quot;: [ # Individual cells.
4708 { # Set of primitive values supported by the system.
4709 # Note that for the purposes of inspection or transformation, the number
4710 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4711 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4712 # 123456789, the number of bytes would be counted as 9, even though an
4713 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004714 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4715 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4716 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4717 # types are google.type.Date and `google.protobuf.Timestamp`.
4718 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4719 # allow the value 60 if it allows leap-seconds.
4720 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4721 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4722 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4723 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4724 },
4725 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4726 &quot;floatValue&quot;: 3.14, # float
4727 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim65020912020-05-20 12:08:20 -07004728 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4729 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4730 # and time zone are either specified elsewhere or are not significant. The date
4731 # is relative to the Proleptic Gregorian Calendar. This can represent:
4732 #
4733 # * A full date, with non-zero year, month and day values
4734 # * A month and day value, with a zero year, e.g. an anniversary
4735 # * A year on its own, with zero month and day values
4736 # * A year and month value, with a zero day, e.g. a credit card expiration date
4737 #
4738 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004739 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4740 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004741 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4742 # a year.
Bu Sun Kim65020912020-05-20 12:08:20 -07004743 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4744 # if specifying a year by itself or a year and month where the day is not
4745 # significant.
4746 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004747 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim65020912020-05-20 12:08:20 -07004748 },
4749 ],
4750 },
4751 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07004752 },
4753 },
4754 &quot;inspectTemplateName&quot;: &quot;A String&quot;, # Template to use. Any configuration directly specified in
4755 # inspect_config will override those set in the template. Singular fields
4756 # that are set in this request will replace their corresponding fields in the
4757 # template. Repeated fields are appended. Singular sub-messages and groups
4758 # are recursively merged.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004759 &quot;locationId&quot;: &quot;A String&quot;, # Deprecated. This field has no effect.
Bu Sun Kim65020912020-05-20 12:08:20 -07004760 &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # Configuration for the inspector. What specified here will override
4761 # the template referenced by the inspect_template_name argument.
4762 # When used with redactContent only info_types and min_likelihood are currently
4763 # used.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004764 &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
4765 # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
4766 { # Custom information type provided by the user. Used to find domain-specific
4767 # sensitive information configurable to the data in question.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004768 &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
4769 # be used to match sensitive information specific to the data, such as a list
4770 # of employee IDs or job titles.
4771 #
4772 # Dictionary words are case-insensitive and all characters other than letters
4773 # and digits in the unicode [Basic Multilingual
4774 # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
4775 # will be replaced with whitespace when scanning for matches, so the
4776 # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
4777 # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
4778 # surrounding any match must be of a different type than the adjacent
4779 # characters within the word, so letters must be next to non-letters and
4780 # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
4781 # match the first three letters of the text &quot;jen123&quot; but will return no
4782 # matches for &quot;jennifer&quot;.
4783 #
4784 # Dictionary words containing a large number of characters that are not
4785 # letters or digits may result in unexpected findings because such characters
4786 # are treated as whitespace. The
4787 # [limits](https://cloud.google.com/dlp/limits) page contains details about
4788 # the size limits of dictionaries. For dictionaries that do not fit within
4789 # these constraints, consider using `LargeCustomDictionaryConfig` in the
4790 # `StoredInfoType` API.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004791 &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
4792 # is accepted.
4793 &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
4794 # Example: gs://[BUCKET_NAME]/dictionary.txt
4795 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004796 &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
4797 &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
4798 # at least one phrase and every phrase must contain at least 2 characters
4799 # that are letters or digits. [required]
4800 &quot;A String&quot;,
4801 ],
4802 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004803 },
4804 &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
4805 # infoType, when the name matches one of existing infoTypes and that infoType
4806 # is specified in `InspectContent.info_types` field. Specifying the latter
4807 # adds findings to the one detected by the system. If built-in info type is
4808 # not specified in `InspectContent.info_types` list then the name is treated
4809 # as a custom info type.
4810 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
4811 # creating a CustomInfoType, or one of the names listed
4812 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
4813 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
4814 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
4815 },
4816 &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
4817 # altered by a detection rule if the finding meets the criteria specified by
4818 # the rule. Defaults to `VERY_LIKELY` if not specified.
4819 &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
4820 # Rules are applied in order that they are specified. Not supported for the
4821 # `surrogate_type` CustomInfoType.
4822 { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
4823 # `CustomInfoType` to alter behavior under certain circumstances, depending
4824 # on the specific details of the rule. Not supported for the `surrogate_type`
4825 # custom infoType.
4826 &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
4827 # proximity of hotwords.
4828 &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
4829 # The total length of the window cannot exceed 1000 characters. Note that
4830 # the finding itself will be included in the window, so that hotwords may
4831 # be used to match substrings of the finding itself. For example, the
4832 # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
4833 # adjusted upwards if the area code is known to be the local area code of
4834 # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
4835 # is the area code in question.
4836 # rule.
4837 &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
4838 &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
4839 },
4840 &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
4841 # part of a detection rule.
4842 &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
4843 &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
4844 # levels. For example, if a finding would be `POSSIBLE` without the
4845 # detection rule and `relative_likelihood` is 1, then it is upgraded to
4846 # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
4847 # Likelihood may never drop below `VERY_UNLIKELY` or exceed
4848 # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
4849 # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
4850 # a final likelihood of `LIKELY`.
4851 },
4852 &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
4853 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
4854 # specified, the entire match is returned. No more than 3 may be included.
4855 42,
4856 ],
4857 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
4858 # (https://github.com/google/re2/wiki/Syntax) can be found under the
4859 # google/re2 repository on GitHub.
4860 },
4861 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004862 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004863 ],
4864 &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
4865 # support reversing.
4866 # such as
4867 # [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
4868 # These types of transformations are
4869 # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
4870 # output. This should be used in conjunction with a field on the
4871 # transformation such as `surrogate_info_type`. This CustomInfoType does
4872 # not support the use of `detection_rules`.
4873 },
4874 &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
4875 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
4876 # specified, the entire match is returned. No more than 3 may be included.
4877 42,
4878 ],
4879 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
4880 # (https://github.com/google/re2/wiki/Syntax) can be found under the
4881 # google/re2 repository on GitHub.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004882 },
4883 &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
4884 # `InspectDataSource`. Not currently supported in `InspectContent`.
4885 &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
4886 # `organizations/433245324/storedInfoTypes/432452342` or
4887 # `projects/project-id/storedInfoTypes/432452342`.
4888 &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
4889 # inspection was created. Output-only field, populated by the system.
4890 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004891 &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
4892 # to be returned. It still can be used for rules matching.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004893 },
4894 ],
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004895 &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
4896 # POSSIBLE.
4897 # See https://cloud.google.com/dlp/docs/likelihood to learn more.
4898 &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
4899 &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
4900 # When set within `InspectContentRequest`, the maximum returned is 2000
4901 # regardless if this is set higher.
4902 &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
4903 { # Max findings configuration per infoType, per content item or long
4904 # running DlpJob.
4905 &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
4906 # info_type should be provided. If InfoTypeLimit does not have an
4907 # info_type, the DLP API applies the limit against all info_types that
4908 # are found but not specified in another InfoTypeLimit.
4909 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
4910 # creating a CustomInfoType, or one of the names listed
4911 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
4912 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
4913 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
4914 },
4915 &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
4916 },
4917 ],
4918 &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
4919 # When set within `InspectJobConfig`,
4920 # the maximum returned is 2000 regardless if this is set higher.
4921 # When set within `InspectContentRequest`, this field is ignored.
4922 },
4923 &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
Bu Sun Kim65020912020-05-20 12:08:20 -07004924 &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
4925 # included in the response; see Finding.quote.
4926 &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
4927 # Exclusion rules, contained in the set are executed in the end, other
4928 # rules are executed in the order they are specified for each info type.
4929 { # Rule set for modifying a set of infoTypes to alter behavior under certain
4930 # circumstances, depending on the specific details of the rules within the set.
4931 &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
4932 { # Type of information detected by the API.
4933 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
4934 # creating a CustomInfoType, or one of the names listed
4935 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004936 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
4937 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004938 },
4939 ],
4940 &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
4941 { # A single inspection rule to be applied to infoTypes, specified in
4942 # `InspectionRuleSet`.
4943 &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
4944 # proximity of hotwords.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004945 &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
4946 # The total length of the window cannot exceed 1000 characters. Note that
4947 # the finding itself will be included in the window, so that hotwords may
4948 # be used to match substrings of the finding itself. For example, the
4949 # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
4950 # adjusted upwards if the area code is known to be the local area code of
4951 # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
4952 # is the area code in question.
4953 # rule.
4954 &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
4955 &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
4956 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004957 &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
4958 # part of a detection rule.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004959 &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
Bu Sun Kim65020912020-05-20 12:08:20 -07004960 &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
4961 # levels. For example, if a finding would be `POSSIBLE` without the
4962 # detection rule and `relative_likelihood` is 1, then it is upgraded to
4963 # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
4964 # Likelihood may never drop below `VERY_UNLIKELY` or exceed
4965 # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
4966 # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
4967 # a final likelihood of `LIKELY`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004968 },
4969 &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
4970 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
4971 # specified, the entire match is returned. No more than 3 may be included.
4972 42,
4973 ],
4974 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
4975 # (https://github.com/google/re2/wiki/Syntax) can be found under the
4976 # google/re2 repository on GitHub.
4977 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004978 },
4979 &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
4980 # `InspectionRuleSet` are removed from results.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004981 &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
Bu Sun Kim65020912020-05-20 12:08:20 -07004982 &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
4983 # be used to match sensitive information specific to the data, such as a list
4984 # of employee IDs or job titles.
4985 #
4986 # Dictionary words are case-insensitive and all characters other than letters
4987 # and digits in the unicode [Basic Multilingual
4988 # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
4989 # will be replaced with whitespace when scanning for matches, so the
4990 # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
4991 # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
4992 # surrounding any match must be of a different type than the adjacent
4993 # characters within the word, so letters must be next to non-letters and
4994 # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
4995 # match the first three letters of the text &quot;jen123&quot; but will return no
4996 # matches for &quot;jennifer&quot;.
4997 #
4998 # Dictionary words containing a large number of characters that are not
4999 # letters or digits may result in unexpected findings because such characters
5000 # are treated as whitespace. The
5001 # [limits](https://cloud.google.com/dlp/limits) page contains details about
5002 # the size limits of dictionaries. For dictionaries that do not fit within
5003 # these constraints, consider using `LargeCustomDictionaryConfig` in the
5004 # `StoredInfoType` API.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005005 &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
5006 # is accepted.
5007 &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
5008 # Example: gs://[BUCKET_NAME]/dictionary.txt
5009 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005010 &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
5011 &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
5012 # at least one phrase and every phrase must contain at least 2 characters
5013 # that are letters or digits. [required]
5014 &quot;A String&quot;,
5015 ],
5016 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005017 },
5018 &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
5019 &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
5020 # contained within with a finding of an infoType from this list. For
5021 # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
5022 # `exclusion_rule` containing `exclude_info_types.info_types` with
5023 # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
5024 # with EMAIL_ADDRESS finding.
5025 # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
5026 # finding, namely email address.
5027 { # Type of information detected by the API.
5028 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5029 # creating a CustomInfoType, or one of the names listed
5030 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005031 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
5032 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07005033 },
5034 ],
5035 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005036 &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
5037 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
5038 # specified, the entire match is returned. No more than 3 may be included.
5039 42,
5040 ],
5041 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
5042 # (https://github.com/google/re2/wiki/Syntax) can be found under the
5043 # google/re2 repository on GitHub.
5044 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005045 },
5046 },
5047 ],
5048 },
5049 ],
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005050 &quot;contentOptions&quot;: [ # List of options defining data content to scan.
5051 # If empty, text, images, and other content will be included.
5052 &quot;A String&quot;,
5053 ],
5054 &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
5055 # InfoType values returned by ListInfoTypes or listed at
5056 # https://cloud.google.com/dlp/docs/infotypes-reference.
5057 #
5058 # When no InfoTypes or CustomInfoTypes are specified in a request, the
5059 # system may automatically choose what detectors to run. By default this may
5060 # be all types, but may change over time as detectors are updated.
5061 #
5062 # If you need precise control and predictability as to what detectors are
5063 # run you should specify specific InfoTypes listed in the reference,
5064 # otherwise a default list will be used, which may change over time.
5065 { # Type of information detected by the API.
5066 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5067 # creating a CustomInfoType, or one of the names listed
5068 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5069 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
5070 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
5071 },
5072 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07005073 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005074 }
5075
5076 x__xgafv: string, V1 error format.
5077 Allowed values
5078 1 - v1 error format
5079 2 - v2 error format
5080
5081Returns:
5082 An object of the form:
5083
5084 { # Results of inspecting an item.
5085 &quot;result&quot;: { # All the findings for a single scanned item. # The findings.
5086 &quot;findings&quot;: [ # List of findings for an item.
5087 { # Represents a piece of potentially sensitive content.
Bu Sun Kim65020912020-05-20 12:08:20 -07005088 &quot;labels&quot;: { # The labels associated with this `Finding`.
5089 #
5090 # Label keys must be between 1 and 63 characters long and must conform
5091 # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
5092 #
5093 # Label values must be between 0 and 63 characters long and must conform
5094 # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
5095 #
5096 # No more than 10 labels can be associated with a given finding.
5097 #
5098 # Examples:
5099 # * `&quot;environment&quot; : &quot;production&quot;`
5100 # * `&quot;pipeline&quot; : &quot;etl&quot;`
5101 &quot;a_key&quot;: &quot;A String&quot;,
5102 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005103 &quot;triggerName&quot;: &quot;A String&quot;, # Job trigger name, if applicable, for this finding.
5104 &quot;resourceName&quot;: &quot;A String&quot;, # The job that stored the finding.
5105 &quot;jobCreateTime&quot;: &quot;A String&quot;, # Time the job started that produced this finding.
Bu Sun Kim65020912020-05-20 12:08:20 -07005106 &quot;likelihood&quot;: &quot;A String&quot;, # Confidence of how likely it is that the `info_type` is correct.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005107 &quot;quoteInfo&quot;: { # Message for infoType-dependent details parsed from quote. # Contains data parsed from quotes. Only populated if include_quote was set
5108 # to true and a supported infoType was requested. Currently supported
5109 # infoTypes: DATE, DATE_OF_BIRTH and TIME.
5110 &quot;dateTime&quot;: { # Message for a date time object. # The date time indicated by the quote.
5111 # e.g. 2018-01-01, 5th August.
5112 &quot;timeZone&quot;: { # Time zone of the date time object. # Time zone
5113 &quot;offsetMinutes&quot;: 42, # Set only if the offset can be determined. Positive for time ahead of UTC.
5114 # E.g. For &quot;UTC-9&quot;, this value is -540.
5115 },
5116 &quot;date&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # One or more of the following must be set.
5117 # Must be a valid date or time value.
5118 # and time zone are either specified elsewhere or are not significant. The date
5119 # is relative to the Proleptic Gregorian Calendar. This can represent:
5120 #
5121 # * A full date, with non-zero year, month and day values
5122 # * A month and day value, with a zero year, e.g. an anniversary
5123 # * A year on its own, with zero month and day values
5124 # * A year and month value, with a zero day, e.g. a credit card expiration date
5125 #
5126 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
5127 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
5128 # month and day.
5129 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
5130 # a year.
5131 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
5132 # if specifying a year by itself or a year and month where the day is not
5133 # significant.
5134 },
5135 &quot;dayOfWeek&quot;: &quot;A String&quot;, # Day of week
5136 &quot;time&quot;: { # Represents a time of day. The date and time zone are either not significant # Time of day
5137 # or are specified elsewhere. An API may choose to allow leap seconds. Related
5138 # types are google.type.Date and `google.protobuf.Timestamp`.
5139 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
5140 # allow the value 60 if it allows leap-seconds.
5141 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
5142 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
5143 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
5144 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
5145 },
5146 },
5147 },
5148 &quot;infoType&quot;: { # Type of information detected by the API. # The type of content that might have been found.
5149 # Provided if `excluded_types` is false.
5150 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5151 # creating a CustomInfoType, or one of the names listed
5152 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5153 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
5154 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
5155 },
5156 &quot;quote&quot;: &quot;A String&quot;, # The content that was found. Even if the content is not textual, it
5157 # may be converted to a textual representation here.
5158 # Provided if `include_quote` is true and the finding is
5159 # less than or equal to 4096 bytes long. If the finding exceeds 4096 bytes
5160 # in length, the quote may be omitted.
5161 &quot;jobName&quot;: &quot;A String&quot;, # The job that stored the finding.
Bu Sun Kim65020912020-05-20 12:08:20 -07005162 &quot;location&quot;: { # Specifies the location of the finding. # Where the content was found.
Bu Sun Kim65020912020-05-20 12:08:20 -07005163 &quot;contentLocations&quot;: [ # List of nested objects pointing to the precise location of the finding
5164 # within the file or record.
5165 { # Precise location of the finding within a document, record, image, or metadata
5166 # container.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005167 &quot;containerTimestamp&quot;: &quot;A String&quot;, # Findings container modification timestamp, if applicable.
5168 # For Google Cloud Storage contains last file modification timestamp.
5169 # For BigQuery table contains last_modified_time property.
5170 # For Datastore - not populated.
5171 &quot;imageLocation&quot;: { # Location of the finding within an image. # Location within an image&#x27;s pixels.
5172 &quot;boundingBoxes&quot;: [ # Bounding boxes locating the pixels within the image containing the finding.
5173 { # Bounding box encompassing detected text within an image.
5174 &quot;left&quot;: 42, # Left coordinate of the bounding box. (0,0) is upper left.
5175 &quot;top&quot;: 42, # Top coordinate of the bounding box. (0,0) is upper left.
5176 &quot;width&quot;: 42, # Width of the bounding box in pixels.
5177 &quot;height&quot;: 42, # Height of the bounding box in pixels.
5178 },
5179 ],
5180 },
5181 &quot;metadataLocation&quot;: { # Metadata Location # Location within the metadata for inspected content.
5182 &quot;type&quot;: &quot;A String&quot;, # Type of metadata containing the finding.
5183 &quot;storageLabel&quot;: { # Storage metadata label to indicate which metadata entry contains findings. # Storage metadata.
5184 &quot;key&quot;: &quot;A String&quot;,
5185 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005186 },
5187 &quot;recordLocation&quot;: { # Location of a finding within a row or record. # Location within a row or record of a database table.
Bu Sun Kim65020912020-05-20 12:08:20 -07005188 &quot;recordKey&quot;: { # Message for a unique key indicating a record that contains a finding. # Key of the finding.
Bu Sun Kim65020912020-05-20 12:08:20 -07005189 &quot;bigQueryKey&quot;: { # Row key for identifying a record in BigQuery table.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005190 &quot;rowNumber&quot;: &quot;A String&quot;, # Row number inferred at the time the table was scanned. This value is
5191 # nondeterministic, cannot be queried, and may be null for inspection
5192 # jobs. To locate findings within a table, specify
5193 # `inspect_job.storage_config.big_query_options.identifying_fields` in
5194 # `CreateDlpJobRequest`.
Bu Sun Kim65020912020-05-20 12:08:20 -07005195 &quot;tableReference&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference.
5196 # identified by its project_id, dataset_id, and table_name. Within a query
5197 # a table is often referenced with a string in the format of:
5198 # `&lt;project_id&gt;:&lt;dataset_id&gt;.&lt;table_id&gt;` or
5199 # `&lt;project_id&gt;.&lt;dataset_id&gt;.&lt;table_id&gt;`.
5200 &quot;projectId&quot;: &quot;A String&quot;, # The Google Cloud Platform project ID of the project containing the table.
5201 # If omitted, project ID is inferred from the API call.
5202 &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
5203 &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
5204 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005205 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005206 &quot;idValues&quot;: [ # Values of identifying columns in the given row. Order of values matches
5207 # the order of `identifying_fields` specified in the scanning request.
5208 &quot;A String&quot;,
5209 ],
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005210 &quot;datastoreKey&quot;: { # Record key for a finding in Cloud Datastore.
5211 &quot;entityKey&quot;: { # A unique identifier for a Datastore entity. # Datastore entity key.
5212 # If a key&#x27;s partition ID or any of its path kinds or names are
5213 # reserved/read-only, the key is reserved/read-only.
5214 # A reserved/read-only key is forbidden in certain documented contexts.
5215 &quot;path&quot;: [ # The entity path.
5216 # An entity path consists of one or more elements composed of a kind and a
5217 # string or numerical identifier, which identify entities. The first
5218 # element identifies a _root entity_, the second element identifies
5219 # a _child_ of the root entity, the third element identifies a child of the
5220 # second entity, and so forth. The entities identified by all prefixes of
5221 # the path are called the element&#x27;s _ancestors_.
5222 #
5223 # A path can never be empty, and a path can have at most 100 elements.
5224 { # A (kind, ID/name) pair used to construct a key path.
5225 #
5226 # If either name or ID is set, the element is complete.
5227 # If neither is set, the element is incomplete.
5228 &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity.
5229 # A kind matching regex `__.*__` is reserved/read-only.
5230 # A kind must not contain more than 1500 bytes when UTF-8 encoded.
5231 # Cannot be `&quot;&quot;`.
5232 &quot;name&quot;: &quot;A String&quot;, # The name of the entity.
5233 # A name matching regex `__.*__` is reserved/read-only.
5234 # A name must not be more than 1500 bytes when UTF-8 encoded.
5235 # Cannot be `&quot;&quot;`.
5236 &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity.
5237 # Never equal to zero. Values less than zero are discouraged and may not
5238 # be supported in the future.
5239 },
5240 ],
5241 &quot;partitionId&quot;: { # Datastore partition ID. # Entities are partitioned into subsets, currently identified by a project
5242 # ID and namespace ID.
5243 # Queries are scoped to a single partition.
5244 # A partition ID identifies a grouping of entities. The grouping is always
5245 # by project and namespace, however the namespace ID may be empty.
5246 #
5247 # A partition ID contains several dimensions:
5248 # project ID and namespace ID.
5249 &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
5250 &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
5251 },
5252 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005253 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005254 },
5255 &quot;tableLocation&quot;: { # Location of a finding within a table. # Location within a `ContentItem.Table`.
5256 &quot;rowIndex&quot;: &quot;A String&quot;, # The zero-based index of the row where the finding is located. Only
5257 # populated for resources that have a natural ordering, not BigQuery. In
5258 # BigQuery, to identify the row a finding came from, populate
5259 # BigQueryOptions.identifying_fields with your primary key column names and
5260 # when you store the findings the value of those columns will be stored
5261 # inside of Finding.
5262 },
5263 &quot;fieldId&quot;: { # General identifier of a data field in a storage service. # Field id of the field containing the finding.
5264 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
5265 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005266 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005267 &quot;containerName&quot;: &quot;A String&quot;, # Name of the container where the finding is located.
5268 # The top level name is the source file name or table name. Names of some
5269 # common storage containers are formatted as follows:
5270 #
5271 # * BigQuery tables: `{project_id}:{dataset_id}.{table_id}`
5272 # * Cloud Storage files: `gs://{bucket}/{path}`
5273 # * Datastore namespace: {namespace}
5274 #
5275 # Nested names could be absent if the embedded object has no string
5276 # identifier (for an example an image contained within a document).
5277 &quot;documentLocation&quot;: { # Location of a finding within a document. # Location data for document files.
5278 &quot;fileOffset&quot;: &quot;A String&quot;, # Offset of the line, from the beginning of the file, where the finding
5279 # is located.
5280 },
5281 &quot;containerVersion&quot;: &quot;A String&quot;, # Findings container version, if available
5282 # (&quot;generation&quot; for Google Cloud Storage).
Bu Sun Kim65020912020-05-20 12:08:20 -07005283 },
5284 ],
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005285 &quot;container&quot;: { # Represents a container that may contain DLP findings. # Information about the container where this finding occurred, if available.
5286 # Examples of a container include a file, table, or database record.
5287 &quot;updateTime&quot;: &quot;A String&quot;, # Findings container modification timestamp, if applicable.
5288 # For Google Cloud Storage contains last file modification timestamp.
5289 # For BigQuery table contains last_modified_time property.
5290 # For Datastore - not populated.
5291 &quot;projectId&quot;: &quot;A String&quot;, # Project where the finding was found.
5292 # Can be different from the project that owns the finding.
5293 &quot;rootPath&quot;: &quot;A String&quot;, # The root of the container.
5294 # Examples:
5295 # - For BigQuery table `project_id:dataset_id.table_id`, the root is
5296 # `dataset_id`
5297 # - For Google Cloud Storage file `gs://bucket/folder/filename.txt`, the root
5298 # is `gs://bucket`
5299 &quot;version&quot;: &quot;A String&quot;, # Findings container version, if available
5300 # (&quot;generation&quot; for Google Cloud Storage).
5301 &quot;fullPath&quot;: &quot;A String&quot;, # A string representation of the full container name.
5302 # Examples:
5303 # - BigQuery: &#x27;Project:DataSetId.TableId&#x27;
5304 # - Google Cloud Storage: &#x27;gs://Bucket/folders/filename.txt&#x27;
5305 &quot;type&quot;: &quot;A String&quot;, # Container type, for example BigQuery or Google Cloud Storage.
5306 &quot;relativePath&quot;: &quot;A String&quot;, # The rest of the path after the root.
5307 # Examples:
5308 # - For BigQuery table `project_id:dataset_id.table_id`, the relative path is
5309 # `table_id`
5310 # - Google Cloud Storage file `gs://bucket/folder/filename.txt`, the relative
5311 # path is `folder/filename.txt`
5312 },
5313 &quot;codepointRange&quot;: { # Generic half-open interval [start, end) # Unicode character offsets delimiting the finding.
5314 # These are relative to the finding&#x27;s containing element.
5315 # Provided when the content is text.
5316 &quot;end&quot;: &quot;A String&quot;, # Index of the last character of the range (exclusive).
5317 &quot;start&quot;: &quot;A String&quot;, # Index of the first character of the range (inclusive).
5318 },
5319 &quot;byteRange&quot;: { # Generic half-open interval [start, end) # Zero-based byte offsets delimiting the finding.
5320 # These are relative to the finding&#x27;s containing element.
5321 # Note that when the content is not textual, this references
5322 # the UTF-8 encoded textual representation of the content.
5323 # Omitted if content is an image.
5324 &quot;end&quot;: &quot;A String&quot;, # Index of the last character of the range (exclusive).
5325 &quot;start&quot;: &quot;A String&quot;, # Index of the first character of the range (inclusive).
5326 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005327 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005328 &quot;name&quot;: &quot;A String&quot;, # Resource name in format
5329 # projects/{project}/locations/{location}/findings/{finding} Populated only
5330 # when viewing persisted findings.
Bu Sun Kim65020912020-05-20 12:08:20 -07005331 &quot;createTime&quot;: &quot;A String&quot;, # Timestamp when finding was detected.
Bu Sun Kim65020912020-05-20 12:08:20 -07005332 },
5333 ],
5334 &quot;findingsTruncated&quot;: True or False, # If true, then this item might have more findings than were returned,
5335 # and the findings returned are an arbitrary subset of all findings.
5336 # The findings list might be truncated because the input items were too
5337 # large, or because the server reached the maximum amount of resources
5338 # allowed for a single API call. For best results, divide the input into
5339 # smaller batches.
5340 },
5341 }</pre>
5342</div>
5343
5344<div class="method">
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005345 <code class="details" id="reidentify">reidentify(parent, body=None, x__xgafv=None)</code>
Bu Sun Kim65020912020-05-20 12:08:20 -07005346 <pre>Re-identifies content that has been de-identified.
5347See
5348https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example
5349to learn more.
5350
5351Args:
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005352 parent: string, Required. The parent resource name.
5353- Format:projects/[PROJECT-ID]
5354- Format:projects/[PROJECT-ID]/locations/[LOCATION-ID] (required)
Bu Sun Kim65020912020-05-20 12:08:20 -07005355 body: object, The request body.
5356 The object takes the form of:
5357
5358{ # Request to re-identify an item.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005359 &quot;reidentifyTemplateName&quot;: &quot;A String&quot;, # Template to use. References an instance of `DeidentifyTemplate`.
5360 # Any configuration directly specified in `reidentify_config` or
5361 # `inspect_config` will override those set in the template. Singular fields
5362 # that are set in this request will replace their corresponding fields in the
5363 # template. Repeated fields are appended. Singular sub-messages and groups
5364 # are recursively merged.
5365 &quot;locationId&quot;: &quot;A String&quot;, # Deprecated. This field has no effect.
Bu Sun Kim65020912020-05-20 12:08:20 -07005366 &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # Configuration for the inspector.
5367 # When used with redactContent only info_types and min_likelihood are currently
5368 # used.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005369 &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
5370 # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
5371 { # Custom information type provided by the user. Used to find domain-specific
5372 # sensitive information configurable to the data in question.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005373 &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
5374 # be used to match sensitive information specific to the data, such as a list
5375 # of employee IDs or job titles.
5376 #
5377 # Dictionary words are case-insensitive and all characters other than letters
5378 # and digits in the unicode [Basic Multilingual
5379 # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
5380 # will be replaced with whitespace when scanning for matches, so the
5381 # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
5382 # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
5383 # surrounding any match must be of a different type than the adjacent
5384 # characters within the word, so letters must be next to non-letters and
5385 # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
5386 # match the first three letters of the text &quot;jen123&quot; but will return no
5387 # matches for &quot;jennifer&quot;.
5388 #
5389 # Dictionary words containing a large number of characters that are not
5390 # letters or digits may result in unexpected findings because such characters
5391 # are treated as whitespace. The
5392 # [limits](https://cloud.google.com/dlp/limits) page contains details about
5393 # the size limits of dictionaries. For dictionaries that do not fit within
5394 # these constraints, consider using `LargeCustomDictionaryConfig` in the
5395 # `StoredInfoType` API.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005396 &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
5397 # is accepted.
5398 &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
5399 # Example: gs://[BUCKET_NAME]/dictionary.txt
5400 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005401 &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
5402 &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
5403 # at least one phrase and every phrase must contain at least 2 characters
5404 # that are letters or digits. [required]
5405 &quot;A String&quot;,
5406 ],
5407 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005408 },
5409 &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
5410 # infoType, when the name matches one of existing infoTypes and that infoType
5411 # is specified in `InspectContent.info_types` field. Specifying the latter
5412 # adds findings to the one detected by the system. If built-in info type is
5413 # not specified in `InspectContent.info_types` list then the name is treated
5414 # as a custom info type.
5415 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5416 # creating a CustomInfoType, or one of the names listed
5417 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5418 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
5419 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
5420 },
5421 &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
5422 # altered by a detection rule if the finding meets the criteria specified by
5423 # the rule. Defaults to `VERY_LIKELY` if not specified.
5424 &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
5425 # Rules are applied in order that they are specified. Not supported for the
5426 # `surrogate_type` CustomInfoType.
5427 { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
5428 # `CustomInfoType` to alter behavior under certain circumstances, depending
5429 # on the specific details of the rule. Not supported for the `surrogate_type`
5430 # custom infoType.
5431 &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
5432 # proximity of hotwords.
5433 &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
5434 # The total length of the window cannot exceed 1000 characters. Note that
5435 # the finding itself will be included in the window, so that hotwords may
5436 # be used to match substrings of the finding itself. For example, the
5437 # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
5438 # adjusted upwards if the area code is known to be the local area code of
5439 # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
5440 # is the area code in question.
5441 # rule.
5442 &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
5443 &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
5444 },
5445 &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
5446 # part of a detection rule.
5447 &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
5448 &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
5449 # levels. For example, if a finding would be `POSSIBLE` without the
5450 # detection rule and `relative_likelihood` is 1, then it is upgraded to
5451 # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
5452 # Likelihood may never drop below `VERY_UNLIKELY` or exceed
5453 # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
5454 # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
5455 # a final likelihood of `LIKELY`.
5456 },
5457 &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
5458 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
5459 # specified, the entire match is returned. No more than 3 may be included.
5460 42,
5461 ],
5462 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
5463 # (https://github.com/google/re2/wiki/Syntax) can be found under the
5464 # google/re2 repository on GitHub.
5465 },
5466 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005467 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005468 ],
5469 &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
5470 # support reversing.
5471 # such as
5472 # [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
5473 # These types of transformations are
5474 # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
5475 # output. This should be used in conjunction with a field on the
5476 # transformation such as `surrogate_info_type`. This CustomInfoType does
5477 # not support the use of `detection_rules`.
5478 },
5479 &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
5480 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
5481 # specified, the entire match is returned. No more than 3 may be included.
5482 42,
5483 ],
5484 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
5485 # (https://github.com/google/re2/wiki/Syntax) can be found under the
5486 # google/re2 repository on GitHub.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005487 },
5488 &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
5489 # `InspectDataSource`. Not currently supported in `InspectContent`.
5490 &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
5491 # `organizations/433245324/storedInfoTypes/432452342` or
5492 # `projects/project-id/storedInfoTypes/432452342`.
5493 &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
5494 # inspection was created. Output-only field, populated by the system.
5495 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005496 &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
5497 # to be returned. It still can be used for rules matching.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005498 },
5499 ],
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005500 &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
5501 # POSSIBLE.
5502 # See https://cloud.google.com/dlp/docs/likelihood to learn more.
5503 &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
5504 &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
5505 # When set within `InspectContentRequest`, the maximum returned is 2000
5506 # regardless if this is set higher.
5507 &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
5508 { # Max findings configuration per infoType, per content item or long
5509 # running DlpJob.
5510 &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
5511 # info_type should be provided. If InfoTypeLimit does not have an
5512 # info_type, the DLP API applies the limit against all info_types that
5513 # are found but not specified in another InfoTypeLimit.
5514 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5515 # creating a CustomInfoType, or one of the names listed
5516 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5517 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
5518 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
5519 },
5520 &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
5521 },
5522 ],
5523 &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
5524 # When set within `InspectJobConfig`,
5525 # the maximum returned is 2000 regardless if this is set higher.
5526 # When set within `InspectContentRequest`, this field is ignored.
5527 },
5528 &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
Bu Sun Kim65020912020-05-20 12:08:20 -07005529 &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
5530 # included in the response; see Finding.quote.
5531 &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
5532 # Exclusion rules, contained in the set are executed in the end, other
5533 # rules are executed in the order they are specified for each info type.
5534 { # Rule set for modifying a set of infoTypes to alter behavior under certain
5535 # circumstances, depending on the specific details of the rules within the set.
5536 &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
5537 { # Type of information detected by the API.
5538 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5539 # creating a CustomInfoType, or one of the names listed
5540 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005541 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
5542 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07005543 },
5544 ],
5545 &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
5546 { # A single inspection rule to be applied to infoTypes, specified in
5547 # `InspectionRuleSet`.
5548 &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
5549 # proximity of hotwords.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005550 &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
5551 # The total length of the window cannot exceed 1000 characters. Note that
5552 # the finding itself will be included in the window, so that hotwords may
5553 # be used to match substrings of the finding itself. For example, the
5554 # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
5555 # adjusted upwards if the area code is known to be the local area code of
5556 # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
5557 # is the area code in question.
5558 # rule.
5559 &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
5560 &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
5561 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005562 &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
5563 # part of a detection rule.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005564 &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
Bu Sun Kim65020912020-05-20 12:08:20 -07005565 &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
5566 # levels. For example, if a finding would be `POSSIBLE` without the
5567 # detection rule and `relative_likelihood` is 1, then it is upgraded to
5568 # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
5569 # Likelihood may never drop below `VERY_UNLIKELY` or exceed
5570 # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
5571 # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
5572 # a final likelihood of `LIKELY`.
Bu Sun Kim65020912020-05-20 12:08:20 -07005573 },
5574 &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
5575 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
5576 # specified, the entire match is returned. No more than 3 may be included.
5577 42,
5578 ],
5579 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
5580 # (https://github.com/google/re2/wiki/Syntax) can be found under the
5581 # google/re2 repository on GitHub.
5582 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005583 },
5584 &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
5585 # `InspectionRuleSet` are removed from results.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005586 &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
Bu Sun Kim65020912020-05-20 12:08:20 -07005587 &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
5588 # be used to match sensitive information specific to the data, such as a list
5589 # of employee IDs or job titles.
5590 #
5591 # Dictionary words are case-insensitive and all characters other than letters
5592 # and digits in the unicode [Basic Multilingual
5593 # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
5594 # will be replaced with whitespace when scanning for matches, so the
5595 # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
5596 # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
5597 # surrounding any match must be of a different type than the adjacent
5598 # characters within the word, so letters must be next to non-letters and
5599 # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
5600 # match the first three letters of the text &quot;jen123&quot; but will return no
5601 # matches for &quot;jennifer&quot;.
5602 #
5603 # Dictionary words containing a large number of characters that are not
5604 # letters or digits may result in unexpected findings because such characters
5605 # are treated as whitespace. The
5606 # [limits](https://cloud.google.com/dlp/limits) page contains details about
5607 # the size limits of dictionaries. For dictionaries that do not fit within
5608 # these constraints, consider using `LargeCustomDictionaryConfig` in the
5609 # `StoredInfoType` API.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005610 &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
5611 # is accepted.
5612 &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
5613 # Example: gs://[BUCKET_NAME]/dictionary.txt
5614 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005615 &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
5616 &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
5617 # at least one phrase and every phrase must contain at least 2 characters
5618 # that are letters or digits. [required]
5619 &quot;A String&quot;,
5620 ],
5621 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005622 },
5623 &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
5624 &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
5625 # contained within with a finding of an infoType from this list. For
5626 # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
5627 # `exclusion_rule` containing `exclude_info_types.info_types` with
5628 # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
5629 # with EMAIL_ADDRESS finding.
5630 # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
5631 # finding, namely email address.
5632 { # Type of information detected by the API.
5633 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5634 # creating a CustomInfoType, or one of the names listed
5635 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005636 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
5637 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07005638 },
5639 ],
5640 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005641 &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
5642 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
5643 # specified, the entire match is returned. No more than 3 may be included.
5644 42,
5645 ],
5646 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
5647 # (https://github.com/google/re2/wiki/Syntax) can be found under the
5648 # google/re2 repository on GitHub.
5649 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005650 },
5651 },
5652 ],
5653 },
5654 ],
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005655 &quot;contentOptions&quot;: [ # List of options defining data content to scan.
5656 # If empty, text, images, and other content will be included.
5657 &quot;A String&quot;,
5658 ],
5659 &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
5660 # InfoType values returned by ListInfoTypes or listed at
5661 # https://cloud.google.com/dlp/docs/infotypes-reference.
5662 #
5663 # When no InfoTypes or CustomInfoTypes are specified in a request, the
5664 # system may automatically choose what detectors to run. By default this may
5665 # be all types, but may change over time as detectors are updated.
5666 #
5667 # If you need precise control and predictability as to what detectors are
5668 # run you should specify specific InfoTypes listed in the reference,
5669 # otherwise a default list will be used, which may change over time.
5670 { # Type of information detected by the API.
5671 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5672 # creating a CustomInfoType, or one of the names listed
5673 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5674 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
5675 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
5676 },
5677 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07005678 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005679 &quot;inspectTemplateName&quot;: &quot;A String&quot;, # Template to use. Any configuration directly specified in
Bu Sun Kim65020912020-05-20 12:08:20 -07005680 # `inspect_config` will override those set in the template. Singular fields
5681 # that are set in this request will replace their corresponding fields in the
5682 # template. Repeated fields are appended. Singular sub-messages and groups
5683 # are recursively merged.
5684 &quot;reidentifyConfig&quot;: { # The configuration that controls how the data will change. # Configuration for the re-identification of the content item.
5685 # This field shares the same proto message type that is used for
5686 # de-identification, however its usage here is for the reversal of the
5687 # previous de-identification. Re-identification is performed by examining
5688 # the transformations used to de-identify the items and executing the
5689 # reverse. This requires that only reversible transformations
5690 # be provided here. The reversible transformations are:
5691 #
5692 # - `CryptoDeterministicConfig`
5693 # - `CryptoReplaceFfxFpeConfig`
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005694 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and # Treat the dataset as free-form text and apply the same free text
5695 # transformation everywhere.
5696 # apply various `PrimitiveTransformation`s to each finding, where the
5697 # transformation is applied to only values that were identified as a specific
5698 # info_type.
5699 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one
5700 # for a given infoType.
5701 { # A transformation to apply to text that is identified as a specific
5702 # info_type.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005703 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause
5704 # this transformation to apply to all findings that correspond to
5705 # infoTypes that were requested in `InspectConfig`.
5706 { # Type of information detected by the API.
5707 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5708 # creating a CustomInfoType, or one of the names listed
5709 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5710 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
5711 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005712 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005713 ],
5714 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005715 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
5716 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
5717 # to learn more.
5718 &quot;context&quot;: { # General identifier of a data field in a storage service. # Points to the field that contains the context, for example, an entity id.
5719 # If set, must also set cryptoKey. If set, shift will be consistent for the
5720 # given context.
5721 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
5722 },
5723 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
5724 # range (inclusive ends). Negative means shift to earlier in time. Must not
5725 # be more than 365250 days (1000 years) each direction.
5726 #
5727 # For example, 3 means shift date to at most 3 days into the future.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005728 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Causes the shift to be computed based on this key and the context. This
5729 # results in the same shift for the same context and crypto_key. If
5730 # set, must also set context. Can only be applied to table items.
5731 # a key encryption key (KEK) stored by KMS).
5732 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
5733 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
5734 # unwrap the data crypto key.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005735 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
5736 # It will be discarded after the request finishes.
5737 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
5738 # This is an arbitrary string used to differentiate different keys.
5739 # A unique key is generated per name: two separate `TransientCryptoKey`
5740 # protos share the same generated key if their names are the same.
5741 # When the data crypto key is generated, this name is not used in any way
5742 # (repeating the api call will result in a different key being generated).
5743 },
5744 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
5745 # The wrapped key must be a 128/192/256 bit key.
5746 # Authorization requires the following IAM permissions when sending a request
5747 # to perform a crypto transformation using a kms-wrapped crypto key:
5748 # dlp.kms.encrypt
5749 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
5750 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
5751 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005752 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
5753 # leaking the key. Choose another type of key if possible.
5754 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
5755 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005756 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005757 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
5758 },
5759 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
5760 # portion of the value.
5761 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005762 },
5763 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
5764 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005765 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
5766 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
5767 # Note that for the purposes of inspection or transformation, the number
5768 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
5769 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
5770 # 123456789, the number of bytes would be counted as 9, even though an
5771 # int64 only holds up to 8 bytes of data.
5772 &quot;integerValue&quot;: &quot;A String&quot;, # integer
5773 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
5774 # or are specified elsewhere. An API may choose to allow leap seconds. Related
5775 # types are google.type.Date and `google.protobuf.Timestamp`.
5776 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
5777 # allow the value 60 if it allows leap-seconds.
5778 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
5779 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
5780 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
5781 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
5782 },
5783 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
5784 &quot;floatValue&quot;: 3.14, # float
5785 &quot;stringValue&quot;: &quot;A String&quot;, # string
5786 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
5787 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
5788 # and time zone are either specified elsewhere or are not significant. The date
5789 # is relative to the Proleptic Gregorian Calendar. This can represent:
5790 #
5791 # * A full date, with non-zero year, month and day values
5792 # * A month and day value, with a zero year, e.g. an anniversary
5793 # * A year on its own, with zero month and day values
5794 # * A year and month value, with a zero day, e.g. a credit card expiration date
5795 #
5796 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
5797 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
5798 # month and day.
5799 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
5800 # a year.
5801 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
5802 # if specifying a year by itself or a year and month where the day is not
5803 # significant.
5804 },
5805 &quot;booleanValue&quot;: True or False, # boolean
5806 },
5807 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005808 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
5809 # Uses SHA-256.
5810 # The key size must be either 32 or 64 bytes.
5811 # Outputs a base64 encoded representation of the hashed output
5812 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
5813 # Currently, only string and integer values can be hashed.
5814 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
5815 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
5816 # a key encryption key (KEK) stored by KMS).
5817 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
5818 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
5819 # unwrap the data crypto key.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005820 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
5821 # It will be discarded after the request finishes.
5822 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
5823 # This is an arbitrary string used to differentiate different keys.
5824 # A unique key is generated per name: two separate `TransientCryptoKey`
5825 # protos share the same generated key if their names are the same.
5826 # When the data crypto key is generated, this name is not used in any way
5827 # (repeating the api call will result in a different key being generated).
5828 },
5829 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
5830 # The wrapped key must be a 128/192/256 bit key.
5831 # Authorization requires the following IAM permissions when sending a request
5832 # to perform a crypto transformation using a kms-wrapped crypto key:
5833 # dlp.kms.encrypt
5834 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
5835 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
5836 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005837 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
5838 # leaking the key. Choose another type of key if possible.
5839 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
5840 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005841 },
5842 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07005843 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
5844 # fixed character. Masking can start from the beginning or end of the string.
5845 # This can be used on data of any type (numbers, longs, and so on) and when
5846 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
5847 # type. (This allows you to take a long like 123 and modify it to a string like
5848 # **3.
5849 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
5850 # characters. For example, if the input string is `555-555-5555` and you
5851 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
5852 # returns `***-**5-5555`.
5853 { # Characters to skip when doing deidentification of a value. These will be left
5854 # alone and skipped.
5855 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
5856 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
5857 # punctuation.
5858 },
5859 ],
5860 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
5861 # masked. Skipped characters do not count towards this tally.
5862 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
5863 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
5864 # code or credit card number. This string must have a length of 1. If not
5865 # supplied, this value defaults to `*` for strings, and `0` for digits.
5866 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
5867 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
5868 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
5869 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
5870 # is `true`, then the string `12345` is masked as `12***`.
5871 },
5872 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
5873 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
5874 # output would be &#x27;My phone number is &#x27;.
5875 },
5876 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
5877 # Bucketing transformation can provide all of this functionality,
5878 # but requires more configuration. This message is provided as a convenience to
5879 # the user for simple bucketing strategies.
5880 #
5881 # The transformed value will be a hyphenated string of
5882 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
5883 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
5884 #
5885 # This can be used on data of type: double, long.
5886 #
5887 # If the bound Value type differs from the type of data
5888 # being transformed, we will first attempt converting the type of the data to
5889 # be transformed to match the type of the bound before comparing.
5890 #
5891 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
5892 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
5893 # grouped together into a single bucket; for example if `upper_bound` = 89,
5894 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
5895 # Note that for the purposes of inspection or transformation, the number
5896 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
5897 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
5898 # 123456789, the number of bytes would be counted as 9, even though an
5899 # int64 only holds up to 8 bytes of data.
5900 &quot;integerValue&quot;: &quot;A String&quot;, # integer
5901 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
5902 # or are specified elsewhere. An API may choose to allow leap seconds. Related
5903 # types are google.type.Date and `google.protobuf.Timestamp`.
5904 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
5905 # allow the value 60 if it allows leap-seconds.
5906 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
5907 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
5908 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
5909 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
5910 },
5911 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
5912 &quot;floatValue&quot;: 3.14, # float
5913 &quot;stringValue&quot;: &quot;A String&quot;, # string
5914 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
5915 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
5916 # and time zone are either specified elsewhere or are not significant. The date
5917 # is relative to the Proleptic Gregorian Calendar. This can represent:
5918 #
5919 # * A full date, with non-zero year, month and day values
5920 # * A month and day value, with a zero year, e.g. an anniversary
5921 # * A year on its own, with zero month and day values
5922 # * A year and month value, with a zero day, e.g. a credit card expiration date
5923 #
5924 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
5925 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
5926 # month and day.
5927 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
5928 # a year.
5929 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
5930 # if specifying a year by itself or a year and month where the day is not
5931 # significant.
5932 },
5933 &quot;booleanValue&quot;: True or False, # boolean
5934 },
5935 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
5936 # grouped together into a single bucket; for example if `lower_bound` = 10,
5937 # then all values less than 10 are replaced with the value &quot;-10&quot;.
5938 # Note that for the purposes of inspection or transformation, the number
5939 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
5940 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
5941 # 123456789, the number of bytes would be counted as 9, even though an
5942 # int64 only holds up to 8 bytes of data.
5943 &quot;integerValue&quot;: &quot;A String&quot;, # integer
5944 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
5945 # or are specified elsewhere. An API may choose to allow leap seconds. Related
5946 # types are google.type.Date and `google.protobuf.Timestamp`.
5947 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
5948 # allow the value 60 if it allows leap-seconds.
5949 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
5950 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
5951 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
5952 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
5953 },
5954 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
5955 &quot;floatValue&quot;: 3.14, # float
5956 &quot;stringValue&quot;: &quot;A String&quot;, # string
5957 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
5958 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
5959 # and time zone are either specified elsewhere or are not significant. The date
5960 # is relative to the Proleptic Gregorian Calendar. This can represent:
5961 #
5962 # * A full date, with non-zero year, month and day values
5963 # * A month and day value, with a zero year, e.g. an anniversary
5964 # * A year on its own, with zero month and day values
5965 # * A year and month value, with a zero day, e.g. a credit card expiration date
5966 #
5967 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
5968 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
5969 # month and day.
5970 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
5971 # a year.
5972 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
5973 # if specifying a year by itself or a year and month where the day is not
5974 # significant.
5975 },
5976 &quot;booleanValue&quot;: True or False, # boolean
5977 },
5978 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
5979 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
5980 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
5981 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
5982 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005983 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
5984 # (FPE) with the FFX mode of operation; however when used in the
5985 # `ReidentifyContent` API method, it serves the opposite function by reversing
5986 # the surrogate back into the original identifier. The identifier must be
5987 # encoded as ASCII. For a given crypto key and context, the same identifier
5988 # will be replaced with the same surrogate. Identifiers must be at least two
5989 # characters long. In the case that the identifier is the empty string, it will
5990 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
5991 # more.
5992 #
5993 # Note: We recommend using CryptoDeterministicConfig for all use cases which
5994 # do not require preserving the input alphabet space and size, plus warrant
5995 # referential integrity.
5996 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
5997 # This annotation will be applied to the surrogate by prefixing it with
5998 # the name of the custom infoType followed by the number of
5999 # characters comprising the surrogate. The following scheme defines the
6000 # format: info_type_name(surrogate_character_count):surrogate
6001 #
6002 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
6003 # the surrogate is &#x27;abc&#x27;, the full replacement value
6004 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
6005 #
6006 # This annotation identifies the surrogate when inspecting content using the
6007 # custom infoType
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006008 # [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006009 # This facilitates reversal of the surrogate when it occurs in free text.
6010 #
6011 # In order for inspection to work properly, the name of this infoType must
6012 # not occur naturally anywhere in your data; otherwise, inspection may
6013 # find a surrogate that does not correspond to an actual identifier.
6014 # Therefore, choose your custom infoType name carefully after considering
6015 # what your data looks like. One way to select a name that has a high chance
6016 # of yielding reliable detection is to include one or more unicode characters
6017 # that are highly improbable to exist in your data.
6018 # For example, assuming your data is entered from a regular ASCII keyboard,
6019 # the symbol with the hex code point 29DD might be used like so:
6020 # ⧝MY_TOKEN_TYPE
6021 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
6022 # creating a CustomInfoType, or one of the names listed
6023 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006024 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
6025 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006026 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006027 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006028 &quot;context&quot;: { # General identifier of a data field in a storage service. # The &#x27;tweak&#x27;, a context may be used for higher security since the same
6029 # identifier in two different contexts won&#x27;t be given the same surrogate. If
6030 # the context is not set, a default tweak will be used.
6031 #
6032 # If the context is set but:
6033 #
6034 # 1. there is no record present when transforming a given value or
6035 # 1. the field is not present when transforming a given value,
6036 #
6037 # a default tweak will be used.
6038 #
6039 # Note that case (1) is expected when an `InfoTypeTransformation` is
6040 # applied to both structured and non-structured `ContentItem`s.
6041 # Currently, the referenced field may be of value type integer or string.
6042 #
6043 # The tweak is constructed as a sequence of bytes in big endian byte order
6044 # such that:
6045 #
6046 # - a 64 bit integer is encoded followed by a single byte of value 1
6047 # - a string is encoded in UTF-8 format followed by a single byte of value 2
6048 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
6049 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006050 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
6051 # that the FFX mode natively supports. This happens before/after
6052 # encryption/decryption.
6053 # Each character listed must appear only once.
6054 # Number of characters must be in the range [2, 95].
6055 # This must be encoded as ASCII.
6056 # The order of characters does not matter.
6057 # The full list of allowed characters is:
6058 # &lt;code&gt;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
6059 # ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/&lt;/code&gt;
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006060 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
6061 # a key encryption key (KEK) stored by KMS).
6062 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
6063 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
6064 # unwrap the data crypto key.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006065 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
6066 # It will be discarded after the request finishes.
6067 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
6068 # This is an arbitrary string used to differentiate different keys.
6069 # A unique key is generated per name: two separate `TransientCryptoKey`
6070 # protos share the same generated key if their names are the same.
6071 # When the data crypto key is generated, this name is not used in any way
6072 # (repeating the api call will result in a different key being generated).
6073 },
6074 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
6075 # The wrapped key must be a 128/192/256 bit key.
6076 # Authorization requires the following IAM permissions when sending a request
6077 # to perform a crypto transformation using a kms-wrapped crypto key:
6078 # dlp.kms.encrypt
6079 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
6080 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
6081 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006082 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
6083 # leaking the key. Choose another type of key if possible.
6084 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
6085 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006086 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006087 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
6088 },
6089 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
6090 # input. Outputs a base64 encoded representation of the encrypted output.
6091 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006092 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
6093 # referential integrity such that the same identifier in two different
6094 # contexts will be given a distinct surrogate. The context is appended to
6095 # plaintext value being encrypted. On decryption the provided context is
6096 # validated against the value used during encryption. If a context was
6097 # provided during encryption, same context must be provided during decryption
6098 # as well.
6099 #
6100 # If the context is not set, plaintext would be used as is for encryption.
6101 # If the context is set but:
6102 #
6103 # 1. there is no record present when transforming a given value or
6104 # 2. the field is not present when transforming a given value,
6105 #
6106 # plaintext would be used as is for encryption.
6107 #
6108 # Note that case (1) is expected when an `InfoTypeTransformation` is
6109 # applied to both structured and non-structured `ContentItem`s.
6110 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
6111 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006112 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
6113 # This annotation will be applied to the surrogate by prefixing it with
6114 # the name of the custom info type followed by the number of
6115 # characters comprising the surrogate. The following scheme defines the
6116 # format: {info type name}({surrogate character count}):{surrogate}
6117 #
6118 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
6119 # the surrogate is &#x27;abc&#x27;, the full replacement value
6120 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
6121 #
6122 # This annotation identifies the surrogate when inspecting content using the
6123 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
6124 # surrogate when it occurs in free text.
6125 #
6126 # Note: For record transformations where the entire cell in a table is being
6127 # transformed, surrogates are not mandatory. Surrogates are used to denote
6128 # the location of the token and are necessary for re-identification in free
6129 # form text.
6130 #
6131 # In order for inspection to work properly, the name of this info type must
6132 # not occur naturally anywhere in your data; otherwise, inspection may either
6133 #
6134 # - reverse a surrogate that does not correspond to an actual identifier
6135 # - be unable to parse the surrogate and result in an error
6136 #
6137 # Therefore, choose your custom info type name carefully after considering
6138 # what your data looks like. One way to select a name that has a high chance
6139 # of yielding reliable detection is to include one or more unicode characters
6140 # that are highly improbable to exist in your data.
6141 # For example, assuming your data is entered from a regular ASCII keyboard,
6142 # the symbol with the hex code point 29DD might be used like so:
6143 # ⧝MY_TOKEN_TYPE.
6144 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
6145 # creating a CustomInfoType, or one of the names listed
6146 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006147 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
6148 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006149 },
6150 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
6151 # a key encryption key (KEK) stored by KMS).
6152 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
6153 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
6154 # unwrap the data crypto key.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006155 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
6156 # It will be discarded after the request finishes.
6157 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
6158 # This is an arbitrary string used to differentiate different keys.
6159 # A unique key is generated per name: two separate `TransientCryptoKey`
6160 # protos share the same generated key if their names are the same.
6161 # When the data crypto key is generated, this name is not used in any way
6162 # (repeating the api call will result in a different key being generated).
6163 },
6164 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
6165 # The wrapped key must be a 128/192/256 bit key.
6166 # Authorization requires the following IAM permissions when sending a request
6167 # to perform a crypto transformation using a kms-wrapped crypto key:
6168 # dlp.kms.encrypt
6169 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
6170 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
6171 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006172 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
6173 # leaking the key. Choose another type of key if possible.
6174 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
6175 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006176 },
6177 },
6178 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
6179 # replacement values are dynamically provided by the user for custom behavior,
6180 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
6181 # This can be used on
6182 # data of type: number, long, string, timestamp.
6183 # If the bound `Value` type differs from the type of data being transformed, we
6184 # will first attempt converting the type of the data to be transformed to match
6185 # the type of the bound before comparing.
6186 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
6187 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
6188 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006189 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006190 # Note that for the purposes of inspection or transformation, the number
6191 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6192 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6193 # 123456789, the number of bytes would be counted as 9, even though an
6194 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006195 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6196 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6197 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6198 # types are google.type.Date and `google.protobuf.Timestamp`.
6199 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6200 # allow the value 60 if it allows leap-seconds.
6201 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6202 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6203 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6204 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6205 },
6206 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6207 &quot;floatValue&quot;: 3.14, # float
6208 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006209 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6210 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6211 # and time zone are either specified elsewhere or are not significant. The date
6212 # is relative to the Proleptic Gregorian Calendar. This can represent:
6213 #
6214 # * A full date, with non-zero year, month and day values
6215 # * A month and day value, with a zero year, e.g. an anniversary
6216 # * A year on its own, with zero month and day values
6217 # * A year and month value, with a zero day, e.g. a credit card expiration date
6218 #
6219 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006220 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6221 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006222 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6223 # a year.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006224 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6225 # if specifying a year by itself or a year and month where the day is not
6226 # significant.
6227 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006228 &quot;booleanValue&quot;: True or False, # boolean
6229 },
6230 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Required. Replacement value for this bucket.
6231 # Note that for the purposes of inspection or transformation, the number
6232 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6233 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6234 # 123456789, the number of bytes would be counted as 9, even though an
6235 # int64 only holds up to 8 bytes of data.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006236 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6237 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6238 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6239 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006240 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6241 # allow the value 60 if it allows leap-seconds.
6242 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006243 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6244 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6245 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6246 },
6247 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6248 &quot;floatValue&quot;: 3.14, # float
6249 &quot;stringValue&quot;: &quot;A String&quot;, # string
6250 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6251 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6252 # and time zone are either specified elsewhere or are not significant. The date
6253 # is relative to the Proleptic Gregorian Calendar. This can represent:
6254 #
6255 # * A full date, with non-zero year, month and day values
6256 # * A month and day value, with a zero year, e.g. an anniversary
6257 # * A year on its own, with zero month and day values
6258 # * A year and month value, with a zero day, e.g. a credit card expiration date
6259 #
6260 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6261 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6262 # month and day.
6263 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6264 # a year.
6265 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6266 # if specifying a year by itself or a year and month where the day is not
6267 # significant.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006268 },
6269 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006270 },
6271 &quot;min&quot;: { # Set of primitive values supported by the system. # Lower bound of the range, inclusive. Type should be the same as max if
6272 # used.
6273 # Note that for the purposes of inspection or transformation, the number
6274 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6275 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6276 # 123456789, the number of bytes would be counted as 9, even though an
6277 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006278 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6279 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6280 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6281 # types are google.type.Date and `google.protobuf.Timestamp`.
6282 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6283 # allow the value 60 if it allows leap-seconds.
6284 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6285 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6286 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6287 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6288 },
6289 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6290 &quot;floatValue&quot;: 3.14, # float
6291 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006292 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6293 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6294 # and time zone are either specified elsewhere or are not significant. The date
6295 # is relative to the Proleptic Gregorian Calendar. This can represent:
6296 #
6297 # * A full date, with non-zero year, month and day values
6298 # * A month and day value, with a zero year, e.g. an anniversary
6299 # * A year on its own, with zero month and day values
6300 # * A year and month value, with a zero day, e.g. a credit card expiration date
6301 #
6302 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006303 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6304 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006305 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6306 # a year.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006307 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6308 # if specifying a year by itself or a year and month where the day is not
6309 # significant.
6310 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006311 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006312 },
6313 },
6314 ],
6315 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006316 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006317 },
6318 ],
6319 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006320 &quot;transformationErrorHandling&quot;: { # How to handle transformation errors during de-identification. A # Mode for handling transformation errors. If left unspecified, the default
6321 # mode is `TransformationErrorHandling.ThrowError`.
6322 # transformation error occurs when the requested transformation is incompatible
6323 # with the data. For example, trying to de-identify an IP address using a
6324 # `DateShift` transformation would result in a transformation error, since date
6325 # info cannot be extracted from an IP address.
6326 # Information about any incompatible transformations, and how they were
6327 # handled, is returned in the response as part of the
6328 # `TransformationOverviews`.
Bu Sun Kim65020912020-05-20 12:08:20 -07006329 &quot;leaveUntransformed&quot;: { # Skips the data without modifying it if the requested transformation would # Ignore errors
6330 # cause an error. For example, if a `DateShift` transformation were applied
6331 # an an IP address, this mode would leave the IP address unchanged in the
6332 # response.
6333 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006334 &quot;throwError&quot;: { # Throw an error and fail the request when a transformation error occurs. # Throw an error
6335 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006336 },
6337 &quot;recordTransformations&quot;: { # A type of transformation that is applied over structured data such as a # Treat the dataset as structured. Transformations can be applied to
6338 # specific locations within structured datasets, such as transforming
6339 # a column within a table.
6340 # table.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006341 &quot;recordSuppressions&quot;: [ # Configuration defining which records get suppressed entirely. Records that
6342 # match any suppression rule are omitted from the output.
6343 { # Configuration to suppress records whose suppression conditions evaluate to
6344 # true.
6345 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to # A condition that when it evaluates to true will result in the record being
6346 # evaluated to be suppressed from the transformed content.
6347 # a field.
6348 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
6349 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
6350 &quot;conditions&quot;: [ # A collection of conditions.
6351 { # The field type of `value` and `field` do not need to match to be
6352 # considered equal, but not all comparisons are possible.
6353 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
6354 # but all other comparisons are invalid with incompatible types.
6355 # A `value` of type:
6356 #
6357 # - `string` can be compared against all other types
6358 # - `boolean` can only be compared against other booleans
6359 # - `integer` can be compared against doubles or a string if the string value
6360 # can be parsed as an integer.
6361 # - `double` can be compared against integers or a string if the string can
6362 # be parsed as a double.
6363 # - `Timestamp` can be compared against strings in RFC 3339 date string
6364 # format.
6365 # - `TimeOfDay` can be compared against timestamps and strings in the format
6366 # of &#x27;HH:mm:ss&#x27;.
6367 #
6368 # If we fail to compare do to type mismatch, a warning will be given and
6369 # the condition will evaluate to false.
6370 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
6371 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
6372 },
6373 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
6374 # Note that for the purposes of inspection or transformation, the number
6375 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6376 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6377 # 123456789, the number of bytes would be counted as 9, even though an
6378 # int64 only holds up to 8 bytes of data.
6379 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6380 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6381 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6382 # types are google.type.Date and `google.protobuf.Timestamp`.
6383 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6384 # allow the value 60 if it allows leap-seconds.
6385 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6386 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6387 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6388 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6389 },
6390 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6391 &quot;floatValue&quot;: 3.14, # float
6392 &quot;stringValue&quot;: &quot;A String&quot;, # string
6393 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6394 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6395 # and time zone are either specified elsewhere or are not significant. The date
6396 # is relative to the Proleptic Gregorian Calendar. This can represent:
6397 #
6398 # * A full date, with non-zero year, month and day values
6399 # * A month and day value, with a zero year, e.g. an anniversary
6400 # * A year on its own, with zero month and day values
6401 # * A year and month value, with a zero day, e.g. a credit card expiration date
6402 #
6403 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6404 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6405 # month and day.
6406 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6407 # a year.
6408 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6409 # if specifying a year by itself or a year and month where the day is not
6410 # significant.
6411 },
6412 &quot;booleanValue&quot;: True or False, # boolean
6413 },
6414 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
6415 },
6416 ],
6417 },
6418 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
6419 # only supported value is `AND`.
6420 },
6421 },
6422 },
6423 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07006424 &quot;fieldTransformations&quot;: [ # Transform the record by applying various field transformations.
6425 { # The transformation to apply to the field.
Bu Sun Kim65020912020-05-20 12:08:20 -07006426 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and # Treat the contents of the field as free text, and selectively
6427 # transform content that matches an `InfoType`.
6428 # apply various `PrimitiveTransformation`s to each finding, where the
6429 # transformation is applied to only values that were identified as a specific
6430 # info_type.
6431 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one
6432 # for a given infoType.
6433 { # A transformation to apply to text that is identified as a specific
6434 # info_type.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006435 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause
6436 # this transformation to apply to all findings that correspond to
6437 # infoTypes that were requested in `InspectConfig`.
6438 { # Type of information detected by the API.
6439 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
6440 # creating a CustomInfoType, or one of the names listed
6441 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
6442 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
6443 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07006444 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006445 ],
6446 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Bu Sun Kim65020912020-05-20 12:08:20 -07006447 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
6448 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
6449 # to learn more.
6450 &quot;context&quot;: { # General identifier of a data field in a storage service. # Points to the field that contains the context, for example, an entity id.
6451 # If set, must also set cryptoKey. If set, shift will be consistent for the
6452 # given context.
6453 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
6454 },
6455 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
6456 # range (inclusive ends). Negative means shift to earlier in time. Must not
6457 # be more than 365250 days (1000 years) each direction.
6458 #
6459 # For example, 3 means shift date to at most 3 days into the future.
Bu Sun Kim65020912020-05-20 12:08:20 -07006460 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Causes the shift to be computed based on this key and the context. This
6461 # results in the same shift for the same context and crypto_key. If
6462 # set, must also set context. Can only be applied to table items.
6463 # a key encryption key (KEK) stored by KMS).
6464 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
6465 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
6466 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07006467 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
6468 # It will be discarded after the request finishes.
6469 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
6470 # This is an arbitrary string used to differentiate different keys.
6471 # A unique key is generated per name: two separate `TransientCryptoKey`
6472 # protos share the same generated key if their names are the same.
6473 # When the data crypto key is generated, this name is not used in any way
6474 # (repeating the api call will result in a different key being generated).
6475 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006476 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
6477 # The wrapped key must be a 128/192/256 bit key.
6478 # Authorization requires the following IAM permissions when sending a request
6479 # to perform a crypto transformation using a kms-wrapped crypto key:
6480 # dlp.kms.encrypt
6481 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
6482 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
6483 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006484 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
6485 # leaking the key. Choose another type of key if possible.
6486 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
6487 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006488 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006489 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
6490 },
6491 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
6492 # portion of the value.
6493 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
Bu Sun Kim65020912020-05-20 12:08:20 -07006494 },
6495 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
6496 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006497 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
6498 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
6499 # Note that for the purposes of inspection or transformation, the number
6500 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6501 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6502 # 123456789, the number of bytes would be counted as 9, even though an
6503 # int64 only holds up to 8 bytes of data.
6504 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6505 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6506 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6507 # types are google.type.Date and `google.protobuf.Timestamp`.
6508 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6509 # allow the value 60 if it allows leap-seconds.
6510 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6511 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6512 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6513 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6514 },
6515 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6516 &quot;floatValue&quot;: 3.14, # float
6517 &quot;stringValue&quot;: &quot;A String&quot;, # string
6518 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6519 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6520 # and time zone are either specified elsewhere or are not significant. The date
6521 # is relative to the Proleptic Gregorian Calendar. This can represent:
6522 #
6523 # * A full date, with non-zero year, month and day values
6524 # * A month and day value, with a zero year, e.g. an anniversary
6525 # * A year on its own, with zero month and day values
6526 # * A year and month value, with a zero day, e.g. a credit card expiration date
6527 #
6528 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6529 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6530 # month and day.
6531 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6532 # a year.
6533 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6534 # if specifying a year by itself or a year and month where the day is not
6535 # significant.
6536 },
6537 &quot;booleanValue&quot;: True or False, # boolean
6538 },
6539 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006540 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
6541 # Uses SHA-256.
6542 # The key size must be either 32 or 64 bytes.
6543 # Outputs a base64 encoded representation of the hashed output
6544 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
6545 # Currently, only string and integer values can be hashed.
6546 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
6547 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
6548 # a key encryption key (KEK) stored by KMS).
6549 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
6550 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
6551 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07006552 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
6553 # It will be discarded after the request finishes.
6554 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
6555 # This is an arbitrary string used to differentiate different keys.
6556 # A unique key is generated per name: two separate `TransientCryptoKey`
6557 # protos share the same generated key if their names are the same.
6558 # When the data crypto key is generated, this name is not used in any way
6559 # (repeating the api call will result in a different key being generated).
6560 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006561 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
6562 # The wrapped key must be a 128/192/256 bit key.
6563 # Authorization requires the following IAM permissions when sending a request
6564 # to perform a crypto transformation using a kms-wrapped crypto key:
6565 # dlp.kms.encrypt
6566 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
6567 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
6568 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006569 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
6570 # leaking the key. Choose another type of key if possible.
6571 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
6572 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006573 },
6574 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006575 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
6576 # fixed character. Masking can start from the beginning or end of the string.
6577 # This can be used on data of any type (numbers, longs, and so on) and when
6578 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
6579 # type. (This allows you to take a long like 123 and modify it to a string like
6580 # **3.
6581 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
6582 # characters. For example, if the input string is `555-555-5555` and you
6583 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
6584 # returns `***-**5-5555`.
6585 { # Characters to skip when doing deidentification of a value. These will be left
6586 # alone and skipped.
6587 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
6588 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
6589 # punctuation.
6590 },
6591 ],
6592 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
6593 # masked. Skipped characters do not count towards this tally.
6594 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
6595 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
6596 # code or credit card number. This string must have a length of 1. If not
6597 # supplied, this value defaults to `*` for strings, and `0` for digits.
6598 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
6599 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
6600 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
6601 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
6602 # is `true`, then the string `12345` is masked as `12***`.
6603 },
6604 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
6605 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
6606 # output would be &#x27;My phone number is &#x27;.
6607 },
6608 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
6609 # Bucketing transformation can provide all of this functionality,
6610 # but requires more configuration. This message is provided as a convenience to
6611 # the user for simple bucketing strategies.
6612 #
6613 # The transformed value will be a hyphenated string of
6614 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
6615 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
6616 #
6617 # This can be used on data of type: double, long.
6618 #
6619 # If the bound Value type differs from the type of data
6620 # being transformed, we will first attempt converting the type of the data to
6621 # be transformed to match the type of the bound before comparing.
6622 #
6623 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
6624 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
6625 # grouped together into a single bucket; for example if `upper_bound` = 89,
6626 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
6627 # Note that for the purposes of inspection or transformation, the number
6628 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6629 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6630 # 123456789, the number of bytes would be counted as 9, even though an
6631 # int64 only holds up to 8 bytes of data.
6632 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6633 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6634 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6635 # types are google.type.Date and `google.protobuf.Timestamp`.
6636 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6637 # allow the value 60 if it allows leap-seconds.
6638 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6639 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6640 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6641 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6642 },
6643 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6644 &quot;floatValue&quot;: 3.14, # float
6645 &quot;stringValue&quot;: &quot;A String&quot;, # string
6646 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6647 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6648 # and time zone are either specified elsewhere or are not significant. The date
6649 # is relative to the Proleptic Gregorian Calendar. This can represent:
6650 #
6651 # * A full date, with non-zero year, month and day values
6652 # * A month and day value, with a zero year, e.g. an anniversary
6653 # * A year on its own, with zero month and day values
6654 # * A year and month value, with a zero day, e.g. a credit card expiration date
6655 #
6656 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6657 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6658 # month and day.
6659 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6660 # a year.
6661 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6662 # if specifying a year by itself or a year and month where the day is not
6663 # significant.
6664 },
6665 &quot;booleanValue&quot;: True or False, # boolean
6666 },
6667 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
6668 # grouped together into a single bucket; for example if `lower_bound` = 10,
6669 # then all values less than 10 are replaced with the value &quot;-10&quot;.
6670 # Note that for the purposes of inspection or transformation, the number
6671 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6672 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6673 # 123456789, the number of bytes would be counted as 9, even though an
6674 # int64 only holds up to 8 bytes of data.
6675 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6676 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6677 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6678 # types are google.type.Date and `google.protobuf.Timestamp`.
6679 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6680 # allow the value 60 if it allows leap-seconds.
6681 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6682 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6683 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6684 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6685 },
6686 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6687 &quot;floatValue&quot;: 3.14, # float
6688 &quot;stringValue&quot;: &quot;A String&quot;, # string
6689 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6690 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6691 # and time zone are either specified elsewhere or are not significant. The date
6692 # is relative to the Proleptic Gregorian Calendar. This can represent:
6693 #
6694 # * A full date, with non-zero year, month and day values
6695 # * A month and day value, with a zero year, e.g. an anniversary
6696 # * A year on its own, with zero month and day values
6697 # * A year and month value, with a zero day, e.g. a credit card expiration date
6698 #
6699 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6700 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6701 # month and day.
6702 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6703 # a year.
6704 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6705 # if specifying a year by itself or a year and month where the day is not
6706 # significant.
6707 },
6708 &quot;booleanValue&quot;: True or False, # boolean
6709 },
6710 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
6711 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
6712 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
6713 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
6714 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006715 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
6716 # (FPE) with the FFX mode of operation; however when used in the
6717 # `ReidentifyContent` API method, it serves the opposite function by reversing
6718 # the surrogate back into the original identifier. The identifier must be
6719 # encoded as ASCII. For a given crypto key and context, the same identifier
6720 # will be replaced with the same surrogate. Identifiers must be at least two
6721 # characters long. In the case that the identifier is the empty string, it will
6722 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
6723 # more.
6724 #
6725 # Note: We recommend using CryptoDeterministicConfig for all use cases which
6726 # do not require preserving the input alphabet space and size, plus warrant
6727 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07006728 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
6729 # This annotation will be applied to the surrogate by prefixing it with
6730 # the name of the custom infoType followed by the number of
6731 # characters comprising the surrogate. The following scheme defines the
6732 # format: info_type_name(surrogate_character_count):surrogate
6733 #
6734 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
6735 # the surrogate is &#x27;abc&#x27;, the full replacement value
6736 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
6737 #
6738 # This annotation identifies the surrogate when inspecting content using the
6739 # custom infoType
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006740 # [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
Bu Sun Kim65020912020-05-20 12:08:20 -07006741 # This facilitates reversal of the surrogate when it occurs in free text.
6742 #
6743 # In order for inspection to work properly, the name of this infoType must
6744 # not occur naturally anywhere in your data; otherwise, inspection may
6745 # find a surrogate that does not correspond to an actual identifier.
6746 # Therefore, choose your custom infoType name carefully after considering
6747 # what your data looks like. One way to select a name that has a high chance
6748 # of yielding reliable detection is to include one or more unicode characters
6749 # that are highly improbable to exist in your data.
6750 # For example, assuming your data is entered from a regular ASCII keyboard,
6751 # the symbol with the hex code point 29DD might be used like so:
6752 # ⧝MY_TOKEN_TYPE
6753 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
6754 # creating a CustomInfoType, or one of the names listed
6755 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006756 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
6757 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07006758 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006759 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Bu Sun Kim65020912020-05-20 12:08:20 -07006760 &quot;context&quot;: { # General identifier of a data field in a storage service. # The &#x27;tweak&#x27;, a context may be used for higher security since the same
6761 # identifier in two different contexts won&#x27;t be given the same surrogate. If
6762 # the context is not set, a default tweak will be used.
6763 #
6764 # If the context is set but:
6765 #
6766 # 1. there is no record present when transforming a given value or
6767 # 1. the field is not present when transforming a given value,
6768 #
6769 # a default tweak will be used.
6770 #
6771 # Note that case (1) is expected when an `InfoTypeTransformation` is
6772 # applied to both structured and non-structured `ContentItem`s.
6773 # Currently, the referenced field may be of value type integer or string.
6774 #
6775 # The tweak is constructed as a sequence of bytes in big endian byte order
6776 # such that:
6777 #
6778 # - a 64 bit integer is encoded followed by a single byte of value 1
6779 # - a string is encoded in UTF-8 format followed by a single byte of value 2
6780 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
6781 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006782 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
6783 # that the FFX mode natively supports. This happens before/after
6784 # encryption/decryption.
6785 # Each character listed must appear only once.
6786 # Number of characters must be in the range [2, 95].
6787 # This must be encoded as ASCII.
6788 # The order of characters does not matter.
6789 # The full list of allowed characters is:
6790 # &lt;code&gt;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
6791 # ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/&lt;/code&gt;
Bu Sun Kim65020912020-05-20 12:08:20 -07006792 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
6793 # a key encryption key (KEK) stored by KMS).
6794 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
6795 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
6796 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07006797 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
6798 # It will be discarded after the request finishes.
6799 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
6800 # This is an arbitrary string used to differentiate different keys.
6801 # A unique key is generated per name: two separate `TransientCryptoKey`
6802 # protos share the same generated key if their names are the same.
6803 # When the data crypto key is generated, this name is not used in any way
6804 # (repeating the api call will result in a different key being generated).
6805 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006806 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
6807 # The wrapped key must be a 128/192/256 bit key.
6808 # Authorization requires the following IAM permissions when sending a request
6809 # to perform a crypto transformation using a kms-wrapped crypto key:
6810 # dlp.kms.encrypt
6811 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
6812 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
6813 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006814 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
6815 # leaking the key. Choose another type of key if possible.
6816 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
6817 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006818 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006819 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07006820 },
6821 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
6822 # input. Outputs a base64 encoded representation of the encrypted output.
6823 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006824 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
6825 # referential integrity such that the same identifier in two different
6826 # contexts will be given a distinct surrogate. The context is appended to
6827 # plaintext value being encrypted. On decryption the provided context is
6828 # validated against the value used during encryption. If a context was
6829 # provided during encryption, same context must be provided during decryption
6830 # as well.
6831 #
6832 # If the context is not set, plaintext would be used as is for encryption.
6833 # If the context is set but:
6834 #
6835 # 1. there is no record present when transforming a given value or
6836 # 2. the field is not present when transforming a given value,
6837 #
6838 # plaintext would be used as is for encryption.
6839 #
6840 # Note that case (1) is expected when an `InfoTypeTransformation` is
6841 # applied to both structured and non-structured `ContentItem`s.
6842 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
6843 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006844 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
6845 # This annotation will be applied to the surrogate by prefixing it with
6846 # the name of the custom info type followed by the number of
6847 # characters comprising the surrogate. The following scheme defines the
6848 # format: {info type name}({surrogate character count}):{surrogate}
6849 #
6850 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
6851 # the surrogate is &#x27;abc&#x27;, the full replacement value
6852 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
6853 #
6854 # This annotation identifies the surrogate when inspecting content using the
6855 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
6856 # surrogate when it occurs in free text.
6857 #
6858 # Note: For record transformations where the entire cell in a table is being
6859 # transformed, surrogates are not mandatory. Surrogates are used to denote
6860 # the location of the token and are necessary for re-identification in free
6861 # form text.
6862 #
6863 # In order for inspection to work properly, the name of this info type must
6864 # not occur naturally anywhere in your data; otherwise, inspection may either
6865 #
6866 # - reverse a surrogate that does not correspond to an actual identifier
6867 # - be unable to parse the surrogate and result in an error
6868 #
6869 # Therefore, choose your custom info type name carefully after considering
6870 # what your data looks like. One way to select a name that has a high chance
6871 # of yielding reliable detection is to include one or more unicode characters
6872 # that are highly improbable to exist in your data.
6873 # For example, assuming your data is entered from a regular ASCII keyboard,
6874 # the symbol with the hex code point 29DD might be used like so:
6875 # ⧝MY_TOKEN_TYPE.
6876 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
6877 # creating a CustomInfoType, or one of the names listed
6878 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006879 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
6880 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07006881 },
6882 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
6883 # a key encryption key (KEK) stored by KMS).
6884 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
6885 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
6886 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07006887 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
6888 # It will be discarded after the request finishes.
6889 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
6890 # This is an arbitrary string used to differentiate different keys.
6891 # A unique key is generated per name: two separate `TransientCryptoKey`
6892 # protos share the same generated key if their names are the same.
6893 # When the data crypto key is generated, this name is not used in any way
6894 # (repeating the api call will result in a different key being generated).
6895 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006896 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
6897 # The wrapped key must be a 128/192/256 bit key.
6898 # Authorization requires the following IAM permissions when sending a request
6899 # to perform a crypto transformation using a kms-wrapped crypto key:
6900 # dlp.kms.encrypt
6901 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
6902 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
6903 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006904 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
6905 # leaking the key. Choose another type of key if possible.
6906 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
6907 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006908 },
6909 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006910 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
6911 # replacement values are dynamically provided by the user for custom behavior,
6912 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
6913 # This can be used on
6914 # data of type: number, long, string, timestamp.
6915 # If the bound `Value` type differs from the type of data being transformed, we
6916 # will first attempt converting the type of the data to be transformed to match
6917 # the type of the bound before comparing.
6918 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
6919 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
6920 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006921 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
Bu Sun Kim65020912020-05-20 12:08:20 -07006922 # Note that for the purposes of inspection or transformation, the number
6923 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6924 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6925 # 123456789, the number of bytes would be counted as 9, even though an
6926 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006927 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6928 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6929 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6930 # types are google.type.Date and `google.protobuf.Timestamp`.
6931 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6932 # allow the value 60 if it allows leap-seconds.
6933 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6934 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6935 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6936 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6937 },
6938 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6939 &quot;floatValue&quot;: 3.14, # float
6940 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim65020912020-05-20 12:08:20 -07006941 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6942 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6943 # and time zone are either specified elsewhere or are not significant. The date
6944 # is relative to the Proleptic Gregorian Calendar. This can represent:
6945 #
6946 # * A full date, with non-zero year, month and day values
6947 # * A month and day value, with a zero year, e.g. an anniversary
6948 # * A year on its own, with zero month and day values
6949 # * A year and month value, with a zero day, e.g. a credit card expiration date
6950 #
6951 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07006952 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6953 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006954 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6955 # a year.
Bu Sun Kim65020912020-05-20 12:08:20 -07006956 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6957 # if specifying a year by itself or a year and month where the day is not
6958 # significant.
6959 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006960 &quot;booleanValue&quot;: True or False, # boolean
6961 },
6962 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Required. Replacement value for this bucket.
6963 # Note that for the purposes of inspection or transformation, the number
6964 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6965 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6966 # 123456789, the number of bytes would be counted as 9, even though an
6967 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07006968 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6969 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6970 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6971 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006972 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6973 # allow the value 60 if it allows leap-seconds.
6974 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07006975 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6976 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6977 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6978 },
6979 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6980 &quot;floatValue&quot;: 3.14, # float
6981 &quot;stringValue&quot;: &quot;A String&quot;, # string
6982 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6983 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6984 # and time zone are either specified elsewhere or are not significant. The date
6985 # is relative to the Proleptic Gregorian Calendar. This can represent:
6986 #
6987 # * A full date, with non-zero year, month and day values
6988 # * A month and day value, with a zero year, e.g. an anniversary
6989 # * A year on its own, with zero month and day values
6990 # * A year and month value, with a zero day, e.g. a credit card expiration date
6991 #
6992 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6993 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6994 # month and day.
6995 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6996 # a year.
6997 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6998 # if specifying a year by itself or a year and month where the day is not
6999 # significant.
Bu Sun Kim65020912020-05-20 12:08:20 -07007000 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007001 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007002 },
7003 &quot;min&quot;: { # Set of primitive values supported by the system. # Lower bound of the range, inclusive. Type should be the same as max if
7004 # used.
7005 # Note that for the purposes of inspection or transformation, the number
7006 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7007 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7008 # 123456789, the number of bytes would be counted as 9, even though an
7009 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007010 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7011 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7012 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7013 # types are google.type.Date and `google.protobuf.Timestamp`.
7014 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7015 # allow the value 60 if it allows leap-seconds.
7016 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
7017 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7018 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7019 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7020 },
7021 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
7022 &quot;floatValue&quot;: 3.14, # float
7023 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007024 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7025 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7026 # and time zone are either specified elsewhere or are not significant. The date
7027 # is relative to the Proleptic Gregorian Calendar. This can represent:
7028 #
7029 # * A full date, with non-zero year, month and day values
7030 # * A month and day value, with a zero year, e.g. an anniversary
7031 # * A year on its own, with zero month and day values
7032 # * A year and month value, with a zero day, e.g. a credit card expiration date
7033 #
7034 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007035 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7036 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007037 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7038 # a year.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007039 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7040 # if specifying a year by itself or a year and month where the day is not
7041 # significant.
7042 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007043 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim65020912020-05-20 12:08:20 -07007044 },
7045 },
7046 ],
7047 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007048 },
7049 },
7050 ],
7051 },
7052 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Apply the transformation to the entire field.
Bu Sun Kim65020912020-05-20 12:08:20 -07007053 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
7054 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
7055 # to learn more.
7056 &quot;context&quot;: { # General identifier of a data field in a storage service. # Points to the field that contains the context, for example, an entity id.
7057 # If set, must also set cryptoKey. If set, shift will be consistent for the
7058 # given context.
7059 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
7060 },
7061 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
7062 # range (inclusive ends). Negative means shift to earlier in time. Must not
7063 # be more than 365250 days (1000 years) each direction.
7064 #
7065 # For example, 3 means shift date to at most 3 days into the future.
Bu Sun Kim65020912020-05-20 12:08:20 -07007066 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Causes the shift to be computed based on this key and the context. This
7067 # results in the same shift for the same context and crypto_key. If
7068 # set, must also set context. Can only be applied to table items.
7069 # a key encryption key (KEK) stored by KMS).
7070 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
7071 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
7072 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07007073 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
7074 # It will be discarded after the request finishes.
7075 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
7076 # This is an arbitrary string used to differentiate different keys.
7077 # A unique key is generated per name: two separate `TransientCryptoKey`
7078 # protos share the same generated key if their names are the same.
7079 # When the data crypto key is generated, this name is not used in any way
7080 # (repeating the api call will result in a different key being generated).
7081 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007082 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
7083 # The wrapped key must be a 128/192/256 bit key.
7084 # Authorization requires the following IAM permissions when sending a request
7085 # to perform a crypto transformation using a kms-wrapped crypto key:
7086 # dlp.kms.encrypt
7087 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
7088 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
7089 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007090 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
7091 # leaking the key. Choose another type of key if possible.
7092 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
7093 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007094 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007095 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
7096 },
7097 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
7098 # portion of the value.
7099 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
Bu Sun Kim65020912020-05-20 12:08:20 -07007100 },
7101 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
7102 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007103 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
7104 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
7105 # Note that for the purposes of inspection or transformation, the number
7106 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7107 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7108 # 123456789, the number of bytes would be counted as 9, even though an
7109 # int64 only holds up to 8 bytes of data.
7110 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7111 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7112 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7113 # types are google.type.Date and `google.protobuf.Timestamp`.
7114 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7115 # allow the value 60 if it allows leap-seconds.
7116 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
7117 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7118 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7119 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7120 },
7121 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
7122 &quot;floatValue&quot;: 3.14, # float
7123 &quot;stringValue&quot;: &quot;A String&quot;, # string
7124 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7125 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7126 # and time zone are either specified elsewhere or are not significant. The date
7127 # is relative to the Proleptic Gregorian Calendar. This can represent:
7128 #
7129 # * A full date, with non-zero year, month and day values
7130 # * A month and day value, with a zero year, e.g. an anniversary
7131 # * A year on its own, with zero month and day values
7132 # * A year and month value, with a zero day, e.g. a credit card expiration date
7133 #
7134 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
7135 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7136 # month and day.
7137 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7138 # a year.
7139 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7140 # if specifying a year by itself or a year and month where the day is not
7141 # significant.
7142 },
7143 &quot;booleanValue&quot;: True or False, # boolean
7144 },
7145 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007146 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
7147 # Uses SHA-256.
7148 # The key size must be either 32 or 64 bytes.
7149 # Outputs a base64 encoded representation of the hashed output
7150 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
7151 # Currently, only string and integer values can be hashed.
7152 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
7153 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
7154 # a key encryption key (KEK) stored by KMS).
7155 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
7156 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
7157 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07007158 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
7159 # It will be discarded after the request finishes.
7160 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
7161 # This is an arbitrary string used to differentiate different keys.
7162 # A unique key is generated per name: two separate `TransientCryptoKey`
7163 # protos share the same generated key if their names are the same.
7164 # When the data crypto key is generated, this name is not used in any way
7165 # (repeating the api call will result in a different key being generated).
7166 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007167 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
7168 # The wrapped key must be a 128/192/256 bit key.
7169 # Authorization requires the following IAM permissions when sending a request
7170 # to perform a crypto transformation using a kms-wrapped crypto key:
7171 # dlp.kms.encrypt
7172 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
7173 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
7174 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007175 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
7176 # leaking the key. Choose another type of key if possible.
7177 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
7178 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007179 },
7180 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007181 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
7182 # fixed character. Masking can start from the beginning or end of the string.
7183 # This can be used on data of any type (numbers, longs, and so on) and when
7184 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
7185 # type. (This allows you to take a long like 123 and modify it to a string like
7186 # **3.
7187 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
7188 # characters. For example, if the input string is `555-555-5555` and you
7189 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
7190 # returns `***-**5-5555`.
7191 { # Characters to skip when doing deidentification of a value. These will be left
7192 # alone and skipped.
7193 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
7194 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
7195 # punctuation.
7196 },
7197 ],
7198 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
7199 # masked. Skipped characters do not count towards this tally.
7200 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
7201 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
7202 # code or credit card number. This string must have a length of 1. If not
7203 # supplied, this value defaults to `*` for strings, and `0` for digits.
7204 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
7205 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
7206 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
7207 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
7208 # is `true`, then the string `12345` is masked as `12***`.
7209 },
7210 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
7211 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
7212 # output would be &#x27;My phone number is &#x27;.
7213 },
7214 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
7215 # Bucketing transformation can provide all of this functionality,
7216 # but requires more configuration. This message is provided as a convenience to
7217 # the user for simple bucketing strategies.
7218 #
7219 # The transformed value will be a hyphenated string of
7220 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
7221 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
7222 #
7223 # This can be used on data of type: double, long.
7224 #
7225 # If the bound Value type differs from the type of data
7226 # being transformed, we will first attempt converting the type of the data to
7227 # be transformed to match the type of the bound before comparing.
7228 #
7229 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
7230 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
7231 # grouped together into a single bucket; for example if `upper_bound` = 89,
7232 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
7233 # Note that for the purposes of inspection or transformation, the number
7234 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7235 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7236 # 123456789, the number of bytes would be counted as 9, even though an
7237 # int64 only holds up to 8 bytes of data.
7238 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7239 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7240 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7241 # types are google.type.Date and `google.protobuf.Timestamp`.
7242 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7243 # allow the value 60 if it allows leap-seconds.
7244 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
7245 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7246 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7247 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7248 },
7249 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
7250 &quot;floatValue&quot;: 3.14, # float
7251 &quot;stringValue&quot;: &quot;A String&quot;, # string
7252 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7253 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7254 # and time zone are either specified elsewhere or are not significant. The date
7255 # is relative to the Proleptic Gregorian Calendar. This can represent:
7256 #
7257 # * A full date, with non-zero year, month and day values
7258 # * A month and day value, with a zero year, e.g. an anniversary
7259 # * A year on its own, with zero month and day values
7260 # * A year and month value, with a zero day, e.g. a credit card expiration date
7261 #
7262 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
7263 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7264 # month and day.
7265 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7266 # a year.
7267 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7268 # if specifying a year by itself or a year and month where the day is not
7269 # significant.
7270 },
7271 &quot;booleanValue&quot;: True or False, # boolean
7272 },
7273 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
7274 # grouped together into a single bucket; for example if `lower_bound` = 10,
7275 # then all values less than 10 are replaced with the value &quot;-10&quot;.
7276 # Note that for the purposes of inspection or transformation, the number
7277 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7278 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7279 # 123456789, the number of bytes would be counted as 9, even though an
7280 # int64 only holds up to 8 bytes of data.
7281 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7282 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7283 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7284 # types are google.type.Date and `google.protobuf.Timestamp`.
7285 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7286 # allow the value 60 if it allows leap-seconds.
7287 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
7288 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7289 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7290 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7291 },
7292 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
7293 &quot;floatValue&quot;: 3.14, # float
7294 &quot;stringValue&quot;: &quot;A String&quot;, # string
7295 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7296 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7297 # and time zone are either specified elsewhere or are not significant. The date
7298 # is relative to the Proleptic Gregorian Calendar. This can represent:
7299 #
7300 # * A full date, with non-zero year, month and day values
7301 # * A month and day value, with a zero year, e.g. an anniversary
7302 # * A year on its own, with zero month and day values
7303 # * A year and month value, with a zero day, e.g. a credit card expiration date
7304 #
7305 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
7306 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7307 # month and day.
7308 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7309 # a year.
7310 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7311 # if specifying a year by itself or a year and month where the day is not
7312 # significant.
7313 },
7314 &quot;booleanValue&quot;: True or False, # boolean
7315 },
7316 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
7317 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
7318 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
7319 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
7320 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007321 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
7322 # (FPE) with the FFX mode of operation; however when used in the
7323 # `ReidentifyContent` API method, it serves the opposite function by reversing
7324 # the surrogate back into the original identifier. The identifier must be
7325 # encoded as ASCII. For a given crypto key and context, the same identifier
7326 # will be replaced with the same surrogate. Identifiers must be at least two
7327 # characters long. In the case that the identifier is the empty string, it will
7328 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
7329 # more.
7330 #
7331 # Note: We recommend using CryptoDeterministicConfig for all use cases which
7332 # do not require preserving the input alphabet space and size, plus warrant
7333 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07007334 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
7335 # This annotation will be applied to the surrogate by prefixing it with
7336 # the name of the custom infoType followed by the number of
7337 # characters comprising the surrogate. The following scheme defines the
7338 # format: info_type_name(surrogate_character_count):surrogate
7339 #
7340 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
7341 # the surrogate is &#x27;abc&#x27;, the full replacement value
7342 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
7343 #
7344 # This annotation identifies the surrogate when inspecting content using the
7345 # custom infoType
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007346 # [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
Bu Sun Kim65020912020-05-20 12:08:20 -07007347 # This facilitates reversal of the surrogate when it occurs in free text.
7348 #
7349 # In order for inspection to work properly, the name of this infoType must
7350 # not occur naturally anywhere in your data; otherwise, inspection may
7351 # find a surrogate that does not correspond to an actual identifier.
7352 # Therefore, choose your custom infoType name carefully after considering
7353 # what your data looks like. One way to select a name that has a high chance
7354 # of yielding reliable detection is to include one or more unicode characters
7355 # that are highly improbable to exist in your data.
7356 # For example, assuming your data is entered from a regular ASCII keyboard,
7357 # the symbol with the hex code point 29DD might be used like so:
7358 # ⧝MY_TOKEN_TYPE
7359 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
7360 # creating a CustomInfoType, or one of the names listed
7361 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007362 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
7363 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07007364 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007365 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Bu Sun Kim65020912020-05-20 12:08:20 -07007366 &quot;context&quot;: { # General identifier of a data field in a storage service. # The &#x27;tweak&#x27;, a context may be used for higher security since the same
7367 # identifier in two different contexts won&#x27;t be given the same surrogate. If
7368 # the context is not set, a default tweak will be used.
7369 #
7370 # If the context is set but:
7371 #
7372 # 1. there is no record present when transforming a given value or
7373 # 1. the field is not present when transforming a given value,
7374 #
7375 # a default tweak will be used.
7376 #
7377 # Note that case (1) is expected when an `InfoTypeTransformation` is
7378 # applied to both structured and non-structured `ContentItem`s.
7379 # Currently, the referenced field may be of value type integer or string.
7380 #
7381 # The tweak is constructed as a sequence of bytes in big endian byte order
7382 # such that:
7383 #
7384 # - a 64 bit integer is encoded followed by a single byte of value 1
7385 # - a string is encoded in UTF-8 format followed by a single byte of value 2
7386 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
7387 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007388 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
7389 # that the FFX mode natively supports. This happens before/after
7390 # encryption/decryption.
7391 # Each character listed must appear only once.
7392 # Number of characters must be in the range [2, 95].
7393 # This must be encoded as ASCII.
7394 # The order of characters does not matter.
7395 # The full list of allowed characters is:
7396 # &lt;code&gt;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
7397 # ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/&lt;/code&gt;
Bu Sun Kim65020912020-05-20 12:08:20 -07007398 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
7399 # a key encryption key (KEK) stored by KMS).
7400 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
7401 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
7402 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07007403 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
7404 # It will be discarded after the request finishes.
7405 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
7406 # This is an arbitrary string used to differentiate different keys.
7407 # A unique key is generated per name: two separate `TransientCryptoKey`
7408 # protos share the same generated key if their names are the same.
7409 # When the data crypto key is generated, this name is not used in any way
7410 # (repeating the api call will result in a different key being generated).
7411 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007412 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
7413 # The wrapped key must be a 128/192/256 bit key.
7414 # Authorization requires the following IAM permissions when sending a request
7415 # to perform a crypto transformation using a kms-wrapped crypto key:
7416 # dlp.kms.encrypt
7417 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
7418 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
7419 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007420 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
7421 # leaking the key. Choose another type of key if possible.
7422 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
7423 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007424 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007425 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07007426 },
7427 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
7428 # input. Outputs a base64 encoded representation of the encrypted output.
7429 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007430 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
7431 # referential integrity such that the same identifier in two different
7432 # contexts will be given a distinct surrogate. The context is appended to
7433 # plaintext value being encrypted. On decryption the provided context is
7434 # validated against the value used during encryption. If a context was
7435 # provided during encryption, same context must be provided during decryption
7436 # as well.
7437 #
7438 # If the context is not set, plaintext would be used as is for encryption.
7439 # If the context is set but:
7440 #
7441 # 1. there is no record present when transforming a given value or
7442 # 2. the field is not present when transforming a given value,
7443 #
7444 # plaintext would be used as is for encryption.
7445 #
7446 # Note that case (1) is expected when an `InfoTypeTransformation` is
7447 # applied to both structured and non-structured `ContentItem`s.
7448 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
7449 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007450 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
7451 # This annotation will be applied to the surrogate by prefixing it with
7452 # the name of the custom info type followed by the number of
7453 # characters comprising the surrogate. The following scheme defines the
7454 # format: {info type name}({surrogate character count}):{surrogate}
7455 #
7456 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
7457 # the surrogate is &#x27;abc&#x27;, the full replacement value
7458 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
7459 #
7460 # This annotation identifies the surrogate when inspecting content using the
7461 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
7462 # surrogate when it occurs in free text.
7463 #
7464 # Note: For record transformations where the entire cell in a table is being
7465 # transformed, surrogates are not mandatory. Surrogates are used to denote
7466 # the location of the token and are necessary for re-identification in free
7467 # form text.
7468 #
7469 # In order for inspection to work properly, the name of this info type must
7470 # not occur naturally anywhere in your data; otherwise, inspection may either
7471 #
7472 # - reverse a surrogate that does not correspond to an actual identifier
7473 # - be unable to parse the surrogate and result in an error
7474 #
7475 # Therefore, choose your custom info type name carefully after considering
7476 # what your data looks like. One way to select a name that has a high chance
7477 # of yielding reliable detection is to include one or more unicode characters
7478 # that are highly improbable to exist in your data.
7479 # For example, assuming your data is entered from a regular ASCII keyboard,
7480 # the symbol with the hex code point 29DD might be used like so:
7481 # ⧝MY_TOKEN_TYPE.
7482 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
7483 # creating a CustomInfoType, or one of the names listed
7484 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007485 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
7486 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07007487 },
7488 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
7489 # a key encryption key (KEK) stored by KMS).
7490 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
7491 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
7492 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07007493 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
7494 # It will be discarded after the request finishes.
7495 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
7496 # This is an arbitrary string used to differentiate different keys.
7497 # A unique key is generated per name: two separate `TransientCryptoKey`
7498 # protos share the same generated key if their names are the same.
7499 # When the data crypto key is generated, this name is not used in any way
7500 # (repeating the api call will result in a different key being generated).
7501 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007502 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
7503 # The wrapped key must be a 128/192/256 bit key.
7504 # Authorization requires the following IAM permissions when sending a request
7505 # to perform a crypto transformation using a kms-wrapped crypto key:
7506 # dlp.kms.encrypt
7507 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
7508 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
7509 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007510 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
7511 # leaking the key. Choose another type of key if possible.
7512 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
7513 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007514 },
7515 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007516 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
7517 # replacement values are dynamically provided by the user for custom behavior,
7518 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
7519 # This can be used on
7520 # data of type: number, long, string, timestamp.
7521 # If the bound `Value` type differs from the type of data being transformed, we
7522 # will first attempt converting the type of the data to be transformed to match
7523 # the type of the bound before comparing.
7524 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
7525 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
7526 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007527 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
Bu Sun Kim65020912020-05-20 12:08:20 -07007528 # Note that for the purposes of inspection or transformation, the number
7529 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7530 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7531 # 123456789, the number of bytes would be counted as 9, even though an
7532 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007533 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7534 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7535 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7536 # types are google.type.Date and `google.protobuf.Timestamp`.
7537 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7538 # allow the value 60 if it allows leap-seconds.
7539 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
7540 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7541 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7542 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7543 },
7544 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
7545 &quot;floatValue&quot;: 3.14, # float
7546 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim65020912020-05-20 12:08:20 -07007547 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7548 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7549 # and time zone are either specified elsewhere or are not significant. The date
7550 # is relative to the Proleptic Gregorian Calendar. This can represent:
7551 #
7552 # * A full date, with non-zero year, month and day values
7553 # * A month and day value, with a zero year, e.g. an anniversary
7554 # * A year on its own, with zero month and day values
7555 # * A year and month value, with a zero day, e.g. a credit card expiration date
7556 #
7557 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07007558 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7559 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007560 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7561 # a year.
Bu Sun Kim65020912020-05-20 12:08:20 -07007562 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7563 # if specifying a year by itself or a year and month where the day is not
7564 # significant.
7565 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007566 &quot;booleanValue&quot;: True or False, # boolean
7567 },
7568 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Required. Replacement value for this bucket.
7569 # Note that for the purposes of inspection or transformation, the number
7570 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7571 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7572 # 123456789, the number of bytes would be counted as 9, even though an
7573 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07007574 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7575 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7576 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7577 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007578 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7579 # allow the value 60 if it allows leap-seconds.
7580 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007581 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7582 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7583 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7584 },
7585 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
7586 &quot;floatValue&quot;: 3.14, # float
7587 &quot;stringValue&quot;: &quot;A String&quot;, # string
7588 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7589 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7590 # and time zone are either specified elsewhere or are not significant. The date
7591 # is relative to the Proleptic Gregorian Calendar. This can represent:
7592 #
7593 # * A full date, with non-zero year, month and day values
7594 # * A month and day value, with a zero year, e.g. an anniversary
7595 # * A year on its own, with zero month and day values
7596 # * A year and month value, with a zero day, e.g. a credit card expiration date
7597 #
7598 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
7599 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7600 # month and day.
7601 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7602 # a year.
7603 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7604 # if specifying a year by itself or a year and month where the day is not
7605 # significant.
Bu Sun Kim65020912020-05-20 12:08:20 -07007606 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007607 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007608 },
7609 &quot;min&quot;: { # Set of primitive values supported by the system. # Lower bound of the range, inclusive. Type should be the same as max if
7610 # used.
7611 # Note that for the purposes of inspection or transformation, the number
7612 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7613 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7614 # 123456789, the number of bytes would be counted as 9, even though an
7615 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007616 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7617 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7618 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7619 # types are google.type.Date and `google.protobuf.Timestamp`.
7620 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7621 # allow the value 60 if it allows leap-seconds.
7622 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
7623 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7624 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7625 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7626 },
7627 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
7628 &quot;floatValue&quot;: 3.14, # float
7629 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007630 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7631 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7632 # and time zone are either specified elsewhere or are not significant. The date
7633 # is relative to the Proleptic Gregorian Calendar. This can represent:
7634 #
7635 # * A full date, with non-zero year, month and day values
7636 # * A month and day value, with a zero year, e.g. an anniversary
7637 # * A year on its own, with zero month and day values
7638 # * A year and month value, with a zero day, e.g. a credit card expiration date
7639 #
7640 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007641 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7642 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007643 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7644 # a year.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007645 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7646 # if specifying a year by itself or a year and month where the day is not
7647 # significant.
7648 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007649 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim65020912020-05-20 12:08:20 -07007650 },
7651 },
7652 ],
7653 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007654 },
7655 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to # Only apply the transformation if the condition evaluates to true for the
7656 # given `RecordCondition`. The conditions are allowed to reference fields
7657 # that are not used in the actual transformation.
7658 #
7659 # Example Use Cases:
7660 #
7661 # - Apply a different bucket transformation to an age column if the zip code
7662 # column for the same record is within a specific range.
7663 # - Redact a field if the date of birth field is greater than 85.
7664 # a field.
7665 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
Bu Sun Kim65020912020-05-20 12:08:20 -07007666 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
7667 &quot;conditions&quot;: [ # A collection of conditions.
7668 { # The field type of `value` and `field` do not need to match to be
7669 # considered equal, but not all comparisons are possible.
7670 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
7671 # but all other comparisons are invalid with incompatible types.
7672 # A `value` of type:
7673 #
7674 # - `string` can be compared against all other types
7675 # - `boolean` can only be compared against other booleans
7676 # - `integer` can be compared against doubles or a string if the string value
7677 # can be parsed as an integer.
7678 # - `double` can be compared against integers or a string if the string can
7679 # be parsed as a double.
7680 # - `Timestamp` can be compared against strings in RFC 3339 date string
7681 # format.
7682 # - `TimeOfDay` can be compared against timestamps and strings in the format
7683 # of &#x27;HH:mm:ss&#x27;.
7684 #
7685 # If we fail to compare do to type mismatch, a warning will be given and
7686 # the condition will evaluate to false.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007687 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
7688 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
7689 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007690 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
7691 # Note that for the purposes of inspection or transformation, the number
7692 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7693 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7694 # 123456789, the number of bytes would be counted as 9, even though an
7695 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007696 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7697 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7698 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7699 # types are google.type.Date and `google.protobuf.Timestamp`.
7700 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7701 # allow the value 60 if it allows leap-seconds.
7702 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
7703 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7704 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7705 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7706 },
7707 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
7708 &quot;floatValue&quot;: 3.14, # float
7709 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim65020912020-05-20 12:08:20 -07007710 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7711 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7712 # and time zone are either specified elsewhere or are not significant. The date
7713 # is relative to the Proleptic Gregorian Calendar. This can represent:
7714 #
7715 # * A full date, with non-zero year, month and day values
7716 # * A month and day value, with a zero year, e.g. an anniversary
7717 # * A year on its own, with zero month and day values
7718 # * A year and month value, with a zero day, e.g. a credit card expiration date
7719 #
7720 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07007721 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7722 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007723 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7724 # a year.
Bu Sun Kim65020912020-05-20 12:08:20 -07007725 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7726 # if specifying a year by itself or a year and month where the day is not
7727 # significant.
7728 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007729 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007730 },
7731 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
7732 },
7733 ],
7734 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007735 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
7736 # only supported value is `AND`.
Bu Sun Kim65020912020-05-20 12:08:20 -07007737 },
7738 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007739 &quot;fields&quot;: [ # Required. Input field(s) to apply the transformation to.
7740 { # General identifier of a data field in a storage service.
7741 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
7742 },
7743 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07007744 },
7745 ],
7746 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007747 },
7748 &quot;item&quot;: { # Container structure for the content to inspect. # The item to re-identify. Will be treated as text.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007749 &quot;value&quot;: &quot;A String&quot;, # String data to inspect or redact.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007750 &quot;byteItem&quot;: { # Container for bytes to inspect or redact. # Content data to inspect or redact. Replaces `type` and `data`.
7751 &quot;data&quot;: &quot;A String&quot;, # Content data to inspect or redact.
7752 &quot;type&quot;: &quot;A String&quot;, # The type of data stored in the bytes string. Default will be TEXT_UTF8.
7753 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007754 &quot;table&quot;: { # Structured content to inspect. Up to 50,000 `Value`s per request allowed. # Structured content for inspection. See
7755 # https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
7756 # learn more.
7757 # See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
7758 # learn more.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007759 &quot;headers&quot;: [ # Headers of the table.
7760 { # General identifier of a data field in a storage service.
7761 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
7762 },
7763 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007764 &quot;rows&quot;: [ # Rows of the table.
7765 { # Values of the row.
7766 &quot;values&quot;: [ # Individual cells.
7767 { # Set of primitive values supported by the system.
7768 # Note that for the purposes of inspection or transformation, the number
7769 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7770 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7771 # 123456789, the number of bytes would be counted as 9, even though an
7772 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007773 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7774 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7775 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7776 # types are google.type.Date and `google.protobuf.Timestamp`.
7777 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7778 # allow the value 60 if it allows leap-seconds.
7779 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
7780 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7781 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7782 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7783 },
7784 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
7785 &quot;floatValue&quot;: 3.14, # float
7786 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007787 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7788 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7789 # and time zone are either specified elsewhere or are not significant. The date
7790 # is relative to the Proleptic Gregorian Calendar. This can represent:
7791 #
7792 # * A full date, with non-zero year, month and day values
7793 # * A month and day value, with a zero year, e.g. an anniversary
7794 # * A year on its own, with zero month and day values
7795 # * A year and month value, with a zero day, e.g. a credit card expiration date
7796 #
7797 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007798 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7799 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007800 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7801 # a year.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007802 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7803 # if specifying a year by itself or a year and month where the day is not
7804 # significant.
7805 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007806 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim65020912020-05-20 12:08:20 -07007807 },
7808 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007809 },
7810 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07007811 },
7812 },
7813 }
7814
7815 x__xgafv: string, V1 error format.
7816 Allowed values
7817 1 - v1 error format
7818 2 - v2 error format
7819
7820Returns:
7821 An object of the form:
7822
7823 { # Results of re-identifying a item.
7824 &quot;overview&quot;: { # Overview of the modifications that occurred. # An overview of the changes that were made to the `item`.
7825 &quot;transformationSummaries&quot;: [ # Transformations applied to the dataset.
7826 { # Summary of a single transformation.
7827 # Only one of &#x27;transformation&#x27;, &#x27;field_transformation&#x27;, or &#x27;record_suppress&#x27;
7828 # will be set.
Bu Sun Kim65020912020-05-20 12:08:20 -07007829 &quot;transformation&quot;: { # A rule for transforming a value. # The specific transformation these stats apply to.
Bu Sun Kim65020912020-05-20 12:08:20 -07007830 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
7831 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
7832 # to learn more.
7833 &quot;context&quot;: { # General identifier of a data field in a storage service. # Points to the field that contains the context, for example, an entity id.
7834 # If set, must also set cryptoKey. If set, shift will be consistent for the
7835 # given context.
7836 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
7837 },
7838 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
7839 # range (inclusive ends). Negative means shift to earlier in time. Must not
7840 # be more than 365250 days (1000 years) each direction.
7841 #
7842 # For example, 3 means shift date to at most 3 days into the future.
Bu Sun Kim65020912020-05-20 12:08:20 -07007843 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Causes the shift to be computed based on this key and the context. This
7844 # results in the same shift for the same context and crypto_key. If
7845 # set, must also set context. Can only be applied to table items.
7846 # a key encryption key (KEK) stored by KMS).
7847 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
7848 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
7849 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07007850 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
7851 # It will be discarded after the request finishes.
7852 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
7853 # This is an arbitrary string used to differentiate different keys.
7854 # A unique key is generated per name: two separate `TransientCryptoKey`
7855 # protos share the same generated key if their names are the same.
7856 # When the data crypto key is generated, this name is not used in any way
7857 # (repeating the api call will result in a different key being generated).
7858 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007859 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
7860 # The wrapped key must be a 128/192/256 bit key.
7861 # Authorization requires the following IAM permissions when sending a request
7862 # to perform a crypto transformation using a kms-wrapped crypto key:
7863 # dlp.kms.encrypt
7864 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
7865 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
7866 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007867 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
7868 # leaking the key. Choose another type of key if possible.
7869 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
7870 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007871 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007872 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
7873 },
7874 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
7875 # portion of the value.
7876 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
Bu Sun Kim65020912020-05-20 12:08:20 -07007877 },
7878 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
7879 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007880 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
7881 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
7882 # Note that for the purposes of inspection or transformation, the number
7883 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7884 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7885 # 123456789, the number of bytes would be counted as 9, even though an
7886 # int64 only holds up to 8 bytes of data.
7887 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7888 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7889 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7890 # types are google.type.Date and `google.protobuf.Timestamp`.
7891 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7892 # allow the value 60 if it allows leap-seconds.
7893 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
7894 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7895 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7896 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7897 },
7898 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
7899 &quot;floatValue&quot;: 3.14, # float
7900 &quot;stringValue&quot;: &quot;A String&quot;, # string
7901 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7902 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7903 # and time zone are either specified elsewhere or are not significant. The date
7904 # is relative to the Proleptic Gregorian Calendar. This can represent:
7905 #
7906 # * A full date, with non-zero year, month and day values
7907 # * A month and day value, with a zero year, e.g. an anniversary
7908 # * A year on its own, with zero month and day values
7909 # * A year and month value, with a zero day, e.g. a credit card expiration date
7910 #
7911 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
7912 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7913 # month and day.
7914 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7915 # a year.
7916 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7917 # if specifying a year by itself or a year and month where the day is not
7918 # significant.
7919 },
7920 &quot;booleanValue&quot;: True or False, # boolean
7921 },
7922 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007923 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
7924 # Uses SHA-256.
7925 # The key size must be either 32 or 64 bytes.
7926 # Outputs a base64 encoded representation of the hashed output
7927 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
7928 # Currently, only string and integer values can be hashed.
7929 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
7930 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
7931 # a key encryption key (KEK) stored by KMS).
7932 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
7933 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
7934 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07007935 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
7936 # It will be discarded after the request finishes.
7937 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
7938 # This is an arbitrary string used to differentiate different keys.
7939 # A unique key is generated per name: two separate `TransientCryptoKey`
7940 # protos share the same generated key if their names are the same.
7941 # When the data crypto key is generated, this name is not used in any way
7942 # (repeating the api call will result in a different key being generated).
7943 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007944 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
7945 # The wrapped key must be a 128/192/256 bit key.
7946 # Authorization requires the following IAM permissions when sending a request
7947 # to perform a crypto transformation using a kms-wrapped crypto key:
7948 # dlp.kms.encrypt
7949 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
7950 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
7951 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007952 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
7953 # leaking the key. Choose another type of key if possible.
7954 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
7955 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007956 },
7957 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07007958 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
7959 # fixed character. Masking can start from the beginning or end of the string.
7960 # This can be used on data of any type (numbers, longs, and so on) and when
7961 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
7962 # type. (This allows you to take a long like 123 and modify it to a string like
7963 # **3.
7964 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
7965 # characters. For example, if the input string is `555-555-5555` and you
7966 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
7967 # returns `***-**5-5555`.
7968 { # Characters to skip when doing deidentification of a value. These will be left
7969 # alone and skipped.
7970 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
7971 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
7972 # punctuation.
7973 },
7974 ],
7975 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
7976 # masked. Skipped characters do not count towards this tally.
7977 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
7978 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
7979 # code or credit card number. This string must have a length of 1. If not
7980 # supplied, this value defaults to `*` for strings, and `0` for digits.
7981 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
7982 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
7983 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
7984 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
7985 # is `true`, then the string `12345` is masked as `12***`.
7986 },
7987 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
7988 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
7989 # output would be &#x27;My phone number is &#x27;.
7990 },
7991 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
7992 # Bucketing transformation can provide all of this functionality,
7993 # but requires more configuration. This message is provided as a convenience to
7994 # the user for simple bucketing strategies.
7995 #
7996 # The transformed value will be a hyphenated string of
7997 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
7998 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
7999 #
8000 # This can be used on data of type: double, long.
8001 #
8002 # If the bound Value type differs from the type of data
8003 # being transformed, we will first attempt converting the type of the data to
8004 # be transformed to match the type of the bound before comparing.
8005 #
8006 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
8007 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
8008 # grouped together into a single bucket; for example if `upper_bound` = 89,
8009 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
8010 # Note that for the purposes of inspection or transformation, the number
8011 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8012 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8013 # 123456789, the number of bytes would be counted as 9, even though an
8014 # int64 only holds up to 8 bytes of data.
8015 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8016 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8017 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8018 # types are google.type.Date and `google.protobuf.Timestamp`.
8019 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8020 # allow the value 60 if it allows leap-seconds.
8021 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
8022 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8023 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8024 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8025 },
8026 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8027 &quot;floatValue&quot;: 3.14, # float
8028 &quot;stringValue&quot;: &quot;A String&quot;, # string
8029 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8030 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8031 # and time zone are either specified elsewhere or are not significant. The date
8032 # is relative to the Proleptic Gregorian Calendar. This can represent:
8033 #
8034 # * A full date, with non-zero year, month and day values
8035 # * A month and day value, with a zero year, e.g. an anniversary
8036 # * A year on its own, with zero month and day values
8037 # * A year and month value, with a zero day, e.g. a credit card expiration date
8038 #
8039 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8040 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8041 # month and day.
8042 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8043 # a year.
8044 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8045 # if specifying a year by itself or a year and month where the day is not
8046 # significant.
8047 },
8048 &quot;booleanValue&quot;: True or False, # boolean
8049 },
8050 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
8051 # grouped together into a single bucket; for example if `lower_bound` = 10,
8052 # then all values less than 10 are replaced with the value &quot;-10&quot;.
8053 # Note that for the purposes of inspection or transformation, the number
8054 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8055 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8056 # 123456789, the number of bytes would be counted as 9, even though an
8057 # int64 only holds up to 8 bytes of data.
8058 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8059 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8060 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8061 # types are google.type.Date and `google.protobuf.Timestamp`.
8062 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8063 # allow the value 60 if it allows leap-seconds.
8064 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
8065 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8066 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8067 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8068 },
8069 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8070 &quot;floatValue&quot;: 3.14, # float
8071 &quot;stringValue&quot;: &quot;A String&quot;, # string
8072 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8073 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8074 # and time zone are either specified elsewhere or are not significant. The date
8075 # is relative to the Proleptic Gregorian Calendar. This can represent:
8076 #
8077 # * A full date, with non-zero year, month and day values
8078 # * A month and day value, with a zero year, e.g. an anniversary
8079 # * A year on its own, with zero month and day values
8080 # * A year and month value, with a zero day, e.g. a credit card expiration date
8081 #
8082 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8083 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8084 # month and day.
8085 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8086 # a year.
8087 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8088 # if specifying a year by itself or a year and month where the day is not
8089 # significant.
8090 },
8091 &quot;booleanValue&quot;: True or False, # boolean
8092 },
8093 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
8094 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
8095 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
8096 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
8097 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008098 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
8099 # (FPE) with the FFX mode of operation; however when used in the
8100 # `ReidentifyContent` API method, it serves the opposite function by reversing
8101 # the surrogate back into the original identifier. The identifier must be
8102 # encoded as ASCII. For a given crypto key and context, the same identifier
8103 # will be replaced with the same surrogate. Identifiers must be at least two
8104 # characters long. In the case that the identifier is the empty string, it will
8105 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
8106 # more.
8107 #
8108 # Note: We recommend using CryptoDeterministicConfig for all use cases which
8109 # do not require preserving the input alphabet space and size, plus warrant
8110 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07008111 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
8112 # This annotation will be applied to the surrogate by prefixing it with
8113 # the name of the custom infoType followed by the number of
8114 # characters comprising the surrogate. The following scheme defines the
8115 # format: info_type_name(surrogate_character_count):surrogate
8116 #
8117 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
8118 # the surrogate is &#x27;abc&#x27;, the full replacement value
8119 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
8120 #
8121 # This annotation identifies the surrogate when inspecting content using the
8122 # custom infoType
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008123 # [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
Bu Sun Kim65020912020-05-20 12:08:20 -07008124 # This facilitates reversal of the surrogate when it occurs in free text.
8125 #
8126 # In order for inspection to work properly, the name of this infoType must
8127 # not occur naturally anywhere in your data; otherwise, inspection may
8128 # find a surrogate that does not correspond to an actual identifier.
8129 # Therefore, choose your custom infoType name carefully after considering
8130 # what your data looks like. One way to select a name that has a high chance
8131 # of yielding reliable detection is to include one or more unicode characters
8132 # that are highly improbable to exist in your data.
8133 # For example, assuming your data is entered from a regular ASCII keyboard,
8134 # the symbol with the hex code point 29DD might be used like so:
8135 # ⧝MY_TOKEN_TYPE
8136 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
8137 # creating a CustomInfoType, or one of the names listed
8138 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008139 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
8140 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07008141 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008142 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Bu Sun Kim65020912020-05-20 12:08:20 -07008143 &quot;context&quot;: { # General identifier of a data field in a storage service. # The &#x27;tweak&#x27;, a context may be used for higher security since the same
8144 # identifier in two different contexts won&#x27;t be given the same surrogate. If
8145 # the context is not set, a default tweak will be used.
8146 #
8147 # If the context is set but:
8148 #
8149 # 1. there is no record present when transforming a given value or
8150 # 1. the field is not present when transforming a given value,
8151 #
8152 # a default tweak will be used.
8153 #
8154 # Note that case (1) is expected when an `InfoTypeTransformation` is
8155 # applied to both structured and non-structured `ContentItem`s.
8156 # Currently, the referenced field may be of value type integer or string.
8157 #
8158 # The tweak is constructed as a sequence of bytes in big endian byte order
8159 # such that:
8160 #
8161 # - a 64 bit integer is encoded followed by a single byte of value 1
8162 # - a string is encoded in UTF-8 format followed by a single byte of value 2
8163 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
8164 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008165 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
8166 # that the FFX mode natively supports. This happens before/after
8167 # encryption/decryption.
8168 # Each character listed must appear only once.
8169 # Number of characters must be in the range [2, 95].
8170 # This must be encoded as ASCII.
8171 # The order of characters does not matter.
8172 # The full list of allowed characters is:
8173 # &lt;code&gt;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
8174 # ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/&lt;/code&gt;
Bu Sun Kim65020912020-05-20 12:08:20 -07008175 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
8176 # a key encryption key (KEK) stored by KMS).
8177 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
8178 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
8179 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07008180 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
8181 # It will be discarded after the request finishes.
8182 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
8183 # This is an arbitrary string used to differentiate different keys.
8184 # A unique key is generated per name: two separate `TransientCryptoKey`
8185 # protos share the same generated key if their names are the same.
8186 # When the data crypto key is generated, this name is not used in any way
8187 # (repeating the api call will result in a different key being generated).
8188 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008189 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
8190 # The wrapped key must be a 128/192/256 bit key.
8191 # Authorization requires the following IAM permissions when sending a request
8192 # to perform a crypto transformation using a kms-wrapped crypto key:
8193 # dlp.kms.encrypt
8194 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
8195 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
8196 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008197 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
8198 # leaking the key. Choose another type of key if possible.
8199 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
8200 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008201 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008202 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07008203 },
8204 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
8205 # input. Outputs a base64 encoded representation of the encrypted output.
8206 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008207 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
8208 # referential integrity such that the same identifier in two different
8209 # contexts will be given a distinct surrogate. The context is appended to
8210 # plaintext value being encrypted. On decryption the provided context is
8211 # validated against the value used during encryption. If a context was
8212 # provided during encryption, same context must be provided during decryption
8213 # as well.
8214 #
8215 # If the context is not set, plaintext would be used as is for encryption.
8216 # If the context is set but:
8217 #
8218 # 1. there is no record present when transforming a given value or
8219 # 2. the field is not present when transforming a given value,
8220 #
8221 # plaintext would be used as is for encryption.
8222 #
8223 # Note that case (1) is expected when an `InfoTypeTransformation` is
8224 # applied to both structured and non-structured `ContentItem`s.
8225 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
8226 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008227 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
8228 # This annotation will be applied to the surrogate by prefixing it with
8229 # the name of the custom info type followed by the number of
8230 # characters comprising the surrogate. The following scheme defines the
8231 # format: {info type name}({surrogate character count}):{surrogate}
8232 #
8233 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
8234 # the surrogate is &#x27;abc&#x27;, the full replacement value
8235 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
8236 #
8237 # This annotation identifies the surrogate when inspecting content using the
8238 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
8239 # surrogate when it occurs in free text.
8240 #
8241 # Note: For record transformations where the entire cell in a table is being
8242 # transformed, surrogates are not mandatory. Surrogates are used to denote
8243 # the location of the token and are necessary for re-identification in free
8244 # form text.
8245 #
8246 # In order for inspection to work properly, the name of this info type must
8247 # not occur naturally anywhere in your data; otherwise, inspection may either
8248 #
8249 # - reverse a surrogate that does not correspond to an actual identifier
8250 # - be unable to parse the surrogate and result in an error
8251 #
8252 # Therefore, choose your custom info type name carefully after considering
8253 # what your data looks like. One way to select a name that has a high chance
8254 # of yielding reliable detection is to include one or more unicode characters
8255 # that are highly improbable to exist in your data.
8256 # For example, assuming your data is entered from a regular ASCII keyboard,
8257 # the symbol with the hex code point 29DD might be used like so:
8258 # ⧝MY_TOKEN_TYPE.
8259 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
8260 # creating a CustomInfoType, or one of the names listed
8261 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008262 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
8263 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim65020912020-05-20 12:08:20 -07008264 },
8265 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
8266 # a key encryption key (KEK) stored by KMS).
8267 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
8268 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
8269 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07008270 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
8271 # It will be discarded after the request finishes.
8272 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
8273 # This is an arbitrary string used to differentiate different keys.
8274 # A unique key is generated per name: two separate `TransientCryptoKey`
8275 # protos share the same generated key if their names are the same.
8276 # When the data crypto key is generated, this name is not used in any way
8277 # (repeating the api call will result in a different key being generated).
8278 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008279 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
8280 # The wrapped key must be a 128/192/256 bit key.
8281 # Authorization requires the following IAM permissions when sending a request
8282 # to perform a crypto transformation using a kms-wrapped crypto key:
8283 # dlp.kms.encrypt
8284 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
8285 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
8286 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008287 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
8288 # leaking the key. Choose another type of key if possible.
8289 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
8290 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008291 },
8292 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008293 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
8294 # replacement values are dynamically provided by the user for custom behavior,
8295 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
8296 # This can be used on
8297 # data of type: number, long, string, timestamp.
8298 # If the bound `Value` type differs from the type of data being transformed, we
8299 # will first attempt converting the type of the data to be transformed to match
8300 # the type of the bound before comparing.
8301 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
8302 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
8303 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008304 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
Bu Sun Kim65020912020-05-20 12:08:20 -07008305 # Note that for the purposes of inspection or transformation, the number
8306 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8307 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8308 # 123456789, the number of bytes would be counted as 9, even though an
8309 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008310 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8311 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8312 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8313 # types are google.type.Date and `google.protobuf.Timestamp`.
8314 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8315 # allow the value 60 if it allows leap-seconds.
8316 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
8317 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8318 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8319 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8320 },
8321 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8322 &quot;floatValue&quot;: 3.14, # float
8323 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim65020912020-05-20 12:08:20 -07008324 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8325 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8326 # and time zone are either specified elsewhere or are not significant. The date
8327 # is relative to the Proleptic Gregorian Calendar. This can represent:
8328 #
8329 # * A full date, with non-zero year, month and day values
8330 # * A month and day value, with a zero year, e.g. an anniversary
8331 # * A year on its own, with zero month and day values
8332 # * A year and month value, with a zero day, e.g. a credit card expiration date
8333 #
8334 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07008335 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8336 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008337 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8338 # a year.
Bu Sun Kim65020912020-05-20 12:08:20 -07008339 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8340 # if specifying a year by itself or a year and month where the day is not
8341 # significant.
8342 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008343 &quot;booleanValue&quot;: True or False, # boolean
8344 },
8345 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Required. Replacement value for this bucket.
8346 # Note that for the purposes of inspection or transformation, the number
8347 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8348 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8349 # 123456789, the number of bytes would be counted as 9, even though an
8350 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07008351 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8352 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8353 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8354 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008355 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8356 # allow the value 60 if it allows leap-seconds.
8357 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008358 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8359 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8360 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8361 },
8362 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8363 &quot;floatValue&quot;: 3.14, # float
8364 &quot;stringValue&quot;: &quot;A String&quot;, # string
8365 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8366 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8367 # and time zone are either specified elsewhere or are not significant. The date
8368 # is relative to the Proleptic Gregorian Calendar. This can represent:
8369 #
8370 # * A full date, with non-zero year, month and day values
8371 # * A month and day value, with a zero year, e.g. an anniversary
8372 # * A year on its own, with zero month and day values
8373 # * A year and month value, with a zero day, e.g. a credit card expiration date
8374 #
8375 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8376 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8377 # month and day.
8378 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8379 # a year.
8380 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8381 # if specifying a year by itself or a year and month where the day is not
8382 # significant.
Bu Sun Kim65020912020-05-20 12:08:20 -07008383 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008384 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008385 },
8386 &quot;min&quot;: { # Set of primitive values supported by the system. # Lower bound of the range, inclusive. Type should be the same as max if
8387 # used.
8388 # Note that for the purposes of inspection or transformation, the number
8389 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8390 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8391 # 123456789, the number of bytes would be counted as 9, even though an
8392 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008393 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8394 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8395 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8396 # types are google.type.Date and `google.protobuf.Timestamp`.
8397 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8398 # allow the value 60 if it allows leap-seconds.
8399 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
8400 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8401 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8402 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8403 },
8404 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8405 &quot;floatValue&quot;: 3.14, # float
8406 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008407 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8408 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8409 # and time zone are either specified elsewhere or are not significant. The date
8410 # is relative to the Proleptic Gregorian Calendar. This can represent:
8411 #
8412 # * A full date, with non-zero year, month and day values
8413 # * A month and day value, with a zero year, e.g. an anniversary
8414 # * A year on its own, with zero month and day values
8415 # * A year and month value, with a zero day, e.g. a credit card expiration date
8416 #
8417 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008418 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8419 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008420 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8421 # a year.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008422 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8423 # if specifying a year by itself or a year and month where the day is not
8424 # significant.
8425 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008426 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim65020912020-05-20 12:08:20 -07008427 },
8428 },
8429 ],
8430 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008431 },
8432 &quot;field&quot;: { # General identifier of a data field in a storage service. # Set if the transformation was limited to a specific FieldId.
8433 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Bu Sun Kim65020912020-05-20 12:08:20 -07008434 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07008435 &quot;fieldTransformations&quot;: [ # The field transformation that was applied.
8436 # If multiple field transformations are requested for a single field,
8437 # this list will contain all of them; otherwise, only one is supplied.
8438 { # The transformation to apply to the field.
8439 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and # Treat the contents of the field as free text, and selectively
8440 # transform content that matches an `InfoType`.
8441 # apply various `PrimitiveTransformation`s to each finding, where the
8442 # transformation is applied to only values that were identified as a specific
8443 # info_type.
8444 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one
8445 # for a given infoType.
8446 { # A transformation to apply to text that is identified as a specific
8447 # info_type.
8448 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause
8449 # this transformation to apply to all findings that correspond to
8450 # infoTypes that were requested in `InspectConfig`.
8451 { # Type of information detected by the API.
8452 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
8453 # creating a CustomInfoType, or one of the names listed
8454 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
8455 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
8456 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
8457 },
8458 ],
8459 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
8460 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
8461 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
8462 # to learn more.
8463 &quot;context&quot;: { # General identifier of a data field in a storage service. # Points to the field that contains the context, for example, an entity id.
8464 # If set, must also set cryptoKey. If set, shift will be consistent for the
8465 # given context.
8466 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
8467 },
8468 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
8469 # range (inclusive ends). Negative means shift to earlier in time. Must not
8470 # be more than 365250 days (1000 years) each direction.
8471 #
8472 # For example, 3 means shift date to at most 3 days into the future.
8473 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Causes the shift to be computed based on this key and the context. This
8474 # results in the same shift for the same context and crypto_key. If
8475 # set, must also set context. Can only be applied to table items.
8476 # a key encryption key (KEK) stored by KMS).
8477 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
8478 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
8479 # unwrap the data crypto key.
8480 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
8481 # It will be discarded after the request finishes.
8482 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
8483 # This is an arbitrary string used to differentiate different keys.
8484 # A unique key is generated per name: two separate `TransientCryptoKey`
8485 # protos share the same generated key if their names are the same.
8486 # When the data crypto key is generated, this name is not used in any way
8487 # (repeating the api call will result in a different key being generated).
8488 },
8489 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
8490 # The wrapped key must be a 128/192/256 bit key.
8491 # Authorization requires the following IAM permissions when sending a request
8492 # to perform a crypto transformation using a kms-wrapped crypto key:
8493 # dlp.kms.encrypt
8494 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
8495 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
8496 },
8497 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
8498 # leaking the key. Choose another type of key if possible.
8499 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
8500 },
8501 },
8502 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
8503 },
8504 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
8505 # portion of the value.
8506 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
8507 },
8508 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
8509 },
8510 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
8511 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
8512 # Note that for the purposes of inspection or transformation, the number
8513 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8514 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8515 # 123456789, the number of bytes would be counted as 9, even though an
8516 # int64 only holds up to 8 bytes of data.
8517 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8518 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8519 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8520 # types are google.type.Date and `google.protobuf.Timestamp`.
8521 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8522 # allow the value 60 if it allows leap-seconds.
8523 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
8524 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8525 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8526 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8527 },
8528 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8529 &quot;floatValue&quot;: 3.14, # float
8530 &quot;stringValue&quot;: &quot;A String&quot;, # string
8531 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8532 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8533 # and time zone are either specified elsewhere or are not significant. The date
8534 # is relative to the Proleptic Gregorian Calendar. This can represent:
8535 #
8536 # * A full date, with non-zero year, month and day values
8537 # * A month and day value, with a zero year, e.g. an anniversary
8538 # * A year on its own, with zero month and day values
8539 # * A year and month value, with a zero day, e.g. a credit card expiration date
8540 #
8541 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8542 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8543 # month and day.
8544 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8545 # a year.
8546 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8547 # if specifying a year by itself or a year and month where the day is not
8548 # significant.
8549 },
8550 &quot;booleanValue&quot;: True or False, # boolean
8551 },
8552 },
8553 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
8554 # Uses SHA-256.
8555 # The key size must be either 32 or 64 bytes.
8556 # Outputs a base64 encoded representation of the hashed output
8557 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
8558 # Currently, only string and integer values can be hashed.
8559 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
8560 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
8561 # a key encryption key (KEK) stored by KMS).
8562 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
8563 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
8564 # unwrap the data crypto key.
8565 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
8566 # It will be discarded after the request finishes.
8567 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
8568 # This is an arbitrary string used to differentiate different keys.
8569 # A unique key is generated per name: two separate `TransientCryptoKey`
8570 # protos share the same generated key if their names are the same.
8571 # When the data crypto key is generated, this name is not used in any way
8572 # (repeating the api call will result in a different key being generated).
8573 },
8574 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
8575 # The wrapped key must be a 128/192/256 bit key.
8576 # Authorization requires the following IAM permissions when sending a request
8577 # to perform a crypto transformation using a kms-wrapped crypto key:
8578 # dlp.kms.encrypt
8579 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
8580 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
8581 },
8582 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
8583 # leaking the key. Choose another type of key if possible.
8584 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
8585 },
8586 },
8587 },
8588 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
8589 # fixed character. Masking can start from the beginning or end of the string.
8590 # This can be used on data of any type (numbers, longs, and so on) and when
8591 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
8592 # type. (This allows you to take a long like 123 and modify it to a string like
8593 # **3.
8594 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
8595 # characters. For example, if the input string is `555-555-5555` and you
8596 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
8597 # returns `***-**5-5555`.
8598 { # Characters to skip when doing deidentification of a value. These will be left
8599 # alone and skipped.
8600 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
8601 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
8602 # punctuation.
8603 },
8604 ],
8605 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
8606 # masked. Skipped characters do not count towards this tally.
8607 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
8608 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
8609 # code or credit card number. This string must have a length of 1. If not
8610 # supplied, this value defaults to `*` for strings, and `0` for digits.
8611 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
8612 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
8613 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
8614 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
8615 # is `true`, then the string `12345` is masked as `12***`.
8616 },
8617 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
8618 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
8619 # output would be &#x27;My phone number is &#x27;.
8620 },
8621 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
8622 # Bucketing transformation can provide all of this functionality,
8623 # but requires more configuration. This message is provided as a convenience to
8624 # the user for simple bucketing strategies.
8625 #
8626 # The transformed value will be a hyphenated string of
8627 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
8628 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
8629 #
8630 # This can be used on data of type: double, long.
8631 #
8632 # If the bound Value type differs from the type of data
8633 # being transformed, we will first attempt converting the type of the data to
8634 # be transformed to match the type of the bound before comparing.
8635 #
8636 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
8637 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
8638 # grouped together into a single bucket; for example if `upper_bound` = 89,
8639 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
8640 # Note that for the purposes of inspection or transformation, the number
8641 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8642 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8643 # 123456789, the number of bytes would be counted as 9, even though an
8644 # int64 only holds up to 8 bytes of data.
8645 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8646 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8647 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8648 # types are google.type.Date and `google.protobuf.Timestamp`.
8649 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8650 # allow the value 60 if it allows leap-seconds.
8651 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
8652 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8653 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8654 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8655 },
8656 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8657 &quot;floatValue&quot;: 3.14, # float
8658 &quot;stringValue&quot;: &quot;A String&quot;, # string
8659 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8660 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8661 # and time zone are either specified elsewhere or are not significant. The date
8662 # is relative to the Proleptic Gregorian Calendar. This can represent:
8663 #
8664 # * A full date, with non-zero year, month and day values
8665 # * A month and day value, with a zero year, e.g. an anniversary
8666 # * A year on its own, with zero month and day values
8667 # * A year and month value, with a zero day, e.g. a credit card expiration date
8668 #
8669 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8670 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8671 # month and day.
8672 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8673 # a year.
8674 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8675 # if specifying a year by itself or a year and month where the day is not
8676 # significant.
8677 },
8678 &quot;booleanValue&quot;: True or False, # boolean
8679 },
8680 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
8681 # grouped together into a single bucket; for example if `lower_bound` = 10,
8682 # then all values less than 10 are replaced with the value &quot;-10&quot;.
8683 # Note that for the purposes of inspection or transformation, the number
8684 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8685 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8686 # 123456789, the number of bytes would be counted as 9, even though an
8687 # int64 only holds up to 8 bytes of data.
8688 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8689 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8690 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8691 # types are google.type.Date and `google.protobuf.Timestamp`.
8692 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8693 # allow the value 60 if it allows leap-seconds.
8694 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
8695 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8696 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8697 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8698 },
8699 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8700 &quot;floatValue&quot;: 3.14, # float
8701 &quot;stringValue&quot;: &quot;A String&quot;, # string
8702 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8703 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8704 # and time zone are either specified elsewhere or are not significant. The date
8705 # is relative to the Proleptic Gregorian Calendar. This can represent:
8706 #
8707 # * A full date, with non-zero year, month and day values
8708 # * A month and day value, with a zero year, e.g. an anniversary
8709 # * A year on its own, with zero month and day values
8710 # * A year and month value, with a zero day, e.g. a credit card expiration date
8711 #
8712 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8713 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8714 # month and day.
8715 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8716 # a year.
8717 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8718 # if specifying a year by itself or a year and month where the day is not
8719 # significant.
8720 },
8721 &quot;booleanValue&quot;: True or False, # boolean
8722 },
8723 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
8724 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
8725 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
8726 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
8727 },
8728 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
8729 # (FPE) with the FFX mode of operation; however when used in the
8730 # `ReidentifyContent` API method, it serves the opposite function by reversing
8731 # the surrogate back into the original identifier. The identifier must be
8732 # encoded as ASCII. For a given crypto key and context, the same identifier
8733 # will be replaced with the same surrogate. Identifiers must be at least two
8734 # characters long. In the case that the identifier is the empty string, it will
8735 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
8736 # more.
8737 #
8738 # Note: We recommend using CryptoDeterministicConfig for all use cases which
8739 # do not require preserving the input alphabet space and size, plus warrant
8740 # referential integrity.
8741 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
8742 # This annotation will be applied to the surrogate by prefixing it with
8743 # the name of the custom infoType followed by the number of
8744 # characters comprising the surrogate. The following scheme defines the
8745 # format: info_type_name(surrogate_character_count):surrogate
8746 #
8747 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
8748 # the surrogate is &#x27;abc&#x27;, the full replacement value
8749 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
8750 #
8751 # This annotation identifies the surrogate when inspecting content using the
8752 # custom infoType
8753 # [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
8754 # This facilitates reversal of the surrogate when it occurs in free text.
8755 #
8756 # In order for inspection to work properly, the name of this infoType must
8757 # not occur naturally anywhere in your data; otherwise, inspection may
8758 # find a surrogate that does not correspond to an actual identifier.
8759 # Therefore, choose your custom infoType name carefully after considering
8760 # what your data looks like. One way to select a name that has a high chance
8761 # of yielding reliable detection is to include one or more unicode characters
8762 # that are highly improbable to exist in your data.
8763 # For example, assuming your data is entered from a regular ASCII keyboard,
8764 # the symbol with the hex code point 29DD might be used like so:
8765 # ⧝MY_TOKEN_TYPE
8766 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
8767 # creating a CustomInfoType, or one of the names listed
8768 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
8769 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
8770 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
8771 },
8772 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
8773 &quot;context&quot;: { # General identifier of a data field in a storage service. # The &#x27;tweak&#x27;, a context may be used for higher security since the same
8774 # identifier in two different contexts won&#x27;t be given the same surrogate. If
8775 # the context is not set, a default tweak will be used.
8776 #
8777 # If the context is set but:
8778 #
8779 # 1. there is no record present when transforming a given value or
8780 # 1. the field is not present when transforming a given value,
8781 #
8782 # a default tweak will be used.
8783 #
8784 # Note that case (1) is expected when an `InfoTypeTransformation` is
8785 # applied to both structured and non-structured `ContentItem`s.
8786 # Currently, the referenced field may be of value type integer or string.
8787 #
8788 # The tweak is constructed as a sequence of bytes in big endian byte order
8789 # such that:
8790 #
8791 # - a 64 bit integer is encoded followed by a single byte of value 1
8792 # - a string is encoded in UTF-8 format followed by a single byte of value 2
8793 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
8794 },
8795 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
8796 # that the FFX mode natively supports. This happens before/after
8797 # encryption/decryption.
8798 # Each character listed must appear only once.
8799 # Number of characters must be in the range [2, 95].
8800 # This must be encoded as ASCII.
8801 # The order of characters does not matter.
8802 # The full list of allowed characters is:
8803 # &lt;code&gt;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
8804 # ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/&lt;/code&gt;
8805 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
8806 # a key encryption key (KEK) stored by KMS).
8807 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
8808 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
8809 # unwrap the data crypto key.
8810 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
8811 # It will be discarded after the request finishes.
8812 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
8813 # This is an arbitrary string used to differentiate different keys.
8814 # A unique key is generated per name: two separate `TransientCryptoKey`
8815 # protos share the same generated key if their names are the same.
8816 # When the data crypto key is generated, this name is not used in any way
8817 # (repeating the api call will result in a different key being generated).
8818 },
8819 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
8820 # The wrapped key must be a 128/192/256 bit key.
8821 # Authorization requires the following IAM permissions when sending a request
8822 # to perform a crypto transformation using a kms-wrapped crypto key:
8823 # dlp.kms.encrypt
8824 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
8825 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
8826 },
8827 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
8828 # leaking the key. Choose another type of key if possible.
8829 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
8830 },
8831 },
8832 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
8833 },
8834 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
8835 # input. Outputs a base64 encoded representation of the encrypted output.
8836 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
8837 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
8838 # referential integrity such that the same identifier in two different
8839 # contexts will be given a distinct surrogate. The context is appended to
8840 # plaintext value being encrypted. On decryption the provided context is
8841 # validated against the value used during encryption. If a context was
8842 # provided during encryption, same context must be provided during decryption
8843 # as well.
8844 #
8845 # If the context is not set, plaintext would be used as is for encryption.
8846 # If the context is set but:
8847 #
8848 # 1. there is no record present when transforming a given value or
8849 # 2. the field is not present when transforming a given value,
8850 #
8851 # plaintext would be used as is for encryption.
8852 #
8853 # Note that case (1) is expected when an `InfoTypeTransformation` is
8854 # applied to both structured and non-structured `ContentItem`s.
8855 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
8856 },
8857 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
8858 # This annotation will be applied to the surrogate by prefixing it with
8859 # the name of the custom info type followed by the number of
8860 # characters comprising the surrogate. The following scheme defines the
8861 # format: {info type name}({surrogate character count}):{surrogate}
8862 #
8863 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
8864 # the surrogate is &#x27;abc&#x27;, the full replacement value
8865 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
8866 #
8867 # This annotation identifies the surrogate when inspecting content using the
8868 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
8869 # surrogate when it occurs in free text.
8870 #
8871 # Note: For record transformations where the entire cell in a table is being
8872 # transformed, surrogates are not mandatory. Surrogates are used to denote
8873 # the location of the token and are necessary for re-identification in free
8874 # form text.
8875 #
8876 # In order for inspection to work properly, the name of this info type must
8877 # not occur naturally anywhere in your data; otherwise, inspection may either
8878 #
8879 # - reverse a surrogate that does not correspond to an actual identifier
8880 # - be unable to parse the surrogate and result in an error
8881 #
8882 # Therefore, choose your custom info type name carefully after considering
8883 # what your data looks like. One way to select a name that has a high chance
8884 # of yielding reliable detection is to include one or more unicode characters
8885 # that are highly improbable to exist in your data.
8886 # For example, assuming your data is entered from a regular ASCII keyboard,
8887 # the symbol with the hex code point 29DD might be used like so:
8888 # ⧝MY_TOKEN_TYPE.
8889 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
8890 # creating a CustomInfoType, or one of the names listed
8891 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
8892 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
8893 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
8894 },
8895 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
8896 # a key encryption key (KEK) stored by KMS).
8897 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
8898 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
8899 # unwrap the data crypto key.
8900 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
8901 # It will be discarded after the request finishes.
8902 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
8903 # This is an arbitrary string used to differentiate different keys.
8904 # A unique key is generated per name: two separate `TransientCryptoKey`
8905 # protos share the same generated key if their names are the same.
8906 # When the data crypto key is generated, this name is not used in any way
8907 # (repeating the api call will result in a different key being generated).
8908 },
8909 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
8910 # The wrapped key must be a 128/192/256 bit key.
8911 # Authorization requires the following IAM permissions when sending a request
8912 # to perform a crypto transformation using a kms-wrapped crypto key:
8913 # dlp.kms.encrypt
8914 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
8915 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
8916 },
8917 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
8918 # leaking the key. Choose another type of key if possible.
8919 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
8920 },
8921 },
8922 },
8923 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
8924 # replacement values are dynamically provided by the user for custom behavior,
8925 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
8926 # This can be used on
8927 # data of type: number, long, string, timestamp.
8928 # If the bound `Value` type differs from the type of data being transformed, we
8929 # will first attempt converting the type of the data to be transformed to match
8930 # the type of the bound before comparing.
8931 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
8932 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
8933 { # Bucket is represented as a range, along with replacement values.
8934 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
8935 # Note that for the purposes of inspection or transformation, the number
8936 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8937 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8938 # 123456789, the number of bytes would be counted as 9, even though an
8939 # int64 only holds up to 8 bytes of data.
8940 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8941 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8942 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8943 # types are google.type.Date and `google.protobuf.Timestamp`.
8944 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8945 # allow the value 60 if it allows leap-seconds.
8946 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
8947 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8948 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8949 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8950 },
8951 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8952 &quot;floatValue&quot;: 3.14, # float
8953 &quot;stringValue&quot;: &quot;A String&quot;, # string
8954 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8955 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8956 # and time zone are either specified elsewhere or are not significant. The date
8957 # is relative to the Proleptic Gregorian Calendar. This can represent:
8958 #
8959 # * A full date, with non-zero year, month and day values
8960 # * A month and day value, with a zero year, e.g. an anniversary
8961 # * A year on its own, with zero month and day values
8962 # * A year and month value, with a zero day, e.g. a credit card expiration date
8963 #
8964 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8965 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8966 # month and day.
8967 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8968 # a year.
8969 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8970 # if specifying a year by itself or a year and month where the day is not
8971 # significant.
8972 },
8973 &quot;booleanValue&quot;: True or False, # boolean
8974 },
8975 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Required. Replacement value for this bucket.
8976 # Note that for the purposes of inspection or transformation, the number
8977 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8978 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8979 # 123456789, the number of bytes would be counted as 9, even though an
8980 # int64 only holds up to 8 bytes of data.
8981 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8982 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8983 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8984 # types are google.type.Date and `google.protobuf.Timestamp`.
8985 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8986 # allow the value 60 if it allows leap-seconds.
8987 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
8988 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8989 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8990 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8991 },
8992 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8993 &quot;floatValue&quot;: 3.14, # float
8994 &quot;stringValue&quot;: &quot;A String&quot;, # string
8995 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8996 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8997 # and time zone are either specified elsewhere or are not significant. The date
8998 # is relative to the Proleptic Gregorian Calendar. This can represent:
8999 #
9000 # * A full date, with non-zero year, month and day values
9001 # * A month and day value, with a zero year, e.g. an anniversary
9002 # * A year on its own, with zero month and day values
9003 # * A year and month value, with a zero day, e.g. a credit card expiration date
9004 #
9005 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9006 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9007 # month and day.
9008 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9009 # a year.
9010 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9011 # if specifying a year by itself or a year and month where the day is not
9012 # significant.
9013 },
9014 &quot;booleanValue&quot;: True or False, # boolean
9015 },
9016 &quot;min&quot;: { # Set of primitive values supported by the system. # Lower bound of the range, inclusive. Type should be the same as max if
9017 # used.
9018 # Note that for the purposes of inspection or transformation, the number
9019 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9020 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9021 # 123456789, the number of bytes would be counted as 9, even though an
9022 # int64 only holds up to 8 bytes of data.
9023 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9024 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9025 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9026 # types are google.type.Date and `google.protobuf.Timestamp`.
9027 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9028 # allow the value 60 if it allows leap-seconds.
9029 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
9030 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
9031 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9032 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9033 },
9034 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
9035 &quot;floatValue&quot;: 3.14, # float
9036 &quot;stringValue&quot;: &quot;A String&quot;, # string
9037 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9038 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9039 # and time zone are either specified elsewhere or are not significant. The date
9040 # is relative to the Proleptic Gregorian Calendar. This can represent:
9041 #
9042 # * A full date, with non-zero year, month and day values
9043 # * A month and day value, with a zero year, e.g. an anniversary
9044 # * A year on its own, with zero month and day values
9045 # * A year and month value, with a zero day, e.g. a credit card expiration date
9046 #
9047 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9048 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9049 # month and day.
9050 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9051 # a year.
9052 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9053 # if specifying a year by itself or a year and month where the day is not
9054 # significant.
9055 },
9056 &quot;booleanValue&quot;: True or False, # boolean
9057 },
9058 },
9059 ],
9060 },
9061 },
9062 },
9063 ],
9064 },
9065 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Apply the transformation to the entire field.
9066 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
9067 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
9068 # to learn more.
9069 &quot;context&quot;: { # General identifier of a data field in a storage service. # Points to the field that contains the context, for example, an entity id.
9070 # If set, must also set cryptoKey. If set, shift will be consistent for the
9071 # given context.
9072 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
9073 },
9074 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
9075 # range (inclusive ends). Negative means shift to earlier in time. Must not
9076 # be more than 365250 days (1000 years) each direction.
9077 #
9078 # For example, 3 means shift date to at most 3 days into the future.
9079 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Causes the shift to be computed based on this key and the context. This
9080 # results in the same shift for the same context and crypto_key. If
9081 # set, must also set context. Can only be applied to table items.
9082 # a key encryption key (KEK) stored by KMS).
9083 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
9084 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
9085 # unwrap the data crypto key.
9086 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
9087 # It will be discarded after the request finishes.
9088 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
9089 # This is an arbitrary string used to differentiate different keys.
9090 # A unique key is generated per name: two separate `TransientCryptoKey`
9091 # protos share the same generated key if their names are the same.
9092 # When the data crypto key is generated, this name is not used in any way
9093 # (repeating the api call will result in a different key being generated).
9094 },
9095 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
9096 # The wrapped key must be a 128/192/256 bit key.
9097 # Authorization requires the following IAM permissions when sending a request
9098 # to perform a crypto transformation using a kms-wrapped crypto key:
9099 # dlp.kms.encrypt
9100 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
9101 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
9102 },
9103 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
9104 # leaking the key. Choose another type of key if possible.
9105 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
9106 },
9107 },
9108 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
9109 },
9110 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
9111 # portion of the value.
9112 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
9113 },
9114 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
9115 },
9116 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
9117 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
9118 # Note that for the purposes of inspection or transformation, the number
9119 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9120 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9121 # 123456789, the number of bytes would be counted as 9, even though an
9122 # int64 only holds up to 8 bytes of data.
9123 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9124 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9125 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9126 # types are google.type.Date and `google.protobuf.Timestamp`.
9127 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9128 # allow the value 60 if it allows leap-seconds.
9129 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
9130 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
9131 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9132 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9133 },
9134 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
9135 &quot;floatValue&quot;: 3.14, # float
9136 &quot;stringValue&quot;: &quot;A String&quot;, # string
9137 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9138 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9139 # and time zone are either specified elsewhere or are not significant. The date
9140 # is relative to the Proleptic Gregorian Calendar. This can represent:
9141 #
9142 # * A full date, with non-zero year, month and day values
9143 # * A month and day value, with a zero year, e.g. an anniversary
9144 # * A year on its own, with zero month and day values
9145 # * A year and month value, with a zero day, e.g. a credit card expiration date
9146 #
9147 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9148 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9149 # month and day.
9150 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9151 # a year.
9152 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9153 # if specifying a year by itself or a year and month where the day is not
9154 # significant.
9155 },
9156 &quot;booleanValue&quot;: True or False, # boolean
9157 },
9158 },
9159 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
9160 # Uses SHA-256.
9161 # The key size must be either 32 or 64 bytes.
9162 # Outputs a base64 encoded representation of the hashed output
9163 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
9164 # Currently, only string and integer values can be hashed.
9165 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
9166 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
9167 # a key encryption key (KEK) stored by KMS).
9168 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
9169 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
9170 # unwrap the data crypto key.
9171 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
9172 # It will be discarded after the request finishes.
9173 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
9174 # This is an arbitrary string used to differentiate different keys.
9175 # A unique key is generated per name: two separate `TransientCryptoKey`
9176 # protos share the same generated key if their names are the same.
9177 # When the data crypto key is generated, this name is not used in any way
9178 # (repeating the api call will result in a different key being generated).
9179 },
9180 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
9181 # The wrapped key must be a 128/192/256 bit key.
9182 # Authorization requires the following IAM permissions when sending a request
9183 # to perform a crypto transformation using a kms-wrapped crypto key:
9184 # dlp.kms.encrypt
9185 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
9186 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
9187 },
9188 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
9189 # leaking the key. Choose another type of key if possible.
9190 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
9191 },
9192 },
9193 },
9194 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
9195 # fixed character. Masking can start from the beginning or end of the string.
9196 # This can be used on data of any type (numbers, longs, and so on) and when
9197 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
9198 # type. (This allows you to take a long like 123 and modify it to a string like
9199 # **3.
9200 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
9201 # characters. For example, if the input string is `555-555-5555` and you
9202 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
9203 # returns `***-**5-5555`.
9204 { # Characters to skip when doing deidentification of a value. These will be left
9205 # alone and skipped.
9206 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
9207 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
9208 # punctuation.
9209 },
9210 ],
9211 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
9212 # masked. Skipped characters do not count towards this tally.
9213 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
9214 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
9215 # code or credit card number. This string must have a length of 1. If not
9216 # supplied, this value defaults to `*` for strings, and `0` for digits.
9217 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
9218 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
9219 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
9220 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
9221 # is `true`, then the string `12345` is masked as `12***`.
9222 },
9223 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
9224 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
9225 # output would be &#x27;My phone number is &#x27;.
9226 },
9227 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
9228 # Bucketing transformation can provide all of this functionality,
9229 # but requires more configuration. This message is provided as a convenience to
9230 # the user for simple bucketing strategies.
9231 #
9232 # The transformed value will be a hyphenated string of
9233 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
9234 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
9235 #
9236 # This can be used on data of type: double, long.
9237 #
9238 # If the bound Value type differs from the type of data
9239 # being transformed, we will first attempt converting the type of the data to
9240 # be transformed to match the type of the bound before comparing.
9241 #
9242 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
9243 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
9244 # grouped together into a single bucket; for example if `upper_bound` = 89,
9245 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
9246 # Note that for the purposes of inspection or transformation, the number
9247 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9248 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9249 # 123456789, the number of bytes would be counted as 9, even though an
9250 # int64 only holds up to 8 bytes of data.
9251 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9252 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9253 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9254 # types are google.type.Date and `google.protobuf.Timestamp`.
9255 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9256 # allow the value 60 if it allows leap-seconds.
9257 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
9258 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
9259 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9260 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9261 },
9262 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
9263 &quot;floatValue&quot;: 3.14, # float
9264 &quot;stringValue&quot;: &quot;A String&quot;, # string
9265 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9266 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9267 # and time zone are either specified elsewhere or are not significant. The date
9268 # is relative to the Proleptic Gregorian Calendar. This can represent:
9269 #
9270 # * A full date, with non-zero year, month and day values
9271 # * A month and day value, with a zero year, e.g. an anniversary
9272 # * A year on its own, with zero month and day values
9273 # * A year and month value, with a zero day, e.g. a credit card expiration date
9274 #
9275 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9276 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9277 # month and day.
9278 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9279 # a year.
9280 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9281 # if specifying a year by itself or a year and month where the day is not
9282 # significant.
9283 },
9284 &quot;booleanValue&quot;: True or False, # boolean
9285 },
9286 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
9287 # grouped together into a single bucket; for example if `lower_bound` = 10,
9288 # then all values less than 10 are replaced with the value &quot;-10&quot;.
9289 # Note that for the purposes of inspection or transformation, the number
9290 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9291 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9292 # 123456789, the number of bytes would be counted as 9, even though an
9293 # int64 only holds up to 8 bytes of data.
9294 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9295 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9296 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9297 # types are google.type.Date and `google.protobuf.Timestamp`.
9298 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9299 # allow the value 60 if it allows leap-seconds.
9300 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
9301 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
9302 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9303 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9304 },
9305 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
9306 &quot;floatValue&quot;: 3.14, # float
9307 &quot;stringValue&quot;: &quot;A String&quot;, # string
9308 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9309 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9310 # and time zone are either specified elsewhere or are not significant. The date
9311 # is relative to the Proleptic Gregorian Calendar. This can represent:
9312 #
9313 # * A full date, with non-zero year, month and day values
9314 # * A month and day value, with a zero year, e.g. an anniversary
9315 # * A year on its own, with zero month and day values
9316 # * A year and month value, with a zero day, e.g. a credit card expiration date
9317 #
9318 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9319 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9320 # month and day.
9321 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9322 # a year.
9323 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9324 # if specifying a year by itself or a year and month where the day is not
9325 # significant.
9326 },
9327 &quot;booleanValue&quot;: True or False, # boolean
9328 },
9329 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
9330 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
9331 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
9332 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
9333 },
9334 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
9335 # (FPE) with the FFX mode of operation; however when used in the
9336 # `ReidentifyContent` API method, it serves the opposite function by reversing
9337 # the surrogate back into the original identifier. The identifier must be
9338 # encoded as ASCII. For a given crypto key and context, the same identifier
9339 # will be replaced with the same surrogate. Identifiers must be at least two
9340 # characters long. In the case that the identifier is the empty string, it will
9341 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
9342 # more.
9343 #
9344 # Note: We recommend using CryptoDeterministicConfig for all use cases which
9345 # do not require preserving the input alphabet space and size, plus warrant
9346 # referential integrity.
9347 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
9348 # This annotation will be applied to the surrogate by prefixing it with
9349 # the name of the custom infoType followed by the number of
9350 # characters comprising the surrogate. The following scheme defines the
9351 # format: info_type_name(surrogate_character_count):surrogate
9352 #
9353 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
9354 # the surrogate is &#x27;abc&#x27;, the full replacement value
9355 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
9356 #
9357 # This annotation identifies the surrogate when inspecting content using the
9358 # custom infoType
9359 # [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
9360 # This facilitates reversal of the surrogate when it occurs in free text.
9361 #
9362 # In order for inspection to work properly, the name of this infoType must
9363 # not occur naturally anywhere in your data; otherwise, inspection may
9364 # find a surrogate that does not correspond to an actual identifier.
9365 # Therefore, choose your custom infoType name carefully after considering
9366 # what your data looks like. One way to select a name that has a high chance
9367 # of yielding reliable detection is to include one or more unicode characters
9368 # that are highly improbable to exist in your data.
9369 # For example, assuming your data is entered from a regular ASCII keyboard,
9370 # the symbol with the hex code point 29DD might be used like so:
9371 # ⧝MY_TOKEN_TYPE
9372 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
9373 # creating a CustomInfoType, or one of the names listed
9374 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
9375 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
9376 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
9377 },
9378 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
9379 &quot;context&quot;: { # General identifier of a data field in a storage service. # The &#x27;tweak&#x27;, a context may be used for higher security since the same
9380 # identifier in two different contexts won&#x27;t be given the same surrogate. If
9381 # the context is not set, a default tweak will be used.
9382 #
9383 # If the context is set but:
9384 #
9385 # 1. there is no record present when transforming a given value or
9386 # 1. the field is not present when transforming a given value,
9387 #
9388 # a default tweak will be used.
9389 #
9390 # Note that case (1) is expected when an `InfoTypeTransformation` is
9391 # applied to both structured and non-structured `ContentItem`s.
9392 # Currently, the referenced field may be of value type integer or string.
9393 #
9394 # The tweak is constructed as a sequence of bytes in big endian byte order
9395 # such that:
9396 #
9397 # - a 64 bit integer is encoded followed by a single byte of value 1
9398 # - a string is encoded in UTF-8 format followed by a single byte of value 2
9399 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
9400 },
9401 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
9402 # that the FFX mode natively supports. This happens before/after
9403 # encryption/decryption.
9404 # Each character listed must appear only once.
9405 # Number of characters must be in the range [2, 95].
9406 # This must be encoded as ASCII.
9407 # The order of characters does not matter.
9408 # The full list of allowed characters is:
9409 # &lt;code&gt;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
9410 # ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/&lt;/code&gt;
9411 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
9412 # a key encryption key (KEK) stored by KMS).
9413 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
9414 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
9415 # unwrap the data crypto key.
9416 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
9417 # It will be discarded after the request finishes.
9418 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
9419 # This is an arbitrary string used to differentiate different keys.
9420 # A unique key is generated per name: two separate `TransientCryptoKey`
9421 # protos share the same generated key if their names are the same.
9422 # When the data crypto key is generated, this name is not used in any way
9423 # (repeating the api call will result in a different key being generated).
9424 },
9425 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
9426 # The wrapped key must be a 128/192/256 bit key.
9427 # Authorization requires the following IAM permissions when sending a request
9428 # to perform a crypto transformation using a kms-wrapped crypto key:
9429 # dlp.kms.encrypt
9430 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
9431 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
9432 },
9433 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
9434 # leaking the key. Choose another type of key if possible.
9435 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
9436 },
9437 },
9438 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
9439 },
9440 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
9441 # input. Outputs a base64 encoded representation of the encrypted output.
9442 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
9443 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
9444 # referential integrity such that the same identifier in two different
9445 # contexts will be given a distinct surrogate. The context is appended to
9446 # plaintext value being encrypted. On decryption the provided context is
9447 # validated against the value used during encryption. If a context was
9448 # provided during encryption, same context must be provided during decryption
9449 # as well.
9450 #
9451 # If the context is not set, plaintext would be used as is for encryption.
9452 # If the context is set but:
9453 #
9454 # 1. there is no record present when transforming a given value or
9455 # 2. the field is not present when transforming a given value,
9456 #
9457 # plaintext would be used as is for encryption.
9458 #
9459 # Note that case (1) is expected when an `InfoTypeTransformation` is
9460 # applied to both structured and non-structured `ContentItem`s.
9461 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
9462 },
9463 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
9464 # This annotation will be applied to the surrogate by prefixing it with
9465 # the name of the custom info type followed by the number of
9466 # characters comprising the surrogate. The following scheme defines the
9467 # format: {info type name}({surrogate character count}):{surrogate}
9468 #
9469 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
9470 # the surrogate is &#x27;abc&#x27;, the full replacement value
9471 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
9472 #
9473 # This annotation identifies the surrogate when inspecting content using the
9474 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
9475 # surrogate when it occurs in free text.
9476 #
9477 # Note: For record transformations where the entire cell in a table is being
9478 # transformed, surrogates are not mandatory. Surrogates are used to denote
9479 # the location of the token and are necessary for re-identification in free
9480 # form text.
9481 #
9482 # In order for inspection to work properly, the name of this info type must
9483 # not occur naturally anywhere in your data; otherwise, inspection may either
9484 #
9485 # - reverse a surrogate that does not correspond to an actual identifier
9486 # - be unable to parse the surrogate and result in an error
9487 #
9488 # Therefore, choose your custom info type name carefully after considering
9489 # what your data looks like. One way to select a name that has a high chance
9490 # of yielding reliable detection is to include one or more unicode characters
9491 # that are highly improbable to exist in your data.
9492 # For example, assuming your data is entered from a regular ASCII keyboard,
9493 # the symbol with the hex code point 29DD might be used like so:
9494 # ⧝MY_TOKEN_TYPE.
9495 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
9496 # creating a CustomInfoType, or one of the names listed
9497 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
9498 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
9499 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
9500 },
9501 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
9502 # a key encryption key (KEK) stored by KMS).
9503 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
9504 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
9505 # unwrap the data crypto key.
9506 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
9507 # It will be discarded after the request finishes.
9508 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
9509 # This is an arbitrary string used to differentiate different keys.
9510 # A unique key is generated per name: two separate `TransientCryptoKey`
9511 # protos share the same generated key if their names are the same.
9512 # When the data crypto key is generated, this name is not used in any way
9513 # (repeating the api call will result in a different key being generated).
9514 },
9515 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
9516 # The wrapped key must be a 128/192/256 bit key.
9517 # Authorization requires the following IAM permissions when sending a request
9518 # to perform a crypto transformation using a kms-wrapped crypto key:
9519 # dlp.kms.encrypt
9520 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
9521 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
9522 },
9523 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
9524 # leaking the key. Choose another type of key if possible.
9525 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
9526 },
9527 },
9528 },
9529 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
9530 # replacement values are dynamically provided by the user for custom behavior,
9531 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
9532 # This can be used on
9533 # data of type: number, long, string, timestamp.
9534 # If the bound `Value` type differs from the type of data being transformed, we
9535 # will first attempt converting the type of the data to be transformed to match
9536 # the type of the bound before comparing.
9537 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
9538 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
9539 { # Bucket is represented as a range, along with replacement values.
9540 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
9541 # Note that for the purposes of inspection or transformation, the number
9542 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9543 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9544 # 123456789, the number of bytes would be counted as 9, even though an
9545 # int64 only holds up to 8 bytes of data.
9546 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9547 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9548 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9549 # types are google.type.Date and `google.protobuf.Timestamp`.
9550 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9551 # allow the value 60 if it allows leap-seconds.
9552 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
9553 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
9554 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9555 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9556 },
9557 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
9558 &quot;floatValue&quot;: 3.14, # float
9559 &quot;stringValue&quot;: &quot;A String&quot;, # string
9560 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9561 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9562 # and time zone are either specified elsewhere or are not significant. The date
9563 # is relative to the Proleptic Gregorian Calendar. This can represent:
9564 #
9565 # * A full date, with non-zero year, month and day values
9566 # * A month and day value, with a zero year, e.g. an anniversary
9567 # * A year on its own, with zero month and day values
9568 # * A year and month value, with a zero day, e.g. a credit card expiration date
9569 #
9570 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9571 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9572 # month and day.
9573 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9574 # a year.
9575 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9576 # if specifying a year by itself or a year and month where the day is not
9577 # significant.
9578 },
9579 &quot;booleanValue&quot;: True or False, # boolean
9580 },
9581 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Required. Replacement value for this bucket.
9582 # Note that for the purposes of inspection or transformation, the number
9583 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9584 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9585 # 123456789, the number of bytes would be counted as 9, even though an
9586 # int64 only holds up to 8 bytes of data.
9587 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9588 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9589 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9590 # types are google.type.Date and `google.protobuf.Timestamp`.
9591 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9592 # allow the value 60 if it allows leap-seconds.
9593 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
9594 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
9595 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9596 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9597 },
9598 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
9599 &quot;floatValue&quot;: 3.14, # float
9600 &quot;stringValue&quot;: &quot;A String&quot;, # string
9601 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9602 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9603 # and time zone are either specified elsewhere or are not significant. The date
9604 # is relative to the Proleptic Gregorian Calendar. This can represent:
9605 #
9606 # * A full date, with non-zero year, month and day values
9607 # * A month and day value, with a zero year, e.g. an anniversary
9608 # * A year on its own, with zero month and day values
9609 # * A year and month value, with a zero day, e.g. a credit card expiration date
9610 #
9611 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9612 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9613 # month and day.
9614 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9615 # a year.
9616 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9617 # if specifying a year by itself or a year and month where the day is not
9618 # significant.
9619 },
9620 &quot;booleanValue&quot;: True or False, # boolean
9621 },
9622 &quot;min&quot;: { # Set of primitive values supported by the system. # Lower bound of the range, inclusive. Type should be the same as max if
9623 # used.
9624 # Note that for the purposes of inspection or transformation, the number
9625 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9626 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9627 # 123456789, the number of bytes would be counted as 9, even though an
9628 # int64 only holds up to 8 bytes of data.
9629 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9630 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9631 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9632 # types are google.type.Date and `google.protobuf.Timestamp`.
9633 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9634 # allow the value 60 if it allows leap-seconds.
9635 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
9636 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
9637 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9638 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9639 },
9640 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
9641 &quot;floatValue&quot;: 3.14, # float
9642 &quot;stringValue&quot;: &quot;A String&quot;, # string
9643 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9644 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9645 # and time zone are either specified elsewhere or are not significant. The date
9646 # is relative to the Proleptic Gregorian Calendar. This can represent:
9647 #
9648 # * A full date, with non-zero year, month and day values
9649 # * A month and day value, with a zero year, e.g. an anniversary
9650 # * A year on its own, with zero month and day values
9651 # * A year and month value, with a zero day, e.g. a credit card expiration date
9652 #
9653 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9654 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9655 # month and day.
9656 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9657 # a year.
9658 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9659 # if specifying a year by itself or a year and month where the day is not
9660 # significant.
9661 },
9662 &quot;booleanValue&quot;: True or False, # boolean
9663 },
9664 },
9665 ],
9666 },
9667 },
9668 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to # Only apply the transformation if the condition evaluates to true for the
9669 # given `RecordCondition`. The conditions are allowed to reference fields
9670 # that are not used in the actual transformation.
9671 #
9672 # Example Use Cases:
9673 #
9674 # - Apply a different bucket transformation to an age column if the zip code
9675 # column for the same record is within a specific range.
9676 # - Redact a field if the date of birth field is greater than 85.
9677 # a field.
9678 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
9679 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
9680 &quot;conditions&quot;: [ # A collection of conditions.
9681 { # The field type of `value` and `field` do not need to match to be
9682 # considered equal, but not all comparisons are possible.
9683 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
9684 # but all other comparisons are invalid with incompatible types.
9685 # A `value` of type:
9686 #
9687 # - `string` can be compared against all other types
9688 # - `boolean` can only be compared against other booleans
9689 # - `integer` can be compared against doubles or a string if the string value
9690 # can be parsed as an integer.
9691 # - `double` can be compared against integers or a string if the string can
9692 # be parsed as a double.
9693 # - `Timestamp` can be compared against strings in RFC 3339 date string
9694 # format.
9695 # - `TimeOfDay` can be compared against timestamps and strings in the format
9696 # of &#x27;HH:mm:ss&#x27;.
9697 #
9698 # If we fail to compare do to type mismatch, a warning will be given and
9699 # the condition will evaluate to false.
9700 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
9701 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
9702 },
9703 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
9704 # Note that for the purposes of inspection or transformation, the number
9705 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9706 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9707 # 123456789, the number of bytes would be counted as 9, even though an
9708 # int64 only holds up to 8 bytes of data.
9709 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9710 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9711 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9712 # types are google.type.Date and `google.protobuf.Timestamp`.
9713 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9714 # allow the value 60 if it allows leap-seconds.
9715 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
9716 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
9717 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9718 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9719 },
9720 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
9721 &quot;floatValue&quot;: 3.14, # float
9722 &quot;stringValue&quot;: &quot;A String&quot;, # string
9723 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9724 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9725 # and time zone are either specified elsewhere or are not significant. The date
9726 # is relative to the Proleptic Gregorian Calendar. This can represent:
9727 #
9728 # * A full date, with non-zero year, month and day values
9729 # * A month and day value, with a zero year, e.g. an anniversary
9730 # * A year on its own, with zero month and day values
9731 # * A year and month value, with a zero day, e.g. a credit card expiration date
9732 #
9733 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9734 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9735 # month and day.
9736 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9737 # a year.
9738 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9739 # if specifying a year by itself or a year and month where the day is not
9740 # significant.
9741 },
9742 &quot;booleanValue&quot;: True or False, # boolean
9743 },
9744 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
9745 },
9746 ],
9747 },
9748 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
9749 # only supported value is `AND`.
9750 },
9751 },
9752 &quot;fields&quot;: [ # Required. Input field(s) to apply the transformation to.
9753 { # General identifier of a data field in a storage service.
9754 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
9755 },
9756 ],
9757 },
9758 ],
9759 &quot;infoType&quot;: { # Type of information detected by the API. # Set if the transformation was limited to a specific InfoType.
9760 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
9761 # creating a CustomInfoType, or one of the names listed
9762 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
9763 # a built-in type. When sending Cloud DLP results to Data Catalog, infoType
9764 # names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
9765 },
9766 &quot;results&quot;: [ # Collection of all transformations that took place or had an error.
9767 { # A collection that informs the user the number of times a particular
9768 # `TransformationResultCode` and error details occurred.
9769 &quot;count&quot;: &quot;A String&quot;, # Number of transformations counted by this result.
9770 &quot;code&quot;: &quot;A String&quot;, # Outcome of the transformation.
9771 &quot;details&quot;: &quot;A String&quot;, # A place for warnings or errors to show up if a transformation didn&#x27;t
9772 # work as expected.
9773 },
9774 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07009775 &quot;recordSuppress&quot;: { # Configuration to suppress records whose suppression conditions evaluate to # The specific suppression option these stats apply to.
9776 # true.
9777 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to # A condition that when it evaluates to true will result in the record being
9778 # evaluated to be suppressed from the transformed content.
9779 # a field.
9780 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
Bu Sun Kim65020912020-05-20 12:08:20 -07009781 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
9782 &quot;conditions&quot;: [ # A collection of conditions.
9783 { # The field type of `value` and `field` do not need to match to be
9784 # considered equal, but not all comparisons are possible.
9785 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
9786 # but all other comparisons are invalid with incompatible types.
9787 # A `value` of type:
9788 #
9789 # - `string` can be compared against all other types
9790 # - `boolean` can only be compared against other booleans
9791 # - `integer` can be compared against doubles or a string if the string value
9792 # can be parsed as an integer.
9793 # - `double` can be compared against integers or a string if the string can
9794 # be parsed as a double.
9795 # - `Timestamp` can be compared against strings in RFC 3339 date string
9796 # format.
9797 # - `TimeOfDay` can be compared against timestamps and strings in the format
9798 # of &#x27;HH:mm:ss&#x27;.
9799 #
9800 # If we fail to compare do to type mismatch, a warning will be given and
9801 # the condition will evaluate to false.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07009802 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
9803 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
9804 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009805 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
9806 # Note that for the purposes of inspection or transformation, the number
9807 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9808 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9809 # 123456789, the number of bytes would be counted as 9, even though an
9810 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07009811 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9812 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9813 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9814 # types are google.type.Date and `google.protobuf.Timestamp`.
9815 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9816 # allow the value 60 if it allows leap-seconds.
9817 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
9818 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
9819 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9820 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9821 },
9822 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
9823 &quot;floatValue&quot;: 3.14, # float
9824 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim65020912020-05-20 12:08:20 -07009825 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9826 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9827 # and time zone are either specified elsewhere or are not significant. The date
9828 # is relative to the Proleptic Gregorian Calendar. This can represent:
9829 #
9830 # * A full date, with non-zero year, month and day values
9831 # * A month and day value, with a zero year, e.g. an anniversary
9832 # * A year on its own, with zero month and day values
9833 # * A year and month value, with a zero day, e.g. a credit card expiration date
9834 #
9835 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07009836 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9837 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07009838 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9839 # a year.
Bu Sun Kim65020912020-05-20 12:08:20 -07009840 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9841 # if specifying a year by itself or a year and month where the day is not
9842 # significant.
9843 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009844 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009845 },
9846 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
Bu Sun Kim65020912020-05-20 12:08:20 -07009847 },
9848 ],
9849 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07009850 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
9851 # only supported value is `AND`.
Bu Sun Kim65020912020-05-20 12:08:20 -07009852 },
9853 },
9854 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07009855 &quot;transformedBytes&quot;: &quot;A String&quot;, # Total size in bytes that were transformed in some way.
Bu Sun Kim65020912020-05-20 12:08:20 -07009856 },
9857 ],
9858 &quot;transformedBytes&quot;: &quot;A String&quot;, # Total size in bytes that were transformed in some way.
9859 },
9860 &quot;item&quot;: { # Container structure for the content to inspect. # The re-identified item.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07009861 &quot;value&quot;: &quot;A String&quot;, # String data to inspect or redact.
Bu Sun Kim65020912020-05-20 12:08:20 -07009862 &quot;byteItem&quot;: { # Container for bytes to inspect or redact. # Content data to inspect or redact. Replaces `type` and `data`.
Bu Sun Kim65020912020-05-20 12:08:20 -07009863 &quot;data&quot;: &quot;A String&quot;, # Content data to inspect or redact.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009864 &quot;type&quot;: &quot;A String&quot;, # The type of data stored in the bytes string. Default will be TEXT_UTF8.
Bu Sun Kim65020912020-05-20 12:08:20 -07009865 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009866 &quot;table&quot;: { # Structured content to inspect. Up to 50,000 `Value`s per request allowed. # Structured content for inspection. See
9867 # https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
9868 # learn more.
9869 # See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
9870 # learn more.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07009871 &quot;headers&quot;: [ # Headers of the table.
9872 { # General identifier of a data field in a storage service.
9873 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
9874 },
9875 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07009876 &quot;rows&quot;: [ # Rows of the table.
9877 { # Values of the row.
9878 &quot;values&quot;: [ # Individual cells.
9879 { # Set of primitive values supported by the system.
9880 # Note that for the purposes of inspection or transformation, the number
9881 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9882 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9883 # 123456789, the number of bytes would be counted as 9, even though an
9884 # int64 only holds up to 8 bytes of data.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07009885 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9886 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9887 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9888 # types are google.type.Date and `google.protobuf.Timestamp`.
9889 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9890 # allow the value 60 if it allows leap-seconds.
9891 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
9892 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
9893 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9894 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9895 },
9896 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
9897 &quot;floatValue&quot;: 3.14, # float
9898 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim65020912020-05-20 12:08:20 -07009899 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9900 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9901 # and time zone are either specified elsewhere or are not significant. The date
9902 # is relative to the Proleptic Gregorian Calendar. This can represent:
9903 #
9904 # * A full date, with non-zero year, month and day values
9905 # * A month and day value, with a zero year, e.g. an anniversary
9906 # * A year on its own, with zero month and day values
9907 # * A year and month value, with a zero day, e.g. a credit card expiration date
9908 #
9909 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07009910 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9911 # month and day.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07009912 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9913 # a year.
Bu Sun Kim65020912020-05-20 12:08:20 -07009914 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9915 # if specifying a year by itself or a year and month where the day is not
9916 # significant.
9917 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009918 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim65020912020-05-20 12:08:20 -07009919 },
9920 ],
9921 },
9922 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07009923 },
9924 },
9925 }</pre>
9926</div>
9927
9928</body></html>