blob: 1c4845c0308d18e17f470f7b42dd4e2ba8e4b98f [file] [log] [blame]
Bu Sun Kim715bd7f2019-06-14 16:50:42 -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.content.html">content</a></h1>
76<h2>Instance Methods</h2>
77<p class="toc_element">
Dan O'Mearadd494642020-05-01 07:42:23 -070078 <code><a href="#deidentify">deidentify(parent, body=None, x__xgafv=None)</a></code></p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070079<p class="firstline">De-identifies potentially sensitive info from a ContentItem.</p>
80<p class="toc_element">
Dan O'Mearadd494642020-05-01 07:42:23 -070081 <code><a href="#inspect">inspect(parent, body=None, x__xgafv=None)</a></code></p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070082<p class="firstline">Finds potentially sensitive info in content.</p>
83<p class="toc_element">
Dan O'Mearadd494642020-05-01 07:42:23 -070084 <code><a href="#reidentify">reidentify(parent, body=None, x__xgafv=None)</a></code></p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070085<p class="firstline">Re-identifies content that has been de-identified.</p>
86<h3>Method Details</h3>
87<div class="method">
Dan O'Mearadd494642020-05-01 07:42:23 -070088 <code class="details" id="deidentify">deidentify(parent, body=None, x__xgafv=None)</code>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -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:
99 parent: string, The parent resource name, for example projects/my-project-id. (required)
Dan O'Mearadd494642020-05-01 07:42:23 -0700100 body: object, The request body.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700101 The object takes the form of:
102
103{ # Request to de-identify a list of items.
Bu Sun Kim65020912020-05-20 12:08:20 -0700104 &quot;item&quot;: { # Container structure for the content to inspect. # The item to de-identify. Will be treated as text.
105 &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 -0700106 &quot;data&quot;: &quot;A String&quot;, # Content data to inspect or redact.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700107 &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 -0700108 },
109 &quot;value&quot;: &quot;A String&quot;, # String data to inspect or redact.
110 &quot;table&quot;: { # Structured content to inspect. Up to 50,000 `Value`s per request allowed. # Structured content for inspection. See
111 # https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
112 # learn more.
113 # See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
114 # learn more.
115 &quot;rows&quot;: [ # Rows of the table.
116 { # Values of the row.
117 &quot;values&quot;: [ # Individual cells.
118 { # Set of primitive values supported by the system.
119 # Note that for the purposes of inspection or transformation, the number
120 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
121 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
122 # 123456789, the number of bytes would be counted as 9, even though an
123 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -0700124 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
125 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
126 # and time zone are either specified elsewhere or are not significant. The date
127 # is relative to the Proleptic Gregorian Calendar. This can represent:
128 #
129 # * A full date, with non-zero year, month and day values
130 # * A month and day value, with a zero year, e.g. an anniversary
131 # * A year on its own, with zero month and day values
132 # * A year and month value, with a zero day, e.g. a credit card expiration date
133 #
134 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
135 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
136 # a year.
137 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
138 # month and day.
139 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
140 # if specifying a year by itself or a year and month where the day is not
141 # significant.
142 },
143 &quot;stringValue&quot;: &quot;A String&quot;, # string
144 &quot;integerValue&quot;: &quot;A String&quot;, # integer
145 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
146 # or are specified elsewhere. An API may choose to allow leap seconds. Related
147 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700148 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
149 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
150 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700151 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
152 # allow the value 60 if it allows leap-seconds.
153 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -0700154 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700155 &quot;booleanValue&quot;: True or False, # boolean
156 &quot;floatValue&quot;: 3.14, # float
157 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -0700158 },
159 ],
160 },
161 ],
162 &quot;headers&quot;: [ # Headers of the table.
163 { # General identifier of a data field in a storage service.
164 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
165 },
166 ],
167 },
168 },
169 &quot;inspectTemplateName&quot;: &quot;A String&quot;, # Template to use. Any configuration directly specified in
170 # inspect_config will override those set in the template. Singular fields
171 # that are set in this request will replace their corresponding fields in the
172 # template. Repeated fields are appended. Singular sub-messages and groups
173 # are recursively merged.
174 &quot;deidentifyTemplateName&quot;: &quot;A String&quot;, # Template to use. Any configuration directly specified in
175 # deidentify_config will override those set in the template. Singular fields
176 # that are set in this request will replace their corresponding fields in the
177 # template. Repeated fields are appended. Singular sub-messages and groups
178 # are recursively merged.
179 &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # Configuration for the inspector.
Dan O'Mearadd494642020-05-01 07:42:23 -0700180 # Items specified here will override the template referenced by the
181 # inspect_template_name argument.
182 # When used with redactContent only info_types and min_likelihood are currently
183 # used.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700184 &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
185 # POSSIBLE.
186 # See https://cloud.google.com/dlp/docs/likelihood to learn more.
187 &quot;contentOptions&quot;: [ # List of options defining data content to scan.
188 # If empty, text, images, and other content will be included.
189 &quot;A String&quot;,
190 ],
191 &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
192 # InfoType values returned by ListInfoTypes or listed at
193 # https://cloud.google.com/dlp/docs/infotypes-reference.
194 #
195 # When no InfoTypes or CustomInfoTypes are specified in a request, the
196 # system may automatically choose what detectors to run. By default this may
197 # be all types, but may change over time as detectors are updated.
198 #
199 # If you need precise control and predictability as to what detectors are
200 # run you should specify specific InfoTypes listed in the reference,
201 # otherwise a default list will be used, which may change over time.
202 { # Type of information detected by the API.
203 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
204 # creating a CustomInfoType, or one of the names listed
205 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
206 # a built-in type. InfoType names should conform to the pattern
207 # `[a-zA-Z0-9_]{1,64}`.
208 },
209 ],
210 &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
211 &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
212 # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
213 { # Custom information type provided by the user. Used to find domain-specific
214 # sensitive information configurable to the data in question.
215 &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
216 # support reversing.
217 # such as
218 # [`CryptoReplaceFfxFpeConfig`](/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
219 # These types of transformations are
220 # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
221 # output. This should be used in conjunction with a field on the
222 # transformation such as `surrogate_info_type`. This CustomInfoType does
223 # not support the use of `detection_rules`.
224 },
225 &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
226 # altered by a detection rule if the finding meets the criteria specified by
227 # the rule. Defaults to `VERY_LIKELY` if not specified.
228 &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
229 # infoType, when the name matches one of existing infoTypes and that infoType
230 # is specified in `InspectContent.info_types` field. Specifying the latter
231 # adds findings to the one detected by the system. If built-in info type is
232 # not specified in `InspectContent.info_types` list then the name is treated
233 # as a custom info type.
234 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
235 # creating a CustomInfoType, or one of the names listed
236 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
237 # a built-in type. InfoType names should conform to the pattern
238 # `[a-zA-Z0-9_]{1,64}`.
239 },
240 &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
241 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
242 # specified, the entire match is returned. No more than 3 may be included.
243 42,
244 ],
245 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
246 # (https://github.com/google/re2/wiki/Syntax) can be found under the
247 # google/re2 repository on GitHub.
248 },
249 &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
250 # Rules are applied in order that they are specified. Not supported for the
251 # `surrogate_type` CustomInfoType.
252 { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
253 # `CustomInfoType` to alter behavior under certain circumstances, depending
254 # on the specific details of the rule. Not supported for the `surrogate_type`
255 # custom infoType.
256 &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
257 # proximity of hotwords.
258 &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
259 # part of a detection rule.
260 &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
261 # levels. For example, if a finding would be `POSSIBLE` without the
262 # detection rule and `relative_likelihood` is 1, then it is upgraded to
263 # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
264 # Likelihood may never drop below `VERY_UNLIKELY` or exceed
265 # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
266 # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
267 # a final likelihood of `LIKELY`.
268 &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
269 },
270 &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
271 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
272 # specified, the entire match is returned. No more than 3 may be included.
273 42,
274 ],
275 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
276 # (https://github.com/google/re2/wiki/Syntax) can be found under the
277 # google/re2 repository on GitHub.
278 },
279 &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.
280 # The total length of the window cannot exceed 1000 characters. Note that
281 # the finding itself will be included in the window, so that hotwords may
282 # be used to match substrings of the finding itself. For example, the
283 # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
284 # adjusted upwards if the area code is known to be the local area code of
285 # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
286 # is the area code in question.
287 # rule.
288 &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
289 &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
290 },
291 },
292 },
293 ],
294 &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
295 # to be returned. It still can be used for rules matching.
296 &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.
297 # be used to match sensitive information specific to the data, such as a list
298 # of employee IDs or job titles.
299 #
300 # Dictionary words are case-insensitive and all characters other than letters
301 # and digits in the unicode [Basic Multilingual
302 # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
303 # will be replaced with whitespace when scanning for matches, so the
304 # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
305 # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
306 # surrounding any match must be of a different type than the adjacent
307 # characters within the word, so letters must be next to non-letters and
308 # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
309 # match the first three letters of the text &quot;jen123&quot; but will return no
310 # matches for &quot;jennifer&quot;.
311 #
312 # Dictionary words containing a large number of characters that are not
313 # letters or digits may result in unexpected findings because such characters
314 # are treated as whitespace. The
315 # [limits](https://cloud.google.com/dlp/limits) page contains details about
316 # the size limits of dictionaries. For dictionaries that do not fit within
317 # these constraints, consider using `LargeCustomDictionaryConfig` in the
318 # `StoredInfoType` API.
319 &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.
320 &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
321 # at least one phrase and every phrase must contain at least 2 characters
322 # that are letters or digits. [required]
323 &quot;A String&quot;,
324 ],
325 },
326 &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
327 # is accepted.
328 &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
329 # Example: gs://[BUCKET_NAME]/dictionary.txt
330 },
331 },
332 &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
333 # `InspectDataSource`. Not currently supported in `InspectContent`.
334 &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
335 # `organizations/433245324/storedInfoTypes/432452342` or
336 # `projects/project-id/storedInfoTypes/432452342`.
337 &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
338 # inspection was created. Output-only field, populated by the system.
339 },
340 },
341 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700342 &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
343 # included in the response; see Finding.quote.
344 &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
345 # Exclusion rules, contained in the set are executed in the end, other
346 # rules are executed in the order they are specified for each info type.
347 { # Rule set for modifying a set of infoTypes to alter behavior under certain
348 # circumstances, depending on the specific details of the rules within the set.
349 &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
350 { # Type of information detected by the API.
351 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
Dan O'Mearadd494642020-05-01 07:42:23 -0700352 # creating a CustomInfoType, or one of the names listed
353 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
354 # a built-in type. InfoType names should conform to the pattern
355 # `[a-zA-Z0-9_]{1,64}`.
356 },
Dan O'Mearadd494642020-05-01 07:42:23 -0700357 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700358 &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
Dan O'Mearadd494642020-05-01 07:42:23 -0700359 { # A single inspection rule to be applied to infoTypes, specified in
360 # `InspectionRuleSet`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700361 &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
Dan O'Mearadd494642020-05-01 07:42:23 -0700362 # proximity of hotwords.
Bu Sun Kim65020912020-05-20 12:08:20 -0700363 &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
Dan O'Mearadd494642020-05-01 07:42:23 -0700364 # part of a detection rule.
Bu Sun Kim65020912020-05-20 12:08:20 -0700365 &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
Dan O'Mearadd494642020-05-01 07:42:23 -0700366 # levels. For example, if a finding would be `POSSIBLE` without the
367 # detection rule and `relative_likelihood` is 1, then it is upgraded to
368 # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
369 # Likelihood may never drop below `VERY_UNLIKELY` or exceed
370 # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
371 # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
372 # a final likelihood of `LIKELY`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700373 &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
Dan O'Mearadd494642020-05-01 07:42:23 -0700374 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700375 &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
376 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
Dan O'Mearadd494642020-05-01 07:42:23 -0700377 # specified, the entire match is returned. No more than 3 may be included.
378 42,
379 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700380 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
381 # (https://github.com/google/re2/wiki/Syntax) can be found under the
382 # google/re2 repository on GitHub.
Dan O'Mearadd494642020-05-01 07:42:23 -0700383 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700384 &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.
385 # The total length of the window cannot exceed 1000 characters. Note that
386 # the finding itself will be included in the window, so that hotwords may
387 # be used to match substrings of the finding itself. For example, the
388 # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
389 # adjusted upwards if the area code is known to be the local area code of
390 # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
391 # is the area code in question.
392 # rule.
393 &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
394 &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
Dan O'Mearadd494642020-05-01 07:42:23 -0700395 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700396 },
397 &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
398 # `InspectionRuleSet` are removed from results.
399 &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
Dan O'Mearadd494642020-05-01 07:42:23 -0700400 # be used to match sensitive information specific to the data, such as a list
401 # of employee IDs or job titles.
402 #
403 # Dictionary words are case-insensitive and all characters other than letters
404 # and digits in the unicode [Basic Multilingual
405 # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
406 # will be replaced with whitespace when scanning for matches, so the
Bu Sun Kim65020912020-05-20 12:08:20 -0700407 # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
408 # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
Dan O'Mearadd494642020-05-01 07:42:23 -0700409 # surrounding any match must be of a different type than the adjacent
410 # characters within the word, so letters must be next to non-letters and
Bu Sun Kim65020912020-05-20 12:08:20 -0700411 # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
412 # match the first three letters of the text &quot;jen123&quot; but will return no
413 # matches for &quot;jennifer&quot;.
Dan O'Mearadd494642020-05-01 07:42:23 -0700414 #
415 # Dictionary words containing a large number of characters that are not
416 # letters or digits may result in unexpected findings because such characters
417 # are treated as whitespace. The
418 # [limits](https://cloud.google.com/dlp/limits) page contains details about
419 # the size limits of dictionaries. For dictionaries that do not fit within
420 # these constraints, consider using `LargeCustomDictionaryConfig` in the
421 # `StoredInfoType` API.
Bu Sun Kim65020912020-05-20 12:08:20 -0700422 &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.
423 &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
Dan O'Mearadd494642020-05-01 07:42:23 -0700424 # at least one phrase and every phrase must contain at least 2 characters
425 # that are letters or digits. [required]
Bu Sun Kim65020912020-05-20 12:08:20 -0700426 &quot;A String&quot;,
Dan O'Mearadd494642020-05-01 07:42:23 -0700427 ],
428 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700429 &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
Dan O'Mearadd494642020-05-01 07:42:23 -0700430 # is accepted.
Bu Sun Kim65020912020-05-20 12:08:20 -0700431 &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
Dan O'Mearadd494642020-05-01 07:42:23 -0700432 # Example: gs://[BUCKET_NAME]/dictionary.txt
433 },
434 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700435 &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
436 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
437 # specified, the entire match is returned. No more than 3 may be included.
438 42,
439 ],
440 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
441 # (https://github.com/google/re2/wiki/Syntax) can be found under the
442 # google/re2 repository on GitHub.
443 },
444 &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
445 &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
446 # contained within with a finding of an infoType from this list. For
447 # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
448 # `exclusion_rule` containing `exclude_info_types.info_types` with
449 # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
450 # with EMAIL_ADDRESS finding.
451 # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
452 # finding, namely email address.
453 { # Type of information detected by the API.
454 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
455 # creating a CustomInfoType, or one of the names listed
456 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
457 # a built-in type. InfoType names should conform to the pattern
458 # `[a-zA-Z0-9_]{1,64}`.
459 },
460 ],
461 },
462 &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
Dan O'Mearadd494642020-05-01 07:42:23 -0700463 },
464 },
465 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700466 },
467 ],
468 &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
469 &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
470 # When set within `InspectJobConfig`,
471 # the maximum returned is 2000 regardless if this is set higher.
472 # When set within `InspectContentRequest`, this field is ignored.
473 &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
474 { # Max findings configuration per infoType, per content item or long
475 # running DlpJob.
476 &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
477 &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
478 # info_type should be provided. If InfoTypeLimit does not have an
479 # info_type, the DLP API applies the limit against all info_types that
480 # are found but not specified in another InfoTypeLimit.
481 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
Dan O'Mearadd494642020-05-01 07:42:23 -0700482 # creating a CustomInfoType, or one of the names listed
483 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
484 # a built-in type. InfoType names should conform to the pattern
485 # `[a-zA-Z0-9_]{1,64}`.
486 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700487 },
488 ],
489 &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
490 # When set within `InspectContentRequest`, the maximum returned is 2000
491 # regardless if this is set higher.
492 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700493 },
494 &quot;deidentifyConfig&quot;: { # The configuration that controls how the data will change. # Configuration for the de-identification of the content item.
495 # Items specified here will override the template referenced by the
496 # deidentify_template_name argument.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700497 &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
498 # transformation everywhere.
499 # apply various `PrimitiveTransformation`s to each finding, where the
500 # transformation is applied to only values that were identified as a specific
501 # info_type.
502 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one
503 # for a given infoType.
504 { # A transformation to apply to text that is identified as a specific
505 # info_type.
506 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
507 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
508 # portion of the value.
509 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
510 },
511 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
512 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
513 # to learn more.
514 &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.
515 # If set, must also set cryptoKey. If set, shift will be consistent for the
516 # given context.
517 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
518 },
519 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
520 # range (inclusive ends). Negative means shift to earlier in time. Must not
521 # be more than 365250 days (1000 years) each direction.
522 #
523 # For example, 3 means shift date to at most 3 days into the future.
524 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
525 &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
526 # results in the same shift for the same context and crypto_key. If
527 # set, must also set context. Can only be applied to table items.
528 # a key encryption key (KEK) stored by KMS).
529 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
530 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
531 # unwrap the data crypto key.
532 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
533 # leaking the key. Choose another type of key if possible.
534 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
535 },
536 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
537 # It will be discarded after the request finishes.
538 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
539 # This is an arbitrary string used to differentiate different keys.
540 # A unique key is generated per name: two separate `TransientCryptoKey`
541 # protos share the same generated key if their names are the same.
542 # When the data crypto key is generated, this name is not used in any way
543 # (repeating the api call will result in a different key being generated).
544 },
545 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
546 # The wrapped key must be a 128/192/256 bit key.
547 # Authorization requires the following IAM permissions when sending a request
548 # to perform a crypto transformation using a kms-wrapped crypto key:
549 # dlp.kms.encrypt
550 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
551 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
552 },
553 },
554 },
555 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
556 },
557 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
558 # Uses SHA-256.
559 # The key size must be either 32 or 64 bytes.
560 # Outputs a base64 encoded representation of the hashed output
561 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
562 # Currently, only string and integer values can be hashed.
563 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
564 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
565 # a key encryption key (KEK) stored by KMS).
566 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
567 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
568 # unwrap the data crypto key.
569 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
570 # leaking the key. Choose another type of key if possible.
571 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
572 },
573 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
574 # It will be discarded after the request finishes.
575 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
576 # This is an arbitrary string used to differentiate different keys.
577 # A unique key is generated per name: two separate `TransientCryptoKey`
578 # protos share the same generated key if their names are the same.
579 # When the data crypto key is generated, this name is not used in any way
580 # (repeating the api call will result in a different key being generated).
581 },
582 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
583 # The wrapped key must be a 128/192/256 bit key.
584 # Authorization requires the following IAM permissions when sending a request
585 # to perform a crypto transformation using a kms-wrapped crypto key:
586 # dlp.kms.encrypt
587 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
588 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
589 },
590 },
591 },
592 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
593 # (FPE) with the FFX mode of operation; however when used in the
594 # `ReidentifyContent` API method, it serves the opposite function by reversing
595 # the surrogate back into the original identifier. The identifier must be
596 # encoded as ASCII. For a given crypto key and context, the same identifier
597 # will be replaced with the same surrogate. Identifiers must be at least two
598 # characters long. In the case that the identifier is the empty string, it will
599 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
600 # more.
601 #
602 # Note: We recommend using CryptoDeterministicConfig for all use cases which
603 # do not require preserving the input alphabet space and size, plus warrant
604 # referential integrity.
605 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
606 # This annotation will be applied to the surrogate by prefixing it with
607 # the name of the custom infoType followed by the number of
608 # characters comprising the surrogate. The following scheme defines the
609 # format: info_type_name(surrogate_character_count):surrogate
610 #
611 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
612 # the surrogate is &#x27;abc&#x27;, the full replacement value
613 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
614 #
615 # This annotation identifies the surrogate when inspecting content using the
616 # custom infoType
617 # [`SurrogateType`](/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
618 # This facilitates reversal of the surrogate when it occurs in free text.
619 #
620 # In order for inspection to work properly, the name of this infoType must
621 # not occur naturally anywhere in your data; otherwise, inspection may
622 # find a surrogate that does not correspond to an actual identifier.
623 # Therefore, choose your custom infoType name carefully after considering
624 # what your data looks like. One way to select a name that has a high chance
625 # of yielding reliable detection is to include one or more unicode characters
626 # that are highly improbable to exist in your data.
627 # For example, assuming your data is entered from a regular ASCII keyboard,
628 # the symbol with the hex code point 29DD might be used like so:
629 # ⧝MY_TOKEN_TYPE
630 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
631 # creating a CustomInfoType, or one of the names listed
632 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
633 # a built-in type. InfoType names should conform to the pattern
634 # `[a-zA-Z0-9_]{1,64}`.
635 },
636 &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
637 # identifier in two different contexts won&#x27;t be given the same surrogate. If
638 # the context is not set, a default tweak will be used.
639 #
640 # If the context is set but:
641 #
642 # 1. there is no record present when transforming a given value or
643 # 1. the field is not present when transforming a given value,
644 #
645 # a default tweak will be used.
646 #
647 # Note that case (1) is expected when an `InfoTypeTransformation` is
648 # applied to both structured and non-structured `ContentItem`s.
649 # Currently, the referenced field may be of value type integer or string.
650 #
651 # The tweak is constructed as a sequence of bytes in big endian byte order
652 # such that:
653 #
654 # - a 64 bit integer is encoded followed by a single byte of value 1
655 # - a string is encoded in UTF-8 format followed by a single byte of value 2
656 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
657 },
658 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
659 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
660 # a key encryption key (KEK) stored by KMS).
661 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
662 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
663 # unwrap the data crypto key.
664 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
665 # leaking the key. Choose another type of key if possible.
666 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
667 },
668 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
669 # It will be discarded after the request finishes.
670 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
671 # This is an arbitrary string used to differentiate different keys.
672 # A unique key is generated per name: two separate `TransientCryptoKey`
673 # protos share the same generated key if their names are the same.
674 # When the data crypto key is generated, this name is not used in any way
675 # (repeating the api call will result in a different key being generated).
676 },
677 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
678 # The wrapped key must be a 128/192/256 bit key.
679 # Authorization requires the following IAM permissions when sending a request
680 # to perform a crypto transformation using a kms-wrapped crypto key:
681 # dlp.kms.encrypt
682 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
683 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
684 },
685 },
686 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
687 # that the FFX mode natively supports. This happens before/after
688 # encryption/decryption.
689 # Each character listed must appear only once.
690 # Number of characters must be in the range [2, 95].
691 # This must be encoded as ASCII.
692 # The order of characters does not matter.
693 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
694 },
695 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
696 # input. Outputs a base64 encoded representation of the encrypted output.
697 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
698 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
699 # This annotation will be applied to the surrogate by prefixing it with
700 # the name of the custom info type followed by the number of
701 # characters comprising the surrogate. The following scheme defines the
702 # format: {info type name}({surrogate character count}):{surrogate}
703 #
704 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
705 # the surrogate is &#x27;abc&#x27;, the full replacement value
706 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
707 #
708 # This annotation identifies the surrogate when inspecting content using the
709 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
710 # surrogate when it occurs in free text.
711 #
712 # Note: For record transformations where the entire cell in a table is being
713 # transformed, surrogates are not mandatory. Surrogates are used to denote
714 # the location of the token and are necessary for re-identification in free
715 # form text.
716 #
717 # In order for inspection to work properly, the name of this info type must
718 # not occur naturally anywhere in your data; otherwise, inspection may either
719 #
720 # - reverse a surrogate that does not correspond to an actual identifier
721 # - be unable to parse the surrogate and result in an error
722 #
723 # Therefore, choose your custom info type name carefully after considering
724 # what your data looks like. One way to select a name that has a high chance
725 # of yielding reliable detection is to include one or more unicode characters
726 # that are highly improbable to exist in your data.
727 # For example, assuming your data is entered from a regular ASCII keyboard,
728 # the symbol with the hex code point 29DD might be used like so:
729 # ⧝MY_TOKEN_TYPE.
730 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
731 # creating a CustomInfoType, or one of the names listed
732 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
733 # a built-in type. InfoType names should conform to the pattern
734 # `[a-zA-Z0-9_]{1,64}`.
735 },
736 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
737 # referential integrity such that the same identifier in two different
738 # contexts will be given a distinct surrogate. The context is appended to
739 # plaintext value being encrypted. On decryption the provided context is
740 # validated against the value used during encryption. If a context was
741 # provided during encryption, same context must be provided during decryption
742 # as well.
743 #
744 # If the context is not set, plaintext would be used as is for encryption.
745 # If the context is set but:
746 #
747 # 1. there is no record present when transforming a given value or
748 # 2. the field is not present when transforming a given value,
749 #
750 # plaintext would be used as is for encryption.
751 #
752 # Note that case (1) is expected when an `InfoTypeTransformation` is
753 # applied to both structured and non-structured `ContentItem`s.
754 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
755 },
756 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
757 # a key encryption key (KEK) stored by KMS).
758 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
759 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
760 # unwrap the data crypto key.
761 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
762 # leaking the key. Choose another type of key if possible.
763 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
764 },
765 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
766 # It will be discarded after the request finishes.
767 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
768 # This is an arbitrary string used to differentiate different keys.
769 # A unique key is generated per name: two separate `TransientCryptoKey`
770 # protos share the same generated key if their names are the same.
771 # When the data crypto key is generated, this name is not used in any way
772 # (repeating the api call will result in a different key being generated).
773 },
774 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
775 # The wrapped key must be a 128/192/256 bit key.
776 # Authorization requires the following IAM permissions when sending a request
777 # to perform a crypto transformation using a kms-wrapped crypto key:
778 # dlp.kms.encrypt
779 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
780 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
781 },
782 },
783 },
784 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
785 # replacement values are dynamically provided by the user for custom behavior,
786 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
787 # This can be used on
788 # data of type: number, long, string, timestamp.
789 # If the bound `Value` type differs from the type of data being transformed, we
790 # will first attempt converting the type of the data to be transformed to match
791 # the type of the bound before comparing.
792 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
793 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
794 { # Bucket is represented as a range, along with replacement values.
795 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Replacement value for this bucket. If not provided
796 # the default behavior will be to hyphenate the min-max range.
797 # Note that for the purposes of inspection or transformation, the number
798 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
799 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
800 # 123456789, the number of bytes would be counted as 9, even though an
801 # int64 only holds up to 8 bytes of data.
802 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
803 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
804 # and time zone are either specified elsewhere or are not significant. The date
805 # is relative to the Proleptic Gregorian Calendar. This can represent:
806 #
807 # * A full date, with non-zero year, month and day values
808 # * A month and day value, with a zero year, e.g. an anniversary
809 # * A year on its own, with zero month and day values
810 # * A year and month value, with a zero day, e.g. a credit card expiration date
811 #
812 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
813 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
814 # a year.
815 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
816 # month and day.
817 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
818 # if specifying a year by itself or a year and month where the day is not
819 # significant.
820 },
821 &quot;stringValue&quot;: &quot;A String&quot;, # string
822 &quot;integerValue&quot;: &quot;A String&quot;, # integer
823 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
824 # or are specified elsewhere. An API may choose to allow leap seconds. Related
825 # types are google.type.Date and `google.protobuf.Timestamp`.
826 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
827 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
828 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
829 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
830 # allow the value 60 if it allows leap-seconds.
831 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
832 },
833 &quot;booleanValue&quot;: True or False, # boolean
834 &quot;floatValue&quot;: 3.14, # float
835 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
836 },
837 &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
838 # used.
839 # Note that for the purposes of inspection or transformation, the number
840 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
841 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
842 # 123456789, the number of bytes would be counted as 9, even though an
843 # int64 only holds up to 8 bytes of data.
844 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
845 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
846 # and time zone are either specified elsewhere or are not significant. The date
847 # is relative to the Proleptic Gregorian Calendar. This can represent:
848 #
849 # * A full date, with non-zero year, month and day values
850 # * A month and day value, with a zero year, e.g. an anniversary
851 # * A year on its own, with zero month and day values
852 # * A year and month value, with a zero day, e.g. a credit card expiration date
853 #
854 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
855 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
856 # a year.
857 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
858 # month and day.
859 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
860 # if specifying a year by itself or a year and month where the day is not
861 # significant.
862 },
863 &quot;stringValue&quot;: &quot;A String&quot;, # string
864 &quot;integerValue&quot;: &quot;A String&quot;, # integer
865 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
866 # or are specified elsewhere. An API may choose to allow leap seconds. Related
867 # types are google.type.Date and `google.protobuf.Timestamp`.
868 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
869 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
870 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
871 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
872 # allow the value 60 if it allows leap-seconds.
873 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
874 },
875 &quot;booleanValue&quot;: True or False, # boolean
876 &quot;floatValue&quot;: 3.14, # float
877 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
878 },
879 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
880 # Note that for the purposes of inspection or transformation, the number
881 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
882 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
883 # 123456789, the number of bytes would be counted as 9, even though an
884 # int64 only holds up to 8 bytes of data.
885 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
886 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
887 # and time zone are either specified elsewhere or are not significant. The date
888 # is relative to the Proleptic Gregorian Calendar. This can represent:
889 #
890 # * A full date, with non-zero year, month and day values
891 # * A month and day value, with a zero year, e.g. an anniversary
892 # * A year on its own, with zero month and day values
893 # * A year and month value, with a zero day, e.g. a credit card expiration date
894 #
895 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
896 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
897 # a year.
898 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
899 # month and day.
900 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
901 # if specifying a year by itself or a year and month where the day is not
902 # significant.
903 },
904 &quot;stringValue&quot;: &quot;A String&quot;, # string
905 &quot;integerValue&quot;: &quot;A String&quot;, # integer
906 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
907 # or are specified elsewhere. An API may choose to allow leap seconds. Related
908 # types are google.type.Date and `google.protobuf.Timestamp`.
909 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
910 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
911 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
912 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
913 # allow the value 60 if it allows leap-seconds.
914 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
915 },
916 &quot;booleanValue&quot;: True or False, # boolean
917 &quot;floatValue&quot;: 3.14, # float
918 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
919 },
920 },
921 ],
922 },
923 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
924 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
925 # output would be &#x27;My phone number is &#x27;.
926 },
927 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
928 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
929 # Note that for the purposes of inspection or transformation, the number
930 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
931 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
932 # 123456789, the number of bytes would be counted as 9, even though an
933 # int64 only holds up to 8 bytes of data.
934 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
935 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
936 # and time zone are either specified elsewhere or are not significant. The date
937 # is relative to the Proleptic Gregorian Calendar. This can represent:
938 #
939 # * A full date, with non-zero year, month and day values
940 # * A month and day value, with a zero year, e.g. an anniversary
941 # * A year on its own, with zero month and day values
942 # * A year and month value, with a zero day, e.g. a credit card expiration date
943 #
944 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
945 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
946 # a year.
947 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
948 # month and day.
949 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
950 # if specifying a year by itself or a year and month where the day is not
951 # significant.
952 },
953 &quot;stringValue&quot;: &quot;A String&quot;, # string
954 &quot;integerValue&quot;: &quot;A String&quot;, # integer
955 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
956 # or are specified elsewhere. An API may choose to allow leap seconds. Related
957 # types are google.type.Date and `google.protobuf.Timestamp`.
958 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
959 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
960 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
961 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
962 # allow the value 60 if it allows leap-seconds.
963 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
964 },
965 &quot;booleanValue&quot;: True or False, # boolean
966 &quot;floatValue&quot;: 3.14, # float
967 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
968 },
969 },
970 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
971 # Bucketing transformation can provide all of this functionality,
972 # but requires more configuration. This message is provided as a convenience to
973 # the user for simple bucketing strategies.
974 #
975 # The transformed value will be a hyphenated string of
976 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
977 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
978 #
979 # This can be used on data of type: double, long.
980 #
981 # If the bound Value type differs from the type of data
982 # being transformed, we will first attempt converting the type of the data to
983 # be transformed to match the type of the bound before comparing.
984 #
985 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
986 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
987 # grouped together into a single bucket; for example if `upper_bound` = 89,
988 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
989 # Note that for the purposes of inspection or transformation, the number
990 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
991 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
992 # 123456789, the number of bytes would be counted as 9, even though an
993 # int64 only holds up to 8 bytes of data.
994 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
995 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
996 # and time zone are either specified elsewhere or are not significant. The date
997 # is relative to the Proleptic Gregorian Calendar. This can represent:
998 #
999 # * A full date, with non-zero year, month and day values
1000 # * A month and day value, with a zero year, e.g. an anniversary
1001 # * A year on its own, with zero month and day values
1002 # * A year and month value, with a zero day, e.g. a credit card expiration date
1003 #
1004 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
1005 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1006 # a year.
1007 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1008 # month and day.
1009 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1010 # if specifying a year by itself or a year and month where the day is not
1011 # significant.
1012 },
1013 &quot;stringValue&quot;: &quot;A String&quot;, # string
1014 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1015 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1016 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1017 # types are google.type.Date and `google.protobuf.Timestamp`.
1018 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1019 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1020 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1021 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1022 # allow the value 60 if it allows leap-seconds.
1023 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1024 },
1025 &quot;booleanValue&quot;: True or False, # boolean
1026 &quot;floatValue&quot;: 3.14, # float
1027 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1028 },
1029 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
1030 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
1031 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
1032 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
1033 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
1034 # grouped together into a single bucket; for example if `lower_bound` = 10,
1035 # then all values less than 10 are replaced with the value &quot;-10&quot;.
1036 # Note that for the purposes of inspection or transformation, the number
1037 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1038 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
1039 # 123456789, the number of bytes would be counted as 9, even though an
1040 # int64 only holds up to 8 bytes of data.
1041 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1042 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1043 # and time zone are either specified elsewhere or are not significant. The date
1044 # is relative to the Proleptic Gregorian Calendar. This can represent:
1045 #
1046 # * A full date, with non-zero year, month and day values
1047 # * A month and day value, with a zero year, e.g. an anniversary
1048 # * A year on its own, with zero month and day values
1049 # * A year and month value, with a zero day, e.g. a credit card expiration date
1050 #
1051 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
1052 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1053 # a year.
1054 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1055 # month and day.
1056 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1057 # if specifying a year by itself or a year and month where the day is not
1058 # significant.
1059 },
1060 &quot;stringValue&quot;: &quot;A String&quot;, # string
1061 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1062 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1063 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1064 # types are google.type.Date and `google.protobuf.Timestamp`.
1065 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1066 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1067 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1068 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1069 # allow the value 60 if it allows leap-seconds.
1070 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1071 },
1072 &quot;booleanValue&quot;: True or False, # boolean
1073 &quot;floatValue&quot;: 3.14, # float
1074 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1075 },
1076 },
1077 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
1078 # fixed character. Masking can start from the beginning or end of the string.
1079 # This can be used on data of any type (numbers, longs, and so on) and when
1080 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
1081 # type. (This allows you to take a long like 123 and modify it to a string like
1082 # **3.
1083 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
1084 # characters. For example, if the input string is `555-555-5555` and you
1085 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
1086 # returns `***-**5-5555`.
1087 { # Characters to skip when doing deidentification of a value. These will be left
1088 # alone and skipped.
1089 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
1090 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
1091 # punctuation.
1092 },
1093 ],
1094 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
1095 # masked. Skipped characters do not count towards this tally.
1096 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
1097 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
1098 # code or credit card number. This string must have a length of 1. If not
1099 # supplied, this value defaults to `*` for strings, and `0` for digits.
1100 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
1101 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
1102 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
1103 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
1104 # is `true`, then the string `12345` is masked as `12***`.
1105 },
1106 },
1107 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause
1108 # this transformation to apply to all findings that correspond to
1109 # infoTypes that were requested in `InspectConfig`.
1110 { # Type of information detected by the API.
1111 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
1112 # creating a CustomInfoType, or one of the names listed
1113 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
1114 # a built-in type. InfoType names should conform to the pattern
1115 # `[a-zA-Z0-9_]{1,64}`.
1116 },
1117 ],
1118 },
1119 ],
1120 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001121 &quot;transformationErrorHandling&quot;: { # How to handle transformation errors during de-identification. A # Mode for handling transformation errors. If left unspecified, the default
1122 # mode is `TransformationErrorHandling.ThrowError`.
1123 # transformation error occurs when the requested transformation is incompatible
1124 # with the data. For example, trying to de-identify an IP address using a
1125 # `DateShift` transformation would result in a transformation error, since date
1126 # info cannot be extracted from an IP address.
1127 # Information about any incompatible transformations, and how they were
1128 # handled, is returned in the response as part of the
1129 # `TransformationOverviews`.
1130 &quot;throwError&quot;: { # Throw an error and fail the request when a transformation error occurs. # Throw an error
1131 },
1132 &quot;leaveUntransformed&quot;: { # Skips the data without modifying it if the requested transformation would # Ignore errors
1133 # cause an error. For example, if a `DateShift` transformation were applied
1134 # an an IP address, this mode would leave the IP address unchanged in the
1135 # response.
1136 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001137 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001138 &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
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001139 # specific locations within structured datasets, such as transforming
1140 # a column within a table.
1141 # table.
Bu Sun Kim65020912020-05-20 12:08:20 -07001142 &quot;fieldTransformations&quot;: [ # Transform the record by applying various field transformations.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001143 { # The transformation to apply to the field.
Bu Sun Kim65020912020-05-20 12:08:20 -07001144 &quot;fields&quot;: [ # Required. Input field(s) to apply the transformation to.
Dan O'Mearadd494642020-05-01 07:42:23 -07001145 { # General identifier of a data field in a storage service.
Bu Sun Kim65020912020-05-20 12:08:20 -07001146 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Dan O'Mearadd494642020-05-01 07:42:23 -07001147 },
1148 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001149 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and # Treat the contents of the field as free text, and selectively
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001150 # transform content that matches an `InfoType`.
1151 # apply various `PrimitiveTransformation`s to each finding, where the
1152 # transformation is applied to only values that were identified as a specific
1153 # info_type.
Bu Sun Kim65020912020-05-20 12:08:20 -07001154 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one
Dan O'Mearadd494642020-05-01 07:42:23 -07001155 # for a given infoType.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001156 { # A transformation to apply to text that is identified as a specific
1157 # info_type.
Bu Sun Kim65020912020-05-20 12:08:20 -07001158 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
1159 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
1160 # portion of the value.
1161 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
1162 },
1163 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
1164 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
1165 # to learn more.
1166 &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.
1167 # If set, must also set cryptoKey. If set, shift will be consistent for the
1168 # given context.
1169 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1170 },
1171 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
1172 # range (inclusive ends). Negative means shift to earlier in time. Must not
1173 # be more than 365250 days (1000 years) each direction.
1174 #
1175 # For example, 3 means shift date to at most 3 days into the future.
1176 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
1177 &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
1178 # results in the same shift for the same context and crypto_key. If
1179 # set, must also set context. Can only be applied to table items.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001180 # a key encryption key (KEK) stored by KMS).
1181 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
1182 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
1183 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07001184 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001185 # leaking the key. Choose another type of key if possible.
Bu Sun Kim65020912020-05-20 12:08:20 -07001186 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001187 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001188 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001189 # It will be discarded after the request finishes.
Bu Sun Kim65020912020-05-20 12:08:20 -07001190 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001191 # This is an arbitrary string used to differentiate different keys.
1192 # A unique key is generated per name: two separate `TransientCryptoKey`
1193 # protos share the same generated key if their names are the same.
1194 # When the data crypto key is generated, this name is not used in any way
1195 # (repeating the api call will result in a different key being generated).
1196 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001197 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
1198 # The wrapped key must be a 128/192/256 bit key.
1199 # Authorization requires the following IAM permissions when sending a request
1200 # to perform a crypto transformation using a kms-wrapped crypto key:
1201 # dlp.kms.encrypt
1202 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1203 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1204 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001205 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001206 },
1207 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
1208 },
1209 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
1210 # Uses SHA-256.
1211 # The key size must be either 32 or 64 bytes.
1212 # Outputs a base64 encoded representation of the hashed output
1213 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
1214 # Currently, only string and integer values can be hashed.
1215 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
1216 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
1217 # a key encryption key (KEK) stored by KMS).
1218 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
1219 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
1220 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07001221 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
1222 # leaking the key. Choose another type of key if possible.
1223 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1224 },
1225 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
1226 # It will be discarded after the request finishes.
1227 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
1228 # This is an arbitrary string used to differentiate different keys.
1229 # A unique key is generated per name: two separate `TransientCryptoKey`
1230 # protos share the same generated key if their names are the same.
1231 # When the data crypto key is generated, this name is not used in any way
1232 # (repeating the api call will result in a different key being generated).
1233 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001234 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
1235 # The wrapped key must be a 128/192/256 bit key.
1236 # Authorization requires the following IAM permissions when sending a request
1237 # to perform a crypto transformation using a kms-wrapped crypto key:
1238 # dlp.kms.encrypt
1239 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1240 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1241 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001242 },
1243 },
1244 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
1245 # (FPE) with the FFX mode of operation; however when used in the
1246 # `ReidentifyContent` API method, it serves the opposite function by reversing
1247 # the surrogate back into the original identifier. The identifier must be
1248 # encoded as ASCII. For a given crypto key and context, the same identifier
1249 # will be replaced with the same surrogate. Identifiers must be at least two
1250 # characters long. In the case that the identifier is the empty string, it will
1251 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
1252 # more.
1253 #
1254 # Note: We recommend using CryptoDeterministicConfig for all use cases which
1255 # do not require preserving the input alphabet space and size, plus warrant
1256 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07001257 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
1258 # This annotation will be applied to the surrogate by prefixing it with
1259 # the name of the custom infoType followed by the number of
1260 # characters comprising the surrogate. The following scheme defines the
1261 # format: info_type_name(surrogate_character_count):surrogate
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001262 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001263 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
1264 # the surrogate is &#x27;abc&#x27;, the full replacement value
1265 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
1266 #
1267 # This annotation identifies the surrogate when inspecting content using the
1268 # custom infoType
1269 # [`SurrogateType`](/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
1270 # This facilitates reversal of the surrogate when it occurs in free text.
1271 #
1272 # In order for inspection to work properly, the name of this infoType must
1273 # not occur naturally anywhere in your data; otherwise, inspection may
1274 # find a surrogate that does not correspond to an actual identifier.
1275 # Therefore, choose your custom infoType name carefully after considering
1276 # what your data looks like. One way to select a name that has a high chance
1277 # of yielding reliable detection is to include one or more unicode characters
1278 # that are highly improbable to exist in your data.
1279 # For example, assuming your data is entered from a regular ASCII keyboard,
1280 # the symbol with the hex code point 29DD might be used like so:
1281 # ⧝MY_TOKEN_TYPE
1282 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
1283 # creating a CustomInfoType, or one of the names listed
1284 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
1285 # a built-in type. InfoType names should conform to the pattern
1286 # `[a-zA-Z0-9_]{1,64}`.
1287 },
1288 &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
1289 # identifier in two different contexts won&#x27;t be given the same surrogate. If
1290 # the context is not set, a default tweak will be used.
1291 #
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001292 # If the context is set but:
1293 #
1294 # 1. there is no record present when transforming a given value or
Bu Sun Kim65020912020-05-20 12:08:20 -07001295 # 1. the field is not present when transforming a given value,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001296 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001297 # a default tweak will be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001298 #
1299 # Note that case (1) is expected when an `InfoTypeTransformation` is
1300 # applied to both structured and non-structured `ContentItem`s.
Bu Sun Kim65020912020-05-20 12:08:20 -07001301 # Currently, the referenced field may be of value type integer or string.
1302 #
1303 # The tweak is constructed as a sequence of bytes in big endian byte order
1304 # such that:
1305 #
1306 # - a 64 bit integer is encoded followed by a single byte of value 1
1307 # - a string is encoded in UTF-8 format followed by a single byte of value 2
1308 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001309 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001310 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
1311 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
1312 # a key encryption key (KEK) stored by KMS).
1313 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
1314 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
1315 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07001316 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
1317 # leaking the key. Choose another type of key if possible.
1318 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1319 },
1320 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
1321 # It will be discarded after the request finishes.
1322 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
1323 # This is an arbitrary string used to differentiate different keys.
1324 # A unique key is generated per name: two separate `TransientCryptoKey`
1325 # protos share the same generated key if their names are the same.
1326 # When the data crypto key is generated, this name is not used in any way
1327 # (repeating the api call will result in a different key being generated).
1328 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001329 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
1330 # The wrapped key must be a 128/192/256 bit key.
1331 # Authorization requires the following IAM permissions when sending a request
1332 # to perform a crypto transformation using a kms-wrapped crypto key:
1333 # dlp.kms.encrypt
1334 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1335 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1336 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001337 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001338 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
1339 # that the FFX mode natively supports. This happens before/after
1340 # encryption/decryption.
1341 # Each character listed must appear only once.
1342 # Number of characters must be in the range [2, 95].
1343 # This must be encoded as ASCII.
1344 # The order of characters does not matter.
1345 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07001346 },
1347 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
1348 # input. Outputs a base64 encoded representation of the encrypted output.
1349 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
1350 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001351 # This annotation will be applied to the surrogate by prefixing it with
1352 # the name of the custom info type followed by the number of
1353 # characters comprising the surrogate. The following scheme defines the
Dan O'Mearadd494642020-05-01 07:42:23 -07001354 # format: {info type name}({surrogate character count}):{surrogate}
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001355 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001356 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
1357 # the surrogate is &#x27;abc&#x27;, the full replacement value
1358 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001359 #
1360 # This annotation identifies the surrogate when inspecting content using the
Bu Sun Kim65020912020-05-20 12:08:20 -07001361 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001362 # surrogate when it occurs in free text.
1363 #
Dan O'Mearadd494642020-05-01 07:42:23 -07001364 # Note: For record transformations where the entire cell in a table is being
1365 # transformed, surrogates are not mandatory. Surrogates are used to denote
1366 # the location of the token and are necessary for re-identification in free
1367 # form text.
1368 #
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001369 # In order for inspection to work properly, the name of this info type must
1370 # not occur naturally anywhere in your data; otherwise, inspection may either
1371 #
1372 # - reverse a surrogate that does not correspond to an actual identifier
1373 # - be unable to parse the surrogate and result in an error
1374 #
1375 # Therefore, choose your custom info type name carefully after considering
1376 # what your data looks like. One way to select a name that has a high chance
1377 # of yielding reliable detection is to include one or more unicode characters
1378 # that are highly improbable to exist in your data.
1379 # For example, assuming your data is entered from a regular ASCII keyboard,
1380 # the symbol with the hex code point 29DD might be used like so:
Dan O'Mearadd494642020-05-01 07:42:23 -07001381 # ⧝MY_TOKEN_TYPE.
Bu Sun Kim65020912020-05-20 12:08:20 -07001382 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001383 # creating a CustomInfoType, or one of the names listed
1384 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
1385 # a built-in type. InfoType names should conform to the pattern
Dan O'Mearadd494642020-05-01 07:42:23 -07001386 # `[a-zA-Z0-9_]{1,64}`.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001387 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001388 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
1389 # referential integrity such that the same identifier in two different
1390 # contexts will be given a distinct surrogate. The context is appended to
1391 # plaintext value being encrypted. On decryption the provided context is
1392 # validated against the value used during encryption. If a context was
1393 # provided during encryption, same context must be provided during decryption
1394 # as well.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001395 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001396 # If the context is not set, plaintext would be used as is for encryption.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001397 # If the context is set but:
1398 #
1399 # 1. there is no record present when transforming a given value or
Bu Sun Kim65020912020-05-20 12:08:20 -07001400 # 2. the field is not present when transforming a given value,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001401 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001402 # plaintext would be used as is for encryption.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001403 #
1404 # Note that case (1) is expected when an `InfoTypeTransformation` is
1405 # applied to both structured and non-structured `ContentItem`s.
Bu Sun Kim65020912020-05-20 12:08:20 -07001406 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001407 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001408 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
1409 # a key encryption key (KEK) stored by KMS).
1410 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
1411 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
1412 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07001413 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
1414 # leaking the key. Choose another type of key if possible.
1415 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1416 },
1417 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
1418 # It will be discarded after the request finishes.
1419 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
1420 # This is an arbitrary string used to differentiate different keys.
1421 # A unique key is generated per name: two separate `TransientCryptoKey`
1422 # protos share the same generated key if their names are the same.
1423 # When the data crypto key is generated, this name is not used in any way
1424 # (repeating the api call will result in a different key being generated).
1425 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001426 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
1427 # The wrapped key must be a 128/192/256 bit key.
1428 # Authorization requires the following IAM permissions when sending a request
1429 # to perform a crypto transformation using a kms-wrapped crypto key:
1430 # dlp.kms.encrypt
1431 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1432 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1433 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001434 },
1435 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001436 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
Dan O'Mearadd494642020-05-01 07:42:23 -07001437 # replacement values are dynamically provided by the user for custom behavior,
1438 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
1439 # This can be used on
1440 # data of type: number, long, string, timestamp.
1441 # If the bound `Value` type differs from the type of data being transformed, we
1442 # will first attempt converting the type of the data to be transformed to match
1443 # the type of the bound before comparing.
1444 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07001445 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
Dan O'Mearadd494642020-05-01 07:42:23 -07001446 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kim65020912020-05-20 12:08:20 -07001447 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Replacement value for this bucket. If not provided
1448 # the default behavior will be to hyphenate the min-max range.
1449 # Note that for the purposes of inspection or transformation, the number
1450 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1451 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
1452 # 123456789, the number of bytes would be counted as 9, even though an
1453 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07001454 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1455 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1456 # and time zone are either specified elsewhere or are not significant. The date
1457 # is relative to the Proleptic Gregorian Calendar. This can represent:
1458 #
1459 # * A full date, with non-zero year, month and day values
1460 # * A month and day value, with a zero year, e.g. an anniversary
1461 # * A year on its own, with zero month and day values
1462 # * A year and month value, with a zero day, e.g. a credit card expiration date
1463 #
1464 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
1465 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1466 # a year.
1467 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1468 # month and day.
1469 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1470 # if specifying a year by itself or a year and month where the day is not
1471 # significant.
1472 },
1473 &quot;stringValue&quot;: &quot;A String&quot;, # string
1474 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1475 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1476 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1477 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001478 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1479 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1480 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001481 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1482 # allow the value 60 if it allows leap-seconds.
1483 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07001484 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001485 &quot;booleanValue&quot;: True or False, # boolean
1486 &quot;floatValue&quot;: 3.14, # float
1487 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1488 },
1489 &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
1490 # used.
1491 # Note that for the purposes of inspection or transformation, the number
1492 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1493 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
1494 # 123456789, the number of bytes would be counted as 9, even though an
1495 # int64 only holds up to 8 bytes of data.
1496 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1497 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1498 # and time zone are either specified elsewhere or are not significant. The date
1499 # is relative to the Proleptic Gregorian Calendar. This can represent:
1500 #
1501 # * A full date, with non-zero year, month and day values
1502 # * A month and day value, with a zero year, e.g. an anniversary
1503 # * A year on its own, with zero month and day values
1504 # * A year and month value, with a zero day, e.g. a credit card expiration date
1505 #
1506 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
1507 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1508 # a year.
1509 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1510 # month and day.
1511 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1512 # if specifying a year by itself or a year and month where the day is not
1513 # significant.
1514 },
1515 &quot;stringValue&quot;: &quot;A String&quot;, # string
1516 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1517 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1518 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1519 # types are google.type.Date and `google.protobuf.Timestamp`.
1520 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1521 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1522 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1523 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1524 # allow the value 60 if it allows leap-seconds.
1525 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1526 },
1527 &quot;booleanValue&quot;: True or False, # boolean
1528 &quot;floatValue&quot;: 3.14, # float
1529 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1530 },
1531 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
1532 # Note that for the purposes of inspection or transformation, the number
1533 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1534 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
1535 # 123456789, the number of bytes would be counted as 9, even though an
1536 # int64 only holds up to 8 bytes of data.
1537 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1538 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1539 # and time zone are either specified elsewhere or are not significant. The date
1540 # is relative to the Proleptic Gregorian Calendar. This can represent:
1541 #
1542 # * A full date, with non-zero year, month and day values
1543 # * A month and day value, with a zero year, e.g. an anniversary
1544 # * A year on its own, with zero month and day values
1545 # * A year and month value, with a zero day, e.g. a credit card expiration date
1546 #
1547 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
1548 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1549 # a year.
1550 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1551 # month and day.
1552 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1553 # if specifying a year by itself or a year and month where the day is not
1554 # significant.
1555 },
1556 &quot;stringValue&quot;: &quot;A String&quot;, # string
1557 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1558 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1559 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1560 # types are google.type.Date and `google.protobuf.Timestamp`.
1561 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1562 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1563 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1564 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1565 # allow the value 60 if it allows leap-seconds.
1566 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1567 },
1568 &quot;booleanValue&quot;: True or False, # boolean
1569 &quot;floatValue&quot;: 3.14, # float
1570 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Dan O'Mearadd494642020-05-01 07:42:23 -07001571 },
1572 },
1573 ],
1574 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001575 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
1576 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
1577 # output would be &#x27;My phone number is &#x27;.
1578 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001579 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
1580 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001581 # Note that for the purposes of inspection or transformation, the number
Bu Sun Kim65020912020-05-20 12:08:20 -07001582 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1583 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001584 # 123456789, the number of bytes would be counted as 9, even though an
1585 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07001586 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1587 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001588 # and time zone are either specified elsewhere or are not significant. The date
1589 # is relative to the Proleptic Gregorian Calendar. This can represent:
1590 #
1591 # * A full date, with non-zero year, month and day values
1592 # * A month and day value, with a zero year, e.g. an anniversary
1593 # * A year on its own, with zero month and day values
1594 # * A year and month value, with a zero day, e.g. a credit card expiration date
1595 #
1596 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001597 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1598 # a year.
1599 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
Dan O'Mearadd494642020-05-01 07:42:23 -07001600 # month and day.
Bu Sun Kim65020912020-05-20 12:08:20 -07001601 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001602 # if specifying a year by itself or a year and month where the day is not
1603 # significant.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001604 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001605 &quot;stringValue&quot;: &quot;A String&quot;, # string
1606 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1607 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1608 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1609 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001610 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1611 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1612 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001613 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1614 # allow the value 60 if it allows leap-seconds.
1615 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07001616 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001617 &quot;booleanValue&quot;: True or False, # boolean
1618 &quot;floatValue&quot;: 3.14, # float
1619 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001620 },
1621 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001622 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
1623 # Bucketing transformation can provide all of this functionality,
1624 # but requires more configuration. This message is provided as a convenience to
1625 # the user for simple bucketing strategies.
1626 #
1627 # The transformed value will be a hyphenated string of
1628 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
1629 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
1630 #
1631 # This can be used on data of type: double, long.
1632 #
1633 # If the bound Value type differs from the type of data
1634 # being transformed, we will first attempt converting the type of the data to
1635 # be transformed to match the type of the bound before comparing.
1636 #
1637 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07001638 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
1639 # grouped together into a single bucket; for example if `upper_bound` = 89,
1640 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
1641 # Note that for the purposes of inspection or transformation, the number
1642 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1643 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
1644 # 123456789, the number of bytes would be counted as 9, even though an
1645 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07001646 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1647 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1648 # and time zone are either specified elsewhere or are not significant. The date
1649 # is relative to the Proleptic Gregorian Calendar. This can represent:
1650 #
1651 # * A full date, with non-zero year, month and day values
1652 # * A month and day value, with a zero year, e.g. an anniversary
1653 # * A year on its own, with zero month and day values
1654 # * A year and month value, with a zero day, e.g. a credit card expiration date
1655 #
1656 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
1657 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1658 # a year.
1659 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1660 # month and day.
1661 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1662 # if specifying a year by itself or a year and month where the day is not
1663 # significant.
1664 },
1665 &quot;stringValue&quot;: &quot;A String&quot;, # string
1666 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1667 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1668 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1669 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001670 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1671 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1672 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001673 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1674 # allow the value 60 if it allows leap-seconds.
1675 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07001676 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001677 &quot;booleanValue&quot;: True or False, # boolean
1678 &quot;floatValue&quot;: 3.14, # float
1679 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07001680 },
1681 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
1682 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
1683 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
1684 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001685 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
1686 # grouped together into a single bucket; for example if `lower_bound` = 10,
1687 # then all values less than 10 are replaced with the value &quot;-10&quot;.
1688 # Note that for the purposes of inspection or transformation, the number
1689 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
1690 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
1691 # 123456789, the number of bytes would be counted as 9, even though an
1692 # int64 only holds up to 8 bytes of data.
1693 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1694 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
1695 # and time zone are either specified elsewhere or are not significant. The date
1696 # is relative to the Proleptic Gregorian Calendar. This can represent:
1697 #
1698 # * A full date, with non-zero year, month and day values
1699 # * A month and day value, with a zero year, e.g. an anniversary
1700 # * A year on its own, with zero month and day values
1701 # * A year and month value, with a zero day, e.g. a credit card expiration date
1702 #
1703 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
1704 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1705 # a year.
1706 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
1707 # month and day.
1708 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1709 # if specifying a year by itself or a year and month where the day is not
1710 # significant.
1711 },
1712 &quot;stringValue&quot;: &quot;A String&quot;, # string
1713 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1714 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
1715 # or are specified elsewhere. An API may choose to allow leap seconds. Related
1716 # types are google.type.Date and `google.protobuf.Timestamp`.
1717 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
1718 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1719 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1720 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1721 # allow the value 60 if it allows leap-seconds.
1722 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1723 },
1724 &quot;booleanValue&quot;: True or False, # boolean
1725 &quot;floatValue&quot;: 3.14, # float
1726 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1727 },
1728 },
1729 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
1730 # fixed character. Masking can start from the beginning or end of the string.
1731 # This can be used on data of any type (numbers, longs, and so on) and when
1732 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
1733 # type. (This allows you to take a long like 123 and modify it to a string like
1734 # **3.
1735 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
1736 # characters. For example, if the input string is `555-555-5555` and you
1737 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
1738 # returns `***-**5-5555`.
1739 { # Characters to skip when doing deidentification of a value. These will be left
1740 # alone and skipped.
1741 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
1742 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
1743 # punctuation.
1744 },
1745 ],
1746 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
1747 # masked. Skipped characters do not count towards this tally.
1748 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
1749 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
1750 # code or credit card number. This string must have a length of 1. If not
1751 # supplied, this value defaults to `*` for strings, and `0` for digits.
1752 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
1753 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
1754 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
1755 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
1756 # is `true`, then the string `12345` is masked as `12***`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001757 },
1758 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001759 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause
1760 # this transformation to apply to all findings that correspond to
1761 # infoTypes that were requested in `InspectConfig`.
1762 { # Type of information detected by the API.
1763 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
1764 # creating a CustomInfoType, or one of the names listed
1765 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
1766 # a built-in type. InfoType names should conform to the pattern
1767 # `[a-zA-Z0-9_]{1,64}`.
1768 },
1769 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001770 },
1771 ],
1772 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001773 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Apply the transformation to the entire field.
1774 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
1775 # portion of the value.
1776 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
1777 },
1778 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
1779 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
1780 # to learn more.
1781 &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.
1782 # If set, must also set cryptoKey. If set, shift will be consistent for the
1783 # given context.
1784 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1785 },
1786 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
1787 # range (inclusive ends). Negative means shift to earlier in time. Must not
1788 # be more than 365250 days (1000 years) each direction.
1789 #
1790 # For example, 3 means shift date to at most 3 days into the future.
1791 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
1792 &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
1793 # results in the same shift for the same context and crypto_key. If
1794 # set, must also set context. Can only be applied to table items.
1795 # a key encryption key (KEK) stored by KMS).
1796 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
1797 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
1798 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07001799 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
1800 # leaking the key. Choose another type of key if possible.
1801 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1802 },
1803 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
1804 # It will be discarded after the request finishes.
1805 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
1806 # This is an arbitrary string used to differentiate different keys.
1807 # A unique key is generated per name: two separate `TransientCryptoKey`
1808 # protos share the same generated key if their names are the same.
1809 # When the data crypto key is generated, this name is not used in any way
1810 # (repeating the api call will result in a different key being generated).
1811 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001812 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
1813 # The wrapped key must be a 128/192/256 bit key.
1814 # Authorization requires the following IAM permissions when sending a request
1815 # to perform a crypto transformation using a kms-wrapped crypto key:
1816 # dlp.kms.encrypt
1817 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1818 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1819 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001820 },
1821 },
1822 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
1823 },
1824 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
1825 # Uses SHA-256.
1826 # The key size must be either 32 or 64 bytes.
1827 # Outputs a base64 encoded representation of the hashed output
1828 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
1829 # Currently, only string and integer values can be hashed.
1830 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
1831 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
1832 # a key encryption key (KEK) stored by KMS).
1833 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
1834 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
1835 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07001836 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
1837 # leaking the key. Choose another type of key if possible.
1838 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1839 },
1840 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
1841 # It will be discarded after the request finishes.
1842 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
1843 # This is an arbitrary string used to differentiate different keys.
1844 # A unique key is generated per name: two separate `TransientCryptoKey`
1845 # protos share the same generated key if their names are the same.
1846 # When the data crypto key is generated, this name is not used in any way
1847 # (repeating the api call will result in a different key being generated).
1848 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001849 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
1850 # The wrapped key must be a 128/192/256 bit key.
1851 # Authorization requires the following IAM permissions when sending a request
1852 # to perform a crypto transformation using a kms-wrapped crypto key:
1853 # dlp.kms.encrypt
1854 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1855 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1856 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001857 },
1858 },
1859 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
1860 # (FPE) with the FFX mode of operation; however when used in the
1861 # `ReidentifyContent` API method, it serves the opposite function by reversing
1862 # the surrogate back into the original identifier. The identifier must be
1863 # encoded as ASCII. For a given crypto key and context, the same identifier
1864 # will be replaced with the same surrogate. Identifiers must be at least two
1865 # characters long. In the case that the identifier is the empty string, it will
1866 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
1867 # more.
1868 #
1869 # Note: We recommend using CryptoDeterministicConfig for all use cases which
1870 # do not require preserving the input alphabet space and size, plus warrant
1871 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07001872 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
1873 # This annotation will be applied to the surrogate by prefixing it with
1874 # the name of the custom infoType followed by the number of
1875 # characters comprising the surrogate. The following scheme defines the
1876 # format: info_type_name(surrogate_character_count):surrogate
1877 #
1878 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
1879 # the surrogate is &#x27;abc&#x27;, the full replacement value
1880 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
1881 #
1882 # This annotation identifies the surrogate when inspecting content using the
1883 # custom infoType
1884 # [`SurrogateType`](/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
1885 # This facilitates reversal of the surrogate when it occurs in free text.
1886 #
1887 # In order for inspection to work properly, the name of this infoType must
1888 # not occur naturally anywhere in your data; otherwise, inspection may
1889 # find a surrogate that does not correspond to an actual identifier.
1890 # Therefore, choose your custom infoType name carefully after considering
1891 # what your data looks like. One way to select a name that has a high chance
1892 # of yielding reliable detection is to include one or more unicode characters
1893 # that are highly improbable to exist in your data.
1894 # For example, assuming your data is entered from a regular ASCII keyboard,
1895 # the symbol with the hex code point 29DD might be used like so:
1896 # ⧝MY_TOKEN_TYPE
1897 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
1898 # creating a CustomInfoType, or one of the names listed
1899 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
1900 # a built-in type. InfoType names should conform to the pattern
1901 # `[a-zA-Z0-9_]{1,64}`.
1902 },
1903 &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
1904 # identifier in two different contexts won&#x27;t be given the same surrogate. If
1905 # the context is not set, a default tweak will be used.
1906 #
1907 # If the context is set but:
1908 #
1909 # 1. there is no record present when transforming a given value or
1910 # 1. the field is not present when transforming a given value,
1911 #
1912 # a default tweak will be used.
1913 #
1914 # Note that case (1) is expected when an `InfoTypeTransformation` is
1915 # applied to both structured and non-structured `ContentItem`s.
1916 # Currently, the referenced field may be of value type integer or string.
1917 #
1918 # The tweak is constructed as a sequence of bytes in big endian byte order
1919 # such that:
1920 #
1921 # - a 64 bit integer is encoded followed by a single byte of value 1
1922 # - a string is encoded in UTF-8 format followed by a single byte of value 2
1923 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1924 },
1925 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
1926 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
1927 # a key encryption key (KEK) stored by KMS).
1928 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
1929 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
1930 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07001931 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
1932 # leaking the key. Choose another type of key if possible.
1933 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1934 },
1935 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
1936 # It will be discarded after the request finishes.
1937 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
1938 # This is an arbitrary string used to differentiate different keys.
1939 # A unique key is generated per name: two separate `TransientCryptoKey`
1940 # protos share the same generated key if their names are the same.
1941 # When the data crypto key is generated, this name is not used in any way
1942 # (repeating the api call will result in a different key being generated).
1943 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001944 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
1945 # The wrapped key must be a 128/192/256 bit key.
1946 # Authorization requires the following IAM permissions when sending a request
1947 # to perform a crypto transformation using a kms-wrapped crypto key:
1948 # dlp.kms.encrypt
1949 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1950 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1951 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001952 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001953 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
1954 # that the FFX mode natively supports. This happens before/after
1955 # encryption/decryption.
1956 # Each character listed must appear only once.
1957 # Number of characters must be in the range [2, 95].
1958 # This must be encoded as ASCII.
1959 # The order of characters does not matter.
1960 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07001961 },
1962 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
1963 # input. Outputs a base64 encoded representation of the encrypted output.
1964 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
1965 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
1966 # This annotation will be applied to the surrogate by prefixing it with
1967 # the name of the custom info type followed by the number of
1968 # characters comprising the surrogate. The following scheme defines the
1969 # format: {info type name}({surrogate character count}):{surrogate}
1970 #
1971 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
1972 # the surrogate is &#x27;abc&#x27;, the full replacement value
1973 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
1974 #
1975 # This annotation identifies the surrogate when inspecting content using the
1976 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
1977 # surrogate when it occurs in free text.
1978 #
1979 # Note: For record transformations where the entire cell in a table is being
1980 # transformed, surrogates are not mandatory. Surrogates are used to denote
1981 # the location of the token and are necessary for re-identification in free
1982 # form text.
1983 #
1984 # In order for inspection to work properly, the name of this info type must
1985 # not occur naturally anywhere in your data; otherwise, inspection may either
1986 #
1987 # - reverse a surrogate that does not correspond to an actual identifier
1988 # - be unable to parse the surrogate and result in an error
1989 #
1990 # Therefore, choose your custom info type name carefully after considering
1991 # what your data looks like. One way to select a name that has a high chance
1992 # of yielding reliable detection is to include one or more unicode characters
1993 # that are highly improbable to exist in your data.
1994 # For example, assuming your data is entered from a regular ASCII keyboard,
1995 # the symbol with the hex code point 29DD might be used like so:
1996 # ⧝MY_TOKEN_TYPE.
1997 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
1998 # creating a CustomInfoType, or one of the names listed
1999 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
2000 # a built-in type. InfoType names should conform to the pattern
2001 # `[a-zA-Z0-9_]{1,64}`.
2002 },
2003 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
2004 # referential integrity such that the same identifier in two different
2005 # contexts will be given a distinct surrogate. The context is appended to
2006 # plaintext value being encrypted. On decryption the provided context is
2007 # validated against the value used during encryption. If a context was
2008 # provided during encryption, same context must be provided during decryption
2009 # as well.
2010 #
2011 # If the context is not set, plaintext would be used as is for encryption.
2012 # If the context is set but:
2013 #
2014 # 1. there is no record present when transforming a given value or
2015 # 2. the field is not present when transforming a given value,
2016 #
2017 # plaintext would be used as is for encryption.
2018 #
2019 # Note that case (1) is expected when an `InfoTypeTransformation` is
2020 # applied to both structured and non-structured `ContentItem`s.
2021 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2022 },
2023 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
2024 # a key encryption key (KEK) stored by KMS).
2025 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
2026 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
2027 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07002028 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
2029 # leaking the key. Choose another type of key if possible.
2030 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2031 },
2032 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
2033 # It will be discarded after the request finishes.
2034 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
2035 # This is an arbitrary string used to differentiate different keys.
2036 # A unique key is generated per name: two separate `TransientCryptoKey`
2037 # protos share the same generated key if their names are the same.
2038 # When the data crypto key is generated, this name is not used in any way
2039 # (repeating the api call will result in a different key being generated).
2040 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002041 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
2042 # The wrapped key must be a 128/192/256 bit key.
2043 # Authorization requires the following IAM permissions when sending a request
2044 # to perform a crypto transformation using a kms-wrapped crypto key:
2045 # dlp.kms.encrypt
2046 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2047 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2048 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002049 },
2050 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002051 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
2052 # replacement values are dynamically provided by the user for custom behavior,
2053 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
2054 # This can be used on
2055 # data of type: number, long, string, timestamp.
2056 # If the bound `Value` type differs from the type of data being transformed, we
2057 # will first attempt converting the type of the data to be transformed to match
2058 # the type of the bound before comparing.
2059 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
2060 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
2061 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kim65020912020-05-20 12:08:20 -07002062 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Replacement value for this bucket. If not provided
2063 # the default behavior will be to hyphenate the min-max range.
2064 # Note that for the purposes of inspection or transformation, the number
2065 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2066 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2067 # 123456789, the number of bytes would be counted as 9, even though an
2068 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07002069 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2070 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2071 # and time zone are either specified elsewhere or are not significant. The date
2072 # is relative to the Proleptic Gregorian Calendar. This can represent:
2073 #
2074 # * A full date, with non-zero year, month and day values
2075 # * A month and day value, with a zero year, e.g. an anniversary
2076 # * A year on its own, with zero month and day values
2077 # * A year and month value, with a zero day, e.g. a credit card expiration date
2078 #
2079 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
2080 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2081 # a year.
2082 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2083 # month and day.
2084 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2085 # if specifying a year by itself or a year and month where the day is not
2086 # significant.
2087 },
2088 &quot;stringValue&quot;: &quot;A String&quot;, # string
2089 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2090 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2091 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2092 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002093 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2094 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2095 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002096 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2097 # allow the value 60 if it allows leap-seconds.
2098 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07002099 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002100 &quot;booleanValue&quot;: True or False, # boolean
2101 &quot;floatValue&quot;: 3.14, # float
2102 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2103 },
2104 &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
2105 # used.
2106 # Note that for the purposes of inspection or transformation, the number
2107 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2108 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2109 # 123456789, the number of bytes would be counted as 9, even though an
2110 # int64 only holds up to 8 bytes of data.
2111 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2112 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2113 # and time zone are either specified elsewhere or are not significant. The date
2114 # is relative to the Proleptic Gregorian Calendar. This can represent:
2115 #
2116 # * A full date, with non-zero year, month and day values
2117 # * A month and day value, with a zero year, e.g. an anniversary
2118 # * A year on its own, with zero month and day values
2119 # * A year and month value, with a zero day, e.g. a credit card expiration date
2120 #
2121 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
2122 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2123 # a year.
2124 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2125 # month and day.
2126 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2127 # if specifying a year by itself or a year and month where the day is not
2128 # significant.
2129 },
2130 &quot;stringValue&quot;: &quot;A String&quot;, # string
2131 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2132 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2133 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2134 # types are google.type.Date and `google.protobuf.Timestamp`.
2135 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2136 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2137 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2138 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2139 # allow the value 60 if it allows leap-seconds.
2140 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2141 },
2142 &quot;booleanValue&quot;: True or False, # boolean
2143 &quot;floatValue&quot;: 3.14, # float
2144 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2145 },
2146 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
2147 # Note that for the purposes of inspection or transformation, the number
2148 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2149 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2150 # 123456789, the number of bytes would be counted as 9, even though an
2151 # int64 only holds up to 8 bytes of data.
2152 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2153 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2154 # and time zone are either specified elsewhere or are not significant. The date
2155 # is relative to the Proleptic Gregorian Calendar. This can represent:
2156 #
2157 # * A full date, with non-zero year, month and day values
2158 # * A month and day value, with a zero year, e.g. an anniversary
2159 # * A year on its own, with zero month and day values
2160 # * A year and month value, with a zero day, e.g. a credit card expiration date
2161 #
2162 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
2163 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2164 # a year.
2165 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2166 # month and day.
2167 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2168 # if specifying a year by itself or a year and month where the day is not
2169 # significant.
2170 },
2171 &quot;stringValue&quot;: &quot;A String&quot;, # string
2172 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2173 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2174 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2175 # types are google.type.Date and `google.protobuf.Timestamp`.
2176 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2177 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2178 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2179 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2180 # allow the value 60 if it allows leap-seconds.
2181 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2182 },
2183 &quot;booleanValue&quot;: True or False, # boolean
2184 &quot;floatValue&quot;: 3.14, # float
2185 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07002186 },
2187 },
2188 ],
2189 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002190 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
2191 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
2192 # output would be &#x27;My phone number is &#x27;.
2193 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002194 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
2195 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
2196 # Note that for the purposes of inspection or transformation, the number
2197 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2198 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2199 # 123456789, the number of bytes would be counted as 9, even though an
2200 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07002201 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2202 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2203 # and time zone are either specified elsewhere or are not significant. The date
2204 # is relative to the Proleptic Gregorian Calendar. This can represent:
2205 #
2206 # * A full date, with non-zero year, month and day values
2207 # * A month and day value, with a zero year, e.g. an anniversary
2208 # * A year on its own, with zero month and day values
2209 # * A year and month value, with a zero day, e.g. a credit card expiration date
2210 #
2211 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
2212 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2213 # a year.
2214 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2215 # month and day.
2216 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2217 # if specifying a year by itself or a year and month where the day is not
2218 # significant.
2219 },
2220 &quot;stringValue&quot;: &quot;A String&quot;, # string
2221 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2222 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2223 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2224 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002225 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2226 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2227 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002228 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2229 # allow the value 60 if it allows leap-seconds.
2230 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07002231 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002232 &quot;booleanValue&quot;: True or False, # boolean
2233 &quot;floatValue&quot;: 3.14, # float
2234 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07002235 },
2236 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002237 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
2238 # Bucketing transformation can provide all of this functionality,
2239 # but requires more configuration. This message is provided as a convenience to
2240 # the user for simple bucketing strategies.
2241 #
2242 # The transformed value will be a hyphenated string of
2243 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
2244 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
2245 #
2246 # This can be used on data of type: double, long.
2247 #
2248 # If the bound Value type differs from the type of data
2249 # being transformed, we will first attempt converting the type of the data to
2250 # be transformed to match the type of the bound before comparing.
2251 #
2252 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07002253 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
2254 # grouped together into a single bucket; for example if `upper_bound` = 89,
2255 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
2256 # Note that for the purposes of inspection or transformation, the number
2257 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2258 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2259 # 123456789, the number of bytes would be counted as 9, even though an
2260 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07002261 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2262 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2263 # and time zone are either specified elsewhere or are not significant. The date
2264 # is relative to the Proleptic Gregorian Calendar. This can represent:
2265 #
2266 # * A full date, with non-zero year, month and day values
2267 # * A month and day value, with a zero year, e.g. an anniversary
2268 # * A year on its own, with zero month and day values
2269 # * A year and month value, with a zero day, e.g. a credit card expiration date
2270 #
2271 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
2272 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2273 # a year.
2274 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2275 # month and day.
2276 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2277 # if specifying a year by itself or a year and month where the day is not
2278 # significant.
2279 },
2280 &quot;stringValue&quot;: &quot;A String&quot;, # string
2281 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2282 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2283 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2284 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002285 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2286 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2287 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002288 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2289 # allow the value 60 if it allows leap-seconds.
2290 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07002291 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002292 &quot;booleanValue&quot;: True or False, # boolean
2293 &quot;floatValue&quot;: 3.14, # float
2294 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07002295 },
2296 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
2297 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
2298 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
2299 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002300 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
2301 # grouped together into a single bucket; for example if `lower_bound` = 10,
2302 # then all values less than 10 are replaced with the value &quot;-10&quot;.
2303 # Note that for the purposes of inspection or transformation, the number
2304 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2305 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2306 # 123456789, the number of bytes would be counted as 9, even though an
2307 # int64 only holds up to 8 bytes of data.
2308 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2309 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2310 # and time zone are either specified elsewhere or are not significant. The date
2311 # is relative to the Proleptic Gregorian Calendar. This can represent:
2312 #
2313 # * A full date, with non-zero year, month and day values
2314 # * A month and day value, with a zero year, e.g. an anniversary
2315 # * A year on its own, with zero month and day values
2316 # * A year and month value, with a zero day, e.g. a credit card expiration date
2317 #
2318 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
2319 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2320 # a year.
2321 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2322 # month and day.
2323 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2324 # if specifying a year by itself or a year and month where the day is not
2325 # significant.
2326 },
2327 &quot;stringValue&quot;: &quot;A String&quot;, # string
2328 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2329 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2330 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2331 # types are google.type.Date and `google.protobuf.Timestamp`.
2332 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2333 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2334 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2335 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2336 # allow the value 60 if it allows leap-seconds.
2337 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2338 },
2339 &quot;booleanValue&quot;: True or False, # boolean
2340 &quot;floatValue&quot;: 3.14, # float
2341 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2342 },
2343 },
2344 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
2345 # fixed character. Masking can start from the beginning or end of the string.
2346 # This can be used on data of any type (numbers, longs, and so on) and when
2347 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
2348 # type. (This allows you to take a long like 123 and modify it to a string like
2349 # **3.
2350 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
2351 # characters. For example, if the input string is `555-555-5555` and you
2352 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
2353 # returns `***-**5-5555`.
2354 { # Characters to skip when doing deidentification of a value. These will be left
2355 # alone and skipped.
2356 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
2357 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
2358 # punctuation.
2359 },
2360 ],
2361 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
2362 # masked. Skipped characters do not count towards this tally.
2363 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
2364 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
2365 # code or credit card number. This string must have a length of 1. If not
2366 # supplied, this value defaults to `*` for strings, and `0` for digits.
2367 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
2368 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
2369 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
2370 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
2371 # is `true`, then the string `12345` is masked as `12***`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002372 },
2373 },
2374 &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
2375 # given `RecordCondition`. The conditions are allowed to reference fields
2376 # that are not used in the actual transformation.
2377 #
2378 # Example Use Cases:
2379 #
2380 # - Apply a different bucket transformation to an age column if the zip code
2381 # column for the same record is within a specific range.
2382 # - Redact a field if the date of birth field is greater than 85.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002383 # a field.
Bu Sun Kim65020912020-05-20 12:08:20 -07002384 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
2385 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
2386 # only supported value is `AND`.
2387 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
2388 &quot;conditions&quot;: [ # A collection of conditions.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002389 { # The field type of `value` and `field` do not need to match to be
2390 # considered equal, but not all comparisons are possible.
2391 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
2392 # but all other comparisons are invalid with incompatible types.
2393 # A `value` of type:
2394 #
2395 # - `string` can be compared against all other types
2396 # - `boolean` can only be compared against other booleans
2397 # - `integer` can be compared against doubles or a string if the string value
2398 # can be parsed as an integer.
2399 # - `double` can be compared against integers or a string if the string can
2400 # be parsed as a double.
2401 # - `Timestamp` can be compared against strings in RFC 3339 date string
2402 # format.
2403 # - `TimeOfDay` can be compared against timestamps and strings in the format
Bu Sun Kim65020912020-05-20 12:08:20 -07002404 # of &#x27;HH:mm:ss&#x27;.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002405 #
2406 # If we fail to compare do to type mismatch, a warning will be given and
2407 # the condition will evaluate to false.
Bu Sun Kim65020912020-05-20 12:08:20 -07002408 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002409 # Note that for the purposes of inspection or transformation, the number
Bu Sun Kim65020912020-05-20 12:08:20 -07002410 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2411 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002412 # 123456789, the number of bytes would be counted as 9, even though an
2413 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07002414 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2415 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002416 # and time zone are either specified elsewhere or are not significant. The date
2417 # is relative to the Proleptic Gregorian Calendar. This can represent:
2418 #
2419 # * A full date, with non-zero year, month and day values
2420 # * A month and day value, with a zero year, e.g. an anniversary
2421 # * A year on its own, with zero month and day values
2422 # * A year and month value, with a zero day, e.g. a credit card expiration date
2423 #
2424 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002425 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2426 # a year.
2427 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
Dan O'Mearadd494642020-05-01 07:42:23 -07002428 # month and day.
Bu Sun Kim65020912020-05-20 12:08:20 -07002429 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002430 # if specifying a year by itself or a year and month where the day is not
2431 # significant.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002432 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002433 &quot;stringValue&quot;: &quot;A String&quot;, # string
2434 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2435 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2436 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2437 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002438 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2439 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2440 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002441 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2442 # allow the value 60 if it allows leap-seconds.
2443 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07002444 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002445 &quot;booleanValue&quot;: True or False, # boolean
2446 &quot;floatValue&quot;: 3.14, # float
2447 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002448 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002449 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
2450 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2451 },
2452 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002453 },
2454 ],
2455 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002456 },
2457 },
2458 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002459 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002460 &quot;recordSuppressions&quot;: [ # Configuration defining which records get suppressed entirely. Records that
2461 # match any suppression rule are omitted from the output.
2462 { # Configuration to suppress records whose suppression conditions evaluate to
2463 # true.
2464 &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
2465 # evaluated to be suppressed from the transformed content.
2466 # a field.
2467 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
2468 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
2469 # only supported value is `AND`.
2470 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
2471 &quot;conditions&quot;: [ # A collection of conditions.
2472 { # The field type of `value` and `field` do not need to match to be
2473 # considered equal, but not all comparisons are possible.
2474 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
2475 # but all other comparisons are invalid with incompatible types.
2476 # A `value` of type:
2477 #
2478 # - `string` can be compared against all other types
2479 # - `boolean` can only be compared against other booleans
2480 # - `integer` can be compared against doubles or a string if the string value
2481 # can be parsed as an integer.
2482 # - `double` can be compared against integers or a string if the string can
2483 # be parsed as a double.
2484 # - `Timestamp` can be compared against strings in RFC 3339 date string
2485 # format.
2486 # - `TimeOfDay` can be compared against timestamps and strings in the format
2487 # of &#x27;HH:mm:ss&#x27;.
2488 #
2489 # If we fail to compare do to type mismatch, a warning will be given and
2490 # the condition will evaluate to false.
2491 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
2492 # Note that for the purposes of inspection or transformation, the number
2493 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2494 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2495 # 123456789, the number of bytes would be counted as 9, even though an
2496 # int64 only holds up to 8 bytes of data.
2497 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2498 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2499 # and time zone are either specified elsewhere or are not significant. The date
2500 # is relative to the Proleptic Gregorian Calendar. This can represent:
2501 #
2502 # * A full date, with non-zero year, month and day values
2503 # * A month and day value, with a zero year, e.g. an anniversary
2504 # * A year on its own, with zero month and day values
2505 # * A year and month value, with a zero day, e.g. a credit card expiration date
2506 #
2507 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
2508 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2509 # a year.
2510 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2511 # month and day.
2512 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2513 # if specifying a year by itself or a year and month where the day is not
2514 # significant.
2515 },
2516 &quot;stringValue&quot;: &quot;A String&quot;, # string
2517 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2518 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2519 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2520 # types are google.type.Date and `google.protobuf.Timestamp`.
2521 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2522 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2523 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2524 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2525 # allow the value 60 if it allows leap-seconds.
2526 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2527 },
2528 &quot;booleanValue&quot;: True or False, # boolean
2529 &quot;floatValue&quot;: 3.14, # float
2530 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07002531 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002532 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
2533 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Bu Sun Kim65020912020-05-20 12:08:20 -07002534 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002535 &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 -07002536 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002537 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002538 },
2539 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002540 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002541 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002542 ],
2543 },
2544 },
2545 &quot;locationId&quot;: &quot;A String&quot;, # The geographic location to process de-identification. Reserved for future
2546 # extensions.
2547 }
2548
2549 x__xgafv: string, V1 error format.
2550 Allowed values
2551 1 - v1 error format
2552 2 - v2 error format
2553
2554Returns:
2555 An object of the form:
2556
2557 { # Results of de-identifying a ContentItem.
Bu Sun Kim65020912020-05-20 12:08:20 -07002558 &quot;overview&quot;: { # Overview of the modifications that occurred. # An overview of the changes that were made on the `item`.
2559 &quot;transformationSummaries&quot;: [ # Transformations applied to the dataset.
2560 { # Summary of a single transformation.
2561 # Only one of &#x27;transformation&#x27;, &#x27;field_transformation&#x27;, or &#x27;record_suppress&#x27;
2562 # will be set.
2563 &quot;fieldTransformations&quot;: [ # The field transformation that was applied.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002564 # If multiple field transformations are requested for a single field,
2565 # this list will contain all of them; otherwise, only one is supplied.
2566 { # The transformation to apply to the field.
Bu Sun Kim65020912020-05-20 12:08:20 -07002567 &quot;fields&quot;: [ # Required. Input field(s) to apply the transformation to.
Dan O'Mearadd494642020-05-01 07:42:23 -07002568 { # General identifier of a data field in a storage service.
Bu Sun Kim65020912020-05-20 12:08:20 -07002569 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Dan O'Mearadd494642020-05-01 07:42:23 -07002570 },
2571 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002572 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and # Treat the contents of the field as free text, and selectively
Dan O'Mearadd494642020-05-01 07:42:23 -07002573 # transform content that matches an `InfoType`.
2574 # apply various `PrimitiveTransformation`s to each finding, where the
2575 # transformation is applied to only values that were identified as a specific
2576 # info_type.
Bu Sun Kim65020912020-05-20 12:08:20 -07002577 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one
Dan O'Mearadd494642020-05-01 07:42:23 -07002578 # for a given infoType.
2579 { # A transformation to apply to text that is identified as a specific
2580 # info_type.
Bu Sun Kim65020912020-05-20 12:08:20 -07002581 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
2582 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
2583 # portion of the value.
2584 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
2585 },
2586 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
2587 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
2588 # to learn more.
2589 &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.
2590 # If set, must also set cryptoKey. If set, shift will be consistent for the
2591 # given context.
2592 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2593 },
2594 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
2595 # range (inclusive ends). Negative means shift to earlier in time. Must not
2596 # be more than 365250 days (1000 years) each direction.
2597 #
2598 # For example, 3 means shift date to at most 3 days into the future.
2599 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
2600 &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
2601 # results in the same shift for the same context and crypto_key. If
2602 # set, must also set context. Can only be applied to table items.
Dan O'Mearadd494642020-05-01 07:42:23 -07002603 # a key encryption key (KEK) stored by KMS).
2604 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
2605 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
2606 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07002607 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
Dan O'Mearadd494642020-05-01 07:42:23 -07002608 # leaking the key. Choose another type of key if possible.
Bu Sun Kim65020912020-05-20 12:08:20 -07002609 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
Dan O'Mearadd494642020-05-01 07:42:23 -07002610 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002611 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
Dan O'Mearadd494642020-05-01 07:42:23 -07002612 # It will be discarded after the request finishes.
Bu Sun Kim65020912020-05-20 12:08:20 -07002613 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
Dan O'Mearadd494642020-05-01 07:42:23 -07002614 # This is an arbitrary string used to differentiate different keys.
2615 # A unique key is generated per name: two separate `TransientCryptoKey`
2616 # protos share the same generated key if their names are the same.
2617 # When the data crypto key is generated, this name is not used in any way
2618 # (repeating the api call will result in a different key being generated).
2619 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002620 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
2621 # The wrapped key must be a 128/192/256 bit key.
2622 # Authorization requires the following IAM permissions when sending a request
2623 # to perform a crypto transformation using a kms-wrapped crypto key:
2624 # dlp.kms.encrypt
2625 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2626 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2627 },
Dan O'Mearadd494642020-05-01 07:42:23 -07002628 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002629 },
2630 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
2631 },
2632 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
2633 # Uses SHA-256.
2634 # The key size must be either 32 or 64 bytes.
2635 # Outputs a base64 encoded representation of the hashed output
2636 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
2637 # Currently, only string and integer values can be hashed.
2638 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
2639 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
2640 # a key encryption key (KEK) stored by KMS).
2641 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
2642 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
2643 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07002644 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
2645 # leaking the key. Choose another type of key if possible.
2646 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2647 },
2648 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
2649 # It will be discarded after the request finishes.
2650 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
2651 # This is an arbitrary string used to differentiate different keys.
2652 # A unique key is generated per name: two separate `TransientCryptoKey`
2653 # protos share the same generated key if their names are the same.
2654 # When the data crypto key is generated, this name is not used in any way
2655 # (repeating the api call will result in a different key being generated).
2656 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002657 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
2658 # The wrapped key must be a 128/192/256 bit key.
2659 # Authorization requires the following IAM permissions when sending a request
2660 # to perform a crypto transformation using a kms-wrapped crypto key:
2661 # dlp.kms.encrypt
2662 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2663 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2664 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002665 },
2666 },
2667 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
2668 # (FPE) with the FFX mode of operation; however when used in the
2669 # `ReidentifyContent` API method, it serves the opposite function by reversing
2670 # the surrogate back into the original identifier. The identifier must be
2671 # encoded as ASCII. For a given crypto key and context, the same identifier
2672 # will be replaced with the same surrogate. Identifiers must be at least two
2673 # characters long. In the case that the identifier is the empty string, it will
2674 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
2675 # more.
2676 #
2677 # Note: We recommend using CryptoDeterministicConfig for all use cases which
2678 # do not require preserving the input alphabet space and size, plus warrant
2679 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07002680 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
2681 # This annotation will be applied to the surrogate by prefixing it with
2682 # the name of the custom infoType followed by the number of
2683 # characters comprising the surrogate. The following scheme defines the
2684 # format: info_type_name(surrogate_character_count):surrogate
Dan O'Mearadd494642020-05-01 07:42:23 -07002685 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002686 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
2687 # the surrogate is &#x27;abc&#x27;, the full replacement value
2688 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
2689 #
2690 # This annotation identifies the surrogate when inspecting content using the
2691 # custom infoType
2692 # [`SurrogateType`](/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
2693 # This facilitates reversal of the surrogate when it occurs in free text.
2694 #
2695 # In order for inspection to work properly, the name of this infoType must
2696 # not occur naturally anywhere in your data; otherwise, inspection may
2697 # find a surrogate that does not correspond to an actual identifier.
2698 # Therefore, choose your custom infoType name carefully after considering
2699 # what your data looks like. One way to select a name that has a high chance
2700 # of yielding reliable detection is to include one or more unicode characters
2701 # that are highly improbable to exist in your data.
2702 # For example, assuming your data is entered from a regular ASCII keyboard,
2703 # the symbol with the hex code point 29DD might be used like so:
2704 # ⧝MY_TOKEN_TYPE
2705 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
2706 # creating a CustomInfoType, or one of the names listed
2707 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
2708 # a built-in type. InfoType names should conform to the pattern
2709 # `[a-zA-Z0-9_]{1,64}`.
2710 },
2711 &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
2712 # identifier in two different contexts won&#x27;t be given the same surrogate. If
2713 # the context is not set, a default tweak will be used.
2714 #
Dan O'Mearadd494642020-05-01 07:42:23 -07002715 # If the context is set but:
2716 #
2717 # 1. there is no record present when transforming a given value or
Bu Sun Kim65020912020-05-20 12:08:20 -07002718 # 1. the field is not present when transforming a given value,
Dan O'Mearadd494642020-05-01 07:42:23 -07002719 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002720 # a default tweak will be used.
Dan O'Mearadd494642020-05-01 07:42:23 -07002721 #
2722 # Note that case (1) is expected when an `InfoTypeTransformation` is
2723 # applied to both structured and non-structured `ContentItem`s.
Bu Sun Kim65020912020-05-20 12:08:20 -07002724 # Currently, the referenced field may be of value type integer or string.
2725 #
2726 # The tweak is constructed as a sequence of bytes in big endian byte order
2727 # such that:
2728 #
2729 # - a 64 bit integer is encoded followed by a single byte of value 1
2730 # - a string is encoded in UTF-8 format followed by a single byte of value 2
2731 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Dan O'Mearadd494642020-05-01 07:42:23 -07002732 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002733 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
2734 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
2735 # a key encryption key (KEK) stored by KMS).
2736 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
2737 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
2738 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07002739 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
2740 # leaking the key. Choose another type of key if possible.
2741 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2742 },
2743 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
2744 # It will be discarded after the request finishes.
2745 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
2746 # This is an arbitrary string used to differentiate different keys.
2747 # A unique key is generated per name: two separate `TransientCryptoKey`
2748 # protos share the same generated key if their names are the same.
2749 # When the data crypto key is generated, this name is not used in any way
2750 # (repeating the api call will result in a different key being generated).
2751 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002752 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
2753 # The wrapped key must be a 128/192/256 bit key.
2754 # Authorization requires the following IAM permissions when sending a request
2755 # to perform a crypto transformation using a kms-wrapped crypto key:
2756 # dlp.kms.encrypt
2757 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2758 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2759 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002760 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002761 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
2762 # that the FFX mode natively supports. This happens before/after
2763 # encryption/decryption.
2764 # Each character listed must appear only once.
2765 # Number of characters must be in the range [2, 95].
2766 # This must be encoded as ASCII.
2767 # The order of characters does not matter.
2768 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07002769 },
2770 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
2771 # input. Outputs a base64 encoded representation of the encrypted output.
2772 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
2773 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
Dan O'Mearadd494642020-05-01 07:42:23 -07002774 # This annotation will be applied to the surrogate by prefixing it with
2775 # the name of the custom info type followed by the number of
2776 # characters comprising the surrogate. The following scheme defines the
2777 # format: {info type name}({surrogate character count}):{surrogate}
2778 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002779 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
2780 # the surrogate is &#x27;abc&#x27;, the full replacement value
2781 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
Dan O'Mearadd494642020-05-01 07:42:23 -07002782 #
2783 # This annotation identifies the surrogate when inspecting content using the
Bu Sun Kim65020912020-05-20 12:08:20 -07002784 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
Dan O'Mearadd494642020-05-01 07:42:23 -07002785 # surrogate when it occurs in free text.
2786 #
2787 # Note: For record transformations where the entire cell in a table is being
2788 # transformed, surrogates are not mandatory. Surrogates are used to denote
2789 # the location of the token and are necessary for re-identification in free
2790 # form text.
2791 #
2792 # In order for inspection to work properly, the name of this info type must
2793 # not occur naturally anywhere in your data; otherwise, inspection may either
2794 #
2795 # - reverse a surrogate that does not correspond to an actual identifier
2796 # - be unable to parse the surrogate and result in an error
2797 #
2798 # Therefore, choose your custom info type name carefully after considering
2799 # what your data looks like. One way to select a name that has a high chance
2800 # of yielding reliable detection is to include one or more unicode characters
2801 # that are highly improbable to exist in your data.
2802 # For example, assuming your data is entered from a regular ASCII keyboard,
2803 # the symbol with the hex code point 29DD might be used like so:
2804 # ⧝MY_TOKEN_TYPE.
Bu Sun Kim65020912020-05-20 12:08:20 -07002805 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
Dan O'Mearadd494642020-05-01 07:42:23 -07002806 # creating a CustomInfoType, or one of the names listed
2807 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
2808 # a built-in type. InfoType names should conform to the pattern
2809 # `[a-zA-Z0-9_]{1,64}`.
2810 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002811 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
2812 # referential integrity such that the same identifier in two different
2813 # contexts will be given a distinct surrogate. The context is appended to
2814 # plaintext value being encrypted. On decryption the provided context is
2815 # validated against the value used during encryption. If a context was
2816 # provided during encryption, same context must be provided during decryption
2817 # as well.
Dan O'Mearadd494642020-05-01 07:42:23 -07002818 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002819 # If the context is not set, plaintext would be used as is for encryption.
Dan O'Mearadd494642020-05-01 07:42:23 -07002820 # If the context is set but:
2821 #
2822 # 1. there is no record present when transforming a given value or
Bu Sun Kim65020912020-05-20 12:08:20 -07002823 # 2. the field is not present when transforming a given value,
Dan O'Mearadd494642020-05-01 07:42:23 -07002824 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002825 # plaintext would be used as is for encryption.
Dan O'Mearadd494642020-05-01 07:42:23 -07002826 #
2827 # Note that case (1) is expected when an `InfoTypeTransformation` is
2828 # applied to both structured and non-structured `ContentItem`s.
Bu Sun Kim65020912020-05-20 12:08:20 -07002829 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Dan O'Mearadd494642020-05-01 07:42:23 -07002830 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002831 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
2832 # a key encryption key (KEK) stored by KMS).
2833 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
2834 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
2835 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07002836 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
2837 # leaking the key. Choose another type of key if possible.
2838 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2839 },
2840 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
2841 # It will be discarded after the request finishes.
2842 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
2843 # This is an arbitrary string used to differentiate different keys.
2844 # A unique key is generated per name: two separate `TransientCryptoKey`
2845 # protos share the same generated key if their names are the same.
2846 # When the data crypto key is generated, this name is not used in any way
2847 # (repeating the api call will result in a different key being generated).
2848 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002849 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
2850 # The wrapped key must be a 128/192/256 bit key.
2851 # Authorization requires the following IAM permissions when sending a request
2852 # to perform a crypto transformation using a kms-wrapped crypto key:
2853 # dlp.kms.encrypt
2854 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2855 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2856 },
Dan O'Mearadd494642020-05-01 07:42:23 -07002857 },
2858 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002859 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
Dan O'Mearadd494642020-05-01 07:42:23 -07002860 # replacement values are dynamically provided by the user for custom behavior,
2861 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
2862 # This can be used on
2863 # data of type: number, long, string, timestamp.
2864 # If the bound `Value` type differs from the type of data being transformed, we
2865 # will first attempt converting the type of the data to be transformed to match
2866 # the type of the bound before comparing.
2867 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07002868 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
Dan O'Mearadd494642020-05-01 07:42:23 -07002869 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kim65020912020-05-20 12:08:20 -07002870 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Replacement value for this bucket. If not provided
2871 # the default behavior will be to hyphenate the min-max range.
2872 # Note that for the purposes of inspection or transformation, the number
2873 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2874 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2875 # 123456789, the number of bytes would be counted as 9, even though an
2876 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07002877 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2878 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2879 # and time zone are either specified elsewhere or are not significant. The date
2880 # is relative to the Proleptic Gregorian Calendar. This can represent:
2881 #
2882 # * A full date, with non-zero year, month and day values
2883 # * A month and day value, with a zero year, e.g. an anniversary
2884 # * A year on its own, with zero month and day values
2885 # * A year and month value, with a zero day, e.g. a credit card expiration date
2886 #
2887 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
2888 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2889 # a year.
2890 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2891 # month and day.
2892 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2893 # if specifying a year by itself or a year and month where the day is not
2894 # significant.
2895 },
2896 &quot;stringValue&quot;: &quot;A String&quot;, # string
2897 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2898 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2899 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2900 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002901 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2902 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2903 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002904 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2905 # allow the value 60 if it allows leap-seconds.
2906 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07002907 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002908 &quot;booleanValue&quot;: True or False, # boolean
2909 &quot;floatValue&quot;: 3.14, # float
2910 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2911 },
2912 &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
2913 # used.
2914 # Note that for the purposes of inspection or transformation, the number
2915 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2916 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2917 # 123456789, the number of bytes would be counted as 9, even though an
2918 # int64 only holds up to 8 bytes of data.
2919 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2920 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2921 # and time zone are either specified elsewhere or are not significant. The date
2922 # is relative to the Proleptic Gregorian Calendar. This can represent:
2923 #
2924 # * A full date, with non-zero year, month and day values
2925 # * A month and day value, with a zero year, e.g. an anniversary
2926 # * A year on its own, with zero month and day values
2927 # * A year and month value, with a zero day, e.g. a credit card expiration date
2928 #
2929 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
2930 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2931 # a year.
2932 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2933 # month and day.
2934 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2935 # if specifying a year by itself or a year and month where the day is not
2936 # significant.
2937 },
2938 &quot;stringValue&quot;: &quot;A String&quot;, # string
2939 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2940 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2941 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2942 # types are google.type.Date and `google.protobuf.Timestamp`.
2943 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2944 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2945 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2946 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2947 # allow the value 60 if it allows leap-seconds.
2948 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2949 },
2950 &quot;booleanValue&quot;: True or False, # boolean
2951 &quot;floatValue&quot;: 3.14, # float
2952 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2953 },
2954 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
2955 # Note that for the purposes of inspection or transformation, the number
2956 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
2957 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
2958 # 123456789, the number of bytes would be counted as 9, even though an
2959 # int64 only holds up to 8 bytes of data.
2960 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2961 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
2962 # and time zone are either specified elsewhere or are not significant. The date
2963 # is relative to the Proleptic Gregorian Calendar. This can represent:
2964 #
2965 # * A full date, with non-zero year, month and day values
2966 # * A month and day value, with a zero year, e.g. an anniversary
2967 # * A year on its own, with zero month and day values
2968 # * A year and month value, with a zero day, e.g. a credit card expiration date
2969 #
2970 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
2971 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
2972 # a year.
2973 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
2974 # month and day.
2975 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
2976 # if specifying a year by itself or a year and month where the day is not
2977 # significant.
2978 },
2979 &quot;stringValue&quot;: &quot;A String&quot;, # string
2980 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2981 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
2982 # or are specified elsewhere. An API may choose to allow leap seconds. Related
2983 # types are google.type.Date and `google.protobuf.Timestamp`.
2984 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2985 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2986 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2987 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2988 # allow the value 60 if it allows leap-seconds.
2989 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2990 },
2991 &quot;booleanValue&quot;: True or False, # boolean
2992 &quot;floatValue&quot;: 3.14, # float
2993 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Dan O'Mearadd494642020-05-01 07:42:23 -07002994 },
2995 },
2996 ],
2997 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002998 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
2999 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
3000 # output would be &#x27;My phone number is &#x27;.
3001 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003002 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
3003 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
Dan O'Mearadd494642020-05-01 07:42:23 -07003004 # Note that for the purposes of inspection or transformation, the number
Bu Sun Kim65020912020-05-20 12:08:20 -07003005 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3006 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
Dan O'Mearadd494642020-05-01 07:42:23 -07003007 # 123456789, the number of bytes would be counted as 9, even though an
3008 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07003009 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3010 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
Dan O'Mearadd494642020-05-01 07:42:23 -07003011 # and time zone are either specified elsewhere or are not significant. The date
3012 # is relative to the Proleptic Gregorian Calendar. This can represent:
3013 #
3014 # * A full date, with non-zero year, month and day values
3015 # * A month and day value, with a zero year, e.g. an anniversary
3016 # * A year on its own, with zero month and day values
3017 # * A year and month value, with a zero day, e.g. a credit card expiration date
3018 #
3019 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07003020 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3021 # a year.
3022 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
Dan O'Mearadd494642020-05-01 07:42:23 -07003023 # month and day.
Bu Sun Kim65020912020-05-20 12:08:20 -07003024 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
Dan O'Mearadd494642020-05-01 07:42:23 -07003025 # if specifying a year by itself or a year and month where the day is not
3026 # significant.
Dan O'Mearadd494642020-05-01 07:42:23 -07003027 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003028 &quot;stringValue&quot;: &quot;A String&quot;, # string
3029 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3030 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3031 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3032 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07003033 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3034 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3035 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003036 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3037 # allow the value 60 if it allows leap-seconds.
3038 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07003039 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003040 &quot;booleanValue&quot;: True or False, # boolean
3041 &quot;floatValue&quot;: 3.14, # float
3042 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Dan O'Mearadd494642020-05-01 07:42:23 -07003043 },
3044 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003045 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
3046 # Bucketing transformation can provide all of this functionality,
3047 # but requires more configuration. This message is provided as a convenience to
3048 # the user for simple bucketing strategies.
3049 #
3050 # The transformed value will be a hyphenated string of
3051 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
3052 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
3053 #
3054 # This can be used on data of type: double, long.
3055 #
3056 # If the bound Value type differs from the type of data
3057 # being transformed, we will first attempt converting the type of the data to
3058 # be transformed to match the type of the bound before comparing.
3059 #
3060 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07003061 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
3062 # grouped together into a single bucket; for example if `upper_bound` = 89,
3063 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
3064 # Note that for the purposes of inspection or transformation, the number
3065 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3066 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3067 # 123456789, the number of bytes would be counted as 9, even though an
3068 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07003069 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3070 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3071 # and time zone are either specified elsewhere or are not significant. The date
3072 # is relative to the Proleptic Gregorian Calendar. This can represent:
3073 #
3074 # * A full date, with non-zero year, month and day values
3075 # * A month and day value, with a zero year, e.g. an anniversary
3076 # * A year on its own, with zero month and day values
3077 # * A year and month value, with a zero day, e.g. a credit card expiration date
3078 #
3079 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3080 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3081 # a year.
3082 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3083 # month and day.
3084 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3085 # if specifying a year by itself or a year and month where the day is not
3086 # significant.
3087 },
3088 &quot;stringValue&quot;: &quot;A String&quot;, # string
3089 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3090 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3091 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3092 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07003093 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3094 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3095 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
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 Kim65020912020-05-20 12:08:20 -07003099 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003100 &quot;booleanValue&quot;: True or False, # boolean
3101 &quot;floatValue&quot;: 3.14, # float
3102 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07003103 },
3104 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
3105 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
3106 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
3107 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003108 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
3109 # grouped together into a single bucket; for example if `lower_bound` = 10,
3110 # then all values less than 10 are replaced with the value &quot;-10&quot;.
3111 # Note that for the purposes of inspection or transformation, the number
3112 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3113 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3114 # 123456789, the number of bytes would be counted as 9, even though an
3115 # int64 only holds up to 8 bytes of data.
3116 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3117 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3118 # and time zone are either specified elsewhere or are not significant. The date
3119 # is relative to the Proleptic Gregorian Calendar. This can represent:
3120 #
3121 # * A full date, with non-zero year, month and day values
3122 # * A month and day value, with a zero year, e.g. an anniversary
3123 # * A year on its own, with zero month and day values
3124 # * A year and month value, with a zero day, e.g. a credit card expiration date
3125 #
3126 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3127 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3128 # a year.
3129 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3130 # month and day.
3131 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3132 # if specifying a year by itself or a year and month where the day is not
3133 # significant.
3134 },
3135 &quot;stringValue&quot;: &quot;A String&quot;, # string
3136 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3137 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3138 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3139 # types are google.type.Date and `google.protobuf.Timestamp`.
3140 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3141 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3142 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3143 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3144 # allow the value 60 if it allows leap-seconds.
3145 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3146 },
3147 &quot;booleanValue&quot;: True or False, # boolean
3148 &quot;floatValue&quot;: 3.14, # float
3149 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3150 },
3151 },
3152 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
3153 # fixed character. Masking can start from the beginning or end of the string.
3154 # This can be used on data of any type (numbers, longs, and so on) and when
3155 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
3156 # type. (This allows you to take a long like 123 and modify it to a string like
3157 # **3.
3158 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
3159 # characters. For example, if the input string is `555-555-5555` and you
3160 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
3161 # returns `***-**5-5555`.
3162 { # Characters to skip when doing deidentification of a value. These will be left
3163 # alone and skipped.
3164 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
3165 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
3166 # punctuation.
3167 },
3168 ],
3169 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
3170 # masked. Skipped characters do not count towards this tally.
3171 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
3172 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
3173 # code or credit card number. This string must have a length of 1. If not
3174 # supplied, this value defaults to `*` for strings, and `0` for digits.
3175 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
3176 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
3177 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
3178 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
3179 # is `true`, then the string `12345` is masked as `12***`.
Bu Sun Kim65020912020-05-20 12:08:20 -07003180 },
3181 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003182 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause
3183 # this transformation to apply to all findings that correspond to
3184 # infoTypes that were requested in `InspectConfig`.
3185 { # Type of information detected by the API.
3186 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
3187 # creating a CustomInfoType, or one of the names listed
3188 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
3189 # a built-in type. InfoType names should conform to the pattern
3190 # `[a-zA-Z0-9_]{1,64}`.
3191 },
3192 ],
Dan O'Mearadd494642020-05-01 07:42:23 -07003193 },
3194 ],
3195 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003196 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Apply the transformation to the entire field.
3197 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
3198 # portion of the value.
3199 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
3200 },
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;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
3215 &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
3216 # results in the same shift for the same context and crypto_key. If
3217 # set, must also set context. Can only be applied to table items.
3218 # a key encryption key (KEK) stored by KMS).
3219 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
3220 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
3221 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07003222 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
3223 # leaking the key. Choose another type of key if possible.
3224 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3225 },
3226 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
3227 # It will be discarded after the request finishes.
3228 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
3229 # This is an arbitrary string used to differentiate different keys.
3230 # A unique key is generated per name: two separate `TransientCryptoKey`
3231 # protos share the same generated key if their names are the same.
3232 # When the data crypto key is generated, this name is not used in any way
3233 # (repeating the api call will result in a different key being generated).
3234 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003235 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
3236 # The wrapped key must be a 128/192/256 bit key.
3237 # Authorization requires the following IAM permissions when sending a request
3238 # to perform a crypto transformation using a kms-wrapped crypto key:
3239 # dlp.kms.encrypt
3240 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3241 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3242 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003243 },
3244 },
3245 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
3246 },
3247 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
3248 # Uses SHA-256.
3249 # The key size must be either 32 or 64 bytes.
3250 # Outputs a base64 encoded representation of the hashed output
3251 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
3252 # Currently, only string and integer values can be hashed.
3253 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
3254 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
3255 # a key encryption key (KEK) stored by KMS).
3256 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
3257 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
3258 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07003259 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
3260 # leaking the key. Choose another type of key if possible.
3261 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3262 },
3263 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
3264 # It will be discarded after the request finishes.
3265 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
3266 # This is an arbitrary string used to differentiate different keys.
3267 # A unique key is generated per name: two separate `TransientCryptoKey`
3268 # protos share the same generated key if their names are the same.
3269 # When the data crypto key is generated, this name is not used in any way
3270 # (repeating the api call will result in a different key being generated).
3271 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003272 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
3273 # The wrapped key must be a 128/192/256 bit key.
3274 # Authorization requires the following IAM permissions when sending a request
3275 # to perform a crypto transformation using a kms-wrapped crypto key:
3276 # dlp.kms.encrypt
3277 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3278 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3279 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003280 },
3281 },
3282 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
3283 # (FPE) with the FFX mode of operation; however when used in the
3284 # `ReidentifyContent` API method, it serves the opposite function by reversing
3285 # the surrogate back into the original identifier. The identifier must be
3286 # encoded as ASCII. For a given crypto key and context, the same identifier
3287 # will be replaced with the same surrogate. Identifiers must be at least two
3288 # characters long. In the case that the identifier is the empty string, it will
3289 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
3290 # more.
3291 #
3292 # Note: We recommend using CryptoDeterministicConfig for all use cases which
3293 # do not require preserving the input alphabet space and size, plus warrant
3294 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07003295 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
3296 # This annotation will be applied to the surrogate by prefixing it with
3297 # the name of the custom infoType followed by the number of
3298 # characters comprising the surrogate. The following scheme defines the
3299 # format: info_type_name(surrogate_character_count):surrogate
3300 #
3301 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
3302 # the surrogate is &#x27;abc&#x27;, the full replacement value
3303 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
3304 #
3305 # This annotation identifies the surrogate when inspecting content using the
3306 # custom infoType
3307 # [`SurrogateType`](/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
3308 # This facilitates reversal of the surrogate when it occurs in free text.
3309 #
3310 # In order for inspection to work properly, the name of this infoType must
3311 # not occur naturally anywhere in your data; otherwise, inspection may
3312 # find a surrogate that does not correspond to an actual identifier.
3313 # Therefore, choose your custom infoType name carefully after considering
3314 # what your data looks like. One way to select a name that has a high chance
3315 # of yielding reliable detection is to include one or more unicode characters
3316 # that are highly improbable to exist in your data.
3317 # For example, assuming your data is entered from a regular ASCII keyboard,
3318 # the symbol with the hex code point 29DD might be used like so:
3319 # ⧝MY_TOKEN_TYPE
3320 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
3321 # creating a CustomInfoType, or one of the names listed
3322 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
3323 # a built-in type. InfoType names should conform to the pattern
3324 # `[a-zA-Z0-9_]{1,64}`.
3325 },
3326 &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
3327 # identifier in two different contexts won&#x27;t be given the same surrogate. If
3328 # the context is not set, a default tweak will be used.
3329 #
3330 # If the context is set but:
3331 #
3332 # 1. there is no record present when transforming a given value or
3333 # 1. the field is not present when transforming a given value,
3334 #
3335 # a default tweak will be used.
3336 #
3337 # Note that case (1) is expected when an `InfoTypeTransformation` is
3338 # applied to both structured and non-structured `ContentItem`s.
3339 # Currently, the referenced field may be of value type integer or string.
3340 #
3341 # The tweak is constructed as a sequence of bytes in big endian byte order
3342 # such that:
3343 #
3344 # - a 64 bit integer is encoded followed by a single byte of value 1
3345 # - a string is encoded in UTF-8 format followed by a single byte of value 2
3346 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3347 },
3348 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
3349 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
3350 # a key encryption key (KEK) stored by KMS).
3351 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
3352 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
3353 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07003354 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
3355 # leaking the key. Choose another type of key if possible.
3356 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3357 },
3358 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
3359 # It will be discarded after the request finishes.
3360 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
3361 # This is an arbitrary string used to differentiate different keys.
3362 # A unique key is generated per name: two separate `TransientCryptoKey`
3363 # protos share the same generated key if their names are the same.
3364 # When the data crypto key is generated, this name is not used in any way
3365 # (repeating the api call will result in a different key being generated).
3366 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003367 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
3368 # The wrapped key must be a 128/192/256 bit key.
3369 # Authorization requires the following IAM permissions when sending a request
3370 # to perform a crypto transformation using a kms-wrapped crypto key:
3371 # dlp.kms.encrypt
3372 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3373 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3374 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003375 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003376 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
3377 # that the FFX mode natively supports. This happens before/after
3378 # encryption/decryption.
3379 # Each character listed must appear only once.
3380 # Number of characters must be in the range [2, 95].
3381 # This must be encoded as ASCII.
3382 # The order of characters does not matter.
3383 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07003384 },
3385 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
3386 # input. Outputs a base64 encoded representation of the encrypted output.
3387 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
3388 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
3389 # This annotation will be applied to the surrogate by prefixing it with
3390 # the name of the custom info type followed by the number of
3391 # characters comprising the surrogate. The following scheme defines the
3392 # format: {info type name}({surrogate character count}):{surrogate}
3393 #
3394 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
3395 # the surrogate is &#x27;abc&#x27;, the full replacement value
3396 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
3397 #
3398 # This annotation identifies the surrogate when inspecting content using the
3399 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
3400 # surrogate when it occurs in free text.
3401 #
3402 # Note: For record transformations where the entire cell in a table is being
3403 # transformed, surrogates are not mandatory. Surrogates are used to denote
3404 # the location of the token and are necessary for re-identification in free
3405 # form text.
3406 #
3407 # In order for inspection to work properly, the name of this info type must
3408 # not occur naturally anywhere in your data; otherwise, inspection may either
3409 #
3410 # - reverse a surrogate that does not correspond to an actual identifier
3411 # - be unable to parse the surrogate and result in an error
3412 #
3413 # Therefore, choose your custom info type name carefully after considering
3414 # what your data looks like. One way to select a name that has a high chance
3415 # of yielding reliable detection is to include one or more unicode characters
3416 # that are highly improbable to exist in your data.
3417 # For example, assuming your data is entered from a regular ASCII keyboard,
3418 # the symbol with the hex code point 29DD might be used like so:
3419 # ⧝MY_TOKEN_TYPE.
3420 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
3421 # creating a CustomInfoType, or one of the names listed
3422 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
3423 # a built-in type. InfoType names should conform to the pattern
3424 # `[a-zA-Z0-9_]{1,64}`.
3425 },
3426 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
3427 # referential integrity such that the same identifier in two different
3428 # contexts will be given a distinct surrogate. The context is appended to
3429 # plaintext value being encrypted. On decryption the provided context is
3430 # validated against the value used during encryption. If a context was
3431 # provided during encryption, same context must be provided during decryption
3432 # as well.
3433 #
3434 # If the context is not set, plaintext would be used as is for encryption.
3435 # If the context is set but:
3436 #
3437 # 1. there is no record present when transforming a given value or
3438 # 2. the field is not present when transforming a given value,
3439 #
3440 # plaintext would be used as is for encryption.
3441 #
3442 # Note that case (1) is expected when an `InfoTypeTransformation` is
3443 # applied to both structured and non-structured `ContentItem`s.
3444 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3445 },
3446 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
3447 # a key encryption key (KEK) stored by KMS).
3448 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
3449 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
3450 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07003451 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
3452 # leaking the key. Choose another type of key if possible.
3453 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3454 },
3455 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
3456 # It will be discarded after the request finishes.
3457 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
3458 # This is an arbitrary string used to differentiate different keys.
3459 # A unique key is generated per name: two separate `TransientCryptoKey`
3460 # protos share the same generated key if their names are the same.
3461 # When the data crypto key is generated, this name is not used in any way
3462 # (repeating the api call will result in a different key being generated).
3463 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003464 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
3465 # The wrapped key must be a 128/192/256 bit key.
3466 # Authorization requires the following IAM permissions when sending a request
3467 # to perform a crypto transformation using a kms-wrapped crypto key:
3468 # dlp.kms.encrypt
3469 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3470 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3471 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003472 },
3473 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003474 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
3475 # replacement values are dynamically provided by the user for custom behavior,
3476 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
3477 # This can be used on
3478 # data of type: number, long, string, timestamp.
3479 # If the bound `Value` type differs from the type of data being transformed, we
3480 # will first attempt converting the type of the data to be transformed to match
3481 # the type of the bound before comparing.
3482 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
3483 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
3484 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kim65020912020-05-20 12:08:20 -07003485 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Replacement value for this bucket. If not provided
3486 # the default behavior will be to hyphenate the min-max range.
3487 # Note that for the purposes of inspection or transformation, the number
3488 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3489 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3490 # 123456789, the number of bytes would be counted as 9, even though an
3491 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07003492 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3493 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3494 # and time zone are either specified elsewhere or are not significant. The date
3495 # is relative to the Proleptic Gregorian Calendar. This can represent:
3496 #
3497 # * A full date, with non-zero year, month and day values
3498 # * A month and day value, with a zero year, e.g. an anniversary
3499 # * A year on its own, with zero month and day values
3500 # * A year and month value, with a zero day, e.g. a credit card expiration date
3501 #
3502 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3503 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3504 # a year.
3505 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3506 # month and day.
3507 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3508 # if specifying a year by itself or a year and month where the day is not
3509 # significant.
3510 },
3511 &quot;stringValue&quot;: &quot;A String&quot;, # string
3512 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3513 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3514 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3515 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07003516 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3517 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3518 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003519 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3520 # allow the value 60 if it allows leap-seconds.
3521 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07003522 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003523 &quot;booleanValue&quot;: True or False, # boolean
3524 &quot;floatValue&quot;: 3.14, # float
3525 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3526 },
3527 &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
3528 # used.
3529 # Note that for the purposes of inspection or transformation, the number
3530 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3531 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3532 # 123456789, the number of bytes would be counted as 9, even though an
3533 # int64 only holds up to 8 bytes of data.
3534 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3535 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3536 # and time zone are either specified elsewhere or are not significant. The date
3537 # is relative to the Proleptic Gregorian Calendar. This can represent:
3538 #
3539 # * A full date, with non-zero year, month and day values
3540 # * A month and day value, with a zero year, e.g. an anniversary
3541 # * A year on its own, with zero month and day values
3542 # * A year and month value, with a zero day, e.g. a credit card expiration date
3543 #
3544 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3545 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3546 # a year.
3547 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3548 # month and day.
3549 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3550 # if specifying a year by itself or a year and month where the day is not
3551 # significant.
3552 },
3553 &quot;stringValue&quot;: &quot;A String&quot;, # string
3554 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3555 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3556 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3557 # types are google.type.Date and `google.protobuf.Timestamp`.
3558 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3559 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3560 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3561 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3562 # allow the value 60 if it allows leap-seconds.
3563 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3564 },
3565 &quot;booleanValue&quot;: True or False, # boolean
3566 &quot;floatValue&quot;: 3.14, # float
3567 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3568 },
3569 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
3570 # Note that for the purposes of inspection or transformation, the number
3571 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3572 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3573 # 123456789, the number of bytes would be counted as 9, even though an
3574 # int64 only holds up to 8 bytes of data.
3575 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3576 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3577 # and time zone are either specified elsewhere or are not significant. The date
3578 # is relative to the Proleptic Gregorian Calendar. This can represent:
3579 #
3580 # * A full date, with non-zero year, month and day values
3581 # * A month and day value, with a zero year, e.g. an anniversary
3582 # * A year on its own, with zero month and day values
3583 # * A year and month value, with a zero day, e.g. a credit card expiration date
3584 #
3585 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3586 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3587 # a year.
3588 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3589 # month and day.
3590 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3591 # if specifying a year by itself or a year and month where the day is not
3592 # significant.
3593 },
3594 &quot;stringValue&quot;: &quot;A String&quot;, # string
3595 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3596 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3597 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3598 # types are google.type.Date and `google.protobuf.Timestamp`.
3599 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3600 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3601 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3602 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3603 # allow the value 60 if it allows leap-seconds.
3604 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3605 },
3606 &quot;booleanValue&quot;: True or False, # boolean
3607 &quot;floatValue&quot;: 3.14, # float
3608 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07003609 },
3610 },
3611 ],
3612 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003613 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
3614 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
3615 # output would be &#x27;My phone number is &#x27;.
3616 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003617 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
3618 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
3619 # Note that for the purposes of inspection or transformation, the number
3620 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3621 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3622 # 123456789, the number of bytes would be counted as 9, even though an
3623 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07003624 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3625 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3626 # and time zone are either specified elsewhere or are not significant. The date
3627 # is relative to the Proleptic Gregorian Calendar. This can represent:
3628 #
3629 # * A full date, with non-zero year, month and day values
3630 # * A month and day value, with a zero year, e.g. an anniversary
3631 # * A year on its own, with zero month and day values
3632 # * A year and month value, with a zero day, e.g. a credit card expiration date
3633 #
3634 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3635 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3636 # a year.
3637 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3638 # month and day.
3639 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3640 # if specifying a year by itself or a year and month where the day is not
3641 # significant.
3642 },
3643 &quot;stringValue&quot;: &quot;A String&quot;, # string
3644 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3645 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3646 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3647 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07003648 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3649 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3650 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003651 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3652 # allow the value 60 if it allows leap-seconds.
3653 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07003654 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003655 &quot;booleanValue&quot;: True or False, # boolean
3656 &quot;floatValue&quot;: 3.14, # float
3657 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07003658 },
3659 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003660 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
3661 # Bucketing transformation can provide all of this functionality,
3662 # but requires more configuration. This message is provided as a convenience to
3663 # the user for simple bucketing strategies.
3664 #
3665 # The transformed value will be a hyphenated string of
3666 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
3667 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
3668 #
3669 # This can be used on data of type: double, long.
3670 #
3671 # If the bound Value type differs from the type of data
3672 # being transformed, we will first attempt converting the type of the data to
3673 # be transformed to match the type of the bound before comparing.
3674 #
3675 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07003676 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
3677 # grouped together into a single bucket; for example if `upper_bound` = 89,
3678 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
3679 # Note that for the purposes of inspection or transformation, the number
3680 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3681 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3682 # 123456789, the number of bytes would be counted as 9, even though an
3683 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07003684 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3685 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3686 # and time zone are either specified elsewhere or are not significant. The date
3687 # is relative to the Proleptic Gregorian Calendar. This can represent:
3688 #
3689 # * A full date, with non-zero year, month and day values
3690 # * A month and day value, with a zero year, e.g. an anniversary
3691 # * A year on its own, with zero month and day values
3692 # * A year and month value, with a zero day, e.g. a credit card expiration date
3693 #
3694 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3695 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3696 # a year.
3697 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3698 # month and day.
3699 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3700 # if specifying a year by itself or a year and month where the day is not
3701 # significant.
3702 },
3703 &quot;stringValue&quot;: &quot;A String&quot;, # string
3704 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3705 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3706 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3707 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07003708 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3709 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3710 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003711 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3712 # allow the value 60 if it allows leap-seconds.
3713 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07003714 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003715 &quot;booleanValue&quot;: True or False, # boolean
3716 &quot;floatValue&quot;: 3.14, # float
3717 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07003718 },
3719 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
3720 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
3721 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
3722 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003723 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
3724 # grouped together into a single bucket; for example if `lower_bound` = 10,
3725 # then all values less than 10 are replaced with the value &quot;-10&quot;.
3726 # Note that for the purposes of inspection or transformation, the number
3727 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3728 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3729 # 123456789, the number of bytes would be counted as 9, even though an
3730 # int64 only holds up to 8 bytes of data.
3731 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3732 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3733 # and time zone are either specified elsewhere or are not significant. The date
3734 # is relative to the Proleptic Gregorian Calendar. This can represent:
3735 #
3736 # * A full date, with non-zero year, month and day values
3737 # * A month and day value, with a zero year, e.g. an anniversary
3738 # * A year on its own, with zero month and day values
3739 # * A year and month value, with a zero day, e.g. a credit card expiration date
3740 #
3741 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3742 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3743 # a year.
3744 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3745 # month and day.
3746 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3747 # if specifying a year by itself or a year and month where the day is not
3748 # significant.
3749 },
3750 &quot;stringValue&quot;: &quot;A String&quot;, # string
3751 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3752 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3753 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3754 # types are google.type.Date and `google.protobuf.Timestamp`.
3755 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3756 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3757 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3758 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3759 # allow the value 60 if it allows leap-seconds.
3760 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3761 },
3762 &quot;booleanValue&quot;: True or False, # boolean
3763 &quot;floatValue&quot;: 3.14, # float
3764 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3765 },
3766 },
3767 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
3768 # fixed character. Masking can start from the beginning or end of the string.
3769 # This can be used on data of any type (numbers, longs, and so on) and when
3770 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
3771 # type. (This allows you to take a long like 123 and modify it to a string like
3772 # **3.
3773 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
3774 # characters. For example, if the input string is `555-555-5555` and you
3775 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
3776 # returns `***-**5-5555`.
3777 { # Characters to skip when doing deidentification of a value. These will be left
3778 # alone and skipped.
3779 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
3780 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
3781 # punctuation.
3782 },
3783 ],
3784 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
3785 # masked. Skipped characters do not count towards this tally.
3786 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
3787 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
3788 # code or credit card number. This string must have a length of 1. If not
3789 # supplied, this value defaults to `*` for strings, and `0` for digits.
3790 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
3791 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
3792 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
3793 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
3794 # is `true`, then the string `12345` is masked as `12***`.
Bu Sun Kim65020912020-05-20 12:08:20 -07003795 },
3796 },
3797 &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
3798 # given `RecordCondition`. The conditions are allowed to reference fields
3799 # that are not used in the actual transformation.
3800 #
3801 # Example Use Cases:
3802 #
3803 # - Apply a different bucket transformation to an age column if the zip code
3804 # column for the same record is within a specific range.
3805 # - Redact a field if the date of birth field is greater than 85.
3806 # a field.
3807 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
3808 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
3809 # only supported value is `AND`.
3810 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
3811 &quot;conditions&quot;: [ # A collection of conditions.
3812 { # The field type of `value` and `field` do not need to match to be
3813 # considered equal, but not all comparisons are possible.
3814 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
3815 # but all other comparisons are invalid with incompatible types.
3816 # A `value` of type:
3817 #
3818 # - `string` can be compared against all other types
3819 # - `boolean` can only be compared against other booleans
3820 # - `integer` can be compared against doubles or a string if the string value
3821 # can be parsed as an integer.
3822 # - `double` can be compared against integers or a string if the string can
3823 # be parsed as a double.
3824 # - `Timestamp` can be compared against strings in RFC 3339 date string
3825 # format.
3826 # - `TimeOfDay` can be compared against timestamps and strings in the format
3827 # of &#x27;HH:mm:ss&#x27;.
3828 #
3829 # If we fail to compare do to type mismatch, a warning will be given and
3830 # the condition will evaluate to false.
Bu Sun Kim65020912020-05-20 12:08:20 -07003831 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
3832 # Note that for the purposes of inspection or transformation, the number
3833 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
3834 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
3835 # 123456789, the number of bytes would be counted as 9, even though an
3836 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07003837 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3838 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
3839 # and time zone are either specified elsewhere or are not significant. The date
3840 # is relative to the Proleptic Gregorian Calendar. This can represent:
3841 #
3842 # * A full date, with non-zero year, month and day values
3843 # * A month and day value, with a zero year, e.g. an anniversary
3844 # * A year on its own, with zero month and day values
3845 # * A year and month value, with a zero day, e.g. a credit card expiration date
3846 #
3847 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
3848 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
3849 # a year.
3850 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
3851 # month and day.
3852 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
3853 # if specifying a year by itself or a year and month where the day is not
3854 # significant.
3855 },
3856 &quot;stringValue&quot;: &quot;A String&quot;, # string
3857 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3858 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
3859 # or are specified elsewhere. An API may choose to allow leap seconds. Related
3860 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07003861 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
3862 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3863 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003864 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
3865 # allow the value 60 if it allows leap-seconds.
3866 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07003867 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003868 &quot;booleanValue&quot;: True or False, # boolean
3869 &quot;floatValue&quot;: 3.14, # float
3870 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07003871 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003872 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
3873 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3874 },
3875 &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 -07003876 },
3877 ],
3878 },
3879 },
3880 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003881 },
3882 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07003883 &quot;transformation&quot;: { # A rule for transforming a value. # The specific transformation these stats apply to.
3884 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
3885 # portion of the value.
3886 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
3887 },
3888 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
3889 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
3890 # to learn more.
3891 &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.
3892 # If set, must also set cryptoKey. If set, shift will be consistent for the
3893 # given context.
3894 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3895 },
3896 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
3897 # range (inclusive ends). Negative means shift to earlier in time. Must not
3898 # be more than 365250 days (1000 years) each direction.
3899 #
3900 # For example, 3 means shift date to at most 3 days into the future.
3901 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
3902 &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
3903 # results in the same shift for the same context and crypto_key. If
3904 # set, must also set context. Can only be applied to table items.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003905 # a key encryption key (KEK) stored by KMS).
3906 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
3907 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
3908 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07003909 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003910 # leaking the key. Choose another type of key if possible.
Bu Sun Kim65020912020-05-20 12:08:20 -07003911 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003912 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003913 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003914 # It will be discarded after the request finishes.
Bu Sun Kim65020912020-05-20 12:08:20 -07003915 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003916 # This is an arbitrary string used to differentiate different keys.
3917 # A unique key is generated per name: two separate `TransientCryptoKey`
3918 # protos share the same generated key if their names are the same.
3919 # When the data crypto key is generated, this name is not used in any way
3920 # (repeating the api call will result in a different key being generated).
3921 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003922 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
3923 # The wrapped key must be a 128/192/256 bit key.
3924 # Authorization requires the following IAM permissions when sending a request
3925 # to perform a crypto transformation using a kms-wrapped crypto key:
3926 # dlp.kms.encrypt
3927 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3928 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3929 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003930 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003931 },
3932 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
3933 },
3934 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
3935 # Uses SHA-256.
3936 # The key size must be either 32 or 64 bytes.
3937 # Outputs a base64 encoded representation of the hashed output
3938 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
3939 # Currently, only string and integer values can be hashed.
3940 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
3941 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
3942 # a key encryption key (KEK) stored by KMS).
3943 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
3944 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
3945 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07003946 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
3947 # leaking the key. Choose another type of key if possible.
3948 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3949 },
3950 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
3951 # It will be discarded after the request finishes.
3952 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
3953 # This is an arbitrary string used to differentiate different keys.
3954 # A unique key is generated per name: two separate `TransientCryptoKey`
3955 # protos share the same generated key if their names are the same.
3956 # When the data crypto key is generated, this name is not used in any way
3957 # (repeating the api call will result in a different key being generated).
3958 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003959 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
3960 # The wrapped key must be a 128/192/256 bit key.
3961 # Authorization requires the following IAM permissions when sending a request
3962 # to perform a crypto transformation using a kms-wrapped crypto key:
3963 # dlp.kms.encrypt
3964 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3965 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3966 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003967 },
3968 },
3969 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
3970 # (FPE) with the FFX mode of operation; however when used in the
3971 # `ReidentifyContent` API method, it serves the opposite function by reversing
3972 # the surrogate back into the original identifier. The identifier must be
3973 # encoded as ASCII. For a given crypto key and context, the same identifier
3974 # will be replaced with the same surrogate. Identifiers must be at least two
3975 # characters long. In the case that the identifier is the empty string, it will
3976 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
3977 # more.
3978 #
3979 # Note: We recommend using CryptoDeterministicConfig for all use cases which
3980 # do not require preserving the input alphabet space and size, plus warrant
3981 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07003982 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
3983 # This annotation will be applied to the surrogate by prefixing it with
3984 # the name of the custom infoType followed by the number of
3985 # characters comprising the surrogate. The following scheme defines the
3986 # format: info_type_name(surrogate_character_count):surrogate
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003987 #
Bu Sun Kim65020912020-05-20 12:08:20 -07003988 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
3989 # the surrogate is &#x27;abc&#x27;, the full replacement value
3990 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
3991 #
3992 # This annotation identifies the surrogate when inspecting content using the
3993 # custom infoType
3994 # [`SurrogateType`](/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
3995 # This facilitates reversal of the surrogate when it occurs in free text.
3996 #
3997 # In order for inspection to work properly, the name of this infoType must
3998 # not occur naturally anywhere in your data; otherwise, inspection may
3999 # find a surrogate that does not correspond to an actual identifier.
4000 # Therefore, choose your custom infoType name carefully after considering
4001 # what your data looks like. One way to select a name that has a high chance
4002 # of yielding reliable detection is to include one or more unicode characters
4003 # that are highly improbable to exist in your data.
4004 # For example, assuming your data is entered from a regular ASCII keyboard,
4005 # the symbol with the hex code point 29DD might be used like so:
4006 # ⧝MY_TOKEN_TYPE
4007 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
4008 # creating a CustomInfoType, or one of the names listed
4009 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
4010 # a built-in type. InfoType names should conform to the pattern
4011 # `[a-zA-Z0-9_]{1,64}`.
4012 },
4013 &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
4014 # identifier in two different contexts won&#x27;t be given the same surrogate. If
4015 # the context is not set, a default tweak will be used.
4016 #
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004017 # If the context is set but:
4018 #
4019 # 1. there is no record present when transforming a given value or
Bu Sun Kim65020912020-05-20 12:08:20 -07004020 # 1. the field is not present when transforming a given value,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004021 #
Bu Sun Kim65020912020-05-20 12:08:20 -07004022 # a default tweak will be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004023 #
4024 # Note that case (1) is expected when an `InfoTypeTransformation` is
4025 # applied to both structured and non-structured `ContentItem`s.
Bu Sun Kim65020912020-05-20 12:08:20 -07004026 # Currently, the referenced field may be of value type integer or string.
4027 #
4028 # The tweak is constructed as a sequence of bytes in big endian byte order
4029 # such that:
4030 #
4031 # - a 64 bit integer is encoded followed by a single byte of value 1
4032 # - a string is encoded in UTF-8 format followed by a single byte of value 2
4033 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004034 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004035 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
4036 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
4037 # a key encryption key (KEK) stored by KMS).
4038 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
4039 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
4040 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07004041 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
4042 # leaking the key. Choose another type of key if possible.
4043 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4044 },
4045 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
4046 # It will be discarded after the request finishes.
4047 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
4048 # This is an arbitrary string used to differentiate different keys.
4049 # A unique key is generated per name: two separate `TransientCryptoKey`
4050 # protos share the same generated key if their names are the same.
4051 # When the data crypto key is generated, this name is not used in any way
4052 # (repeating the api call will result in a different key being generated).
4053 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004054 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
4055 # The wrapped key must be a 128/192/256 bit key.
4056 # Authorization requires the following IAM permissions when sending a request
4057 # to perform a crypto transformation using a kms-wrapped crypto key:
4058 # dlp.kms.encrypt
4059 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4060 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4061 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004062 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004063 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
4064 # that the FFX mode natively supports. This happens before/after
4065 # encryption/decryption.
4066 # Each character listed must appear only once.
4067 # Number of characters must be in the range [2, 95].
4068 # This must be encoded as ASCII.
4069 # The order of characters does not matter.
4070 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07004071 },
4072 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
4073 # input. Outputs a base64 encoded representation of the encrypted output.
4074 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
4075 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004076 # This annotation will be applied to the surrogate by prefixing it with
4077 # the name of the custom info type followed by the number of
4078 # characters comprising the surrogate. The following scheme defines the
Dan O'Mearadd494642020-05-01 07:42:23 -07004079 # format: {info type name}({surrogate character count}):{surrogate}
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004080 #
Bu Sun Kim65020912020-05-20 12:08:20 -07004081 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
4082 # the surrogate is &#x27;abc&#x27;, the full replacement value
4083 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004084 #
4085 # This annotation identifies the surrogate when inspecting content using the
Bu Sun Kim65020912020-05-20 12:08:20 -07004086 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004087 # surrogate when it occurs in free text.
4088 #
Dan O'Mearadd494642020-05-01 07:42:23 -07004089 # Note: For record transformations where the entire cell in a table is being
4090 # transformed, surrogates are not mandatory. Surrogates are used to denote
4091 # the location of the token and are necessary for re-identification in free
4092 # form text.
4093 #
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004094 # In order for inspection to work properly, the name of this info type must
4095 # not occur naturally anywhere in your data; otherwise, inspection may either
4096 #
4097 # - reverse a surrogate that does not correspond to an actual identifier
4098 # - be unable to parse the surrogate and result in an error
4099 #
4100 # Therefore, choose your custom info type name carefully after considering
4101 # what your data looks like. One way to select a name that has a high chance
4102 # of yielding reliable detection is to include one or more unicode characters
4103 # that are highly improbable to exist in your data.
4104 # For example, assuming your data is entered from a regular ASCII keyboard,
4105 # the symbol with the hex code point 29DD might be used like so:
Dan O'Mearadd494642020-05-01 07:42:23 -07004106 # ⧝MY_TOKEN_TYPE.
Bu Sun Kim65020912020-05-20 12:08:20 -07004107 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004108 # creating a CustomInfoType, or one of the names listed
4109 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
4110 # a built-in type. InfoType names should conform to the pattern
Dan O'Mearadd494642020-05-01 07:42:23 -07004111 # `[a-zA-Z0-9_]{1,64}`.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004112 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004113 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
4114 # referential integrity such that the same identifier in two different
4115 # contexts will be given a distinct surrogate. The context is appended to
4116 # plaintext value being encrypted. On decryption the provided context is
4117 # validated against the value used during encryption. If a context was
4118 # provided during encryption, same context must be provided during decryption
4119 # as well.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004120 #
Bu Sun Kim65020912020-05-20 12:08:20 -07004121 # If the context is not set, plaintext would be used as is for encryption.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004122 # If the context is set but:
4123 #
4124 # 1. there is no record present when transforming a given value or
Bu Sun Kim65020912020-05-20 12:08:20 -07004125 # 2. the field is not present when transforming a given value,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004126 #
Bu Sun Kim65020912020-05-20 12:08:20 -07004127 # plaintext would be used as is for encryption.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004128 #
4129 # Note that case (1) is expected when an `InfoTypeTransformation` is
4130 # applied to both structured and non-structured `ContentItem`s.
Bu Sun Kim65020912020-05-20 12:08:20 -07004131 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004132 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004133 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
4134 # a key encryption key (KEK) stored by KMS).
4135 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
4136 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
4137 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07004138 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
4139 # leaking the key. Choose another type of key if possible.
4140 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4141 },
4142 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
4143 # It will be discarded after the request finishes.
4144 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
4145 # This is an arbitrary string used to differentiate different keys.
4146 # A unique key is generated per name: two separate `TransientCryptoKey`
4147 # protos share the same generated key if their names are the same.
4148 # When the data crypto key is generated, this name is not used in any way
4149 # (repeating the api call will result in a different key being generated).
4150 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004151 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
4152 # The wrapped key must be a 128/192/256 bit key.
4153 # Authorization requires the following IAM permissions when sending a request
4154 # to perform a crypto transformation using a kms-wrapped crypto key:
4155 # dlp.kms.encrypt
4156 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4157 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4158 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004159 },
4160 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004161 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
Dan O'Mearadd494642020-05-01 07:42:23 -07004162 # replacement values are dynamically provided by the user for custom behavior,
4163 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
4164 # This can be used on
4165 # data of type: number, long, string, timestamp.
4166 # If the bound `Value` type differs from the type of data being transformed, we
4167 # will first attempt converting the type of the data to be transformed to match
4168 # the type of the bound before comparing.
4169 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07004170 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
Dan O'Mearadd494642020-05-01 07:42:23 -07004171 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kim65020912020-05-20 12:08:20 -07004172 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Replacement value for this bucket. If not provided
4173 # the default behavior will be to hyphenate the min-max range.
4174 # Note that for the purposes of inspection or transformation, the number
4175 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4176 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4177 # 123456789, the number of bytes would be counted as 9, even though an
4178 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07004179 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4180 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4181 # and time zone are either specified elsewhere or are not significant. The date
4182 # is relative to the Proleptic Gregorian Calendar. This can represent:
4183 #
4184 # * A full date, with non-zero year, month and day values
4185 # * A month and day value, with a zero year, e.g. an anniversary
4186 # * A year on its own, with zero month and day values
4187 # * A year and month value, with a zero day, e.g. a credit card expiration date
4188 #
4189 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
4190 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4191 # a year.
4192 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4193 # month and day.
4194 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4195 # if specifying a year by itself or a year and month where the day is not
4196 # significant.
4197 },
4198 &quot;stringValue&quot;: &quot;A String&quot;, # string
4199 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4200 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4201 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4202 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004203 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4204 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4205 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004206 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4207 # allow the value 60 if it allows leap-seconds.
4208 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07004209 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004210 &quot;booleanValue&quot;: True or False, # boolean
4211 &quot;floatValue&quot;: 3.14, # float
4212 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4213 },
4214 &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
4215 # used.
4216 # Note that for the purposes of inspection or transformation, the number
4217 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4218 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4219 # 123456789, the number of bytes would be counted as 9, even though an
4220 # int64 only holds up to 8 bytes of data.
4221 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4222 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4223 # and time zone are either specified elsewhere or are not significant. The date
4224 # is relative to the Proleptic Gregorian Calendar. This can represent:
4225 #
4226 # * A full date, with non-zero year, month and day values
4227 # * A month and day value, with a zero year, e.g. an anniversary
4228 # * A year on its own, with zero month and day values
4229 # * A year and month value, with a zero day, e.g. a credit card expiration date
4230 #
4231 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
4232 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4233 # a year.
4234 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4235 # month and day.
4236 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4237 # if specifying a year by itself or a year and month where the day is not
4238 # significant.
4239 },
4240 &quot;stringValue&quot;: &quot;A String&quot;, # string
4241 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4242 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4243 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4244 # types are google.type.Date and `google.protobuf.Timestamp`.
4245 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4246 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4247 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4248 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4249 # allow the value 60 if it allows leap-seconds.
4250 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4251 },
4252 &quot;booleanValue&quot;: True or False, # boolean
4253 &quot;floatValue&quot;: 3.14, # float
4254 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4255 },
4256 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
4257 # Note that for the purposes of inspection or transformation, the number
4258 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4259 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4260 # 123456789, the number of bytes would be counted as 9, even though an
4261 # int64 only holds up to 8 bytes of data.
4262 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4263 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4264 # and time zone are either specified elsewhere or are not significant. The date
4265 # is relative to the Proleptic Gregorian Calendar. This can represent:
4266 #
4267 # * A full date, with non-zero year, month and day values
4268 # * A month and day value, with a zero year, e.g. an anniversary
4269 # * A year on its own, with zero month and day values
4270 # * A year and month value, with a zero day, e.g. a credit card expiration date
4271 #
4272 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
4273 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4274 # a year.
4275 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4276 # month and day.
4277 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4278 # if specifying a year by itself or a year and month where the day is not
4279 # significant.
4280 },
4281 &quot;stringValue&quot;: &quot;A String&quot;, # string
4282 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4283 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4284 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4285 # types are google.type.Date and `google.protobuf.Timestamp`.
4286 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4287 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4288 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4289 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4290 # allow the value 60 if it allows leap-seconds.
4291 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4292 },
4293 &quot;booleanValue&quot;: True or False, # boolean
4294 &quot;floatValue&quot;: 3.14, # float
4295 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Dan O'Mearadd494642020-05-01 07:42:23 -07004296 },
4297 },
4298 ],
4299 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004300 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
4301 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
4302 # output would be &#x27;My phone number is &#x27;.
4303 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004304 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
4305 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004306 # Note that for the purposes of inspection or transformation, the number
Bu Sun Kim65020912020-05-20 12:08:20 -07004307 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4308 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004309 # 123456789, the number of bytes would be counted as 9, even though an
4310 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07004311 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4312 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004313 # and time zone are either specified elsewhere or are not significant. The date
4314 # is relative to the Proleptic Gregorian Calendar. This can represent:
4315 #
4316 # * A full date, with non-zero year, month and day values
4317 # * A month and day value, with a zero year, e.g. an anniversary
4318 # * A year on its own, with zero month and day values
4319 # * A year and month value, with a zero day, e.g. a credit card expiration date
4320 #
4321 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004322 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4323 # a year.
4324 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
Dan O'Mearadd494642020-05-01 07:42:23 -07004325 # month and day.
Bu Sun Kim65020912020-05-20 12:08:20 -07004326 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004327 # if specifying a year by itself or a year and month where the day is not
4328 # significant.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004329 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004330 &quot;stringValue&quot;: &quot;A String&quot;, # string
4331 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4332 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4333 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4334 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004335 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4336 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4337 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004338 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4339 # allow the value 60 if it allows leap-seconds.
4340 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07004341 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004342 &quot;booleanValue&quot;: True or False, # boolean
4343 &quot;floatValue&quot;: 3.14, # float
4344 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07004345 },
4346 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004347 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
4348 # Bucketing transformation can provide all of this functionality,
4349 # but requires more configuration. This message is provided as a convenience to
4350 # the user for simple bucketing strategies.
4351 #
4352 # The transformed value will be a hyphenated string of
4353 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
4354 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
4355 #
4356 # This can be used on data of type: double, long.
4357 #
4358 # If the bound Value type differs from the type of data
4359 # being transformed, we will first attempt converting the type of the data to
4360 # be transformed to match the type of the bound before comparing.
4361 #
4362 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07004363 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
4364 # grouped together into a single bucket; for example if `upper_bound` = 89,
4365 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
4366 # Note that for the purposes of inspection or transformation, the number
4367 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4368 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4369 # 123456789, the number of bytes would be counted as 9, even though an
4370 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07004371 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4372 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4373 # and time zone are either specified elsewhere or are not significant. The date
4374 # is relative to the Proleptic Gregorian Calendar. This can represent:
4375 #
4376 # * A full date, with non-zero year, month and day values
4377 # * A month and day value, with a zero year, e.g. an anniversary
4378 # * A year on its own, with zero month and day values
4379 # * A year and month value, with a zero day, e.g. a credit card expiration date
4380 #
4381 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
4382 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4383 # a year.
4384 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4385 # month and day.
4386 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4387 # if specifying a year by itself or a year and month where the day is not
4388 # significant.
4389 },
4390 &quot;stringValue&quot;: &quot;A String&quot;, # string
4391 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4392 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4393 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4394 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004395 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4396 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4397 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004398 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4399 # allow the value 60 if it allows leap-seconds.
4400 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07004401 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004402 &quot;booleanValue&quot;: True or False, # boolean
4403 &quot;floatValue&quot;: 3.14, # float
4404 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07004405 },
4406 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
4407 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
4408 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
4409 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004410 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
4411 # grouped together into a single bucket; for example if `lower_bound` = 10,
4412 # then all values less than 10 are replaced with the value &quot;-10&quot;.
4413 # Note that for the purposes of inspection or transformation, the number
4414 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4415 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4416 # 123456789, the number of bytes would be counted as 9, even though an
4417 # int64 only holds up to 8 bytes of data.
4418 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4419 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4420 # and time zone are either specified elsewhere or are not significant. The date
4421 # is relative to the Proleptic Gregorian Calendar. This can represent:
4422 #
4423 # * A full date, with non-zero year, month and day values
4424 # * A month and day value, with a zero year, e.g. an anniversary
4425 # * A year on its own, with zero month and day values
4426 # * A year and month value, with a zero day, e.g. a credit card expiration date
4427 #
4428 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
4429 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4430 # a year.
4431 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4432 # month and day.
4433 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4434 # if specifying a year by itself or a year and month where the day is not
4435 # significant.
4436 },
4437 &quot;stringValue&quot;: &quot;A String&quot;, # string
4438 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4439 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4440 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4441 # types are google.type.Date and `google.protobuf.Timestamp`.
4442 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4443 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4444 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4445 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4446 # allow the value 60 if it allows leap-seconds.
4447 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4448 },
4449 &quot;booleanValue&quot;: True or False, # boolean
4450 &quot;floatValue&quot;: 3.14, # float
4451 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4452 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004453 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004454 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
4455 # fixed character. Masking can start from the beginning or end of the string.
4456 # This can be used on data of any type (numbers, longs, and so on) and when
4457 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
4458 # type. (This allows you to take a long like 123 and modify it to a string like
4459 # **3.
4460 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
4461 # characters. For example, if the input string is `555-555-5555` and you
4462 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
4463 # returns `***-**5-5555`.
4464 { # Characters to skip when doing deidentification of a value. These will be left
4465 # alone and skipped.
4466 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
4467 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
4468 # punctuation.
4469 },
4470 ],
4471 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
4472 # masked. Skipped characters do not count towards this tally.
4473 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
4474 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
4475 # code or credit card number. This string must have a length of 1. If not
4476 # supplied, this value defaults to `*` for strings, and `0` for digits.
4477 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
4478 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
4479 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
4480 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
4481 # is `true`, then the string `12345` is masked as `12***`.
4482 },
4483 },
4484 &quot;field&quot;: { # General identifier of a data field in a storage service. # Set if the transformation was limited to a specific FieldId.
4485 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Bu Sun Kim65020912020-05-20 12:08:20 -07004486 },
4487 &quot;transformedBytes&quot;: &quot;A String&quot;, # Total size in bytes that were transformed in some way.
4488 &quot;recordSuppress&quot;: { # Configuration to suppress records whose suppression conditions evaluate to # The specific suppression option these stats apply to.
4489 # true.
4490 &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
4491 # evaluated to be suppressed from the transformed content.
4492 # a field.
4493 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
4494 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
4495 # only supported value is `AND`.
4496 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
4497 &quot;conditions&quot;: [ # A collection of conditions.
4498 { # The field type of `value` and `field` do not need to match to be
4499 # considered equal, but not all comparisons are possible.
4500 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
4501 # but all other comparisons are invalid with incompatible types.
4502 # A `value` of type:
4503 #
4504 # - `string` can be compared against all other types
4505 # - `boolean` can only be compared against other booleans
4506 # - `integer` can be compared against doubles or a string if the string value
4507 # can be parsed as an integer.
4508 # - `double` can be compared against integers or a string if the string can
4509 # be parsed as a double.
4510 # - `Timestamp` can be compared against strings in RFC 3339 date string
4511 # format.
4512 # - `TimeOfDay` can be compared against timestamps and strings in the format
4513 # of &#x27;HH:mm:ss&#x27;.
4514 #
4515 # If we fail to compare do to type mismatch, a warning will be given and
4516 # the condition will evaluate to false.
Bu Sun Kim65020912020-05-20 12:08:20 -07004517 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
4518 # Note that for the purposes of inspection or transformation, the number
4519 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4520 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4521 # 123456789, the number of bytes would be counted as 9, even though an
4522 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07004523 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4524 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4525 # and time zone are either specified elsewhere or are not significant. The date
4526 # is relative to the Proleptic Gregorian Calendar. This can represent:
4527 #
4528 # * A full date, with non-zero year, month and day values
4529 # * A month and day value, with a zero year, e.g. an anniversary
4530 # * A year on its own, with zero month and day values
4531 # * A year and month value, with a zero day, e.g. a credit card expiration date
4532 #
4533 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
4534 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4535 # a year.
4536 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4537 # month and day.
4538 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4539 # if specifying a year by itself or a year and month where the day is not
4540 # significant.
4541 },
4542 &quot;stringValue&quot;: &quot;A String&quot;, # string
4543 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4544 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4545 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4546 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004547 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4548 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4549 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004550 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4551 # allow the value 60 if it allows leap-seconds.
4552 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07004553 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004554 &quot;booleanValue&quot;: True or False, # boolean
4555 &quot;floatValue&quot;: 3.14, # float
4556 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07004557 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004558 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
4559 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4560 },
4561 &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 -07004562 },
4563 ],
4564 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004565 },
4566 },
4567 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004568 &quot;infoType&quot;: { # Type of information detected by the API. # Set if the transformation was limited to a specific InfoType.
4569 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
4570 # creating a CustomInfoType, or one of the names listed
4571 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
4572 # a built-in type. InfoType names should conform to the pattern
4573 # `[a-zA-Z0-9_]{1,64}`.
4574 },
4575 &quot;results&quot;: [ # Collection of all transformations that took place or had an error.
4576 { # A collection that informs the user the number of times a particular
4577 # `TransformationResultCode` and error details occurred.
Bu Sun Kim65020912020-05-20 12:08:20 -07004578 &quot;details&quot;: &quot;A String&quot;, # A place for warnings or errors to show up if a transformation didn&#x27;t
4579 # work as expected.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004580 &quot;code&quot;: &quot;A String&quot;, # Outcome of the transformation.
4581 &quot;count&quot;: &quot;A String&quot;, # Number of transformations counted by this result.
Bu Sun Kim65020912020-05-20 12:08:20 -07004582 },
4583 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004584 },
4585 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07004586 &quot;transformedBytes&quot;: &quot;A String&quot;, # Total size in bytes that were transformed in some way.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004587 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004588 &quot;item&quot;: { # Container structure for the content to inspect. # The de-identified item.
Bu Sun Kim65020912020-05-20 12:08:20 -07004589 &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 -07004590 &quot;data&quot;: &quot;A String&quot;, # Content data to inspect or redact.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004591 &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 -07004592 },
4593 &quot;value&quot;: &quot;A String&quot;, # String data to inspect or redact.
4594 &quot;table&quot;: { # Structured content to inspect. Up to 50,000 `Value`s per request allowed. # Structured content for inspection. See
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004595 # https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
4596 # learn more.
4597 # See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
4598 # learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07004599 &quot;rows&quot;: [ # Rows of the table.
Dan O'Mearadd494642020-05-01 07:42:23 -07004600 { # Values of the row.
Bu Sun Kim65020912020-05-20 12:08:20 -07004601 &quot;values&quot;: [ # Individual cells.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004602 { # Set of primitive values supported by the system.
4603 # Note that for the purposes of inspection or transformation, the number
Bu Sun Kim65020912020-05-20 12:08:20 -07004604 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4605 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004606 # 123456789, the number of bytes would be counted as 9, even though an
4607 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07004608 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4609 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004610 # and time zone are either specified elsewhere or are not significant. The date
4611 # is relative to the Proleptic Gregorian Calendar. This can represent:
4612 #
4613 # * A full date, with non-zero year, month and day values
4614 # * A month and day value, with a zero year, e.g. an anniversary
4615 # * A year on its own, with zero month and day values
4616 # * A year and month value, with a zero day, e.g. a credit card expiration date
4617 #
4618 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004619 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4620 # a year.
4621 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
Dan O'Mearadd494642020-05-01 07:42:23 -07004622 # month and day.
Bu Sun Kim65020912020-05-20 12:08:20 -07004623 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004624 # if specifying a year by itself or a year and month where the day is not
4625 # significant.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004626 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004627 &quot;stringValue&quot;: &quot;A String&quot;, # string
4628 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4629 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
4630 # or are specified elsewhere. An API may choose to allow leap seconds. Related
4631 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004632 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4633 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4634 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004635 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4636 # allow the value 60 if it allows leap-seconds.
4637 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07004638 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004639 &quot;booleanValue&quot;: True or False, # boolean
4640 &quot;floatValue&quot;: 3.14, # float
4641 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4642 },
4643 ],
4644 },
4645 ],
4646 &quot;headers&quot;: [ # Headers of the table.
4647 { # General identifier of a data field in a storage service.
4648 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4649 },
4650 ],
4651 },
4652 },
4653 }</pre>
4654</div>
4655
4656<div class="method">
4657 <code class="details" id="inspect">inspect(parent, body=None, x__xgafv=None)</code>
4658 <pre>Finds potentially sensitive info in content.
4659This method has limits on input size, processing time, and output size.
4660
4661When no InfoTypes or CustomInfoTypes are specified in this request, the
4662system will automatically choose what detectors to run. By default this may
4663be all types, but may change over time as detectors are updated.
4664
4665For how to guides, see https://cloud.google.com/dlp/docs/inspecting-images
4666and https://cloud.google.com/dlp/docs/inspecting-text,
4667
4668Args:
4669 parent: string, The parent resource name, for example projects/my-project-id. (required)
4670 body: object, The request body.
4671 The object takes the form of:
4672
4673{ # Request to search for potentially sensitive info in a ContentItem.
4674 &quot;item&quot;: { # Container structure for the content to inspect. # The item to inspect.
4675 &quot;byteItem&quot;: { # Container for bytes to inspect or redact. # Content data to inspect or redact. Replaces `type` and `data`.
4676 &quot;data&quot;: &quot;A String&quot;, # Content data to inspect or redact.
4677 &quot;type&quot;: &quot;A String&quot;, # The type of data stored in the bytes string. Default will be TEXT_UTF8.
4678 },
4679 &quot;value&quot;: &quot;A String&quot;, # String data to inspect or redact.
4680 &quot;table&quot;: { # Structured content to inspect. Up to 50,000 `Value`s per request allowed. # Structured content for inspection. See
4681 # https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
4682 # learn more.
4683 # See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
4684 # learn more.
4685 &quot;rows&quot;: [ # Rows of the table.
4686 { # Values of the row.
4687 &quot;values&quot;: [ # Individual cells.
4688 { # Set of primitive values supported by the system.
4689 # Note that for the purposes of inspection or transformation, the number
4690 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
4691 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
4692 # 123456789, the number of bytes would be counted as 9, even though an
4693 # int64 only holds up to 8 bytes of data.
4694 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4695 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
4696 # and time zone are either specified elsewhere or are not significant. The date
4697 # is relative to the Proleptic Gregorian Calendar. This can represent:
4698 #
4699 # * A full date, with non-zero year, month and day values
4700 # * A month and day value, with a zero year, e.g. an anniversary
4701 # * A year on its own, with zero month and day values
4702 # * A year and month value, with a zero day, e.g. a credit card expiration date
4703 #
4704 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
4705 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
4706 # a year.
4707 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
4708 # month and day.
4709 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
4710 # if specifying a year by itself or a year and month where the day is not
4711 # significant.
4712 },
4713 &quot;stringValue&quot;: &quot;A String&quot;, # string
4714 &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;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
4719 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4720 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4721 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
4722 # allow the value 60 if it allows leap-seconds.
4723 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4724 },
4725 &quot;booleanValue&quot;: True or False, # boolean
4726 &quot;floatValue&quot;: 3.14, # float
4727 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004728 },
4729 ],
4730 },
4731 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07004732 &quot;headers&quot;: [ # Headers of the table.
4733 { # General identifier of a data field in a storage service.
4734 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4735 },
4736 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004737 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004738 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004739 &quot;inspectTemplateName&quot;: &quot;A String&quot;, # Template to use. Any configuration directly specified in
4740 # inspect_config will override those set in the template. Singular fields
4741 # that are set in this request will replace their corresponding fields in the
4742 # template. Repeated fields are appended. Singular sub-messages and groups
4743 # are recursively merged.
4744 &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # Configuration for the inspector. What specified here will override
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004745 # the template referenced by the inspect_template_name argument.
4746 # When used with redactContent only info_types and min_likelihood are currently
4747 # used.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004748 &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
4749 # POSSIBLE.
4750 # See https://cloud.google.com/dlp/docs/likelihood to learn more.
4751 &quot;contentOptions&quot;: [ # List of options defining data content to scan.
4752 # If empty, text, images, and other content will be included.
4753 &quot;A String&quot;,
4754 ],
4755 &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
4756 # InfoType values returned by ListInfoTypes or listed at
4757 # https://cloud.google.com/dlp/docs/infotypes-reference.
4758 #
4759 # When no InfoTypes or CustomInfoTypes are specified in a request, the
4760 # system may automatically choose what detectors to run. By default this may
4761 # be all types, but may change over time as detectors are updated.
4762 #
4763 # If you need precise control and predictability as to what detectors are
4764 # run you should specify specific InfoTypes listed in the reference,
4765 # otherwise a default list will be used, which may change over time.
4766 { # Type of information detected by the API.
4767 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
4768 # creating a CustomInfoType, or one of the names listed
4769 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
4770 # a built-in type. InfoType names should conform to the pattern
4771 # `[a-zA-Z0-9_]{1,64}`.
4772 },
4773 ],
4774 &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
4775 &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
4776 # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
4777 { # Custom information type provided by the user. Used to find domain-specific
4778 # sensitive information configurable to the data in question.
4779 &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
4780 # support reversing.
4781 # such as
4782 # [`CryptoReplaceFfxFpeConfig`](/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
4783 # These types of transformations are
4784 # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
4785 # output. This should be used in conjunction with a field on the
4786 # transformation such as `surrogate_info_type`. This CustomInfoType does
4787 # not support the use of `detection_rules`.
4788 },
4789 &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
4790 # altered by a detection rule if the finding meets the criteria specified by
4791 # the rule. Defaults to `VERY_LIKELY` if not specified.
4792 &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
4793 # infoType, when the name matches one of existing infoTypes and that infoType
4794 # is specified in `InspectContent.info_types` field. Specifying the latter
4795 # adds findings to the one detected by the system. If built-in info type is
4796 # not specified in `InspectContent.info_types` list then the name is treated
4797 # as a custom info type.
4798 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
4799 # creating a CustomInfoType, or one of the names listed
4800 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
4801 # a built-in type. InfoType names should conform to the pattern
4802 # `[a-zA-Z0-9_]{1,64}`.
4803 },
4804 &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
4805 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
4806 # specified, the entire match is returned. No more than 3 may be included.
4807 42,
4808 ],
4809 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
4810 # (https://github.com/google/re2/wiki/Syntax) can be found under the
4811 # google/re2 repository on GitHub.
4812 },
4813 &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
4814 # Rules are applied in order that they are specified. Not supported for the
4815 # `surrogate_type` CustomInfoType.
4816 { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
4817 # `CustomInfoType` to alter behavior under certain circumstances, depending
4818 # on the specific details of the rule. Not supported for the `surrogate_type`
4819 # custom infoType.
4820 &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
4821 # proximity of hotwords.
4822 &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
4823 # part of a detection rule.
4824 &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
4825 # levels. For example, if a finding would be `POSSIBLE` without the
4826 # detection rule and `relative_likelihood` is 1, then it is upgraded to
4827 # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
4828 # Likelihood may never drop below `VERY_UNLIKELY` or exceed
4829 # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
4830 # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
4831 # a final likelihood of `LIKELY`.
4832 &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
4833 },
4834 &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
4835 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
4836 # specified, the entire match is returned. No more than 3 may be included.
4837 42,
4838 ],
4839 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
4840 # (https://github.com/google/re2/wiki/Syntax) can be found under the
4841 # google/re2 repository on GitHub.
4842 },
4843 &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.
4844 # The total length of the window cannot exceed 1000 characters. Note that
4845 # the finding itself will be included in the window, so that hotwords may
4846 # be used to match substrings of the finding itself. For example, the
4847 # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
4848 # adjusted upwards if the area code is known to be the local area code of
4849 # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
4850 # is the area code in question.
4851 # rule.
4852 &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
4853 &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
4854 },
4855 },
4856 },
4857 ],
4858 &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
4859 # to be returned. It still can be used for rules matching.
4860 &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.
4861 # be used to match sensitive information specific to the data, such as a list
4862 # of employee IDs or job titles.
4863 #
4864 # Dictionary words are case-insensitive and all characters other than letters
4865 # and digits in the unicode [Basic Multilingual
4866 # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
4867 # will be replaced with whitespace when scanning for matches, so the
4868 # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
4869 # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
4870 # surrounding any match must be of a different type than the adjacent
4871 # characters within the word, so letters must be next to non-letters and
4872 # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
4873 # match the first three letters of the text &quot;jen123&quot; but will return no
4874 # matches for &quot;jennifer&quot;.
4875 #
4876 # Dictionary words containing a large number of characters that are not
4877 # letters or digits may result in unexpected findings because such characters
4878 # are treated as whitespace. The
4879 # [limits](https://cloud.google.com/dlp/limits) page contains details about
4880 # the size limits of dictionaries. For dictionaries that do not fit within
4881 # these constraints, consider using `LargeCustomDictionaryConfig` in the
4882 # `StoredInfoType` API.
4883 &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.
4884 &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
4885 # at least one phrase and every phrase must contain at least 2 characters
4886 # that are letters or digits. [required]
4887 &quot;A String&quot;,
4888 ],
4889 },
4890 &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
4891 # is accepted.
4892 &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
4893 # Example: gs://[BUCKET_NAME]/dictionary.txt
4894 },
4895 },
4896 &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
4897 # `InspectDataSource`. Not currently supported in `InspectContent`.
4898 &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
4899 # `organizations/433245324/storedInfoTypes/432452342` or
4900 # `projects/project-id/storedInfoTypes/432452342`.
4901 &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
4902 # inspection was created. Output-only field, populated by the system.
4903 },
4904 },
4905 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07004906 &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
4907 # included in the response; see Finding.quote.
4908 &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
4909 # Exclusion rules, contained in the set are executed in the end, other
4910 # rules are executed in the order they are specified for each info type.
4911 { # Rule set for modifying a set of infoTypes to alter behavior under certain
4912 # circumstances, depending on the specific details of the rules within the set.
4913 &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
4914 { # Type of information detected by the API.
4915 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004916 # creating a CustomInfoType, or one of the names listed
4917 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
4918 # a built-in type. InfoType names should conform to the pattern
Dan O'Mearadd494642020-05-01 07:42:23 -07004919 # `[a-zA-Z0-9_]{1,64}`.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004920 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004921 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07004922 &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004923 { # A single inspection rule to be applied to infoTypes, specified in
4924 # `InspectionRuleSet`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004925 &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004926 # proximity of hotwords.
Bu Sun Kim65020912020-05-20 12:08:20 -07004927 &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004928 # part of a detection rule.
Bu Sun Kim65020912020-05-20 12:08:20 -07004929 &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004930 # levels. For example, if a finding would be `POSSIBLE` without the
4931 # detection rule and `relative_likelihood` is 1, then it is upgraded to
4932 # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
4933 # Likelihood may never drop below `VERY_UNLIKELY` or exceed
4934 # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
4935 # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
4936 # a final likelihood of `LIKELY`.
Bu Sun Kim65020912020-05-20 12:08:20 -07004937 &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004938 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004939 &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
4940 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004941 # specified, the entire match is returned. No more than 3 may be included.
4942 42,
4943 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07004944 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
4945 # (https://github.com/google/re2/wiki/Syntax) can be found under the
4946 # google/re2 repository on GitHub.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004947 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004948 &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.
4949 # The total length of the window cannot exceed 1000 characters. Note that
4950 # the finding itself will be included in the window, so that hotwords may
4951 # be used to match substrings of the finding itself. For example, the
4952 # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
4953 # adjusted upwards if the area code is known to be the local area code of
4954 # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
4955 # is the area code in question.
4956 # rule.
4957 &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
4958 &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004959 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004960 },
4961 &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
4962 # `InspectionRuleSet` are removed from results.
4963 &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004964 # be used to match sensitive information specific to the data, such as a list
4965 # of employee IDs or job titles.
4966 #
4967 # Dictionary words are case-insensitive and all characters other than letters
4968 # and digits in the unicode [Basic Multilingual
4969 # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
4970 # will be replaced with whitespace when scanning for matches, so the
Bu Sun Kim65020912020-05-20 12:08:20 -07004971 # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
4972 # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004973 # surrounding any match must be of a different type than the adjacent
4974 # characters within the word, so letters must be next to non-letters and
Bu Sun Kim65020912020-05-20 12:08:20 -07004975 # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
4976 # match the first three letters of the text &quot;jen123&quot; but will return no
4977 # matches for &quot;jennifer&quot;.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004978 #
4979 # Dictionary words containing a large number of characters that are not
4980 # letters or digits may result in unexpected findings because such characters
4981 # are treated as whitespace. The
4982 # [limits](https://cloud.google.com/dlp/limits) page contains details about
4983 # the size limits of dictionaries. For dictionaries that do not fit within
4984 # these constraints, consider using `LargeCustomDictionaryConfig` in the
4985 # `StoredInfoType` API.
Bu Sun Kim65020912020-05-20 12:08:20 -07004986 &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.
4987 &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004988 # at least one phrase and every phrase must contain at least 2 characters
4989 # that are letters or digits. [required]
Bu Sun Kim65020912020-05-20 12:08:20 -07004990 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004991 ],
4992 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004993 &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
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004994 # is accepted.
Bu Sun Kim65020912020-05-20 12:08:20 -07004995 &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004996 # Example: gs://[BUCKET_NAME]/dictionary.txt
4997 },
4998 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004999 &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
5000 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
5001 # specified, the entire match is returned. No more than 3 may be included.
5002 42,
5003 ],
5004 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
5005 # (https://github.com/google/re2/wiki/Syntax) can be found under the
5006 # google/re2 repository on GitHub.
5007 },
5008 &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
5009 &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
5010 # contained within with a finding of an infoType from this list. For
5011 # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
5012 # `exclusion_rule` containing `exclude_info_types.info_types` with
5013 # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
5014 # with EMAIL_ADDRESS finding.
5015 # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
5016 # finding, namely email address.
5017 { # Type of information detected by the API.
5018 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5019 # creating a CustomInfoType, or one of the names listed
5020 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5021 # a built-in type. InfoType names should conform to the pattern
5022 # `[a-zA-Z0-9_]{1,64}`.
5023 },
5024 ],
5025 },
5026 &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005027 },
5028 },
5029 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07005030 },
5031 ],
5032 &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
5033 &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
5034 # When set within `InspectJobConfig`,
5035 # the maximum returned is 2000 regardless if this is set higher.
5036 # When set within `InspectContentRequest`, this field is ignored.
5037 &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
5038 { # Max findings configuration per infoType, per content item or long
5039 # running DlpJob.
5040 &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
5041 &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
5042 # info_type should be provided. If InfoTypeLimit does not have an
5043 # info_type, the DLP API applies the limit against all info_types that
5044 # are found but not specified in another InfoTypeLimit.
5045 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005046 # creating a CustomInfoType, or one of the names listed
5047 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5048 # a built-in type. InfoType names should conform to the pattern
Dan O'Mearadd494642020-05-01 07:42:23 -07005049 # `[a-zA-Z0-9_]{1,64}`.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005050 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005051 },
5052 ],
5053 &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
5054 # When set within `InspectContentRequest`, the maximum returned is 2000
5055 # regardless if this is set higher.
5056 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005057 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005058 &quot;locationId&quot;: &quot;A String&quot;, # The geographic location to process content inspection. Reserved for future
5059 # extensions.
5060 # When inspecting images location is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;,
5061 # and &#x27;europe&#x27;.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005062 }
5063
5064 x__xgafv: string, V1 error format.
5065 Allowed values
5066 1 - v1 error format
5067 2 - v2 error format
5068
5069Returns:
5070 An object of the form:
5071
5072 { # Results of inspecting an item.
Bu Sun Kim65020912020-05-20 12:08:20 -07005073 &quot;result&quot;: { # All the findings for a single scanned item. # The findings.
5074 &quot;findings&quot;: [ # List of findings for an item.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005075 { # Represents a piece of potentially sensitive content.
Bu Sun Kim65020912020-05-20 12:08:20 -07005076 &quot;quoteInfo&quot;: { # Message for infoType-dependent details parsed from quote. # Contains data parsed from quotes. Only populated if include_quote was set
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005077 # to true and a supported infoType was requested. Currently supported
5078 # infoTypes: DATE, DATE_OF_BIRTH and TIME.
Bu Sun Kim65020912020-05-20 12:08:20 -07005079 &quot;dateTime&quot;: { # Message for a date time object. # The date time indicated by the quote.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005080 # e.g. 2018-01-01, 5th August.
Bu Sun Kim65020912020-05-20 12:08:20 -07005081 &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.
Dan O'Mearadd494642020-05-01 07:42:23 -07005082 # Must be a valid date or time value.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005083 # and time zone are either specified elsewhere or are not significant. The date
5084 # is relative to the Proleptic Gregorian Calendar. This can represent:
5085 #
5086 # * A full date, with non-zero year, month and day values
5087 # * A month and day value, with a zero year, e.g. an anniversary
5088 # * A year on its own, with zero month and day values
5089 # * A year and month value, with a zero day, e.g. a credit card expiration date
5090 #
5091 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07005092 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
5093 # a year.
5094 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
Dan O'Mearadd494642020-05-01 07:42:23 -07005095 # month and day.
Bu Sun Kim65020912020-05-20 12:08:20 -07005096 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005097 # if specifying a year by itself or a year and month where the day is not
5098 # significant.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005099 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005100 &quot;timeZone&quot;: { # Time zone of the date time object. # Time zone
5101 &quot;offsetMinutes&quot;: 42, # Set only if the offset can be determined. Positive for time ahead of UTC.
5102 # E.g. For &quot;UTC-9&quot;, this value is -540.
Dan O'Mearadd494642020-05-01 07:42:23 -07005103 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005104 &quot;dayOfWeek&quot;: &quot;A String&quot;, # Day of week
5105 &quot;time&quot;: { # Represents a time of day. The date and time zone are either not significant # Time of day
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005106 # or are specified elsewhere. An API may choose to allow leap seconds. Related
5107 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07005108 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
5109 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
5110 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005111 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
5112 # allow the value 60 if it allows leap-seconds.
5113 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005114 },
5115 },
5116 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005117 &quot;infoType&quot;: { # Type of information detected by the API. # The type of content that might have been found.
5118 # Provided if `excluded_types` is false.
5119 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5120 # creating a CustomInfoType, or one of the names listed
5121 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5122 # a built-in type. InfoType names should conform to the pattern
5123 # `[a-zA-Z0-9_]{1,64}`.
5124 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005125 &quot;labels&quot;: { # The labels associated with this `Finding`.
5126 #
5127 # Label keys must be between 1 and 63 characters long and must conform
5128 # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
5129 #
5130 # Label values must be between 0 and 63 characters long and must conform
5131 # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
5132 #
5133 # No more than 10 labels can be associated with a given finding.
5134 #
5135 # Examples:
5136 # * `&quot;environment&quot; : &quot;production&quot;`
5137 # * `&quot;pipeline&quot; : &quot;etl&quot;`
5138 &quot;a_key&quot;: &quot;A String&quot;,
5139 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005140 &quot;likelihood&quot;: &quot;A String&quot;, # Confidence of how likely it is that the `info_type` is correct.
5141 &quot;name&quot;: &quot;A String&quot;, # Resource name in format
5142 # projects/{project}/locations/{location}/findings/{finding} Populated only
5143 # when viewing persisted findings.
5144 &quot;location&quot;: { # Specifies the location of the finding. # Where the content was found.
5145 &quot;codepointRange&quot;: { # Generic half-open interval [start, end) # Unicode character offsets delimiting the finding.
5146 # These are relative to the finding&#x27;s containing element.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005147 # Provided when the content is text.
Bu Sun Kim65020912020-05-20 12:08:20 -07005148 &quot;start&quot;: &quot;A String&quot;, # Index of the first character of the range (inclusive).
5149 &quot;end&quot;: &quot;A String&quot;, # Index of the last character of the range (exclusive).
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005150 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005151 &quot;byteRange&quot;: { # Generic half-open interval [start, end) # Zero-based byte offsets delimiting the finding.
5152 # These are relative to the finding&#x27;s containing element.
5153 # Note that when the content is not textual, this references
5154 # the UTF-8 encoded textual representation of the content.
5155 # Omitted if content is an image.
5156 &quot;start&quot;: &quot;A String&quot;, # Index of the first character of the range (inclusive).
5157 &quot;end&quot;: &quot;A String&quot;, # Index of the last character of the range (exclusive).
5158 },
5159 &quot;container&quot;: { # Represents a container that may contain DLP findings. # Information about the container where this finding occurred, if available.
Dan O'Mearadd494642020-05-01 07:42:23 -07005160 # Examples of a container include a file, table, or database record.
Bu Sun Kim65020912020-05-20 12:08:20 -07005161 &quot;updateTime&quot;: &quot;A String&quot;, # Findings container modification timestamp, if applicable.
Dan O'Mearadd494642020-05-01 07:42:23 -07005162 # For Google Cloud Storage contains last file modification timestamp.
5163 # For BigQuery table contains last_modified_time property.
5164 # For Datastore - not populated.
Bu Sun Kim65020912020-05-20 12:08:20 -07005165 &quot;rootPath&quot;: &quot;A String&quot;, # The root of the container.
Dan O'Mearadd494642020-05-01 07:42:23 -07005166 # Examples:
5167 # - For BigQuery table `project_id:dataset_id.table_id`, the root is
5168 # `dataset_id`
5169 # - For Google Cloud Storage file `gs://bucket/folder/filename.txt`, the root
5170 # is `gs://bucket`
Bu Sun Kim65020912020-05-20 12:08:20 -07005171 &quot;projectId&quot;: &quot;A String&quot;, # Project where the finding was found.
Dan O'Mearadd494642020-05-01 07:42:23 -07005172 # Can be different from the project that owns the finding.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005173 &quot;version&quot;: &quot;A String&quot;, # Findings container version, if available
5174 # (&quot;generation&quot; for Google Cloud Storage).
Bu Sun Kim65020912020-05-20 12:08:20 -07005175 &quot;relativePath&quot;: &quot;A String&quot;, # The rest of the path after the root.
Dan O'Mearadd494642020-05-01 07:42:23 -07005176 # Examples:
Bu Sun Kim65020912020-05-20 12:08:20 -07005177 # - For BigQuery table `project_id:dataset_id.table_id`, the relative path is
5178 # `table_id`
5179 # - Google Cloud Storage file `gs://bucket/folder/filename.txt`, the relative
5180 # path is `folder/filename.txt`
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005181 &quot;fullPath&quot;: &quot;A String&quot;, # A string representation of the full container name.
5182 # Examples:
5183 # - BigQuery: &#x27;Project:DataSetId.TableId&#x27;
5184 # - Google Cloud Storage: &#x27;gs://Bucket/folders/filename.txt&#x27;
5185 &quot;type&quot;: &quot;A String&quot;, # Container type, for example BigQuery or Google Cloud Storage.
Dan O'Mearadd494642020-05-01 07:42:23 -07005186 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005187 &quot;contentLocations&quot;: [ # List of nested objects pointing to the precise location of the finding
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005188 # within the file or record.
Dan O'Mearadd494642020-05-01 07:42:23 -07005189 { # Precise location of the finding within a document, record, image, or metadata
5190 # container.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005191 &quot;containerVersion&quot;: &quot;A String&quot;, # Findings container version, if available
5192 # (&quot;generation&quot; for Google Cloud Storage).
Bu Sun Kim65020912020-05-20 12:08:20 -07005193 &quot;containerName&quot;: &quot;A String&quot;, # Name of the container where the finding is located.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005194 # The top level name is the source file name or table name. Names of some
5195 # common storage containers are formatted as follows:
5196 #
Dan O'Mearadd494642020-05-01 07:42:23 -07005197 # * BigQuery tables: `{project_id}:{dataset_id}.{table_id}`
5198 # * Cloud Storage files: `gs://{bucket}/{path}`
5199 # * Datastore namespace: {namespace}
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005200 #
5201 # Nested names could be absent if the embedded object has no string
5202 # identifier (for an example an image contained within a document).
Bu Sun Kim65020912020-05-20 12:08:20 -07005203 &quot;documentLocation&quot;: { # Location of a finding within a document. # Location data for document files.
5204 &quot;fileOffset&quot;: &quot;A String&quot;, # Offset of the line, from the beginning of the file, where the finding
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005205 # is located.
5206 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005207 &quot;recordLocation&quot;: { # Location of a finding within a row or record. # Location within a row or record of a database table.
5208 &quot;fieldId&quot;: { # General identifier of a data field in a storage service. # Field id of the field containing the finding.
5209 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
5210 },
5211 &quot;tableLocation&quot;: { # Location of a finding within a table. # Location within a `ContentItem.Table`.
5212 &quot;rowIndex&quot;: &quot;A String&quot;, # The zero-based index of the row where the finding is located. Only
Dan O'Mearadd494642020-05-01 07:42:23 -07005213 # populated for resources that have a natural ordering, not BigQuery. In
5214 # BigQuery, to identify the row a finding came from, populate
5215 # BigQueryOptions.identifying_fields with your primary key column names and
5216 # when you store the findings the value of those columns will be stored
5217 # inside of Finding.
5218 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005219 &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 -07005220 &quot;datastoreKey&quot;: { # Record key for a finding in Cloud Datastore.
5221 &quot;entityKey&quot;: { # A unique identifier for a Datastore entity. # Datastore entity key.
5222 # If a key&#x27;s partition ID or any of its path kinds or names are
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005223 # reserved/read-only, the key is reserved/read-only.
5224 # A reserved/read-only key is forbidden in certain documented contexts.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005225 &quot;partitionId&quot;: { # Datastore partition ID. # Entities are partitioned into subsets, currently identified by a project
5226 # ID and namespace ID.
5227 # Queries are scoped to a single partition.
5228 # A partition ID identifies a grouping of entities. The grouping is always
5229 # by project and namespace, however the namespace ID may be empty.
5230 #
5231 # A partition ID contains several dimensions:
5232 # project ID and namespace ID.
5233 &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
5234 &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
5235 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005236 &quot;path&quot;: [ # The entity path.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005237 # An entity path consists of one or more elements composed of a kind and a
5238 # string or numerical identifier, which identify entities. The first
5239 # element identifies a _root entity_, the second element identifies
5240 # a _child_ of the root entity, the third element identifies a child of the
5241 # second entity, and so forth. The entities identified by all prefixes of
Bu Sun Kim65020912020-05-20 12:08:20 -07005242 # the path are called the element&#x27;s _ancestors_.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005243 #
5244 # A path can never be empty, and a path can have at most 100 elements.
5245 { # A (kind, ID/name) pair used to construct a key path.
5246 #
5247 # If either name or ID is set, the element is complete.
5248 # If neither is set, the element is incomplete.
Bu Sun Kim65020912020-05-20 12:08:20 -07005249 &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005250 # A kind matching regex `__.*__` is reserved/read-only.
5251 # A kind must not contain more than 1500 bytes when UTF-8 encoded.
Bu Sun Kim65020912020-05-20 12:08:20 -07005252 # Cannot be `&quot;&quot;`.
5253 &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005254 # Never equal to zero. Values less than zero are discouraged and may not
5255 # be supported in the future.
Bu Sun Kim65020912020-05-20 12:08:20 -07005256 &quot;name&quot;: &quot;A String&quot;, # The name of the entity.
5257 # A name matching regex `__.*__` is reserved/read-only.
5258 # A name must not be more than 1500 bytes when UTF-8 encoded.
5259 # Cannot be `&quot;&quot;`.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005260 },
5261 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005262 },
5263 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005264 &quot;bigQueryKey&quot;: { # Row key for identifying a record in BigQuery table.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005265 &quot;rowNumber&quot;: &quot;A String&quot;, # Row number inferred at the time the table was scanned. This value is
5266 # nondeterministic, cannot be queried, and may be null for inspection
5267 # jobs. To locate findings within a table, specify
5268 # `inspect_job.storage_config.big_query_options.identifying_fields` in
5269 # `CreateDlpJobRequest`.
Bu Sun Kim65020912020-05-20 12:08:20 -07005270 &quot;tableReference&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference.
5271 # identified by its project_id, dataset_id, and table_name. Within a query
5272 # a table is often referenced with a string in the format of:
5273 # `&lt;project_id&gt;:&lt;dataset_id&gt;.&lt;table_id&gt;` or
5274 # `&lt;project_id&gt;.&lt;dataset_id&gt;.&lt;table_id&gt;`.
5275 &quot;projectId&quot;: &quot;A String&quot;, # The Google Cloud Platform project ID of the project containing the table.
5276 # If omitted, project ID is inferred from the API call.
5277 &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
5278 &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
5279 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005280 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005281 &quot;idValues&quot;: [ # Values of identifying columns in the given row. Order of values matches
5282 # the order of `identifying_fields` specified in the scanning request.
5283 &quot;A String&quot;,
5284 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005285 },
5286 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005287 &quot;containerTimestamp&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;metadataLocation&quot;: { # Metadata Location # Location within the metadata for inspected content.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005292 &quot;type&quot;: &quot;A String&quot;, # Type of metadata containing the finding.
Bu Sun Kim65020912020-05-20 12:08:20 -07005293 &quot;storageLabel&quot;: { # Storage metadata label to indicate which metadata entry contains findings. # Storage metadata.
5294 &quot;key&quot;: &quot;A String&quot;,
5295 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005296 },
5297 &quot;imageLocation&quot;: { # Location of the finding within an image. # Location within an image&#x27;s pixels.
5298 &quot;boundingBoxes&quot;: [ # Bounding boxes locating the pixels within the image containing the finding.
5299 { # Bounding box encompassing detected text within an image.
5300 &quot;top&quot;: 42, # Top coordinate of the bounding box. (0,0) is upper left.
5301 &quot;width&quot;: 42, # Width of the bounding box in pixels.
5302 &quot;height&quot;: 42, # Height of the bounding box in pixels.
5303 &quot;left&quot;: 42, # Left coordinate of the bounding box. (0,0) is upper left.
5304 },
5305 ],
5306 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005307 },
5308 ],
5309 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005310 &quot;quote&quot;: &quot;A String&quot;, # The content that was found. Even if the content is not textual, it
5311 # may be converted to a textual representation here.
5312 # Provided if `include_quote` is true and the finding is
5313 # less than or equal to 4096 bytes long. If the finding exceeds 4096 bytes
5314 # in length, the quote may be omitted.
5315 &quot;createTime&quot;: &quot;A String&quot;, # Timestamp when finding was detected.
5316 &quot;jobName&quot;: &quot;A String&quot;, # The job that stored the finding.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005317 &quot;jobCreateTime&quot;: &quot;A String&quot;, # Time the job started that produced this finding.
5318 &quot;triggerName&quot;: &quot;A String&quot;, # Job trigger name, if applicable, for this finding.
5319 &quot;resourceName&quot;: &quot;A String&quot;, # The job that stored the finding.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005320 },
5321 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07005322 &quot;findingsTruncated&quot;: True or False, # If true, then this item might have more findings than were returned,
5323 # and the findings returned are an arbitrary subset of all findings.
5324 # The findings list might be truncated because the input items were too
5325 # large, or because the server reached the maximum amount of resources
5326 # allowed for a single API call. For best results, divide the input into
5327 # smaller batches.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005328 },
5329 }</pre>
5330</div>
5331
5332<div class="method">
Dan O'Mearadd494642020-05-01 07:42:23 -07005333 <code class="details" id="reidentify">reidentify(parent, body=None, x__xgafv=None)</code>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005334 <pre>Re-identifies content that has been de-identified.
5335See
5336https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example
5337to learn more.
5338
5339Args:
Dan O'Mearadd494642020-05-01 07:42:23 -07005340 parent: string, Required. The parent resource name. (required)
5341 body: object, The request body.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005342 The object takes the form of:
5343
5344{ # Request to re-identify an item.
Bu Sun Kim65020912020-05-20 12:08:20 -07005345 &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # Configuration for the inspector.
5346 # When used with redactContent only info_types and min_likelihood are currently
5347 # used.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005348 &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
5349 # POSSIBLE.
5350 # See https://cloud.google.com/dlp/docs/likelihood to learn more.
5351 &quot;contentOptions&quot;: [ # List of options defining data content to scan.
5352 # If empty, text, images, and other content will be included.
5353 &quot;A String&quot;,
5354 ],
5355 &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
5356 # InfoType values returned by ListInfoTypes or listed at
5357 # https://cloud.google.com/dlp/docs/infotypes-reference.
5358 #
5359 # When no InfoTypes or CustomInfoTypes are specified in a request, the
5360 # system may automatically choose what detectors to run. By default this may
5361 # be all types, but may change over time as detectors are updated.
5362 #
5363 # If you need precise control and predictability as to what detectors are
5364 # run you should specify specific InfoTypes listed in the reference,
5365 # otherwise a default list will be used, which may change over time.
5366 { # Type of information detected by the API.
5367 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5368 # creating a CustomInfoType, or one of the names listed
5369 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5370 # a built-in type. InfoType names should conform to the pattern
5371 # `[a-zA-Z0-9_]{1,64}`.
5372 },
5373 ],
5374 &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
5375 &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
5376 # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
5377 { # Custom information type provided by the user. Used to find domain-specific
5378 # sensitive information configurable to the data in question.
5379 &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
5380 # support reversing.
5381 # such as
5382 # [`CryptoReplaceFfxFpeConfig`](/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
5383 # These types of transformations are
5384 # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
5385 # output. This should be used in conjunction with a field on the
5386 # transformation such as `surrogate_info_type`. This CustomInfoType does
5387 # not support the use of `detection_rules`.
5388 },
5389 &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
5390 # altered by a detection rule if the finding meets the criteria specified by
5391 # the rule. Defaults to `VERY_LIKELY` if not specified.
5392 &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
5393 # infoType, when the name matches one of existing infoTypes and that infoType
5394 # is specified in `InspectContent.info_types` field. Specifying the latter
5395 # adds findings to the one detected by the system. If built-in info type is
5396 # not specified in `InspectContent.info_types` list then the name is treated
5397 # as a custom info type.
5398 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5399 # creating a CustomInfoType, or one of the names listed
5400 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5401 # a built-in type. InfoType names should conform to the pattern
5402 # `[a-zA-Z0-9_]{1,64}`.
5403 },
5404 &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
5405 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
5406 # specified, the entire match is returned. No more than 3 may be included.
5407 42,
5408 ],
5409 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
5410 # (https://github.com/google/re2/wiki/Syntax) can be found under the
5411 # google/re2 repository on GitHub.
5412 },
5413 &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
5414 # Rules are applied in order that they are specified. Not supported for the
5415 # `surrogate_type` CustomInfoType.
5416 { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
5417 # `CustomInfoType` to alter behavior under certain circumstances, depending
5418 # on the specific details of the rule. Not supported for the `surrogate_type`
5419 # custom infoType.
5420 &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
5421 # proximity of hotwords.
5422 &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
5423 # part of a detection rule.
5424 &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
5425 # levels. For example, if a finding would be `POSSIBLE` without the
5426 # detection rule and `relative_likelihood` is 1, then it is upgraded to
5427 # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
5428 # Likelihood may never drop below `VERY_UNLIKELY` or exceed
5429 # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
5430 # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
5431 # a final likelihood of `LIKELY`.
5432 &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
5433 },
5434 &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
5435 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
5436 # specified, the entire match is returned. No more than 3 may be included.
5437 42,
5438 ],
5439 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
5440 # (https://github.com/google/re2/wiki/Syntax) can be found under the
5441 # google/re2 repository on GitHub.
5442 },
5443 &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.
5444 # The total length of the window cannot exceed 1000 characters. Note that
5445 # the finding itself will be included in the window, so that hotwords may
5446 # be used to match substrings of the finding itself. For example, the
5447 # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
5448 # adjusted upwards if the area code is known to be the local area code of
5449 # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
5450 # is the area code in question.
5451 # rule.
5452 &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
5453 &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
5454 },
5455 },
5456 },
5457 ],
5458 &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
5459 # to be returned. It still can be used for rules matching.
5460 &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.
5461 # be used to match sensitive information specific to the data, such as a list
5462 # of employee IDs or job titles.
5463 #
5464 # Dictionary words are case-insensitive and all characters other than letters
5465 # and digits in the unicode [Basic Multilingual
5466 # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
5467 # will be replaced with whitespace when scanning for matches, so the
5468 # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
5469 # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
5470 # surrounding any match must be of a different type than the adjacent
5471 # characters within the word, so letters must be next to non-letters and
5472 # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
5473 # match the first three letters of the text &quot;jen123&quot; but will return no
5474 # matches for &quot;jennifer&quot;.
5475 #
5476 # Dictionary words containing a large number of characters that are not
5477 # letters or digits may result in unexpected findings because such characters
5478 # are treated as whitespace. The
5479 # [limits](https://cloud.google.com/dlp/limits) page contains details about
5480 # the size limits of dictionaries. For dictionaries that do not fit within
5481 # these constraints, consider using `LargeCustomDictionaryConfig` in the
5482 # `StoredInfoType` API.
5483 &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.
5484 &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
5485 # at least one phrase and every phrase must contain at least 2 characters
5486 # that are letters or digits. [required]
5487 &quot;A String&quot;,
5488 ],
5489 },
5490 &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
5491 # is accepted.
5492 &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
5493 # Example: gs://[BUCKET_NAME]/dictionary.txt
5494 },
5495 },
5496 &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
5497 # `InspectDataSource`. Not currently supported in `InspectContent`.
5498 &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
5499 # `organizations/433245324/storedInfoTypes/432452342` or
5500 # `projects/project-id/storedInfoTypes/432452342`.
5501 &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
5502 # inspection was created. Output-only field, populated by the system.
5503 },
5504 },
5505 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07005506 &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
5507 # included in the response; see Finding.quote.
5508 &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
5509 # Exclusion rules, contained in the set are executed in the end, other
5510 # rules are executed in the order they are specified for each info type.
5511 { # Rule set for modifying a set of infoTypes to alter behavior under certain
5512 # circumstances, depending on the specific details of the rules within the set.
5513 &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
5514 { # Type of information detected by the API.
5515 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5516 # creating a CustomInfoType, or one of the names listed
5517 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5518 # a built-in type. InfoType names should conform to the pattern
5519 # `[a-zA-Z0-9_]{1,64}`.
5520 },
5521 ],
5522 &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
5523 { # A single inspection rule to be applied to infoTypes, specified in
5524 # `InspectionRuleSet`.
5525 &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
5526 # proximity of hotwords.
5527 &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
5528 # part of a detection rule.
5529 &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
5530 # levels. For example, if a finding would be `POSSIBLE` without the
5531 # detection rule and `relative_likelihood` is 1, then it is upgraded to
5532 # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
5533 # Likelihood may never drop below `VERY_UNLIKELY` or exceed
5534 # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
5535 # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
5536 # a final likelihood of `LIKELY`.
5537 &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
5538 },
5539 &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
5540 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
5541 # specified, the entire match is returned. No more than 3 may be included.
5542 42,
5543 ],
5544 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
5545 # (https://github.com/google/re2/wiki/Syntax) can be found under the
5546 # google/re2 repository on GitHub.
5547 },
5548 &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.
5549 # The total length of the window cannot exceed 1000 characters. Note that
5550 # the finding itself will be included in the window, so that hotwords may
5551 # be used to match substrings of the finding itself. For example, the
5552 # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
5553 # adjusted upwards if the area code is known to be the local area code of
5554 # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
5555 # is the area code in question.
5556 # rule.
5557 &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
5558 &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
5559 },
5560 },
5561 &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
5562 # `InspectionRuleSet` are removed from results.
5563 &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
5564 # be used to match sensitive information specific to the data, such as a list
5565 # of employee IDs or job titles.
5566 #
5567 # Dictionary words are case-insensitive and all characters other than letters
5568 # and digits in the unicode [Basic Multilingual
5569 # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
5570 # will be replaced with whitespace when scanning for matches, so the
5571 # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
5572 # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
5573 # surrounding any match must be of a different type than the adjacent
5574 # characters within the word, so letters must be next to non-letters and
5575 # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
5576 # match the first three letters of the text &quot;jen123&quot; but will return no
5577 # matches for &quot;jennifer&quot;.
5578 #
5579 # Dictionary words containing a large number of characters that are not
5580 # letters or digits may result in unexpected findings because such characters
5581 # are treated as whitespace. The
5582 # [limits](https://cloud.google.com/dlp/limits) page contains details about
5583 # the size limits of dictionaries. For dictionaries that do not fit within
5584 # these constraints, consider using `LargeCustomDictionaryConfig` in the
5585 # `StoredInfoType` API.
5586 &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.
5587 &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
5588 # at least one phrase and every phrase must contain at least 2 characters
5589 # that are letters or digits. [required]
5590 &quot;A String&quot;,
5591 ],
5592 },
5593 &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
5594 # is accepted.
5595 &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
5596 # Example: gs://[BUCKET_NAME]/dictionary.txt
5597 },
5598 },
5599 &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
5600 &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
5601 # specified, the entire match is returned. No more than 3 may be included.
5602 42,
5603 ],
5604 &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
5605 # (https://github.com/google/re2/wiki/Syntax) can be found under the
5606 # google/re2 repository on GitHub.
5607 },
5608 &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
5609 &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
5610 # contained within with a finding of an infoType from this list. For
5611 # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
5612 # `exclusion_rule` containing `exclude_info_types.info_types` with
5613 # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
5614 # with EMAIL_ADDRESS finding.
5615 # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
5616 # finding, namely email address.
5617 { # Type of information detected by the API.
5618 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5619 # creating a CustomInfoType, or one of the names listed
5620 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5621 # a built-in type. InfoType names should conform to the pattern
5622 # `[a-zA-Z0-9_]{1,64}`.
5623 },
5624 ],
5625 },
5626 &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
5627 },
5628 },
5629 ],
5630 },
5631 ],
5632 &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
5633 &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
5634 # When set within `InspectJobConfig`,
5635 # the maximum returned is 2000 regardless if this is set higher.
5636 # When set within `InspectContentRequest`, this field is ignored.
5637 &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
5638 { # Max findings configuration per infoType, per content item or long
5639 # running DlpJob.
5640 &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
5641 &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
5642 # info_type should be provided. If InfoTypeLimit does not have an
5643 # info_type, the DLP API applies the limit against all info_types that
5644 # are found but not specified in another InfoTypeLimit.
5645 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5646 # creating a CustomInfoType, or one of the names listed
5647 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5648 # a built-in type. InfoType names should conform to the pattern
5649 # `[a-zA-Z0-9_]{1,64}`.
5650 },
5651 },
5652 ],
5653 &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
5654 # When set within `InspectContentRequest`, the maximum returned is 2000
5655 # regardless if this is set higher.
5656 },
Bu Sun Kim65020912020-05-20 12:08:20 -07005657 },
5658 &quot;locationId&quot;: &quot;A String&quot;, # The geographic location to process content reidentification. Reserved for
5659 # future extensions.
5660 &quot;reidentifyTemplateName&quot;: &quot;A String&quot;, # Template to use. References an instance of `DeidentifyTemplate`.
5661 # Any configuration directly specified in `reidentify_config` or
5662 # `inspect_config` will override those set in the template. Singular fields
5663 # that are set in this request will replace their corresponding fields in the
5664 # template. Repeated fields are appended. Singular sub-messages and groups
5665 # are recursively merged.
5666 &quot;reidentifyConfig&quot;: { # The configuration that controls how the data will change. # Configuration for the re-identification of the content item.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005667 # This field shares the same proto message type that is used for
5668 # de-identification, however its usage here is for the reversal of the
5669 # previous de-identification. Re-identification is performed by examining
5670 # the transformations used to de-identify the items and executing the
5671 # reverse. This requires that only reversible transformations
5672 # be provided here. The reversible transformations are:
5673 #
Dan O'Mearadd494642020-05-01 07:42:23 -07005674 # - `CryptoDeterministicConfig`
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07005675 # - `CryptoReplaceFfxFpeConfig`
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07005676 &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
5677 # transformation everywhere.
5678 # apply various `PrimitiveTransformation`s to each finding, where the
5679 # transformation is applied to only values that were identified as a specific
5680 # info_type.
5681 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one
5682 # for a given infoType.
5683 { # A transformation to apply to text that is identified as a specific
5684 # info_type.
5685 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
5686 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
5687 # portion of the value.
5688 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
5689 },
5690 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
5691 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
5692 # to learn more.
5693 &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.
5694 # If set, must also set cryptoKey. If set, shift will be consistent for the
5695 # given context.
5696 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
5697 },
5698 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
5699 # range (inclusive ends). Negative means shift to earlier in time. Must not
5700 # be more than 365250 days (1000 years) each direction.
5701 #
5702 # For example, 3 means shift date to at most 3 days into the future.
5703 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
5704 &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
5705 # results in the same shift for the same context and crypto_key. If
5706 # set, must also set context. Can only be applied to table items.
5707 # a key encryption key (KEK) stored by KMS).
5708 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
5709 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
5710 # unwrap the data crypto key.
5711 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
5712 # leaking the key. Choose another type of key if possible.
5713 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
5714 },
5715 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
5716 # It will be discarded after the request finishes.
5717 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
5718 # This is an arbitrary string used to differentiate different keys.
5719 # A unique key is generated per name: two separate `TransientCryptoKey`
5720 # protos share the same generated key if their names are the same.
5721 # When the data crypto key is generated, this name is not used in any way
5722 # (repeating the api call will result in a different key being generated).
5723 },
5724 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
5725 # The wrapped key must be a 128/192/256 bit key.
5726 # Authorization requires the following IAM permissions when sending a request
5727 # to perform a crypto transformation using a kms-wrapped crypto key:
5728 # dlp.kms.encrypt
5729 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
5730 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
5731 },
5732 },
5733 },
5734 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
5735 },
5736 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
5737 # Uses SHA-256.
5738 # The key size must be either 32 or 64 bytes.
5739 # Outputs a base64 encoded representation of the hashed output
5740 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
5741 # Currently, only string and integer values can be hashed.
5742 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
5743 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
5744 # a key encryption key (KEK) stored by KMS).
5745 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
5746 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
5747 # unwrap the data crypto key.
5748 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
5749 # leaking the key. Choose another type of key if possible.
5750 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
5751 },
5752 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
5753 # It will be discarded after the request finishes.
5754 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
5755 # This is an arbitrary string used to differentiate different keys.
5756 # A unique key is generated per name: two separate `TransientCryptoKey`
5757 # protos share the same generated key if their names are the same.
5758 # When the data crypto key is generated, this name is not used in any way
5759 # (repeating the api call will result in a different key being generated).
5760 },
5761 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
5762 # The wrapped key must be a 128/192/256 bit key.
5763 # Authorization requires the following IAM permissions when sending a request
5764 # to perform a crypto transformation using a kms-wrapped crypto key:
5765 # dlp.kms.encrypt
5766 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
5767 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
5768 },
5769 },
5770 },
5771 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
5772 # (FPE) with the FFX mode of operation; however when used in the
5773 # `ReidentifyContent` API method, it serves the opposite function by reversing
5774 # the surrogate back into the original identifier. The identifier must be
5775 # encoded as ASCII. For a given crypto key and context, the same identifier
5776 # will be replaced with the same surrogate. Identifiers must be at least two
5777 # characters long. In the case that the identifier is the empty string, it will
5778 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
5779 # more.
5780 #
5781 # Note: We recommend using CryptoDeterministicConfig for all use cases which
5782 # do not require preserving the input alphabet space and size, plus warrant
5783 # referential integrity.
5784 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
5785 # This annotation will be applied to the surrogate by prefixing it with
5786 # the name of the custom infoType followed by the number of
5787 # characters comprising the surrogate. The following scheme defines the
5788 # format: info_type_name(surrogate_character_count):surrogate
5789 #
5790 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
5791 # the surrogate is &#x27;abc&#x27;, the full replacement value
5792 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
5793 #
5794 # This annotation identifies the surrogate when inspecting content using the
5795 # custom infoType
5796 # [`SurrogateType`](/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
5797 # This facilitates reversal of the surrogate when it occurs in free text.
5798 #
5799 # In order for inspection to work properly, the name of this infoType must
5800 # not occur naturally anywhere in your data; otherwise, inspection may
5801 # find a surrogate that does not correspond to an actual identifier.
5802 # Therefore, choose your custom infoType name carefully after considering
5803 # what your data looks like. One way to select a name that has a high chance
5804 # of yielding reliable detection is to include one or more unicode characters
5805 # that are highly improbable to exist in your data.
5806 # For example, assuming your data is entered from a regular ASCII keyboard,
5807 # the symbol with the hex code point 29DD might be used like so:
5808 # ⧝MY_TOKEN_TYPE
5809 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5810 # creating a CustomInfoType, or one of the names listed
5811 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5812 # a built-in type. InfoType names should conform to the pattern
5813 # `[a-zA-Z0-9_]{1,64}`.
5814 },
5815 &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
5816 # identifier in two different contexts won&#x27;t be given the same surrogate. If
5817 # the context is not set, a default tweak will be used.
5818 #
5819 # If the context is set but:
5820 #
5821 # 1. there is no record present when transforming a given value or
5822 # 1. the field is not present when transforming a given value,
5823 #
5824 # a default tweak will be used.
5825 #
5826 # Note that case (1) is expected when an `InfoTypeTransformation` is
5827 # applied to both structured and non-structured `ContentItem`s.
5828 # Currently, the referenced field may be of value type integer or string.
5829 #
5830 # The tweak is constructed as a sequence of bytes in big endian byte order
5831 # such that:
5832 #
5833 # - a 64 bit integer is encoded followed by a single byte of value 1
5834 # - a string is encoded in UTF-8 format followed by a single byte of value 2
5835 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
5836 },
5837 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
5838 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
5839 # a key encryption key (KEK) stored by KMS).
5840 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
5841 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
5842 # unwrap the data crypto key.
5843 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
5844 # leaking the key. Choose another type of key if possible.
5845 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
5846 },
5847 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
5848 # It will be discarded after the request finishes.
5849 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
5850 # This is an arbitrary string used to differentiate different keys.
5851 # A unique key is generated per name: two separate `TransientCryptoKey`
5852 # protos share the same generated key if their names are the same.
5853 # When the data crypto key is generated, this name is not used in any way
5854 # (repeating the api call will result in a different key being generated).
5855 },
5856 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
5857 # The wrapped key must be a 128/192/256 bit key.
5858 # Authorization requires the following IAM permissions when sending a request
5859 # to perform a crypto transformation using a kms-wrapped crypto key:
5860 # dlp.kms.encrypt
5861 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
5862 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
5863 },
5864 },
5865 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
5866 # that the FFX mode natively supports. This happens before/after
5867 # encryption/decryption.
5868 # Each character listed must appear only once.
5869 # Number of characters must be in the range [2, 95].
5870 # This must be encoded as ASCII.
5871 # The order of characters does not matter.
5872 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
5873 },
5874 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
5875 # input. Outputs a base64 encoded representation of the encrypted output.
5876 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
5877 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
5878 # This annotation will be applied to the surrogate by prefixing it with
5879 # the name of the custom info type followed by the number of
5880 # characters comprising the surrogate. The following scheme defines the
5881 # format: {info type name}({surrogate character count}):{surrogate}
5882 #
5883 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
5884 # the surrogate is &#x27;abc&#x27;, the full replacement value
5885 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
5886 #
5887 # This annotation identifies the surrogate when inspecting content using the
5888 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
5889 # surrogate when it occurs in free text.
5890 #
5891 # Note: For record transformations where the entire cell in a table is being
5892 # transformed, surrogates are not mandatory. Surrogates are used to denote
5893 # the location of the token and are necessary for re-identification in free
5894 # form text.
5895 #
5896 # In order for inspection to work properly, the name of this info type must
5897 # not occur naturally anywhere in your data; otherwise, inspection may either
5898 #
5899 # - reverse a surrogate that does not correspond to an actual identifier
5900 # - be unable to parse the surrogate and result in an error
5901 #
5902 # Therefore, choose your custom info type name carefully after considering
5903 # what your data looks like. One way to select a name that has a high chance
5904 # of yielding reliable detection is to include one or more unicode characters
5905 # that are highly improbable to exist in your data.
5906 # For example, assuming your data is entered from a regular ASCII keyboard,
5907 # the symbol with the hex code point 29DD might be used like so:
5908 # ⧝MY_TOKEN_TYPE.
5909 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
5910 # creating a CustomInfoType, or one of the names listed
5911 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
5912 # a built-in type. InfoType names should conform to the pattern
5913 # `[a-zA-Z0-9_]{1,64}`.
5914 },
5915 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
5916 # referential integrity such that the same identifier in two different
5917 # contexts will be given a distinct surrogate. The context is appended to
5918 # plaintext value being encrypted. On decryption the provided context is
5919 # validated against the value used during encryption. If a context was
5920 # provided during encryption, same context must be provided during decryption
5921 # as well.
5922 #
5923 # If the context is not set, plaintext would be used as is for encryption.
5924 # If the context is set but:
5925 #
5926 # 1. there is no record present when transforming a given value or
5927 # 2. the field is not present when transforming a given value,
5928 #
5929 # plaintext would be used as is for encryption.
5930 #
5931 # Note that case (1) is expected when an `InfoTypeTransformation` is
5932 # applied to both structured and non-structured `ContentItem`s.
5933 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
5934 },
5935 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
5936 # a key encryption key (KEK) stored by KMS).
5937 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
5938 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
5939 # unwrap the data crypto key.
5940 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
5941 # leaking the key. Choose another type of key if possible.
5942 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
5943 },
5944 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
5945 # It will be discarded after the request finishes.
5946 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
5947 # This is an arbitrary string used to differentiate different keys.
5948 # A unique key is generated per name: two separate `TransientCryptoKey`
5949 # protos share the same generated key if their names are the same.
5950 # When the data crypto key is generated, this name is not used in any way
5951 # (repeating the api call will result in a different key being generated).
5952 },
5953 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
5954 # The wrapped key must be a 128/192/256 bit key.
5955 # Authorization requires the following IAM permissions when sending a request
5956 # to perform a crypto transformation using a kms-wrapped crypto key:
5957 # dlp.kms.encrypt
5958 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
5959 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
5960 },
5961 },
5962 },
5963 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
5964 # replacement values are dynamically provided by the user for custom behavior,
5965 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
5966 # This can be used on
5967 # data of type: number, long, string, timestamp.
5968 # If the bound `Value` type differs from the type of data being transformed, we
5969 # will first attempt converting the type of the data to be transformed to match
5970 # the type of the bound before comparing.
5971 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
5972 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
5973 { # Bucket is represented as a range, along with replacement values.
5974 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Replacement value for this bucket. If not provided
5975 # the default behavior will be to hyphenate the min-max range.
5976 # Note that for the purposes of inspection or transformation, the number
5977 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
5978 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
5979 # 123456789, the number of bytes would be counted as 9, even though an
5980 # int64 only holds up to 8 bytes of data.
5981 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
5982 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
5983 # and time zone are either specified elsewhere or are not significant. The date
5984 # is relative to the Proleptic Gregorian Calendar. This can represent:
5985 #
5986 # * A full date, with non-zero year, month and day values
5987 # * A month and day value, with a zero year, e.g. an anniversary
5988 # * A year on its own, with zero month and day values
5989 # * A year and month value, with a zero day, e.g. a credit card expiration date
5990 #
5991 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
5992 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
5993 # a year.
5994 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
5995 # month and day.
5996 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
5997 # if specifying a year by itself or a year and month where the day is not
5998 # significant.
5999 },
6000 &quot;stringValue&quot;: &quot;A String&quot;, # string
6001 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6002 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6003 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6004 # types are google.type.Date and `google.protobuf.Timestamp`.
6005 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6006 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6007 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6008 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6009 # allow the value 60 if it allows leap-seconds.
6010 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6011 },
6012 &quot;booleanValue&quot;: True or False, # boolean
6013 &quot;floatValue&quot;: 3.14, # float
6014 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6015 },
6016 &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
6017 # used.
6018 # Note that for the purposes of inspection or transformation, the number
6019 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6020 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6021 # 123456789, the number of bytes would be counted as 9, even though an
6022 # int64 only holds up to 8 bytes of data.
6023 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6024 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6025 # and time zone are either specified elsewhere or are not significant. The date
6026 # is relative to the Proleptic Gregorian Calendar. This can represent:
6027 #
6028 # * A full date, with non-zero year, month and day values
6029 # * A month and day value, with a zero year, e.g. an anniversary
6030 # * A year on its own, with zero month and day values
6031 # * A year and month value, with a zero day, e.g. a credit card expiration date
6032 #
6033 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6034 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6035 # a year.
6036 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6037 # month and day.
6038 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6039 # if specifying a year by itself or a year and month where the day is not
6040 # significant.
6041 },
6042 &quot;stringValue&quot;: &quot;A String&quot;, # string
6043 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6044 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6045 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6046 # types are google.type.Date and `google.protobuf.Timestamp`.
6047 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6048 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6049 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6050 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6051 # allow the value 60 if it allows leap-seconds.
6052 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6053 },
6054 &quot;booleanValue&quot;: True or False, # boolean
6055 &quot;floatValue&quot;: 3.14, # float
6056 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6057 },
6058 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
6059 # Note that for the purposes of inspection or transformation, the number
6060 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6061 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6062 # 123456789, the number of bytes would be counted as 9, even though an
6063 # int64 only holds up to 8 bytes of data.
6064 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6065 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6066 # and time zone are either specified elsewhere or are not significant. The date
6067 # is relative to the Proleptic Gregorian Calendar. This can represent:
6068 #
6069 # * A full date, with non-zero year, month and day values
6070 # * A month and day value, with a zero year, e.g. an anniversary
6071 # * A year on its own, with zero month and day values
6072 # * A year and month value, with a zero day, e.g. a credit card expiration date
6073 #
6074 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6075 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6076 # a year.
6077 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6078 # month and day.
6079 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6080 # if specifying a year by itself or a year and month where the day is not
6081 # significant.
6082 },
6083 &quot;stringValue&quot;: &quot;A String&quot;, # string
6084 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6085 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6086 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6087 # types are google.type.Date and `google.protobuf.Timestamp`.
6088 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6089 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6090 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6091 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6092 # allow the value 60 if it allows leap-seconds.
6093 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6094 },
6095 &quot;booleanValue&quot;: True or False, # boolean
6096 &quot;floatValue&quot;: 3.14, # float
6097 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6098 },
6099 },
6100 ],
6101 },
6102 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
6103 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
6104 # output would be &#x27;My phone number is &#x27;.
6105 },
6106 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
6107 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
6108 # Note that for the purposes of inspection or transformation, the number
6109 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6110 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6111 # 123456789, the number of bytes would be counted as 9, even though an
6112 # int64 only holds up to 8 bytes of data.
6113 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6114 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6115 # and time zone are either specified elsewhere or are not significant. The date
6116 # is relative to the Proleptic Gregorian Calendar. This can represent:
6117 #
6118 # * A full date, with non-zero year, month and day values
6119 # * A month and day value, with a zero year, e.g. an anniversary
6120 # * A year on its own, with zero month and day values
6121 # * A year and month value, with a zero day, e.g. a credit card expiration date
6122 #
6123 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6124 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6125 # a year.
6126 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6127 # month and day.
6128 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6129 # if specifying a year by itself or a year and month where the day is not
6130 # significant.
6131 },
6132 &quot;stringValue&quot;: &quot;A String&quot;, # string
6133 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6134 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6135 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6136 # types are google.type.Date and `google.protobuf.Timestamp`.
6137 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6138 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6139 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6140 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6141 # allow the value 60 if it allows leap-seconds.
6142 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6143 },
6144 &quot;booleanValue&quot;: True or False, # boolean
6145 &quot;floatValue&quot;: 3.14, # float
6146 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6147 },
6148 },
6149 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
6150 # Bucketing transformation can provide all of this functionality,
6151 # but requires more configuration. This message is provided as a convenience to
6152 # the user for simple bucketing strategies.
6153 #
6154 # The transformed value will be a hyphenated string of
6155 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
6156 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
6157 #
6158 # This can be used on data of type: double, long.
6159 #
6160 # If the bound Value type differs from the type of data
6161 # being transformed, we will first attempt converting the type of the data to
6162 # be transformed to match the type of the bound before comparing.
6163 #
6164 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
6165 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
6166 # grouped together into a single bucket; for example if `upper_bound` = 89,
6167 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
6168 # Note that for the purposes of inspection or transformation, the number
6169 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6170 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6171 # 123456789, the number of bytes would be counted as 9, even though an
6172 # int64 only holds up to 8 bytes of data.
6173 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6174 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6175 # and time zone are either specified elsewhere or are not significant. The date
6176 # is relative to the Proleptic Gregorian Calendar. This can represent:
6177 #
6178 # * A full date, with non-zero year, month and day values
6179 # * A month and day value, with a zero year, e.g. an anniversary
6180 # * A year on its own, with zero month and day values
6181 # * A year and month value, with a zero day, e.g. a credit card expiration date
6182 #
6183 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6184 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6185 # a year.
6186 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6187 # month and day.
6188 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6189 # if specifying a year by itself or a year and month where the day is not
6190 # significant.
6191 },
6192 &quot;stringValue&quot;: &quot;A String&quot;, # string
6193 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6194 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6195 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6196 # types are google.type.Date and `google.protobuf.Timestamp`.
6197 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6198 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6199 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6200 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6201 # allow the value 60 if it allows leap-seconds.
6202 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6203 },
6204 &quot;booleanValue&quot;: True or False, # boolean
6205 &quot;floatValue&quot;: 3.14, # float
6206 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6207 },
6208 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
6209 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
6210 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
6211 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
6212 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
6213 # grouped together into a single bucket; for example if `lower_bound` = 10,
6214 # then all values less than 10 are replaced with the value &quot;-10&quot;.
6215 # Note that for the purposes of inspection or transformation, the number
6216 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6217 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6218 # 123456789, the number of bytes would be counted as 9, even though an
6219 # int64 only holds up to 8 bytes of data.
6220 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6221 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6222 # and time zone are either specified elsewhere or are not significant. The date
6223 # is relative to the Proleptic Gregorian Calendar. This can represent:
6224 #
6225 # * A full date, with non-zero year, month and day values
6226 # * A month and day value, with a zero year, e.g. an anniversary
6227 # * A year on its own, with zero month and day values
6228 # * A year and month value, with a zero day, e.g. a credit card expiration date
6229 #
6230 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6231 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6232 # a year.
6233 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6234 # month and day.
6235 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6236 # if specifying a year by itself or a year and month where the day is not
6237 # significant.
6238 },
6239 &quot;stringValue&quot;: &quot;A String&quot;, # string
6240 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6241 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6242 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6243 # types are google.type.Date and `google.protobuf.Timestamp`.
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 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6247 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6248 # allow the value 60 if it allows leap-seconds.
6249 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6250 },
6251 &quot;booleanValue&quot;: True or False, # boolean
6252 &quot;floatValue&quot;: 3.14, # float
6253 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6254 },
6255 },
6256 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
6257 # fixed character. Masking can start from the beginning or end of the string.
6258 # This can be used on data of any type (numbers, longs, and so on) and when
6259 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
6260 # type. (This allows you to take a long like 123 and modify it to a string like
6261 # **3.
6262 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
6263 # characters. For example, if the input string is `555-555-5555` and you
6264 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
6265 # returns `***-**5-5555`.
6266 { # Characters to skip when doing deidentification of a value. These will be left
6267 # alone and skipped.
6268 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
6269 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
6270 # punctuation.
6271 },
6272 ],
6273 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
6274 # masked. Skipped characters do not count towards this tally.
6275 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
6276 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
6277 # code or credit card number. This string must have a length of 1. If not
6278 # supplied, this value defaults to `*` for strings, and `0` for digits.
6279 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
6280 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
6281 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
6282 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
6283 # is `true`, then the string `12345` is masked as `12***`.
6284 },
6285 },
6286 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause
6287 # this transformation to apply to all findings that correspond to
6288 # infoTypes that were requested in `InspectConfig`.
6289 { # Type of information detected by the API.
6290 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
6291 # creating a CustomInfoType, or one of the names listed
6292 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
6293 # a built-in type. InfoType names should conform to the pattern
6294 # `[a-zA-Z0-9_]{1,64}`.
6295 },
6296 ],
6297 },
6298 ],
6299 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006300 &quot;transformationErrorHandling&quot;: { # How to handle transformation errors during de-identification. A # Mode for handling transformation errors. If left unspecified, the default
6301 # mode is `TransformationErrorHandling.ThrowError`.
6302 # transformation error occurs when the requested transformation is incompatible
6303 # with the data. For example, trying to de-identify an IP address using a
6304 # `DateShift` transformation would result in a transformation error, since date
6305 # info cannot be extracted from an IP address.
6306 # Information about any incompatible transformations, and how they were
6307 # handled, is returned in the response as part of the
6308 # `TransformationOverviews`.
6309 &quot;throwError&quot;: { # Throw an error and fail the request when a transformation error occurs. # Throw an error
6310 },
6311 &quot;leaveUntransformed&quot;: { # Skips the data without modifying it if the requested transformation would # Ignore errors
6312 # cause an error. For example, if a `DateShift` transformation were applied
6313 # an an IP address, this mode would leave the IP address unchanged in the
6314 # response.
6315 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006316 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006317 &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
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006318 # specific locations within structured datasets, such as transforming
6319 # a column within a table.
6320 # table.
Bu Sun Kim65020912020-05-20 12:08:20 -07006321 &quot;fieldTransformations&quot;: [ # Transform the record by applying various field transformations.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006322 { # The transformation to apply to the field.
Bu Sun Kim65020912020-05-20 12:08:20 -07006323 &quot;fields&quot;: [ # Required. Input field(s) to apply the transformation to.
Dan O'Mearadd494642020-05-01 07:42:23 -07006324 { # General identifier of a data field in a storage service.
Bu Sun Kim65020912020-05-20 12:08:20 -07006325 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Dan O'Mearadd494642020-05-01 07:42:23 -07006326 },
6327 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07006328 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and # Treat the contents of the field as free text, and selectively
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006329 # transform content that matches an `InfoType`.
6330 # apply various `PrimitiveTransformation`s to each finding, where the
6331 # transformation is applied to only values that were identified as a specific
6332 # info_type.
Bu Sun Kim65020912020-05-20 12:08:20 -07006333 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one
Dan O'Mearadd494642020-05-01 07:42:23 -07006334 # for a given infoType.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006335 { # A transformation to apply to text that is identified as a specific
6336 # info_type.
Bu Sun Kim65020912020-05-20 12:08:20 -07006337 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
6338 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
6339 # portion of the value.
6340 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
6341 },
6342 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
6343 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
6344 # to learn more.
6345 &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.
6346 # If set, must also set cryptoKey. If set, shift will be consistent for the
6347 # given context.
6348 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
6349 },
6350 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
6351 # range (inclusive ends). Negative means shift to earlier in time. Must not
6352 # be more than 365250 days (1000 years) each direction.
6353 #
6354 # For example, 3 means shift date to at most 3 days into the future.
6355 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
6356 &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
6357 # results in the same shift for the same context and crypto_key. If
6358 # set, must also set context. Can only be applied to table items.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006359 # a key encryption key (KEK) stored by KMS).
6360 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
6361 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
6362 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07006363 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006364 # leaking the key. Choose another type of key if possible.
Bu Sun Kim65020912020-05-20 12:08:20 -07006365 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006366 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006367 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006368 # It will be discarded after the request finishes.
Bu Sun Kim65020912020-05-20 12:08:20 -07006369 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006370 # This is an arbitrary string used to differentiate different keys.
6371 # A unique key is generated per name: two separate `TransientCryptoKey`
6372 # protos share the same generated key if their names are the same.
6373 # When the data crypto key is generated, this name is not used in any way
6374 # (repeating the api call will result in a different key being generated).
6375 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006376 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
6377 # The wrapped key must be a 128/192/256 bit key.
6378 # Authorization requires the following IAM permissions when sending a request
6379 # to perform a crypto transformation using a kms-wrapped crypto key:
6380 # dlp.kms.encrypt
6381 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
6382 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
6383 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006384 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006385 },
6386 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
6387 },
6388 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
6389 # Uses SHA-256.
6390 # The key size must be either 32 or 64 bytes.
6391 # Outputs a base64 encoded representation of the hashed output
6392 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
6393 # Currently, only string and integer values can be hashed.
6394 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
6395 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
6396 # a key encryption key (KEK) stored by KMS).
6397 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
6398 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
6399 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07006400 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
6401 # leaking the key. Choose another type of key if possible.
6402 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
6403 },
6404 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
6405 # It will be discarded after the request finishes.
6406 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
6407 # This is an arbitrary string used to differentiate different keys.
6408 # A unique key is generated per name: two separate `TransientCryptoKey`
6409 # protos share the same generated key if their names are the same.
6410 # When the data crypto key is generated, this name is not used in any way
6411 # (repeating the api call will result in a different key being generated).
6412 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006413 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
6414 # The wrapped key must be a 128/192/256 bit key.
6415 # Authorization requires the following IAM permissions when sending a request
6416 # to perform a crypto transformation using a kms-wrapped crypto key:
6417 # dlp.kms.encrypt
6418 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
6419 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
6420 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006421 },
6422 },
6423 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
6424 # (FPE) with the FFX mode of operation; however when used in the
6425 # `ReidentifyContent` API method, it serves the opposite function by reversing
6426 # the surrogate back into the original identifier. The identifier must be
6427 # encoded as ASCII. For a given crypto key and context, the same identifier
6428 # will be replaced with the same surrogate. Identifiers must be at least two
6429 # characters long. In the case that the identifier is the empty string, it will
6430 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
6431 # more.
6432 #
6433 # Note: We recommend using CryptoDeterministicConfig for all use cases which
6434 # do not require preserving the input alphabet space and size, plus warrant
6435 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07006436 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
6437 # This annotation will be applied to the surrogate by prefixing it with
6438 # the name of the custom infoType followed by the number of
6439 # characters comprising the surrogate. The following scheme defines the
6440 # format: info_type_name(surrogate_character_count):surrogate
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006441 #
Bu Sun Kim65020912020-05-20 12:08:20 -07006442 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
6443 # the surrogate is &#x27;abc&#x27;, the full replacement value
6444 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
6445 #
6446 # This annotation identifies the surrogate when inspecting content using the
6447 # custom infoType
6448 # [`SurrogateType`](/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
6449 # This facilitates reversal of the surrogate when it occurs in free text.
6450 #
6451 # In order for inspection to work properly, the name of this infoType must
6452 # not occur naturally anywhere in your data; otherwise, inspection may
6453 # find a surrogate that does not correspond to an actual identifier.
6454 # Therefore, choose your custom infoType name carefully after considering
6455 # what your data looks like. One way to select a name that has a high chance
6456 # of yielding reliable detection is to include one or more unicode characters
6457 # that are highly improbable to exist in your data.
6458 # For example, assuming your data is entered from a regular ASCII keyboard,
6459 # the symbol with the hex code point 29DD might be used like so:
6460 # ⧝MY_TOKEN_TYPE
6461 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
6462 # creating a CustomInfoType, or one of the names listed
6463 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
6464 # a built-in type. InfoType names should conform to the pattern
6465 # `[a-zA-Z0-9_]{1,64}`.
6466 },
6467 &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
6468 # identifier in two different contexts won&#x27;t be given the same surrogate. If
6469 # the context is not set, a default tweak will be used.
6470 #
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006471 # If the context is set but:
6472 #
6473 # 1. there is no record present when transforming a given value or
Bu Sun Kim65020912020-05-20 12:08:20 -07006474 # 1. the field is not present when transforming a given value,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006475 #
Bu Sun Kim65020912020-05-20 12:08:20 -07006476 # a default tweak will be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006477 #
6478 # Note that case (1) is expected when an `InfoTypeTransformation` is
6479 # applied to both structured and non-structured `ContentItem`s.
Bu Sun Kim65020912020-05-20 12:08:20 -07006480 # Currently, the referenced field may be of value type integer or string.
6481 #
6482 # The tweak is constructed as a sequence of bytes in big endian byte order
6483 # such that:
6484 #
6485 # - a 64 bit integer is encoded followed by a single byte of value 1
6486 # - a string is encoded in UTF-8 format followed by a single byte of value 2
6487 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006488 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006489 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
6490 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
6491 # a key encryption key (KEK) stored by KMS).
6492 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
6493 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
6494 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07006495 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
6496 # leaking the key. Choose another type of key if possible.
6497 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
6498 },
6499 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
6500 # It will be discarded after the request finishes.
6501 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
6502 # This is an arbitrary string used to differentiate different keys.
6503 # A unique key is generated per name: two separate `TransientCryptoKey`
6504 # protos share the same generated key if their names are the same.
6505 # When the data crypto key is generated, this name is not used in any way
6506 # (repeating the api call will result in a different key being generated).
6507 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006508 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
6509 # The wrapped key must be a 128/192/256 bit key.
6510 # Authorization requires the following IAM permissions when sending a request
6511 # to perform a crypto transformation using a kms-wrapped crypto key:
6512 # dlp.kms.encrypt
6513 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
6514 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
6515 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006516 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006517 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
6518 # that the FFX mode natively supports. This happens before/after
6519 # encryption/decryption.
6520 # Each character listed must appear only once.
6521 # Number of characters must be in the range [2, 95].
6522 # This must be encoded as ASCII.
6523 # The order of characters does not matter.
6524 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07006525 },
6526 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
6527 # input. Outputs a base64 encoded representation of the encrypted output.
6528 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
6529 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006530 # This annotation will be applied to the surrogate by prefixing it with
6531 # the name of the custom info type followed by the number of
6532 # characters comprising the surrogate. The following scheme defines the
Dan O'Mearadd494642020-05-01 07:42:23 -07006533 # format: {info type name}({surrogate character count}):{surrogate}
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006534 #
Bu Sun Kim65020912020-05-20 12:08:20 -07006535 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
6536 # the surrogate is &#x27;abc&#x27;, the full replacement value
6537 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006538 #
6539 # This annotation identifies the surrogate when inspecting content using the
Bu Sun Kim65020912020-05-20 12:08:20 -07006540 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006541 # surrogate when it occurs in free text.
6542 #
Dan O'Mearadd494642020-05-01 07:42:23 -07006543 # Note: For record transformations where the entire cell in a table is being
6544 # transformed, surrogates are not mandatory. Surrogates are used to denote
6545 # the location of the token and are necessary for re-identification in free
6546 # form text.
6547 #
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006548 # In order for inspection to work properly, the name of this info type must
6549 # not occur naturally anywhere in your data; otherwise, inspection may either
6550 #
6551 # - reverse a surrogate that does not correspond to an actual identifier
6552 # - be unable to parse the surrogate and result in an error
6553 #
6554 # Therefore, choose your custom info type name carefully after considering
6555 # what your data looks like. One way to select a name that has a high chance
6556 # of yielding reliable detection is to include one or more unicode characters
6557 # that are highly improbable to exist in your data.
6558 # For example, assuming your data is entered from a regular ASCII keyboard,
6559 # the symbol with the hex code point 29DD might be used like so:
Dan O'Mearadd494642020-05-01 07:42:23 -07006560 # ⧝MY_TOKEN_TYPE.
Bu Sun Kim65020912020-05-20 12:08:20 -07006561 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006562 # creating a CustomInfoType, or one of the names listed
6563 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
6564 # a built-in type. InfoType names should conform to the pattern
Dan O'Mearadd494642020-05-01 07:42:23 -07006565 # `[a-zA-Z0-9_]{1,64}`.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006566 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006567 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
6568 # referential integrity such that the same identifier in two different
6569 # contexts will be given a distinct surrogate. The context is appended to
6570 # plaintext value being encrypted. On decryption the provided context is
6571 # validated against the value used during encryption. If a context was
6572 # provided during encryption, same context must be provided during decryption
6573 # as well.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006574 #
Bu Sun Kim65020912020-05-20 12:08:20 -07006575 # If the context is not set, plaintext would be used as is for encryption.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006576 # If the context is set but:
6577 #
6578 # 1. there is no record present when transforming a given value or
Bu Sun Kim65020912020-05-20 12:08:20 -07006579 # 2. the field is not present when transforming a given value,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006580 #
Bu Sun Kim65020912020-05-20 12:08:20 -07006581 # plaintext would be used as is for encryption.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006582 #
6583 # Note that case (1) is expected when an `InfoTypeTransformation` is
6584 # applied to both structured and non-structured `ContentItem`s.
Bu Sun Kim65020912020-05-20 12:08:20 -07006585 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006586 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006587 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
6588 # a key encryption key (KEK) stored by KMS).
6589 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
6590 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
6591 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07006592 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
6593 # leaking the key. Choose another type of key if possible.
6594 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
6595 },
6596 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
6597 # It will be discarded after the request finishes.
6598 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
6599 # This is an arbitrary string used to differentiate different keys.
6600 # A unique key is generated per name: two separate `TransientCryptoKey`
6601 # protos share the same generated key if their names are the same.
6602 # When the data crypto key is generated, this name is not used in any way
6603 # (repeating the api call will result in a different key being generated).
6604 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006605 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
6606 # The wrapped key must be a 128/192/256 bit key.
6607 # Authorization requires the following IAM permissions when sending a request
6608 # to perform a crypto transformation using a kms-wrapped crypto key:
6609 # dlp.kms.encrypt
6610 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
6611 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
6612 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006613 },
6614 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006615 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
Dan O'Mearadd494642020-05-01 07:42:23 -07006616 # replacement values are dynamically provided by the user for custom behavior,
6617 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
6618 # This can be used on
6619 # data of type: number, long, string, timestamp.
6620 # If the bound `Value` type differs from the type of data being transformed, we
6621 # will first attempt converting the type of the data to be transformed to match
6622 # the type of the bound before comparing.
6623 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07006624 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
Dan O'Mearadd494642020-05-01 07:42:23 -07006625 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kim65020912020-05-20 12:08:20 -07006626 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Replacement value for this bucket. If not provided
6627 # the default behavior will be to hyphenate the min-max range.
6628 # Note that for the purposes of inspection or transformation, the number
6629 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6630 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6631 # 123456789, the number of bytes would be counted as 9, even though an
6632 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07006633 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6634 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6635 # and time zone are either specified elsewhere or are not significant. The date
6636 # is relative to the Proleptic Gregorian Calendar. This can represent:
6637 #
6638 # * A full date, with non-zero year, month and day values
6639 # * A month and day value, with a zero year, e.g. an anniversary
6640 # * A year on its own, with zero month and day values
6641 # * A year and month value, with a zero day, e.g. a credit card expiration date
6642 #
6643 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6644 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6645 # a year.
6646 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6647 # month and day.
6648 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6649 # if specifying a year by itself or a year and month where the day is not
6650 # significant.
6651 },
6652 &quot;stringValue&quot;: &quot;A String&quot;, # string
6653 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6654 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6655 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6656 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07006657 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6658 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6659 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006660 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6661 # allow the value 60 if it allows leap-seconds.
6662 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07006663 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006664 &quot;booleanValue&quot;: True or False, # boolean
6665 &quot;floatValue&quot;: 3.14, # float
6666 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6667 },
6668 &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
6669 # used.
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;timestampValue&quot;: &quot;A String&quot;, # timestamp
6676 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6677 # and time zone are either specified elsewhere or are not significant. The date
6678 # is relative to the Proleptic Gregorian Calendar. This can represent:
6679 #
6680 # * A full date, with non-zero year, month and day values
6681 # * A month and day value, with a zero year, e.g. an anniversary
6682 # * A year on its own, with zero month and day values
6683 # * A year and month value, with a zero day, e.g. a credit card expiration date
6684 #
6685 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6686 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6687 # a year.
6688 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6689 # month and day.
6690 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6691 # if specifying a year by itself or a year and month where the day is not
6692 # significant.
6693 },
6694 &quot;stringValue&quot;: &quot;A String&quot;, # string
6695 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6696 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6697 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6698 # types are google.type.Date and `google.protobuf.Timestamp`.
6699 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6700 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6701 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6702 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6703 # allow the value 60 if it allows leap-seconds.
6704 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6705 },
6706 &quot;booleanValue&quot;: True or False, # boolean
6707 &quot;floatValue&quot;: 3.14, # float
6708 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6709 },
6710 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
6711 # Note that for the purposes of inspection or transformation, the number
6712 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6713 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6714 # 123456789, the number of bytes would be counted as 9, even though an
6715 # int64 only holds up to 8 bytes of data.
6716 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6717 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6718 # and time zone are either specified elsewhere or are not significant. The date
6719 # is relative to the Proleptic Gregorian Calendar. This can represent:
6720 #
6721 # * A full date, with non-zero year, month and day values
6722 # * A month and day value, with a zero year, e.g. an anniversary
6723 # * A year on its own, with zero month and day values
6724 # * A year and month value, with a zero day, e.g. a credit card expiration date
6725 #
6726 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6727 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6728 # a year.
6729 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6730 # month and day.
6731 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6732 # if specifying a year by itself or a year and month where the day is not
6733 # significant.
6734 },
6735 &quot;stringValue&quot;: &quot;A String&quot;, # string
6736 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6737 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6738 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6739 # types are google.type.Date and `google.protobuf.Timestamp`.
6740 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6741 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6742 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6743 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6744 # allow the value 60 if it allows leap-seconds.
6745 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6746 },
6747 &quot;booleanValue&quot;: True or False, # boolean
6748 &quot;floatValue&quot;: 3.14, # float
6749 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Dan O'Mearadd494642020-05-01 07:42:23 -07006750 },
6751 },
6752 ],
6753 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006754 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
6755 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
6756 # output would be &#x27;My phone number is &#x27;.
6757 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006758 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
6759 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006760 # Note that for the purposes of inspection or transformation, the number
Bu Sun Kim65020912020-05-20 12:08:20 -07006761 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6762 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006763 # 123456789, the number of bytes would be counted as 9, even though an
6764 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07006765 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6766 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006767 # and time zone are either specified elsewhere or are not significant. The date
6768 # is relative to the Proleptic Gregorian Calendar. This can represent:
6769 #
6770 # * A full date, with non-zero year, month and day values
6771 # * A month and day value, with a zero year, e.g. an anniversary
6772 # * A year on its own, with zero month and day values
6773 # * A year and month value, with a zero day, e.g. a credit card expiration date
6774 #
6775 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07006776 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6777 # a year.
6778 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
Dan O'Mearadd494642020-05-01 07:42:23 -07006779 # month and day.
Bu Sun Kim65020912020-05-20 12:08:20 -07006780 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006781 # if specifying a year by itself or a year and month where the day is not
6782 # significant.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07006783 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006784 &quot;stringValue&quot;: &quot;A String&quot;, # string
6785 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6786 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6787 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6788 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07006789 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6790 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6791 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006792 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6793 # allow the value 60 if it allows leap-seconds.
6794 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07006795 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006796 &quot;booleanValue&quot;: True or False, # boolean
6797 &quot;floatValue&quot;: 3.14, # float
6798 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07006799 },
6800 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006801 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
6802 # Bucketing transformation can provide all of this functionality,
6803 # but requires more configuration. This message is provided as a convenience to
6804 # the user for simple bucketing strategies.
6805 #
6806 # The transformed value will be a hyphenated string of
6807 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
6808 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
6809 #
6810 # This can be used on data of type: double, long.
6811 #
6812 # If the bound Value type differs from the type of data
6813 # being transformed, we will first attempt converting the type of the data to
6814 # be transformed to match the type of the bound before comparing.
6815 #
6816 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07006817 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
6818 # grouped together into a single bucket; for example if `upper_bound` = 89,
6819 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
6820 # Note that for the purposes of inspection or transformation, the number
6821 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6822 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6823 # 123456789, the number of bytes would be counted as 9, even though an
6824 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07006825 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6826 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6827 # and time zone are either specified elsewhere or are not significant. The date
6828 # is relative to the Proleptic Gregorian Calendar. This can represent:
6829 #
6830 # * A full date, with non-zero year, month and day values
6831 # * A month and day value, with a zero year, e.g. an anniversary
6832 # * A year on its own, with zero month and day values
6833 # * A year and month value, with a zero day, e.g. a credit card expiration date
6834 #
6835 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6836 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6837 # a year.
6838 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6839 # month and day.
6840 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6841 # if specifying a year by itself or a year and month where the day is not
6842 # significant.
6843 },
6844 &quot;stringValue&quot;: &quot;A String&quot;, # string
6845 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6846 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6847 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6848 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07006849 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6850 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6851 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006852 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6853 # allow the value 60 if it allows leap-seconds.
6854 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07006855 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006856 &quot;booleanValue&quot;: True or False, # boolean
6857 &quot;floatValue&quot;: 3.14, # float
6858 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07006859 },
6860 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
6861 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
6862 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
6863 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006864 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
6865 # grouped together into a single bucket; for example if `lower_bound` = 10,
6866 # then all values less than 10 are replaced with the value &quot;-10&quot;.
6867 # Note that for the purposes of inspection or transformation, the number
6868 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
6869 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
6870 # 123456789, the number of bytes would be counted as 9, even though an
6871 # int64 only holds up to 8 bytes of data.
6872 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
6873 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
6874 # and time zone are either specified elsewhere or are not significant. The date
6875 # is relative to the Proleptic Gregorian Calendar. This can represent:
6876 #
6877 # * A full date, with non-zero year, month and day values
6878 # * A month and day value, with a zero year, e.g. an anniversary
6879 # * A year on its own, with zero month and day values
6880 # * A year and month value, with a zero day, e.g. a credit card expiration date
6881 #
6882 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
6883 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
6884 # a year.
6885 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
6886 # month and day.
6887 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
6888 # if specifying a year by itself or a year and month where the day is not
6889 # significant.
6890 },
6891 &quot;stringValue&quot;: &quot;A String&quot;, # string
6892 &quot;integerValue&quot;: &quot;A String&quot;, # integer
6893 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
6894 # or are specified elsewhere. An API may choose to allow leap seconds. Related
6895 # types are google.type.Date and `google.protobuf.Timestamp`.
6896 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
6897 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
6898 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
6899 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6900 # allow the value 60 if it allows leap-seconds.
6901 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6902 },
6903 &quot;booleanValue&quot;: True or False, # boolean
6904 &quot;floatValue&quot;: 3.14, # float
6905 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
6906 },
6907 },
6908 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
6909 # fixed character. Masking can start from the beginning or end of the string.
6910 # This can be used on data of any type (numbers, longs, and so on) and when
6911 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
6912 # type. (This allows you to take a long like 123 and modify it to a string like
6913 # **3.
6914 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
6915 # characters. For example, if the input string is `555-555-5555` and you
6916 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
6917 # returns `***-**5-5555`.
6918 { # Characters to skip when doing deidentification of a value. These will be left
6919 # alone and skipped.
6920 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
6921 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
6922 # punctuation.
6923 },
6924 ],
6925 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
6926 # masked. Skipped characters do not count towards this tally.
6927 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
6928 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
6929 # code or credit card number. This string must have a length of 1. If not
6930 # supplied, this value defaults to `*` for strings, and `0` for digits.
6931 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
6932 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
6933 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
6934 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
6935 # is `true`, then the string `12345` is masked as `12***`.
Bu Sun Kim65020912020-05-20 12:08:20 -07006936 },
6937 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006938 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause
6939 # this transformation to apply to all findings that correspond to
6940 # infoTypes that were requested in `InspectConfig`.
6941 { # Type of information detected by the API.
6942 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
6943 # creating a CustomInfoType, or one of the names listed
6944 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
6945 # a built-in type. InfoType names should conform to the pattern
6946 # `[a-zA-Z0-9_]{1,64}`.
6947 },
6948 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07006949 },
6950 ],
6951 },
6952 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Apply the transformation to the entire field.
6953 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
6954 # portion of the value.
6955 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
6956 },
6957 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
6958 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
6959 # to learn more.
6960 &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.
6961 # If set, must also set cryptoKey. If set, shift will be consistent for the
6962 # given context.
6963 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
6964 },
6965 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
6966 # range (inclusive ends). Negative means shift to earlier in time. Must not
6967 # be more than 365250 days (1000 years) each direction.
6968 #
6969 # For example, 3 means shift date to at most 3 days into the future.
6970 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
6971 &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
6972 # results in the same shift for the same context and crypto_key. If
6973 # set, must also set context. Can only be applied to table items.
6974 # a key encryption key (KEK) stored by KMS).
6975 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
6976 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
6977 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07006978 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
6979 # leaking the key. Choose another type of key if possible.
6980 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
6981 },
6982 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
6983 # It will be discarded after the request finishes.
6984 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
6985 # This is an arbitrary string used to differentiate different keys.
6986 # A unique key is generated per name: two separate `TransientCryptoKey`
6987 # protos share the same generated key if their names are the same.
6988 # When the data crypto key is generated, this name is not used in any way
6989 # (repeating the api call will result in a different key being generated).
6990 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07006991 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
6992 # The wrapped key must be a 128/192/256 bit key.
6993 # Authorization requires the following IAM permissions when sending a request
6994 # to perform a crypto transformation using a kms-wrapped crypto key:
6995 # dlp.kms.encrypt
6996 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
6997 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
6998 },
Bu Sun Kim65020912020-05-20 12:08:20 -07006999 },
7000 },
7001 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
7002 },
7003 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
7004 # Uses SHA-256.
7005 # The key size must be either 32 or 64 bytes.
7006 # Outputs a base64 encoded representation of the hashed output
7007 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
7008 # Currently, only string and integer values can be hashed.
7009 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
7010 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
7011 # a key encryption key (KEK) stored by KMS).
7012 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
7013 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
7014 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07007015 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
7016 # leaking the key. Choose another type of key if possible.
7017 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
7018 },
7019 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
7020 # It will be discarded after the request finishes.
7021 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
7022 # This is an arbitrary string used to differentiate different keys.
7023 # A unique key is generated per name: two separate `TransientCryptoKey`
7024 # protos share the same generated key if their names are the same.
7025 # When the data crypto key is generated, this name is not used in any way
7026 # (repeating the api call will result in a different key being generated).
7027 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007028 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
7029 # The wrapped key must be a 128/192/256 bit key.
7030 # Authorization requires the following IAM permissions when sending a request
7031 # to perform a crypto transformation using a kms-wrapped crypto key:
7032 # dlp.kms.encrypt
7033 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
7034 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
7035 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007036 },
7037 },
7038 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
7039 # (FPE) with the FFX mode of operation; however when used in the
7040 # `ReidentifyContent` API method, it serves the opposite function by reversing
7041 # the surrogate back into the original identifier. The identifier must be
7042 # encoded as ASCII. For a given crypto key and context, the same identifier
7043 # will be replaced with the same surrogate. Identifiers must be at least two
7044 # characters long. In the case that the identifier is the empty string, it will
7045 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
7046 # more.
7047 #
7048 # Note: We recommend using CryptoDeterministicConfig for all use cases which
7049 # do not require preserving the input alphabet space and size, plus warrant
7050 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07007051 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
7052 # This annotation will be applied to the surrogate by prefixing it with
7053 # the name of the custom infoType followed by the number of
7054 # characters comprising the surrogate. The following scheme defines the
7055 # format: info_type_name(surrogate_character_count):surrogate
7056 #
7057 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
7058 # the surrogate is &#x27;abc&#x27;, the full replacement value
7059 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
7060 #
7061 # This annotation identifies the surrogate when inspecting content using the
7062 # custom infoType
7063 # [`SurrogateType`](/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
7064 # This facilitates reversal of the surrogate when it occurs in free text.
7065 #
7066 # In order for inspection to work properly, the name of this infoType must
7067 # not occur naturally anywhere in your data; otherwise, inspection may
7068 # find a surrogate that does not correspond to an actual identifier.
7069 # Therefore, choose your custom infoType name carefully after considering
7070 # what your data looks like. One way to select a name that has a high chance
7071 # of yielding reliable detection is to include one or more unicode characters
7072 # that are highly improbable to exist in your data.
7073 # For example, assuming your data is entered from a regular ASCII keyboard,
7074 # the symbol with the hex code point 29DD might be used like so:
7075 # ⧝MY_TOKEN_TYPE
7076 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
7077 # creating a CustomInfoType, or one of the names listed
7078 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
7079 # a built-in type. InfoType names should conform to the pattern
7080 # `[a-zA-Z0-9_]{1,64}`.
7081 },
7082 &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
7083 # identifier in two different contexts won&#x27;t be given the same surrogate. If
7084 # the context is not set, a default tweak will be used.
7085 #
7086 # If the context is set but:
7087 #
7088 # 1. there is no record present when transforming a given value or
7089 # 1. the field is not present when transforming a given value,
7090 #
7091 # a default tweak will be used.
7092 #
7093 # Note that case (1) is expected when an `InfoTypeTransformation` is
7094 # applied to both structured and non-structured `ContentItem`s.
7095 # Currently, the referenced field may be of value type integer or string.
7096 #
7097 # The tweak is constructed as a sequence of bytes in big endian byte order
7098 # such that:
7099 #
7100 # - a 64 bit integer is encoded followed by a single byte of value 1
7101 # - a string is encoded in UTF-8 format followed by a single byte of value 2
7102 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
7103 },
7104 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
7105 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
7106 # a key encryption key (KEK) stored by KMS).
7107 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
7108 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
7109 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07007110 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
7111 # leaking the key. Choose another type of key if possible.
7112 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
7113 },
7114 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
7115 # It will be discarded after the request finishes.
7116 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
7117 # This is an arbitrary string used to differentiate different keys.
7118 # A unique key is generated per name: two separate `TransientCryptoKey`
7119 # protos share the same generated key if their names are the same.
7120 # When the data crypto key is generated, this name is not used in any way
7121 # (repeating the api call will result in a different key being generated).
7122 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007123 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
7124 # The wrapped key must be a 128/192/256 bit key.
7125 # Authorization requires the following IAM permissions when sending a request
7126 # to perform a crypto transformation using a kms-wrapped crypto key:
7127 # dlp.kms.encrypt
7128 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
7129 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
7130 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007131 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007132 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
7133 # that the FFX mode natively supports. This happens before/after
7134 # encryption/decryption.
7135 # Each character listed must appear only once.
7136 # Number of characters must be in the range [2, 95].
7137 # This must be encoded as ASCII.
7138 # The order of characters does not matter.
7139 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07007140 },
7141 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
7142 # input. Outputs a base64 encoded representation of the encrypted output.
7143 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
7144 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
7145 # This annotation will be applied to the surrogate by prefixing it with
7146 # the name of the custom info type followed by the number of
7147 # characters comprising the surrogate. The following scheme defines the
7148 # format: {info type name}({surrogate character count}):{surrogate}
7149 #
7150 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
7151 # the surrogate is &#x27;abc&#x27;, the full replacement value
7152 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
7153 #
7154 # This annotation identifies the surrogate when inspecting content using the
7155 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
7156 # surrogate when it occurs in free text.
7157 #
7158 # Note: For record transformations where the entire cell in a table is being
7159 # transformed, surrogates are not mandatory. Surrogates are used to denote
7160 # the location of the token and are necessary for re-identification in free
7161 # form text.
7162 #
7163 # In order for inspection to work properly, the name of this info type must
7164 # not occur naturally anywhere in your data; otherwise, inspection may either
7165 #
7166 # - reverse a surrogate that does not correspond to an actual identifier
7167 # - be unable to parse the surrogate and result in an error
7168 #
7169 # Therefore, choose your custom info type name carefully after considering
7170 # what your data looks like. One way to select a name that has a high chance
7171 # of yielding reliable detection is to include one or more unicode characters
7172 # that are highly improbable to exist in your data.
7173 # For example, assuming your data is entered from a regular ASCII keyboard,
7174 # the symbol with the hex code point 29DD might be used like so:
7175 # ⧝MY_TOKEN_TYPE.
7176 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
7177 # creating a CustomInfoType, or one of the names listed
7178 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
7179 # a built-in type. InfoType names should conform to the pattern
7180 # `[a-zA-Z0-9_]{1,64}`.
7181 },
7182 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
7183 # referential integrity such that the same identifier in two different
7184 # contexts will be given a distinct surrogate. The context is appended to
7185 # plaintext value being encrypted. On decryption the provided context is
7186 # validated against the value used during encryption. If a context was
7187 # provided during encryption, same context must be provided during decryption
7188 # as well.
7189 #
7190 # If the context is not set, plaintext would be used as is for encryption.
7191 # If the context is set but:
7192 #
7193 # 1. there is no record present when transforming a given value or
7194 # 2. the field is not present when transforming a given value,
7195 #
7196 # plaintext would be used as is for encryption.
7197 #
7198 # Note that case (1) is expected when an `InfoTypeTransformation` is
7199 # applied to both structured and non-structured `ContentItem`s.
7200 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
7201 },
7202 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
7203 # a key encryption key (KEK) stored by KMS).
7204 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
7205 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
7206 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07007207 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
7208 # leaking the key. Choose another type of key if possible.
7209 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
7210 },
7211 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
7212 # It will be discarded after the request finishes.
7213 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
7214 # This is an arbitrary string used to differentiate different keys.
7215 # A unique key is generated per name: two separate `TransientCryptoKey`
7216 # protos share the same generated key if their names are the same.
7217 # When the data crypto key is generated, this name is not used in any way
7218 # (repeating the api call will result in a different key being generated).
7219 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007220 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
7221 # The wrapped key must be a 128/192/256 bit key.
7222 # Authorization requires the following IAM permissions when sending a request
7223 # to perform a crypto transformation using a kms-wrapped crypto key:
7224 # dlp.kms.encrypt
7225 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
7226 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
7227 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007228 },
7229 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007230 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
7231 # replacement values are dynamically provided by the user for custom behavior,
7232 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
7233 # This can be used on
7234 # data of type: number, long, string, timestamp.
7235 # If the bound `Value` type differs from the type of data being transformed, we
7236 # will first attempt converting the type of the data to be transformed to match
7237 # the type of the bound before comparing.
7238 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
7239 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
7240 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kim65020912020-05-20 12:08:20 -07007241 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Replacement value for this bucket. If not provided
7242 # the default behavior will be to hyphenate the min-max range.
7243 # Note that for the purposes of inspection or transformation, the number
7244 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7245 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7246 # 123456789, the number of bytes would be counted as 9, even though an
7247 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07007248 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7249 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7250 # and time zone are either specified elsewhere or are not significant. The date
7251 # is relative to the Proleptic Gregorian Calendar. This can represent:
7252 #
7253 # * A full date, with non-zero year, month and day values
7254 # * A month and day value, with a zero year, e.g. an anniversary
7255 # * A year on its own, with zero month and day values
7256 # * A year and month value, with a zero day, e.g. a credit card expiration date
7257 #
7258 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
7259 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7260 # a year.
7261 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7262 # month and day.
7263 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7264 # if specifying a year by itself or a year and month where the day is not
7265 # significant.
7266 },
7267 &quot;stringValue&quot;: &quot;A String&quot;, # string
7268 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7269 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7270 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7271 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07007272 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7273 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7274 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007275 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7276 # allow the value 60 if it allows leap-seconds.
7277 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007278 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007279 &quot;booleanValue&quot;: True or False, # boolean
7280 &quot;floatValue&quot;: 3.14, # float
7281 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
7282 },
7283 &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
7284 # used.
7285 # Note that for the purposes of inspection or transformation, the number
7286 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7287 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7288 # 123456789, the number of bytes would be counted as 9, even though an
7289 # int64 only holds up to 8 bytes of data.
7290 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7291 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7292 # and time zone are either specified elsewhere or are not significant. The date
7293 # is relative to the Proleptic Gregorian Calendar. This can represent:
7294 #
7295 # * A full date, with non-zero year, month and day values
7296 # * A month and day value, with a zero year, e.g. an anniversary
7297 # * A year on its own, with zero month and day values
7298 # * A year and month value, with a zero day, e.g. a credit card expiration date
7299 #
7300 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
7301 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7302 # a year.
7303 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7304 # month and day.
7305 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7306 # if specifying a year by itself or a year and month where the day is not
7307 # significant.
7308 },
7309 &quot;stringValue&quot;: &quot;A String&quot;, # string
7310 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7311 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7312 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7313 # types are google.type.Date and `google.protobuf.Timestamp`.
7314 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7315 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7316 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7317 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7318 # allow the value 60 if it allows leap-seconds.
7319 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
7320 },
7321 &quot;booleanValue&quot;: True or False, # boolean
7322 &quot;floatValue&quot;: 3.14, # float
7323 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
7324 },
7325 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
7326 # Note that for the purposes of inspection or transformation, the number
7327 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7328 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7329 # 123456789, the number of bytes would be counted as 9, even though an
7330 # int64 only holds up to 8 bytes of data.
7331 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7332 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7333 # and time zone are either specified elsewhere or are not significant. The date
7334 # is relative to the Proleptic Gregorian Calendar. This can represent:
7335 #
7336 # * A full date, with non-zero year, month and day values
7337 # * A month and day value, with a zero year, e.g. an anniversary
7338 # * A year on its own, with zero month and day values
7339 # * A year and month value, with a zero day, e.g. a credit card expiration date
7340 #
7341 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
7342 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7343 # a year.
7344 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7345 # month and day.
7346 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7347 # if specifying a year by itself or a year and month where the day is not
7348 # significant.
7349 },
7350 &quot;stringValue&quot;: &quot;A String&quot;, # string
7351 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7352 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7353 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7354 # types are google.type.Date and `google.protobuf.Timestamp`.
7355 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7356 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7357 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7358 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7359 # allow the value 60 if it allows leap-seconds.
7360 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
7361 },
7362 &quot;booleanValue&quot;: True or False, # boolean
7363 &quot;floatValue&quot;: 3.14, # float
7364 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007365 },
7366 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007367 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007368 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007369 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
7370 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
7371 # output would be &#x27;My phone number is &#x27;.
7372 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007373 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
7374 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
7375 # Note that for the purposes of inspection or transformation, the number
7376 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7377 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7378 # 123456789, the number of bytes would be counted as 9, even though an
7379 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07007380 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7381 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7382 # and time zone are either specified elsewhere or are not significant. The date
7383 # is relative to the Proleptic Gregorian Calendar. This can represent:
7384 #
7385 # * A full date, with non-zero year, month and day values
7386 # * A month and day value, with a zero year, e.g. an anniversary
7387 # * A year on its own, with zero month and day values
7388 # * A year and month value, with a zero day, e.g. a credit card expiration date
7389 #
7390 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
7391 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7392 # a year.
7393 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7394 # month and day.
7395 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7396 # if specifying a year by itself or a year and month where the day is not
7397 # significant.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007398 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007399 &quot;stringValue&quot;: &quot;A String&quot;, # string
7400 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7401 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7402 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7403 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07007404 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7405 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7406 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007407 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7408 # allow the value 60 if it allows leap-seconds.
7409 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007410 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007411 &quot;booleanValue&quot;: True or False, # boolean
7412 &quot;floatValue&quot;: 3.14, # float
7413 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007414 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007415 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007416 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
7417 # Bucketing transformation can provide all of this functionality,
7418 # but requires more configuration. This message is provided as a convenience to
7419 # the user for simple bucketing strategies.
7420 #
7421 # The transformed value will be a hyphenated string of
7422 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
7423 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
7424 #
7425 # This can be used on data of type: double, long.
7426 #
7427 # If the bound Value type differs from the type of data
7428 # being transformed, we will first attempt converting the type of the data to
7429 # be transformed to match the type of the bound before comparing.
7430 #
7431 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07007432 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
7433 # grouped together into a single bucket; for example if `upper_bound` = 89,
7434 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
7435 # Note that for the purposes of inspection or transformation, the number
7436 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7437 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7438 # 123456789, the number of bytes would be counted as 9, even though an
7439 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07007440 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7441 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7442 # and time zone are either specified elsewhere or are not significant. The date
7443 # is relative to the Proleptic Gregorian Calendar. This can represent:
7444 #
7445 # * A full date, with non-zero year, month and day values
7446 # * A month and day value, with a zero year, e.g. an anniversary
7447 # * A year on its own, with zero month and day values
7448 # * A year and month value, with a zero day, e.g. a credit card expiration date
7449 #
7450 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
7451 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7452 # a year.
7453 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7454 # month and day.
7455 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7456 # if specifying a year by itself or a year and month where the day is not
7457 # significant.
7458 },
7459 &quot;stringValue&quot;: &quot;A String&quot;, # string
7460 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7461 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7462 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7463 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07007464 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7465 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7466 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007467 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7468 # allow the value 60 if it allows leap-seconds.
7469 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07007470 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007471 &quot;booleanValue&quot;: True or False, # boolean
7472 &quot;floatValue&quot;: 3.14, # float
7473 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07007474 },
7475 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
7476 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
7477 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
7478 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007479 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
7480 # grouped together into a single bucket; for example if `lower_bound` = 10,
7481 # then all values less than 10 are replaced with the value &quot;-10&quot;.
7482 # Note that for the purposes of inspection or transformation, the number
7483 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7484 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7485 # 123456789, the number of bytes would be counted as 9, even though an
7486 # int64 only holds up to 8 bytes of data.
7487 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7488 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7489 # and time zone are either specified elsewhere or are not significant. The date
7490 # is relative to the Proleptic Gregorian Calendar. This can represent:
7491 #
7492 # * A full date, with non-zero year, month and day values
7493 # * A month and day value, with a zero year, e.g. an anniversary
7494 # * A year on its own, with zero month and day values
7495 # * A year and month value, with a zero day, e.g. a credit card expiration date
7496 #
7497 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
7498 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7499 # a year.
7500 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7501 # month and day.
7502 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7503 # if specifying a year by itself or a year and month where the day is not
7504 # significant.
7505 },
7506 &quot;stringValue&quot;: &quot;A String&quot;, # string
7507 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7508 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7509 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7510 # types are google.type.Date and `google.protobuf.Timestamp`.
7511 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7512 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7513 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7514 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7515 # allow the value 60 if it allows leap-seconds.
7516 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
7517 },
7518 &quot;booleanValue&quot;: True or False, # boolean
7519 &quot;floatValue&quot;: 3.14, # float
7520 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
7521 },
7522 },
7523 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
7524 # fixed character. Masking can start from the beginning or end of the string.
7525 # This can be used on data of any type (numbers, longs, and so on) and when
7526 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
7527 # type. (This allows you to take a long like 123 and modify it to a string like
7528 # **3.
7529 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
7530 # characters. For example, if the input string is `555-555-5555` and you
7531 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
7532 # returns `***-**5-5555`.
7533 { # Characters to skip when doing deidentification of a value. These will be left
7534 # alone and skipped.
7535 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
7536 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
7537 # punctuation.
7538 },
7539 ],
7540 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
7541 # masked. Skipped characters do not count towards this tally.
7542 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
7543 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
7544 # code or credit card number. This string must have a length of 1. If not
7545 # supplied, this value defaults to `*` for strings, and `0` for digits.
7546 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
7547 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
7548 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
7549 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
7550 # is `true`, then the string `12345` is masked as `12***`.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007551 },
7552 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007553 &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
7554 # given `RecordCondition`. The conditions are allowed to reference fields
7555 # that are not used in the actual transformation.
7556 #
7557 # Example Use Cases:
7558 #
7559 # - Apply a different bucket transformation to an age column if the zip code
7560 # column for the same record is within a specific range.
7561 # - Redact a field if the date of birth field is greater than 85.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007562 # a field.
Bu Sun Kim65020912020-05-20 12:08:20 -07007563 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
7564 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
7565 # only supported value is `AND`.
7566 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
7567 &quot;conditions&quot;: [ # A collection of conditions.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007568 { # The field type of `value` and `field` do not need to match to be
7569 # considered equal, but not all comparisons are possible.
7570 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
7571 # but all other comparisons are invalid with incompatible types.
7572 # A `value` of type:
7573 #
7574 # - `string` can be compared against all other types
7575 # - `boolean` can only be compared against other booleans
7576 # - `integer` can be compared against doubles or a string if the string value
7577 # can be parsed as an integer.
7578 # - `double` can be compared against integers or a string if the string can
7579 # be parsed as a double.
7580 # - `Timestamp` can be compared against strings in RFC 3339 date string
7581 # format.
7582 # - `TimeOfDay` can be compared against timestamps and strings in the format
Bu Sun Kim65020912020-05-20 12:08:20 -07007583 # of &#x27;HH:mm:ss&#x27;.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007584 #
7585 # If we fail to compare do to type mismatch, a warning will be given and
7586 # the condition will evaluate to false.
Bu Sun Kim65020912020-05-20 12:08:20 -07007587 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007588 # Note that for the purposes of inspection or transformation, the number
Bu Sun Kim65020912020-05-20 12:08:20 -07007589 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7590 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007591 # 123456789, the number of bytes would be counted as 9, even though an
7592 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07007593 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7594 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007595 # and time zone are either specified elsewhere or are not significant. The date
7596 # is relative to the Proleptic Gregorian Calendar. This can represent:
7597 #
7598 # * A full date, with non-zero year, month and day values
7599 # * A month and day value, with a zero year, e.g. an anniversary
7600 # * A year on its own, with zero month and day values
7601 # * A year and month value, with a zero day, e.g. a credit card expiration date
7602 #
7603 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07007604 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7605 # a year.
7606 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
Dan O'Mearadd494642020-05-01 07:42:23 -07007607 # month and day.
Bu Sun Kim65020912020-05-20 12:08:20 -07007608 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007609 # if specifying a year by itself or a year and month where the day is not
7610 # significant.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007611 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007612 &quot;stringValue&quot;: &quot;A String&quot;, # string
7613 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7614 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7615 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7616 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07007617 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7618 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7619 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007620 &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.
Bu Sun Kim65020912020-05-20 12:08:20 -07007623 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007624 &quot;booleanValue&quot;: True or False, # boolean
7625 &quot;floatValue&quot;: 3.14, # float
7626 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007627 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007628 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
7629 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
7630 },
7631 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
7632 },
7633 ],
7634 },
7635 },
7636 },
7637 },
7638 ],
7639 &quot;recordSuppressions&quot;: [ # Configuration defining which records get suppressed entirely. Records that
7640 # match any suppression rule are omitted from the output.
7641 { # Configuration to suppress records whose suppression conditions evaluate to
7642 # true.
7643 &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
7644 # evaluated to be suppressed from the transformed content.
7645 # a field.
7646 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
7647 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
7648 # only supported value is `AND`.
7649 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
7650 &quot;conditions&quot;: [ # A collection of conditions.
7651 { # The field type of `value` and `field` do not need to match to be
7652 # considered equal, but not all comparisons are possible.
7653 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
7654 # but all other comparisons are invalid with incompatible types.
7655 # A `value` of type:
7656 #
7657 # - `string` can be compared against all other types
7658 # - `boolean` can only be compared against other booleans
7659 # - `integer` can be compared against doubles or a string if the string value
7660 # can be parsed as an integer.
7661 # - `double` can be compared against integers or a string if the string can
7662 # be parsed as a double.
7663 # - `Timestamp` can be compared against strings in RFC 3339 date string
7664 # format.
7665 # - `TimeOfDay` can be compared against timestamps and strings in the format
7666 # of &#x27;HH:mm:ss&#x27;.
7667 #
7668 # If we fail to compare do to type mismatch, a warning will be given and
7669 # the condition will evaluate to false.
7670 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
7671 # Note that for the purposes of inspection or transformation, the number
7672 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7673 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7674 # 123456789, the number of bytes would be counted as 9, even though an
7675 # int64 only holds up to 8 bytes of data.
7676 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7677 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7678 # and time zone are either specified elsewhere or are not significant. The date
7679 # is relative to the Proleptic Gregorian Calendar. This can represent:
7680 #
7681 # * A full date, with non-zero year, month and day values
7682 # * A month and day value, with a zero year, e.g. an anniversary
7683 # * A year on its own, with zero month and day values
7684 # * A year and month value, with a zero day, e.g. a credit card expiration date
7685 #
7686 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
7687 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7688 # a year.
7689 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7690 # month and day.
7691 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7692 # if specifying a year by itself or a year and month where the day is not
7693 # significant.
7694 },
7695 &quot;stringValue&quot;: &quot;A String&quot;, # string
7696 &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;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7701 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7702 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7703 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7704 # allow the value 60 if it allows leap-seconds.
7705 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
7706 },
7707 &quot;booleanValue&quot;: True or False, # boolean
7708 &quot;floatValue&quot;: 3.14, # float
7709 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
7710 },
7711 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
7712 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
7713 },
7714 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007715 },
7716 ],
7717 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007718 },
7719 },
7720 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007721 ],
7722 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007723 },
7724 &quot;item&quot;: { # Container structure for the content to inspect. # The item to re-identify. Will be treated as text.
7725 &quot;byteItem&quot;: { # Container for bytes to inspect or redact. # Content data to inspect or redact. Replaces `type` and `data`.
7726 &quot;data&quot;: &quot;A String&quot;, # Content data to inspect or redact.
7727 &quot;type&quot;: &quot;A String&quot;, # The type of data stored in the bytes string. Default will be TEXT_UTF8.
7728 },
7729 &quot;value&quot;: &quot;A String&quot;, # String data to inspect or redact.
7730 &quot;table&quot;: { # Structured content to inspect. Up to 50,000 `Value`s per request allowed. # Structured content for inspection. See
7731 # https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
7732 # learn more.
7733 # See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
7734 # learn more.
7735 &quot;rows&quot;: [ # Rows of the table.
7736 { # Values of the row.
7737 &quot;values&quot;: [ # Individual cells.
7738 { # Set of primitive values supported by the system.
7739 # Note that for the purposes of inspection or transformation, the number
7740 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
7741 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
7742 # 123456789, the number of bytes would be counted as 9, even though an
7743 # int64 only holds up to 8 bytes of data.
7744 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
7745 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
7746 # and time zone are either specified elsewhere or are not significant. The date
7747 # is relative to the Proleptic Gregorian Calendar. This can represent:
7748 #
7749 # * A full date, with non-zero year, month and day values
7750 # * A month and day value, with a zero year, e.g. an anniversary
7751 # * A year on its own, with zero month and day values
7752 # * A year and month value, with a zero day, e.g. a credit card expiration date
7753 #
7754 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
7755 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
7756 # a year.
7757 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
7758 # month and day.
7759 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
7760 # if specifying a year by itself or a year and month where the day is not
7761 # significant.
7762 },
7763 &quot;stringValue&quot;: &quot;A String&quot;, # string
7764 &quot;integerValue&quot;: &quot;A String&quot;, # integer
7765 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
7766 # or are specified elsewhere. An API may choose to allow leap seconds. Related
7767 # types are google.type.Date and `google.protobuf.Timestamp`.
7768 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
7769 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
7770 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
7771 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
7772 # allow the value 60 if it allows leap-seconds.
7773 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
7774 },
7775 &quot;booleanValue&quot;: True or False, # boolean
7776 &quot;floatValue&quot;: 3.14, # float
7777 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07007778 },
7779 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007780 },
7781 ],
7782 &quot;headers&quot;: [ # Headers of the table.
7783 { # General identifier of a data field in a storage service.
7784 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007785 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007786 ],
7787 },
7788 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007789 &quot;inspectTemplateName&quot;: &quot;A String&quot;, # Template to use. Any configuration directly specified in
7790 # `inspect_config` will override those set in the template. Singular fields
7791 # that are set in this request will replace their corresponding fields in the
7792 # template. Repeated fields are appended. Singular sub-messages and groups
7793 # are recursively merged.
Bu Sun Kim65020912020-05-20 12:08:20 -07007794 }
7795
7796 x__xgafv: string, V1 error format.
7797 Allowed values
7798 1 - v1 error format
7799 2 - v2 error format
7800
7801Returns:
7802 An object of the form:
7803
7804 { # Results of re-identifying a item.
7805 &quot;overview&quot;: { # Overview of the modifications that occurred. # An overview of the changes that were made to the `item`.
7806 &quot;transformationSummaries&quot;: [ # Transformations applied to the dataset.
7807 { # Summary of a single transformation.
7808 # Only one of &#x27;transformation&#x27;, &#x27;field_transformation&#x27;, or &#x27;record_suppress&#x27;
7809 # will be set.
7810 &quot;fieldTransformations&quot;: [ # The field transformation that was applied.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07007811 # If multiple field transformations are requested for a single field,
7812 # this list will contain all of them; otherwise, only one is supplied.
7813 { # The transformation to apply to the field.
Bu Sun Kim65020912020-05-20 12:08:20 -07007814 &quot;fields&quot;: [ # Required. Input field(s) to apply the transformation to.
Dan O'Mearadd494642020-05-01 07:42:23 -07007815 { # General identifier of a data field in a storage service.
Bu Sun Kim65020912020-05-20 12:08:20 -07007816 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Dan O'Mearadd494642020-05-01 07:42:23 -07007817 },
7818 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07007819 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and # Treat the contents of the field as free text, and selectively
Dan O'Mearadd494642020-05-01 07:42:23 -07007820 # transform content that matches an `InfoType`.
7821 # apply various `PrimitiveTransformation`s to each finding, where the
7822 # transformation is applied to only values that were identified as a specific
7823 # info_type.
Bu Sun Kim65020912020-05-20 12:08:20 -07007824 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one
Dan O'Mearadd494642020-05-01 07:42:23 -07007825 # for a given infoType.
7826 { # A transformation to apply to text that is identified as a specific
7827 # info_type.
Bu Sun Kim65020912020-05-20 12:08:20 -07007828 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
7829 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
7830 # portion of the value.
7831 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
7832 },
7833 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
7834 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
7835 # to learn more.
7836 &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.
7837 # If set, must also set cryptoKey. If set, shift will be consistent for the
7838 # given context.
7839 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
7840 },
7841 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
7842 # range (inclusive ends). Negative means shift to earlier in time. Must not
7843 # be more than 365250 days (1000 years) each direction.
7844 #
7845 # For example, 3 means shift date to at most 3 days into the future.
7846 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
7847 &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
7848 # results in the same shift for the same context and crypto_key. If
7849 # set, must also set context. Can only be applied to table items.
Dan O'Mearadd494642020-05-01 07:42:23 -07007850 # a key encryption key (KEK) stored by KMS).
7851 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
7852 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
7853 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07007854 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
Dan O'Mearadd494642020-05-01 07:42:23 -07007855 # leaking the key. Choose another type of key if possible.
Bu Sun Kim65020912020-05-20 12:08:20 -07007856 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
Dan O'Mearadd494642020-05-01 07:42:23 -07007857 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007858 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
Dan O'Mearadd494642020-05-01 07:42:23 -07007859 # It will be discarded after the request finishes.
Bu Sun Kim65020912020-05-20 12:08:20 -07007860 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
Dan O'Mearadd494642020-05-01 07:42:23 -07007861 # This is an arbitrary string used to differentiate different keys.
7862 # A unique key is generated per name: two separate `TransientCryptoKey`
7863 # protos share the same generated key if their names are the same.
7864 # When the data crypto key is generated, this name is not used in any way
7865 # (repeating the api call will result in a different key being generated).
7866 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007867 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
7868 # The wrapped key must be a 128/192/256 bit key.
7869 # Authorization requires the following IAM permissions when sending a request
7870 # to perform a crypto transformation using a kms-wrapped crypto key:
7871 # dlp.kms.encrypt
7872 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
7873 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
7874 },
Dan O'Mearadd494642020-05-01 07:42:23 -07007875 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007876 },
7877 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
7878 },
7879 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
7880 # Uses SHA-256.
7881 # The key size must be either 32 or 64 bytes.
7882 # Outputs a base64 encoded representation of the hashed output
7883 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
7884 # Currently, only string and integer values can be hashed.
7885 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
7886 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
7887 # a key encryption key (KEK) stored by KMS).
7888 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
7889 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
7890 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07007891 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
7892 # leaking the key. Choose another type of key if possible.
7893 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
7894 },
7895 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
7896 # It will be discarded after the request finishes.
7897 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
7898 # This is an arbitrary string used to differentiate different keys.
7899 # A unique key is generated per name: two separate `TransientCryptoKey`
7900 # protos share the same generated key if their names are the same.
7901 # When the data crypto key is generated, this name is not used in any way
7902 # (repeating the api call will result in a different key being generated).
7903 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007904 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
7905 # The wrapped key must be a 128/192/256 bit key.
7906 # Authorization requires the following IAM permissions when sending a request
7907 # to perform a crypto transformation using a kms-wrapped crypto key:
7908 # dlp.kms.encrypt
7909 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
7910 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
7911 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007912 },
7913 },
7914 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
7915 # (FPE) with the FFX mode of operation; however when used in the
7916 # `ReidentifyContent` API method, it serves the opposite function by reversing
7917 # the surrogate back into the original identifier. The identifier must be
7918 # encoded as ASCII. For a given crypto key and context, the same identifier
7919 # will be replaced with the same surrogate. Identifiers must be at least two
7920 # characters long. In the case that the identifier is the empty string, it will
7921 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
7922 # more.
7923 #
7924 # Note: We recommend using CryptoDeterministicConfig for all use cases which
7925 # do not require preserving the input alphabet space and size, plus warrant
7926 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07007927 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
7928 # This annotation will be applied to the surrogate by prefixing it with
7929 # the name of the custom infoType followed by the number of
7930 # characters comprising the surrogate. The following scheme defines the
7931 # format: info_type_name(surrogate_character_count):surrogate
Dan O'Mearadd494642020-05-01 07:42:23 -07007932 #
Bu Sun Kim65020912020-05-20 12:08:20 -07007933 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
7934 # the surrogate is &#x27;abc&#x27;, the full replacement value
7935 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
7936 #
7937 # This annotation identifies the surrogate when inspecting content using the
7938 # custom infoType
7939 # [`SurrogateType`](/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
7940 # This facilitates reversal of the surrogate when it occurs in free text.
7941 #
7942 # In order for inspection to work properly, the name of this infoType must
7943 # not occur naturally anywhere in your data; otherwise, inspection may
7944 # find a surrogate that does not correspond to an actual identifier.
7945 # Therefore, choose your custom infoType name carefully after considering
7946 # what your data looks like. One way to select a name that has a high chance
7947 # of yielding reliable detection is to include one or more unicode characters
7948 # that are highly improbable to exist in your data.
7949 # For example, assuming your data is entered from a regular ASCII keyboard,
7950 # the symbol with the hex code point 29DD might be used like so:
7951 # ⧝MY_TOKEN_TYPE
7952 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
7953 # creating a CustomInfoType, or one of the names listed
7954 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
7955 # a built-in type. InfoType names should conform to the pattern
7956 # `[a-zA-Z0-9_]{1,64}`.
7957 },
7958 &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
7959 # identifier in two different contexts won&#x27;t be given the same surrogate. If
7960 # the context is not set, a default tweak will be used.
7961 #
Dan O'Mearadd494642020-05-01 07:42:23 -07007962 # If the context is set but:
7963 #
7964 # 1. there is no record present when transforming a given value or
Bu Sun Kim65020912020-05-20 12:08:20 -07007965 # 1. the field is not present when transforming a given value,
Dan O'Mearadd494642020-05-01 07:42:23 -07007966 #
Bu Sun Kim65020912020-05-20 12:08:20 -07007967 # a default tweak will be used.
Dan O'Mearadd494642020-05-01 07:42:23 -07007968 #
7969 # Note that case (1) is expected when an `InfoTypeTransformation` is
7970 # applied to both structured and non-structured `ContentItem`s.
Bu Sun Kim65020912020-05-20 12:08:20 -07007971 # Currently, the referenced field may be of value type integer or string.
7972 #
7973 # The tweak is constructed as a sequence of bytes in big endian byte order
7974 # such that:
7975 #
7976 # - a 64 bit integer is encoded followed by a single byte of value 1
7977 # - a string is encoded in UTF-8 format followed by a single byte of value 2
7978 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Dan O'Mearadd494642020-05-01 07:42:23 -07007979 },
Bu Sun Kim65020912020-05-20 12:08:20 -07007980 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
7981 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
7982 # a key encryption key (KEK) stored by KMS).
7983 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
7984 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
7985 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07007986 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
7987 # leaking the key. Choose another type of key if possible.
7988 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
7989 },
7990 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
7991 # It will be discarded after the request finishes.
7992 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
7993 # This is an arbitrary string used to differentiate different keys.
7994 # A unique key is generated per name: two separate `TransientCryptoKey`
7995 # protos share the same generated key if their names are the same.
7996 # When the data crypto key is generated, this name is not used in any way
7997 # (repeating the api call will result in a different key being generated).
7998 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07007999 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
8000 # The wrapped key must be a 128/192/256 bit key.
8001 # Authorization requires the following IAM permissions when sending a request
8002 # to perform a crypto transformation using a kms-wrapped crypto key:
8003 # dlp.kms.encrypt
8004 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
8005 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
8006 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008007 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008008 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
8009 # that the FFX mode natively supports. This happens before/after
8010 # encryption/decryption.
8011 # Each character listed must appear only once.
8012 # Number of characters must be in the range [2, 95].
8013 # This must be encoded as ASCII.
8014 # The order of characters does not matter.
8015 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07008016 },
8017 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
8018 # input. Outputs a base64 encoded representation of the encrypted output.
8019 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
8020 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
Dan O'Mearadd494642020-05-01 07:42:23 -07008021 # This annotation will be applied to the surrogate by prefixing it with
8022 # the name of the custom info type followed by the number of
8023 # characters comprising the surrogate. The following scheme defines the
8024 # format: {info type name}({surrogate character count}):{surrogate}
8025 #
Bu Sun Kim65020912020-05-20 12:08:20 -07008026 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
8027 # the surrogate is &#x27;abc&#x27;, the full replacement value
8028 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
Dan O'Mearadd494642020-05-01 07:42:23 -07008029 #
8030 # This annotation identifies the surrogate when inspecting content using the
Bu Sun Kim65020912020-05-20 12:08:20 -07008031 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
Dan O'Mearadd494642020-05-01 07:42:23 -07008032 # surrogate when it occurs in free text.
8033 #
8034 # Note: For record transformations where the entire cell in a table is being
8035 # transformed, surrogates are not mandatory. Surrogates are used to denote
8036 # the location of the token and are necessary for re-identification in free
8037 # form text.
8038 #
8039 # In order for inspection to work properly, the name of this info type must
8040 # not occur naturally anywhere in your data; otherwise, inspection may either
8041 #
8042 # - reverse a surrogate that does not correspond to an actual identifier
8043 # - be unable to parse the surrogate and result in an error
8044 #
8045 # Therefore, choose your custom info type name carefully after considering
8046 # what your data looks like. One way to select a name that has a high chance
8047 # of yielding reliable detection is to include one or more unicode characters
8048 # that are highly improbable to exist in your data.
8049 # For example, assuming your data is entered from a regular ASCII keyboard,
8050 # the symbol with the hex code point 29DD might be used like so:
8051 # ⧝MY_TOKEN_TYPE.
Bu Sun Kim65020912020-05-20 12:08:20 -07008052 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
Dan O'Mearadd494642020-05-01 07:42:23 -07008053 # creating a CustomInfoType, or one of the names listed
8054 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
8055 # a built-in type. InfoType names should conform to the pattern
8056 # `[a-zA-Z0-9_]{1,64}`.
8057 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008058 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
8059 # referential integrity such that the same identifier in two different
8060 # contexts will be given a distinct surrogate. The context is appended to
8061 # plaintext value being encrypted. On decryption the provided context is
8062 # validated against the value used during encryption. If a context was
8063 # provided during encryption, same context must be provided during decryption
8064 # as well.
Dan O'Mearadd494642020-05-01 07:42:23 -07008065 #
Bu Sun Kim65020912020-05-20 12:08:20 -07008066 # If the context is not set, plaintext would be used as is for encryption.
Dan O'Mearadd494642020-05-01 07:42:23 -07008067 # If the context is set but:
8068 #
8069 # 1. there is no record present when transforming a given value or
Bu Sun Kim65020912020-05-20 12:08:20 -07008070 # 2. the field is not present when transforming a given value,
Dan O'Mearadd494642020-05-01 07:42:23 -07008071 #
Bu Sun Kim65020912020-05-20 12:08:20 -07008072 # plaintext would be used as is for encryption.
Dan O'Mearadd494642020-05-01 07:42:23 -07008073 #
8074 # Note that case (1) is expected when an `InfoTypeTransformation` is
8075 # applied to both structured and non-structured `ContentItem`s.
Bu Sun Kim65020912020-05-20 12:08:20 -07008076 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Dan O'Mearadd494642020-05-01 07:42:23 -07008077 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008078 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
8079 # a key encryption key (KEK) stored by KMS).
8080 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
8081 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
8082 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07008083 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
8084 # leaking the key. Choose another type of key if possible.
8085 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
8086 },
8087 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
8088 # It will be discarded after the request finishes.
8089 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
8090 # This is an arbitrary string used to differentiate different keys.
8091 # A unique key is generated per name: two separate `TransientCryptoKey`
8092 # protos share the same generated key if their names are the same.
8093 # When the data crypto key is generated, this name is not used in any way
8094 # (repeating the api call will result in a different key being generated).
8095 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008096 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
8097 # The wrapped key must be a 128/192/256 bit key.
8098 # Authorization requires the following IAM permissions when sending a request
8099 # to perform a crypto transformation using a kms-wrapped crypto key:
8100 # dlp.kms.encrypt
8101 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
8102 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
8103 },
Dan O'Mearadd494642020-05-01 07:42:23 -07008104 },
8105 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008106 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
Dan O'Mearadd494642020-05-01 07:42:23 -07008107 # replacement values are dynamically provided by the user for custom behavior,
8108 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
8109 # This can be used on
8110 # data of type: number, long, string, timestamp.
8111 # If the bound `Value` type differs from the type of data being transformed, we
8112 # will first attempt converting the type of the data to be transformed to match
8113 # the type of the bound before comparing.
8114 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07008115 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
Dan O'Mearadd494642020-05-01 07:42:23 -07008116 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kim65020912020-05-20 12:08:20 -07008117 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Replacement value for this bucket. If not provided
8118 # the default behavior will be to hyphenate the min-max range.
8119 # Note that for the purposes of inspection or transformation, the number
8120 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8121 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8122 # 123456789, the number of bytes would be counted as 9, even though an
8123 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07008124 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8125 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8126 # and time zone are either specified elsewhere or are not significant. The date
8127 # is relative to the Proleptic Gregorian Calendar. This can represent:
8128 #
8129 # * A full date, with non-zero year, month and day values
8130 # * A month and day value, with a zero year, e.g. an anniversary
8131 # * A year on its own, with zero month and day values
8132 # * A year and month value, with a zero day, e.g. a credit card expiration date
8133 #
8134 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8135 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8136 # a year.
8137 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8138 # month and day.
8139 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8140 # if specifying a year by itself or a year and month where the day is not
8141 # significant.
8142 },
8143 &quot;stringValue&quot;: &quot;A String&quot;, # string
8144 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8145 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8146 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8147 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07008148 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8149 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8150 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008151 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8152 # allow the value 60 if it allows leap-seconds.
8153 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07008154 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008155 &quot;booleanValue&quot;: True or False, # boolean
8156 &quot;floatValue&quot;: 3.14, # float
8157 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8158 },
8159 &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
8160 # used.
8161 # Note that for the purposes of inspection or transformation, the number
8162 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8163 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8164 # 123456789, the number of bytes would be counted as 9, even though an
8165 # int64 only holds up to 8 bytes of data.
8166 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8167 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8168 # and time zone are either specified elsewhere or are not significant. The date
8169 # is relative to the Proleptic Gregorian Calendar. This can represent:
8170 #
8171 # * A full date, with non-zero year, month and day values
8172 # * A month and day value, with a zero year, e.g. an anniversary
8173 # * A year on its own, with zero month and day values
8174 # * A year and month value, with a zero day, e.g. a credit card expiration date
8175 #
8176 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8177 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8178 # a year.
8179 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8180 # month and day.
8181 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8182 # if specifying a year by itself or a year and month where the day is not
8183 # significant.
8184 },
8185 &quot;stringValue&quot;: &quot;A String&quot;, # string
8186 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8187 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8188 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8189 # types are google.type.Date and `google.protobuf.Timestamp`.
8190 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8191 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8192 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8193 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8194 # allow the value 60 if it allows leap-seconds.
8195 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
8196 },
8197 &quot;booleanValue&quot;: True or False, # boolean
8198 &quot;floatValue&quot;: 3.14, # float
8199 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8200 },
8201 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
8202 # Note that for the purposes of inspection or transformation, the number
8203 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8204 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8205 # 123456789, the number of bytes would be counted as 9, even though an
8206 # int64 only holds up to 8 bytes of data.
8207 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8208 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8209 # and time zone are either specified elsewhere or are not significant. The date
8210 # is relative to the Proleptic Gregorian Calendar. This can represent:
8211 #
8212 # * A full date, with non-zero year, month and day values
8213 # * A month and day value, with a zero year, e.g. an anniversary
8214 # * A year on its own, with zero month and day values
8215 # * A year and month value, with a zero day, e.g. a credit card expiration date
8216 #
8217 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8218 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8219 # a year.
8220 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8221 # month and day.
8222 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8223 # if specifying a year by itself or a year and month where the day is not
8224 # significant.
8225 },
8226 &quot;stringValue&quot;: &quot;A String&quot;, # string
8227 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8228 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8229 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8230 # types are google.type.Date and `google.protobuf.Timestamp`.
8231 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8232 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8233 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8234 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8235 # allow the value 60 if it allows leap-seconds.
8236 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
8237 },
8238 &quot;booleanValue&quot;: True or False, # boolean
8239 &quot;floatValue&quot;: 3.14, # float
8240 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Dan O'Mearadd494642020-05-01 07:42:23 -07008241 },
8242 },
8243 ],
8244 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008245 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
8246 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
8247 # output would be &#x27;My phone number is &#x27;.
8248 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008249 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
8250 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
Dan O'Mearadd494642020-05-01 07:42:23 -07008251 # Note that for the purposes of inspection or transformation, the number
Bu Sun Kim65020912020-05-20 12:08:20 -07008252 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8253 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
Dan O'Mearadd494642020-05-01 07:42:23 -07008254 # 123456789, the number of bytes would be counted as 9, even though an
8255 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07008256 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8257 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
Dan O'Mearadd494642020-05-01 07:42:23 -07008258 # and time zone are either specified elsewhere or are not significant. The date
8259 # is relative to the Proleptic Gregorian Calendar. This can represent:
8260 #
8261 # * A full date, with non-zero year, month and day values
8262 # * A month and day value, with a zero year, e.g. an anniversary
8263 # * A year on its own, with zero month and day values
8264 # * A year and month value, with a zero day, e.g. a credit card expiration date
8265 #
8266 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07008267 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8268 # a year.
8269 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
Dan O'Mearadd494642020-05-01 07:42:23 -07008270 # month and day.
Bu Sun Kim65020912020-05-20 12:08:20 -07008271 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
Dan O'Mearadd494642020-05-01 07:42:23 -07008272 # if specifying a year by itself or a year and month where the day is not
8273 # significant.
Dan O'Mearadd494642020-05-01 07:42:23 -07008274 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008275 &quot;stringValue&quot;: &quot;A String&quot;, # string
8276 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8277 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8278 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8279 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07008280 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8281 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8282 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008283 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8284 # allow the value 60 if it allows leap-seconds.
8285 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07008286 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008287 &quot;booleanValue&quot;: True or False, # boolean
8288 &quot;floatValue&quot;: 3.14, # float
8289 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Dan O'Mearadd494642020-05-01 07:42:23 -07008290 },
8291 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008292 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
8293 # Bucketing transformation can provide all of this functionality,
8294 # but requires more configuration. This message is provided as a convenience to
8295 # the user for simple bucketing strategies.
8296 #
8297 # The transformed value will be a hyphenated string of
8298 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
8299 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
8300 #
8301 # This can be used on data of type: double, long.
8302 #
8303 # If the bound Value type differs from the type of data
8304 # being transformed, we will first attempt converting the type of the data to
8305 # be transformed to match the type of the bound before comparing.
8306 #
8307 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07008308 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
8309 # grouped together into a single bucket; for example if `upper_bound` = 89,
8310 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
8311 # Note that for the purposes of inspection or transformation, the number
8312 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8313 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8314 # 123456789, the number of bytes would be counted as 9, even though an
8315 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07008316 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8317 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8318 # and time zone are either specified elsewhere or are not significant. The date
8319 # is relative to the Proleptic Gregorian Calendar. This can represent:
8320 #
8321 # * A full date, with non-zero year, month and day values
8322 # * A month and day value, with a zero year, e.g. an anniversary
8323 # * A year on its own, with zero month and day values
8324 # * A year and month value, with a zero day, e.g. a credit card expiration date
8325 #
8326 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8327 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8328 # a year.
8329 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8330 # month and day.
8331 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8332 # if specifying a year by itself or a year and month where the day is not
8333 # significant.
8334 },
8335 &quot;stringValue&quot;: &quot;A String&quot;, # string
8336 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8337 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8338 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8339 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07008340 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8341 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8342 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008343 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8344 # allow the value 60 if it allows leap-seconds.
8345 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07008346 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008347 &quot;booleanValue&quot;: True or False, # boolean
8348 &quot;floatValue&quot;: 3.14, # float
8349 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07008350 },
8351 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
8352 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
8353 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
8354 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008355 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
8356 # grouped together into a single bucket; for example if `lower_bound` = 10,
8357 # then all values less than 10 are replaced with the value &quot;-10&quot;.
8358 # Note that for the purposes of inspection or transformation, the number
8359 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8360 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8361 # 123456789, the number of bytes would be counted as 9, even though an
8362 # int64 only holds up to 8 bytes of data.
8363 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8364 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8365 # and time zone are either specified elsewhere or are not significant. The date
8366 # is relative to the Proleptic Gregorian Calendar. This can represent:
8367 #
8368 # * A full date, with non-zero year, month and day values
8369 # * A month and day value, with a zero year, e.g. an anniversary
8370 # * A year on its own, with zero month and day values
8371 # * A year and month value, with a zero day, e.g. a credit card expiration date
8372 #
8373 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8374 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8375 # a year.
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;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8379 # if specifying a year by itself or a year and month where the day is not
8380 # significant.
8381 },
8382 &quot;stringValue&quot;: &quot;A String&quot;, # string
8383 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8384 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8385 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8386 # types are google.type.Date and `google.protobuf.Timestamp`.
8387 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8388 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8389 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8390 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8391 # allow the value 60 if it allows leap-seconds.
8392 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
8393 },
8394 &quot;booleanValue&quot;: True or False, # boolean
8395 &quot;floatValue&quot;: 3.14, # float
8396 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8397 },
8398 },
8399 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
8400 # fixed character. Masking can start from the beginning or end of the string.
8401 # This can be used on data of any type (numbers, longs, and so on) and when
8402 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
8403 # type. (This allows you to take a long like 123 and modify it to a string like
8404 # **3.
8405 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
8406 # characters. For example, if the input string is `555-555-5555` and you
8407 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
8408 # returns `***-**5-5555`.
8409 { # Characters to skip when doing deidentification of a value. These will be left
8410 # alone and skipped.
8411 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
8412 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
8413 # punctuation.
8414 },
8415 ],
8416 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
8417 # masked. Skipped characters do not count towards this tally.
8418 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
8419 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
8420 # code or credit card number. This string must have a length of 1. If not
8421 # supplied, this value defaults to `*` for strings, and `0` for digits.
8422 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
8423 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
8424 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
8425 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
8426 # is `true`, then the string `12345` is masked as `12***`.
Bu Sun Kim65020912020-05-20 12:08:20 -07008427 },
8428 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008429 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause
8430 # this transformation to apply to all findings that correspond to
8431 # infoTypes that were requested in `InspectConfig`.
8432 { # Type of information detected by the API.
8433 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
8434 # creating a CustomInfoType, or one of the names listed
8435 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
8436 # a built-in type. InfoType names should conform to the pattern
8437 # `[a-zA-Z0-9_]{1,64}`.
8438 },
8439 ],
Dan O'Mearadd494642020-05-01 07:42:23 -07008440 },
8441 ],
8442 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008443 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Apply the transformation to the entire field.
8444 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
8445 # portion of the value.
8446 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
8447 },
8448 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
8449 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
8450 # to learn more.
8451 &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.
8452 # If set, must also set cryptoKey. If set, shift will be consistent for the
8453 # given context.
8454 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
8455 },
8456 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
8457 # range (inclusive ends). Negative means shift to earlier in time. Must not
8458 # be more than 365250 days (1000 years) each direction.
8459 #
8460 # For example, 3 means shift date to at most 3 days into the future.
8461 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
8462 &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
8463 # results in the same shift for the same context and crypto_key. If
8464 # set, must also set context. Can only be applied to table items.
8465 # a key encryption key (KEK) stored by KMS).
8466 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
8467 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
8468 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07008469 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
8470 # leaking the key. Choose another type of key if possible.
8471 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
8472 },
8473 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
8474 # It will be discarded after the request finishes.
8475 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
8476 # This is an arbitrary string used to differentiate different keys.
8477 # A unique key is generated per name: two separate `TransientCryptoKey`
8478 # protos share the same generated key if their names are the same.
8479 # When the data crypto key is generated, this name is not used in any way
8480 # (repeating the api call will result in a different key being generated).
8481 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008482 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
8483 # The wrapped key must be a 128/192/256 bit key.
8484 # Authorization requires the following IAM permissions when sending a request
8485 # to perform a crypto transformation using a kms-wrapped crypto key:
8486 # dlp.kms.encrypt
8487 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
8488 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
8489 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008490 },
8491 },
8492 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
8493 },
8494 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
8495 # Uses SHA-256.
8496 # The key size must be either 32 or 64 bytes.
8497 # Outputs a base64 encoded representation of the hashed output
8498 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
8499 # Currently, only string and integer values can be hashed.
8500 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
8501 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
8502 # a key encryption key (KEK) stored by KMS).
8503 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
8504 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
8505 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07008506 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
8507 # leaking the key. Choose another type of key if possible.
8508 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
8509 },
8510 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
8511 # It will be discarded after the request finishes.
8512 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
8513 # This is an arbitrary string used to differentiate different keys.
8514 # A unique key is generated per name: two separate `TransientCryptoKey`
8515 # protos share the same generated key if their names are the same.
8516 # When the data crypto key is generated, this name is not used in any way
8517 # (repeating the api call will result in a different key being generated).
8518 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008519 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
8520 # The wrapped key must be a 128/192/256 bit key.
8521 # Authorization requires the following IAM permissions when sending a request
8522 # to perform a crypto transformation using a kms-wrapped crypto key:
8523 # dlp.kms.encrypt
8524 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
8525 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
8526 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008527 },
8528 },
8529 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
8530 # (FPE) with the FFX mode of operation; however when used in the
8531 # `ReidentifyContent` API method, it serves the opposite function by reversing
8532 # the surrogate back into the original identifier. The identifier must be
8533 # encoded as ASCII. For a given crypto key and context, the same identifier
8534 # will be replaced with the same surrogate. Identifiers must be at least two
8535 # characters long. In the case that the identifier is the empty string, it will
8536 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
8537 # more.
8538 #
8539 # Note: We recommend using CryptoDeterministicConfig for all use cases which
8540 # do not require preserving the input alphabet space and size, plus warrant
8541 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07008542 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
8543 # This annotation will be applied to the surrogate by prefixing it with
8544 # the name of the custom infoType followed by the number of
8545 # characters comprising the surrogate. The following scheme defines the
8546 # format: info_type_name(surrogate_character_count):surrogate
8547 #
8548 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
8549 # the surrogate is &#x27;abc&#x27;, the full replacement value
8550 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
8551 #
8552 # This annotation identifies the surrogate when inspecting content using the
8553 # custom infoType
8554 # [`SurrogateType`](/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
8555 # This facilitates reversal of the surrogate when it occurs in free text.
8556 #
8557 # In order for inspection to work properly, the name of this infoType must
8558 # not occur naturally anywhere in your data; otherwise, inspection may
8559 # find a surrogate that does not correspond to an actual identifier.
8560 # Therefore, choose your custom infoType name carefully after considering
8561 # what your data looks like. One way to select a name that has a high chance
8562 # of yielding reliable detection is to include one or more unicode characters
8563 # that are highly improbable to exist in your data.
8564 # For example, assuming your data is entered from a regular ASCII keyboard,
8565 # the symbol with the hex code point 29DD might be used like so:
8566 # ⧝MY_TOKEN_TYPE
8567 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
8568 # creating a CustomInfoType, or one of the names listed
8569 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
8570 # a built-in type. InfoType names should conform to the pattern
8571 # `[a-zA-Z0-9_]{1,64}`.
8572 },
8573 &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
8574 # identifier in two different contexts won&#x27;t be given the same surrogate. If
8575 # the context is not set, a default tweak will be used.
8576 #
8577 # If the context is set but:
8578 #
8579 # 1. there is no record present when transforming a given value or
8580 # 1. the field is not present when transforming a given value,
8581 #
8582 # a default tweak will be used.
8583 #
8584 # Note that case (1) is expected when an `InfoTypeTransformation` is
8585 # applied to both structured and non-structured `ContentItem`s.
8586 # Currently, the referenced field may be of value type integer or string.
8587 #
8588 # The tweak is constructed as a sequence of bytes in big endian byte order
8589 # such that:
8590 #
8591 # - a 64 bit integer is encoded followed by a single byte of value 1
8592 # - a string is encoded in UTF-8 format followed by a single byte of value 2
8593 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
8594 },
8595 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
8596 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
8597 # a key encryption key (KEK) stored by KMS).
8598 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
8599 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
8600 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07008601 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
8602 # leaking the key. Choose another type of key if possible.
8603 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
8604 },
8605 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
8606 # It will be discarded after the request finishes.
8607 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
8608 # This is an arbitrary string used to differentiate different keys.
8609 # A unique key is generated per name: two separate `TransientCryptoKey`
8610 # protos share the same generated key if their names are the same.
8611 # When the data crypto key is generated, this name is not used in any way
8612 # (repeating the api call will result in a different key being generated).
8613 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008614 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
8615 # The wrapped key must be a 128/192/256 bit key.
8616 # Authorization requires the following IAM permissions when sending a request
8617 # to perform a crypto transformation using a kms-wrapped crypto key:
8618 # dlp.kms.encrypt
8619 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
8620 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
8621 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008622 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008623 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
8624 # that the FFX mode natively supports. This happens before/after
8625 # encryption/decryption.
8626 # Each character listed must appear only once.
8627 # Number of characters must be in the range [2, 95].
8628 # This must be encoded as ASCII.
8629 # The order of characters does not matter.
8630 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07008631 },
8632 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
8633 # input. Outputs a base64 encoded representation of the encrypted output.
8634 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
8635 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
8636 # This annotation will be applied to the surrogate by prefixing it with
8637 # the name of the custom info type followed by the number of
8638 # characters comprising the surrogate. The following scheme defines the
8639 # format: {info type name}({surrogate character count}):{surrogate}
8640 #
8641 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
8642 # the surrogate is &#x27;abc&#x27;, the full replacement value
8643 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
8644 #
8645 # This annotation identifies the surrogate when inspecting content using the
8646 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
8647 # surrogate when it occurs in free text.
8648 #
8649 # Note: For record transformations where the entire cell in a table is being
8650 # transformed, surrogates are not mandatory. Surrogates are used to denote
8651 # the location of the token and are necessary for re-identification in free
8652 # form text.
8653 #
8654 # In order for inspection to work properly, the name of this info type must
8655 # not occur naturally anywhere in your data; otherwise, inspection may either
8656 #
8657 # - reverse a surrogate that does not correspond to an actual identifier
8658 # - be unable to parse the surrogate and result in an error
8659 #
8660 # Therefore, choose your custom info type name carefully after considering
8661 # what your data looks like. One way to select a name that has a high chance
8662 # of yielding reliable detection is to include one or more unicode characters
8663 # that are highly improbable to exist in your data.
8664 # For example, assuming your data is entered from a regular ASCII keyboard,
8665 # the symbol with the hex code point 29DD might be used like so:
8666 # ⧝MY_TOKEN_TYPE.
8667 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
8668 # creating a CustomInfoType, or one of the names listed
8669 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
8670 # a built-in type. InfoType names should conform to the pattern
8671 # `[a-zA-Z0-9_]{1,64}`.
8672 },
8673 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
8674 # referential integrity such that the same identifier in two different
8675 # contexts will be given a distinct surrogate. The context is appended to
8676 # plaintext value being encrypted. On decryption the provided context is
8677 # validated against the value used during encryption. If a context was
8678 # provided during encryption, same context must be provided during decryption
8679 # as well.
8680 #
8681 # If the context is not set, plaintext would be used as is for encryption.
8682 # If the context is set but:
8683 #
8684 # 1. there is no record present when transforming a given value or
8685 # 2. the field is not present when transforming a given value,
8686 #
8687 # plaintext would be used as is for encryption.
8688 #
8689 # Note that case (1) is expected when an `InfoTypeTransformation` is
8690 # applied to both structured and non-structured `ContentItem`s.
8691 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
8692 },
8693 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
8694 # a key encryption key (KEK) stored by KMS).
8695 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
8696 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
8697 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07008698 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
8699 # leaking the key. Choose another type of key if possible.
8700 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
8701 },
8702 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
8703 # It will be discarded after the request finishes.
8704 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
8705 # This is an arbitrary string used to differentiate different keys.
8706 # A unique key is generated per name: two separate `TransientCryptoKey`
8707 # protos share the same generated key if their names are the same.
8708 # When the data crypto key is generated, this name is not used in any way
8709 # (repeating the api call will result in a different key being generated).
8710 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008711 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
8712 # The wrapped key must be a 128/192/256 bit key.
8713 # Authorization requires the following IAM permissions when sending a request
8714 # to perform a crypto transformation using a kms-wrapped crypto key:
8715 # dlp.kms.encrypt
8716 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
8717 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
8718 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008719 },
8720 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008721 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
8722 # replacement values are dynamically provided by the user for custom behavior,
8723 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
8724 # This can be used on
8725 # data of type: number, long, string, timestamp.
8726 # If the bound `Value` type differs from the type of data being transformed, we
8727 # will first attempt converting the type of the data to be transformed to match
8728 # the type of the bound before comparing.
8729 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
8730 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
8731 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kim65020912020-05-20 12:08:20 -07008732 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Replacement value for this bucket. If not provided
8733 # the default behavior will be to hyphenate the min-max range.
8734 # Note that for the purposes of inspection or transformation, the number
8735 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8736 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8737 # 123456789, the number of bytes would be counted as 9, even though an
8738 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07008739 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8740 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8741 # and time zone are either specified elsewhere or are not significant. The date
8742 # is relative to the Proleptic Gregorian Calendar. This can represent:
8743 #
8744 # * A full date, with non-zero year, month and day values
8745 # * A month and day value, with a zero year, e.g. an anniversary
8746 # * A year on its own, with zero month and day values
8747 # * A year and month value, with a zero day, e.g. a credit card expiration date
8748 #
8749 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8750 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8751 # a year.
8752 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8753 # month and day.
8754 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8755 # if specifying a year by itself or a year and month where the day is not
8756 # significant.
8757 },
8758 &quot;stringValue&quot;: &quot;A String&quot;, # string
8759 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8760 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8761 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8762 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07008763 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8764 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8765 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008766 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8767 # allow the value 60 if it allows leap-seconds.
8768 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07008769 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008770 &quot;booleanValue&quot;: True or False, # boolean
8771 &quot;floatValue&quot;: 3.14, # float
8772 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8773 },
8774 &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
8775 # used.
8776 # Note that for the purposes of inspection or transformation, the number
8777 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8778 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8779 # 123456789, the number of bytes would be counted as 9, even though an
8780 # int64 only holds up to 8 bytes of data.
8781 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8782 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8783 # and time zone are either specified elsewhere or are not significant. The date
8784 # is relative to the Proleptic Gregorian Calendar. This can represent:
8785 #
8786 # * A full date, with non-zero year, month and day values
8787 # * A month and day value, with a zero year, e.g. an anniversary
8788 # * A year on its own, with zero month and day values
8789 # * A year and month value, with a zero day, e.g. a credit card expiration date
8790 #
8791 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8792 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8793 # a year.
8794 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8795 # month and day.
8796 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8797 # if specifying a year by itself or a year and month where the day is not
8798 # significant.
8799 },
8800 &quot;stringValue&quot;: &quot;A String&quot;, # string
8801 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8802 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8803 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8804 # types are google.type.Date and `google.protobuf.Timestamp`.
8805 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8806 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8807 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8808 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8809 # allow the value 60 if it allows leap-seconds.
8810 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
8811 },
8812 &quot;booleanValue&quot;: True or False, # boolean
8813 &quot;floatValue&quot;: 3.14, # float
8814 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
8815 },
8816 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
8817 # Note that for the purposes of inspection or transformation, the number
8818 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8819 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8820 # 123456789, the number of bytes would be counted as 9, even though an
8821 # int64 only holds up to 8 bytes of data.
8822 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8823 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8824 # and time zone are either specified elsewhere or are not significant. The date
8825 # is relative to the Proleptic Gregorian Calendar. This can represent:
8826 #
8827 # * A full date, with non-zero year, month and day values
8828 # * A month and day value, with a zero year, e.g. an anniversary
8829 # * A year on its own, with zero month and day values
8830 # * A year and month value, with a zero day, e.g. a credit card expiration date
8831 #
8832 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8833 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8834 # a year.
8835 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8836 # month and day.
8837 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8838 # if specifying a year by itself or a year and month where the day is not
8839 # significant.
8840 },
8841 &quot;stringValue&quot;: &quot;A String&quot;, # string
8842 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8843 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8844 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8845 # types are google.type.Date and `google.protobuf.Timestamp`.
8846 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8847 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8848 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
8849 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8850 # allow the value 60 if it allows leap-seconds.
8851 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
8852 },
8853 &quot;booleanValue&quot;: True or False, # boolean
8854 &quot;floatValue&quot;: 3.14, # float
8855 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07008856 },
8857 },
8858 ],
8859 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008860 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
8861 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
8862 # output would be &#x27;My phone number is &#x27;.
8863 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008864 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
8865 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
8866 # Note that for the purposes of inspection or transformation, the number
8867 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8868 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8869 # 123456789, the number of bytes would be counted as 9, even though an
8870 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07008871 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8872 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8873 # and time zone are either specified elsewhere or are not significant. The date
8874 # is relative to the Proleptic Gregorian Calendar. This can represent:
8875 #
8876 # * A full date, with non-zero year, month and day values
8877 # * A month and day value, with a zero year, e.g. an anniversary
8878 # * A year on its own, with zero month and day values
8879 # * A year and month value, with a zero day, e.g. a credit card expiration date
8880 #
8881 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8882 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8883 # a year.
8884 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8885 # month and day.
8886 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8887 # if specifying a year by itself or a year and month where the day is not
8888 # significant.
8889 },
8890 &quot;stringValue&quot;: &quot;A String&quot;, # string
8891 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8892 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8893 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8894 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07008895 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8896 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8897 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008898 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8899 # allow the value 60 if it allows leap-seconds.
8900 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07008901 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008902 &quot;booleanValue&quot;: True or False, # boolean
8903 &quot;floatValue&quot;: 3.14, # float
8904 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07008905 },
8906 },
Bu Sun Kim65020912020-05-20 12:08:20 -07008907 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
8908 # Bucketing transformation can provide all of this functionality,
8909 # but requires more configuration. This message is provided as a convenience to
8910 # the user for simple bucketing strategies.
8911 #
8912 # The transformed value will be a hyphenated string of
8913 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
8914 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
8915 #
8916 # This can be used on data of type: double, long.
8917 #
8918 # If the bound Value type differs from the type of data
8919 # being transformed, we will first attempt converting the type of the data to
8920 # be transformed to match the type of the bound before comparing.
8921 #
8922 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07008923 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
8924 # grouped together into a single bucket; for example if `upper_bound` = 89,
8925 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
8926 # Note that for the purposes of inspection or transformation, the number
8927 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8928 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8929 # 123456789, the number of bytes would be counted as 9, even though an
8930 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07008931 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8932 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8933 # and time zone are either specified elsewhere or are not significant. The date
8934 # is relative to the Proleptic Gregorian Calendar. This can represent:
8935 #
8936 # * A full date, with non-zero year, month and day values
8937 # * A month and day value, with a zero year, e.g. an anniversary
8938 # * A year on its own, with zero month and day values
8939 # * A year and month value, with a zero day, e.g. a credit card expiration date
8940 #
8941 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8942 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8943 # a year.
8944 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8945 # month and day.
8946 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8947 # if specifying a year by itself or a year and month where the day is not
8948 # significant.
8949 },
8950 &quot;stringValue&quot;: &quot;A String&quot;, # string
8951 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8952 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
8953 # or are specified elsewhere. An API may choose to allow leap seconds. Related
8954 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07008955 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
8956 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
8957 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008958 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
8959 # allow the value 60 if it allows leap-seconds.
8960 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07008961 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008962 &quot;booleanValue&quot;: True or False, # boolean
8963 &quot;floatValue&quot;: 3.14, # float
8964 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07008965 },
8966 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
8967 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
8968 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
8969 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07008970 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
8971 # grouped together into a single bucket; for example if `lower_bound` = 10,
8972 # then all values less than 10 are replaced with the value &quot;-10&quot;.
8973 # Note that for the purposes of inspection or transformation, the number
8974 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
8975 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
8976 # 123456789, the number of bytes would be counted as 9, even though an
8977 # int64 only holds up to 8 bytes of data.
8978 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
8979 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
8980 # and time zone are either specified elsewhere or are not significant. The date
8981 # is relative to the Proleptic Gregorian Calendar. This can represent:
8982 #
8983 # * A full date, with non-zero year, month and day values
8984 # * A month and day value, with a zero year, e.g. an anniversary
8985 # * A year on its own, with zero month and day values
8986 # * A year and month value, with a zero day, e.g. a credit card expiration date
8987 #
8988 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
8989 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
8990 # a year.
8991 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
8992 # month and day.
8993 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
8994 # if specifying a year by itself or a year and month where the day is not
8995 # significant.
8996 },
8997 &quot;stringValue&quot;: &quot;A String&quot;, # string
8998 &quot;integerValue&quot;: &quot;A String&quot;, # integer
8999 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9000 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9001 # types are google.type.Date and `google.protobuf.Timestamp`.
9002 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9003 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9004 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
9005 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9006 # allow the value 60 if it allows leap-seconds.
9007 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
9008 },
9009 &quot;booleanValue&quot;: True or False, # boolean
9010 &quot;floatValue&quot;: 3.14, # float
9011 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
9012 },
9013 },
9014 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
9015 # fixed character. Masking can start from the beginning or end of the string.
9016 # This can be used on data of any type (numbers, longs, and so on) and when
9017 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
9018 # type. (This allows you to take a long like 123 and modify it to a string like
9019 # **3.
9020 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
9021 # characters. For example, if the input string is `555-555-5555` and you
9022 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
9023 # returns `***-**5-5555`.
9024 { # Characters to skip when doing deidentification of a value. These will be left
9025 # alone and skipped.
9026 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
9027 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
9028 # punctuation.
9029 },
9030 ],
9031 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
9032 # masked. Skipped characters do not count towards this tally.
9033 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
9034 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
9035 # code or credit card number. This string must have a length of 1. If not
9036 # supplied, this value defaults to `*` for strings, and `0` for digits.
9037 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
9038 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
9039 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
9040 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
9041 # is `true`, then the string `12345` is masked as `12***`.
Bu Sun Kim65020912020-05-20 12:08:20 -07009042 },
9043 },
9044 &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
9045 # given `RecordCondition`. The conditions are allowed to reference fields
9046 # that are not used in the actual transformation.
9047 #
9048 # Example Use Cases:
9049 #
9050 # - Apply a different bucket transformation to an age column if the zip code
9051 # column for the same record is within a specific range.
9052 # - Redact a field if the date of birth field is greater than 85.
9053 # a field.
9054 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
9055 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
9056 # only supported value is `AND`.
9057 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
9058 &quot;conditions&quot;: [ # A collection of conditions.
9059 { # The field type of `value` and `field` do not need to match to be
9060 # considered equal, but not all comparisons are possible.
9061 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
9062 # but all other comparisons are invalid with incompatible types.
9063 # A `value` of type:
9064 #
9065 # - `string` can be compared against all other types
9066 # - `boolean` can only be compared against other booleans
9067 # - `integer` can be compared against doubles or a string if the string value
9068 # can be parsed as an integer.
9069 # - `double` can be compared against integers or a string if the string can
9070 # be parsed as a double.
9071 # - `Timestamp` can be compared against strings in RFC 3339 date string
9072 # format.
9073 # - `TimeOfDay` can be compared against timestamps and strings in the format
9074 # of &#x27;HH:mm:ss&#x27;.
9075 #
9076 # If we fail to compare do to type mismatch, a warning will be given and
9077 # the condition will evaluate to false.
Bu Sun Kim65020912020-05-20 12:08:20 -07009078 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
9079 # Note that for the purposes of inspection or transformation, the number
9080 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9081 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9082 # 123456789, the number of bytes would be counted as 9, even though an
9083 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07009084 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9085 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9086 # and time zone are either specified elsewhere or are not significant. The date
9087 # is relative to the Proleptic Gregorian Calendar. This can represent:
9088 #
9089 # * A full date, with non-zero year, month and day values
9090 # * A month and day value, with a zero year, e.g. an anniversary
9091 # * A year on its own, with zero month and day values
9092 # * A year and month value, with a zero day, e.g. a credit card expiration date
9093 #
9094 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9095 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9096 # a year.
9097 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9098 # month and day.
9099 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9100 # if specifying a year by itself or a year and month where the day is not
9101 # significant.
9102 },
9103 &quot;stringValue&quot;: &quot;A String&quot;, # string
9104 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9105 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9106 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9107 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07009108 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9109 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9110 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009111 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9112 # allow the value 60 if it allows leap-seconds.
9113 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07009114 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009115 &quot;booleanValue&quot;: True or False, # boolean
9116 &quot;floatValue&quot;: 3.14, # float
9117 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07009118 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009119 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
9120 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
9121 },
9122 &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 -07009123 },
9124 ],
9125 },
9126 },
9127 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009128 },
9129 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07009130 &quot;transformation&quot;: { # A rule for transforming a value. # The specific transformation these stats apply to.
9131 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a # Time extraction
9132 # portion of the value.
9133 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
9134 },
9135 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the # Date Shift
9136 # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
9137 # to learn more.
9138 &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.
9139 # If set, must also set cryptoKey. If set, shift will be consistent for the
9140 # given context.
9141 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
9142 },
9143 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this
9144 # range (inclusive ends). Negative means shift to earlier in time. Must not
9145 # be more than 365250 days (1000 years) each direction.
9146 #
9147 # For example, 3 means shift date to at most 3 days into the future.
9148 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
9149 &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
9150 # results in the same shift for the same context and crypto_key. If
9151 # set, must also set context. Can only be applied to table items.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009152 # a key encryption key (KEK) stored by KMS).
9153 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
9154 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
9155 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07009156 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009157 # leaking the key. Choose another type of key if possible.
Bu Sun Kim65020912020-05-20 12:08:20 -07009158 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009159 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009160 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009161 # It will be discarded after the request finishes.
Bu Sun Kim65020912020-05-20 12:08:20 -07009162 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009163 # This is an arbitrary string used to differentiate different keys.
9164 # A unique key is generated per name: two separate `TransientCryptoKey`
9165 # protos share the same generated key if their names are the same.
9166 # When the data crypto key is generated, this name is not used in any way
9167 # (repeating the api call will result in a different key being generated).
9168 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009169 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
9170 # The wrapped key must be a 128/192/256 bit key.
9171 # Authorization requires the following IAM permissions when sending a request
9172 # to perform a crypto transformation using a kms-wrapped crypto key:
9173 # dlp.kms.encrypt
9174 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
9175 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
9176 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009177 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009178 },
9179 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
9180 },
9181 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. # Crypto
9182 # Uses SHA-256.
9183 # The key size must be either 32 or 64 bytes.
9184 # Outputs a base64 encoded representation of the hashed output
9185 # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
9186 # Currently, only string and integer values can be hashed.
9187 # See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
9188 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the hash function.
9189 # a key encryption key (KEK) stored by KMS).
9190 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
9191 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
9192 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07009193 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
9194 # leaking the key. Choose another type of key if possible.
9195 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
9196 },
9197 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
9198 # It will be discarded after the request finishes.
9199 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
9200 # This is an arbitrary string used to differentiate different keys.
9201 # A unique key is generated per name: two separate `TransientCryptoKey`
9202 # protos share the same generated key if their names are the same.
9203 # When the data crypto key is generated, this name is not used in any way
9204 # (repeating the api call will result in a different key being generated).
9205 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009206 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
9207 # The wrapped key must be a 128/192/256 bit key.
9208 # Authorization requires the following IAM permissions when sending a request
9209 # to perform a crypto transformation using a kms-wrapped crypto key:
9210 # dlp.kms.encrypt
9211 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
9212 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
9213 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009214 },
9215 },
9216 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption # Ffx-Fpe
9217 # (FPE) with the FFX mode of operation; however when used in the
9218 # `ReidentifyContent` API method, it serves the opposite function by reversing
9219 # the surrogate back into the original identifier. The identifier must be
9220 # encoded as ASCII. For a given crypto key and context, the same identifier
9221 # will be replaced with the same surrogate. Identifiers must be at least two
9222 # characters long. In the case that the identifier is the empty string, it will
9223 # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
9224 # more.
9225 #
9226 # Note: We recommend using CryptoDeterministicConfig for all use cases which
9227 # do not require preserving the input alphabet space and size, plus warrant
9228 # referential integrity.
Bu Sun Kim65020912020-05-20 12:08:20 -07009229 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with.
9230 # This annotation will be applied to the surrogate by prefixing it with
9231 # the name of the custom infoType followed by the number of
9232 # characters comprising the surrogate. The following scheme defines the
9233 # format: info_type_name(surrogate_character_count):surrogate
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009234 #
Bu Sun Kim65020912020-05-20 12:08:20 -07009235 # For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
9236 # the surrogate is &#x27;abc&#x27;, the full replacement value
9237 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
9238 #
9239 # This annotation identifies the surrogate when inspecting content using the
9240 # custom infoType
9241 # [`SurrogateType`](/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
9242 # This facilitates reversal of the surrogate when it occurs in free text.
9243 #
9244 # In order for inspection to work properly, the name of this infoType must
9245 # not occur naturally anywhere in your data; otherwise, inspection may
9246 # find a surrogate that does not correspond to an actual identifier.
9247 # Therefore, choose your custom infoType name carefully after considering
9248 # what your data looks like. One way to select a name that has a high chance
9249 # of yielding reliable detection is to include one or more unicode characters
9250 # that are highly improbable to exist in your data.
9251 # For example, assuming your data is entered from a regular ASCII keyboard,
9252 # the symbol with the hex code point 29DD might be used like so:
9253 # ⧝MY_TOKEN_TYPE
9254 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
9255 # creating a CustomInfoType, or one of the names listed
9256 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
9257 # a built-in type. InfoType names should conform to the pattern
9258 # `[a-zA-Z0-9_]{1,64}`.
9259 },
9260 &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
9261 # identifier in two different contexts won&#x27;t be given the same surrogate. If
9262 # the context is not set, a default tweak will be used.
9263 #
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009264 # If the context is set but:
9265 #
9266 # 1. there is no record present when transforming a given value or
Bu Sun Kim65020912020-05-20 12:08:20 -07009267 # 1. the field is not present when transforming a given value,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009268 #
Bu Sun Kim65020912020-05-20 12:08:20 -07009269 # a default tweak will be used.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009270 #
9271 # Note that case (1) is expected when an `InfoTypeTransformation` is
9272 # applied to both structured and non-structured `ContentItem`s.
Bu Sun Kim65020912020-05-20 12:08:20 -07009273 # Currently, the referenced field may be of value type integer or string.
9274 #
9275 # The tweak is constructed as a sequence of bytes in big endian byte order
9276 # such that:
9277 #
9278 # - a 64 bit integer is encoded followed by a single byte of value 1
9279 # - a string is encoded in UTF-8 format followed by a single byte of value 2
9280 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009281 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009282 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
9283 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # Required. The key used by the encryption algorithm.
9284 # a key encryption key (KEK) stored by KMS).
9285 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
9286 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
9287 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07009288 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
9289 # leaking the key. Choose another type of key if possible.
9290 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
9291 },
9292 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
9293 # It will be discarded after the request finishes.
9294 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
9295 # This is an arbitrary string used to differentiate different keys.
9296 # A unique key is generated per name: two separate `TransientCryptoKey`
9297 # protos share the same generated key if their names are the same.
9298 # When the data crypto key is generated, this name is not used in any way
9299 # (repeating the api call will result in a different key being generated).
9300 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009301 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
9302 # The wrapped key must be a 128/192/256 bit key.
9303 # Authorization requires the following IAM permissions when sending a request
9304 # to perform a crypto transformation using a kms-wrapped crypto key:
9305 # dlp.kms.encrypt
9306 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
9307 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
9308 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009309 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009310 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters
9311 # that the FFX mode natively supports. This happens before/after
9312 # encryption/decryption.
9313 # Each character listed must appear only once.
9314 # Number of characters must be in the range [2, 95].
9315 # This must be encoded as ASCII.
9316 # The order of characters does not matter.
9317 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim65020912020-05-20 12:08:20 -07009318 },
9319 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given # Deterministic Crypto
9320 # input. Outputs a base64 encoded representation of the encrypted output.
9321 # Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
9322 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009323 # This annotation will be applied to the surrogate by prefixing it with
9324 # the name of the custom info type followed by the number of
9325 # characters comprising the surrogate. The following scheme defines the
Dan O'Mearadd494642020-05-01 07:42:23 -07009326 # format: {info type name}({surrogate character count}):{surrogate}
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009327 #
Bu Sun Kim65020912020-05-20 12:08:20 -07009328 # For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and
9329 # the surrogate is &#x27;abc&#x27;, the full replacement value
9330 # will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009331 #
9332 # This annotation identifies the surrogate when inspecting content using the
Bu Sun Kim65020912020-05-20 12:08:20 -07009333 # custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009334 # surrogate when it occurs in free text.
9335 #
Dan O'Mearadd494642020-05-01 07:42:23 -07009336 # Note: For record transformations where the entire cell in a table is being
9337 # transformed, surrogates are not mandatory. Surrogates are used to denote
9338 # the location of the token and are necessary for re-identification in free
9339 # form text.
9340 #
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009341 # In order for inspection to work properly, the name of this info type must
9342 # not occur naturally anywhere in your data; otherwise, inspection may either
9343 #
9344 # - reverse a surrogate that does not correspond to an actual identifier
9345 # - be unable to parse the surrogate and result in an error
9346 #
9347 # Therefore, choose your custom info type name carefully after considering
9348 # what your data looks like. One way to select a name that has a high chance
9349 # of yielding reliable detection is to include one or more unicode characters
9350 # that are highly improbable to exist in your data.
9351 # For example, assuming your data is entered from a regular ASCII keyboard,
9352 # the symbol with the hex code point 29DD might be used like so:
Dan O'Mearadd494642020-05-01 07:42:23 -07009353 # ⧝MY_TOKEN_TYPE.
Bu Sun Kim65020912020-05-20 12:08:20 -07009354 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009355 # creating a CustomInfoType, or one of the names listed
9356 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
9357 # a built-in type. InfoType names should conform to the pattern
Dan O'Mearadd494642020-05-01 07:42:23 -07009358 # `[a-zA-Z0-9_]{1,64}`.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009359 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009360 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining
9361 # referential integrity such that the same identifier in two different
9362 # contexts will be given a distinct surrogate. The context is appended to
9363 # plaintext value being encrypted. On decryption the provided context is
9364 # validated against the value used during encryption. If a context was
9365 # provided during encryption, same context must be provided during decryption
9366 # as well.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009367 #
Bu Sun Kim65020912020-05-20 12:08:20 -07009368 # If the context is not set, plaintext would be used as is for encryption.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009369 # If the context is set but:
9370 #
9371 # 1. there is no record present when transforming a given value or
Bu Sun Kim65020912020-05-20 12:08:20 -07009372 # 2. the field is not present when transforming a given value,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009373 #
Bu Sun Kim65020912020-05-20 12:08:20 -07009374 # plaintext would be used as is for encryption.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009375 #
9376 # Note that case (1) is expected when an `InfoTypeTransformation` is
9377 # applied to both structured and non-structured `ContentItem`s.
Bu Sun Kim65020912020-05-20 12:08:20 -07009378 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009379 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009380 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to # The key used by the encryption function.
9381 # a key encryption key (KEK) stored by KMS).
9382 # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
9383 # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
9384 # unwrap the data crypto key.
Bu Sun Kim65020912020-05-20 12:08:20 -07009385 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally # Unwrapped crypto key
9386 # leaking the key. Choose another type of key if possible.
9387 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
9388 },
9389 &quot;transient&quot;: { # Use this to have a random data crypto key generated. # Transient crypto key
9390 # It will be discarded after the request finishes.
9391 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key.
9392 # This is an arbitrary string used to differentiate different keys.
9393 # A unique key is generated per name: two separate `TransientCryptoKey`
9394 # protos share the same generated key if their names are the same.
9395 # When the data crypto key is generated, this name is not used in any way
9396 # (repeating the api call will result in a different key being generated).
9397 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009398 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. # Kms wrapped key
9399 # The wrapped key must be a 128/192/256 bit key.
9400 # Authorization requires the following IAM permissions when sending a request
9401 # to perform a crypto transformation using a kms-wrapped crypto key:
9402 # dlp.kms.encrypt
9403 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
9404 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
9405 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009406 },
9407 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009408 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and # Bucketing
Dan O'Mearadd494642020-05-01 07:42:23 -07009409 # replacement values are dynamically provided by the user for custom behavior,
9410 # such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH
9411 # This can be used on
9412 # data of type: number, long, string, timestamp.
9413 # If the bound `Value` type differs from the type of data being transformed, we
9414 # will first attempt converting the type of the data to be transformed to match
9415 # the type of the bound before comparing.
9416 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07009417 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
Dan O'Mearadd494642020-05-01 07:42:23 -07009418 { # Bucket is represented as a range, along with replacement values.
Bu Sun Kim65020912020-05-20 12:08:20 -07009419 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. # Replacement value for this bucket. If not provided
9420 # the default behavior will be to hyphenate the min-max range.
9421 # Note that for the purposes of inspection or transformation, the number
9422 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9423 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9424 # 123456789, the number of bytes would be counted as 9, even though an
9425 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07009426 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9427 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9428 # and time zone are either specified elsewhere or are not significant. The date
9429 # is relative to the Proleptic Gregorian Calendar. This can represent:
9430 #
9431 # * A full date, with non-zero year, month and day values
9432 # * A month and day value, with a zero year, e.g. an anniversary
9433 # * A year on its own, with zero month and day values
9434 # * A year and month value, with a zero day, e.g. a credit card expiration date
9435 #
9436 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9437 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9438 # a year.
9439 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9440 # month and day.
9441 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9442 # if specifying a year by itself or a year and month where the day is not
9443 # significant.
9444 },
9445 &quot;stringValue&quot;: &quot;A String&quot;, # string
9446 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9447 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9448 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9449 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07009450 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9451 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9452 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009453 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9454 # allow the value 60 if it allows leap-seconds.
9455 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07009456 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009457 &quot;booleanValue&quot;: True or False, # boolean
9458 &quot;floatValue&quot;: 3.14, # float
9459 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
9460 },
9461 &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
9462 # used.
9463 # Note that for the purposes of inspection or transformation, the number
9464 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9465 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9466 # 123456789, the number of bytes would be counted as 9, even though an
9467 # int64 only holds up to 8 bytes of data.
9468 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9469 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9470 # and time zone are either specified elsewhere or are not significant. The date
9471 # is relative to the Proleptic Gregorian Calendar. This can represent:
9472 #
9473 # * A full date, with non-zero year, month and day values
9474 # * A month and day value, with a zero year, e.g. an anniversary
9475 # * A year on its own, with zero month and day values
9476 # * A year and month value, with a zero day, e.g. a credit card expiration date
9477 #
9478 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9479 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9480 # a year.
9481 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9482 # month and day.
9483 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9484 # if specifying a year by itself or a year and month where the day is not
9485 # significant.
9486 },
9487 &quot;stringValue&quot;: &quot;A String&quot;, # string
9488 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9489 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9490 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9491 # types are google.type.Date and `google.protobuf.Timestamp`.
9492 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9493 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9494 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
9495 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9496 # allow the value 60 if it allows leap-seconds.
9497 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
9498 },
9499 &quot;booleanValue&quot;: True or False, # boolean
9500 &quot;floatValue&quot;: 3.14, # float
9501 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
9502 },
9503 &quot;max&quot;: { # Set of primitive values supported by the system. # Upper bound of the range, exclusive; type must match min.
9504 # Note that for the purposes of inspection or transformation, the number
9505 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9506 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9507 # 123456789, the number of bytes would be counted as 9, even though an
9508 # int64 only holds up to 8 bytes of data.
9509 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9510 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9511 # and time zone are either specified elsewhere or are not significant. The date
9512 # is relative to the Proleptic Gregorian Calendar. This can represent:
9513 #
9514 # * A full date, with non-zero year, month and day values
9515 # * A month and day value, with a zero year, e.g. an anniversary
9516 # * A year on its own, with zero month and day values
9517 # * A year and month value, with a zero day, e.g. a credit card expiration date
9518 #
9519 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9520 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9521 # a year.
9522 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9523 # month and day.
9524 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9525 # if specifying a year by itself or a year and month where the day is not
9526 # significant.
9527 },
9528 &quot;stringValue&quot;: &quot;A String&quot;, # string
9529 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9530 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9531 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9532 # types are google.type.Date and `google.protobuf.Timestamp`.
9533 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9534 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9535 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
9536 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9537 # allow the value 60 if it allows leap-seconds.
9538 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
9539 },
9540 &quot;booleanValue&quot;: True or False, # boolean
9541 &quot;floatValue&quot;: 3.14, # float
9542 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Dan O'Mearadd494642020-05-01 07:42:23 -07009543 },
9544 },
9545 ],
9546 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009547 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` # Redact
9548 # transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the
9549 # output would be &#x27;My phone number is &#x27;.
9550 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009551 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
9552 &quot;newValue&quot;: { # Set of primitive values supported by the system. # Value to replace it with.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009553 # Note that for the purposes of inspection or transformation, the number
Bu Sun Kim65020912020-05-20 12:08:20 -07009554 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9555 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009556 # 123456789, the number of bytes would be counted as 9, even though an
9557 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07009558 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9559 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009560 # and time zone are either specified elsewhere or are not significant. The date
9561 # is relative to the Proleptic Gregorian Calendar. This can represent:
9562 #
9563 # * A full date, with non-zero year, month and day values
9564 # * A month and day value, with a zero year, e.g. an anniversary
9565 # * A year on its own, with zero month and day values
9566 # * A year and month value, with a zero day, e.g. a credit card expiration date
9567 #
9568 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07009569 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9570 # a year.
9571 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
Dan O'Mearadd494642020-05-01 07:42:23 -07009572 # month and day.
Bu Sun Kim65020912020-05-20 12:08:20 -07009573 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009574 # if specifying a year by itself or a year and month where the day is not
9575 # significant.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009576 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009577 &quot;stringValue&quot;: &quot;A String&quot;, # string
9578 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9579 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9580 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9581 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07009582 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9583 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9584 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009585 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9586 # allow the value 60 if it allows leap-seconds.
9587 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07009588 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009589 &quot;booleanValue&quot;: True or False, # boolean
9590 &quot;floatValue&quot;: 3.14, # float
9591 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07009592 },
9593 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009594 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The # Fixed size bucketing
9595 # Bucketing transformation can provide all of this functionality,
9596 # but requires more configuration. This message is provided as a convenience to
9597 # the user for simple bucketing strategies.
9598 #
9599 # The transformed value will be a hyphenated string of
9600 # {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20
9601 # all values that are within this bucket will be replaced with &quot;10-20&quot;.
9602 #
9603 # This can be used on data of type: double, long.
9604 #
9605 # If the bound Value type differs from the type of data
9606 # being transformed, we will first attempt converting the type of the data to
9607 # be transformed to match the type of the bound before comparing.
9608 #
9609 # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
Bu Sun Kim65020912020-05-20 12:08:20 -07009610 &quot;upperBound&quot;: { # Set of primitive values supported by the system. # Required. Upper bound value of buckets. All values greater than upper_bound are
9611 # grouped together into a single bucket; for example if `upper_bound` = 89,
9612 # then all values greater than 89 are replaced with the value &quot;89+&quot;.
9613 # Note that for the purposes of inspection or transformation, the number
9614 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9615 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9616 # 123456789, the number of bytes would be counted as 9, even though an
9617 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07009618 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9619 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9620 # and time zone are either specified elsewhere or are not significant. The date
9621 # is relative to the Proleptic Gregorian Calendar. This can represent:
9622 #
9623 # * A full date, with non-zero year, month and day values
9624 # * A month and day value, with a zero year, e.g. an anniversary
9625 # * A year on its own, with zero month and day values
9626 # * A year and month value, with a zero day, e.g. a credit card expiration date
9627 #
9628 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9629 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9630 # a year.
9631 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9632 # month and day.
9633 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9634 # if specifying a year by itself or a year and month where the day is not
9635 # significant.
9636 },
9637 &quot;stringValue&quot;: &quot;A String&quot;, # string
9638 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9639 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9640 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9641 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07009642 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9643 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9644 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009645 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9646 # allow the value 60 if it allows leap-seconds.
9647 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07009648 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009649 &quot;booleanValue&quot;: True or False, # boolean
9650 &quot;floatValue&quot;: 3.14, # float
9651 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07009652 },
9653 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if
9654 # `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
9655 # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
9656 # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009657 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. # Required. Lower bound value of buckets. All values less than `lower_bound` are
9658 # grouped together into a single bucket; for example if `lower_bound` = 10,
9659 # then all values less than 10 are replaced with the value &quot;-10&quot;.
9660 # Note that for the purposes of inspection or transformation, the number
9661 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9662 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9663 # 123456789, the number of bytes would be counted as 9, even though an
9664 # int64 only holds up to 8 bytes of data.
9665 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9666 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9667 # and time zone are either specified elsewhere or are not significant. The date
9668 # is relative to the Proleptic Gregorian Calendar. This can represent:
9669 #
9670 # * A full date, with non-zero year, month and day values
9671 # * A month and day value, with a zero year, e.g. an anniversary
9672 # * A year on its own, with zero month and day values
9673 # * A year and month value, with a zero day, e.g. a credit card expiration date
9674 #
9675 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9676 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9677 # a year.
9678 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9679 # month and day.
9680 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9681 # if specifying a year by itself or a year and month where the day is not
9682 # significant.
9683 },
9684 &quot;stringValue&quot;: &quot;A String&quot;, # string
9685 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9686 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9687 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9688 # types are google.type.Date and `google.protobuf.Timestamp`.
9689 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9690 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9691 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
9692 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9693 # allow the value 60 if it allows leap-seconds.
9694 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
9695 },
9696 &quot;booleanValue&quot;: True or False, # boolean
9697 &quot;floatValue&quot;: 3.14, # float
9698 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
9699 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009700 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009701 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a # Mask
9702 # fixed character. Masking can start from the beginning or end of the string.
9703 # This can be used on data of any type (numbers, longs, and so on) and when
9704 # de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s
9705 # type. (This allows you to take a long like 123 and modify it to a string like
9706 # **3.
9707 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing
9708 # characters. For example, if the input string is `555-555-5555` and you
9709 # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
9710 # returns `***-**5-5555`.
9711 { # Characters to skip when doing deidentification of a value. These will be left
9712 # alone and skipped.
9713 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
9714 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing
9715 # punctuation.
9716 },
9717 ],
9718 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be
9719 # masked. Skipped characters do not count towards this tally.
9720 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values&amp;mdash;for example, `*` for an
9721 # alphabetic string such as a name, or `0` for a numeric string such as ZIP
9722 # code or credit card number. This string must have a length of 1. If not
9723 # supplied, this value defaults to `*` for strings, and `0` for digits.
9724 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is
9725 # `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
9726 # input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
9727 # If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
9728 # is `true`, then the string `12345` is masked as `12***`.
9729 },
9730 },
9731 &quot;field&quot;: { # General identifier of a data field in a storage service. # Set if the transformation was limited to a specific FieldId.
9732 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
Bu Sun Kim65020912020-05-20 12:08:20 -07009733 },
9734 &quot;transformedBytes&quot;: &quot;A String&quot;, # Total size in bytes that were transformed in some way.
9735 &quot;recordSuppress&quot;: { # Configuration to suppress records whose suppression conditions evaluate to # The specific suppression option these stats apply to.
9736 # true.
9737 &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
9738 # evaluated to be suppressed from the transformed content.
9739 # a field.
9740 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
9741 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently
9742 # only supported value is `AND`.
9743 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
9744 &quot;conditions&quot;: [ # A collection of conditions.
9745 { # The field type of `value` and `field` do not need to match to be
9746 # considered equal, but not all comparisons are possible.
9747 # EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
9748 # but all other comparisons are invalid with incompatible types.
9749 # A `value` of type:
9750 #
9751 # - `string` can be compared against all other types
9752 # - `boolean` can only be compared against other booleans
9753 # - `integer` can be compared against doubles or a string if the string value
9754 # can be parsed as an integer.
9755 # - `double` can be compared against integers or a string if the string can
9756 # be parsed as a double.
9757 # - `Timestamp` can be compared against strings in RFC 3339 date string
9758 # format.
9759 # - `TimeOfDay` can be compared against timestamps and strings in the format
9760 # of &#x27;HH:mm:ss&#x27;.
9761 #
9762 # If we fail to compare do to type mismatch, a warning will be given and
9763 # the condition will evaluate to false.
Bu Sun Kim65020912020-05-20 12:08:20 -07009764 &quot;value&quot;: { # Set of primitive values supported by the system. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
9765 # Note that for the purposes of inspection or transformation, the number
9766 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9767 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9768 # 123456789, the number of bytes would be counted as 9, even though an
9769 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07009770 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9771 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9772 # and time zone are either specified elsewhere or are not significant. The date
9773 # is relative to the Proleptic Gregorian Calendar. This can represent:
9774 #
9775 # * A full date, with non-zero year, month and day values
9776 # * A month and day value, with a zero year, e.g. an anniversary
9777 # * A year on its own, with zero month and day values
9778 # * A year and month value, with a zero day, e.g. a credit card expiration date
9779 #
9780 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9781 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9782 # a year.
9783 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9784 # month and day.
9785 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9786 # if specifying a year by itself or a year and month where the day is not
9787 # significant.
9788 },
9789 &quot;stringValue&quot;: &quot;A String&quot;, # string
9790 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9791 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9792 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9793 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07009794 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9795 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9796 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009797 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9798 # allow the value 60 if it allows leap-seconds.
9799 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07009800 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009801 &quot;booleanValue&quot;: True or False, # boolean
9802 &quot;floatValue&quot;: 3.14, # float
9803 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07009804 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009805 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
9806 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
9807 },
9808 &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 -07009809 },
9810 ],
9811 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009812 },
9813 },
9814 },
Bu Sun Kim65020912020-05-20 12:08:20 -07009815 &quot;infoType&quot;: { # Type of information detected by the API. # Set if the transformation was limited to a specific InfoType.
9816 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when
9817 # creating a CustomInfoType, or one of the names listed
9818 # at https://cloud.google.com/dlp/docs/infotypes-reference when specifying
9819 # a built-in type. InfoType names should conform to the pattern
9820 # `[a-zA-Z0-9_]{1,64}`.
9821 },
9822 &quot;results&quot;: [ # Collection of all transformations that took place or had an error.
9823 { # A collection that informs the user the number of times a particular
9824 # `TransformationResultCode` and error details occurred.
Bu Sun Kim65020912020-05-20 12:08:20 -07009825 &quot;details&quot;: &quot;A String&quot;, # A place for warnings or errors to show up if a transformation didn&#x27;t
9826 # work as expected.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009827 &quot;code&quot;: &quot;A String&quot;, # Outcome of the transformation.
9828 &quot;count&quot;: &quot;A String&quot;, # Number of transformations counted by this result.
Bu Sun Kim65020912020-05-20 12:08:20 -07009829 },
9830 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009831 },
9832 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07009833 &quot;transformedBytes&quot;: &quot;A String&quot;, # Total size in bytes that were transformed in some way.
9834 },
9835 &quot;item&quot;: { # Container structure for the content to inspect. # The re-identified item.
9836 &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 -07009837 &quot;data&quot;: &quot;A String&quot;, # Content data to inspect or redact.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009838 &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 -07009839 },
9840 &quot;value&quot;: &quot;A String&quot;, # String data to inspect or redact.
9841 &quot;table&quot;: { # Structured content to inspect. Up to 50,000 `Value`s per request allowed. # Structured content for inspection. See
9842 # https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
9843 # learn more.
9844 # See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
9845 # learn more.
9846 &quot;rows&quot;: [ # Rows of the table.
9847 { # Values of the row.
9848 &quot;values&quot;: [ # Individual cells.
9849 { # Set of primitive values supported by the system.
9850 # Note that for the purposes of inspection or transformation, the number
9851 # of bytes considered to comprise a &#x27;Value&#x27; is based on its representation
9852 # as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to
9853 # 123456789, the number of bytes would be counted as 9, even though an
9854 # int64 only holds up to 8 bytes of data.
Bu Sun Kim65020912020-05-20 12:08:20 -07009855 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
9856 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
9857 # and time zone are either specified elsewhere or are not significant. The date
9858 # is relative to the Proleptic Gregorian Calendar. This can represent:
9859 #
9860 # * A full date, with non-zero year, month and day values
9861 # * A month and day value, with a zero year, e.g. an anniversary
9862 # * A year on its own, with zero month and day values
9863 # * A year and month value, with a zero day, e.g. a credit card expiration date
9864 #
9865 # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
9866 &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
9867 # a year.
9868 &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
9869 # month and day.
9870 &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
9871 # if specifying a year by itself or a year and month where the day is not
9872 # significant.
9873 },
9874 &quot;stringValue&quot;: &quot;A String&quot;, # string
9875 &quot;integerValue&quot;: &quot;A String&quot;, # integer
9876 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
9877 # or are specified elsewhere. An API may choose to allow leap seconds. Related
9878 # types are google.type.Date and `google.protobuf.Timestamp`.
Bu Sun Kim65020912020-05-20 12:08:20 -07009879 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
9880 # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
9881 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009882 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
9883 # allow the value 60 if it allows leap-seconds.
9884 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Bu Sun Kim65020912020-05-20 12:08:20 -07009885 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07009886 &quot;booleanValue&quot;: True or False, # boolean
9887 &quot;floatValue&quot;: 3.14, # float
9888 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim65020912020-05-20 12:08:20 -07009889 },
9890 ],
9891 },
9892 ],
9893 &quot;headers&quot;: [ # Headers of the table.
9894 { # General identifier of a data field in a storage service.
9895 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
9896 },
9897 ],
9898 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009899 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07009900 }</pre>
9901</div>
9902
9903</body></html>