blob: fa44d413106cfcf185c83a294df5507acc8a3478 [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.deidentifyTemplates.html">deidentifyTemplates</a></h1>
76<h2>Instance Methods</h2>
77<p class="toc_element">
Dmitry Frenkel3e17f892020-10-06 16:46:05 -070078 <code><a href="#close">close()</a></code></p>
79<p class="firstline">Close httplib2 connections.</p>
80<p class="toc_element">
Dan O'Mearadd494642020-05-01 07:42:23 -070081 <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
Dmitry Frenkel3e17f892020-10-06 16:46:05 -070082<p class="firstline">Creates a DeidentifyTemplate for re-using frequently used configuration for de-identifying content, images, and storage. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.</p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070083<p class="toc_element">
84 <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
Dmitry Frenkel3e17f892020-10-06 16:46:05 -070085<p class="firstline">Deletes a DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.</p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070086<p class="toc_element">
87 <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
Dmitry Frenkel3e17f892020-10-06 16:46:05 -070088<p class="firstline">Gets a DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.</p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070089<p class="toc_element">
Yoshi Automation Botc2228be2020-11-24 15:48:03 -080090 <code><a href="#list">list(parent, orderBy=None, pageSize=None, locationId=None, pageToken=None, x__xgafv=None)</a></code></p>
Dmitry Frenkel3e17f892020-10-06 16:46:05 -070091<p class="firstline">Lists DeidentifyTemplates. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.</p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070092<p class="toc_element">
93 <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
94<p class="firstline">Retrieves the next page of results.</p>
95<p class="toc_element">
Dan O'Mearadd494642020-05-01 07:42:23 -070096 <code><a href="#patch">patch(name, body=None, x__xgafv=None)</a></code></p>
Dmitry Frenkel3e17f892020-10-06 16:46:05 -070097<p class="firstline">Updates the DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.</p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070098<h3>Method Details</h3>
99<div class="method">
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700100 <code class="details" id="close">close()</code>
101 <pre>Close httplib2 connections.</pre>
102</div>
103
104<div class="method">
Dan O'Mearadd494642020-05-01 07:42:23 -0700105 <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700106 <pre>Creates a DeidentifyTemplate for re-using frequently used configuration for de-identifying content, images, and storage. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700107
108Args:
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700109 parent: string, Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3 (required)
Dan O'Mearadd494642020-05-01 07:42:23 -0700110 body: object, The request body.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700111 The object takes the form of:
112
113{ # Request message for CreateDeidentifyTemplate.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700114 &quot;deidentifyTemplate&quot;: { # DeidentifyTemplates contains instructions on how to de-identify content. See https://cloud.google.com/dlp/docs/concepts-templates to learn more. # Required. The DeidentifyTemplate to create.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800115 &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of an inspectTemplate.
116 &quot;description&quot;: &quot;A String&quot;, # Short description (max 256 chars).
117 &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 256 chars).
118 &quot;name&quot;: &quot;A String&quot;, # Output only. The template name. The template will have one of the following formats: `projects/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID` OR `organizations/ORGANIZATION_ID/deidentifyTemplates/TEMPLATE_ID`
119 &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of an inspectTemplate.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700120 &quot;deidentifyConfig&quot;: { # The configuration that controls how the data will change. # ///////////// // The core content of the template // ///////////////
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700121 &quot;transformationErrorHandling&quot;: { # How to handle transformation errors during de-identification. A transformation error occurs when the requested transformation is incompatible with the data. For example, trying to de-identify an IP address using a `DateShift` transformation would result in a transformation error, since date info cannot be extracted from an IP address. Information about any incompatible transformations, and how they were handled, is returned in the response as part of the `TransformationOverviews`. # Mode for handling transformation errors. If left unspecified, the default mode is `TransformationErrorHandling.ThrowError`.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700122 &quot;throwError&quot;: { # Throw an error and fail the request when a transformation error occurs. # Throw an error
123 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800124 &quot;leaveUntransformed&quot;: { # Skips the data without modifying it if the requested transformation would cause an error. For example, if a `DateShift` transformation were applied an an IP address, this mode would leave the IP address unchanged in the response. # Ignore errors
125 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700126 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700127 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and apply various `PrimitiveTransformation`s to each finding, where the transformation is applied to only values that were identified as a specific info_type. # Treat the dataset as free-form text and apply the same free text transformation everywhere.
128 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one for a given infoType.
129 { # A transformation to apply to text that is identified as a specific info_type.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700130 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800131 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
132 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
133 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700134 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700135 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
136 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
137 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700138 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
139 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
140 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800141 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
142 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
143 },
144 },
145 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
146 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
147 },
148 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
149 },
150 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
151 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
152 },
153 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
154 },
155 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
156 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
157 { # Bucket is represented as a range, along with replacement values.
158 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
159 &quot;floatValue&quot;: 3.14, # float
160 &quot;integerValue&quot;: &quot;A String&quot;, # integer
161 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
162 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
163 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
164 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
165 },
166 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
167 &quot;stringValue&quot;: &quot;A String&quot;, # string
168 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
169 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
170 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
171 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
172 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
173 },
174 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
175 &quot;booleanValue&quot;: True or False, # boolean
176 },
177 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
178 &quot;floatValue&quot;: 3.14, # float
179 &quot;integerValue&quot;: &quot;A String&quot;, # integer
180 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
181 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
182 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
183 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
184 },
185 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
186 &quot;stringValue&quot;: &quot;A String&quot;, # string
187 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
188 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
189 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
190 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
191 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
192 },
193 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
194 &quot;booleanValue&quot;: True or False, # boolean
195 },
196 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
197 &quot;floatValue&quot;: 3.14, # float
198 &quot;integerValue&quot;: &quot;A String&quot;, # integer
199 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
200 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
201 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
202 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
203 },
204 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
205 &quot;stringValue&quot;: &quot;A String&quot;, # string
206 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
207 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
208 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
209 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
210 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
211 },
212 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
213 &quot;booleanValue&quot;: True or False, # boolean
214 },
215 },
216 ],
217 },
218 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
219 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
220 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
221 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
222 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
223 },
224 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
225 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
226 },
227 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
228 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
229 },
230 },
231 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
232 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700233 },
234 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
235 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
236 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800237 },
238 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
239 },
240 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
241 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
242 &quot;floatValue&quot;: 3.14, # float
243 &quot;integerValue&quot;: &quot;A String&quot;, # integer
244 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
245 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
246 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
247 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
248 },
249 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
250 &quot;stringValue&quot;: &quot;A String&quot;, # string
251 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
252 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
253 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
254 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
255 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
256 },
257 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
258 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700259 },
260 },
261 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
262 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
263 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
264 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
265 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700266 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700267 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800268 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700269 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
270 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700271 },
272 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
273 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700274 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
275 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
276 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
277 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700278 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
279 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
280 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700281 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
282 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
283 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700284 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700285 },
286 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700287 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700288 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
289 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
290 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800291 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700292 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
293 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
294 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800295 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
296 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
297 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
298 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
299 },
300 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
301 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
302 },
303 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
304 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
305 },
306 },
307 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700308 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700309 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800310 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
311 &quot;floatValue&quot;: 3.14, # float
312 &quot;integerValue&quot;: &quot;A String&quot;, # integer
313 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
314 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
315 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
316 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
317 },
318 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
319 &quot;stringValue&quot;: &quot;A String&quot;, # string
320 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
321 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
322 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
323 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
324 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
325 },
326 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
327 &quot;booleanValue&quot;: True or False, # boolean
328 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700329 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700330 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800331 &quot;floatValue&quot;: 3.14, # float
332 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700333 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700334 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
335 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700336 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700337 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700338 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800339 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700340 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
341 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700342 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800343 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
344 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700345 },
346 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700347 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700348 },
349 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700350 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700351 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.
352 { # Type of information detected by the API.
353 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
354 },
355 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700356 },
357 ],
358 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700359 &quot;recordTransformations&quot;: { # A type of transformation that is applied over structured data such as a table. # Treat the dataset as structured. Transformations can be applied to specific locations within structured datasets, such as transforming a column within a table.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800360 &quot;recordSuppressions&quot;: [ # Configuration defining which records get suppressed entirely. Records that match any suppression rule are omitted from the output.
361 { # Configuration to suppress records whose suppression conditions evaluate to true.
362 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to a field. # A condition that when it evaluates to true will result in the record being evaluated to be suppressed from the transformed content.
363 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
364 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently only supported value is `AND`.
365 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
366 &quot;conditions&quot;: [ # A collection of conditions.
367 { # The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of &#x27;HH:mm:ss&#x27;. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false.
368 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
369 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
370 },
371 &quot;value&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
372 &quot;floatValue&quot;: 3.14, # float
373 &quot;integerValue&quot;: &quot;A String&quot;, # integer
374 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
375 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
376 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
377 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
378 },
379 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
380 &quot;stringValue&quot;: &quot;A String&quot;, # string
381 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
382 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
383 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
384 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
385 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
386 },
387 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
388 &quot;booleanValue&quot;: True or False, # boolean
389 },
390 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
391 },
392 ],
393 },
394 },
395 },
396 },
397 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700398 &quot;fieldTransformations&quot;: [ # Transform the record by applying various field transformations.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700399 { # The transformation to apply to the field.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700400 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and apply various `PrimitiveTransformation`s to each finding, where the transformation is applied to only values that were identified as a specific info_type. # Treat the contents of the field as free text, and selectively transform content that matches an `InfoType`.
401 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one for a given infoType.
402 { # A transformation to apply to text that is identified as a specific info_type.
403 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800404 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
405 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
406 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700407 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
408 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
409 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
410 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700411 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
412 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
413 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800414 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
415 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
416 },
417 },
418 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
419 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
420 },
421 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
422 },
423 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
424 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
425 },
426 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
427 },
428 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
429 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
430 { # Bucket is represented as a range, along with replacement values.
431 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
432 &quot;floatValue&quot;: 3.14, # float
433 &quot;integerValue&quot;: &quot;A String&quot;, # integer
434 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
435 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
436 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
437 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
438 },
439 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
440 &quot;stringValue&quot;: &quot;A String&quot;, # string
441 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
442 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
443 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
444 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
445 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
446 },
447 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
448 &quot;booleanValue&quot;: True or False, # boolean
449 },
450 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
451 &quot;floatValue&quot;: 3.14, # float
452 &quot;integerValue&quot;: &quot;A String&quot;, # integer
453 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
454 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
455 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
456 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
457 },
458 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
459 &quot;stringValue&quot;: &quot;A String&quot;, # string
460 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
461 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
462 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
463 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
464 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
465 },
466 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
467 &quot;booleanValue&quot;: True or False, # boolean
468 },
469 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
470 &quot;floatValue&quot;: 3.14, # float
471 &quot;integerValue&quot;: &quot;A String&quot;, # integer
472 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
473 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
474 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
475 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
476 },
477 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
478 &quot;stringValue&quot;: &quot;A String&quot;, # string
479 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
480 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
481 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
482 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
483 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
484 },
485 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
486 &quot;booleanValue&quot;: True or False, # boolean
487 },
488 },
489 ],
490 },
491 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
492 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
493 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
494 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
495 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
496 },
497 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
498 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
499 },
500 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
501 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
502 },
503 },
504 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
505 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700506 },
507 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
508 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
509 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800510 },
511 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
512 },
513 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
514 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
515 &quot;floatValue&quot;: 3.14, # float
516 &quot;integerValue&quot;: &quot;A String&quot;, # integer
517 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
518 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
519 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
520 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
521 },
522 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
523 &quot;stringValue&quot;: &quot;A String&quot;, # string
524 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
525 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
526 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
527 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
528 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
529 },
530 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
531 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700532 },
533 },
534 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
535 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
536 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
537 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
538 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700539 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700540 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800541 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700542 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
543 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700544 },
545 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
546 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700547 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
548 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
549 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
550 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700551 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
552 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
553 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700554 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
555 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
556 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700557 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700558 },
559 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700560 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700561 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
562 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
563 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800564 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700565 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
566 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
567 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800568 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
569 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
570 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
571 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
572 },
573 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
574 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
575 },
576 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
577 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
578 },
579 },
580 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700581 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700582 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800583 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
584 &quot;floatValue&quot;: 3.14, # float
585 &quot;integerValue&quot;: &quot;A String&quot;, # integer
586 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
587 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
588 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
589 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
590 },
591 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
592 &quot;stringValue&quot;: &quot;A String&quot;, # string
593 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
594 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
595 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
596 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
597 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
598 },
599 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
600 &quot;booleanValue&quot;: True or False, # boolean
601 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700602 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700603 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800604 &quot;floatValue&quot;: 3.14, # float
605 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700606 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700607 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
608 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700609 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700610 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700611 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800612 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700613 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
614 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700615 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800616 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
617 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700618 },
619 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700620 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700621 },
622 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700623 },
624 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.
625 { # Type of information detected by the API.
626 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
627 },
628 ],
629 },
630 ],
631 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800632 &quot;fields&quot;: [ # Required. Input field(s) to apply the transformation to.
633 { # General identifier of a data field in a storage service.
634 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
635 },
636 ],
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700637 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Apply the transformation to the entire field.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800638 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
639 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
640 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700641 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
642 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
643 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
644 },
645 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
646 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
647 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800648 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
649 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
650 },
651 },
652 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
653 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
654 },
655 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
656 },
657 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
658 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
659 },
660 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
661 },
662 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
663 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
664 { # Bucket is represented as a range, along with replacement values.
665 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
666 &quot;floatValue&quot;: 3.14, # float
667 &quot;integerValue&quot;: &quot;A String&quot;, # integer
668 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
669 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
670 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
671 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
672 },
673 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
674 &quot;stringValue&quot;: &quot;A String&quot;, # string
675 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
676 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
677 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
678 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
679 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
680 },
681 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
682 &quot;booleanValue&quot;: True or False, # boolean
683 },
684 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
685 &quot;floatValue&quot;: 3.14, # float
686 &quot;integerValue&quot;: &quot;A String&quot;, # integer
687 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
688 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
689 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
690 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
691 },
692 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
693 &quot;stringValue&quot;: &quot;A String&quot;, # string
694 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
695 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
696 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
697 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
698 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
699 },
700 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
701 &quot;booleanValue&quot;: True or False, # boolean
702 },
703 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
704 &quot;floatValue&quot;: 3.14, # float
705 &quot;integerValue&quot;: &quot;A String&quot;, # integer
706 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
707 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
708 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
709 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
710 },
711 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
712 &quot;stringValue&quot;: &quot;A String&quot;, # string
713 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
714 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
715 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
716 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
717 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
718 },
719 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
720 &quot;booleanValue&quot;: True or False, # boolean
721 },
722 },
723 ],
724 },
725 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
726 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
727 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
728 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
729 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
730 },
731 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
732 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
733 },
734 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
735 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
736 },
737 },
738 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
739 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700740 },
741 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
742 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
743 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800744 },
745 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
746 },
747 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
748 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
749 &quot;floatValue&quot;: 3.14, # float
750 &quot;integerValue&quot;: &quot;A String&quot;, # integer
751 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
752 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
753 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
754 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
755 },
756 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
757 &quot;stringValue&quot;: &quot;A String&quot;, # string
758 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
759 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
760 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
761 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
762 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
763 },
764 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
765 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700766 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700767 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700768 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
769 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
770 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
771 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
772 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
773 },
774 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800775 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700776 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
777 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700778 },
779 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
780 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700781 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
782 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
783 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
784 },
785 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
786 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
787 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700788 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
789 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
790 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700791 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700792 },
793 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700794 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
795 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
796 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
797 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800798 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700799 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
800 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
801 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800802 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
803 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
804 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
805 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
806 },
807 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
808 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
809 },
810 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
811 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
812 },
813 },
814 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700815 },
816 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800817 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
818 &quot;floatValue&quot;: 3.14, # float
819 &quot;integerValue&quot;: &quot;A String&quot;, # integer
820 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
821 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
822 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
823 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
824 },
825 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
826 &quot;stringValue&quot;: &quot;A String&quot;, # string
827 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
828 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
829 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
830 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
831 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
832 },
833 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
834 &quot;booleanValue&quot;: True or False, # boolean
835 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700836 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
837 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800838 &quot;floatValue&quot;: 3.14, # float
839 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700840 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700841 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
842 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700843 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700844 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700845 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800846 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700847 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
848 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700849 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800850 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
851 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700852 },
853 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700854 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700855 },
856 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700857 },
858 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to a field. # Only apply the transformation if the condition evaluates to true for the given `RecordCondition`. The conditions are allowed to reference fields that are not used in the actual transformation. Example Use Cases: - Apply a different bucket transformation to an age column if the zip code column for the same record is within a specific range. - Redact a field if the date of birth field is greater than 85.
859 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
860 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently only supported value is `AND`.
861 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
862 &quot;conditions&quot;: [ # A collection of conditions.
863 { # The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of &#x27;HH:mm:ss&#x27;. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700864 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
865 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
866 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700867 &quot;value&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800868 &quot;floatValue&quot;: 3.14, # float
869 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700870 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700871 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
872 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800873 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700874 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700875 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800876 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700877 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
878 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700879 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800880 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
881 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700882 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800883 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
884 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700885 },
886 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700887 },
888 ],
889 },
890 },
891 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700892 },
893 ],
Dan O'Mearadd494642020-05-01 07:42:23 -0700894 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700895 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700896 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800897 &quot;locationId&quot;: &quot;A String&quot;, # Deprecated. This field has no effect.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700898 &quot;templateId&quot;: &quot;A String&quot;, # The template id can contain uppercase and lowercase letters, numbers, and hyphens; that is, it must match the regular expression: `[a-zA-Z\d-_]+`. The maximum length is 100 characters. Can be empty to allow the system to generate one.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700899 }
900
901 x__xgafv: string, V1 error format.
902 Allowed values
903 1 - v1 error format
904 2 - v2 error format
905
906Returns:
907 An object of the form:
908
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700909 { # DeidentifyTemplates contains instructions on how to de-identify content. See https://cloud.google.com/dlp/docs/concepts-templates to learn more.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800910 &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of an inspectTemplate.
911 &quot;description&quot;: &quot;A String&quot;, # Short description (max 256 chars).
912 &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 256 chars).
913 &quot;name&quot;: &quot;A String&quot;, # Output only. The template name. The template will have one of the following formats: `projects/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID` OR `organizations/ORGANIZATION_ID/deidentifyTemplates/TEMPLATE_ID`
914 &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of an inspectTemplate.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700915 &quot;deidentifyConfig&quot;: { # The configuration that controls how the data will change. # ///////////// // The core content of the template // ///////////////
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700916 &quot;transformationErrorHandling&quot;: { # How to handle transformation errors during de-identification. A transformation error occurs when the requested transformation is incompatible with the data. For example, trying to de-identify an IP address using a `DateShift` transformation would result in a transformation error, since date info cannot be extracted from an IP address. Information about any incompatible transformations, and how they were handled, is returned in the response as part of the `TransformationOverviews`. # Mode for handling transformation errors. If left unspecified, the default mode is `TransformationErrorHandling.ThrowError`.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700917 &quot;throwError&quot;: { # Throw an error and fail the request when a transformation error occurs. # Throw an error
918 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800919 &quot;leaveUntransformed&quot;: { # Skips the data without modifying it if the requested transformation would cause an error. For example, if a `DateShift` transformation were applied an an IP address, this mode would leave the IP address unchanged in the response. # Ignore errors
920 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700921 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700922 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and apply various `PrimitiveTransformation`s to each finding, where the transformation is applied to only values that were identified as a specific info_type. # Treat the dataset as free-form text and apply the same free text transformation everywhere.
923 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one for a given infoType.
924 { # A transformation to apply to text that is identified as a specific info_type.
Bu Sun Kimd059ad82020-07-22 17:02:09 -0700925 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800926 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
927 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
928 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -0700929 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700930 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
931 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
932 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -0700933 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
934 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
935 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -0800936 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
937 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
938 },
939 },
940 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
941 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
942 },
943 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
944 },
945 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
946 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
947 },
948 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
949 },
950 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
951 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
952 { # Bucket is represented as a range, along with replacement values.
953 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
954 &quot;floatValue&quot;: 3.14, # float
955 &quot;integerValue&quot;: &quot;A String&quot;, # integer
956 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
957 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
958 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
959 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
960 },
961 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
962 &quot;stringValue&quot;: &quot;A String&quot;, # string
963 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
964 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
965 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
966 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
967 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
968 },
969 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
970 &quot;booleanValue&quot;: True or False, # boolean
971 },
972 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
973 &quot;floatValue&quot;: 3.14, # float
974 &quot;integerValue&quot;: &quot;A String&quot;, # integer
975 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
976 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
977 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
978 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
979 },
980 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
981 &quot;stringValue&quot;: &quot;A String&quot;, # string
982 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
983 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
984 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
985 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
986 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
987 },
988 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
989 &quot;booleanValue&quot;: True or False, # boolean
990 },
991 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
992 &quot;floatValue&quot;: 3.14, # float
993 &quot;integerValue&quot;: &quot;A String&quot;, # integer
994 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
995 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
996 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
997 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
998 },
999 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1000 &quot;stringValue&quot;: &quot;A String&quot;, # string
1001 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1002 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1003 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1004 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1005 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1006 },
1007 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1008 &quot;booleanValue&quot;: True or False, # boolean
1009 },
1010 },
1011 ],
1012 },
1013 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
1014 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
1015 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
1016 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1017 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1018 },
1019 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1020 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1021 },
1022 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1023 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1024 },
1025 },
1026 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
1027 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001028 },
1029 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
1030 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1031 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001032 },
1033 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
1034 },
1035 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
1036 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
1037 &quot;floatValue&quot;: 3.14, # float
1038 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1039 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1040 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1041 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1042 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1043 },
1044 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1045 &quot;stringValue&quot;: &quot;A String&quot;, # string
1046 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1047 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1048 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1049 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1050 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1051 },
1052 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1053 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001054 },
1055 },
1056 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
1057 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
1058 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
1059 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
1060 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001061 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001062 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001063 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001064 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
1065 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001066 },
1067 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
1068 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001069 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
1070 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1071 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1072 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001073 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1074 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1075 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001076 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1077 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1078 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001079 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001080 },
1081 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001082 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001083 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
1084 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
1085 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001086 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001087 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
1088 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1089 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001090 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
1091 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
1092 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1093 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1094 },
1095 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1096 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1097 },
1098 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1099 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1100 },
1101 },
1102 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001103 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001104 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001105 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
1106 &quot;floatValue&quot;: 3.14, # float
1107 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1108 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1109 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1110 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1111 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1112 },
1113 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1114 &quot;stringValue&quot;: &quot;A String&quot;, # string
1115 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1116 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1117 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1118 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1119 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1120 },
1121 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1122 &quot;booleanValue&quot;: True or False, # boolean
1123 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001124 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001125 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001126 &quot;floatValue&quot;: 3.14, # float
1127 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001128 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001129 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1130 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001131 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001132 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001133 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001134 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001135 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1136 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001137 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001138 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1139 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001140 },
1141 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001142 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001143 },
1144 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001145 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001146 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.
1147 { # Type of information detected by the API.
1148 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
1149 },
1150 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001151 },
1152 ],
1153 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001154 &quot;recordTransformations&quot;: { # A type of transformation that is applied over structured data such as a table. # Treat the dataset as structured. Transformations can be applied to specific locations within structured datasets, such as transforming a column within a table.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001155 &quot;recordSuppressions&quot;: [ # Configuration defining which records get suppressed entirely. Records that match any suppression rule are omitted from the output.
1156 { # Configuration to suppress records whose suppression conditions evaluate to true.
1157 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to a field. # A condition that when it evaluates to true will result in the record being evaluated to be suppressed from the transformed content.
1158 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
1159 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently only supported value is `AND`.
1160 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
1161 &quot;conditions&quot;: [ # A collection of conditions.
1162 { # The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of &#x27;HH:mm:ss&#x27;. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false.
1163 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
1164 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1165 },
1166 &quot;value&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
1167 &quot;floatValue&quot;: 3.14, # float
1168 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1169 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1170 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1171 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1172 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1173 },
1174 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1175 &quot;stringValue&quot;: &quot;A String&quot;, # string
1176 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1177 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1178 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1179 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1180 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1181 },
1182 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1183 &quot;booleanValue&quot;: True or False, # boolean
1184 },
1185 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
1186 },
1187 ],
1188 },
1189 },
1190 },
1191 },
1192 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001193 &quot;fieldTransformations&quot;: [ # Transform the record by applying various field transformations.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001194 { # The transformation to apply to the field.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001195 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and apply various `PrimitiveTransformation`s to each finding, where the transformation is applied to only values that were identified as a specific info_type. # Treat the contents of the field as free text, and selectively transform content that matches an `InfoType`.
1196 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one for a given infoType.
1197 { # A transformation to apply to text that is identified as a specific info_type.
1198 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001199 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
1200 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
1201 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001202 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
1203 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1204 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1205 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001206 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1207 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1208 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001209 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1210 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1211 },
1212 },
1213 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
1214 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1215 },
1216 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
1217 },
1218 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
1219 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
1220 },
1221 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
1222 },
1223 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
1224 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
1225 { # Bucket is represented as a range, along with replacement values.
1226 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
1227 &quot;floatValue&quot;: 3.14, # float
1228 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1229 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1230 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1231 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1232 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1233 },
1234 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1235 &quot;stringValue&quot;: &quot;A String&quot;, # string
1236 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1237 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1238 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1239 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1240 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1241 },
1242 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1243 &quot;booleanValue&quot;: True or False, # boolean
1244 },
1245 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
1246 &quot;floatValue&quot;: 3.14, # float
1247 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1248 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1249 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1250 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1251 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1252 },
1253 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1254 &quot;stringValue&quot;: &quot;A String&quot;, # string
1255 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1256 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1257 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1258 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1259 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1260 },
1261 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1262 &quot;booleanValue&quot;: True or False, # boolean
1263 },
1264 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
1265 &quot;floatValue&quot;: 3.14, # float
1266 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1267 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1268 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1269 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1270 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1271 },
1272 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1273 &quot;stringValue&quot;: &quot;A String&quot;, # string
1274 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1275 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1276 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1277 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1278 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1279 },
1280 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1281 &quot;booleanValue&quot;: True or False, # boolean
1282 },
1283 },
1284 ],
1285 },
1286 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
1287 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
1288 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
1289 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1290 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1291 },
1292 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1293 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1294 },
1295 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1296 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1297 },
1298 },
1299 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
1300 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001301 },
1302 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
1303 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1304 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001305 },
1306 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
1307 },
1308 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
1309 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
1310 &quot;floatValue&quot;: 3.14, # float
1311 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1312 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1313 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1314 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1315 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1316 },
1317 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1318 &quot;stringValue&quot;: &quot;A String&quot;, # string
1319 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1320 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1321 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1322 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1323 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1324 },
1325 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1326 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001327 },
1328 },
1329 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
1330 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
1331 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
1332 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
1333 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001334 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001335 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001336 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001337 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
1338 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001339 },
1340 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
1341 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001342 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
1343 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1344 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1345 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001346 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1347 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1348 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001349 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1350 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1351 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001352 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001353 },
1354 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001355 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001356 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
1357 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
1358 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001359 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001360 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
1361 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1362 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001363 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
1364 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
1365 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1366 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1367 },
1368 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1369 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1370 },
1371 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1372 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1373 },
1374 },
1375 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001376 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001377 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001378 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
1379 &quot;floatValue&quot;: 3.14, # float
1380 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1381 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1382 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1383 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1384 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1385 },
1386 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1387 &quot;stringValue&quot;: &quot;A String&quot;, # string
1388 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1389 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1390 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1391 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1392 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1393 },
1394 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1395 &quot;booleanValue&quot;: True or False, # boolean
1396 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001397 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001398 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001399 &quot;floatValue&quot;: 3.14, # float
1400 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001401 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001402 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1403 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001404 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001405 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001406 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001407 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001408 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1409 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001410 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001411 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1412 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001413 },
1414 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001415 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001416 },
1417 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001418 },
1419 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.
1420 { # Type of information detected by the API.
1421 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
1422 },
1423 ],
1424 },
1425 ],
1426 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001427 &quot;fields&quot;: [ # Required. Input field(s) to apply the transformation to.
1428 { # General identifier of a data field in a storage service.
1429 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1430 },
1431 ],
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001432 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Apply the transformation to the entire field.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001433 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
1434 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
1435 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001436 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
1437 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1438 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1439 },
1440 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1441 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1442 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001443 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1444 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1445 },
1446 },
1447 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
1448 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1449 },
1450 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
1451 },
1452 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
1453 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
1454 },
1455 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
1456 },
1457 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
1458 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
1459 { # Bucket is represented as a range, along with replacement values.
1460 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
1461 &quot;floatValue&quot;: 3.14, # float
1462 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1463 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1464 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1465 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1466 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1467 },
1468 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1469 &quot;stringValue&quot;: &quot;A String&quot;, # string
1470 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1471 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1472 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1473 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1474 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1475 },
1476 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1477 &quot;booleanValue&quot;: True or False, # boolean
1478 },
1479 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
1480 &quot;floatValue&quot;: 3.14, # float
1481 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1482 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1483 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1484 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1485 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1486 },
1487 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1488 &quot;stringValue&quot;: &quot;A String&quot;, # string
1489 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1490 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1491 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1492 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1493 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1494 },
1495 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1496 &quot;booleanValue&quot;: True or False, # boolean
1497 },
1498 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
1499 &quot;floatValue&quot;: 3.14, # float
1500 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1501 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1502 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1503 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1504 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1505 },
1506 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1507 &quot;stringValue&quot;: &quot;A String&quot;, # string
1508 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1509 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1510 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1511 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1512 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1513 },
1514 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1515 &quot;booleanValue&quot;: True or False, # boolean
1516 },
1517 },
1518 ],
1519 },
1520 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
1521 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
1522 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
1523 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1524 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1525 },
1526 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1527 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1528 },
1529 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1530 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1531 },
1532 },
1533 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
1534 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001535 },
1536 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
1537 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1538 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001539 },
1540 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
1541 },
1542 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
1543 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
1544 &quot;floatValue&quot;: 3.14, # float
1545 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1546 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1547 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1548 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1549 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1550 },
1551 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1552 &quot;stringValue&quot;: &quot;A String&quot;, # string
1553 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1554 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1555 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1556 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1557 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1558 },
1559 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1560 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001561 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001562 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001563 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
1564 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
1565 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
1566 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
1567 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
1568 },
1569 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001570 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001571 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
1572 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001573 },
1574 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
1575 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001576 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
1577 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1578 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1579 },
1580 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1581 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1582 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001583 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1584 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1585 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001586 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001587 },
1588 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001589 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
1590 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
1591 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
1592 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001593 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001594 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
1595 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1596 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001597 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
1598 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
1599 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1600 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1601 },
1602 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1603 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1604 },
1605 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1606 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1607 },
1608 },
1609 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001610 },
1611 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001612 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
1613 &quot;floatValue&quot;: 3.14, # float
1614 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1615 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1616 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1617 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1618 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1619 },
1620 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1621 &quot;stringValue&quot;: &quot;A String&quot;, # string
1622 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1623 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1624 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1625 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1626 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1627 },
1628 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1629 &quot;booleanValue&quot;: True or False, # boolean
1630 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001631 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
1632 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001633 &quot;floatValue&quot;: 3.14, # float
1634 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001635 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001636 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1637 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001638 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001639 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001640 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001641 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001642 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1643 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001644 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001645 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1646 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001647 },
1648 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001649 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001650 },
1651 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001652 },
1653 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to a field. # Only apply the transformation if the condition evaluates to true for the given `RecordCondition`. The conditions are allowed to reference fields that are not used in the actual transformation. Example Use Cases: - Apply a different bucket transformation to an age column if the zip code column for the same record is within a specific range. - Redact a field if the date of birth field is greater than 85.
1654 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
1655 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently only supported value is `AND`.
1656 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
1657 &quot;conditions&quot;: [ # A collection of conditions.
1658 { # The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of &#x27;HH:mm:ss&#x27;. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001659 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
1660 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1661 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001662 &quot;value&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001663 &quot;floatValue&quot;: 3.14, # float
1664 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001665 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001666 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1667 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001668 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001669 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001670 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001671 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001672 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1673 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001674 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001675 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1676 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001677 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001678 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1679 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001680 },
1681 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001682 },
1683 ],
1684 },
1685 },
1686 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001687 },
1688 ],
Dan O'Mearadd494642020-05-01 07:42:23 -07001689 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001690 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001691 }</pre>
1692</div>
1693
1694<div class="method">
1695 <code class="details" id="delete">delete(name, x__xgafv=None)</code>
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001696 <pre>Deletes a DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001697
1698Args:
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001699 name: string, Required. Resource name of the organization and deidentify template to be deleted, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342. (required)
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001700 x__xgafv: string, V1 error format.
1701 Allowed values
1702 1 - v1 error format
1703 2 - v2 error format
1704
1705Returns:
1706 An object of the form:
1707
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001708 { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001709 }</pre>
1710</div>
1711
1712<div class="method">
1713 <code class="details" id="get">get(name, x__xgafv=None)</code>
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001714 <pre>Gets a DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001715
1716Args:
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001717 name: string, Required. Resource name of the organization and deidentify template to be read, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342. (required)
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001718 x__xgafv: string, V1 error format.
1719 Allowed values
1720 1 - v1 error format
1721 2 - v2 error format
1722
1723Returns:
1724 An object of the form:
1725
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001726 { # DeidentifyTemplates contains instructions on how to de-identify content. See https://cloud.google.com/dlp/docs/concepts-templates to learn more.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001727 &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of an inspectTemplate.
1728 &quot;description&quot;: &quot;A String&quot;, # Short description (max 256 chars).
1729 &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 256 chars).
1730 &quot;name&quot;: &quot;A String&quot;, # Output only. The template name. The template will have one of the following formats: `projects/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID` OR `organizations/ORGANIZATION_ID/deidentifyTemplates/TEMPLATE_ID`
1731 &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of an inspectTemplate.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001732 &quot;deidentifyConfig&quot;: { # The configuration that controls how the data will change. # ///////////// // The core content of the template // ///////////////
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001733 &quot;transformationErrorHandling&quot;: { # How to handle transformation errors during de-identification. A transformation error occurs when the requested transformation is incompatible with the data. For example, trying to de-identify an IP address using a `DateShift` transformation would result in a transformation error, since date info cannot be extracted from an IP address. Information about any incompatible transformations, and how they were handled, is returned in the response as part of the `TransformationOverviews`. # Mode for handling transformation errors. If left unspecified, the default mode is `TransformationErrorHandling.ThrowError`.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001734 &quot;throwError&quot;: { # Throw an error and fail the request when a transformation error occurs. # Throw an error
1735 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001736 &quot;leaveUntransformed&quot;: { # Skips the data without modifying it if the requested transformation would cause an error. For example, if a `DateShift` transformation were applied an an IP address, this mode would leave the IP address unchanged in the response. # Ignore errors
1737 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001738 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001739 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and apply various `PrimitiveTransformation`s to each finding, where the transformation is applied to only values that were identified as a specific info_type. # Treat the dataset as free-form text and apply the same free text transformation everywhere.
1740 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one for a given infoType.
1741 { # A transformation to apply to text that is identified as a specific info_type.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001742 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001743 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
1744 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
1745 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001746 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001747 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1748 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1749 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001750 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1751 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1752 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001753 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1754 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1755 },
1756 },
1757 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
1758 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1759 },
1760 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
1761 },
1762 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
1763 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
1764 },
1765 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
1766 },
1767 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
1768 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
1769 { # Bucket is represented as a range, along with replacement values.
1770 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
1771 &quot;floatValue&quot;: 3.14, # float
1772 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1773 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1774 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1775 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1776 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1777 },
1778 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1779 &quot;stringValue&quot;: &quot;A String&quot;, # string
1780 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1781 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1782 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1783 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1784 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1785 },
1786 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1787 &quot;booleanValue&quot;: True or False, # boolean
1788 },
1789 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
1790 &quot;floatValue&quot;: 3.14, # float
1791 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1792 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1793 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1794 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1795 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1796 },
1797 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1798 &quot;stringValue&quot;: &quot;A String&quot;, # string
1799 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1800 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1801 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1802 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1803 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1804 },
1805 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1806 &quot;booleanValue&quot;: True or False, # boolean
1807 },
1808 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
1809 &quot;floatValue&quot;: 3.14, # float
1810 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1811 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1812 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1813 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1814 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1815 },
1816 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1817 &quot;stringValue&quot;: &quot;A String&quot;, # string
1818 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1819 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1820 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1821 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1822 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1823 },
1824 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1825 &quot;booleanValue&quot;: True or False, # boolean
1826 },
1827 },
1828 ],
1829 },
1830 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
1831 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
1832 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
1833 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1834 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1835 },
1836 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1837 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1838 },
1839 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1840 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1841 },
1842 },
1843 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
1844 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001845 },
1846 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
1847 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1848 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001849 },
1850 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
1851 },
1852 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
1853 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
1854 &quot;floatValue&quot;: 3.14, # float
1855 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1856 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1857 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1858 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1859 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1860 },
1861 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1862 &quot;stringValue&quot;: &quot;A String&quot;, # string
1863 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1864 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1865 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1866 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1867 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1868 },
1869 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1870 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001871 },
1872 },
1873 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
1874 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
1875 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
1876 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
1877 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07001878 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001879 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001880 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001881 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
1882 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001883 },
1884 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
1885 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001886 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
1887 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1888 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1889 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001890 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1891 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1892 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001893 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1894 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1895 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001896 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001897 },
1898 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001899 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001900 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
1901 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
1902 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001903 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001904 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
1905 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1906 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001907 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
1908 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
1909 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
1910 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
1911 },
1912 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
1913 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
1914 },
1915 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
1916 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
1917 },
1918 },
1919 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001920 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001921 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001922 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
1923 &quot;floatValue&quot;: 3.14, # float
1924 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1925 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1926 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1927 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1928 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1929 },
1930 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1931 &quot;stringValue&quot;: &quot;A String&quot;, # string
1932 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1933 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1934 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1935 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1936 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1937 },
1938 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
1939 &quot;booleanValue&quot;: True or False, # boolean
1940 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001941 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001942 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001943 &quot;floatValue&quot;: 3.14, # float
1944 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001945 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001946 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1947 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001948 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001949 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001950 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001951 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001952 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1953 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001954 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001955 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1956 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001957 },
1958 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001959 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07001960 },
1961 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001962 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001963 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.
1964 { # Type of information detected by the API.
1965 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
1966 },
1967 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001968 },
1969 ],
1970 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07001971 &quot;recordTransformations&quot;: { # A type of transformation that is applied over structured data such as a table. # Treat the dataset as structured. Transformations can be applied to specific locations within structured datasets, such as transforming a column within a table.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08001972 &quot;recordSuppressions&quot;: [ # Configuration defining which records get suppressed entirely. Records that match any suppression rule are omitted from the output.
1973 { # Configuration to suppress records whose suppression conditions evaluate to true.
1974 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to a field. # A condition that when it evaluates to true will result in the record being evaluated to be suppressed from the transformed content.
1975 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
1976 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently only supported value is `AND`.
1977 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
1978 &quot;conditions&quot;: [ # A collection of conditions.
1979 { # The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of &#x27;HH:mm:ss&#x27;. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false.
1980 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
1981 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
1982 },
1983 &quot;value&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
1984 &quot;floatValue&quot;: 3.14, # float
1985 &quot;integerValue&quot;: &quot;A String&quot;, # integer
1986 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
1987 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
1988 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
1989 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
1990 },
1991 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
1992 &quot;stringValue&quot;: &quot;A String&quot;, # string
1993 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
1994 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
1995 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
1996 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1997 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
1998 },
1999 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2000 &quot;booleanValue&quot;: True or False, # boolean
2001 },
2002 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
2003 },
2004 ],
2005 },
2006 },
2007 },
2008 },
2009 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002010 &quot;fieldTransformations&quot;: [ # Transform the record by applying various field transformations.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002011 { # The transformation to apply to the field.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002012 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and apply various `PrimitiveTransformation`s to each finding, where the transformation is applied to only values that were identified as a specific info_type. # Treat the contents of the field as free text, and selectively transform content that matches an `InfoType`.
2013 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one for a given infoType.
2014 { # A transformation to apply to text that is identified as a specific info_type.
2015 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002016 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
2017 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
2018 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002019 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2020 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2021 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2022 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002023 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2024 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2025 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002026 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2027 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2028 },
2029 },
2030 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
2031 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2032 },
2033 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
2034 },
2035 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
2036 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
2037 },
2038 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
2039 },
2040 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
2041 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
2042 { # Bucket is represented as a range, along with replacement values.
2043 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
2044 &quot;floatValue&quot;: 3.14, # float
2045 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2046 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2047 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2048 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2049 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2050 },
2051 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2052 &quot;stringValue&quot;: &quot;A String&quot;, # string
2053 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2054 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2055 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2056 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2057 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2058 },
2059 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2060 &quot;booleanValue&quot;: True or False, # boolean
2061 },
2062 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
2063 &quot;floatValue&quot;: 3.14, # float
2064 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2065 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2066 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2067 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2068 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2069 },
2070 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2071 &quot;stringValue&quot;: &quot;A String&quot;, # string
2072 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2073 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2074 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2075 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2076 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2077 },
2078 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2079 &quot;booleanValue&quot;: True or False, # boolean
2080 },
2081 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
2082 &quot;floatValue&quot;: 3.14, # float
2083 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2084 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2085 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2086 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2087 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2088 },
2089 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2090 &quot;stringValue&quot;: &quot;A String&quot;, # string
2091 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2092 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2093 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2094 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2095 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2096 },
2097 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2098 &quot;booleanValue&quot;: True or False, # boolean
2099 },
2100 },
2101 ],
2102 },
2103 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
2104 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
2105 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2106 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2107 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2108 },
2109 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2110 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2111 },
2112 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2113 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2114 },
2115 },
2116 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
2117 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002118 },
2119 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
2120 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2121 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002122 },
2123 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
2124 },
2125 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
2126 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
2127 &quot;floatValue&quot;: 3.14, # float
2128 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2129 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2130 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2131 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2132 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2133 },
2134 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2135 &quot;stringValue&quot;: &quot;A String&quot;, # string
2136 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2137 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2138 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2139 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2140 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2141 },
2142 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2143 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002144 },
2145 },
2146 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
2147 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
2148 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
2149 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
2150 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002151 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002152 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002153 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002154 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
2155 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002156 },
2157 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
2158 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002159 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2160 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2161 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2162 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002163 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2164 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2165 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002166 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2167 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2168 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002169 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002170 },
2171 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002172 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002173 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
2174 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
2175 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002176 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002177 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
2178 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2179 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002180 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
2181 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2182 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2183 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2184 },
2185 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2186 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2187 },
2188 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2189 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2190 },
2191 },
2192 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002193 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002194 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002195 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
2196 &quot;floatValue&quot;: 3.14, # float
2197 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2198 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2199 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2200 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2201 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2202 },
2203 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2204 &quot;stringValue&quot;: &quot;A String&quot;, # string
2205 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2206 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2207 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2208 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2209 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2210 },
2211 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2212 &quot;booleanValue&quot;: True or False, # boolean
2213 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002214 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002215 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002216 &quot;floatValue&quot;: 3.14, # float
2217 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002218 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002219 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2220 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002221 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002222 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002223 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002224 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002225 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2226 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002227 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002228 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2229 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002230 },
2231 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002232 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002233 },
2234 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002235 },
2236 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.
2237 { # Type of information detected by the API.
2238 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
2239 },
2240 ],
2241 },
2242 ],
2243 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002244 &quot;fields&quot;: [ # Required. Input field(s) to apply the transformation to.
2245 { # General identifier of a data field in a storage service.
2246 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2247 },
2248 ],
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002249 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Apply the transformation to the entire field.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002250 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
2251 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
2252 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002253 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2254 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2255 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2256 },
2257 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2258 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2259 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002260 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2261 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2262 },
2263 },
2264 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
2265 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2266 },
2267 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
2268 },
2269 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
2270 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
2271 },
2272 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
2273 },
2274 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
2275 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
2276 { # Bucket is represented as a range, along with replacement values.
2277 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
2278 &quot;floatValue&quot;: 3.14, # float
2279 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2280 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2281 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2282 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2283 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2284 },
2285 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2286 &quot;stringValue&quot;: &quot;A String&quot;, # string
2287 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2288 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2289 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2290 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2291 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2292 },
2293 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2294 &quot;booleanValue&quot;: True or False, # boolean
2295 },
2296 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
2297 &quot;floatValue&quot;: 3.14, # float
2298 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2299 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2300 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2301 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2302 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2303 },
2304 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2305 &quot;stringValue&quot;: &quot;A String&quot;, # string
2306 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2307 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2308 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2309 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2310 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2311 },
2312 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2313 &quot;booleanValue&quot;: True or False, # boolean
2314 },
2315 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
2316 &quot;floatValue&quot;: 3.14, # float
2317 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2318 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2319 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2320 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2321 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2322 },
2323 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2324 &quot;stringValue&quot;: &quot;A String&quot;, # string
2325 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2326 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2327 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2328 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2329 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2330 },
2331 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2332 &quot;booleanValue&quot;: True or False, # boolean
2333 },
2334 },
2335 ],
2336 },
2337 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
2338 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
2339 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2340 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2341 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2342 },
2343 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2344 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2345 },
2346 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2347 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2348 },
2349 },
2350 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
2351 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002352 },
2353 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
2354 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2355 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002356 },
2357 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
2358 },
2359 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
2360 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
2361 &quot;floatValue&quot;: 3.14, # float
2362 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2363 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2364 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2365 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2366 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2367 },
2368 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2369 &quot;stringValue&quot;: &quot;A String&quot;, # string
2370 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2371 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2372 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2373 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2374 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2375 },
2376 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2377 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002378 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002379 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002380 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
2381 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
2382 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
2383 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
2384 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
2385 },
2386 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002387 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002388 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
2389 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002390 },
2391 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
2392 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002393 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2394 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2395 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2396 },
2397 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2398 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2399 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002400 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2401 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2402 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002403 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002404 },
2405 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002406 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
2407 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
2408 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
2409 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002410 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002411 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
2412 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2413 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002414 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
2415 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2416 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2417 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2418 },
2419 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2420 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2421 },
2422 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2423 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2424 },
2425 },
2426 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002427 },
2428 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002429 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
2430 &quot;floatValue&quot;: 3.14, # float
2431 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2432 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2433 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2434 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2435 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2436 },
2437 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2438 &quot;stringValue&quot;: &quot;A String&quot;, # string
2439 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2440 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2441 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2442 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2443 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2444 },
2445 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2446 &quot;booleanValue&quot;: True or False, # boolean
2447 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002448 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
2449 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002450 &quot;floatValue&quot;: 3.14, # float
2451 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002452 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002453 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2454 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002455 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002456 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002457 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002458 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002459 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2460 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002461 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002462 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2463 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002464 },
2465 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002466 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002467 },
2468 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002469 },
2470 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to a field. # Only apply the transformation if the condition evaluates to true for the given `RecordCondition`. The conditions are allowed to reference fields that are not used in the actual transformation. Example Use Cases: - Apply a different bucket transformation to an age column if the zip code column for the same record is within a specific range. - Redact a field if the date of birth field is greater than 85.
2471 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
2472 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently only supported value is `AND`.
2473 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
2474 &quot;conditions&quot;: [ # A collection of conditions.
2475 { # The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of &#x27;HH:mm:ss&#x27;. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002476 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
2477 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2478 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002479 &quot;value&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002480 &quot;floatValue&quot;: 3.14, # float
2481 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002482 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002483 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2484 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002485 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002486 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002487 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002488 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002489 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2490 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002491 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002492 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2493 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002494 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002495 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2496 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002497 },
2498 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002499 },
2500 ],
2501 },
2502 },
2503 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002504 },
2505 ],
Dan O'Mearadd494642020-05-01 07:42:23 -07002506 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002507 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002508 }</pre>
2509</div>
2510
2511<div class="method">
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002512 <code class="details" id="list">list(parent, orderBy=None, pageSize=None, locationId=None, pageToken=None, x__xgafv=None)</code>
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002513 <pre>Lists DeidentifyTemplates. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002514
2515Args:
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002516 parent: string, Required. Parent resource name. The format of this value varies depending on the scope of the request (project or organization) and whether you have [specified a processing location](https://cloud.google.com/dlp/docs/specifying-location): + Projects scope, location specified: `projects/`PROJECT_ID`/locations/`LOCATION_ID + Projects scope, no location specified (defaults to global): `projects/`PROJECT_ID + Organizations scope, location specified: `organizations/`ORG_ID`/locations/`LOCATION_ID + Organizations scope, no location specified (defaults to global): `organizations/`ORG_ID The following example `parent` string specifies a parent project with the identifier `example-project`, and specifies the `europe-west3` location for processing data: parent=projects/example-project/locations/europe-west3 (required)
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002517 orderBy: string, Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to time the template was created. - `update_time`: corresponds to time the template was last updated. - `name`: corresponds to template&#x27;s name. - `display_name`: corresponds to template&#x27;s display name.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002518 pageSize: integer, Size of the page, can be limited by server. If zero server returns a page of max size 100.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002519 locationId: string, Deprecated. This field has no effect.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002520 pageToken: string, Page token to continue retrieval. Comes from previous call to `ListDeidentifyTemplates`.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002521 x__xgafv: string, V1 error format.
2522 Allowed values
2523 1 - v1 error format
2524 2 - v2 error format
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002525
2526Returns:
2527 An object of the form:
2528
2529 { # Response message for ListDeidentifyTemplates.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002530 &quot;deidentifyTemplates&quot;: [ # List of deidentify templates, up to page_size in ListDeidentifyTemplatesRequest.
2531 { # DeidentifyTemplates contains instructions on how to de-identify content. See https://cloud.google.com/dlp/docs/concepts-templates to learn more.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002532 &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of an inspectTemplate.
2533 &quot;description&quot;: &quot;A String&quot;, # Short description (max 256 chars).
2534 &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 256 chars).
2535 &quot;name&quot;: &quot;A String&quot;, # Output only. The template name. The template will have one of the following formats: `projects/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID` OR `organizations/ORGANIZATION_ID/deidentifyTemplates/TEMPLATE_ID`
2536 &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of an inspectTemplate.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002537 &quot;deidentifyConfig&quot;: { # The configuration that controls how the data will change. # ///////////// // The core content of the template // ///////////////
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002538 &quot;transformationErrorHandling&quot;: { # How to handle transformation errors during de-identification. A transformation error occurs when the requested transformation is incompatible with the data. For example, trying to de-identify an IP address using a `DateShift` transformation would result in a transformation error, since date info cannot be extracted from an IP address. Information about any incompatible transformations, and how they were handled, is returned in the response as part of the `TransformationOverviews`. # Mode for handling transformation errors. If left unspecified, the default mode is `TransformationErrorHandling.ThrowError`.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002539 &quot;throwError&quot;: { # Throw an error and fail the request when a transformation error occurs. # Throw an error
2540 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002541 &quot;leaveUntransformed&quot;: { # Skips the data without modifying it if the requested transformation would cause an error. For example, if a `DateShift` transformation were applied an an IP address, this mode would leave the IP address unchanged in the response. # Ignore errors
2542 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002543 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002544 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and apply various `PrimitiveTransformation`s to each finding, where the transformation is applied to only values that were identified as a specific info_type. # Treat the dataset as free-form text and apply the same free text transformation everywhere.
2545 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one for a given infoType.
2546 { # A transformation to apply to text that is identified as a specific info_type.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002547 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002548 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
2549 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
2550 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002551 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002552 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2553 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2554 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002555 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2556 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2557 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002558 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2559 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2560 },
2561 },
2562 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
2563 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2564 },
2565 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
2566 },
2567 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
2568 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
2569 },
2570 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
2571 },
2572 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
2573 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
2574 { # Bucket is represented as a range, along with replacement values.
2575 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
2576 &quot;floatValue&quot;: 3.14, # float
2577 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2578 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2579 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2580 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2581 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2582 },
2583 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2584 &quot;stringValue&quot;: &quot;A String&quot;, # string
2585 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2586 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2587 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2588 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2589 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2590 },
2591 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2592 &quot;booleanValue&quot;: True or False, # boolean
2593 },
2594 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
2595 &quot;floatValue&quot;: 3.14, # float
2596 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2597 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2598 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2599 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2600 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2601 },
2602 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2603 &quot;stringValue&quot;: &quot;A String&quot;, # string
2604 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2605 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2606 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2607 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2608 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2609 },
2610 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2611 &quot;booleanValue&quot;: True or False, # boolean
2612 },
2613 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
2614 &quot;floatValue&quot;: 3.14, # float
2615 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2616 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2617 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2618 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2619 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2620 },
2621 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2622 &quot;stringValue&quot;: &quot;A String&quot;, # string
2623 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2624 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2625 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2626 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2627 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2628 },
2629 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2630 &quot;booleanValue&quot;: True or False, # boolean
2631 },
2632 },
2633 ],
2634 },
2635 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
2636 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
2637 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2638 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2639 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2640 },
2641 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2642 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2643 },
2644 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2645 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2646 },
2647 },
2648 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
2649 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002650 },
2651 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
2652 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2653 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002654 },
2655 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
2656 },
2657 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
2658 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
2659 &quot;floatValue&quot;: 3.14, # float
2660 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2661 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2662 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2663 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2664 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2665 },
2666 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2667 &quot;stringValue&quot;: &quot;A String&quot;, # string
2668 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2669 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2670 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2671 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2672 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2673 },
2674 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2675 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002676 },
2677 },
2678 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
2679 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
2680 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
2681 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
2682 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07002683 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002684 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002685 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002686 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
2687 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002688 },
2689 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
2690 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002691 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2692 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2693 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2694 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002695 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2696 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2697 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002698 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2699 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2700 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002701 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002702 },
2703 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002704 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002705 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
2706 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
2707 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002708 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002709 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
2710 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2711 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002712 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
2713 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2714 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2715 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2716 },
2717 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2718 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2719 },
2720 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2721 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2722 },
2723 },
2724 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002725 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002726 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002727 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
2728 &quot;floatValue&quot;: 3.14, # float
2729 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2730 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2731 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2732 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2733 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2734 },
2735 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2736 &quot;stringValue&quot;: &quot;A String&quot;, # string
2737 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2738 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2739 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2740 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2741 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2742 },
2743 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2744 &quot;booleanValue&quot;: True or False, # boolean
2745 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002746 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002747 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002748 &quot;floatValue&quot;: 3.14, # float
2749 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002750 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002751 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2752 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002753 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002754 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002755 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002756 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002757 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2758 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002759 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002760 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2761 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002762 },
2763 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002764 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002765 },
2766 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002767 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002768 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.
2769 { # Type of information detected by the API.
2770 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
2771 },
2772 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002773 },
2774 ],
2775 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002776 &quot;recordTransformations&quot;: { # A type of transformation that is applied over structured data such as a table. # Treat the dataset as structured. Transformations can be applied to specific locations within structured datasets, such as transforming a column within a table.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002777 &quot;recordSuppressions&quot;: [ # Configuration defining which records get suppressed entirely. Records that match any suppression rule are omitted from the output.
2778 { # Configuration to suppress records whose suppression conditions evaluate to true.
2779 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to a field. # A condition that when it evaluates to true will result in the record being evaluated to be suppressed from the transformed content.
2780 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
2781 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently only supported value is `AND`.
2782 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
2783 &quot;conditions&quot;: [ # A collection of conditions.
2784 { # The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of &#x27;HH:mm:ss&#x27;. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false.
2785 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
2786 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2787 },
2788 &quot;value&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
2789 &quot;floatValue&quot;: 3.14, # float
2790 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2791 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2792 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2793 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2794 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2795 },
2796 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2797 &quot;stringValue&quot;: &quot;A String&quot;, # string
2798 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2799 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2800 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2801 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2802 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2803 },
2804 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2805 &quot;booleanValue&quot;: True or False, # boolean
2806 },
2807 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
2808 },
2809 ],
2810 },
2811 },
2812 },
2813 },
2814 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002815 &quot;fieldTransformations&quot;: [ # Transform the record by applying various field transformations.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002816 { # The transformation to apply to the field.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002817 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and apply various `PrimitiveTransformation`s to each finding, where the transformation is applied to only values that were identified as a specific info_type. # Treat the contents of the field as free text, and selectively transform content that matches an `InfoType`.
2818 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one for a given infoType.
2819 { # A transformation to apply to text that is identified as a specific info_type.
2820 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002821 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
2822 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
2823 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002824 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2825 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2826 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2827 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002828 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2829 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2830 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002831 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2832 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2833 },
2834 },
2835 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
2836 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2837 },
2838 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
2839 },
2840 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
2841 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
2842 },
2843 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
2844 },
2845 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
2846 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
2847 { # Bucket is represented as a range, along with replacement values.
2848 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
2849 &quot;floatValue&quot;: 3.14, # float
2850 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2851 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2852 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2853 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2854 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2855 },
2856 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2857 &quot;stringValue&quot;: &quot;A String&quot;, # string
2858 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2859 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2860 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2861 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2862 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2863 },
2864 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2865 &quot;booleanValue&quot;: True or False, # boolean
2866 },
2867 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
2868 &quot;floatValue&quot;: 3.14, # float
2869 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2870 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2871 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2872 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2873 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2874 },
2875 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2876 &quot;stringValue&quot;: &quot;A String&quot;, # string
2877 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2878 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2879 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2880 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2881 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2882 },
2883 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2884 &quot;booleanValue&quot;: True or False, # boolean
2885 },
2886 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
2887 &quot;floatValue&quot;: 3.14, # float
2888 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2889 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2890 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2891 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2892 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2893 },
2894 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2895 &quot;stringValue&quot;: &quot;A String&quot;, # string
2896 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2897 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2898 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2899 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2900 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2901 },
2902 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2903 &quot;booleanValue&quot;: True or False, # boolean
2904 },
2905 },
2906 ],
2907 },
2908 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
2909 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
2910 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2911 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2912 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2913 },
2914 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2915 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2916 },
2917 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2918 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2919 },
2920 },
2921 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
2922 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002923 },
2924 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
2925 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2926 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002927 },
2928 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
2929 },
2930 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
2931 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
2932 &quot;floatValue&quot;: 3.14, # float
2933 &quot;integerValue&quot;: &quot;A String&quot;, # integer
2934 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
2935 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
2936 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
2937 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
2938 },
2939 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
2940 &quot;stringValue&quot;: &quot;A String&quot;, # string
2941 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
2942 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
2943 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
2944 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2945 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
2946 },
2947 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
2948 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002949 },
2950 },
2951 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
2952 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
2953 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
2954 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
2955 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002956 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002957 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002958 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002959 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
2960 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002961 },
2962 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
2963 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002964 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2965 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2966 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2967 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002968 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2969 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2970 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002971 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2972 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2973 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002974 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002975 },
2976 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002977 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002978 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
2979 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
2980 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002981 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002982 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
2983 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
2984 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08002985 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
2986 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
2987 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
2988 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
2989 },
2990 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
2991 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
2992 },
2993 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
2994 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
2995 },
2996 },
2997 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07002998 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07002999 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003000 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
3001 &quot;floatValue&quot;: 3.14, # float
3002 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3003 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3004 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3005 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3006 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3007 },
3008 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3009 &quot;stringValue&quot;: &quot;A String&quot;, # string
3010 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3011 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3012 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3013 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3014 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3015 },
3016 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3017 &quot;booleanValue&quot;: True or False, # boolean
3018 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003019 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003020 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003021 &quot;floatValue&quot;: 3.14, # float
3022 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003023 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003024 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3025 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003026 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003027 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003028 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003029 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003030 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3031 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003032 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003033 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3034 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003035 },
3036 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003037 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003038 },
3039 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003040 },
3041 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.
3042 { # Type of information detected by the API.
3043 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
3044 },
3045 ],
3046 },
3047 ],
3048 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003049 &quot;fields&quot;: [ # Required. Input field(s) to apply the transformation to.
3050 { # General identifier of a data field in a storage service.
3051 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3052 },
3053 ],
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003054 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Apply the transformation to the entire field.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003055 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
3056 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
3057 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003058 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
3059 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3060 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3061 },
3062 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
3063 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3064 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003065 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
3066 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
3067 },
3068 },
3069 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
3070 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3071 },
3072 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
3073 },
3074 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
3075 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
3076 },
3077 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
3078 },
3079 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
3080 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
3081 { # Bucket is represented as a range, along with replacement values.
3082 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
3083 &quot;floatValue&quot;: 3.14, # float
3084 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3085 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3086 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3087 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3088 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3089 },
3090 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3091 &quot;stringValue&quot;: &quot;A String&quot;, # string
3092 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3093 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3094 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3095 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3096 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3097 },
3098 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3099 &quot;booleanValue&quot;: True or False, # boolean
3100 },
3101 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
3102 &quot;floatValue&quot;: 3.14, # float
3103 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3104 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3105 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3106 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3107 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3108 },
3109 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3110 &quot;stringValue&quot;: &quot;A String&quot;, # string
3111 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3112 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3113 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3114 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3115 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3116 },
3117 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3118 &quot;booleanValue&quot;: True or False, # boolean
3119 },
3120 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
3121 &quot;floatValue&quot;: 3.14, # float
3122 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3123 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3124 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3125 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3126 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3127 },
3128 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3129 &quot;stringValue&quot;: &quot;A String&quot;, # string
3130 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3131 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3132 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3133 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3134 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3135 },
3136 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3137 &quot;booleanValue&quot;: True or False, # boolean
3138 },
3139 },
3140 ],
3141 },
3142 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
3143 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
3144 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
3145 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3146 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3147 },
3148 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
3149 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3150 },
3151 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
3152 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
3153 },
3154 },
3155 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
3156 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003157 },
3158 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
3159 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3160 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003161 },
3162 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
3163 },
3164 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
3165 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
3166 &quot;floatValue&quot;: 3.14, # float
3167 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3168 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3169 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3170 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3171 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3172 },
3173 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3174 &quot;stringValue&quot;: &quot;A String&quot;, # string
3175 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3176 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3177 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3178 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3179 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3180 },
3181 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3182 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003183 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07003184 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003185 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
3186 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
3187 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
3188 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
3189 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
3190 },
3191 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003192 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003193 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
3194 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003195 },
3196 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
3197 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003198 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
3199 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3200 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3201 },
3202 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
3203 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3204 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003205 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
3206 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
3207 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003208 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003209 },
3210 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003211 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
3212 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
3213 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
3214 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003215 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003216 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
3217 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3218 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003219 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
3220 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
3221 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3222 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3223 },
3224 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
3225 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3226 },
3227 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
3228 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
3229 },
3230 },
3231 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003232 },
3233 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003234 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
3235 &quot;floatValue&quot;: 3.14, # float
3236 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3237 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3238 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3239 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3240 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3241 },
3242 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3243 &quot;stringValue&quot;: &quot;A String&quot;, # string
3244 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3245 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3246 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3247 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3248 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3249 },
3250 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3251 &quot;booleanValue&quot;: True or False, # boolean
3252 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003253 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
3254 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003255 &quot;floatValue&quot;: 3.14, # float
3256 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003257 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003258 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3259 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003260 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003261 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003262 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003263 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003264 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3265 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003266 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003267 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3268 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003269 },
3270 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003271 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003272 },
3273 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003274 },
3275 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to a field. # Only apply the transformation if the condition evaluates to true for the given `RecordCondition`. The conditions are allowed to reference fields that are not used in the actual transformation. Example Use Cases: - Apply a different bucket transformation to an age column if the zip code column for the same record is within a specific range. - Redact a field if the date of birth field is greater than 85.
3276 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
3277 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently only supported value is `AND`.
3278 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
3279 &quot;conditions&quot;: [ # A collection of conditions.
3280 { # The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of &#x27;HH:mm:ss&#x27;. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003281 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
3282 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3283 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003284 &quot;value&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003285 &quot;floatValue&quot;: 3.14, # float
3286 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003287 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003288 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3289 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003290 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003291 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003292 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003293 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003294 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3295 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003296 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003297 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3298 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003299 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003300 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3301 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003302 },
3303 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003304 },
3305 ],
3306 },
3307 },
3308 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003309 },
3310 ],
Dan O'Mearadd494642020-05-01 07:42:23 -07003311 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003312 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003313 },
3314 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003315 &quot;nextPageToken&quot;: &quot;A String&quot;, # If the next page is available then the next page token to be used in following ListDeidentifyTemplates request.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003316 }</pre>
3317</div>
3318
3319<div class="method">
3320 <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
3321 <pre>Retrieves the next page of results.
3322
3323Args:
3324 previous_request: The request for the previous page. (required)
3325 previous_response: The response from the request for the previous page. (required)
3326
3327Returns:
Bu Sun Kim65020912020-05-20 12:08:20 -07003328 A request object that you can call &#x27;execute()&#x27; on to request the next
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003329 page. Returns None if there are no more items in the collection.
3330 </pre>
3331</div>
3332
3333<div class="method">
Dan O'Mearadd494642020-05-01 07:42:23 -07003334 <code class="details" id="patch">patch(name, body=None, x__xgafv=None)</code>
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003335 <pre>Updates the DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn more.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003336
3337Args:
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003338 name: string, Required. Resource name of organization and deidentify template to be updated, for example `organizations/433245324/deidentifyTemplates/432452342` or projects/project-id/deidentifyTemplates/432452342. (required)
Dan O'Mearadd494642020-05-01 07:42:23 -07003339 body: object, The request body.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003340 The object takes the form of:
3341
3342{ # Request message for UpdateDeidentifyTemplate.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003343 &quot;updateMask&quot;: &quot;A String&quot;, # Mask to control which fields get updated.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003344 &quot;deidentifyTemplate&quot;: { # DeidentifyTemplates contains instructions on how to de-identify content. See https://cloud.google.com/dlp/docs/concepts-templates to learn more. # New DeidentifyTemplate value.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003345 &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of an inspectTemplate.
3346 &quot;description&quot;: &quot;A String&quot;, # Short description (max 256 chars).
3347 &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 256 chars).
3348 &quot;name&quot;: &quot;A String&quot;, # Output only. The template name. The template will have one of the following formats: `projects/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID` OR `organizations/ORGANIZATION_ID/deidentifyTemplates/TEMPLATE_ID`
3349 &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of an inspectTemplate.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003350 &quot;deidentifyConfig&quot;: { # The configuration that controls how the data will change. # ///////////// // The core content of the template // ///////////////
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003351 &quot;transformationErrorHandling&quot;: { # How to handle transformation errors during de-identification. A transformation error occurs when the requested transformation is incompatible with the data. For example, trying to de-identify an IP address using a `DateShift` transformation would result in a transformation error, since date info cannot be extracted from an IP address. Information about any incompatible transformations, and how they were handled, is returned in the response as part of the `TransformationOverviews`. # Mode for handling transformation errors. If left unspecified, the default mode is `TransformationErrorHandling.ThrowError`.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003352 &quot;throwError&quot;: { # Throw an error and fail the request when a transformation error occurs. # Throw an error
3353 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003354 &quot;leaveUntransformed&quot;: { # Skips the data without modifying it if the requested transformation would cause an error. For example, if a `DateShift` transformation were applied an an IP address, this mode would leave the IP address unchanged in the response. # Ignore errors
3355 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003356 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003357 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and apply various `PrimitiveTransformation`s to each finding, where the transformation is applied to only values that were identified as a specific info_type. # Treat the dataset as free-form text and apply the same free text transformation everywhere.
3358 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one for a given infoType.
3359 { # A transformation to apply to text that is identified as a specific info_type.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07003360 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003361 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
3362 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
3363 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003364 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003365 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3366 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3367 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003368 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
3369 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3370 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003371 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
3372 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
3373 },
3374 },
3375 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
3376 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3377 },
3378 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
3379 },
3380 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
3381 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
3382 },
3383 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
3384 },
3385 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
3386 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
3387 { # Bucket is represented as a range, along with replacement values.
3388 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
3389 &quot;floatValue&quot;: 3.14, # float
3390 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3391 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3392 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3393 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3394 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3395 },
3396 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3397 &quot;stringValue&quot;: &quot;A String&quot;, # string
3398 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3399 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3400 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3401 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3402 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3403 },
3404 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3405 &quot;booleanValue&quot;: True or False, # boolean
3406 },
3407 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
3408 &quot;floatValue&quot;: 3.14, # float
3409 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3410 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3411 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3412 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3413 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3414 },
3415 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3416 &quot;stringValue&quot;: &quot;A String&quot;, # string
3417 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3418 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3419 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3420 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3421 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3422 },
3423 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3424 &quot;booleanValue&quot;: True or False, # boolean
3425 },
3426 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
3427 &quot;floatValue&quot;: 3.14, # float
3428 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3429 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3430 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3431 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3432 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3433 },
3434 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3435 &quot;stringValue&quot;: &quot;A String&quot;, # string
3436 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3437 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3438 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3439 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3440 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3441 },
3442 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3443 &quot;booleanValue&quot;: True or False, # boolean
3444 },
3445 },
3446 ],
3447 },
3448 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
3449 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
3450 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
3451 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3452 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3453 },
3454 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
3455 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3456 },
3457 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
3458 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
3459 },
3460 },
3461 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
3462 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003463 },
3464 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
3465 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3466 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003467 },
3468 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
3469 },
3470 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
3471 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
3472 &quot;floatValue&quot;: 3.14, # float
3473 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3474 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3475 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3476 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3477 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3478 },
3479 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3480 &quot;stringValue&quot;: &quot;A String&quot;, # string
3481 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3482 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3483 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3484 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3485 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3486 },
3487 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3488 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003489 },
3490 },
3491 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
3492 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
3493 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
3494 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
3495 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07003496 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003497 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003498 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003499 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
3500 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003501 },
3502 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
3503 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003504 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
3505 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3506 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3507 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003508 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
3509 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3510 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003511 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
3512 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
3513 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003514 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003515 },
3516 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003517 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003518 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
3519 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
3520 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003521 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003522 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
3523 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3524 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003525 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
3526 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
3527 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3528 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3529 },
3530 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
3531 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3532 },
3533 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
3534 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
3535 },
3536 },
3537 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003538 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003539 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003540 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
3541 &quot;floatValue&quot;: 3.14, # float
3542 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3543 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3544 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3545 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3546 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3547 },
3548 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3549 &quot;stringValue&quot;: &quot;A String&quot;, # string
3550 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3551 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3552 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3553 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3554 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3555 },
3556 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3557 &quot;booleanValue&quot;: True or False, # boolean
3558 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003559 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003560 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003561 &quot;floatValue&quot;: 3.14, # float
3562 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003563 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003564 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3565 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003566 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003567 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003568 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003569 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003570 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3571 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003572 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003573 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3574 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003575 },
3576 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003577 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003578 },
3579 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003580 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003581 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.
3582 { # Type of information detected by the API.
3583 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
3584 },
3585 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003586 },
3587 ],
3588 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003589 &quot;recordTransformations&quot;: { # A type of transformation that is applied over structured data such as a table. # Treat the dataset as structured. Transformations can be applied to specific locations within structured datasets, such as transforming a column within a table.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003590 &quot;recordSuppressions&quot;: [ # Configuration defining which records get suppressed entirely. Records that match any suppression rule are omitted from the output.
3591 { # Configuration to suppress records whose suppression conditions evaluate to true.
3592 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to a field. # A condition that when it evaluates to true will result in the record being evaluated to be suppressed from the transformed content.
3593 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
3594 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently only supported value is `AND`.
3595 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
3596 &quot;conditions&quot;: [ # A collection of conditions.
3597 { # The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of &#x27;HH:mm:ss&#x27;. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false.
3598 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
3599 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3600 },
3601 &quot;value&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
3602 &quot;floatValue&quot;: 3.14, # float
3603 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3604 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3605 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3606 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3607 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3608 },
3609 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3610 &quot;stringValue&quot;: &quot;A String&quot;, # string
3611 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3612 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3613 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3614 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3615 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3616 },
3617 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3618 &quot;booleanValue&quot;: True or False, # boolean
3619 },
3620 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
3621 },
3622 ],
3623 },
3624 },
3625 },
3626 },
3627 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07003628 &quot;fieldTransformations&quot;: [ # Transform the record by applying various field transformations.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003629 { # The transformation to apply to the field.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003630 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and apply various `PrimitiveTransformation`s to each finding, where the transformation is applied to only values that were identified as a specific info_type. # Treat the contents of the field as free text, and selectively transform content that matches an `InfoType`.
3631 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one for a given infoType.
3632 { # A transformation to apply to text that is identified as a specific info_type.
3633 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003634 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
3635 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
3636 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003637 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
3638 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3639 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3640 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003641 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
3642 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3643 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003644 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
3645 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
3646 },
3647 },
3648 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
3649 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3650 },
3651 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
3652 },
3653 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
3654 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
3655 },
3656 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
3657 },
3658 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
3659 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
3660 { # Bucket is represented as a range, along with replacement values.
3661 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
3662 &quot;floatValue&quot;: 3.14, # float
3663 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3664 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3665 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3666 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3667 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3668 },
3669 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3670 &quot;stringValue&quot;: &quot;A String&quot;, # string
3671 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3672 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3673 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3674 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3675 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3676 },
3677 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3678 &quot;booleanValue&quot;: True or False, # boolean
3679 },
3680 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
3681 &quot;floatValue&quot;: 3.14, # float
3682 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3683 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3684 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3685 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3686 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3687 },
3688 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3689 &quot;stringValue&quot;: &quot;A String&quot;, # string
3690 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3691 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3692 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3693 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3694 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3695 },
3696 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3697 &quot;booleanValue&quot;: True or False, # boolean
3698 },
3699 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
3700 &quot;floatValue&quot;: 3.14, # float
3701 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3702 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3703 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3704 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3705 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3706 },
3707 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3708 &quot;stringValue&quot;: &quot;A String&quot;, # string
3709 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3710 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3711 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3712 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3713 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3714 },
3715 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3716 &quot;booleanValue&quot;: True or False, # boolean
3717 },
3718 },
3719 ],
3720 },
3721 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
3722 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
3723 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
3724 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3725 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3726 },
3727 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
3728 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3729 },
3730 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
3731 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
3732 },
3733 },
3734 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
3735 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003736 },
3737 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
3738 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3739 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003740 },
3741 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
3742 },
3743 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
3744 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
3745 &quot;floatValue&quot;: 3.14, # float
3746 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3747 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3748 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3749 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3750 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3751 },
3752 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3753 &quot;stringValue&quot;: &quot;A String&quot;, # string
3754 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3755 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3756 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3757 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3758 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3759 },
3760 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3761 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003762 },
3763 },
3764 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
3765 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
3766 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
3767 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
3768 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003769 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003770 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003771 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003772 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
3773 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003774 },
3775 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
3776 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003777 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
3778 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3779 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3780 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003781 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
3782 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3783 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003784 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
3785 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
3786 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003787 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003788 },
3789 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003790 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003791 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
3792 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
3793 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003794 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003795 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
3796 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3797 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003798 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
3799 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
3800 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3801 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3802 },
3803 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
3804 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3805 },
3806 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
3807 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
3808 },
3809 },
3810 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003811 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003812 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003813 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
3814 &quot;floatValue&quot;: 3.14, # float
3815 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3816 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3817 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3818 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3819 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3820 },
3821 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3822 &quot;stringValue&quot;: &quot;A String&quot;, # string
3823 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3824 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3825 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3826 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3827 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3828 },
3829 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3830 &quot;booleanValue&quot;: True or False, # boolean
3831 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003832 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003833 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003834 &quot;floatValue&quot;: 3.14, # float
3835 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003836 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003837 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3838 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003839 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003840 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003841 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003842 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003843 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3844 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003845 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003846 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3847 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003848 },
3849 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003850 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003851 },
3852 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07003853 },
3854 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.
3855 { # Type of information detected by the API.
3856 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
3857 },
3858 ],
3859 },
3860 ],
3861 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003862 &quot;fields&quot;: [ # Required. Input field(s) to apply the transformation to.
3863 { # General identifier of a data field in a storage service.
3864 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3865 },
3866 ],
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003867 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Apply the transformation to the entire field.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003868 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
3869 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
3870 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003871 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
3872 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3873 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3874 },
3875 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
3876 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3877 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003878 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
3879 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
3880 },
3881 },
3882 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
3883 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3884 },
3885 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
3886 },
3887 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
3888 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
3889 },
3890 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
3891 },
3892 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
3893 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
3894 { # Bucket is represented as a range, along with replacement values.
3895 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
3896 &quot;floatValue&quot;: 3.14, # float
3897 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3898 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3899 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3900 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3901 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3902 },
3903 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3904 &quot;stringValue&quot;: &quot;A String&quot;, # string
3905 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3906 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3907 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3908 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3909 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3910 },
3911 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3912 &quot;booleanValue&quot;: True or False, # boolean
3913 },
3914 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
3915 &quot;floatValue&quot;: 3.14, # float
3916 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3917 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3918 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3919 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3920 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3921 },
3922 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3923 &quot;stringValue&quot;: &quot;A String&quot;, # string
3924 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3925 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3926 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3927 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3928 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3929 },
3930 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3931 &quot;booleanValue&quot;: True or False, # boolean
3932 },
3933 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
3934 &quot;floatValue&quot;: 3.14, # float
3935 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3936 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3937 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3938 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3939 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3940 },
3941 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3942 &quot;stringValue&quot;: &quot;A String&quot;, # string
3943 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3944 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3945 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3946 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3947 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3948 },
3949 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3950 &quot;booleanValue&quot;: True or False, # boolean
3951 },
3952 },
3953 ],
3954 },
3955 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
3956 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
3957 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
3958 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
3959 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
3960 },
3961 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
3962 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
3963 },
3964 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
3965 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
3966 },
3967 },
3968 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
3969 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003970 },
3971 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
3972 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
3973 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08003974 },
3975 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
3976 },
3977 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
3978 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
3979 &quot;floatValue&quot;: 3.14, # float
3980 &quot;integerValue&quot;: &quot;A String&quot;, # integer
3981 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
3982 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
3983 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
3984 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
3985 },
3986 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
3987 &quot;stringValue&quot;: &quot;A String&quot;, # string
3988 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
3989 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
3990 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
3991 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
3992 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
3993 },
3994 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
3995 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003996 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07003997 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07003998 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
3999 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
4000 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
4001 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
4002 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
4003 },
4004 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004005 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004006 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
4007 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004008 },
4009 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
4010 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004011 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
4012 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4013 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4014 },
4015 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
4016 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4017 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004018 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
4019 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
4020 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004021 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004022 },
4023 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004024 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
4025 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
4026 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
4027 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004028 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004029 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
4030 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4031 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004032 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
4033 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
4034 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4035 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4036 },
4037 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
4038 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4039 },
4040 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
4041 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
4042 },
4043 },
4044 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004045 },
4046 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004047 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
4048 &quot;floatValue&quot;: 3.14, # float
4049 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4050 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4051 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4052 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4053 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4054 },
4055 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4056 &quot;stringValue&quot;: &quot;A String&quot;, # string
4057 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4058 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4059 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4060 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4061 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4062 },
4063 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4064 &quot;booleanValue&quot;: True or False, # boolean
4065 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004066 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
4067 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004068 &quot;floatValue&quot;: 3.14, # float
4069 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004070 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004071 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4072 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004073 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004074 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004075 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004076 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004077 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4078 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004079 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004080 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4081 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004082 },
4083 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004084 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004085 },
4086 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004087 },
4088 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to a field. # Only apply the transformation if the condition evaluates to true for the given `RecordCondition`. The conditions are allowed to reference fields that are not used in the actual transformation. Example Use Cases: - Apply a different bucket transformation to an age column if the zip code column for the same record is within a specific range. - Redact a field if the date of birth field is greater than 85.
4089 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
4090 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently only supported value is `AND`.
4091 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
4092 &quot;conditions&quot;: [ # A collection of conditions.
4093 { # The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of &#x27;HH:mm:ss&#x27;. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004094 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
4095 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4096 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004097 &quot;value&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004098 &quot;floatValue&quot;: 3.14, # float
4099 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004100 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004101 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4102 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004103 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004104 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004105 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004106 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004107 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4108 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004109 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004110 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4111 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004112 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004113 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4114 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004115 },
4116 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004117 },
4118 ],
4119 },
4120 },
4121 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004122 },
4123 ],
Dan O'Mearadd494642020-05-01 07:42:23 -07004124 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004125 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004126 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004127 }
4128
4129 x__xgafv: string, V1 error format.
4130 Allowed values
4131 1 - v1 error format
4132 2 - v2 error format
4133
4134Returns:
4135 An object of the form:
4136
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004137 { # DeidentifyTemplates contains instructions on how to de-identify content. See https://cloud.google.com/dlp/docs/concepts-templates to learn more.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004138 &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of an inspectTemplate.
4139 &quot;description&quot;: &quot;A String&quot;, # Short description (max 256 chars).
4140 &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 256 chars).
4141 &quot;name&quot;: &quot;A String&quot;, # Output only. The template name. The template will have one of the following formats: `projects/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID` OR `organizations/ORGANIZATION_ID/deidentifyTemplates/TEMPLATE_ID`
4142 &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of an inspectTemplate.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004143 &quot;deidentifyConfig&quot;: { # The configuration that controls how the data will change. # ///////////// // The core content of the template // ///////////////
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004144 &quot;transformationErrorHandling&quot;: { # How to handle transformation errors during de-identification. A transformation error occurs when the requested transformation is incompatible with the data. For example, trying to de-identify an IP address using a `DateShift` transformation would result in a transformation error, since date info cannot be extracted from an IP address. Information about any incompatible transformations, and how they were handled, is returned in the response as part of the `TransformationOverviews`. # Mode for handling transformation errors. If left unspecified, the default mode is `TransformationErrorHandling.ThrowError`.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004145 &quot;throwError&quot;: { # Throw an error and fail the request when a transformation error occurs. # Throw an error
4146 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004147 &quot;leaveUntransformed&quot;: { # Skips the data without modifying it if the requested transformation would cause an error. For example, if a `DateShift` transformation were applied an an IP address, this mode would leave the IP address unchanged in the response. # Ignore errors
4148 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004149 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004150 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and apply various `PrimitiveTransformation`s to each finding, where the transformation is applied to only values that were identified as a specific info_type. # Treat the dataset as free-form text and apply the same free text transformation everywhere.
4151 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one for a given infoType.
4152 { # A transformation to apply to text that is identified as a specific info_type.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004153 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004154 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
4155 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
4156 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004157 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004158 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4159 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4160 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004161 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
4162 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4163 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004164 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
4165 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
4166 },
4167 },
4168 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
4169 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4170 },
4171 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
4172 },
4173 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
4174 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
4175 },
4176 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
4177 },
4178 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
4179 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
4180 { # Bucket is represented as a range, along with replacement values.
4181 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
4182 &quot;floatValue&quot;: 3.14, # float
4183 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4184 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4185 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4186 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4187 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4188 },
4189 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4190 &quot;stringValue&quot;: &quot;A String&quot;, # string
4191 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4192 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4193 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4194 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4195 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4196 },
4197 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4198 &quot;booleanValue&quot;: True or False, # boolean
4199 },
4200 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
4201 &quot;floatValue&quot;: 3.14, # float
4202 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4203 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4204 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4205 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4206 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4207 },
4208 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4209 &quot;stringValue&quot;: &quot;A String&quot;, # string
4210 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4211 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4212 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4213 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4214 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4215 },
4216 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4217 &quot;booleanValue&quot;: True or False, # boolean
4218 },
4219 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
4220 &quot;floatValue&quot;: 3.14, # float
4221 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4222 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4223 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4224 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4225 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4226 },
4227 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4228 &quot;stringValue&quot;: &quot;A String&quot;, # string
4229 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4230 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4231 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4232 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4233 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4234 },
4235 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4236 &quot;booleanValue&quot;: True or False, # boolean
4237 },
4238 },
4239 ],
4240 },
4241 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
4242 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
4243 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
4244 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4245 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4246 },
4247 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
4248 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4249 },
4250 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
4251 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
4252 },
4253 },
4254 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
4255 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004256 },
4257 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
4258 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4259 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004260 },
4261 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
4262 },
4263 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
4264 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
4265 &quot;floatValue&quot;: 3.14, # float
4266 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4267 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4268 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4269 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4270 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4271 },
4272 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4273 &quot;stringValue&quot;: &quot;A String&quot;, # string
4274 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4275 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4276 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4277 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4278 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4279 },
4280 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4281 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004282 },
4283 },
4284 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
4285 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
4286 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
4287 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
4288 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004289 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004290 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004291 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004292 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
4293 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004294 },
4295 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
4296 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004297 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
4298 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4299 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4300 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004301 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
4302 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4303 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004304 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
4305 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
4306 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004307 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004308 },
4309 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004310 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004311 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
4312 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
4313 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004314 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004315 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
4316 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4317 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004318 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
4319 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
4320 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4321 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4322 },
4323 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
4324 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4325 },
4326 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
4327 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
4328 },
4329 },
4330 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004331 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004332 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004333 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
4334 &quot;floatValue&quot;: 3.14, # float
4335 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4336 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4337 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4338 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4339 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4340 },
4341 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4342 &quot;stringValue&quot;: &quot;A String&quot;, # string
4343 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4344 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4345 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4346 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4347 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4348 },
4349 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4350 &quot;booleanValue&quot;: True or False, # boolean
4351 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004352 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004353 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004354 &quot;floatValue&quot;: 3.14, # float
4355 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004356 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004357 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4358 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004359 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004360 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004361 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004362 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004363 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4364 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004365 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004366 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4367 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004368 },
4369 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004370 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004371 },
4372 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004373 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004374 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.
4375 { # Type of information detected by the API.
4376 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
4377 },
4378 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07004379 },
4380 ],
4381 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004382 &quot;recordTransformations&quot;: { # A type of transformation that is applied over structured data such as a table. # Treat the dataset as structured. Transformations can be applied to specific locations within structured datasets, such as transforming a column within a table.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004383 &quot;recordSuppressions&quot;: [ # Configuration defining which records get suppressed entirely. Records that match any suppression rule are omitted from the output.
4384 { # Configuration to suppress records whose suppression conditions evaluate to true.
4385 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to a field. # A condition that when it evaluates to true will result in the record being evaluated to be suppressed from the transformed content.
4386 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
4387 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently only supported value is `AND`.
4388 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
4389 &quot;conditions&quot;: [ # A collection of conditions.
4390 { # The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of &#x27;HH:mm:ss&#x27;. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false.
4391 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
4392 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4393 },
4394 &quot;value&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
4395 &quot;floatValue&quot;: 3.14, # float
4396 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4397 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4398 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4399 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4400 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4401 },
4402 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4403 &quot;stringValue&quot;: &quot;A String&quot;, # string
4404 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4405 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4406 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4407 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4408 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4409 },
4410 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4411 &quot;booleanValue&quot;: True or False, # boolean
4412 },
4413 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
4414 },
4415 ],
4416 },
4417 },
4418 },
4419 },
4420 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07004421 &quot;fieldTransformations&quot;: [ # Transform the record by applying various field transformations.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004422 { # The transformation to apply to the field.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004423 &quot;infoTypeTransformations&quot;: { # A type of transformation that will scan unstructured text and apply various `PrimitiveTransformation`s to each finding, where the transformation is applied to only values that were identified as a specific info_type. # Treat the contents of the field as free text, and selectively transform content that matches an `InfoType`.
4424 &quot;transformations&quot;: [ # Required. Transformation for each infoType. Cannot specify more than one for a given infoType.
4425 { # A transformation to apply to text that is identified as a specific info_type.
4426 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Required. Primitive transformation to apply to the infoType.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004427 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
4428 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
4429 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004430 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
4431 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4432 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4433 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004434 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
4435 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4436 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004437 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
4438 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
4439 },
4440 },
4441 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
4442 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4443 },
4444 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
4445 },
4446 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
4447 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
4448 },
4449 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
4450 },
4451 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
4452 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
4453 { # Bucket is represented as a range, along with replacement values.
4454 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
4455 &quot;floatValue&quot;: 3.14, # float
4456 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4457 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4458 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4459 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4460 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4461 },
4462 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4463 &quot;stringValue&quot;: &quot;A String&quot;, # string
4464 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4465 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4466 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4467 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4468 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4469 },
4470 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4471 &quot;booleanValue&quot;: True or False, # boolean
4472 },
4473 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
4474 &quot;floatValue&quot;: 3.14, # float
4475 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4476 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4477 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4478 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4479 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4480 },
4481 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4482 &quot;stringValue&quot;: &quot;A String&quot;, # string
4483 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4484 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4485 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4486 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4487 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4488 },
4489 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4490 &quot;booleanValue&quot;: True or False, # boolean
4491 },
4492 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
4493 &quot;floatValue&quot;: 3.14, # float
4494 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4495 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4496 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4497 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4498 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4499 },
4500 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4501 &quot;stringValue&quot;: &quot;A String&quot;, # string
4502 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4503 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4504 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4505 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4506 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4507 },
4508 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4509 &quot;booleanValue&quot;: True or False, # boolean
4510 },
4511 },
4512 ],
4513 },
4514 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
4515 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
4516 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
4517 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4518 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4519 },
4520 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
4521 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4522 },
4523 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
4524 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
4525 },
4526 },
4527 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
4528 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004529 },
4530 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
4531 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4532 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004533 },
4534 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
4535 },
4536 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
4537 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
4538 &quot;floatValue&quot;: 3.14, # float
4539 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4540 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4541 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4542 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4543 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4544 },
4545 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4546 &quot;stringValue&quot;: &quot;A String&quot;, # string
4547 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4548 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose 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.
4550 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4551 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4552 },
4553 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4554 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004555 },
4556 },
4557 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
4558 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
4559 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
4560 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
4561 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004562 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004563 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004564 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004565 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
4566 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004567 },
4568 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
4569 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004570 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
4571 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4572 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4573 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004574 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
4575 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4576 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004577 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
4578 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
4579 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004580 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004581 },
4582 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004583 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004584 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
4585 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
4586 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004587 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004588 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
4589 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4590 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004591 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
4592 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
4593 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4594 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4595 },
4596 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
4597 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4598 },
4599 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
4600 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
4601 },
4602 },
4603 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004604 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004605 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004606 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
4607 &quot;floatValue&quot;: 3.14, # float
4608 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4609 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4610 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4611 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4612 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4613 },
4614 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4615 &quot;stringValue&quot;: &quot;A String&quot;, # string
4616 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4617 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4618 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4619 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4620 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4621 },
4622 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4623 &quot;booleanValue&quot;: True or False, # boolean
4624 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004625 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004626 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004627 &quot;floatValue&quot;: 3.14, # float
4628 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004629 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004630 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4631 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004632 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004633 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004634 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004635 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004636 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4637 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004638 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004639 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4640 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004641 },
4642 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004643 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004644 },
4645 },
Dmitry Frenkel3e17f892020-10-06 16:46:05 -07004646 },
4647 &quot;infoTypes&quot;: [ # InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.
4648 { # Type of information detected by the API.
4649 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
4650 },
4651 ],
4652 },
4653 ],
4654 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004655 &quot;fields&quot;: [ # Required. Input field(s) to apply the transformation to.
4656 { # General identifier of a data field in a storage service.
4657 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4658 },
4659 ],
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004660 &quot;primitiveTransformation&quot;: { # A rule for transforming a value. # Apply the transformation to the entire field.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004661 &quot;dateShiftConfig&quot;: { # Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more. # Date Shift
4662 &quot;lowerBoundDays&quot;: 42, # Required. For example, -5 means shift date to at most 5 days back in the past.
4663 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004664 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
4665 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4666 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4667 },
4668 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
4669 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4670 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004671 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
4672 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
4673 },
4674 },
4675 &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. If set, must also set cryptoKey. If set, shift will be consistent for the given context.
4676 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4677 },
4678 &quot;upperBoundDays&quot;: 42, # Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.
4679 },
4680 &quot;timePartConfig&quot;: { # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a portion of the value. # Time extraction
4681 &quot;partToExtract&quot;: &quot;A String&quot;, # The part of the time to keep.
4682 },
4683 &quot;redactConfig&quot;: { # Redact a given value. For example, if used with an `InfoTypeTransformation` transforming PHONE_NUMBER, and input &#x27;My phone number is 206-555-0123&#x27;, the output would be &#x27;My phone number is &#x27;. # Redact
4684 },
4685 &quot;bucketingConfig&quot;: { # Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 -&gt; LOW 31-65 -&gt; MEDIUM 66-100 -&gt; HIGH This can be used on data of type: number, long, string, timestamp. If the bound `Value` type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Bucketing
4686 &quot;buckets&quot;: [ # Set of buckets. Ranges must be non-overlapping.
4687 { # Bucket is represented as a range, along with replacement values.
4688 &quot;max&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Upper bound of the range, exclusive; type must match min.
4689 &quot;floatValue&quot;: 3.14, # float
4690 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4691 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4692 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4693 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4694 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4695 },
4696 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4697 &quot;stringValue&quot;: &quot;A String&quot;, # string
4698 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4699 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4700 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4701 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4702 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4703 },
4704 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4705 &quot;booleanValue&quot;: True or False, # boolean
4706 },
4707 &quot;replacementValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Replacement value for this bucket.
4708 &quot;floatValue&quot;: 3.14, # float
4709 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4710 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4711 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4712 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4713 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4714 },
4715 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4716 &quot;stringValue&quot;: &quot;A String&quot;, # string
4717 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4718 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4719 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4720 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4721 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4722 },
4723 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4724 &quot;booleanValue&quot;: True or False, # boolean
4725 },
4726 &quot;min&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Lower bound of the range, inclusive. Type should be the same as max if used.
4727 &quot;floatValue&quot;: 3.14, # float
4728 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4729 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4730 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4731 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4732 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4733 },
4734 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4735 &quot;stringValue&quot;: &quot;A String&quot;, # string
4736 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4737 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4738 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4739 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4740 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4741 },
4742 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4743 &quot;booleanValue&quot;: True or False, # boolean
4744 },
4745 },
4746 ],
4747 },
4748 &quot;cryptoDeterministicConfig&quot;: { # Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. # Deterministic Crypto
4749 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
4750 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
4751 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4752 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4753 },
4754 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
4755 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4756 },
4757 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
4758 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
4759 },
4760 },
4761 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom info type &#x27;Surrogate&#x27;. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.
4762 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004763 },
4764 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
4765 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4766 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004767 },
4768 &quot;replaceWithInfoTypeConfig&quot;: { # Replace each matching finding with the name of the info_type. # Replace with infotype
4769 },
4770 &quot;replaceConfig&quot;: { # Replace each input value with a given `Value`. # Replace
4771 &quot;newValue&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to replace it with.
4772 &quot;floatValue&quot;: 3.14, # float
4773 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4774 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4775 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4776 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4777 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4778 },
4779 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4780 &quot;stringValue&quot;: &quot;A String&quot;, # string
4781 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4782 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4783 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4784 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4785 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4786 },
4787 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4788 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004789 },
Bu Sun Kimd059ad82020-07-22 17:02:09 -07004790 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004791 &quot;characterMaskConfig&quot;: { # Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we&#x27;ll attempt to preserve the original data&#x27;s type. (This allows you to take a long like 123 and modify it to a string like **3. # Mask
4792 &quot;charactersToIgnore&quot;: [ # When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.
4793 { # Characters to skip when doing deidentification of a value. These will be left alone and skipped.
4794 &quot;commonCharactersToIgnore&quot;: &quot;A String&quot;, # Common characters to not transform when masking. Useful to avoid removing punctuation.
4795 &quot;charactersToSkip&quot;: &quot;A String&quot;, # Characters to not transform when masking.
4796 },
4797 ],
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004798 &quot;maskingCharacter&quot;: &quot;A String&quot;, # Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004799 &quot;reverseOrder&quot;: True or False, # Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.
4800 &quot;numberToMask&quot;: 42, # Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004801 },
4802 &quot;cryptoHashConfig&quot;: { # Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and integer values can be hashed. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. # Crypto
4803 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the hash function.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004804 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
4805 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4806 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4807 },
4808 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
4809 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4810 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004811 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
4812 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
4813 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004814 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004815 },
4816 &quot;cryptoReplaceFfxFpeConfig&quot;: { # Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `ReidentifyContent` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn more. Note: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity. # Ffx-Fpe
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004817 &quot;radix&quot;: 42, # The native way to select the alphabet. Must be in the range [2, 95].
4818 &quot;surrogateInfoType&quot;: { # Type of information detected by the API. # The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is &#x27;MY_TOKEN_INFO_TYPE&#x27; and the surrogate is &#x27;abc&#x27;, the full replacement value will be: &#x27;MY_TOKEN_INFO_TYPE(3):abc&#x27; This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE
4819 &quot;name&quot;: &quot;A String&quot;, # Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.
4820 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004821 &quot;commonAlphabet&quot;: &quot;A String&quot;, # Common alphabets.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004822 &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 identifier in two different contexts won&#x27;t be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2
4823 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4824 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004825 &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # Required. The key used by the encryption algorithm.
4826 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
4827 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
4828 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
4829 },
4830 &quot;unwrapped&quot;: { # Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. # Unwrapped crypto key
4831 &quot;key&quot;: &quot;A String&quot;, # Required. A 128/192/256 bit key.
4832 },
4833 &quot;transient&quot;: { # Use this to have a random data crypto key generated. It will be discarded after the request finishes. # Transient crypto key
4834 &quot;name&quot;: &quot;A String&quot;, # Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).
4835 },
4836 },
4837 &quot;customAlphabet&quot;: &quot;A String&quot;, # This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&amp;*()_-+={[}]|\:;&quot;&#x27;&lt;,&gt;.?/
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004838 },
4839 &quot;fixedSizeBucketingConfig&quot;: { # Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies. The transformed value will be a hyphenated string of {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 all values that are within this bucket will be replaced with &quot;10-20&quot;. This can be used on data of type: double, long. If the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing. See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. # Fixed size bucketing
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004840 &quot;lowerBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value &quot;-10&quot;.
4841 &quot;floatValue&quot;: 3.14, # float
4842 &quot;integerValue&quot;: &quot;A String&quot;, # integer
4843 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
4844 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4845 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
4846 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
4847 },
4848 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
4849 &quot;stringValue&quot;: &quot;A String&quot;, # string
4850 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4851 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
4852 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
4853 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4854 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
4855 },
4856 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4857 &quot;booleanValue&quot;: True or False, # boolean
4858 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004859 &quot;bucketSize&quot;: 3.14, # Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
4860 &quot;upperBound&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value &quot;89+&quot;.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004861 &quot;floatValue&quot;: 3.14, # float
4862 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004863 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004864 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4865 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004866 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004867 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004868 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004869 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004870 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4871 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004872 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004873 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4874 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004875 },
4876 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004877 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004878 },
4879 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004880 },
4881 &quot;condition&quot;: { # A condition for determining whether a transformation should be applied to a field. # Only apply the transformation if the condition evaluates to true for the given `RecordCondition`. The conditions are allowed to reference fields that are not used in the actual transformation. Example Use Cases: - Apply a different bucket transformation to an age column if the zip code column for the same record is within a specific range. - Redact a field if the date of birth field is greater than 85.
4882 &quot;expressions&quot;: { # An expression, consisting or an operator and conditions. # An expression.
4883 &quot;logicalOperator&quot;: &quot;A String&quot;, # The operator to apply to the result of conditions. Default and currently only supported value is `AND`.
4884 &quot;conditions&quot;: { # A collection of conditions. # Conditions to apply to the expression.
4885 &quot;conditions&quot;: [ # A collection of conditions.
4886 { # The field type of `value` and `field` do not need to match to be considered equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, but all other comparisons are invalid with incompatible types. A `value` of type: - `string` can be compared against all other types - `boolean` can only be compared against other booleans - `integer` can be compared against doubles or a string if the string value can be parsed as an integer. - `double` can be compared against integers or a string if the string can be parsed as a double. - `Timestamp` can be compared against strings in RFC 3339 date string format. - `TimeOfDay` can be compared against timestamps and strings in the format of &#x27;HH:mm:ss&#x27;. If we fail to compare do to type mismatch, a warning will be given and the condition will evaluate to false.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004887 &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Field within the record this condition is evaluated against.
4888 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
4889 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004890 &quot;value&quot;: { # Set of primitive values supported by the system. Note that for the purposes of inspection or transformation, the number of bytes considered to comprise a &#x27;Value&#x27; is based on its representation as a UTF-8 encoded string. For example, if &#x27;integer_value&#x27; is set to 123456789, the number of bytes would be counted as 9, even though an int64 only holds up to 8 bytes of data. # Value to compare against. [Mandatory, except for `EXISTS` tests.]
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004891 &quot;floatValue&quot;: 3.14, # float
4892 &quot;integerValue&quot;: &quot;A String&quot;, # integer
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004893 &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # date
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004894 &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
4895 &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004896 &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004897 },
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004898 &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004899 &quot;stringValue&quot;: &quot;A String&quot;, # string
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004900 &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # time of day
4901 &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004902 &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004903 &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
4904 &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004905 },
Yoshi Automation Botc2228be2020-11-24 15:48:03 -08004906 &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
4907 &quot;booleanValue&quot;: True or False, # boolean
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004908 },
4909 &quot;operator&quot;: &quot;A String&quot;, # Required. Operator used to compare the field or infoType to the value.
Bu Sun Kim673ec5c2020-11-16 11:05:03 -07004910 },
4911 ],
4912 },
4913 },
4914 },
Bu Sun Kim65020912020-05-20 12:08:20 -07004915 },
4916 ],
Dan O'Mearadd494642020-05-01 07:42:23 -07004917 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004918 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07004919 }</pre>
4920</div>
4921
4922</body></html>