docs: update generated docs (#981)

diff --git a/docs/dyn/dlp_v2.projects.locations.jobTriggers.html b/docs/dyn/dlp_v2.projects.locations.jobTriggers.html
index 37ceec2..f690677 100644
--- a/docs/dyn/dlp_v2.projects.locations.jobTriggers.html
+++ b/docs/dyn/dlp_v2.projects.locations.jobTriggers.html
@@ -78,7 +78,7 @@
   <code><a href="#activate">activate(name, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Activate a job trigger. Causes the immediate execute of a trigger</p>
 <p class="toc_element">
-  <code><a href="#create">create(parent, locationId, body=None, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a job trigger to run DLP actions such as scanning storage for</p>
 <p class="toc_element">
   <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
@@ -90,7 +90,7 @@
   <code><a href="#hybridInspect">hybridInspect(name, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Inspect hybrid content and store findings to a trigger. The inspection</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, locationId, orderBy=None, pageToken=None, pageSize=None, filter=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, locationId=None, pageToken=None, filter=None, pageSize=None, orderBy=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists job triggers.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -122,1023 +122,512 @@
   An object of the form:
 
     { # Combines all of the information about a DLP job.
-    &quot;type&quot;: &quot;A String&quot;, # The type of job.
-    &quot;endTime&quot;: &quot;A String&quot;, # Time when the job finished.
-    &quot;startTime&quot;: &quot;A String&quot;, # Time when the job started.
-    &quot;inspectDetails&quot;: { # The results of an inspect DataSource job. # Results from inspecting a data source.
-      &quot;requestedOptions&quot;: { # Snapshot of the inspection configuration. # The configuration used for this job.
-        &quot;snapshotInspectTemplate&quot;: { # The inspectTemplate contains a configuration (set of types of sensitive data # If run with an InspectTemplate, a snapshot of its state at the time of
-            # this run.
-            # to be detected) to be used anywhere you otherwise would normally specify
-            # InspectConfig. See https://cloud.google.com/dlp/docs/concepts-templates
-            # to learn more.
-          &quot;name&quot;: &quot;A String&quot;, # Output only. The template name.
-              #
-              # The template will have one of the following formats:
-              # `projects/PROJECT_ID/inspectTemplates/TEMPLATE_ID` OR
-              # `organizations/ORGANIZATION_ID/inspectTemplates/TEMPLATE_ID`;
-          &quot;description&quot;: &quot;A String&quot;, # Short description (max 256 chars).
-          &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 256 chars).
-          &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # The core content of the template. Configuration of the scanning process.
-              # When used with redactContent only info_types and min_likelihood are currently
-              # used.
-            &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
-                # POSSIBLE.
-                # See https://cloud.google.com/dlp/docs/likelihood to learn more.
-            &quot;contentOptions&quot;: [ # List of options defining data content to scan.
-                # If empty, text, images, and other content will be included.
-              &quot;A String&quot;,
-            ],
-            &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
-                # InfoType values returned by ListInfoTypes or listed at
-                # https://cloud.google.com/dlp/docs/infotypes-reference.
-                #
-                # When no InfoTypes or CustomInfoTypes are specified in a request, the
-                # system may automatically choose what detectors to run. By default this may
-                # be all types, but may change over time as detectors are updated.
-                #
-                # If you need precise control and predictability as to what detectors are
-                # run you should specify specific InfoTypes listed in the reference,
-                # otherwise a default list will be used, which may change over time.
-              { # Type of information detected by the API.
-                &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. InfoType names should conform to the pattern
-                    # `[a-zA-Z0-9_]{1,64}`.
-              },
-            ],
-            &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
-            &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
-                # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
-              { # Custom information type provided by the user. Used to find domain-specific
-                  # sensitive information configurable to the data in question.
-                &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
-                    # support reversing.
-                    # such as
-                    # [`CryptoReplaceFfxFpeConfig`](/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
-                    # These types of transformations are
-                    # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
-                    # output. This should be used in conjunction with a field on the
-                    # transformation such as `surrogate_info_type`. This CustomInfoType does
-                    # not support the use of `detection_rules`.
-                },
-                &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
-                    # altered by a detection rule if the finding meets the criteria specified by
-                    # the rule. Defaults to `VERY_LIKELY` if not specified.
-                &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
-                    # infoType, when the name matches one of existing infoTypes and that infoType
-                    # is specified in `InspectContent.info_types` field. Specifying the latter
-                    # adds findings to the one detected by the system. If built-in info type is
-                    # not specified in `InspectContent.info_types` list then the name is treated
-                    # as a custom info type.
-                  &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. InfoType names should conform to the pattern
-                      # `[a-zA-Z0-9_]{1,64}`.
-                },
-                &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
-                  &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                      # specified, the entire match is returned. No more than 3 may be included.
-                    42,
-                  ],
-                  &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                      # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                      # google/re2 repository on GitHub.
-                },
-                &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
-                    # Rules are applied in order that they are specified. Not supported for the
-                    # `surrogate_type` CustomInfoType.
-                  { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
-                      # `CustomInfoType` to alter behavior under certain circumstances, depending
-                      # on the specific details of the rule. Not supported for the `surrogate_type`
-                      # custom infoType.
-                    &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                        # proximity of hotwords.
-                      &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                          # part of a detection rule.
-                        &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                            # levels. For example, if a finding would be `POSSIBLE` without the
-                            # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                            # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                            # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                            # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                            # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                            # a final likelihood of `LIKELY`.
-                        &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                      },
-                      &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                            # specified, the entire match is returned. No more than 3 may be included.
-                          42,
-                        ],
-                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                            # google/re2 repository on GitHub.
-                      },
-                      &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                          # The total length of the window cannot exceed 1000 characters. Note that
-                          # the finding itself will be included in the window, so that hotwords may
-                          # be used to match substrings of the finding itself. For example, the
-                          # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                          # adjusted upwards if the area code is known to be the local area code of
-                          # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                          # is the area code in question.
-                          # rule.
-                        &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                        &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                      },
-                    },
-                  },
-                ],
-                &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
-                    # to be returned. It still can be used for rules matching.
-                &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
-                    # be used to match sensitive information specific to the data, such as a list
-                    # of employee IDs or job titles.
-                    #
-                    # Dictionary words are case-insensitive and all characters other than letters
-                    # and digits in the unicode [Basic Multilingual
-                    # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                    # will be replaced with whitespace when scanning for matches, so the
-                    # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                    # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                    # surrounding any match must be of a different type than the adjacent
-                    # characters within the word, so letters must be next to non-letters and
-                    # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                    # match the first three letters of the text &quot;jen123&quot; but will return no
-                    # matches for &quot;jennifer&quot;.
-                    #
-                    # Dictionary words containing a large number of characters that are not
-                    # letters or digits may result in unexpected findings because such characters
-                    # are treated as whitespace. The
-                    # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                    # the size limits of dictionaries. For dictionaries that do not fit within
-                    # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                    # `StoredInfoType` API.
-                  &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                    &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                        # at least one phrase and every phrase must contain at least 2 characters
-                        # that are letters or digits. [required]
-                      &quot;A String&quot;,
-                    ],
-                  },
-                  &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                      # is accepted.
-                    &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                        # Example: gs://[BUCKET_NAME]/dictionary.txt
-                  },
-                },
-                &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
-                    # `InspectDataSource`. Not currently supported in `InspectContent`.
-                  &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
-                      # `organizations/433245324/storedInfoTypes/432452342` or
-                      # `projects/project-id/storedInfoTypes/432452342`.
-                  &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
-                      # inspection was created. Output-only field, populated by the system.
-                },
-              },
-            ],
-            &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
-                # included in the response; see Finding.quote.
-            &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
-                # Exclusion rules, contained in the set are executed in the end, other
-                # rules are executed in the order they are specified for each info type.
-              { # Rule set for modifying a set of infoTypes to alter behavior under certain
-                  # circumstances, depending on the specific details of the rules within the set.
-                &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
-                  { # Type of information detected by the API.
-                    &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. InfoType names should conform to the pattern
-                        # `[a-zA-Z0-9_]{1,64}`.
-                  },
-                ],
-                &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
-                  { # A single inspection rule to be applied to infoTypes, specified in
-                      # `InspectionRuleSet`.
-                    &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                        # proximity of hotwords.
-                      &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                          # part of a detection rule.
-                        &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                            # levels. For example, if a finding would be `POSSIBLE` without the
-                            # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                            # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                            # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                            # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                            # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                            # a final likelihood of `LIKELY`.
-                        &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                      },
-                      &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                            # specified, the entire match is returned. No more than 3 may be included.
-                          42,
-                        ],
-                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                            # google/re2 repository on GitHub.
-                      },
-                      &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                          # The total length of the window cannot exceed 1000 characters. Note that
-                          # the finding itself will be included in the window, so that hotwords may
-                          # be used to match substrings of the finding itself. For example, the
-                          # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                          # adjusted upwards if the area code is known to be the local area code of
-                          # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                          # is the area code in question.
-                          # rule.
-                        &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                        &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                      },
-                    },
-                    &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
-                        # `InspectionRuleSet` are removed from results.
-                      &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
-                          # be used to match sensitive information specific to the data, such as a list
-                          # of employee IDs or job titles.
-                          #
-                          # Dictionary words are case-insensitive and all characters other than letters
-                          # and digits in the unicode [Basic Multilingual
-                          # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                          # will be replaced with whitespace when scanning for matches, so the
-                          # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                          # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                          # surrounding any match must be of a different type than the adjacent
-                          # characters within the word, so letters must be next to non-letters and
-                          # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                          # match the first three letters of the text &quot;jen123&quot; but will return no
-                          # matches for &quot;jennifer&quot;.
-                          #
-                          # Dictionary words containing a large number of characters that are not
-                          # letters or digits may result in unexpected findings because such characters
-                          # are treated as whitespace. The
-                          # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                          # the size limits of dictionaries. For dictionaries that do not fit within
-                          # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                          # `StoredInfoType` API.
-                        &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                          &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                              # at least one phrase and every phrase must contain at least 2 characters
-                              # that are letters or digits. [required]
-                            &quot;A String&quot;,
-                          ],
-                        },
-                        &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                            # is accepted.
-                          &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                              # Example: gs://[BUCKET_NAME]/dictionary.txt
-                        },
-                      },
-                      &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
-                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                            # specified, the entire match is returned. No more than 3 may be included.
-                          42,
-                        ],
-                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                            # google/re2 repository on GitHub.
-                      },
-                      &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
-                        &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
-                            # contained within with a finding of an infoType from this list. For
-                            # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
-                            # `exclusion_rule` containing `exclude_info_types.info_types` with
-                            # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
-                            # with EMAIL_ADDRESS finding.
-                            # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
-                            # finding, namely email address.
-                          { # Type of information detected by the API.
-                            &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. InfoType names should conform to the pattern
-                                # `[a-zA-Z0-9_]{1,64}`.
-                          },
-                        ],
-                      },
-                      &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
-                    },
-                  },
-                ],
-              },
-            ],
-            &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
-              &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
-                  # When set within `InspectJobConfig`,
-                  # the maximum returned is 2000 regardless if this is set higher.
-                  # When set within `InspectContentRequest`, this field is ignored.
-              &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
-                { # Max findings configuration per infoType, per content item or long
-                    # running DlpJob.
-                  &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
-                  &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
-                      # info_type should be provided. If InfoTypeLimit does not have an
-                      # info_type, the DLP API applies the limit against all info_types that
-                      # are found but not specified in another InfoTypeLimit.
-                    &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. InfoType names should conform to the pattern
-                        # `[a-zA-Z0-9_]{1,64}`.
-                  },
-                },
-              ],
-              &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
-                  # When set within `InspectContentRequest`, the maximum returned is 2000
-                  # regardless if this is set higher.
-            },
-          },
-          &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of an inspectTemplate.
-          &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of an inspectTemplate.
-        },
-        &quot;jobConfig&quot;: { # Controls what and how to inspect for findings. # Inspect config.
-          &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # How and what to scan for.
-              # When used with redactContent only info_types and min_likelihood are currently
-              # used.
-            &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
-                # POSSIBLE.
-                # See https://cloud.google.com/dlp/docs/likelihood to learn more.
-            &quot;contentOptions&quot;: [ # List of options defining data content to scan.
-                # If empty, text, images, and other content will be included.
-              &quot;A String&quot;,
-            ],
-            &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
-                # InfoType values returned by ListInfoTypes or listed at
-                # https://cloud.google.com/dlp/docs/infotypes-reference.
-                #
-                # When no InfoTypes or CustomInfoTypes are specified in a request, the
-                # system may automatically choose what detectors to run. By default this may
-                # be all types, but may change over time as detectors are updated.
-                #
-                # If you need precise control and predictability as to what detectors are
-                # run you should specify specific InfoTypes listed in the reference,
-                # otherwise a default list will be used, which may change over time.
-              { # Type of information detected by the API.
-                &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. InfoType names should conform to the pattern
-                    # `[a-zA-Z0-9_]{1,64}`.
-              },
-            ],
-            &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
-            &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
-                # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
-              { # Custom information type provided by the user. Used to find domain-specific
-                  # sensitive information configurable to the data in question.
-                &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
-                    # support reversing.
-                    # such as
-                    # [`CryptoReplaceFfxFpeConfig`](/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
-                    # These types of transformations are
-                    # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
-                    # output. This should be used in conjunction with a field on the
-                    # transformation such as `surrogate_info_type`. This CustomInfoType does
-                    # not support the use of `detection_rules`.
-                },
-                &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
-                    # altered by a detection rule if the finding meets the criteria specified by
-                    # the rule. Defaults to `VERY_LIKELY` if not specified.
-                &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
-                    # infoType, when the name matches one of existing infoTypes and that infoType
-                    # is specified in `InspectContent.info_types` field. Specifying the latter
-                    # adds findings to the one detected by the system. If built-in info type is
-                    # not specified in `InspectContent.info_types` list then the name is treated
-                    # as a custom info type.
-                  &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. InfoType names should conform to the pattern
-                      # `[a-zA-Z0-9_]{1,64}`.
-                },
-                &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
-                  &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                      # specified, the entire match is returned. No more than 3 may be included.
-                    42,
-                  ],
-                  &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                      # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                      # google/re2 repository on GitHub.
-                },
-                &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
-                    # Rules are applied in order that they are specified. Not supported for the
-                    # `surrogate_type` CustomInfoType.
-                  { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
-                      # `CustomInfoType` to alter behavior under certain circumstances, depending
-                      # on the specific details of the rule. Not supported for the `surrogate_type`
-                      # custom infoType.
-                    &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                        # proximity of hotwords.
-                      &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                          # part of a detection rule.
-                        &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                            # levels. For example, if a finding would be `POSSIBLE` without the
-                            # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                            # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                            # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                            # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                            # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                            # a final likelihood of `LIKELY`.
-                        &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                      },
-                      &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                            # specified, the entire match is returned. No more than 3 may be included.
-                          42,
-                        ],
-                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                            # google/re2 repository on GitHub.
-                      },
-                      &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                          # The total length of the window cannot exceed 1000 characters. Note that
-                          # the finding itself will be included in the window, so that hotwords may
-                          # be used to match substrings of the finding itself. For example, the
-                          # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                          # adjusted upwards if the area code is known to be the local area code of
-                          # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                          # is the area code in question.
-                          # rule.
-                        &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                        &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                      },
-                    },
-                  },
-                ],
-                &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
-                    # to be returned. It still can be used for rules matching.
-                &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
-                    # be used to match sensitive information specific to the data, such as a list
-                    # of employee IDs or job titles.
-                    #
-                    # Dictionary words are case-insensitive and all characters other than letters
-                    # and digits in the unicode [Basic Multilingual
-                    # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                    # will be replaced with whitespace when scanning for matches, so the
-                    # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                    # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                    # surrounding any match must be of a different type than the adjacent
-                    # characters within the word, so letters must be next to non-letters and
-                    # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                    # match the first three letters of the text &quot;jen123&quot; but will return no
-                    # matches for &quot;jennifer&quot;.
-                    #
-                    # Dictionary words containing a large number of characters that are not
-                    # letters or digits may result in unexpected findings because such characters
-                    # are treated as whitespace. The
-                    # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                    # the size limits of dictionaries. For dictionaries that do not fit within
-                    # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                    # `StoredInfoType` API.
-                  &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                    &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                        # at least one phrase and every phrase must contain at least 2 characters
-                        # that are letters or digits. [required]
-                      &quot;A String&quot;,
-                    ],
-                  },
-                  &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                      # is accepted.
-                    &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                        # Example: gs://[BUCKET_NAME]/dictionary.txt
-                  },
-                },
-                &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
-                    # `InspectDataSource`. Not currently supported in `InspectContent`.
-                  &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
-                      # `organizations/433245324/storedInfoTypes/432452342` or
-                      # `projects/project-id/storedInfoTypes/432452342`.
-                  &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
-                      # inspection was created. Output-only field, populated by the system.
-                },
-              },
-            ],
-            &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
-                # included in the response; see Finding.quote.
-            &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
-                # Exclusion rules, contained in the set are executed in the end, other
-                # rules are executed in the order they are specified for each info type.
-              { # Rule set for modifying a set of infoTypes to alter behavior under certain
-                  # circumstances, depending on the specific details of the rules within the set.
-                &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
-                  { # Type of information detected by the API.
-                    &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. InfoType names should conform to the pattern
-                        # `[a-zA-Z0-9_]{1,64}`.
-                  },
-                ],
-                &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
-                  { # A single inspection rule to be applied to infoTypes, specified in
-                      # `InspectionRuleSet`.
-                    &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                        # proximity of hotwords.
-                      &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                          # part of a detection rule.
-                        &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                            # levels. For example, if a finding would be `POSSIBLE` without the
-                            # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                            # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                            # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                            # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                            # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                            # a final likelihood of `LIKELY`.
-                        &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                      },
-                      &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                            # specified, the entire match is returned. No more than 3 may be included.
-                          42,
-                        ],
-                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                            # google/re2 repository on GitHub.
-                      },
-                      &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                          # The total length of the window cannot exceed 1000 characters. Note that
-                          # the finding itself will be included in the window, so that hotwords may
-                          # be used to match substrings of the finding itself. For example, the
-                          # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                          # adjusted upwards if the area code is known to be the local area code of
-                          # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                          # is the area code in question.
-                          # rule.
-                        &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                        &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                      },
-                    },
-                    &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
-                        # `InspectionRuleSet` are removed from results.
-                      &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
-                          # be used to match sensitive information specific to the data, such as a list
-                          # of employee IDs or job titles.
-                          #
-                          # Dictionary words are case-insensitive and all characters other than letters
-                          # and digits in the unicode [Basic Multilingual
-                          # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                          # will be replaced with whitespace when scanning for matches, so the
-                          # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                          # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                          # surrounding any match must be of a different type than the adjacent
-                          # characters within the word, so letters must be next to non-letters and
-                          # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                          # match the first three letters of the text &quot;jen123&quot; but will return no
-                          # matches for &quot;jennifer&quot;.
-                          #
-                          # Dictionary words containing a large number of characters that are not
-                          # letters or digits may result in unexpected findings because such characters
-                          # are treated as whitespace. The
-                          # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                          # the size limits of dictionaries. For dictionaries that do not fit within
-                          # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                          # `StoredInfoType` API.
-                        &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                          &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                              # at least one phrase and every phrase must contain at least 2 characters
-                              # that are letters or digits. [required]
-                            &quot;A String&quot;,
-                          ],
-                        },
-                        &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                            # is accepted.
-                          &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                              # Example: gs://[BUCKET_NAME]/dictionary.txt
-                        },
-                      },
-                      &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
-                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                            # specified, the entire match is returned. No more than 3 may be included.
-                          42,
-                        ],
-                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                            # google/re2 repository on GitHub.
-                      },
-                      &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
-                        &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
-                            # contained within with a finding of an infoType from this list. For
-                            # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
-                            # `exclusion_rule` containing `exclude_info_types.info_types` with
-                            # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
-                            # with EMAIL_ADDRESS finding.
-                            # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
-                            # finding, namely email address.
-                          { # Type of information detected by the API.
-                            &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. InfoType names should conform to the pattern
-                                # `[a-zA-Z0-9_]{1,64}`.
-                          },
-                        ],
-                      },
-                      &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
-                    },
-                  },
-                ],
-              },
-            ],
-            &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
-              &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
-                  # When set within `InspectJobConfig`,
-                  # the maximum returned is 2000 regardless if this is set higher.
-                  # When set within `InspectContentRequest`, this field is ignored.
-              &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
-                { # Max findings configuration per infoType, per content item or long
-                    # running DlpJob.
-                  &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
-                  &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
-                      # info_type should be provided. If InfoTypeLimit does not have an
-                      # info_type, the DLP API applies the limit against all info_types that
-                      # are found but not specified in another InfoTypeLimit.
-                    &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. InfoType names should conform to the pattern
-                        # `[a-zA-Z0-9_]{1,64}`.
-                  },
-                },
-              ],
-              &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
-                  # When set within `InspectContentRequest`, the maximum returned is 2000
-                  # regardless if this is set higher.
-            },
-          },
-          &quot;actions&quot;: [ # Actions to execute at the completion of the job.
-            { # A task to execute on the completion of a job.
-                # See https://cloud.google.com/dlp/docs/concepts-actions to learn more.
-              &quot;publishSummaryToCscc&quot;: { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha).
-                  # Command Center (CSCC Alpha).
-                  # This action is only available for projects which are parts of
-                  # an organization and whitelisted for the alpha Cloud Security Command
-                  # Center.
-                  # The action will publish count of finding instances and their info types.
-                  # The summary of findings will be persisted in CSCC and are governed by CSCC
-                  # service-specific policy, see https://cloud.google.com/terms/service-terms
-                  # Only a single instance of this action can be specified.
-                  # Compatible with: Inspect
-              },
-              &quot;jobNotificationEmails&quot;: { # Enable email notification to project owners and editors on jobs&#x27;s # Enable email notification for project owners and editors on job&#x27;s
-                  # completion/failure.
-                  # completion/failure.
-              },
-              &quot;saveFindings&quot;: { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location.
-                  # OutputStorageConfig. Only a single instance of this action can be
-                  # specified.
-                  # Compatible with: Inspect, Risk
-                &quot;outputConfig&quot;: { # Cloud repository for storing output. # Location to store findings outside of DLP.
-                  &quot;table&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing
-                      # dataset. If table_id is not set a new one will be generated
-                      # for you with the following format:
-                      # dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for
-                      # generating the date details.
-                      #
-                      # For Inspect, each column in an existing output table must have the same
-                      # name, type, and mode of a field in the `Finding` object.
-                      #
-                      # For Risk, an existing output table should be the output of a previous
-                      # Risk analysis job run on the same source table, with the same privacy
-                      # metric and quasi-identifiers. Risk jobs that analyze the same table but
-                      # compute a different privacy metric, or use different sets of
-                      # quasi-identifiers, cannot store their results in the same table.
-                      # identified  by its project_id, dataset_id, and table_name. Within a query
-                      # a table is often referenced with a string in the format of:
-                      # `&lt;project_id&gt;:&lt;dataset_id&gt;.&lt;table_id&gt;` or
-                      # `&lt;project_id&gt;.&lt;dataset_id&gt;.&lt;table_id&gt;`.
-                    &quot;projectId&quot;: &quot;A String&quot;, # The Google Cloud Platform project ID of the project containing the table.
-                        # If omitted, project ID is inferred from the API call.
-                    &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
-                    &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
-                  },
-                  &quot;outputSchema&quot;: &quot;A String&quot;, # Schema used for writing the findings for Inspect jobs. This field is only
-                      # used for Inspect and must be unspecified for Risk jobs. Columns are derived
-                      # from the `Finding` object. If appending to an existing table, any columns
-                      # from the predefined schema that are missing will be added. No columns in
-                      # the existing table will be deleted.
-                      #
-                      # If unspecified, then all available columns will be used for a new table or
-                      # an (existing) table with no schema, and no changes will be made to an
-                      # existing table that has a schema.
-                      # Only for use with external storage.
-                },
-              },
-              &quot;pubSub&quot;: { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic.
-                  # message contains a single field, `DlpJobName`, which is equal to the
-                  # finished job&#x27;s
-                  # [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
-                  # Compatible with: Inspect, Risk
-                &quot;topic&quot;: &quot;A String&quot;, # Cloud Pub/Sub topic to send notifications to. The topic must have given
-                    # publishing access rights to the DLP API service account executing
-                    # the long running DlpJob sending the notifications.
-                    # Format is projects/{project}/topics/{topic}.
-              },
-              &quot;publishFindingsToCloudDataCatalog&quot;: { # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the # Publish findings to Cloud Datahub.
-                  # results of the DlpJob will be applied to the entry for the resource scanned
-                  # in Cloud Data Catalog. Any labels previously written by another DlpJob will
-                  # be deleted. InfoType naming patterns are strictly enforced when using this
-                  # feature. Note that the findings will be persisted in Cloud Data Catalog
-                  # storage and are governed by Data Catalog service-specific policy, see
-                  # https://cloud.google.com/terms/service-terms
-                  # Only a single instance of this action can be specified and only allowed if
-                  # all resources being scanned are BigQuery tables.
-                  # Compatible with: Inspect
-              },
-              &quot;publishToStackdriver&quot;: { # Enable Stackdriver metric dlp.googleapis.com/finding_count. This # Enable Stackdriver metric dlp.googleapis.com/finding_count.
-                  # will publish a metric to stack driver on each infotype requested and
-                  # how many findings were found for it. CustomDetectors will be bucketed
-                  # as &#x27;Custom&#x27; under the Stackdriver label &#x27;info_type&#x27;.
-              },
+    &quot;errors&quot;: [ # A stream of errors encountered running the job.
+      { # Details information about an error encountered during job execution or
+          # the results of an unsuccessful activation of the JobTrigger.
+        &quot;timestamps&quot;: [ # The times the error occurred.
+          &quot;A String&quot;,
+        ],
+        &quot;details&quot;: { # The `Status` type defines a logical error model that is suitable for # Detailed error codes and messages.
+            # different programming environments, including REST APIs and RPC APIs. It is
+            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+            # three pieces of data: error code, error message, and error details.
+            #
+            # You can find out more about this error model and how to work with it in the
+            # [API Design Guide](https://cloud.google.com/apis/design/errors).
+          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+          &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
+              # message types for APIs to use.
+            {
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
             },
           ],
-          &quot;storageConfig&quot;: { # Shared message indicating Cloud storage type. # The data to scan.
-            &quot;hybridOptions&quot;: { # Configuration to control jobs where the content being inspected is outside # Hybrid inspection options.
-                # Early access feature is in a pre-release state and might change or have
-                # limited support. For more information, see
-                # https://cloud.google.com/products#product-launch-stages.
-                # of Google Cloud Platform.
-              &quot;labels&quot;: { # To organize findings, these labels will be added to each finding.
-                  #
-                  # Label keys must be between 1 and 63 characters long and must conform
-                  # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
-                  #
-                  # Label values must be between 0 and 63 characters long and must conform
-                  # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
-                  #
-                  # No more than 10 labels can be associated with a given finding.
-                  #
-                  # Examples:
-                  # * `&quot;environment&quot; : &quot;production&quot;`
-                  # * `&quot;pipeline&quot; : &quot;etl&quot;`
-                &quot;a_key&quot;: &quot;A String&quot;,
-              },
-              &quot;description&quot;: &quot;A String&quot;, # A short description of where the data is coming from. Will be stored once
-                  # in the job. 256 max length.
-              &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
-                  # meaningful such as the columns that are primary keys.
-                &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
-                    # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
-                    # each finding so that the finding can be traced to the specific row it came
-                    # from. No more than 3 may be provided.
-                  { # General identifier of a data field in a storage service.
-                    &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+          &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+        },
+      },
+    ],
+    &quot;createTime&quot;: &quot;A String&quot;, # Time when the job was created.
+    &quot;state&quot;: &quot;A String&quot;, # State of a job.
+    &quot;riskDetails&quot;: { # Result of a risk analysis operation request. # Results from analyzing risk of a data source.
+      &quot;kMapEstimationResult&quot;: { # Result of the reidentifiability analysis. Note that these results are an # K-map result
+          # estimation, not exact values.
+        &quot;kMapEstimationHistogram&quot;: [ # The intervals [min_anonymity, max_anonymity] do not overlap. If a value
+            # doesn&#x27;t correspond to any such interval, the associated frequency is
+            # zero. For example, the following records:
+            #   {min_anonymity: 1, max_anonymity: 1, frequency: 17}
+            #   {min_anonymity: 2, max_anonymity: 3, frequency: 42}
+            #   {min_anonymity: 5, max_anonymity: 10, frequency: 99}
+            # mean that there are no record with an estimated anonymity of 4, 5, or
+            # larger than 10.
+          { # A KMapEstimationHistogramBucket message with the following values:
+              #   min_anonymity: 3
+              #   max_anonymity: 5
+              #   frequency: 42
+              # means that there are 42 records whose quasi-identifier values correspond
+              # to 3, 4 or 5 people in the overlying population. An important particular
+              # case is when min_anonymity = max_anonymity = 1: the frequency field then
+              # corresponds to the number of uniquely identifiable records.
+            &quot;maxAnonymity&quot;: &quot;A String&quot;, # Always greater than or equal to min_anonymity.
+            &quot;bucketSize&quot;: &quot;A String&quot;, # Number of records within these anonymity bounds.
+            &quot;bucketValueCount&quot;: &quot;A String&quot;, # Total number of distinct quasi-identifier tuple values in this bucket.
+            &quot;bucketValues&quot;: [ # Sample of quasi-identifier tuple values in this bucket. The total
+                # number of classes returned per bucket is capped at 20.
+              { # A tuple of values for the quasi-identifier columns.
+                &quot;estimatedAnonymity&quot;: &quot;A String&quot;, # The estimated anonymity for these quasi-identifier values.
+                &quot;quasiIdsValues&quot;: [ # The quasi-identifier values.
+                  { # 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.
+                    &quot;integerValue&quot;: &quot;A String&quot;, # integer
+                    &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
+                        # or are specified elsewhere. An API may choose to allow leap seconds. Related
+                        # types are google.type.Date and `google.protobuf.Timestamp`.
+                      &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.
+                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+                      &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.
+                    },
+                    &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
+                    &quot;floatValue&quot;: 3.14, # float
+                    &quot;stringValue&quot;: &quot;A String&quot;, # string
+                    &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
+                    &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
+                        # and time zone are either specified elsewhere or are not significant. The date
+                        # is relative to the Proleptic Gregorian Calendar. This can represent:
+                        #
+                        # * A full date, with non-zero year, month and day values
+                        # * A month and day value, with a zero year, e.g. an anniversary
+                        # * A year on its own, with zero month and day values
+                        # * A year and month value, with a zero day, e.g. a credit card expiration date
+                        #
+                        # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
+                      &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
+                          # month and day.
+                      &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                          # a year.
+                      &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                          # if specifying a year by itself or a year and month where the day is not
+                          # significant.
+                    },
+                    &quot;booleanValue&quot;: True or False, # boolean
                   },
                 ],
               },
-              &quot;requiredFindingLabelKeys&quot;: [ # These are labels that each inspection request must include within their
-                  # &#x27;finding_labels&#x27; map. Request may contain others, but any missing one of
-                  # these will be rejected.
-                  #
-                  # Label keys must be between 1 and 63 characters long and must conform
-                  # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
-                  #
-                  # No more than 10 keys can be required.
-                &quot;A String&quot;,
-              ],
-            },
-            &quot;datastoreOptions&quot;: { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options.
-              &quot;partitionId&quot;: { # Datastore partition ID. # A partition ID identifies a grouping of entities. The grouping is always
-                  # by project and namespace, however the namespace ID may be empty.
-                  # A partition ID identifies a grouping of entities. The grouping is always
-                  # by project and namespace, however the namespace ID may be empty.
-                  #
-                  # A partition ID contains several dimensions:
-                  # project ID and namespace ID.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-              },
-              &quot;kind&quot;: { # A representation of a Datastore kind. # The kind to process.
-                &quot;name&quot;: &quot;A String&quot;, # The name of the kind.
-              },
-            },
-            &quot;timespanConfig&quot;: { # Configuration of the timespan of the items to include in scanning.
-                # Currently only supported when inspecting Google Cloud Storage and BigQuery.
-              &quot;timestampField&quot;: { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items.
-                  # Used for data sources like Datastore and BigQuery.
-                  #
-                  # For BigQuery:
-                  # Required to filter out rows based on the given start and
-                  # end times. If not specified and the table was modified between the given
-                  # start and end times, the entire table will be scanned.
-                  # The valid data types of the timestamp field are: `INTEGER`, `DATE`,
-                  # `TIMESTAMP`, or `DATETIME` BigQuery column.
-                  #
-                  # For Datastore.
-                  # Valid data types of the timestamp field are: `TIMESTAMP`.
-                  # Datastore entity will be scanned if the timestamp property does not
-                  # exist or its value is empty or invalid.
-                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-              },
-              &quot;enableAutoPopulationOfTimespanConfig&quot;: True or False, # When the job is started by a JobTrigger we will automatically figure out
-                  # a valid start_time to avoid scanning files that have not been modified
-                  # since the last time the JobTrigger executed. This will be based on the
-                  # time of the execution of the last run of the JobTrigger.
-              &quot;endTime&quot;: &quot;A String&quot;, # Exclude files or rows newer than this value.
-                  # If set to zero, no upper time limit is applied.
-              &quot;startTime&quot;: &quot;A String&quot;, # Exclude files or rows older than this value.
-            },
-            &quot;cloudStorageOptions&quot;: { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options.
-                # bucket.
-              &quot;bytesLimitPerFile&quot;: &quot;A String&quot;, # Max number of bytes to scan from a file. If a scanned file&#x27;s size is bigger
-                  # than this value then the rest of the bytes are omitted. Only one
-                  # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
-              &quot;fileSet&quot;: { # Set of files to scan. # The set of one or more files to scan.
-                &quot;regexFileSet&quot;: { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or
-                    # `regex_file_set` must be set.
-                    # expressions are used to allow fine-grained control over which files in the
-                    # bucket to include.
-                    #
-                    # Included files are those that match at least one item in `include_regex` and
-                    # do not match any items in `exclude_regex`. Note that a file that matches
-                    # items from both lists will _not_ be included. For a match to occur, the
-                    # entire file path (i.e., everything in the url after the bucket name) must
-                    # match the regular expression.
-                    #
-                    # For example, given the input `{bucket_name: &quot;mybucket&quot;, include_regex:
-                    # [&quot;directory1/.*&quot;], exclude_regex:
-                    # [&quot;directory1/excluded.*&quot;]}`:
-                    #
-                    # * `gs://mybucket/directory1/myfile` will be included
-                    # * `gs://mybucket/directory1/directory2/myfile` will be included (`.*` matches
-                    # across `/`)
-                    # * `gs://mybucket/directory0/directory1/myfile` will _not_ be included (the
-                    # full path doesn&#x27;t match any items in `include_regex`)
-                    # * `gs://mybucket/directory1/excludedfile` will _not_ be included (the path
-                    # matches an item in `exclude_regex`)
-                    #
-                    # If `include_regex` is left empty, it will match all files by default
-                    # (this is equivalent to setting `include_regex: [&quot;.*&quot;]`).
-                    #
-                    # Some other common use cases:
-                    #
-                    # * `{bucket_name: &quot;mybucket&quot;, exclude_regex: [&quot;.*\.pdf&quot;]}` will include all
-                    # files in `mybucket` except for .pdf files
-                    # * `{bucket_name: &quot;mybucket&quot;, include_regex: [&quot;directory/[^/]+&quot;]}` will
-                    # include all files directly under `gs://mybucket/directory/`, without matching
-                    # across `/`
-                  &quot;bucketName&quot;: &quot;A String&quot;, # The name of a Cloud Storage bucket. Required.
-                  &quot;includeRegex&quot;: [ # A list of regular expressions matching file paths to include. All files in
-                      # the bucket that match at least one of these regular expressions will be
-                      # included in the set of files, except for those that also match an item in
-                      # `exclude_regex`. Leaving this field empty will match all files by default
-                      # (this is equivalent to including `.*` in the list).
-                      #
-                      # Regular expressions use RE2
-                      # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
-                      # under the google/re2 repository on GitHub.
-                    &quot;A String&quot;,
-                  ],
-                  &quot;excludeRegex&quot;: [ # A list of regular expressions matching file paths to exclude. All files in
-                      # the bucket that match at least one of these regular expressions will be
-                      # excluded from the scan.
-                      #
-                      # Regular expressions use RE2
-                      # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
-                      # under the google/re2 repository on GitHub.
-                    &quot;A String&quot;,
-                  ],
-                },
-                &quot;url&quot;: &quot;A String&quot;, # The Cloud Storage url of the file(s) to scan, in the format
-                    # `gs://&lt;bucket&gt;/&lt;path&gt;`. Trailing wildcard in the path is allowed.
-                    #
-                    # If the url ends in a trailing slash, the bucket or directory represented
-                    # by the url will be scanned non-recursively (content in sub-directories
-                    # will not be scanned). This means that `gs://mybucket/` is equivalent to
-                    # `gs://mybucket/*`, and `gs://mybucket/directory/` is equivalent to
-                    # `gs://mybucket/directory/*`.
-                    #
-                    # Exactly one of `url` or `regex_file_set` must be set.
-              },
-              &quot;filesLimitPercent&quot;: 42, # Limits the number of files to scan to this percentage of the input FileSet.
-                  # Number of files scanned is rounded down. Must be between 0 and 100,
-                  # inclusively. Both 0 and 100 means no limit. Defaults to 0.
-              &quot;fileTypes&quot;: [ # List of file type groups to include in the scan.
-                  # If empty, all files are scanned and available data format processors
-                  # are applied. In addition, the binary content of the selected files
-                  # is always scanned as well.
-                  # Images are scanned only as binary if the specified region
-                  # does not support image inspection and no file_types were specified.
-                  # Image inspection is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;, and &#x27;europe&#x27;.
-                &quot;A String&quot;,
-              ],
-              &quot;sampleMethod&quot;: &quot;A String&quot;,
-              &quot;bytesLimitPerFilePercent&quot;: 42, # Max percentage of bytes to scan from a file. The rest are omitted. The
-                  # number of bytes scanned is rounded down. Must be between 0 and 100,
-                  # inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one
-                  # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
-            },
-            &quot;bigQueryOptions&quot;: { # Options defining BigQuery table and row identifiers. # BigQuery options.
-              &quot;tableReference&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference.
-                  # identified  by its project_id, dataset_id, and table_name. Within a query
-                  # a table is often referenced with a string in the format of:
-                  # `&lt;project_id&gt;:&lt;dataset_id&gt;.&lt;table_id&gt;` or
-                  # `&lt;project_id&gt;.&lt;dataset_id&gt;.&lt;table_id&gt;`.
-                &quot;projectId&quot;: &quot;A String&quot;, # The Google Cloud Platform project ID of the project containing the table.
-                    # If omitted, project ID is inferred from the API call.
-                &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
-                &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
-              },
-              &quot;identifyingFields&quot;: [ # Table fields that may uniquely identify a row within the table. When
-                  # `actions.saveFindings.outputConfig.table` is specified, the values of
-                  # columns specified here are available in the output table under
-                  # `location.content_locations.record_location.record_key.id_values`. Nested
-                  # fields such as `person.birthdate.year` are allowed.
-                { # General identifier of a data field in a storage service.
-                  &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-                },
-              ],
-              &quot;rowsLimitPercent&quot;: 42, # Max percentage of rows to scan. The rest are omitted. The number of rows
-                  # scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and
-                  # 100 means no limit. Defaults to 0. Only one of rows_limit and
-                  # rows_limit_percent can be specified. Cannot be used in conjunction with
-                  # TimespanConfig.
-              &quot;rowsLimit&quot;: &quot;A String&quot;, # Max number of rows to scan. If the table has more rows than this value, the
-                  # rest of the rows are omitted. If not set, or if set to 0, all rows will be
-                  # scanned. Only one of rows_limit and rows_limit_percent can be specified.
-                  # Cannot be used in conjunction with TimespanConfig.
-              &quot;excludedFields&quot;: [ # References to fields excluded from scanning. This allows you to skip
-                  # inspection of entire columns which you know have no findings.
-                { # General identifier of a data field in a storage service.
-                  &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-                },
-              ],
-              &quot;sampleMethod&quot;: &quot;A String&quot;,
-            },
-          },
-          &quot;inspectTemplateName&quot;: &quot;A String&quot;, # If provided, will be used as the default for all values in InspectConfig.
-              # `inspect_config` will be merged into the values persisted as part of the
-              # template.
-        },
-      },
-      &quot;result&quot;: { # All result fields mentioned below are updated while the job is processing. # A summary of the outcome of this inspect job.
-        &quot;processedBytes&quot;: &quot;A String&quot;, # Total size in bytes that were processed.
-        &quot;hybridStats&quot;: { # Statistics related to processing hybrid inspect requests. # Statistics related to the processing of hybrid inspect.
-            # Early access feature is in a pre-release state and might change or have
-            # limited support. For more information, see
-            # https://cloud.google.com/products#product-launch-stages.
-          &quot;pendingCount&quot;: &quot;A String&quot;, # The number of hybrid requests currently being processed. Only populated
-              # when called via method `getDlpJob`.
-              # A burst of traffic may cause hybrid inspect requests to be enqueued.
-              # Processing will take place as quickly as possible, but resource limitations
-              # may impact how long a request is enqueued for.
-          &quot;processedCount&quot;: &quot;A String&quot;, # The number of hybrid inspection requests processed within this job.
-          &quot;abortedCount&quot;: &quot;A String&quot;, # The number of hybrid inspection requests aborted because the job ran
-              # out of quota or was ended before they could be processed.
-        },
-        &quot;infoTypeStats&quot;: [ # Statistics of how many instances of each info type were found during
-            # inspect job.
-          { # Statistics regarding a specific InfoType.
-            &quot;infoType&quot;: { # Type of information detected by the API. # The type of finding this stat is for.
-              &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. InfoType names should conform to the pattern
-                  # `[a-zA-Z0-9_]{1,64}`.
-            },
-            &quot;count&quot;: &quot;A String&quot;, # Number of findings for this infoType.
+            ],
+            &quot;minAnonymity&quot;: &quot;A String&quot;, # Always positive.
           },
         ],
-        &quot;totalEstimatedBytes&quot;: &quot;A String&quot;, # Estimate of the number of bytes to process.
       },
-    },
-    &quot;createTime&quot;: &quot;A String&quot;, # Time when the job was created.
-    &quot;state&quot;: &quot;A String&quot;, # State of a job.
-    &quot;jobTriggerName&quot;: &quot;A String&quot;, # If created by a job trigger, the resource name of the trigger that
-        # instantiated the job.
-    &quot;riskDetails&quot;: { # Result of a risk analysis operation request. # Results from analyzing risk of a data source.
+      &quot;deltaPresenceEstimationResult&quot;: { # Result of the δ-presence computation. Note that these results are an # Delta-presence result
+          # estimation, not exact values.
+        &quot;deltaPresenceEstimationHistogram&quot;: [ # The intervals [min_probability, max_probability) do not overlap. If a
+            # value doesn&#x27;t correspond to any such interval, the associated frequency
+            # is zero. For example, the following records:
+            #   {min_probability: 0, max_probability: 0.1, frequency: 17}
+            #   {min_probability: 0.2, max_probability: 0.3, frequency: 42}
+            #   {min_probability: 0.3, max_probability: 0.4, frequency: 99}
+            # mean that there are no record with an estimated probability in [0.1, 0.2)
+            # nor larger or equal to 0.4.
+          { # A DeltaPresenceEstimationHistogramBucket message with the following
+              # values:
+              #   min_probability: 0.1
+              #   max_probability: 0.2
+              #   frequency: 42
+              # means that there are 42 records for which δ is in [0.1, 0.2). An
+              # important particular case is when min_probability = max_probability = 1:
+              # then, every individual who shares this quasi-identifier combination is in
+              # the dataset.
+            &quot;maxProbability&quot;: 3.14, # Always greater than or equal to min_probability.
+            &quot;bucketValueCount&quot;: &quot;A String&quot;, # Total number of distinct quasi-identifier tuple values in this bucket.
+            &quot;bucketValues&quot;: [ # Sample of quasi-identifier tuple values in this bucket. The total
+                # number of classes returned per bucket is capped at 20.
+              { # A tuple of values for the quasi-identifier columns.
+                &quot;estimatedProbability&quot;: 3.14, # The estimated probability that a given individual sharing these
+                    # quasi-identifier values is in the dataset. This value, typically called
+                    # δ, is the ratio between the number of records in the dataset with these
+                    # quasi-identifier values, and the total number of individuals (inside
+                    # *and* outside the dataset) with these quasi-identifier values.
+                    # For example, if there are 15 individuals in the dataset who share the
+                    # same quasi-identifier values, and an estimated 100 people in the entire
+                    # population with these values, then δ is 0.15.
+                &quot;quasiIdsValues&quot;: [ # The quasi-identifier values.
+                  { # 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.
+                    &quot;integerValue&quot;: &quot;A String&quot;, # integer
+                    &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
+                        # or are specified elsewhere. An API may choose to allow leap seconds. Related
+                        # types are google.type.Date and `google.protobuf.Timestamp`.
+                      &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.
+                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+                      &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.
+                    },
+                    &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
+                    &quot;floatValue&quot;: 3.14, # float
+                    &quot;stringValue&quot;: &quot;A String&quot;, # string
+                    &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
+                    &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
+                        # and time zone are either specified elsewhere or are not significant. The date
+                        # is relative to the Proleptic Gregorian Calendar. This can represent:
+                        #
+                        # * A full date, with non-zero year, month and day values
+                        # * A month and day value, with a zero year, e.g. an anniversary
+                        # * A year on its own, with zero month and day values
+                        # * A year and month value, with a zero day, e.g. a credit card expiration date
+                        #
+                        # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
+                      &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
+                          # month and day.
+                      &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                          # a year.
+                      &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                          # if specifying a year by itself or a year and month where the day is not
+                          # significant.
+                    },
+                    &quot;booleanValue&quot;: True or False, # boolean
+                  },
+                ],
+              },
+            ],
+            &quot;minProbability&quot;: 3.14, # Between 0 and 1.
+            &quot;bucketSize&quot;: &quot;A String&quot;, # Number of records within these probability bounds.
+          },
+        ],
+      },
+      &quot;categoricalStatsResult&quot;: { # Result of the categorical stats computation. # Categorical stats result
+        &quot;valueFrequencyHistogramBuckets&quot;: [ # Histogram of value frequencies in the column.
+          { # Histogram of value frequencies in the column.
+            &quot;valueFrequencyUpperBound&quot;: &quot;A String&quot;, # Upper bound on the value frequency of the values in this bucket.
+            &quot;bucketValueCount&quot;: &quot;A String&quot;, # Total number of distinct values in this bucket.
+            &quot;bucketSize&quot;: &quot;A String&quot;, # Total number of values in this bucket.
+            &quot;valueFrequencyLowerBound&quot;: &quot;A String&quot;, # Lower bound on the value frequency of the values in this bucket.
+            &quot;bucketValues&quot;: [ # Sample of value frequencies in this bucket. The total number of
+                # values returned per bucket is capped at 20.
+              { # A value of a field, including its frequency.
+                &quot;count&quot;: &quot;A String&quot;, # How many times the value is contained in the field.
+                &quot;value&quot;: { # Set of primitive values supported by the system. # A value contained in the field in question.
+                    # 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.
+                  &quot;integerValue&quot;: &quot;A String&quot;, # integer
+                  &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
+                      # or are specified elsewhere. An API may choose to allow leap seconds. Related
+                      # types are google.type.Date and `google.protobuf.Timestamp`.
+                    &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.
+                    &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+                    &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+                    &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.
+                  },
+                  &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
+                  &quot;floatValue&quot;: 3.14, # float
+                  &quot;stringValue&quot;: &quot;A String&quot;, # string
+                  &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
+                  &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
+                      # and time zone are either specified elsewhere or are not significant. The date
+                      # is relative to the Proleptic Gregorian Calendar. This can represent:
+                      #
+                      # * A full date, with non-zero year, month and day values
+                      # * A month and day value, with a zero year, e.g. an anniversary
+                      # * A year on its own, with zero month and day values
+                      # * A year and month value, with a zero day, e.g. a credit card expiration date
+                      #
+                      # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
+                    &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
+                        # month and day.
+                    &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                        # a year.
+                    &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                        # if specifying a year by itself or a year and month where the day is not
+                        # significant.
+                  },
+                  &quot;booleanValue&quot;: True or False, # boolean
+                },
+              },
+            ],
+          },
+        ],
+      },
+      &quot;numericalStatsResult&quot;: { # Result of the numerical stats computation. # Numerical stats result
+        &quot;quantileValues&quot;: [ # List of 99 values that partition the set of field values into 100 equal
+            # sized buckets.
+          { # 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.
+            &quot;integerValue&quot;: &quot;A String&quot;, # integer
+            &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
+                # or are specified elsewhere. An API may choose to allow leap seconds. Related
+                # types are google.type.Date and `google.protobuf.Timestamp`.
+              &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.
+              &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+              &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+              &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.
+            },
+            &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
+            &quot;floatValue&quot;: 3.14, # float
+            &quot;stringValue&quot;: &quot;A String&quot;, # string
+            &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
+            &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
+                # and time zone are either specified elsewhere or are not significant. The date
+                # is relative to the Proleptic Gregorian Calendar. This can represent:
+                #
+                # * A full date, with non-zero year, month and day values
+                # * A month and day value, with a zero year, e.g. an anniversary
+                # * A year on its own, with zero month and day values
+                # * A year and month value, with a zero day, e.g. a credit card expiration date
+                #
+                # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
+              &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
+                  # month and day.
+              &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                  # a year.
+              &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                  # if specifying a year by itself or a year and month where the day is not
+                  # significant.
+            },
+            &quot;booleanValue&quot;: True or False, # boolean
+          },
+        ],
+        &quot;minValue&quot;: { # Set of primitive values supported by the system. # Minimum value appearing in the column.
+            # 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.
+          &quot;integerValue&quot;: &quot;A String&quot;, # integer
+          &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
+              # or are specified elsewhere. An API may choose to allow leap seconds. Related
+              # types are google.type.Date and `google.protobuf.Timestamp`.
+            &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.
+            &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+            &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+            &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.
+          },
+          &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
+          &quot;floatValue&quot;: 3.14, # float
+          &quot;stringValue&quot;: &quot;A String&quot;, # string
+          &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
+          &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
+              # and time zone are either specified elsewhere or are not significant. The date
+              # is relative to the Proleptic Gregorian Calendar. This can represent:
+              #
+              # * A full date, with non-zero year, month and day values
+              # * A month and day value, with a zero year, e.g. an anniversary
+              # * A year on its own, with zero month and day values
+              # * A year and month value, with a zero day, e.g. a credit card expiration date
+              #
+              # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
+            &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
+                # month and day.
+            &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                # a year.
+            &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                # if specifying a year by itself or a year and month where the day is not
+                # significant.
+          },
+          &quot;booleanValue&quot;: True or False, # boolean
+        },
+        &quot;maxValue&quot;: { # Set of primitive values supported by the system. # Maximum value appearing in the column.
+            # 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.
+          &quot;integerValue&quot;: &quot;A String&quot;, # integer
+          &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
+              # or are specified elsewhere. An API may choose to allow leap seconds. Related
+              # types are google.type.Date and `google.protobuf.Timestamp`.
+            &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.
+            &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+            &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+            &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.
+          },
+          &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
+          &quot;floatValue&quot;: 3.14, # float
+          &quot;stringValue&quot;: &quot;A String&quot;, # string
+          &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
+          &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
+              # and time zone are either specified elsewhere or are not significant. The date
+              # is relative to the Proleptic Gregorian Calendar. This can represent:
+              #
+              # * A full date, with non-zero year, month and day values
+              # * A month and day value, with a zero year, e.g. an anniversary
+              # * A year on its own, with zero month and day values
+              # * A year and month value, with a zero day, e.g. a credit card expiration date
+              #
+              # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
+            &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
+                # month and day.
+            &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                # a year.
+            &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                # if specifying a year by itself or a year and month where the day is not
+                # significant.
+          },
+          &quot;booleanValue&quot;: True or False, # boolean
+        },
+      },
+      &quot;kAnonymityResult&quot;: { # Result of the k-anonymity computation. # K-anonymity result
+        &quot;equivalenceClassHistogramBuckets&quot;: [ # Histogram of k-anonymity equivalence classes.
+          { # Histogram of k-anonymity equivalence classes.
+            &quot;bucketValues&quot;: [ # Sample of equivalence classes in this bucket. The total number of
+                # classes returned per bucket is capped at 20.
+              { # The set of columns&#x27; values that share the same ldiversity value
+                &quot;quasiIdsValues&quot;: [ # Set of values defining the equivalence class. One value per
+                    # quasi-identifier column in the original KAnonymity metric message.
+                    # The order is always the same as the original request.
+                  { # 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.
+                    &quot;integerValue&quot;: &quot;A String&quot;, # integer
+                    &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
+                        # or are specified elsewhere. An API may choose to allow leap seconds. Related
+                        # types are google.type.Date and `google.protobuf.Timestamp`.
+                      &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.
+                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+                      &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.
+                    },
+                    &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
+                    &quot;floatValue&quot;: 3.14, # float
+                    &quot;stringValue&quot;: &quot;A String&quot;, # string
+                    &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
+                    &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
+                        # and time zone are either specified elsewhere or are not significant. The date
+                        # is relative to the Proleptic Gregorian Calendar. This can represent:
+                        #
+                        # * A full date, with non-zero year, month and day values
+                        # * A month and day value, with a zero year, e.g. an anniversary
+                        # * A year on its own, with zero month and day values
+                        # * A year and month value, with a zero day, e.g. a credit card expiration date
+                        #
+                        # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
+                      &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
+                          # month and day.
+                      &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                          # a year.
+                      &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                          # if specifying a year by itself or a year and month where the day is not
+                          # significant.
+                    },
+                    &quot;booleanValue&quot;: True or False, # boolean
+                  },
+                ],
+                &quot;equivalenceClassSize&quot;: &quot;A String&quot;, # Size of the equivalence class, for example number of rows with the
+                    # above set of values.
+              },
+            ],
+            &quot;equivalenceClassSizeLowerBound&quot;: &quot;A String&quot;, # Lower bound on the size of the equivalence classes in this bucket.
+            &quot;equivalenceClassSizeUpperBound&quot;: &quot;A String&quot;, # Upper bound on the size of the equivalence classes in this bucket.
+            &quot;bucketSize&quot;: &quot;A String&quot;, # Total number of equivalence classes in this bucket.
+            &quot;bucketValueCount&quot;: &quot;A String&quot;, # Total number of distinct equivalence classes in this bucket.
+          },
+        ],
+      },
       &quot;requestedPrivacyMetric&quot;: { # Privacy metric to compute for reidentification risk analysis. # Privacy metric to compute.
-        &quot;deltaPresenceEstimationConfig&quot;: { # δ-presence metric, used to estimate how likely it is for an attacker to # delta-presence
-            # figure out that one given individual appears in a de-identified dataset.
-            # Similarly to the k-map metric, we cannot compute δ-presence exactly without
-            # knowing the attack dataset, so we use a statistical model instead.
+        &quot;categoricalStatsConfig&quot;: { # Compute numerical stats over an individual column, including # Categorical stats
+            # number of distinct values and value count distribution.
+          &quot;field&quot;: { # General identifier of a data field in a storage service. # Field to compute categorical stats on. All column types are
+              # supported except for arrays and structs. However, it may be more
+              # informative to use NumericalStats when the field type is supported,
+              # depending on the data.
+            &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+          },
+        },
+        &quot;lDiversityConfig&quot;: { # l-diversity metric, used for analysis of reidentification risk. # l-diversity
+          &quot;sensitiveAttribute&quot;: { # General identifier of a data field in a storage service. # Sensitive field for computing the l-value.
+            &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+          },
+          &quot;quasiIds&quot;: [ # Set of quasi-identifiers indicating how equivalence classes are
+              # defined for the l-diversity computation. When multiple fields are
+              # specified, they are considered a single composite key.
+            { # General identifier of a data field in a storage service.
+              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+            },
+          ],
+        },
+        &quot;kMapEstimationConfig&quot;: { # Reidentifiability metric. This corresponds to a risk model similar to what # k-map
+            # is called &quot;journalist risk&quot; in the literature, except the attack dataset is
+            # statistically modeled instead of being perfectly known. This can be done
+            # using publicly available data (like the US Census), or using a custom
+            # statistical model (indicated as one or several BigQuery tables), or by
+            # extrapolating from the distribution of values in the input dataset.
           &quot;regionCode&quot;: &quot;A String&quot;, # ISO 3166-1 alpha-2 region code to use in the statistical modeling.
               # Set if no column is tagged with a region-specific InfoType (like
               # US_ZIP_5) or a region code.
+          &quot;quasiIds&quot;: [ # Required. Fields considered to be quasi-identifiers. No two columns can have the
+              # same tag.
+            { # A column with a semantic tag attached.
+              &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Identifies the column.
+                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+              },
+              &quot;customTag&quot;: &quot;A String&quot;, # A column can be tagged with a custom tag. In this case, the user must
+                  # indicate an auxiliary table that contains statistical information on
+                  # the possible values of this column (below).
+              &quot;infoType&quot;: { # Type of information detected by the API. # A column can be tagged with a InfoType to use the relevant public
+                  # dataset as a statistical model of population, if available. We
+                  # currently support US ZIP codes, region codes, ages and genders.
+                  # To programmatically obtain the list of supported InfoTypes, use
+                  # ListInfoTypes with the supported_by=RISK_ANALYSIS filter.
+                &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}`.
+              },
+              &quot;inferred&quot;: { # A generic empty message that you can re-use to avoid defining duplicated # If no semantic tag is indicated, we infer the statistical model from
+                  # the distribution of values in the input data
+                  # 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 `{}`.
+              },
+            },
+          ],
           &quot;auxiliaryTables&quot;: [ # Several auxiliary tables can be used in the analysis. Each custom_tag
-              # used to tag a quasi-identifiers field must appear in exactly one
-              # field of one auxiliary table.
-            { # An auxiliary table containing statistical information on the relative
+              # used to tag a quasi-identifiers column must appear in exactly one column
+              # of one auxiliary table.
+            { # An auxiliary table contains statistical information on the relative
                 # frequency of different quasi-identifiers values. It has one or several
                 # quasi-identifiers columns, and one column that indicates the relative
                 # frequency of each quasi-identifier tuple.
                 # If a tuple is present in the data but not in the auxiliary table, the
                 # corresponding relative frequency is assumed to be zero (and thus, the
                 # tuple is highly reidentifiable).
-              &quot;quasiIds&quot;: [ # Required. Quasi-identifier columns.
-                { # A quasi-identifier column has a custom_tag, used to know which column
-                    # in the data corresponds to which column in the statistical model.
-                  &quot;customTag&quot;: &quot;A String&quot;, # A column can be tagged with a custom tag. In this case, the user must
-                      # indicate an auxiliary table that contains statistical information on
-                      # the possible values of this column (below).
-                  &quot;field&quot;: { # General identifier of a data field in a storage service. # Identifies the column.
-                    &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-                  },
-                },
-              ],
               &quot;table&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Required. Auxiliary table location.
                   # identified  by its project_id, dataset_id, and table_name. Within a query
                   # a table is often referenced with a string in the format of:
@@ -1149,12 +638,26 @@
                 &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
                 &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
               },
+              &quot;quasiIds&quot;: [ # Required. Quasi-identifier columns.
+                { # A quasi-identifier column has a custom_tag, used to know which column
+                    # in the data corresponds to which column in the statistical model.
+                  &quot;customTag&quot;: &quot;A String&quot;, # A auxiliary field.
+                  &quot;field&quot;: { # General identifier of a data field in a storage service. # Identifies the column.
+                    &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+                  },
+                },
+              ],
               &quot;relativeFrequency&quot;: { # General identifier of a data field in a storage service. # Required. The relative frequency column must contain a floating-point number
                   # between 0 and 1 (inclusive). Null values are assumed to be zero.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
             },
           ],
+        },
+        &quot;deltaPresenceEstimationConfig&quot;: { # δ-presence metric, used to estimate how likely it is for an attacker to # delta-presence
+            # figure out that one given individual appears in a de-identified dataset.
+            # Similarly to the k-map metric, we cannot compute δ-presence exactly without
+            # knowing the attack dataset, so we use a statistical model instead.
           &quot;quasiIds&quot;: [ # Required. Fields considered to be quasi-identifiers. No two fields can have the
               # same tag.
             { # A column with a semantic tag attached.
@@ -1169,8 +672,8 @@
                 &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. InfoType names should conform to the pattern
-                    # `[a-zA-Z0-9_]{1,64}`.
+                    # 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}`.
               },
               &quot;customTag&quot;: &quot;A String&quot;, # A column can be tagged with a custom tag. In this case, the user must
                   # indicate an auxiliary table that contains statistical information on
@@ -1188,15 +691,46 @@
               },
             },
           ],
-        },
-        &quot;categoricalStatsConfig&quot;: { # Compute numerical stats over an individual column, including # Categorical stats
-            # number of distinct values and value count distribution.
-          &quot;field&quot;: { # General identifier of a data field in a storage service. # Field to compute categorical stats on. All column types are
-              # supported except for arrays and structs. However, it may be more
-              # informative to use NumericalStats when the field type is supported,
-              # depending on the data.
-            &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-          },
+          &quot;auxiliaryTables&quot;: [ # Several auxiliary tables can be used in the analysis. Each custom_tag
+              # used to tag a quasi-identifiers field must appear in exactly one
+              # field of one auxiliary table.
+            { # An auxiliary table containing statistical information on the relative
+                # frequency of different quasi-identifiers values. It has one or several
+                # quasi-identifiers columns, and one column that indicates the relative
+                # frequency of each quasi-identifier tuple.
+                # If a tuple is present in the data but not in the auxiliary table, the
+                # corresponding relative frequency is assumed to be zero (and thus, the
+                # tuple is highly reidentifiable).
+              &quot;relativeFrequency&quot;: { # General identifier of a data field in a storage service. # Required. The relative frequency column must contain a floating-point number
+                  # between 0 and 1 (inclusive). Null values are assumed to be zero.
+                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+              },
+              &quot;table&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Required. Auxiliary table location.
+                  # identified  by its project_id, dataset_id, and table_name. Within a query
+                  # a table is often referenced with a string in the format of:
+                  # `&lt;project_id&gt;:&lt;dataset_id&gt;.&lt;table_id&gt;` or
+                  # `&lt;project_id&gt;.&lt;dataset_id&gt;.&lt;table_id&gt;`.
+                &quot;projectId&quot;: &quot;A String&quot;, # The Google Cloud Platform project ID of the project containing the table.
+                    # If omitted, project ID is inferred from the API call.
+                &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
+                &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
+              },
+              &quot;quasiIds&quot;: [ # Required. Quasi-identifier columns.
+                { # A quasi-identifier column has a custom_tag, used to know which column
+                    # in the data corresponds to which column in the statistical model.
+                  &quot;field&quot;: { # General identifier of a data field in a storage service. # Identifies the column.
+                    &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+                  },
+                  &quot;customTag&quot;: &quot;A String&quot;, # A column can be tagged with a custom tag. In this case, the user must
+                      # indicate an auxiliary table that contains statistical information on
+                      # the possible values of this column (below).
+                },
+              ],
+            },
+          ],
+          &quot;regionCode&quot;: &quot;A String&quot;, # ISO 3166-1 alpha-2 region code to use in the statistical modeling.
+              # Set if no column is tagged with a region-specific InfoType (like
+              # US_ZIP_5) or a region code.
         },
         &quot;kAnonymityConfig&quot;: { # k-anonymity metric, used for analysis of reidentification risk. # K-anonymity
           &quot;entityId&quot;: { # An entity in a dataset is a field or set of fields that correspond to a # Message indicating that multiple rows might be associated to a
@@ -1234,245 +768,36 @@
             &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
           },
         },
-        &quot;kMapEstimationConfig&quot;: { # Reidentifiability metric. This corresponds to a risk model similar to what # k-map
-            # is called &quot;journalist risk&quot; in the literature, except the attack dataset is
-            # statistically modeled instead of being perfectly known. This can be done
-            # using publicly available data (like the US Census), or using a custom
-            # statistical model (indicated as one or several BigQuery tables), or by
-            # extrapolating from the distribution of values in the input dataset.
-          &quot;regionCode&quot;: &quot;A String&quot;, # ISO 3166-1 alpha-2 region code to use in the statistical modeling.
-              # Set if no column is tagged with a region-specific InfoType (like
-              # US_ZIP_5) or a region code.
-          &quot;auxiliaryTables&quot;: [ # Several auxiliary tables can be used in the analysis. Each custom_tag
-              # used to tag a quasi-identifiers column must appear in exactly one column
-              # of one auxiliary table.
-            { # An auxiliary table contains statistical information on the relative
-                # frequency of different quasi-identifiers values. It has one or several
-                # quasi-identifiers columns, and one column that indicates the relative
-                # frequency of each quasi-identifier tuple.
-                # If a tuple is present in the data but not in the auxiliary table, the
-                # corresponding relative frequency is assumed to be zero (and thus, the
-                # tuple is highly reidentifiable).
-              &quot;table&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Required. Auxiliary table location.
-                  # identified  by its project_id, dataset_id, and table_name. Within a query
-                  # a table is often referenced with a string in the format of:
-                  # `&lt;project_id&gt;:&lt;dataset_id&gt;.&lt;table_id&gt;` or
-                  # `&lt;project_id&gt;.&lt;dataset_id&gt;.&lt;table_id&gt;`.
-                &quot;projectId&quot;: &quot;A String&quot;, # The Google Cloud Platform project ID of the project containing the table.
-                    # If omitted, project ID is inferred from the API call.
-                &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
-                &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
-              },
-              &quot;relativeFrequency&quot;: { # General identifier of a data field in a storage service. # Required. The relative frequency column must contain a floating-point number
-                  # between 0 and 1 (inclusive). Null values are assumed to be zero.
-                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-              },
-              &quot;quasiIds&quot;: [ # Required. Quasi-identifier columns.
-                { # A quasi-identifier column has a custom_tag, used to know which column
-                    # in the data corresponds to which column in the statistical model.
-                  &quot;customTag&quot;: &quot;A String&quot;, # A auxiliary field.
-                  &quot;field&quot;: { # General identifier of a data field in a storage service. # Identifies the column.
-                    &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-                  },
-                },
-              ],
-            },
-          ],
-          &quot;quasiIds&quot;: [ # Required. Fields considered to be quasi-identifiers. No two columns can have the
-              # same tag.
-            { # A column with a semantic tag attached.
-              &quot;customTag&quot;: &quot;A String&quot;, # A column can be tagged with a custom tag. In this case, the user must
-                  # indicate an auxiliary table that contains statistical information on
-                  # the possible values of this column (below).
-              &quot;inferred&quot;: { # A generic empty message that you can re-use to avoid defining duplicated # If no semantic tag is indicated, we infer the statistical model from
-                  # the distribution of values in the input data
-                  # 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 `{}`.
-              },
-              &quot;field&quot;: { # General identifier of a data field in a storage service. # Required. Identifies the column.
-                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-              },
-              &quot;infoType&quot;: { # Type of information detected by the API. # A column can be tagged with a InfoType to use the relevant public
-                  # dataset as a statistical model of population, if available. We
-                  # currently support US ZIP codes, region codes, ages and genders.
-                  # To programmatically obtain the list of supported InfoTypes, use
-                  # ListInfoTypes with the supported_by=RISK_ANALYSIS filter.
-                &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. InfoType names should conform to the pattern
-                    # `[a-zA-Z0-9_]{1,64}`.
-              },
-            },
-          ],
-        },
-        &quot;lDiversityConfig&quot;: { # l-diversity metric, used for analysis of reidentification risk. # l-diversity
-          &quot;sensitiveAttribute&quot;: { # General identifier of a data field in a storage service. # Sensitive field for computing the l-value.
-            &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-          },
-          &quot;quasiIds&quot;: [ # Set of quasi-identifiers indicating how equivalence classes are
-              # defined for the l-diversity computation. When multiple fields are
-              # specified, they are considered a single composite key.
-            { # General identifier of a data field in a storage service.
-              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-            },
-          ],
-        },
       },
-      &quot;categoricalStatsResult&quot;: { # Result of the categorical stats computation. # Categorical stats result
-        &quot;valueFrequencyHistogramBuckets&quot;: [ # Histogram of value frequencies in the column.
-          { # Histogram of value frequencies in the column.
-            &quot;valueFrequencyLowerBound&quot;: &quot;A String&quot;, # Lower bound on the value frequency of the values in this bucket.
-            &quot;valueFrequencyUpperBound&quot;: &quot;A String&quot;, # Upper bound on the value frequency of the values in this bucket.
-            &quot;bucketSize&quot;: &quot;A String&quot;, # Total number of values in this bucket.
-            &quot;bucketValueCount&quot;: &quot;A String&quot;, # Total number of distinct values in this bucket.
-            &quot;bucketValues&quot;: [ # Sample of value frequencies in this bucket. The total number of
-                # values returned per bucket is capped at 20.
-              { # A value of a field, including its frequency.
-                &quot;count&quot;: &quot;A String&quot;, # How many times the value is contained in the field.
-                &quot;value&quot;: { # Set of primitive values supported by the system. # A value contained in the field in question.
-                    # 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.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
-                  &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
-                      # and time zone are either specified elsewhere or are not significant. The date
-                      # is relative to the Proleptic Gregorian Calendar. This can represent:
-                      #
-                      # * A full date, with non-zero year, month and day values
-                      # * A month and day value, with a zero year, e.g. an anniversary
-                      # * A year on its own, with zero month and day values
-                      # * A year and month value, with a zero day, e.g. a credit card expiration date
-                      #
-                      # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
-                    &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-                        # a year.
-                    &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
-                        # month and day.
-                    &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-                        # if specifying a year by itself or a year and month where the day is not
-                        # significant.
-                  },
-                  &quot;stringValue&quot;: &quot;A String&quot;, # string
-                  &quot;integerValue&quot;: &quot;A String&quot;, # integer
-                  &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
-                      # or are specified elsewhere. An API may choose to allow leap seconds. Related
-                      # types are google.type.Date and `google.protobuf.Timestamp`.
-                    &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.
-                    &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
-                    &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.
-                    &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
-                  },
-                  &quot;booleanValue&quot;: True or False, # boolean
-                  &quot;floatValue&quot;: 3.14, # float
-                  &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
-                },
-              },
-            ],
-          },
-        ],
-      },
-      &quot;kMapEstimationResult&quot;: { # Result of the reidentifiability analysis. Note that these results are an # K-map result
-          # estimation, not exact values.
-        &quot;kMapEstimationHistogram&quot;: [ # The intervals [min_anonymity, max_anonymity] do not overlap. If a value
-            # doesn&#x27;t correspond to any such interval, the associated frequency is
-            # zero. For example, the following records:
-            #   {min_anonymity: 1, max_anonymity: 1, frequency: 17}
-            #   {min_anonymity: 2, max_anonymity: 3, frequency: 42}
-            #   {min_anonymity: 5, max_anonymity: 10, frequency: 99}
-            # mean that there are no record with an estimated anonymity of 4, 5, or
-            # larger than 10.
-          { # A KMapEstimationHistogramBucket message with the following values:
-              #   min_anonymity: 3
-              #   max_anonymity: 5
-              #   frequency: 42
-              # means that there are 42 records whose quasi-identifier values correspond
-              # to 3, 4 or 5 people in the overlying population. An important particular
-              # case is when min_anonymity = max_anonymity = 1: the frequency field then
-              # corresponds to the number of uniquely identifiable records.
-            &quot;minAnonymity&quot;: &quot;A String&quot;, # Always positive.
-            &quot;bucketValues&quot;: [ # Sample of quasi-identifier tuple values in this bucket. The total
-                # number of classes returned per bucket is capped at 20.
-              { # A tuple of values for the quasi-identifier columns.
-                &quot;quasiIdsValues&quot;: [ # The quasi-identifier values.
-                  { # 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.
-                    &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
-                    &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
-                        # and time zone are either specified elsewhere or are not significant. The date
-                        # is relative to the Proleptic Gregorian Calendar. This can represent:
-                        #
-                        # * A full date, with non-zero year, month and day values
-                        # * A month and day value, with a zero year, e.g. an anniversary
-                        # * A year on its own, with zero month and day values
-                        # * A year and month value, with a zero day, e.g. a credit card expiration date
-                        #
-                        # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
-                      &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-                          # a year.
-                      &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
-                          # month and day.
-                      &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-                          # if specifying a year by itself or a year and month where the day is not
-                          # significant.
-                    },
-                    &quot;stringValue&quot;: &quot;A String&quot;, # string
-                    &quot;integerValue&quot;: &quot;A String&quot;, # integer
-                    &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
-                        # or are specified elsewhere. An API may choose to allow leap seconds. Related
-                        # types are google.type.Date and `google.protobuf.Timestamp`.
-                      &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.
-                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
-                      &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.
-                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
-                    },
-                    &quot;booleanValue&quot;: True or False, # boolean
-                    &quot;floatValue&quot;: 3.14, # float
-                    &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
-                  },
-                ],
-                &quot;estimatedAnonymity&quot;: &quot;A String&quot;, # The estimated anonymity for these quasi-identifier values.
-              },
-            ],
-            &quot;bucketSize&quot;: &quot;A String&quot;, # Number of records within these anonymity bounds.
-            &quot;bucketValueCount&quot;: &quot;A String&quot;, # Total number of distinct quasi-identifier tuple values in this bucket.
-            &quot;maxAnonymity&quot;: &quot;A String&quot;, # Always greater than or equal to min_anonymity.
-          },
-        ],
-      },
-      &quot;kAnonymityResult&quot;: { # Result of the k-anonymity computation. # K-anonymity result
-        &quot;equivalenceClassHistogramBuckets&quot;: [ # Histogram of k-anonymity equivalence classes.
-          { # Histogram of k-anonymity equivalence classes.
-            &quot;equivalenceClassSizeLowerBound&quot;: &quot;A String&quot;, # Lower bound on the size of the equivalence classes in this bucket.
-            &quot;equivalenceClassSizeUpperBound&quot;: &quot;A String&quot;, # Upper bound on the size of the equivalence classes in this bucket.
+      &quot;lDiversityResult&quot;: { # Result of the l-diversity computation. # L-divesity result
+        &quot;sensitiveValueFrequencyHistogramBuckets&quot;: [ # Histogram of l-diversity equivalence class sensitive value frequencies.
+          { # Histogram of l-diversity equivalence class sensitive value frequencies.
+            &quot;bucketSize&quot;: &quot;A String&quot;, # Total number of equivalence classes in this bucket.
             &quot;bucketValues&quot;: [ # Sample of equivalence classes in this bucket. The total number of
                 # classes returned per bucket is capped at 20.
-              { # The set of columns&#x27; values that share the same ldiversity value
-                &quot;quasiIdsValues&quot;: [ # Set of values defining the equivalence class. One value per
-                    # quasi-identifier column in the original KAnonymity metric message.
-                    # The order is always the same as the original request.
+              { # The set of columns&#x27; values that share the same ldiversity value.
+                &quot;quasiIdsValues&quot;: [ # Quasi-identifier values defining the k-anonymity equivalence
+                    # class. The order is always the same as the original request.
                   { # 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.
+                    &quot;integerValue&quot;: &quot;A String&quot;, # integer
+                    &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
+                        # or are specified elsewhere. An API may choose to allow leap seconds. Related
+                        # types are google.type.Date and `google.protobuf.Timestamp`.
+                      &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.
+                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+                      &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.
+                    },
+                    &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
+                    &quot;floatValue&quot;: 3.14, # float
+                    &quot;stringValue&quot;: &quot;A String&quot;, # string
                     &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
                     &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
                         # and time zone are either specified elsewhere or are not significant. The date
@@ -1484,119 +809,72 @@
                         # * A year and month value, with a zero day, e.g. a credit card expiration date
                         #
                         # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
-                      &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-                          # a year.
                       &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
                           # month and day.
+                      &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                          # a year.
                       &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
                           # if specifying a year by itself or a year and month where the day is not
                           # significant.
                     },
-                    &quot;stringValue&quot;: &quot;A String&quot;, # string
-                    &quot;integerValue&quot;: &quot;A String&quot;, # integer
-                    &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
-                        # or are specified elsewhere. An API may choose to allow leap seconds. Related
-                        # types are google.type.Date and `google.protobuf.Timestamp`.
-                      &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.
-                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
-                      &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.
-                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
-                    },
                     &quot;booleanValue&quot;: True or False, # boolean
-                    &quot;floatValue&quot;: 3.14, # float
-                    &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
                   },
                 ],
-                &quot;equivalenceClassSize&quot;: &quot;A String&quot;, # Size of the equivalence class, for example number of rows with the
-                    # above set of values.
+                &quot;topSensitiveValues&quot;: [ # Estimated frequencies of top sensitive values.
+                  { # A value of a field, including its frequency.
+                    &quot;count&quot;: &quot;A String&quot;, # How many times the value is contained in the field.
+                    &quot;value&quot;: { # Set of primitive values supported by the system. # A value contained in the field in question.
+                        # 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.
+                      &quot;integerValue&quot;: &quot;A String&quot;, # integer
+                      &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
+                          # or are specified elsewhere. An API may choose to allow leap seconds. Related
+                          # types are google.type.Date and `google.protobuf.Timestamp`.
+                        &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.
+                        &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+                        &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+                        &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.
+                      },
+                      &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
+                      &quot;floatValue&quot;: 3.14, # float
+                      &quot;stringValue&quot;: &quot;A String&quot;, # string
+                      &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
+                      &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
+                          # and time zone are either specified elsewhere or are not significant. The date
+                          # is relative to the Proleptic Gregorian Calendar. This can represent:
+                          #
+                          # * A full date, with non-zero year, month and day values
+                          # * A month and day value, with a zero year, e.g. an anniversary
+                          # * A year on its own, with zero month and day values
+                          # * A year and month value, with a zero day, e.g. a credit card expiration date
+                          #
+                          # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
+                        &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
+                            # month and day.
+                        &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                            # a year.
+                        &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                            # if specifying a year by itself or a year and month where the day is not
+                            # significant.
+                      },
+                      &quot;booleanValue&quot;: True or False, # boolean
+                    },
+                  },
+                ],
+                &quot;equivalenceClassSize&quot;: &quot;A String&quot;, # Size of the k-anonymity equivalence class.
+                &quot;numDistinctSensitiveValues&quot;: &quot;A String&quot;, # Number of distinct sensitive values in this equivalence class.
               },
             ],
-            &quot;bucketSize&quot;: &quot;A String&quot;, # Total number of equivalence classes in this bucket.
+            &quot;sensitiveValueFrequencyUpperBound&quot;: &quot;A String&quot;, # Upper bound on the sensitive value frequencies of the equivalence
+                # classes in this bucket.
             &quot;bucketValueCount&quot;: &quot;A String&quot;, # Total number of distinct equivalence classes in this bucket.
-          },
-        ],
-      },
-      &quot;deltaPresenceEstimationResult&quot;: { # Result of the δ-presence computation. Note that these results are an # Delta-presence result
-          # estimation, not exact values.
-        &quot;deltaPresenceEstimationHistogram&quot;: [ # The intervals [min_probability, max_probability) do not overlap. If a
-            # value doesn&#x27;t correspond to any such interval, the associated frequency
-            # is zero. For example, the following records:
-            #   {min_probability: 0, max_probability: 0.1, frequency: 17}
-            #   {min_probability: 0.2, max_probability: 0.3, frequency: 42}
-            #   {min_probability: 0.3, max_probability: 0.4, frequency: 99}
-            # mean that there are no record with an estimated probability in [0.1, 0.2)
-            # nor larger or equal to 0.4.
-          { # A DeltaPresenceEstimationHistogramBucket message with the following
-              # values:
-              #   min_probability: 0.1
-              #   max_probability: 0.2
-              #   frequency: 42
-              # means that there are 42 records for which δ is in [0.1, 0.2). An
-              # important particular case is when min_probability = max_probability = 1:
-              # then, every individual who shares this quasi-identifier combination is in
-              # the dataset.
-            &quot;minProbability&quot;: 3.14, # Between 0 and 1.
-            &quot;maxProbability&quot;: 3.14, # Always greater than or equal to min_probability.
-            &quot;bucketSize&quot;: &quot;A String&quot;, # Number of records within these probability bounds.
-            &quot;bucketValueCount&quot;: &quot;A String&quot;, # Total number of distinct quasi-identifier tuple values in this bucket.
-            &quot;bucketValues&quot;: [ # Sample of quasi-identifier tuple values in this bucket. The total
-                # number of classes returned per bucket is capped at 20.
-              { # A tuple of values for the quasi-identifier columns.
-                &quot;quasiIdsValues&quot;: [ # The quasi-identifier values.
-                  { # 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.
-                    &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
-                    &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
-                        # and time zone are either specified elsewhere or are not significant. The date
-                        # is relative to the Proleptic Gregorian Calendar. This can represent:
-                        #
-                        # * A full date, with non-zero year, month and day values
-                        # * A month and day value, with a zero year, e.g. an anniversary
-                        # * A year on its own, with zero month and day values
-                        # * A year and month value, with a zero day, e.g. a credit card expiration date
-                        #
-                        # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
-                      &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-                          # a year.
-                      &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
-                          # month and day.
-                      &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-                          # if specifying a year by itself or a year and month where the day is not
-                          # significant.
-                    },
-                    &quot;stringValue&quot;: &quot;A String&quot;, # string
-                    &quot;integerValue&quot;: &quot;A String&quot;, # integer
-                    &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
-                        # or are specified elsewhere. An API may choose to allow leap seconds. Related
-                        # types are google.type.Date and `google.protobuf.Timestamp`.
-                      &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.
-                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
-                      &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.
-                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
-                    },
-                    &quot;booleanValue&quot;: True or False, # boolean
-                    &quot;floatValue&quot;: 3.14, # float
-                    &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
-                  },
-                ],
-                &quot;estimatedProbability&quot;: 3.14, # The estimated probability that a given individual sharing these
-                    # quasi-identifier values is in the dataset. This value, typically called
-                    # δ, is the ratio between the number of records in the dataset with these
-                    # quasi-identifier values, and the total number of individuals (inside
-                    # *and* outside the dataset) with these quasi-identifier values.
-                    # For example, if there are 15 individuals in the dataset who share the
-                    # same quasi-identifier values, and an estimated 100 people in the entire
-                    # population with these values, then δ is 0.15.
-              },
-            ],
+            &quot;sensitiveValueFrequencyLowerBound&quot;: &quot;A String&quot;, # Lower bound on the sensitive value frequencies of the equivalence
+                # classes in this bucket.
           },
         ],
       },
@@ -1610,330 +888,1024 @@
         &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
         &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
       },
-      &quot;numericalStatsResult&quot;: { # Result of the numerical stats computation. # Numerical stats result
-        &quot;minValue&quot;: { # Set of primitive values supported by the system. # Minimum value appearing in the column.
-            # 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.
-          &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
-          &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
-              # and time zone are either specified elsewhere or are not significant. The date
-              # is relative to the Proleptic Gregorian Calendar. This can represent:
-              #
-              # * A full date, with non-zero year, month and day values
-              # * A month and day value, with a zero year, e.g. an anniversary
-              # * A year on its own, with zero month and day values
-              # * A year and month value, with a zero day, e.g. a credit card expiration date
-              #
-              # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
-            &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-                # a year.
-            &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
-                # month and day.
-            &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-                # if specifying a year by itself or a year and month where the day is not
-                # significant.
-          },
-          &quot;stringValue&quot;: &quot;A String&quot;, # string
-          &quot;integerValue&quot;: &quot;A String&quot;, # integer
-          &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
-              # or are specified elsewhere. An API may choose to allow leap seconds. Related
-              # types are google.type.Date and `google.protobuf.Timestamp`.
-            &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.
-            &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
-            &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.
-            &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
-          },
-          &quot;booleanValue&quot;: True or False, # boolean
-          &quot;floatValue&quot;: 3.14, # float
-          &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
-        },
-        &quot;maxValue&quot;: { # Set of primitive values supported by the system. # Maximum value appearing in the column.
-            # 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.
-          &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
-          &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
-              # and time zone are either specified elsewhere or are not significant. The date
-              # is relative to the Proleptic Gregorian Calendar. This can represent:
-              #
-              # * A full date, with non-zero year, month and day values
-              # * A month and day value, with a zero year, e.g. an anniversary
-              # * A year on its own, with zero month and day values
-              # * A year and month value, with a zero day, e.g. a credit card expiration date
-              #
-              # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
-            &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-                # a year.
-            &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
-                # month and day.
-            &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-                # if specifying a year by itself or a year and month where the day is not
-                # significant.
-          },
-          &quot;stringValue&quot;: &quot;A String&quot;, # string
-          &quot;integerValue&quot;: &quot;A String&quot;, # integer
-          &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
-              # or are specified elsewhere. An API may choose to allow leap seconds. Related
-              # types are google.type.Date and `google.protobuf.Timestamp`.
-            &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.
-            &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
-            &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.
-            &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
-          },
-          &quot;booleanValue&quot;: True or False, # boolean
-          &quot;floatValue&quot;: 3.14, # float
-          &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
-        },
-        &quot;quantileValues&quot;: [ # List of 99 values that partition the set of field values into 100 equal
-            # sized buckets.
-          { # 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.
-            &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
-            &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
-                # and time zone are either specified elsewhere or are not significant. The date
-                # is relative to the Proleptic Gregorian Calendar. This can represent:
-                #
-                # * A full date, with non-zero year, month and day values
-                # * A month and day value, with a zero year, e.g. an anniversary
-                # * A year on its own, with zero month and day values
-                # * A year and month value, with a zero day, e.g. a credit card expiration date
-                #
-                # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
-              &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-                  # a year.
-              &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
-                  # month and day.
-              &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-                  # if specifying a year by itself or a year and month where the day is not
-                  # significant.
+    },
+    &quot;type&quot;: &quot;A String&quot;, # The type of job.
+    &quot;endTime&quot;: &quot;A String&quot;, # Time when the job finished.
+    &quot;startTime&quot;: &quot;A String&quot;, # Time when the job started.
+    &quot;jobTriggerName&quot;: &quot;A String&quot;, # If created by a job trigger, the resource name of the trigger that
+        # instantiated the job.
+    &quot;inspectDetails&quot;: { # The results of an inspect DataSource job. # Results from inspecting a data source.
+      &quot;requestedOptions&quot;: { # Snapshot of the inspection configuration. # The configuration used for this job.
+        &quot;jobConfig&quot;: { # Controls what and how to inspect for findings. # Inspect config.
+          &quot;inspectTemplateName&quot;: &quot;A String&quot;, # If provided, will be used as the default for all values in InspectConfig.
+              # `inspect_config` will be merged into the values persisted as part of the
+              # template.
+          &quot;actions&quot;: [ # Actions to execute at the completion of the job.
+            { # A task to execute on the completion of a job.
+                # See https://cloud.google.com/dlp/docs/concepts-actions to learn more.
+              &quot;publishToStackdriver&quot;: { # Enable Stackdriver metric dlp.googleapis.com/finding_count. This # Enable Stackdriver metric dlp.googleapis.com/finding_count.
+                  # will publish a metric to stack driver on each infotype requested and
+                  # how many findings were found for it. CustomDetectors will be bucketed
+                  # as &#x27;Custom&#x27; under the Stackdriver label &#x27;info_type&#x27;.
+              },
+              &quot;publishFindingsToCloudDataCatalog&quot;: { # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the # Publish findings to Cloud Datahub.
+                  # results of the DlpJob will be applied to the entry for the resource scanned
+                  # in Cloud Data Catalog. Any labels previously written by another DlpJob will
+                  # be deleted. InfoType naming patterns are strictly enforced when using this
+                  # feature. Note that the findings will be persisted in Cloud Data Catalog
+                  # storage and are governed by Data Catalog service-specific policy, see
+                  # https://cloud.google.com/terms/service-terms
+                  # Only a single instance of this action can be specified and only allowed if
+                  # all resources being scanned are BigQuery tables.
+                  # Compatible with: Inspect
+              },
+              &quot;jobNotificationEmails&quot;: { # Enable email notification to project owners and editors on jobs&#x27;s # Enable email notification for project owners and editors on job&#x27;s
+                  # completion/failure.
+                  # completion/failure.
+              },
+              &quot;pubSub&quot;: { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic.
+                  # message contains a single field, `DlpJobName`, which is equal to the
+                  # finished job&#x27;s
+                  # [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
+                  # Compatible with: Inspect, Risk
+                &quot;topic&quot;: &quot;A String&quot;, # Cloud Pub/Sub topic to send notifications to. The topic must have given
+                    # publishing access rights to the DLP API service account executing
+                    # the long running DlpJob sending the notifications.
+                    # Format is projects/{project}/topics/{topic}.
+              },
+              &quot;saveFindings&quot;: { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location.
+                  # OutputStorageConfig. Only a single instance of this action can be
+                  # specified.
+                  # Compatible with: Inspect, Risk
+                &quot;outputConfig&quot;: { # Cloud repository for storing output. # Location to store findings outside of DLP.
+                  &quot;outputSchema&quot;: &quot;A String&quot;, # Schema used for writing the findings for Inspect jobs. This field is only
+                      # used for Inspect and must be unspecified for Risk jobs. Columns are derived
+                      # from the `Finding` object. If appending to an existing table, any columns
+                      # from the predefined schema that are missing will be added. No columns in
+                      # the existing table will be deleted.
+                      #
+                      # If unspecified, then all available columns will be used for a new table or
+                      # an (existing) table with no schema, and no changes will be made to an
+                      # existing table that has a schema.
+                      # Only for use with external storage.
+                  &quot;table&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing
+                      # dataset. If table_id is not set a new one will be generated
+                      # for you with the following format:
+                      # dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for
+                      # generating the date details.
+                      #
+                      # For Inspect, each column in an existing output table must have the same
+                      # name, type, and mode of a field in the `Finding` object.
+                      #
+                      # For Risk, an existing output table should be the output of a previous
+                      # Risk analysis job run on the same source table, with the same privacy
+                      # metric and quasi-identifiers. Risk jobs that analyze the same table but
+                      # compute a different privacy metric, or use different sets of
+                      # quasi-identifiers, cannot store their results in the same table.
+                      # identified  by its project_id, dataset_id, and table_name. Within a query
+                      # a table is often referenced with a string in the format of:
+                      # `&lt;project_id&gt;:&lt;dataset_id&gt;.&lt;table_id&gt;` or
+                      # `&lt;project_id&gt;.&lt;dataset_id&gt;.&lt;table_id&gt;`.
+                    &quot;projectId&quot;: &quot;A String&quot;, # The Google Cloud Platform project ID of the project containing the table.
+                        # If omitted, project ID is inferred from the API call.
+                    &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
+                    &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
+                  },
+                },
+              },
+              &quot;publishSummaryToCscc&quot;: { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha).
+                  # Command Center (CSCC Alpha).
+                  # This action is only available for projects which are parts of
+                  # an organization and whitelisted for the alpha Cloud Security Command
+                  # Center.
+                  # The action will publish count of finding instances and their info types.
+                  # The summary of findings will be persisted in CSCC and are governed by CSCC
+                  # service-specific policy, see https://cloud.google.com/terms/service-terms
+                  # Only a single instance of this action can be specified.
+                  # Compatible with: Inspect
+              },
             },
-            &quot;stringValue&quot;: &quot;A String&quot;, # string
-            &quot;integerValue&quot;: &quot;A String&quot;, # integer
-            &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
-                # or are specified elsewhere. An API may choose to allow leap seconds. Related
-                # types are google.type.Date and `google.protobuf.Timestamp`.
-              &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.
-              &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
-              &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.
-              &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+          ],
+          &quot;storageConfig&quot;: { # Shared message indicating Cloud storage type. # The data to scan.
+            &quot;cloudStorageOptions&quot;: { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options.
+                # bucket.
+              &quot;bytesLimitPerFilePercent&quot;: 42, # Max percentage of bytes to scan from a file. The rest are omitted. The
+                  # number of bytes scanned is rounded down. Must be between 0 and 100,
+                  # inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one
+                  # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
+              &quot;fileTypes&quot;: [ # List of file type groups to include in the scan.
+                  # If empty, all files are scanned and available data format processors
+                  # are applied. In addition, the binary content of the selected files
+                  # is always scanned as well.
+                  # Images are scanned only as binary if the specified region
+                  # does not support image inspection and no file_types were specified.
+                  # Image inspection is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;, and &#x27;europe&#x27;.
+                &quot;A String&quot;,
+              ],
+              &quot;bytesLimitPerFile&quot;: &quot;A String&quot;, # Max number of bytes to scan from a file. If a scanned file&#x27;s size is bigger
+                  # than this value then the rest of the bytes are omitted. Only one
+                  # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
+              &quot;filesLimitPercent&quot;: 42, # Limits the number of files to scan to this percentage of the input FileSet.
+                  # Number of files scanned is rounded down. Must be between 0 and 100,
+                  # inclusively. Both 0 and 100 means no limit. Defaults to 0.
+              &quot;fileSet&quot;: { # Set of files to scan. # The set of one or more files to scan.
+                &quot;regexFileSet&quot;: { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or
+                    # `regex_file_set` must be set.
+                    # expressions are used to allow fine-grained control over which files in the
+                    # bucket to include.
+                    #
+                    # Included files are those that match at least one item in `include_regex` and
+                    # do not match any items in `exclude_regex`. Note that a file that matches
+                    # items from both lists will _not_ be included. For a match to occur, the
+                    # entire file path (i.e., everything in the url after the bucket name) must
+                    # match the regular expression.
+                    #
+                    # For example, given the input `{bucket_name: &quot;mybucket&quot;, include_regex:
+                    # [&quot;directory1/.*&quot;], exclude_regex:
+                    # [&quot;directory1/excluded.*&quot;]}`:
+                    #
+                    # * `gs://mybucket/directory1/myfile` will be included
+                    # * `gs://mybucket/directory1/directory2/myfile` will be included (`.*` matches
+                    # across `/`)
+                    # * `gs://mybucket/directory0/directory1/myfile` will _not_ be included (the
+                    # full path doesn&#x27;t match any items in `include_regex`)
+                    # * `gs://mybucket/directory1/excludedfile` will _not_ be included (the path
+                    # matches an item in `exclude_regex`)
+                    #
+                    # If `include_regex` is left empty, it will match all files by default
+                    # (this is equivalent to setting `include_regex: [&quot;.*&quot;]`).
+                    #
+                    # Some other common use cases:
+                    #
+                    # * `{bucket_name: &quot;mybucket&quot;, exclude_regex: [&quot;.*\.pdf&quot;]}` will include all
+                    # files in `mybucket` except for .pdf files
+                    # * `{bucket_name: &quot;mybucket&quot;, include_regex: [&quot;directory/[^/]+&quot;]}` will
+                    # include all files directly under `gs://mybucket/directory/`, without matching
+                    # across `/`
+                  &quot;bucketName&quot;: &quot;A String&quot;, # The name of a Cloud Storage bucket. Required.
+                  &quot;excludeRegex&quot;: [ # A list of regular expressions matching file paths to exclude. All files in
+                      # the bucket that match at least one of these regular expressions will be
+                      # excluded from the scan.
+                      #
+                      # Regular expressions use RE2
+                      # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+                      # under the google/re2 repository on GitHub.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;includeRegex&quot;: [ # A list of regular expressions matching file paths to include. All files in
+                      # the bucket that match at least one of these regular expressions will be
+                      # included in the set of files, except for those that also match an item in
+                      # `exclude_regex`. Leaving this field empty will match all files by default
+                      # (this is equivalent to including `.*` in the list).
+                      #
+                      # Regular expressions use RE2
+                      # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+                      # under the google/re2 repository on GitHub.
+                    &quot;A String&quot;,
+                  ],
+                },
+                &quot;url&quot;: &quot;A String&quot;, # The Cloud Storage url of the file(s) to scan, in the format
+                    # `gs://&lt;bucket&gt;/&lt;path&gt;`. Trailing wildcard in the path is allowed.
+                    #
+                    # If the url ends in a trailing slash, the bucket or directory represented
+                    # by the url will be scanned non-recursively (content in sub-directories
+                    # will not be scanned). This means that `gs://mybucket/` is equivalent to
+                    # `gs://mybucket/*`, and `gs://mybucket/directory/` is equivalent to
+                    # `gs://mybucket/directory/*`.
+                    #
+                    # Exactly one of `url` or `regex_file_set` must be set.
+              },
+              &quot;sampleMethod&quot;: &quot;A String&quot;,
             },
-            &quot;booleanValue&quot;: True or False, # boolean
-            &quot;floatValue&quot;: 3.14, # float
-            &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
+            &quot;bigQueryOptions&quot;: { # Options defining BigQuery table and row identifiers. # BigQuery options.
+              &quot;sampleMethod&quot;: &quot;A String&quot;,
+              &quot;tableReference&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference.
+                  # identified  by its project_id, dataset_id, and table_name. Within a query
+                  # a table is often referenced with a string in the format of:
+                  # `&lt;project_id&gt;:&lt;dataset_id&gt;.&lt;table_id&gt;` or
+                  # `&lt;project_id&gt;.&lt;dataset_id&gt;.&lt;table_id&gt;`.
+                &quot;projectId&quot;: &quot;A String&quot;, # The Google Cloud Platform project ID of the project containing the table.
+                    # If omitted, project ID is inferred from the API call.
+                &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
+                &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
+              },
+              &quot;rowsLimitPercent&quot;: 42, # Max percentage of rows to scan. The rest are omitted. The number of rows
+                  # scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and
+                  # 100 means no limit. Defaults to 0. Only one of rows_limit and
+                  # rows_limit_percent can be specified. Cannot be used in conjunction with
+                  # TimespanConfig.
+              &quot;rowsLimit&quot;: &quot;A String&quot;, # Max number of rows to scan. If the table has more rows than this value, the
+                  # rest of the rows are omitted. If not set, or if set to 0, all rows will be
+                  # scanned. Only one of rows_limit and rows_limit_percent can be specified.
+                  # Cannot be used in conjunction with TimespanConfig.
+              &quot;identifyingFields&quot;: [ # Table fields that may uniquely identify a row within the table. When
+                  # `actions.saveFindings.outputConfig.table` is specified, the values of
+                  # columns specified here are available in the output table under
+                  # `location.content_locations.record_location.record_key.id_values`. Nested
+                  # fields such as `person.birthdate.year` are allowed.
+                { # General identifier of a data field in a storage service.
+                  &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+                },
+              ],
+              &quot;excludedFields&quot;: [ # References to fields excluded from scanning. This allows you to skip
+                  # inspection of entire columns which you know have no findings.
+                { # General identifier of a data field in a storage service.
+                  &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+                },
+              ],
+            },
+            &quot;timespanConfig&quot;: { # Configuration of the timespan of the items to include in scanning.
+                # Currently only supported when inspecting Google Cloud Storage and BigQuery.
+              &quot;timestampField&quot;: { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items.
+                  # Used for data sources like Datastore and BigQuery.
+                  #
+                  # For BigQuery:
+                  # Required to filter out rows based on the given start and
+                  # end times. If not specified and the table was modified between the given
+                  # start and end times, the entire table will be scanned.
+                  # The valid data types of the timestamp field are: `INTEGER`, `DATE`,
+                  # `TIMESTAMP`, or `DATETIME` BigQuery column.
+                  #
+                  # For Datastore.
+                  # Valid data types of the timestamp field are: `TIMESTAMP`.
+                  # Datastore entity will be scanned if the timestamp property does not
+                  # exist or its value is empty or invalid.
+                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+              },
+              &quot;enableAutoPopulationOfTimespanConfig&quot;: True or False, # When the job is started by a JobTrigger we will automatically figure out
+                  # a valid start_time to avoid scanning files that have not been modified
+                  # since the last time the JobTrigger executed. This will be based on the
+                  # time of the execution of the last run of the JobTrigger.
+              &quot;startTime&quot;: &quot;A String&quot;, # Exclude files or rows older than this value.
+              &quot;endTime&quot;: &quot;A String&quot;, # Exclude files or rows newer than this value.
+                  # If set to zero, no upper time limit is applied.
+            },
+            &quot;datastoreOptions&quot;: { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options.
+              &quot;kind&quot;: { # A representation of a Datastore kind. # The kind to process.
+                &quot;name&quot;: &quot;A String&quot;, # The name of the kind.
+              },
+              &quot;partitionId&quot;: { # Datastore partition ID. # A partition ID identifies a grouping of entities. The grouping is always
+                  # by project and namespace, however the namespace ID may be empty.
+                  # A partition ID identifies a grouping of entities. The grouping is always
+                  # by project and namespace, however the namespace ID may be empty.
+                  #
+                  # A partition ID contains several dimensions:
+                  # project ID and namespace ID.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+            },
+            &quot;hybridOptions&quot;: { # Configuration to control jobs where the content being inspected is outside # Hybrid inspection options.
+                # Early access feature is in a pre-release state and might change or have
+                # limited support. For more information, see
+                # https://cloud.google.com/products#product-launch-stages.
+                # of Google Cloud Platform.
+              &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
+                  # meaningful such as the columns that are primary keys.
+                &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
+                    # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
+                    # each finding so that the finding can be traced to the specific row it came
+                    # from. No more than 3 may be provided.
+                  { # General identifier of a data field in a storage service.
+                    &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+                  },
+                ],
+              },
+              &quot;requiredFindingLabelKeys&quot;: [ # These are labels that each inspection request must include within their
+                  # &#x27;finding_labels&#x27; map. Request may contain others, but any missing one of
+                  # these will be rejected.
+                  #
+                  # Label keys must be between 1 and 63 characters long and must conform
+                  # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+                  #
+                  # No more than 10 keys can be required.
+                &quot;A String&quot;,
+              ],
+              &quot;labels&quot;: { # To organize findings, these labels will be added to each finding.
+                  #
+                  # Label keys must be between 1 and 63 characters long and must conform
+                  # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+                  #
+                  # Label values must be between 0 and 63 characters long and must conform
+                  # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
+                  #
+                  # No more than 10 labels can be associated with a given finding.
+                  #
+                  # Examples:
+                  # * `&quot;environment&quot; : &quot;production&quot;`
+                  # * `&quot;pipeline&quot; : &quot;etl&quot;`
+                &quot;a_key&quot;: &quot;A String&quot;,
+              },
+              &quot;description&quot;: &quot;A String&quot;, # A short description of where the data is coming from. Will be stored once
+                  # in the job. 256 max length.
+            },
           },
-        ],
-      },
-      &quot;lDiversityResult&quot;: { # Result of the l-diversity computation. # L-divesity result
-        &quot;sensitiveValueFrequencyHistogramBuckets&quot;: [ # Histogram of l-diversity equivalence class sensitive value frequencies.
-          { # Histogram of l-diversity equivalence class sensitive value frequencies.
-            &quot;bucketValues&quot;: [ # Sample of equivalence classes in this bucket. The total number of
-                # classes returned per bucket is capped at 20.
-              { # The set of columns&#x27; values that share the same ldiversity value.
-                &quot;numDistinctSensitiveValues&quot;: &quot;A String&quot;, # Number of distinct sensitive values in this equivalence class.
-                &quot;topSensitiveValues&quot;: [ # Estimated frequencies of top sensitive values.
-                  { # A value of a field, including its frequency.
-                    &quot;count&quot;: &quot;A String&quot;, # How many times the value is contained in the field.
-                    &quot;value&quot;: { # Set of primitive values supported by the system. # A value contained in the field in question.
-                        # 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.
-                      &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
-                      &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
-                          # and time zone are either specified elsewhere or are not significant. The date
-                          # is relative to the Proleptic Gregorian Calendar. This can represent:
-                          #
-                          # * A full date, with non-zero year, month and day values
-                          # * A month and day value, with a zero year, e.g. an anniversary
-                          # * A year on its own, with zero month and day values
-                          # * A year and month value, with a zero day, e.g. a credit card expiration date
-                          #
-                          # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
-                        &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-                            # a year.
-                        &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
-                            # month and day.
-                        &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-                            # if specifying a year by itself or a year and month where the day is not
-                            # significant.
+          &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # How and what to scan for.
+              # When used with redactContent only info_types and min_likelihood are currently
+              # used.
+            &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
+                # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
+              { # Custom information type provided by the user. Used to find domain-specific
+                  # sensitive information configurable to the data in question.
+                &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
+                    # be used to match sensitive information specific to the data, such as a list
+                    # of employee IDs or job titles.
+                    #
+                    # Dictionary words are case-insensitive and all characters other than letters
+                    # and digits in the unicode [Basic Multilingual
+                    # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                    # will be replaced with whitespace when scanning for matches, so the
+                    # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                    # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                    # surrounding any match must be of a different type than the adjacent
+                    # characters within the word, so letters must be next to non-letters and
+                    # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                    # match the first three letters of the text &quot;jen123&quot; but will return no
+                    # matches for &quot;jennifer&quot;.
+                    #
+                    # Dictionary words containing a large number of characters that are not
+                    # letters or digits may result in unexpected findings because such characters
+                    # are treated as whitespace. The
+                    # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                    # the size limits of dictionaries. For dictionaries that do not fit within
+                    # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                    # `StoredInfoType` API.
+                  &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                      # is accepted.
+                    &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                        # Example: gs://[BUCKET_NAME]/dictionary.txt
+                  },
+                  &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                    &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                        # at least one phrase and every phrase must contain at least 2 characters
+                        # that are letters or digits. [required]
+                      &quot;A String&quot;,
+                    ],
+                  },
+                },
+                &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
+                    # infoType, when the name matches one of existing infoTypes and that infoType
+                    # is specified in `InspectContent.info_types` field. Specifying the latter
+                    # adds findings to the one detected by the system. If built-in info type is
+                    # not specified in `InspectContent.info_types` list then the name is treated
+                    # as a custom info type.
+                  &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}`.
+                },
+                &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
+                    # altered by a detection rule if the finding meets the criteria specified by
+                    # the rule. Defaults to `VERY_LIKELY` if not specified.
+                &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
+                    # Rules are applied in order that they are specified. Not supported for the
+                    # `surrogate_type` CustomInfoType.
+                  { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
+                      # `CustomInfoType` to alter behavior under certain circumstances, depending
+                      # on the specific details of the rule. Not supported for the `surrogate_type`
+                      # custom infoType.
+                    &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                        # proximity of hotwords.
+                      &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                          # The total length of the window cannot exceed 1000 characters. Note that
+                          # the finding itself will be included in the window, so that hotwords may
+                          # be used to match substrings of the finding itself. For example, the
+                          # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                          # adjusted upwards if the area code is known to be the local area code of
+                          # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                          # is the area code in question.
+                          # rule.
+                        &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                        &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
                       },
-                      &quot;stringValue&quot;: &quot;A String&quot;, # string
-                      &quot;integerValue&quot;: &quot;A String&quot;, # integer
-                      &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
-                          # or are specified elsewhere. An API may choose to allow leap seconds. Related
-                          # types are google.type.Date and `google.protobuf.Timestamp`.
-                        &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.
-                        &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
-                        &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.
-                        &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+                      &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                          # part of a detection rule.
+                        &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                        &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                            # levels. For example, if a finding would be `POSSIBLE` without the
+                            # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                            # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                            # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                            # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                            # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                            # a final likelihood of `LIKELY`.
                       },
-                      &quot;booleanValue&quot;: True or False, # boolean
-                      &quot;floatValue&quot;: 3.14, # float
-                      &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
+                      &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                            # specified, the entire match is returned. No more than 3 may be included.
+                          42,
+                        ],
+                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                            # google/re2 repository on GitHub.
+                      },
                     },
                   },
                 ],
-                &quot;quasiIdsValues&quot;: [ # Quasi-identifier values defining the k-anonymity equivalence
-                    # class. The order is always the same as the original request.
-                  { # 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.
-                    &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
-                    &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
-                        # and time zone are either specified elsewhere or are not significant. The date
-                        # is relative to the Proleptic Gregorian Calendar. This can represent:
-                        #
-                        # * A full date, with non-zero year, month and day values
-                        # * A month and day value, with a zero year, e.g. an anniversary
-                        # * A year on its own, with zero month and day values
-                        # * A year and month value, with a zero day, e.g. a credit card expiration date
-                        #
-                        # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
-                      &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-                          # a year.
-                      &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
-                          # month and day.
-                      &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-                          # if specifying a year by itself or a year and month where the day is not
-                          # significant.
-                    },
-                    &quot;stringValue&quot;: &quot;A String&quot;, # string
-                    &quot;integerValue&quot;: &quot;A String&quot;, # integer
-                    &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
-                        # or are specified elsewhere. An API may choose to allow leap seconds. Related
-                        # types are google.type.Date and `google.protobuf.Timestamp`.
-                      &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.
-                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
-                      &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.
-                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
-                    },
-                    &quot;booleanValue&quot;: True or False, # boolean
-                    &quot;floatValue&quot;: 3.14, # float
-                    &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
-                  },
-                ],
-                &quot;equivalenceClassSize&quot;: &quot;A String&quot;, # Size of the k-anonymity equivalence class.
+                &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
+                    # support reversing.
+                    # such as
+                    # [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
+                    # These types of transformations are
+                    # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
+                    # output. This should be used in conjunction with a field on the
+                    # transformation such as `surrogate_info_type`. This CustomInfoType does
+                    # not support the use of `detection_rules`.
+                },
+                &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
+                  &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                      # specified, the entire match is returned. No more than 3 may be included.
+                    42,
+                  ],
+                  &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                      # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                      # google/re2 repository on GitHub.
+                },
+                &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
+                    # `InspectDataSource`. Not currently supported in `InspectContent`.
+                  &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
+                      # `organizations/433245324/storedInfoTypes/432452342` or
+                      # `projects/project-id/storedInfoTypes/432452342`.
+                  &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
+                      # inspection was created. Output-only field, populated by the system.
+                },
+                &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
+                    # to be returned. It still can be used for rules matching.
               },
             ],
-            &quot;sensitiveValueFrequencyLowerBound&quot;: &quot;A String&quot;, # Lower bound on the sensitive value frequencies of the equivalence
-                # classes in this bucket.
-            &quot;sensitiveValueFrequencyUpperBound&quot;: &quot;A String&quot;, # Upper bound on the sensitive value frequencies of the equivalence
-                # classes in this bucket.
-            &quot;bucketSize&quot;: &quot;A String&quot;, # Total number of equivalence classes in this bucket.
-            &quot;bucketValueCount&quot;: &quot;A String&quot;, # Total number of distinct equivalence classes in this bucket.
+            &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
+                # POSSIBLE.
+                # See https://cloud.google.com/dlp/docs/likelihood to learn more.
+            &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
+              &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
+                  # When set within `InspectContentRequest`, the maximum returned is 2000
+                  # regardless if this is set higher.
+              &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
+                { # Max findings configuration per infoType, per content item or long
+                    # running DlpJob.
+                  &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
+                      # info_type should be provided. If InfoTypeLimit does not have an
+                      # info_type, the DLP API applies the limit against all info_types that
+                      # are found but not specified in another InfoTypeLimit.
+                    &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}`.
+                  },
+                  &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
+                },
+              ],
+              &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
+                  # When set within `InspectJobConfig`,
+                  # the maximum returned is 2000 regardless if this is set higher.
+                  # When set within `InspectContentRequest`, this field is ignored.
+            },
+            &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
+            &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
+                # included in the response; see Finding.quote.
+            &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
+                # Exclusion rules, contained in the set are executed in the end, other
+                # rules are executed in the order they are specified for each info type.
+              { # Rule set for modifying a set of infoTypes to alter behavior under certain
+                  # circumstances, depending on the specific details of the rules within the set.
+                &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
+                  { # Type of information detected by the API.
+                    &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}`.
+                  },
+                ],
+                &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
+                  { # A single inspection rule to be applied to infoTypes, specified in
+                      # `InspectionRuleSet`.
+                    &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                        # proximity of hotwords.
+                      &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                          # The total length of the window cannot exceed 1000 characters. Note that
+                          # the finding itself will be included in the window, so that hotwords may
+                          # be used to match substrings of the finding itself. For example, the
+                          # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                          # adjusted upwards if the area code is known to be the local area code of
+                          # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                          # is the area code in question.
+                          # rule.
+                        &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                        &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                      },
+                      &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                          # part of a detection rule.
+                        &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                        &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                            # levels. For example, if a finding would be `POSSIBLE` without the
+                            # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                            # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                            # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                            # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                            # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                            # a final likelihood of `LIKELY`.
+                      },
+                      &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                            # specified, the entire match is returned. No more than 3 may be included.
+                          42,
+                        ],
+                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                            # google/re2 repository on GitHub.
+                      },
+                    },
+                    &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
+                        # `InspectionRuleSet` are removed from results.
+                      &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
+                      &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
+                          # be used to match sensitive information specific to the data, such as a list
+                          # of employee IDs or job titles.
+                          #
+                          # Dictionary words are case-insensitive and all characters other than letters
+                          # and digits in the unicode [Basic Multilingual
+                          # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                          # will be replaced with whitespace when scanning for matches, so the
+                          # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                          # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                          # surrounding any match must be of a different type than the adjacent
+                          # characters within the word, so letters must be next to non-letters and
+                          # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                          # match the first three letters of the text &quot;jen123&quot; but will return no
+                          # matches for &quot;jennifer&quot;.
+                          #
+                          # Dictionary words containing a large number of characters that are not
+                          # letters or digits may result in unexpected findings because such characters
+                          # are treated as whitespace. The
+                          # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                          # the size limits of dictionaries. For dictionaries that do not fit within
+                          # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                          # `StoredInfoType` API.
+                        &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                            # is accepted.
+                          &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                              # Example: gs://[BUCKET_NAME]/dictionary.txt
+                        },
+                        &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                          &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                              # at least one phrase and every phrase must contain at least 2 characters
+                              # that are letters or digits. [required]
+                            &quot;A String&quot;,
+                          ],
+                        },
+                      },
+                      &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
+                        &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
+                            # contained within with a finding of an infoType from this list. For
+                            # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
+                            # `exclusion_rule` containing `exclude_info_types.info_types` with
+                            # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
+                            # with EMAIL_ADDRESS finding.
+                            # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
+                            # finding, namely email address.
+                          { # Type of information detected by the API.
+                            &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}`.
+                          },
+                        ],
+                      },
+                      &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
+                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                            # specified, the entire match is returned. No more than 3 may be included.
+                          42,
+                        ],
+                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                            # google/re2 repository on GitHub.
+                      },
+                    },
+                  },
+                ],
+              },
+            ],
+            &quot;contentOptions&quot;: [ # List of options defining data content to scan.
+                # If empty, text, images, and other content will be included.
+              &quot;A String&quot;,
+            ],
+            &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
+                # InfoType values returned by ListInfoTypes or listed at
+                # https://cloud.google.com/dlp/docs/infotypes-reference.
+                #
+                # When no InfoTypes or CustomInfoTypes are specified in a request, the
+                # system may automatically choose what detectors to run. By default this may
+                # be all types, but may change over time as detectors are updated.
+                #
+                # If you need precise control and predictability as to what detectors are
+                # run you should specify specific InfoTypes listed in the reference,
+                # otherwise a default list will be used, which may change over time.
+              { # Type of information detected by the API.
+                &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}`.
+              },
+            ],
+          },
+        },
+        &quot;snapshotInspectTemplate&quot;: { # The inspectTemplate contains a configuration (set of types of sensitive data # If run with an InspectTemplate, a snapshot of its state at the time of
+            # this run.
+            # to be detected) to be used anywhere you otherwise would normally specify
+            # InspectConfig. See https://cloud.google.com/dlp/docs/concepts-templates
+            # to learn more.
+          &quot;description&quot;: &quot;A String&quot;, # Short description (max 256 chars).
+          &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 256 chars).
+          &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of an inspectTemplate.
+          &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of an inspectTemplate.
+          &quot;name&quot;: &quot;A String&quot;, # Output only. The template name.
+              #
+              # The template will have one of the following formats:
+              # `projects/PROJECT_ID/inspectTemplates/TEMPLATE_ID` OR
+              # `organizations/ORGANIZATION_ID/inspectTemplates/TEMPLATE_ID`;
+          &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # The core content of the template. Configuration of the scanning process.
+              # When used with redactContent only info_types and min_likelihood are currently
+              # used.
+            &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
+                # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
+              { # Custom information type provided by the user. Used to find domain-specific
+                  # sensitive information configurable to the data in question.
+                &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
+                    # be used to match sensitive information specific to the data, such as a list
+                    # of employee IDs or job titles.
+                    #
+                    # Dictionary words are case-insensitive and all characters other than letters
+                    # and digits in the unicode [Basic Multilingual
+                    # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                    # will be replaced with whitespace when scanning for matches, so the
+                    # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                    # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                    # surrounding any match must be of a different type than the adjacent
+                    # characters within the word, so letters must be next to non-letters and
+                    # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                    # match the first three letters of the text &quot;jen123&quot; but will return no
+                    # matches for &quot;jennifer&quot;.
+                    #
+                    # Dictionary words containing a large number of characters that are not
+                    # letters or digits may result in unexpected findings because such characters
+                    # are treated as whitespace. The
+                    # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                    # the size limits of dictionaries. For dictionaries that do not fit within
+                    # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                    # `StoredInfoType` API.
+                  &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                      # is accepted.
+                    &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                        # Example: gs://[BUCKET_NAME]/dictionary.txt
+                  },
+                  &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                    &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                        # at least one phrase and every phrase must contain at least 2 characters
+                        # that are letters or digits. [required]
+                      &quot;A String&quot;,
+                    ],
+                  },
+                },
+                &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
+                    # infoType, when the name matches one of existing infoTypes and that infoType
+                    # is specified in `InspectContent.info_types` field. Specifying the latter
+                    # adds findings to the one detected by the system. If built-in info type is
+                    # not specified in `InspectContent.info_types` list then the name is treated
+                    # as a custom info type.
+                  &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}`.
+                },
+                &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
+                    # altered by a detection rule if the finding meets the criteria specified by
+                    # the rule. Defaults to `VERY_LIKELY` if not specified.
+                &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
+                    # Rules are applied in order that they are specified. Not supported for the
+                    # `surrogate_type` CustomInfoType.
+                  { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
+                      # `CustomInfoType` to alter behavior under certain circumstances, depending
+                      # on the specific details of the rule. Not supported for the `surrogate_type`
+                      # custom infoType.
+                    &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                        # proximity of hotwords.
+                      &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                          # The total length of the window cannot exceed 1000 characters. Note that
+                          # the finding itself will be included in the window, so that hotwords may
+                          # be used to match substrings of the finding itself. For example, the
+                          # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                          # adjusted upwards if the area code is known to be the local area code of
+                          # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                          # is the area code in question.
+                          # rule.
+                        &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                        &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                      },
+                      &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                          # part of a detection rule.
+                        &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                        &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                            # levels. For example, if a finding would be `POSSIBLE` without the
+                            # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                            # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                            # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                            # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                            # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                            # a final likelihood of `LIKELY`.
+                      },
+                      &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                            # specified, the entire match is returned. No more than 3 may be included.
+                          42,
+                        ],
+                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                            # google/re2 repository on GitHub.
+                      },
+                    },
+                  },
+                ],
+                &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
+                    # support reversing.
+                    # such as
+                    # [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
+                    # These types of transformations are
+                    # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
+                    # output. This should be used in conjunction with a field on the
+                    # transformation such as `surrogate_info_type`. This CustomInfoType does
+                    # not support the use of `detection_rules`.
+                },
+                &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
+                  &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                      # specified, the entire match is returned. No more than 3 may be included.
+                    42,
+                  ],
+                  &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                      # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                      # google/re2 repository on GitHub.
+                },
+                &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
+                    # `InspectDataSource`. Not currently supported in `InspectContent`.
+                  &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
+                      # `organizations/433245324/storedInfoTypes/432452342` or
+                      # `projects/project-id/storedInfoTypes/432452342`.
+                  &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
+                      # inspection was created. Output-only field, populated by the system.
+                },
+                &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
+                    # to be returned. It still can be used for rules matching.
+              },
+            ],
+            &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
+                # POSSIBLE.
+                # See https://cloud.google.com/dlp/docs/likelihood to learn more.
+            &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
+              &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
+                  # When set within `InspectContentRequest`, the maximum returned is 2000
+                  # regardless if this is set higher.
+              &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
+                { # Max findings configuration per infoType, per content item or long
+                    # running DlpJob.
+                  &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
+                      # info_type should be provided. If InfoTypeLimit does not have an
+                      # info_type, the DLP API applies the limit against all info_types that
+                      # are found but not specified in another InfoTypeLimit.
+                    &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}`.
+                  },
+                  &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
+                },
+              ],
+              &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
+                  # When set within `InspectJobConfig`,
+                  # the maximum returned is 2000 regardless if this is set higher.
+                  # When set within `InspectContentRequest`, this field is ignored.
+            },
+            &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
+            &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
+                # included in the response; see Finding.quote.
+            &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
+                # Exclusion rules, contained in the set are executed in the end, other
+                # rules are executed in the order they are specified for each info type.
+              { # Rule set for modifying a set of infoTypes to alter behavior under certain
+                  # circumstances, depending on the specific details of the rules within the set.
+                &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
+                  { # Type of information detected by the API.
+                    &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}`.
+                  },
+                ],
+                &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
+                  { # A single inspection rule to be applied to infoTypes, specified in
+                      # `InspectionRuleSet`.
+                    &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                        # proximity of hotwords.
+                      &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                          # The total length of the window cannot exceed 1000 characters. Note that
+                          # the finding itself will be included in the window, so that hotwords may
+                          # be used to match substrings of the finding itself. For example, the
+                          # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                          # adjusted upwards if the area code is known to be the local area code of
+                          # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                          # is the area code in question.
+                          # rule.
+                        &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                        &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                      },
+                      &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                          # part of a detection rule.
+                        &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                        &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                            # levels. For example, if a finding would be `POSSIBLE` without the
+                            # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                            # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                            # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                            # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                            # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                            # a final likelihood of `LIKELY`.
+                      },
+                      &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                            # specified, the entire match is returned. No more than 3 may be included.
+                          42,
+                        ],
+                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                            # google/re2 repository on GitHub.
+                      },
+                    },
+                    &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
+                        # `InspectionRuleSet` are removed from results.
+                      &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
+                      &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
+                          # be used to match sensitive information specific to the data, such as a list
+                          # of employee IDs or job titles.
+                          #
+                          # Dictionary words are case-insensitive and all characters other than letters
+                          # and digits in the unicode [Basic Multilingual
+                          # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                          # will be replaced with whitespace when scanning for matches, so the
+                          # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                          # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                          # surrounding any match must be of a different type than the adjacent
+                          # characters within the word, so letters must be next to non-letters and
+                          # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                          # match the first three letters of the text &quot;jen123&quot; but will return no
+                          # matches for &quot;jennifer&quot;.
+                          #
+                          # Dictionary words containing a large number of characters that are not
+                          # letters or digits may result in unexpected findings because such characters
+                          # are treated as whitespace. The
+                          # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                          # the size limits of dictionaries. For dictionaries that do not fit within
+                          # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                          # `StoredInfoType` API.
+                        &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                            # is accepted.
+                          &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                              # Example: gs://[BUCKET_NAME]/dictionary.txt
+                        },
+                        &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                          &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                              # at least one phrase and every phrase must contain at least 2 characters
+                              # that are letters or digits. [required]
+                            &quot;A String&quot;,
+                          ],
+                        },
+                      },
+                      &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
+                        &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
+                            # contained within with a finding of an infoType from this list. For
+                            # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
+                            # `exclusion_rule` containing `exclude_info_types.info_types` with
+                            # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
+                            # with EMAIL_ADDRESS finding.
+                            # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
+                            # finding, namely email address.
+                          { # Type of information detected by the API.
+                            &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}`.
+                          },
+                        ],
+                      },
+                      &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
+                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                            # specified, the entire match is returned. No more than 3 may be included.
+                          42,
+                        ],
+                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                            # google/re2 repository on GitHub.
+                      },
+                    },
+                  },
+                ],
+              },
+            ],
+            &quot;contentOptions&quot;: [ # List of options defining data content to scan.
+                # If empty, text, images, and other content will be included.
+              &quot;A String&quot;,
+            ],
+            &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
+                # InfoType values returned by ListInfoTypes or listed at
+                # https://cloud.google.com/dlp/docs/infotypes-reference.
+                #
+                # When no InfoTypes or CustomInfoTypes are specified in a request, the
+                # system may automatically choose what detectors to run. By default this may
+                # be all types, but may change over time as detectors are updated.
+                #
+                # If you need precise control and predictability as to what detectors are
+                # run you should specify specific InfoTypes listed in the reference,
+                # otherwise a default list will be used, which may change over time.
+              { # Type of information detected by the API.
+                &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}`.
+              },
+            ],
+          },
+        },
+      },
+      &quot;result&quot;: { # All result fields mentioned below are updated while the job is processing. # A summary of the outcome of this inspect job.
+        &quot;hybridStats&quot;: { # Statistics related to processing hybrid inspect requests. # Statistics related to the processing of hybrid inspect.
+            # Early access feature is in a pre-release state and might change or have
+            # limited support. For more information, see
+            # https://cloud.google.com/products#product-launch-stages.
+          &quot;processedCount&quot;: &quot;A String&quot;, # The number of hybrid inspection requests processed within this job.
+          &quot;abortedCount&quot;: &quot;A String&quot;, # The number of hybrid inspection requests aborted because the job ran
+              # out of quota or was ended before they could be processed.
+          &quot;pendingCount&quot;: &quot;A String&quot;, # The number of hybrid requests currently being processed. Only populated
+              # when called via method `getDlpJob`.
+              # A burst of traffic may cause hybrid inspect requests to be enqueued.
+              # Processing will take place as quickly as possible, but resource limitations
+              # may impact how long a request is enqueued for.
+        },
+        &quot;totalEstimatedBytes&quot;: &quot;A String&quot;, # Estimate of the number of bytes to process.
+        &quot;infoTypeStats&quot;: [ # Statistics of how many instances of each info type were found during
+            # inspect job.
+          { # Statistics regarding a specific InfoType.
+            &quot;infoType&quot;: { # Type of information detected by the API. # The type of finding this stat is for.
+              &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}`.
+            },
+            &quot;count&quot;: &quot;A String&quot;, # Number of findings for this infoType.
           },
         ],
+        &quot;processedBytes&quot;: &quot;A String&quot;, # Total size in bytes that were processed.
       },
     },
     &quot;name&quot;: &quot;A String&quot;, # The server-assigned name.
-    &quot;errors&quot;: [ # A stream of errors encountered running the job.
-      { # Details information about an error encountered during job execution or
-          # the results of an unsuccessful activation of the JobTrigger.
-        &quot;details&quot;: { # The `Status` type defines a logical error model that is suitable for # Detailed error codes and messages.
-            # different programming environments, including REST APIs and RPC APIs. It is
-            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
-            # three pieces of data: error code, error message, and error details.
-            #
-            # You can find out more about this error model and how to work with it in the
-            # [API Design Guide](https://cloud.google.com/apis/design/errors).
-          &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
-              # user-facing error message should be localized and sent in the
-              # google.rpc.Status.details field, or localized by the client.
-          &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
-              # message types for APIs to use.
-            {
-              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-            },
-          ],
-          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-        },
-        &quot;timestamps&quot;: [ # The times the error occurred.
-          &quot;A String&quot;,
-        ],
-      },
-    ],
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="create">create(parent, locationId, body=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
   <pre>Creates a job trigger to run DLP actions such as scanning storage for
 sensitive information on a set schedule.
 See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.
 
 Args:
-  parent: string, Required. The parent resource name, for example projects/my-project-id. (required)
-  locationId: string, The geographic location to store the job trigger. Reserved for
-future extensions. (required)
+  parent: string, Required. Parent resource name.
+- Format:projects/[PROJECT-ID]
+- Format:projects/[PROJECT-ID]/locations/[LOCATION-ID] (required)
   body: object, The request body.
     The object takes the form of:
 
 { # Request message for CreateJobTrigger.
-    &quot;locationId&quot;: &quot;A String&quot;, # The geographic location to store the job trigger. Reserved for
-        # future extensions.
+    &quot;locationId&quot;: &quot;A String&quot;, # Deprecated. This field has no effect.
     &quot;jobTrigger&quot;: { # Contains a configuration to make dlp api calls on a repeating basis. # Required. The JobTrigger to create.
         # See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more.
-      &quot;lastRunTime&quot;: &quot;A String&quot;, # Output only. The timestamp of the last time this trigger executed.
-      &quot;name&quot;: &quot;A String&quot;, # Unique resource name for the triggeredJob, assigned by the service when the
-          # triggeredJob is created, for example
-          # `projects/dlp-test-project/jobTriggers/53234423`.
-      &quot;errors&quot;: [ # Output only. A stream of errors encountered when the trigger was activated. Repeated
-          # errors may result in the JobTrigger automatically being paused.
-          # Will return the last 100 errors. Whenever the JobTrigger is modified
-          # this list will be cleared.
-        { # Details information about an error encountered during job execution or
-            # the results of an unsuccessful activation of the JobTrigger.
-          &quot;details&quot;: { # The `Status` type defines a logical error model that is suitable for # Detailed error codes and messages.
-              # different programming environments, including REST APIs and RPC APIs. It is
-              # used by [gRPC](https://github.com/grpc). Each `Status` message contains
-              # three pieces of data: error code, error message, and error details.
-              #
-              # You can find out more about this error model and how to work with it in the
-              # [API Design Guide](https://cloud.google.com/apis/design/errors).
-            &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
-                # user-facing error message should be localized and sent in the
-                # google.rpc.Status.details field, or localized by the client.
-            &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
-                # message types for APIs to use.
-              {
-                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-              },
-            ],
-            &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-          },
-          &quot;timestamps&quot;: [ # The times the error occurred.
-            &quot;A String&quot;,
-          ],
-        },
-      ],
-      &quot;description&quot;: &quot;A String&quot;, # User provided description (max 256 chars)
+      &quot;status&quot;: &quot;A String&quot;, # Required. A status for this trigger.
       &quot;triggers&quot;: [ # A list of triggers which will be OR&#x27;ed together. Only one in the list
           # needs to trigger for a job to be started. The list may contain only
           # a single Schedule trigger and must have at least one object.
         { # What event needs to occur for a new job to be started.
+          &quot;manual&quot;: { # Job trigger option for hybrid jobs. Jobs must be manually created # For use with hybrid jobs. Jobs must be manually created and finished.
+              # Early access feature is in a pre-release state and might change or have
+              # limited support. For more information, see
+              # https://cloud.google.com/products#product-launch-stages.
+              # and finished.
+          },
           &quot;schedule&quot;: { # Schedule for triggeredJobs. # Create a job on a repeating basis based on the elapse of time.
             &quot;recurrencePeriodDuration&quot;: &quot;A String&quot;, # With this option a job is started a regular periodic basis. For
                 # example: every day (86400 seconds).
@@ -1944,354 +1916,90 @@
                 # This value must be set to a time duration greater than or equal
                 # to 1 day and can be no longer than 60 days.
           },
-          &quot;manual&quot;: { # Job trigger option for hybrid jobs. Jobs must be manually created # For use with hybrid jobs. Jobs must be manually created and finished.
-              # Early access feature is in a pre-release state and might change or have
-              # limited support. For more information, see
-              # https://cloud.google.com/products#product-launch-stages.
-              # and finished.
+        },
+      ],
+      &quot;errors&quot;: [ # Output only. A stream of errors encountered when the trigger was activated. Repeated
+          # errors may result in the JobTrigger automatically being paused.
+          # Will return the last 100 errors. Whenever the JobTrigger is modified
+          # this list will be cleared.
+        { # Details information about an error encountered during job execution or
+            # the results of an unsuccessful activation of the JobTrigger.
+          &quot;timestamps&quot;: [ # The times the error occurred.
+            &quot;A String&quot;,
+          ],
+          &quot;details&quot;: { # The `Status` type defines a logical error model that is suitable for # Detailed error codes and messages.
+              # different programming environments, including REST APIs and RPC APIs. It is
+              # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+              # three pieces of data: error code, error message, and error details.
+              #
+              # You can find out more about this error model and how to work with it in the
+              # [API Design Guide](https://cloud.google.com/apis/design/errors).
+            &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+            &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
+                # message types for APIs to use.
+              {
+                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+              },
+            ],
+            &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
+                # user-facing error message should be localized and sent in the
+                # google.rpc.Status.details field, or localized by the client.
           },
         },
       ],
-      &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 100 chars)
-      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of a triggeredJob.
       &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of a triggeredJob.
       &quot;inspectJob&quot;: { # Controls what and how to inspect for findings. # For inspect jobs, a snapshot of the configuration.
-        &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # How and what to scan for.
-            # When used with redactContent only info_types and min_likelihood are currently
-            # used.
-          &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
-              # POSSIBLE.
-              # See https://cloud.google.com/dlp/docs/likelihood to learn more.
-          &quot;contentOptions&quot;: [ # List of options defining data content to scan.
-              # If empty, text, images, and other content will be included.
-            &quot;A String&quot;,
-          ],
-          &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
-              # InfoType values returned by ListInfoTypes or listed at
-              # https://cloud.google.com/dlp/docs/infotypes-reference.
-              #
-              # When no InfoTypes or CustomInfoTypes are specified in a request, the
-              # system may automatically choose what detectors to run. By default this may
-              # be all types, but may change over time as detectors are updated.
-              #
-              # If you need precise control and predictability as to what detectors are
-              # run you should specify specific InfoTypes listed in the reference,
-              # otherwise a default list will be used, which may change over time.
-            { # Type of information detected by the API.
-              &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. InfoType names should conform to the pattern
-                  # `[a-zA-Z0-9_]{1,64}`.
-            },
-          ],
-          &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
-          &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
-              # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
-            { # Custom information type provided by the user. Used to find domain-specific
-                # sensitive information configurable to the data in question.
-              &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
-                  # support reversing.
-                  # such as
-                  # [`CryptoReplaceFfxFpeConfig`](/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
-                  # These types of transformations are
-                  # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
-                  # output. This should be used in conjunction with a field on the
-                  # transformation such as `surrogate_info_type`. This CustomInfoType does
-                  # not support the use of `detection_rules`.
-              },
-              &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
-                  # altered by a detection rule if the finding meets the criteria specified by
-                  # the rule. Defaults to `VERY_LIKELY` if not specified.
-              &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
-                  # infoType, when the name matches one of existing infoTypes and that infoType
-                  # is specified in `InspectContent.info_types` field. Specifying the latter
-                  # adds findings to the one detected by the system. If built-in info type is
-                  # not specified in `InspectContent.info_types` list then the name is treated
-                  # as a custom info type.
-                &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. InfoType names should conform to the pattern
-                    # `[a-zA-Z0-9_]{1,64}`.
-              },
-              &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
-                &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                    # specified, the entire match is returned. No more than 3 may be included.
-                  42,
-                ],
-                &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                    # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                    # google/re2 repository on GitHub.
-              },
-              &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
-                  # Rules are applied in order that they are specified. Not supported for the
-                  # `surrogate_type` CustomInfoType.
-                { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
-                    # `CustomInfoType` to alter behavior under certain circumstances, depending
-                    # on the specific details of the rule. Not supported for the `surrogate_type`
-                    # custom infoType.
-                  &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                      # proximity of hotwords.
-                    &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                        # part of a detection rule.
-                      &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                          # levels. For example, if a finding would be `POSSIBLE` without the
-                          # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                          # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                          # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                          # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                          # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                          # a final likelihood of `LIKELY`.
-                      &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                    },
-                    &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                      &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                          # specified, the entire match is returned. No more than 3 may be included.
-                        42,
-                      ],
-                      &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                          # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                          # google/re2 repository on GitHub.
-                    },
-                    &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                        # The total length of the window cannot exceed 1000 characters. Note that
-                        # the finding itself will be included in the window, so that hotwords may
-                        # be used to match substrings of the finding itself. For example, the
-                        # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                        # adjusted upwards if the area code is known to be the local area code of
-                        # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                        # is the area code in question.
-                        # rule.
-                      &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                      &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                    },
-                  },
-                },
-              ],
-              &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
-                  # to be returned. It still can be used for rules matching.
-              &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
-                  # be used to match sensitive information specific to the data, such as a list
-                  # of employee IDs or job titles.
-                  #
-                  # Dictionary words are case-insensitive and all characters other than letters
-                  # and digits in the unicode [Basic Multilingual
-                  # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                  # will be replaced with whitespace when scanning for matches, so the
-                  # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                  # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                  # surrounding any match must be of a different type than the adjacent
-                  # characters within the word, so letters must be next to non-letters and
-                  # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                  # match the first three letters of the text &quot;jen123&quot; but will return no
-                  # matches for &quot;jennifer&quot;.
-                  #
-                  # Dictionary words containing a large number of characters that are not
-                  # letters or digits may result in unexpected findings because such characters
-                  # are treated as whitespace. The
-                  # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                  # the size limits of dictionaries. For dictionaries that do not fit within
-                  # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                  # `StoredInfoType` API.
-                &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                  &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                      # at least one phrase and every phrase must contain at least 2 characters
-                      # that are letters or digits. [required]
-                    &quot;A String&quot;,
-                  ],
-                },
-                &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                    # is accepted.
-                  &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                      # Example: gs://[BUCKET_NAME]/dictionary.txt
-                },
-              },
-              &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
-                  # `InspectDataSource`. Not currently supported in `InspectContent`.
-                &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
-                    # `organizations/433245324/storedInfoTypes/432452342` or
-                    # `projects/project-id/storedInfoTypes/432452342`.
-                &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
-                    # inspection was created. Output-only field, populated by the system.
-              },
-            },
-          ],
-          &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
-              # included in the response; see Finding.quote.
-          &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
-              # Exclusion rules, contained in the set are executed in the end, other
-              # rules are executed in the order they are specified for each info type.
-            { # Rule set for modifying a set of infoTypes to alter behavior under certain
-                # circumstances, depending on the specific details of the rules within the set.
-              &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
-                { # Type of information detected by the API.
-                  &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. InfoType names should conform to the pattern
-                      # `[a-zA-Z0-9_]{1,64}`.
-                },
-              ],
-              &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
-                { # A single inspection rule to be applied to infoTypes, specified in
-                    # `InspectionRuleSet`.
-                  &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                      # proximity of hotwords.
-                    &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                        # part of a detection rule.
-                      &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                          # levels. For example, if a finding would be `POSSIBLE` without the
-                          # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                          # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                          # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                          # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                          # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                          # a final likelihood of `LIKELY`.
-                      &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                    },
-                    &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                      &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                          # specified, the entire match is returned. No more than 3 may be included.
-                        42,
-                      ],
-                      &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                          # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                          # google/re2 repository on GitHub.
-                    },
-                    &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                        # The total length of the window cannot exceed 1000 characters. Note that
-                        # the finding itself will be included in the window, so that hotwords may
-                        # be used to match substrings of the finding itself. For example, the
-                        # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                        # adjusted upwards if the area code is known to be the local area code of
-                        # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                        # is the area code in question.
-                        # rule.
-                      &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                      &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                    },
-                  },
-                  &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
-                      # `InspectionRuleSet` are removed from results.
-                    &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
-                        # be used to match sensitive information specific to the data, such as a list
-                        # of employee IDs or job titles.
-                        #
-                        # Dictionary words are case-insensitive and all characters other than letters
-                        # and digits in the unicode [Basic Multilingual
-                        # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                        # will be replaced with whitespace when scanning for matches, so the
-                        # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                        # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                        # surrounding any match must be of a different type than the adjacent
-                        # characters within the word, so letters must be next to non-letters and
-                        # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                        # match the first three letters of the text &quot;jen123&quot; but will return no
-                        # matches for &quot;jennifer&quot;.
-                        #
-                        # Dictionary words containing a large number of characters that are not
-                        # letters or digits may result in unexpected findings because such characters
-                        # are treated as whitespace. The
-                        # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                        # the size limits of dictionaries. For dictionaries that do not fit within
-                        # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                        # `StoredInfoType` API.
-                      &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                        &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                            # at least one phrase and every phrase must contain at least 2 characters
-                            # that are letters or digits. [required]
-                          &quot;A String&quot;,
-                        ],
-                      },
-                      &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                          # is accepted.
-                        &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                            # Example: gs://[BUCKET_NAME]/dictionary.txt
-                      },
-                    },
-                    &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
-                      &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                          # specified, the entire match is returned. No more than 3 may be included.
-                        42,
-                      ],
-                      &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                          # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                          # google/re2 repository on GitHub.
-                    },
-                    &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
-                      &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
-                          # contained within with a finding of an infoType from this list. For
-                          # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
-                          # `exclusion_rule` containing `exclude_info_types.info_types` with
-                          # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
-                          # with EMAIL_ADDRESS finding.
-                          # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
-                          # finding, namely email address.
-                        { # Type of information detected by the API.
-                          &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. InfoType names should conform to the pattern
-                              # `[a-zA-Z0-9_]{1,64}`.
-                        },
-                      ],
-                    },
-                    &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
-                  },
-                },
-              ],
-            },
-          ],
-          &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
-            &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
-                # When set within `InspectJobConfig`,
-                # the maximum returned is 2000 regardless if this is set higher.
-                # When set within `InspectContentRequest`, this field is ignored.
-            &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
-              { # Max findings configuration per infoType, per content item or long
-                  # running DlpJob.
-                &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
-                &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
-                    # info_type should be provided. If InfoTypeLimit does not have an
-                    # info_type, the DLP API applies the limit against all info_types that
-                    # are found but not specified in another InfoTypeLimit.
-                  &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. InfoType names should conform to the pattern
-                      # `[a-zA-Z0-9_]{1,64}`.
-                },
-              },
-            ],
-            &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
-                # When set within `InspectContentRequest`, the maximum returned is 2000
-                # regardless if this is set higher.
-          },
-        },
+        &quot;inspectTemplateName&quot;: &quot;A String&quot;, # If provided, will be used as the default for all values in InspectConfig.
+            # `inspect_config` will be merged into the values persisted as part of the
+            # template.
         &quot;actions&quot;: [ # Actions to execute at the completion of the job.
           { # A task to execute on the completion of a job.
               # See https://cloud.google.com/dlp/docs/concepts-actions to learn more.
-            &quot;publishSummaryToCscc&quot;: { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha).
-                # Command Center (CSCC Alpha).
-                # This action is only available for projects which are parts of
-                # an organization and whitelisted for the alpha Cloud Security Command
-                # Center.
-                # The action will publish count of finding instances and their info types.
-                # The summary of findings will be persisted in CSCC and are governed by CSCC
-                # service-specific policy, see https://cloud.google.com/terms/service-terms
-                # Only a single instance of this action can be specified.
+            &quot;publishToStackdriver&quot;: { # Enable Stackdriver metric dlp.googleapis.com/finding_count. This # Enable Stackdriver metric dlp.googleapis.com/finding_count.
+                # will publish a metric to stack driver on each infotype requested and
+                # how many findings were found for it. CustomDetectors will be bucketed
+                # as &#x27;Custom&#x27; under the Stackdriver label &#x27;info_type&#x27;.
+            },
+            &quot;publishFindingsToCloudDataCatalog&quot;: { # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the # Publish findings to Cloud Datahub.
+                # results of the DlpJob will be applied to the entry for the resource scanned
+                # in Cloud Data Catalog. Any labels previously written by another DlpJob will
+                # be deleted. InfoType naming patterns are strictly enforced when using this
+                # feature. Note that the findings will be persisted in Cloud Data Catalog
+                # storage and are governed by Data Catalog service-specific policy, see
+                # https://cloud.google.com/terms/service-terms
+                # Only a single instance of this action can be specified and only allowed if
+                # all resources being scanned are BigQuery tables.
                 # Compatible with: Inspect
             },
             &quot;jobNotificationEmails&quot;: { # Enable email notification to project owners and editors on jobs&#x27;s # Enable email notification for project owners and editors on job&#x27;s
                 # completion/failure.
                 # completion/failure.
             },
+            &quot;pubSub&quot;: { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic.
+                # message contains a single field, `DlpJobName`, which is equal to the
+                # finished job&#x27;s
+                # [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
+                # Compatible with: Inspect, Risk
+              &quot;topic&quot;: &quot;A String&quot;, # Cloud Pub/Sub topic to send notifications to. The topic must have given
+                  # publishing access rights to the DLP API service account executing
+                  # the long running DlpJob sending the notifications.
+                  # Format is projects/{project}/topics/{topic}.
+            },
             &quot;saveFindings&quot;: { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location.
                 # OutputStorageConfig. Only a single instance of this action can be
                 # specified.
                 # Compatible with: Inspect, Risk
               &quot;outputConfig&quot;: { # Cloud repository for storing output. # Location to store findings outside of DLP.
+                &quot;outputSchema&quot;: &quot;A String&quot;, # Schema used for writing the findings for Inspect jobs. This field is only
+                    # used for Inspect and must be unspecified for Risk jobs. Columns are derived
+                    # from the `Finding` object. If appending to an existing table, any columns
+                    # from the predefined schema that are missing will be added. No columns in
+                    # the existing table will be deleted.
+                    #
+                    # If unspecified, then all available columns will be used for a new table or
+                    # an (existing) table with no schema, and no changes will be made to an
+                    # existing table that has a schema.
+                    # Only for use with external storage.
                 &quot;table&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing
                     # dataset. If table_id is not set a new one will be generated
                     # for you with the following format:
@@ -2315,137 +2023,43 @@
                   &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
                   &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
                 },
-                &quot;outputSchema&quot;: &quot;A String&quot;, # Schema used for writing the findings for Inspect jobs. This field is only
-                    # used for Inspect and must be unspecified for Risk jobs. Columns are derived
-                    # from the `Finding` object. If appending to an existing table, any columns
-                    # from the predefined schema that are missing will be added. No columns in
-                    # the existing table will be deleted.
-                    #
-                    # If unspecified, then all available columns will be used for a new table or
-                    # an (existing) table with no schema, and no changes will be made to an
-                    # existing table that has a schema.
-                    # Only for use with external storage.
               },
             },
-            &quot;pubSub&quot;: { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic.
-                # message contains a single field, `DlpJobName`, which is equal to the
-                # finished job&#x27;s
-                # [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
-                # Compatible with: Inspect, Risk
-              &quot;topic&quot;: &quot;A String&quot;, # Cloud Pub/Sub topic to send notifications to. The topic must have given
-                  # publishing access rights to the DLP API service account executing
-                  # the long running DlpJob sending the notifications.
-                  # Format is projects/{project}/topics/{topic}.
-            },
-            &quot;publishFindingsToCloudDataCatalog&quot;: { # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the # Publish findings to Cloud Datahub.
-                # results of the DlpJob will be applied to the entry for the resource scanned
-                # in Cloud Data Catalog. Any labels previously written by another DlpJob will
-                # be deleted. InfoType naming patterns are strictly enforced when using this
-                # feature. Note that the findings will be persisted in Cloud Data Catalog
-                # storage and are governed by Data Catalog service-specific policy, see
-                # https://cloud.google.com/terms/service-terms
-                # Only a single instance of this action can be specified and only allowed if
-                # all resources being scanned are BigQuery tables.
+            &quot;publishSummaryToCscc&quot;: { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha).
+                # Command Center (CSCC Alpha).
+                # This action is only available for projects which are parts of
+                # an organization and whitelisted for the alpha Cloud Security Command
+                # Center.
+                # The action will publish count of finding instances and their info types.
+                # The summary of findings will be persisted in CSCC and are governed by CSCC
+                # service-specific policy, see https://cloud.google.com/terms/service-terms
+                # Only a single instance of this action can be specified.
                 # Compatible with: Inspect
             },
-            &quot;publishToStackdriver&quot;: { # Enable Stackdriver metric dlp.googleapis.com/finding_count. This # Enable Stackdriver metric dlp.googleapis.com/finding_count.
-                # will publish a metric to stack driver on each infotype requested and
-                # how many findings were found for it. CustomDetectors will be bucketed
-                # as &#x27;Custom&#x27; under the Stackdriver label &#x27;info_type&#x27;.
-            },
           },
         ],
         &quot;storageConfig&quot;: { # Shared message indicating Cloud storage type. # The data to scan.
-          &quot;hybridOptions&quot;: { # Configuration to control jobs where the content being inspected is outside # Hybrid inspection options.
-              # Early access feature is in a pre-release state and might change or have
-              # limited support. For more information, see
-              # https://cloud.google.com/products#product-launch-stages.
-              # of Google Cloud Platform.
-            &quot;labels&quot;: { # To organize findings, these labels will be added to each finding.
-                #
-                # Label keys must be between 1 and 63 characters long and must conform
-                # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
-                #
-                # Label values must be between 0 and 63 characters long and must conform
-                # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
-                #
-                # No more than 10 labels can be associated with a given finding.
-                #
-                # Examples:
-                # * `&quot;environment&quot; : &quot;production&quot;`
-                # * `&quot;pipeline&quot; : &quot;etl&quot;`
-              &quot;a_key&quot;: &quot;A String&quot;,
-            },
-            &quot;description&quot;: &quot;A String&quot;, # A short description of where the data is coming from. Will be stored once
-                # in the job. 256 max length.
-            &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
-                # meaningful such as the columns that are primary keys.
-              &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
-                  # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
-                  # each finding so that the finding can be traced to the specific row it came
-                  # from. No more than 3 may be provided.
-                { # General identifier of a data field in a storage service.
-                  &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-                },
-              ],
-            },
-            &quot;requiredFindingLabelKeys&quot;: [ # These are labels that each inspection request must include within their
-                # &#x27;finding_labels&#x27; map. Request may contain others, but any missing one of
-                # these will be rejected.
-                #
-                # Label keys must be between 1 and 63 characters long and must conform
-                # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
-                #
-                # No more than 10 keys can be required.
-              &quot;A String&quot;,
-            ],
-          },
-          &quot;datastoreOptions&quot;: { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options.
-            &quot;partitionId&quot;: { # Datastore partition ID. # A partition ID identifies a grouping of entities. The grouping is always
-                # by project and namespace, however the namespace ID may be empty.
-                # A partition ID identifies a grouping of entities. The grouping is always
-                # by project and namespace, however the namespace ID may be empty.
-                #
-                # A partition ID contains several dimensions:
-                # project ID and namespace ID.
-              &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-            },
-            &quot;kind&quot;: { # A representation of a Datastore kind. # The kind to process.
-              &quot;name&quot;: &quot;A String&quot;, # The name of the kind.
-            },
-          },
-          &quot;timespanConfig&quot;: { # Configuration of the timespan of the items to include in scanning.
-              # Currently only supported when inspecting Google Cloud Storage and BigQuery.
-            &quot;timestampField&quot;: { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items.
-                # Used for data sources like Datastore and BigQuery.
-                #
-                # For BigQuery:
-                # Required to filter out rows based on the given start and
-                # end times. If not specified and the table was modified between the given
-                # start and end times, the entire table will be scanned.
-                # The valid data types of the timestamp field are: `INTEGER`, `DATE`,
-                # `TIMESTAMP`, or `DATETIME` BigQuery column.
-                #
-                # For Datastore.
-                # Valid data types of the timestamp field are: `TIMESTAMP`.
-                # Datastore entity will be scanned if the timestamp property does not
-                # exist or its value is empty or invalid.
-              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-            },
-            &quot;enableAutoPopulationOfTimespanConfig&quot;: True or False, # When the job is started by a JobTrigger we will automatically figure out
-                # a valid start_time to avoid scanning files that have not been modified
-                # since the last time the JobTrigger executed. This will be based on the
-                # time of the execution of the last run of the JobTrigger.
-            &quot;endTime&quot;: &quot;A String&quot;, # Exclude files or rows newer than this value.
-                # If set to zero, no upper time limit is applied.
-            &quot;startTime&quot;: &quot;A String&quot;, # Exclude files or rows older than this value.
-          },
           &quot;cloudStorageOptions&quot;: { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options.
               # bucket.
+            &quot;bytesLimitPerFilePercent&quot;: 42, # Max percentage of bytes to scan from a file. The rest are omitted. The
+                # number of bytes scanned is rounded down. Must be between 0 and 100,
+                # inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one
+                # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
+            &quot;fileTypes&quot;: [ # List of file type groups to include in the scan.
+                # If empty, all files are scanned and available data format processors
+                # are applied. In addition, the binary content of the selected files
+                # is always scanned as well.
+                # Images are scanned only as binary if the specified region
+                # does not support image inspection and no file_types were specified.
+                # Image inspection is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;, and &#x27;europe&#x27;.
+              &quot;A String&quot;,
+            ],
             &quot;bytesLimitPerFile&quot;: &quot;A String&quot;, # Max number of bytes to scan from a file. If a scanned file&#x27;s size is bigger
                 # than this value then the rest of the bytes are omitted. Only one
                 # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
+            &quot;filesLimitPercent&quot;: 42, # Limits the number of files to scan to this percentage of the input FileSet.
+                # Number of files scanned is rounded down. Must be between 0 and 100,
+                # inclusively. Both 0 and 100 means no limit. Defaults to 0.
             &quot;fileSet&quot;: { # Set of files to scan. # The set of one or more files to scan.
               &quot;regexFileSet&quot;: { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or
                   # `regex_file_set` must be set.
@@ -2481,20 +2095,20 @@
                   # include all files directly under `gs://mybucket/directory/`, without matching
                   # across `/`
                 &quot;bucketName&quot;: &quot;A String&quot;, # The name of a Cloud Storage bucket. Required.
-                &quot;includeRegex&quot;: [ # A list of regular expressions matching file paths to include. All files in
+                &quot;excludeRegex&quot;: [ # A list of regular expressions matching file paths to exclude. All files in
                     # the bucket that match at least one of these regular expressions will be
-                    # included in the set of files, except for those that also match an item in
-                    # `exclude_regex`. Leaving this field empty will match all files by default
-                    # (this is equivalent to including `.*` in the list).
+                    # excluded from the scan.
                     #
                     # Regular expressions use RE2
                     # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
                     # under the google/re2 repository on GitHub.
                   &quot;A String&quot;,
                 ],
-                &quot;excludeRegex&quot;: [ # A list of regular expressions matching file paths to exclude. All files in
+                &quot;includeRegex&quot;: [ # A list of regular expressions matching file paths to include. All files in
                     # the bucket that match at least one of these regular expressions will be
-                    # excluded from the scan.
+                    # included in the set of files, except for those that also match an item in
+                    # `exclude_regex`. Leaving this field empty will match all files by default
+                    # (this is equivalent to including `.*` in the list).
                     #
                     # Regular expressions use RE2
                     # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
@@ -2513,25 +2127,10 @@
                   #
                   # Exactly one of `url` or `regex_file_set` must be set.
             },
-            &quot;filesLimitPercent&quot;: 42, # Limits the number of files to scan to this percentage of the input FileSet.
-                # Number of files scanned is rounded down. Must be between 0 and 100,
-                # inclusively. Both 0 and 100 means no limit. Defaults to 0.
-            &quot;fileTypes&quot;: [ # List of file type groups to include in the scan.
-                # If empty, all files are scanned and available data format processors
-                # are applied. In addition, the binary content of the selected files
-                # is always scanned as well.
-                # Images are scanned only as binary if the specified region
-                # does not support image inspection and no file_types were specified.
-                # Image inspection is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;, and &#x27;europe&#x27;.
-              &quot;A String&quot;,
-            ],
             &quot;sampleMethod&quot;: &quot;A String&quot;,
-            &quot;bytesLimitPerFilePercent&quot;: 42, # Max percentage of bytes to scan from a file. The rest are omitted. The
-                # number of bytes scanned is rounded down. Must be between 0 and 100,
-                # inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one
-                # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
           },
           &quot;bigQueryOptions&quot;: { # Options defining BigQuery table and row identifiers. # BigQuery options.
+            &quot;sampleMethod&quot;: &quot;A String&quot;,
             &quot;tableReference&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference.
                 # identified  by its project_id, dataset_id, and table_name. Within a query
                 # a table is often referenced with a string in the format of:
@@ -2542,15 +2141,6 @@
               &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
               &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
             },
-            &quot;identifyingFields&quot;: [ # Table fields that may uniquely identify a row within the table. When
-                # `actions.saveFindings.outputConfig.table` is specified, the values of
-                # columns specified here are available in the output table under
-                # `location.content_locations.record_location.record_key.id_values`. Nested
-                # fields such as `person.birthdate.year` are allowed.
-              { # General identifier of a data field in a storage service.
-                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-              },
-            ],
             &quot;rowsLimitPercent&quot;: 42, # Max percentage of rows to scan. The rest are omitted. The number of rows
                 # scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and
                 # 100 means no limit. Defaults to 0. Only one of rows_limit and
@@ -2560,20 +2150,429 @@
                 # rest of the rows are omitted. If not set, or if set to 0, all rows will be
                 # scanned. Only one of rows_limit and rows_limit_percent can be specified.
                 # Cannot be used in conjunction with TimespanConfig.
+            &quot;identifyingFields&quot;: [ # Table fields that may uniquely identify a row within the table. When
+                # `actions.saveFindings.outputConfig.table` is specified, the values of
+                # columns specified here are available in the output table under
+                # `location.content_locations.record_location.record_key.id_values`. Nested
+                # fields such as `person.birthdate.year` are allowed.
+              { # General identifier of a data field in a storage service.
+                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+              },
+            ],
             &quot;excludedFields&quot;: [ # References to fields excluded from scanning. This allows you to skip
                 # inspection of entire columns which you know have no findings.
               { # General identifier of a data field in a storage service.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
             ],
-            &quot;sampleMethod&quot;: &quot;A String&quot;,
+          },
+          &quot;timespanConfig&quot;: { # Configuration of the timespan of the items to include in scanning.
+              # Currently only supported when inspecting Google Cloud Storage and BigQuery.
+            &quot;timestampField&quot;: { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items.
+                # Used for data sources like Datastore and BigQuery.
+                #
+                # For BigQuery:
+                # Required to filter out rows based on the given start and
+                # end times. If not specified and the table was modified between the given
+                # start and end times, the entire table will be scanned.
+                # The valid data types of the timestamp field are: `INTEGER`, `DATE`,
+                # `TIMESTAMP`, or `DATETIME` BigQuery column.
+                #
+                # For Datastore.
+                # Valid data types of the timestamp field are: `TIMESTAMP`.
+                # Datastore entity will be scanned if the timestamp property does not
+                # exist or its value is empty or invalid.
+              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+            },
+            &quot;enableAutoPopulationOfTimespanConfig&quot;: True or False, # When the job is started by a JobTrigger we will automatically figure out
+                # a valid start_time to avoid scanning files that have not been modified
+                # since the last time the JobTrigger executed. This will be based on the
+                # time of the execution of the last run of the JobTrigger.
+            &quot;startTime&quot;: &quot;A String&quot;, # Exclude files or rows older than this value.
+            &quot;endTime&quot;: &quot;A String&quot;, # Exclude files or rows newer than this value.
+                # If set to zero, no upper time limit is applied.
+          },
+          &quot;datastoreOptions&quot;: { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options.
+            &quot;kind&quot;: { # A representation of a Datastore kind. # The kind to process.
+              &quot;name&quot;: &quot;A String&quot;, # The name of the kind.
+            },
+            &quot;partitionId&quot;: { # Datastore partition ID. # A partition ID identifies a grouping of entities. The grouping is always
+                # by project and namespace, however the namespace ID may be empty.
+                # A partition ID identifies a grouping of entities. The grouping is always
+                # by project and namespace, however the namespace ID may be empty.
+                #
+                # A partition ID contains several dimensions:
+                # project ID and namespace ID.
+              &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+              &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+            },
+          },
+          &quot;hybridOptions&quot;: { # Configuration to control jobs where the content being inspected is outside # Hybrid inspection options.
+              # Early access feature is in a pre-release state and might change or have
+              # limited support. For more information, see
+              # https://cloud.google.com/products#product-launch-stages.
+              # of Google Cloud Platform.
+            &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
+                # meaningful such as the columns that are primary keys.
+              &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
+                  # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
+                  # each finding so that the finding can be traced to the specific row it came
+                  # from. No more than 3 may be provided.
+                { # General identifier of a data field in a storage service.
+                  &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+                },
+              ],
+            },
+            &quot;requiredFindingLabelKeys&quot;: [ # These are labels that each inspection request must include within their
+                # &#x27;finding_labels&#x27; map. Request may contain others, but any missing one of
+                # these will be rejected.
+                #
+                # Label keys must be between 1 and 63 characters long and must conform
+                # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+                #
+                # No more than 10 keys can be required.
+              &quot;A String&quot;,
+            ],
+            &quot;labels&quot;: { # To organize findings, these labels will be added to each finding.
+                #
+                # Label keys must be between 1 and 63 characters long and must conform
+                # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+                #
+                # Label values must be between 0 and 63 characters long and must conform
+                # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
+                #
+                # No more than 10 labels can be associated with a given finding.
+                #
+                # Examples:
+                # * `&quot;environment&quot; : &quot;production&quot;`
+                # * `&quot;pipeline&quot; : &quot;etl&quot;`
+              &quot;a_key&quot;: &quot;A String&quot;,
+            },
+            &quot;description&quot;: &quot;A String&quot;, # A short description of where the data is coming from. Will be stored once
+                # in the job. 256 max length.
           },
         },
-        &quot;inspectTemplateName&quot;: &quot;A String&quot;, # If provided, will be used as the default for all values in InspectConfig.
-            # `inspect_config` will be merged into the values persisted as part of the
-            # template.
+        &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # How and what to scan for.
+            # When used with redactContent only info_types and min_likelihood are currently
+            # used.
+          &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
+              # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
+            { # Custom information type provided by the user. Used to find domain-specific
+                # sensitive information configurable to the data in question.
+              &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
+                  # be used to match sensitive information specific to the data, such as a list
+                  # of employee IDs or job titles.
+                  #
+                  # Dictionary words are case-insensitive and all characters other than letters
+                  # and digits in the unicode [Basic Multilingual
+                  # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                  # will be replaced with whitespace when scanning for matches, so the
+                  # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                  # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                  # surrounding any match must be of a different type than the adjacent
+                  # characters within the word, so letters must be next to non-letters and
+                  # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                  # match the first three letters of the text &quot;jen123&quot; but will return no
+                  # matches for &quot;jennifer&quot;.
+                  #
+                  # Dictionary words containing a large number of characters that are not
+                  # letters or digits may result in unexpected findings because such characters
+                  # are treated as whitespace. The
+                  # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                  # the size limits of dictionaries. For dictionaries that do not fit within
+                  # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                  # `StoredInfoType` API.
+                &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                    # is accepted.
+                  &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                      # Example: gs://[BUCKET_NAME]/dictionary.txt
+                },
+                &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                  &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                      # at least one phrase and every phrase must contain at least 2 characters
+                      # that are letters or digits. [required]
+                    &quot;A String&quot;,
+                  ],
+                },
+              },
+              &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
+                  # infoType, when the name matches one of existing infoTypes and that infoType
+                  # is specified in `InspectContent.info_types` field. Specifying the latter
+                  # adds findings to the one detected by the system. If built-in info type is
+                  # not specified in `InspectContent.info_types` list then the name is treated
+                  # as a custom info type.
+                &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}`.
+              },
+              &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
+                  # altered by a detection rule if the finding meets the criteria specified by
+                  # the rule. Defaults to `VERY_LIKELY` if not specified.
+              &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
+                  # Rules are applied in order that they are specified. Not supported for the
+                  # `surrogate_type` CustomInfoType.
+                { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
+                    # `CustomInfoType` to alter behavior under certain circumstances, depending
+                    # on the specific details of the rule. Not supported for the `surrogate_type`
+                    # custom infoType.
+                  &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                      # proximity of hotwords.
+                    &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                        # The total length of the window cannot exceed 1000 characters. Note that
+                        # the finding itself will be included in the window, so that hotwords may
+                        # be used to match substrings of the finding itself. For example, the
+                        # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                        # adjusted upwards if the area code is known to be the local area code of
+                        # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                        # is the area code in question.
+                        # rule.
+                      &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                      &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                    },
+                    &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                        # part of a detection rule.
+                      &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                      &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                          # levels. For example, if a finding would be `POSSIBLE` without the
+                          # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                          # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                          # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                          # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                          # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                          # a final likelihood of `LIKELY`.
+                    },
+                    &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                      &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                          # specified, the entire match is returned. No more than 3 may be included.
+                        42,
+                      ],
+                      &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                          # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                          # google/re2 repository on GitHub.
+                    },
+                  },
+                },
+              ],
+              &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
+                  # support reversing.
+                  # such as
+                  # [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
+                  # These types of transformations are
+                  # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
+                  # output. This should be used in conjunction with a field on the
+                  # transformation such as `surrogate_info_type`. This CustomInfoType does
+                  # not support the use of `detection_rules`.
+              },
+              &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
+                &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                    # specified, the entire match is returned. No more than 3 may be included.
+                  42,
+                ],
+                &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                    # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                    # google/re2 repository on GitHub.
+              },
+              &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
+                  # `InspectDataSource`. Not currently supported in `InspectContent`.
+                &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
+                    # `organizations/433245324/storedInfoTypes/432452342` or
+                    # `projects/project-id/storedInfoTypes/432452342`.
+                &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
+                    # inspection was created. Output-only field, populated by the system.
+              },
+              &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
+                  # to be returned. It still can be used for rules matching.
+            },
+          ],
+          &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
+              # POSSIBLE.
+              # See https://cloud.google.com/dlp/docs/likelihood to learn more.
+          &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
+            &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
+                # When set within `InspectContentRequest`, the maximum returned is 2000
+                # regardless if this is set higher.
+            &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
+              { # Max findings configuration per infoType, per content item or long
+                  # running DlpJob.
+                &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
+                    # info_type should be provided. If InfoTypeLimit does not have an
+                    # info_type, the DLP API applies the limit against all info_types that
+                    # are found but not specified in another InfoTypeLimit.
+                  &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}`.
+                },
+                &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
+              },
+            ],
+            &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
+                # When set within `InspectJobConfig`,
+                # the maximum returned is 2000 regardless if this is set higher.
+                # When set within `InspectContentRequest`, this field is ignored.
+          },
+          &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
+          &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
+              # included in the response; see Finding.quote.
+          &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
+              # Exclusion rules, contained in the set are executed in the end, other
+              # rules are executed in the order they are specified for each info type.
+            { # Rule set for modifying a set of infoTypes to alter behavior under certain
+                # circumstances, depending on the specific details of the rules within the set.
+              &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
+                { # Type of information detected by the API.
+                  &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}`.
+                },
+              ],
+              &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
+                { # A single inspection rule to be applied to infoTypes, specified in
+                    # `InspectionRuleSet`.
+                  &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                      # proximity of hotwords.
+                    &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                        # The total length of the window cannot exceed 1000 characters. Note that
+                        # the finding itself will be included in the window, so that hotwords may
+                        # be used to match substrings of the finding itself. For example, the
+                        # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                        # adjusted upwards if the area code is known to be the local area code of
+                        # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                        # is the area code in question.
+                        # rule.
+                      &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                      &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                    },
+                    &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                        # part of a detection rule.
+                      &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                      &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                          # levels. For example, if a finding would be `POSSIBLE` without the
+                          # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                          # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                          # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                          # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                          # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                          # a final likelihood of `LIKELY`.
+                    },
+                    &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                      &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                          # specified, the entire match is returned. No more than 3 may be included.
+                        42,
+                      ],
+                      &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                          # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                          # google/re2 repository on GitHub.
+                    },
+                  },
+                  &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
+                      # `InspectionRuleSet` are removed from results.
+                    &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
+                    &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
+                        # be used to match sensitive information specific to the data, such as a list
+                        # of employee IDs or job titles.
+                        #
+                        # Dictionary words are case-insensitive and all characters other than letters
+                        # and digits in the unicode [Basic Multilingual
+                        # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                        # will be replaced with whitespace when scanning for matches, so the
+                        # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                        # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                        # surrounding any match must be of a different type than the adjacent
+                        # characters within the word, so letters must be next to non-letters and
+                        # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                        # match the first three letters of the text &quot;jen123&quot; but will return no
+                        # matches for &quot;jennifer&quot;.
+                        #
+                        # Dictionary words containing a large number of characters that are not
+                        # letters or digits may result in unexpected findings because such characters
+                        # are treated as whitespace. The
+                        # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                        # the size limits of dictionaries. For dictionaries that do not fit within
+                        # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                        # `StoredInfoType` API.
+                      &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                          # is accepted.
+                        &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                            # Example: gs://[BUCKET_NAME]/dictionary.txt
+                      },
+                      &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                        &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                            # at least one phrase and every phrase must contain at least 2 characters
+                            # that are letters or digits. [required]
+                          &quot;A String&quot;,
+                        ],
+                      },
+                    },
+                    &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
+                      &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
+                          # contained within with a finding of an infoType from this list. For
+                          # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
+                          # `exclusion_rule` containing `exclude_info_types.info_types` with
+                          # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
+                          # with EMAIL_ADDRESS finding.
+                          # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
+                          # finding, namely email address.
+                        { # Type of information detected by the API.
+                          &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}`.
+                        },
+                      ],
+                    },
+                    &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
+                      &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                          # specified, the entire match is returned. No more than 3 may be included.
+                        42,
+                      ],
+                      &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                          # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                          # google/re2 repository on GitHub.
+                    },
+                  },
+                },
+              ],
+            },
+          ],
+          &quot;contentOptions&quot;: [ # List of options defining data content to scan.
+              # If empty, text, images, and other content will be included.
+            &quot;A String&quot;,
+          ],
+          &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
+              # InfoType values returned by ListInfoTypes or listed at
+              # https://cloud.google.com/dlp/docs/infotypes-reference.
+              #
+              # When no InfoTypes or CustomInfoTypes are specified in a request, the
+              # system may automatically choose what detectors to run. By default this may
+              # be all types, but may change over time as detectors are updated.
+              #
+              # If you need precise control and predictability as to what detectors are
+              # run you should specify specific InfoTypes listed in the reference,
+              # otherwise a default list will be used, which may change over time.
+            { # Type of information detected by the API.
+              &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}`.
+            },
+          ],
+        },
       },
-      &quot;status&quot;: &quot;A String&quot;, # Required. A status for this trigger.
+      &quot;name&quot;: &quot;A String&quot;, # Unique resource name for the triggeredJob, assigned by the service when the
+          # triggeredJob is created, for example
+          # `projects/dlp-test-project/jobTriggers/53234423`.
+      &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 100 chars)
+      &quot;lastRunTime&quot;: &quot;A String&quot;, # Output only. The timestamp of the last time this trigger executed.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of a triggeredJob.
+      &quot;description&quot;: &quot;A String&quot;, # User provided description (max 256 chars)
     },
     &quot;triggerId&quot;: &quot;A String&quot;, # The trigger id can contain uppercase and lowercase letters,
         # numbers, and hyphens; that is, it must match the regular
@@ -2591,44 +2590,17 @@
 
     { # Contains a configuration to make dlp api calls on a repeating basis.
       # See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more.
-    &quot;lastRunTime&quot;: &quot;A String&quot;, # Output only. The timestamp of the last time this trigger executed.
-    &quot;name&quot;: &quot;A String&quot;, # Unique resource name for the triggeredJob, assigned by the service when the
-        # triggeredJob is created, for example
-        # `projects/dlp-test-project/jobTriggers/53234423`.
-    &quot;errors&quot;: [ # Output only. A stream of errors encountered when the trigger was activated. Repeated
-        # errors may result in the JobTrigger automatically being paused.
-        # Will return the last 100 errors. Whenever the JobTrigger is modified
-        # this list will be cleared.
-      { # Details information about an error encountered during job execution or
-          # the results of an unsuccessful activation of the JobTrigger.
-        &quot;details&quot;: { # The `Status` type defines a logical error model that is suitable for # Detailed error codes and messages.
-            # different programming environments, including REST APIs and RPC APIs. It is
-            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
-            # three pieces of data: error code, error message, and error details.
-            #
-            # You can find out more about this error model and how to work with it in the
-            # [API Design Guide](https://cloud.google.com/apis/design/errors).
-          &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
-              # user-facing error message should be localized and sent in the
-              # google.rpc.Status.details field, or localized by the client.
-          &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
-              # message types for APIs to use.
-            {
-              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-            },
-          ],
-          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-        },
-        &quot;timestamps&quot;: [ # The times the error occurred.
-          &quot;A String&quot;,
-        ],
-      },
-    ],
-    &quot;description&quot;: &quot;A String&quot;, # User provided description (max 256 chars)
+    &quot;status&quot;: &quot;A String&quot;, # Required. A status for this trigger.
     &quot;triggers&quot;: [ # A list of triggers which will be OR&#x27;ed together. Only one in the list
         # needs to trigger for a job to be started. The list may contain only
         # a single Schedule trigger and must have at least one object.
       { # What event needs to occur for a new job to be started.
+        &quot;manual&quot;: { # Job trigger option for hybrid jobs. Jobs must be manually created # For use with hybrid jobs. Jobs must be manually created and finished.
+            # Early access feature is in a pre-release state and might change or have
+            # limited support. For more information, see
+            # https://cloud.google.com/products#product-launch-stages.
+            # and finished.
+        },
         &quot;schedule&quot;: { # Schedule for triggeredJobs. # Create a job on a repeating basis based on the elapse of time.
           &quot;recurrencePeriodDuration&quot;: &quot;A String&quot;, # With this option a job is started a regular periodic basis. For
               # example: every day (86400 seconds).
@@ -2639,354 +2611,90 @@
               # This value must be set to a time duration greater than or equal
               # to 1 day and can be no longer than 60 days.
         },
-        &quot;manual&quot;: { # Job trigger option for hybrid jobs. Jobs must be manually created # For use with hybrid jobs. Jobs must be manually created and finished.
-            # Early access feature is in a pre-release state and might change or have
-            # limited support. For more information, see
-            # https://cloud.google.com/products#product-launch-stages.
-            # and finished.
+      },
+    ],
+    &quot;errors&quot;: [ # Output only. A stream of errors encountered when the trigger was activated. Repeated
+        # errors may result in the JobTrigger automatically being paused.
+        # Will return the last 100 errors. Whenever the JobTrigger is modified
+        # this list will be cleared.
+      { # Details information about an error encountered during job execution or
+          # the results of an unsuccessful activation of the JobTrigger.
+        &quot;timestamps&quot;: [ # The times the error occurred.
+          &quot;A String&quot;,
+        ],
+        &quot;details&quot;: { # The `Status` type defines a logical error model that is suitable for # Detailed error codes and messages.
+            # different programming environments, including REST APIs and RPC APIs. It is
+            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+            # three pieces of data: error code, error message, and error details.
+            #
+            # You can find out more about this error model and how to work with it in the
+            # [API Design Guide](https://cloud.google.com/apis/design/errors).
+          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+          &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
+              # message types for APIs to use.
+            {
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+          &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
         },
       },
     ],
-    &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 100 chars)
-    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of a triggeredJob.
     &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of a triggeredJob.
     &quot;inspectJob&quot;: { # Controls what and how to inspect for findings. # For inspect jobs, a snapshot of the configuration.
-      &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # How and what to scan for.
-          # When used with redactContent only info_types and min_likelihood are currently
-          # used.
-        &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
-            # POSSIBLE.
-            # See https://cloud.google.com/dlp/docs/likelihood to learn more.
-        &quot;contentOptions&quot;: [ # List of options defining data content to scan.
-            # If empty, text, images, and other content will be included.
-          &quot;A String&quot;,
-        ],
-        &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
-            # InfoType values returned by ListInfoTypes or listed at
-            # https://cloud.google.com/dlp/docs/infotypes-reference.
-            #
-            # When no InfoTypes or CustomInfoTypes are specified in a request, the
-            # system may automatically choose what detectors to run. By default this may
-            # be all types, but may change over time as detectors are updated.
-            #
-            # If you need precise control and predictability as to what detectors are
-            # run you should specify specific InfoTypes listed in the reference,
-            # otherwise a default list will be used, which may change over time.
-          { # Type of information detected by the API.
-            &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. InfoType names should conform to the pattern
-                # `[a-zA-Z0-9_]{1,64}`.
-          },
-        ],
-        &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
-        &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
-            # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
-          { # Custom information type provided by the user. Used to find domain-specific
-              # sensitive information configurable to the data in question.
-            &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
-                # support reversing.
-                # such as
-                # [`CryptoReplaceFfxFpeConfig`](/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
-                # These types of transformations are
-                # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
-                # output. This should be used in conjunction with a field on the
-                # transformation such as `surrogate_info_type`. This CustomInfoType does
-                # not support the use of `detection_rules`.
-            },
-            &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
-                # altered by a detection rule if the finding meets the criteria specified by
-                # the rule. Defaults to `VERY_LIKELY` if not specified.
-            &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
-                # infoType, when the name matches one of existing infoTypes and that infoType
-                # is specified in `InspectContent.info_types` field. Specifying the latter
-                # adds findings to the one detected by the system. If built-in info type is
-                # not specified in `InspectContent.info_types` list then the name is treated
-                # as a custom info type.
-              &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. InfoType names should conform to the pattern
-                  # `[a-zA-Z0-9_]{1,64}`.
-            },
-            &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
-              &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                  # specified, the entire match is returned. No more than 3 may be included.
-                42,
-              ],
-              &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                  # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                  # google/re2 repository on GitHub.
-            },
-            &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
-                # Rules are applied in order that they are specified. Not supported for the
-                # `surrogate_type` CustomInfoType.
-              { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
-                  # `CustomInfoType` to alter behavior under certain circumstances, depending
-                  # on the specific details of the rule. Not supported for the `surrogate_type`
-                  # custom infoType.
-                &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                    # proximity of hotwords.
-                  &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                      # part of a detection rule.
-                    &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                        # levels. For example, if a finding would be `POSSIBLE` without the
-                        # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                        # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                        # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                        # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                        # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                        # a final likelihood of `LIKELY`.
-                    &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                  },
-                  &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                        # specified, the entire match is returned. No more than 3 may be included.
-                      42,
-                    ],
-                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                        # google/re2 repository on GitHub.
-                  },
-                  &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                      # The total length of the window cannot exceed 1000 characters. Note that
-                      # the finding itself will be included in the window, so that hotwords may
-                      # be used to match substrings of the finding itself. For example, the
-                      # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                      # adjusted upwards if the area code is known to be the local area code of
-                      # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                      # is the area code in question.
-                      # rule.
-                    &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                    &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                  },
-                },
-              },
-            ],
-            &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
-                # to be returned. It still can be used for rules matching.
-            &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
-                # be used to match sensitive information specific to the data, such as a list
-                # of employee IDs or job titles.
-                #
-                # Dictionary words are case-insensitive and all characters other than letters
-                # and digits in the unicode [Basic Multilingual
-                # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                # will be replaced with whitespace when scanning for matches, so the
-                # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                # surrounding any match must be of a different type than the adjacent
-                # characters within the word, so letters must be next to non-letters and
-                # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                # match the first three letters of the text &quot;jen123&quot; but will return no
-                # matches for &quot;jennifer&quot;.
-                #
-                # Dictionary words containing a large number of characters that are not
-                # letters or digits may result in unexpected findings because such characters
-                # are treated as whitespace. The
-                # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                # the size limits of dictionaries. For dictionaries that do not fit within
-                # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                # `StoredInfoType` API.
-              &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                    # at least one phrase and every phrase must contain at least 2 characters
-                    # that are letters or digits. [required]
-                  &quot;A String&quot;,
-                ],
-              },
-              &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                  # is accepted.
-                &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                    # Example: gs://[BUCKET_NAME]/dictionary.txt
-              },
-            },
-            &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
-                # `InspectDataSource`. Not currently supported in `InspectContent`.
-              &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
-                  # `organizations/433245324/storedInfoTypes/432452342` or
-                  # `projects/project-id/storedInfoTypes/432452342`.
-              &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
-                  # inspection was created. Output-only field, populated by the system.
-            },
-          },
-        ],
-        &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
-            # included in the response; see Finding.quote.
-        &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
-            # Exclusion rules, contained in the set are executed in the end, other
-            # rules are executed in the order they are specified for each info type.
-          { # Rule set for modifying a set of infoTypes to alter behavior under certain
-              # circumstances, depending on the specific details of the rules within the set.
-            &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
-              { # Type of information detected by the API.
-                &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. InfoType names should conform to the pattern
-                    # `[a-zA-Z0-9_]{1,64}`.
-              },
-            ],
-            &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
-              { # A single inspection rule to be applied to infoTypes, specified in
-                  # `InspectionRuleSet`.
-                &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                    # proximity of hotwords.
-                  &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                      # part of a detection rule.
-                    &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                        # levels. For example, if a finding would be `POSSIBLE` without the
-                        # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                        # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                        # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                        # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                        # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                        # a final likelihood of `LIKELY`.
-                    &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                  },
-                  &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                        # specified, the entire match is returned. No more than 3 may be included.
-                      42,
-                    ],
-                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                        # google/re2 repository on GitHub.
-                  },
-                  &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                      # The total length of the window cannot exceed 1000 characters. Note that
-                      # the finding itself will be included in the window, so that hotwords may
-                      # be used to match substrings of the finding itself. For example, the
-                      # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                      # adjusted upwards if the area code is known to be the local area code of
-                      # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                      # is the area code in question.
-                      # rule.
-                    &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                    &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                  },
-                },
-                &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
-                    # `InspectionRuleSet` are removed from results.
-                  &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
-                      # be used to match sensitive information specific to the data, such as a list
-                      # of employee IDs or job titles.
-                      #
-                      # Dictionary words are case-insensitive and all characters other than letters
-                      # and digits in the unicode [Basic Multilingual
-                      # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                      # will be replaced with whitespace when scanning for matches, so the
-                      # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                      # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                      # surrounding any match must be of a different type than the adjacent
-                      # characters within the word, so letters must be next to non-letters and
-                      # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                      # match the first three letters of the text &quot;jen123&quot; but will return no
-                      # matches for &quot;jennifer&quot;.
-                      #
-                      # Dictionary words containing a large number of characters that are not
-                      # letters or digits may result in unexpected findings because such characters
-                      # are treated as whitespace. The
-                      # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                      # the size limits of dictionaries. For dictionaries that do not fit within
-                      # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                      # `StoredInfoType` API.
-                    &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                      &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                          # at least one phrase and every phrase must contain at least 2 characters
-                          # that are letters or digits. [required]
-                        &quot;A String&quot;,
-                      ],
-                    },
-                    &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                        # is accepted.
-                      &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                          # Example: gs://[BUCKET_NAME]/dictionary.txt
-                    },
-                  },
-                  &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
-                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                        # specified, the entire match is returned. No more than 3 may be included.
-                      42,
-                    ],
-                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                        # google/re2 repository on GitHub.
-                  },
-                  &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
-                    &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
-                        # contained within with a finding of an infoType from this list. For
-                        # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
-                        # `exclusion_rule` containing `exclude_info_types.info_types` with
-                        # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
-                        # with EMAIL_ADDRESS finding.
-                        # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
-                        # finding, namely email address.
-                      { # Type of information detected by the API.
-                        &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. InfoType names should conform to the pattern
-                            # `[a-zA-Z0-9_]{1,64}`.
-                      },
-                    ],
-                  },
-                  &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
-                },
-              },
-            ],
-          },
-        ],
-        &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
-          &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
-              # When set within `InspectJobConfig`,
-              # the maximum returned is 2000 regardless if this is set higher.
-              # When set within `InspectContentRequest`, this field is ignored.
-          &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
-            { # Max findings configuration per infoType, per content item or long
-                # running DlpJob.
-              &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
-              &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
-                  # info_type should be provided. If InfoTypeLimit does not have an
-                  # info_type, the DLP API applies the limit against all info_types that
-                  # are found but not specified in another InfoTypeLimit.
-                &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. InfoType names should conform to the pattern
-                    # `[a-zA-Z0-9_]{1,64}`.
-              },
-            },
-          ],
-          &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
-              # When set within `InspectContentRequest`, the maximum returned is 2000
-              # regardless if this is set higher.
-        },
-      },
+      &quot;inspectTemplateName&quot;: &quot;A String&quot;, # If provided, will be used as the default for all values in InspectConfig.
+          # `inspect_config` will be merged into the values persisted as part of the
+          # template.
       &quot;actions&quot;: [ # Actions to execute at the completion of the job.
         { # A task to execute on the completion of a job.
             # See https://cloud.google.com/dlp/docs/concepts-actions to learn more.
-          &quot;publishSummaryToCscc&quot;: { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha).
-              # Command Center (CSCC Alpha).
-              # This action is only available for projects which are parts of
-              # an organization and whitelisted for the alpha Cloud Security Command
-              # Center.
-              # The action will publish count of finding instances and their info types.
-              # The summary of findings will be persisted in CSCC and are governed by CSCC
-              # service-specific policy, see https://cloud.google.com/terms/service-terms
-              # Only a single instance of this action can be specified.
+          &quot;publishToStackdriver&quot;: { # Enable Stackdriver metric dlp.googleapis.com/finding_count. This # Enable Stackdriver metric dlp.googleapis.com/finding_count.
+              # will publish a metric to stack driver on each infotype requested and
+              # how many findings were found for it. CustomDetectors will be bucketed
+              # as &#x27;Custom&#x27; under the Stackdriver label &#x27;info_type&#x27;.
+          },
+          &quot;publishFindingsToCloudDataCatalog&quot;: { # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the # Publish findings to Cloud Datahub.
+              # results of the DlpJob will be applied to the entry for the resource scanned
+              # in Cloud Data Catalog. Any labels previously written by another DlpJob will
+              # be deleted. InfoType naming patterns are strictly enforced when using this
+              # feature. Note that the findings will be persisted in Cloud Data Catalog
+              # storage and are governed by Data Catalog service-specific policy, see
+              # https://cloud.google.com/terms/service-terms
+              # Only a single instance of this action can be specified and only allowed if
+              # all resources being scanned are BigQuery tables.
               # Compatible with: Inspect
           },
           &quot;jobNotificationEmails&quot;: { # Enable email notification to project owners and editors on jobs&#x27;s # Enable email notification for project owners and editors on job&#x27;s
               # completion/failure.
               # completion/failure.
           },
+          &quot;pubSub&quot;: { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic.
+              # message contains a single field, `DlpJobName`, which is equal to the
+              # finished job&#x27;s
+              # [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
+              # Compatible with: Inspect, Risk
+            &quot;topic&quot;: &quot;A String&quot;, # Cloud Pub/Sub topic to send notifications to. The topic must have given
+                # publishing access rights to the DLP API service account executing
+                # the long running DlpJob sending the notifications.
+                # Format is projects/{project}/topics/{topic}.
+          },
           &quot;saveFindings&quot;: { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location.
               # OutputStorageConfig. Only a single instance of this action can be
               # specified.
               # Compatible with: Inspect, Risk
             &quot;outputConfig&quot;: { # Cloud repository for storing output. # Location to store findings outside of DLP.
+              &quot;outputSchema&quot;: &quot;A String&quot;, # Schema used for writing the findings for Inspect jobs. This field is only
+                  # used for Inspect and must be unspecified for Risk jobs. Columns are derived
+                  # from the `Finding` object. If appending to an existing table, any columns
+                  # from the predefined schema that are missing will be added. No columns in
+                  # the existing table will be deleted.
+                  #
+                  # If unspecified, then all available columns will be used for a new table or
+                  # an (existing) table with no schema, and no changes will be made to an
+                  # existing table that has a schema.
+                  # Only for use with external storage.
               &quot;table&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing
                   # dataset. If table_id is not set a new one will be generated
                   # for you with the following format:
@@ -3010,137 +2718,43 @@
                 &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
                 &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
               },
-              &quot;outputSchema&quot;: &quot;A String&quot;, # Schema used for writing the findings for Inspect jobs. This field is only
-                  # used for Inspect and must be unspecified for Risk jobs. Columns are derived
-                  # from the `Finding` object. If appending to an existing table, any columns
-                  # from the predefined schema that are missing will be added. No columns in
-                  # the existing table will be deleted.
-                  #
-                  # If unspecified, then all available columns will be used for a new table or
-                  # an (existing) table with no schema, and no changes will be made to an
-                  # existing table that has a schema.
-                  # Only for use with external storage.
             },
           },
-          &quot;pubSub&quot;: { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic.
-              # message contains a single field, `DlpJobName`, which is equal to the
-              # finished job&#x27;s
-              # [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
-              # Compatible with: Inspect, Risk
-            &quot;topic&quot;: &quot;A String&quot;, # Cloud Pub/Sub topic to send notifications to. The topic must have given
-                # publishing access rights to the DLP API service account executing
-                # the long running DlpJob sending the notifications.
-                # Format is projects/{project}/topics/{topic}.
-          },
-          &quot;publishFindingsToCloudDataCatalog&quot;: { # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the # Publish findings to Cloud Datahub.
-              # results of the DlpJob will be applied to the entry for the resource scanned
-              # in Cloud Data Catalog. Any labels previously written by another DlpJob will
-              # be deleted. InfoType naming patterns are strictly enforced when using this
-              # feature. Note that the findings will be persisted in Cloud Data Catalog
-              # storage and are governed by Data Catalog service-specific policy, see
-              # https://cloud.google.com/terms/service-terms
-              # Only a single instance of this action can be specified and only allowed if
-              # all resources being scanned are BigQuery tables.
+          &quot;publishSummaryToCscc&quot;: { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha).
+              # Command Center (CSCC Alpha).
+              # This action is only available for projects which are parts of
+              # an organization and whitelisted for the alpha Cloud Security Command
+              # Center.
+              # The action will publish count of finding instances and their info types.
+              # The summary of findings will be persisted in CSCC and are governed by CSCC
+              # service-specific policy, see https://cloud.google.com/terms/service-terms
+              # Only a single instance of this action can be specified.
               # Compatible with: Inspect
           },
-          &quot;publishToStackdriver&quot;: { # Enable Stackdriver metric dlp.googleapis.com/finding_count. This # Enable Stackdriver metric dlp.googleapis.com/finding_count.
-              # will publish a metric to stack driver on each infotype requested and
-              # how many findings were found for it. CustomDetectors will be bucketed
-              # as &#x27;Custom&#x27; under the Stackdriver label &#x27;info_type&#x27;.
-          },
         },
       ],
       &quot;storageConfig&quot;: { # Shared message indicating Cloud storage type. # The data to scan.
-        &quot;hybridOptions&quot;: { # Configuration to control jobs where the content being inspected is outside # Hybrid inspection options.
-            # Early access feature is in a pre-release state and might change or have
-            # limited support. For more information, see
-            # https://cloud.google.com/products#product-launch-stages.
-            # of Google Cloud Platform.
-          &quot;labels&quot;: { # To organize findings, these labels will be added to each finding.
-              #
-              # Label keys must be between 1 and 63 characters long and must conform
-              # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
-              #
-              # Label values must be between 0 and 63 characters long and must conform
-              # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
-              #
-              # No more than 10 labels can be associated with a given finding.
-              #
-              # Examples:
-              # * `&quot;environment&quot; : &quot;production&quot;`
-              # * `&quot;pipeline&quot; : &quot;etl&quot;`
-            &quot;a_key&quot;: &quot;A String&quot;,
-          },
-          &quot;description&quot;: &quot;A String&quot;, # A short description of where the data is coming from. Will be stored once
-              # in the job. 256 max length.
-          &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
-              # meaningful such as the columns that are primary keys.
-            &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
-                # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
-                # each finding so that the finding can be traced to the specific row it came
-                # from. No more than 3 may be provided.
-              { # General identifier of a data field in a storage service.
-                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-              },
-            ],
-          },
-          &quot;requiredFindingLabelKeys&quot;: [ # These are labels that each inspection request must include within their
-              # &#x27;finding_labels&#x27; map. Request may contain others, but any missing one of
-              # these will be rejected.
-              #
-              # Label keys must be between 1 and 63 characters long and must conform
-              # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
-              #
-              # No more than 10 keys can be required.
-            &quot;A String&quot;,
-          ],
-        },
-        &quot;datastoreOptions&quot;: { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options.
-          &quot;partitionId&quot;: { # Datastore partition ID. # A partition ID identifies a grouping of entities. The grouping is always
-              # by project and namespace, however the namespace ID may be empty.
-              # A partition ID identifies a grouping of entities. The grouping is always
-              # by project and namespace, however the namespace ID may be empty.
-              #
-              # A partition ID contains several dimensions:
-              # project ID and namespace ID.
-            &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-            &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-          },
-          &quot;kind&quot;: { # A representation of a Datastore kind. # The kind to process.
-            &quot;name&quot;: &quot;A String&quot;, # The name of the kind.
-          },
-        },
-        &quot;timespanConfig&quot;: { # Configuration of the timespan of the items to include in scanning.
-            # Currently only supported when inspecting Google Cloud Storage and BigQuery.
-          &quot;timestampField&quot;: { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items.
-              # Used for data sources like Datastore and BigQuery.
-              #
-              # For BigQuery:
-              # Required to filter out rows based on the given start and
-              # end times. If not specified and the table was modified between the given
-              # start and end times, the entire table will be scanned.
-              # The valid data types of the timestamp field are: `INTEGER`, `DATE`,
-              # `TIMESTAMP`, or `DATETIME` BigQuery column.
-              #
-              # For Datastore.
-              # Valid data types of the timestamp field are: `TIMESTAMP`.
-              # Datastore entity will be scanned if the timestamp property does not
-              # exist or its value is empty or invalid.
-            &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-          },
-          &quot;enableAutoPopulationOfTimespanConfig&quot;: True or False, # When the job is started by a JobTrigger we will automatically figure out
-              # a valid start_time to avoid scanning files that have not been modified
-              # since the last time the JobTrigger executed. This will be based on the
-              # time of the execution of the last run of the JobTrigger.
-          &quot;endTime&quot;: &quot;A String&quot;, # Exclude files or rows newer than this value.
-              # If set to zero, no upper time limit is applied.
-          &quot;startTime&quot;: &quot;A String&quot;, # Exclude files or rows older than this value.
-        },
         &quot;cloudStorageOptions&quot;: { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options.
             # bucket.
+          &quot;bytesLimitPerFilePercent&quot;: 42, # Max percentage of bytes to scan from a file. The rest are omitted. The
+              # number of bytes scanned is rounded down. Must be between 0 and 100,
+              # inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one
+              # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
+          &quot;fileTypes&quot;: [ # List of file type groups to include in the scan.
+              # If empty, all files are scanned and available data format processors
+              # are applied. In addition, the binary content of the selected files
+              # is always scanned as well.
+              # Images are scanned only as binary if the specified region
+              # does not support image inspection and no file_types were specified.
+              # Image inspection is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;, and &#x27;europe&#x27;.
+            &quot;A String&quot;,
+          ],
           &quot;bytesLimitPerFile&quot;: &quot;A String&quot;, # Max number of bytes to scan from a file. If a scanned file&#x27;s size is bigger
               # than this value then the rest of the bytes are omitted. Only one
               # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
+          &quot;filesLimitPercent&quot;: 42, # Limits the number of files to scan to this percentage of the input FileSet.
+              # Number of files scanned is rounded down. Must be between 0 and 100,
+              # inclusively. Both 0 and 100 means no limit. Defaults to 0.
           &quot;fileSet&quot;: { # Set of files to scan. # The set of one or more files to scan.
             &quot;regexFileSet&quot;: { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or
                 # `regex_file_set` must be set.
@@ -3176,20 +2790,20 @@
                 # include all files directly under `gs://mybucket/directory/`, without matching
                 # across `/`
               &quot;bucketName&quot;: &quot;A String&quot;, # The name of a Cloud Storage bucket. Required.
-              &quot;includeRegex&quot;: [ # A list of regular expressions matching file paths to include. All files in
+              &quot;excludeRegex&quot;: [ # A list of regular expressions matching file paths to exclude. All files in
                   # the bucket that match at least one of these regular expressions will be
-                  # included in the set of files, except for those that also match an item in
-                  # `exclude_regex`. Leaving this field empty will match all files by default
-                  # (this is equivalent to including `.*` in the list).
+                  # excluded from the scan.
                   #
                   # Regular expressions use RE2
                   # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
                   # under the google/re2 repository on GitHub.
                 &quot;A String&quot;,
               ],
-              &quot;excludeRegex&quot;: [ # A list of regular expressions matching file paths to exclude. All files in
+              &quot;includeRegex&quot;: [ # A list of regular expressions matching file paths to include. All files in
                   # the bucket that match at least one of these regular expressions will be
-                  # excluded from the scan.
+                  # included in the set of files, except for those that also match an item in
+                  # `exclude_regex`. Leaving this field empty will match all files by default
+                  # (this is equivalent to including `.*` in the list).
                   #
                   # Regular expressions use RE2
                   # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
@@ -3208,25 +2822,10 @@
                 #
                 # Exactly one of `url` or `regex_file_set` must be set.
           },
-          &quot;filesLimitPercent&quot;: 42, # Limits the number of files to scan to this percentage of the input FileSet.
-              # Number of files scanned is rounded down. Must be between 0 and 100,
-              # inclusively. Both 0 and 100 means no limit. Defaults to 0.
-          &quot;fileTypes&quot;: [ # List of file type groups to include in the scan.
-              # If empty, all files are scanned and available data format processors
-              # are applied. In addition, the binary content of the selected files
-              # is always scanned as well.
-              # Images are scanned only as binary if the specified region
-              # does not support image inspection and no file_types were specified.
-              # Image inspection is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;, and &#x27;europe&#x27;.
-            &quot;A String&quot;,
-          ],
           &quot;sampleMethod&quot;: &quot;A String&quot;,
-          &quot;bytesLimitPerFilePercent&quot;: 42, # Max percentage of bytes to scan from a file. The rest are omitted. The
-              # number of bytes scanned is rounded down. Must be between 0 and 100,
-              # inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one
-              # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
         },
         &quot;bigQueryOptions&quot;: { # Options defining BigQuery table and row identifiers. # BigQuery options.
+          &quot;sampleMethod&quot;: &quot;A String&quot;,
           &quot;tableReference&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference.
               # identified  by its project_id, dataset_id, and table_name. Within a query
               # a table is often referenced with a string in the format of:
@@ -3237,15 +2836,6 @@
             &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
             &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
           },
-          &quot;identifyingFields&quot;: [ # Table fields that may uniquely identify a row within the table. When
-              # `actions.saveFindings.outputConfig.table` is specified, the values of
-              # columns specified here are available in the output table under
-              # `location.content_locations.record_location.record_key.id_values`. Nested
-              # fields such as `person.birthdate.year` are allowed.
-            { # General identifier of a data field in a storage service.
-              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-            },
-          ],
           &quot;rowsLimitPercent&quot;: 42, # Max percentage of rows to scan. The rest are omitted. The number of rows
               # scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and
               # 100 means no limit. Defaults to 0. Only one of rows_limit and
@@ -3255,20 +2845,429 @@
               # rest of the rows are omitted. If not set, or if set to 0, all rows will be
               # scanned. Only one of rows_limit and rows_limit_percent can be specified.
               # Cannot be used in conjunction with TimespanConfig.
+          &quot;identifyingFields&quot;: [ # Table fields that may uniquely identify a row within the table. When
+              # `actions.saveFindings.outputConfig.table` is specified, the values of
+              # columns specified here are available in the output table under
+              # `location.content_locations.record_location.record_key.id_values`. Nested
+              # fields such as `person.birthdate.year` are allowed.
+            { # General identifier of a data field in a storage service.
+              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+            },
+          ],
           &quot;excludedFields&quot;: [ # References to fields excluded from scanning. This allows you to skip
               # inspection of entire columns which you know have no findings.
             { # General identifier of a data field in a storage service.
               &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
             },
           ],
-          &quot;sampleMethod&quot;: &quot;A String&quot;,
+        },
+        &quot;timespanConfig&quot;: { # Configuration of the timespan of the items to include in scanning.
+            # Currently only supported when inspecting Google Cloud Storage and BigQuery.
+          &quot;timestampField&quot;: { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items.
+              # Used for data sources like Datastore and BigQuery.
+              #
+              # For BigQuery:
+              # Required to filter out rows based on the given start and
+              # end times. If not specified and the table was modified between the given
+              # start and end times, the entire table will be scanned.
+              # The valid data types of the timestamp field are: `INTEGER`, `DATE`,
+              # `TIMESTAMP`, or `DATETIME` BigQuery column.
+              #
+              # For Datastore.
+              # Valid data types of the timestamp field are: `TIMESTAMP`.
+              # Datastore entity will be scanned if the timestamp property does not
+              # exist or its value is empty or invalid.
+            &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+          },
+          &quot;enableAutoPopulationOfTimespanConfig&quot;: True or False, # When the job is started by a JobTrigger we will automatically figure out
+              # a valid start_time to avoid scanning files that have not been modified
+              # since the last time the JobTrigger executed. This will be based on the
+              # time of the execution of the last run of the JobTrigger.
+          &quot;startTime&quot;: &quot;A String&quot;, # Exclude files or rows older than this value.
+          &quot;endTime&quot;: &quot;A String&quot;, # Exclude files or rows newer than this value.
+              # If set to zero, no upper time limit is applied.
+        },
+        &quot;datastoreOptions&quot;: { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options.
+          &quot;kind&quot;: { # A representation of a Datastore kind. # The kind to process.
+            &quot;name&quot;: &quot;A String&quot;, # The name of the kind.
+          },
+          &quot;partitionId&quot;: { # Datastore partition ID. # A partition ID identifies a grouping of entities. The grouping is always
+              # by project and namespace, however the namespace ID may be empty.
+              # A partition ID identifies a grouping of entities. The grouping is always
+              # by project and namespace, however the namespace ID may be empty.
+              #
+              # A partition ID contains several dimensions:
+              # project ID and namespace ID.
+            &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+            &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+          },
+        },
+        &quot;hybridOptions&quot;: { # Configuration to control jobs where the content being inspected is outside # Hybrid inspection options.
+            # Early access feature is in a pre-release state and might change or have
+            # limited support. For more information, see
+            # https://cloud.google.com/products#product-launch-stages.
+            # of Google Cloud Platform.
+          &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
+              # meaningful such as the columns that are primary keys.
+            &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
+                # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
+                # each finding so that the finding can be traced to the specific row it came
+                # from. No more than 3 may be provided.
+              { # General identifier of a data field in a storage service.
+                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+              },
+            ],
+          },
+          &quot;requiredFindingLabelKeys&quot;: [ # These are labels that each inspection request must include within their
+              # &#x27;finding_labels&#x27; map. Request may contain others, but any missing one of
+              # these will be rejected.
+              #
+              # Label keys must be between 1 and 63 characters long and must conform
+              # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+              #
+              # No more than 10 keys can be required.
+            &quot;A String&quot;,
+          ],
+          &quot;labels&quot;: { # To organize findings, these labels will be added to each finding.
+              #
+              # Label keys must be between 1 and 63 characters long and must conform
+              # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+              #
+              # Label values must be between 0 and 63 characters long and must conform
+              # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
+              #
+              # No more than 10 labels can be associated with a given finding.
+              #
+              # Examples:
+              # * `&quot;environment&quot; : &quot;production&quot;`
+              # * `&quot;pipeline&quot; : &quot;etl&quot;`
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+          &quot;description&quot;: &quot;A String&quot;, # A short description of where the data is coming from. Will be stored once
+              # in the job. 256 max length.
         },
       },
-      &quot;inspectTemplateName&quot;: &quot;A String&quot;, # If provided, will be used as the default for all values in InspectConfig.
-          # `inspect_config` will be merged into the values persisted as part of the
-          # template.
+      &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # How and what to scan for.
+          # When used with redactContent only info_types and min_likelihood are currently
+          # used.
+        &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
+            # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
+          { # Custom information type provided by the user. Used to find domain-specific
+              # sensitive information configurable to the data in question.
+            &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
+                # be used to match sensitive information specific to the data, such as a list
+                # of employee IDs or job titles.
+                #
+                # Dictionary words are case-insensitive and all characters other than letters
+                # and digits in the unicode [Basic Multilingual
+                # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                # will be replaced with whitespace when scanning for matches, so the
+                # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                # surrounding any match must be of a different type than the adjacent
+                # characters within the word, so letters must be next to non-letters and
+                # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                # match the first three letters of the text &quot;jen123&quot; but will return no
+                # matches for &quot;jennifer&quot;.
+                #
+                # Dictionary words containing a large number of characters that are not
+                # letters or digits may result in unexpected findings because such characters
+                # are treated as whitespace. The
+                # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                # the size limits of dictionaries. For dictionaries that do not fit within
+                # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                # `StoredInfoType` API.
+              &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                  # is accepted.
+                &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                    # Example: gs://[BUCKET_NAME]/dictionary.txt
+              },
+              &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                    # at least one phrase and every phrase must contain at least 2 characters
+                    # that are letters or digits. [required]
+                  &quot;A String&quot;,
+                ],
+              },
+            },
+            &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
+                # infoType, when the name matches one of existing infoTypes and that infoType
+                # is specified in `InspectContent.info_types` field. Specifying the latter
+                # adds findings to the one detected by the system. If built-in info type is
+                # not specified in `InspectContent.info_types` list then the name is treated
+                # as a custom info type.
+              &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}`.
+            },
+            &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
+                # altered by a detection rule if the finding meets the criteria specified by
+                # the rule. Defaults to `VERY_LIKELY` if not specified.
+            &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
+                # Rules are applied in order that they are specified. Not supported for the
+                # `surrogate_type` CustomInfoType.
+              { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
+                  # `CustomInfoType` to alter behavior under certain circumstances, depending
+                  # on the specific details of the rule. Not supported for the `surrogate_type`
+                  # custom infoType.
+                &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                    # proximity of hotwords.
+                  &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                      # The total length of the window cannot exceed 1000 characters. Note that
+                      # the finding itself will be included in the window, so that hotwords may
+                      # be used to match substrings of the finding itself. For example, the
+                      # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                      # adjusted upwards if the area code is known to be the local area code of
+                      # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                      # is the area code in question.
+                      # rule.
+                    &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                    &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                  },
+                  &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                      # part of a detection rule.
+                    &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                    &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                        # levels. For example, if a finding would be `POSSIBLE` without the
+                        # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                        # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                        # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                        # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                        # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                        # a final likelihood of `LIKELY`.
+                  },
+                  &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                        # specified, the entire match is returned. No more than 3 may be included.
+                      42,
+                    ],
+                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                        # google/re2 repository on GitHub.
+                  },
+                },
+              },
+            ],
+            &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
+                # support reversing.
+                # such as
+                # [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
+                # These types of transformations are
+                # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
+                # output. This should be used in conjunction with a field on the
+                # transformation such as `surrogate_info_type`. This CustomInfoType does
+                # not support the use of `detection_rules`.
+            },
+            &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
+              &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                  # specified, the entire match is returned. No more than 3 may be included.
+                42,
+              ],
+              &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                  # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                  # google/re2 repository on GitHub.
+            },
+            &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
+                # `InspectDataSource`. Not currently supported in `InspectContent`.
+              &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
+                  # `organizations/433245324/storedInfoTypes/432452342` or
+                  # `projects/project-id/storedInfoTypes/432452342`.
+              &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
+                  # inspection was created. Output-only field, populated by the system.
+            },
+            &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
+                # to be returned. It still can be used for rules matching.
+          },
+        ],
+        &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
+            # POSSIBLE.
+            # See https://cloud.google.com/dlp/docs/likelihood to learn more.
+        &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
+          &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
+              # When set within `InspectContentRequest`, the maximum returned is 2000
+              # regardless if this is set higher.
+          &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
+            { # Max findings configuration per infoType, per content item or long
+                # running DlpJob.
+              &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
+                  # info_type should be provided. If InfoTypeLimit does not have an
+                  # info_type, the DLP API applies the limit against all info_types that
+                  # are found but not specified in another InfoTypeLimit.
+                &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}`.
+              },
+              &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
+            },
+          ],
+          &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
+              # When set within `InspectJobConfig`,
+              # the maximum returned is 2000 regardless if this is set higher.
+              # When set within `InspectContentRequest`, this field is ignored.
+        },
+        &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
+        &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
+            # included in the response; see Finding.quote.
+        &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
+            # Exclusion rules, contained in the set are executed in the end, other
+            # rules are executed in the order they are specified for each info type.
+          { # Rule set for modifying a set of infoTypes to alter behavior under certain
+              # circumstances, depending on the specific details of the rules within the set.
+            &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
+              { # Type of information detected by the API.
+                &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}`.
+              },
+            ],
+            &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
+              { # A single inspection rule to be applied to infoTypes, specified in
+                  # `InspectionRuleSet`.
+                &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                    # proximity of hotwords.
+                  &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                      # The total length of the window cannot exceed 1000 characters. Note that
+                      # the finding itself will be included in the window, so that hotwords may
+                      # be used to match substrings of the finding itself. For example, the
+                      # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                      # adjusted upwards if the area code is known to be the local area code of
+                      # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                      # is the area code in question.
+                      # rule.
+                    &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                    &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                  },
+                  &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                      # part of a detection rule.
+                    &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                    &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                        # levels. For example, if a finding would be `POSSIBLE` without the
+                        # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                        # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                        # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                        # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                        # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                        # a final likelihood of `LIKELY`.
+                  },
+                  &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                        # specified, the entire match is returned. No more than 3 may be included.
+                      42,
+                    ],
+                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                        # google/re2 repository on GitHub.
+                  },
+                },
+                &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
+                    # `InspectionRuleSet` are removed from results.
+                  &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
+                  &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
+                      # be used to match sensitive information specific to the data, such as a list
+                      # of employee IDs or job titles.
+                      #
+                      # Dictionary words are case-insensitive and all characters other than letters
+                      # and digits in the unicode [Basic Multilingual
+                      # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                      # will be replaced with whitespace when scanning for matches, so the
+                      # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                      # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                      # surrounding any match must be of a different type than the adjacent
+                      # characters within the word, so letters must be next to non-letters and
+                      # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                      # match the first three letters of the text &quot;jen123&quot; but will return no
+                      # matches for &quot;jennifer&quot;.
+                      #
+                      # Dictionary words containing a large number of characters that are not
+                      # letters or digits may result in unexpected findings because such characters
+                      # are treated as whitespace. The
+                      # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                      # the size limits of dictionaries. For dictionaries that do not fit within
+                      # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                      # `StoredInfoType` API.
+                    &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                        # is accepted.
+                      &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                          # Example: gs://[BUCKET_NAME]/dictionary.txt
+                    },
+                    &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                      &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                          # at least one phrase and every phrase must contain at least 2 characters
+                          # that are letters or digits. [required]
+                        &quot;A String&quot;,
+                      ],
+                    },
+                  },
+                  &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
+                    &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
+                        # contained within with a finding of an infoType from this list. For
+                        # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
+                        # `exclusion_rule` containing `exclude_info_types.info_types` with
+                        # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
+                        # with EMAIL_ADDRESS finding.
+                        # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
+                        # finding, namely email address.
+                      { # Type of information detected by the API.
+                        &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}`.
+                      },
+                    ],
+                  },
+                  &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
+                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                        # specified, the entire match is returned. No more than 3 may be included.
+                      42,
+                    ],
+                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                        # google/re2 repository on GitHub.
+                  },
+                },
+              },
+            ],
+          },
+        ],
+        &quot;contentOptions&quot;: [ # List of options defining data content to scan.
+            # If empty, text, images, and other content will be included.
+          &quot;A String&quot;,
+        ],
+        &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
+            # InfoType values returned by ListInfoTypes or listed at
+            # https://cloud.google.com/dlp/docs/infotypes-reference.
+            #
+            # When no InfoTypes or CustomInfoTypes are specified in a request, the
+            # system may automatically choose what detectors to run. By default this may
+            # be all types, but may change over time as detectors are updated.
+            #
+            # If you need precise control and predictability as to what detectors are
+            # run you should specify specific InfoTypes listed in the reference,
+            # otherwise a default list will be used, which may change over time.
+          { # Type of information detected by the API.
+            &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}`.
+          },
+        ],
+      },
     },
-    &quot;status&quot;: &quot;A String&quot;, # Required. A status for this trigger.
+    &quot;name&quot;: &quot;A String&quot;, # Unique resource name for the triggeredJob, assigned by the service when the
+        # triggeredJob is created, for example
+        # `projects/dlp-test-project/jobTriggers/53234423`.
+    &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 100 chars)
+    &quot;lastRunTime&quot;: &quot;A String&quot;, # Output only. The timestamp of the last time this trigger executed.
+    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of a triggeredJob.
+    &quot;description&quot;: &quot;A String&quot;, # User provided description (max 256 chars)
   }</pre>
 </div>
 
@@ -3318,44 +3317,17 @@
 
     { # Contains a configuration to make dlp api calls on a repeating basis.
       # See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more.
-    &quot;lastRunTime&quot;: &quot;A String&quot;, # Output only. The timestamp of the last time this trigger executed.
-    &quot;name&quot;: &quot;A String&quot;, # Unique resource name for the triggeredJob, assigned by the service when the
-        # triggeredJob is created, for example
-        # `projects/dlp-test-project/jobTriggers/53234423`.
-    &quot;errors&quot;: [ # Output only. A stream of errors encountered when the trigger was activated. Repeated
-        # errors may result in the JobTrigger automatically being paused.
-        # Will return the last 100 errors. Whenever the JobTrigger is modified
-        # this list will be cleared.
-      { # Details information about an error encountered during job execution or
-          # the results of an unsuccessful activation of the JobTrigger.
-        &quot;details&quot;: { # The `Status` type defines a logical error model that is suitable for # Detailed error codes and messages.
-            # different programming environments, including REST APIs and RPC APIs. It is
-            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
-            # three pieces of data: error code, error message, and error details.
-            #
-            # You can find out more about this error model and how to work with it in the
-            # [API Design Guide](https://cloud.google.com/apis/design/errors).
-          &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
-              # user-facing error message should be localized and sent in the
-              # google.rpc.Status.details field, or localized by the client.
-          &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
-              # message types for APIs to use.
-            {
-              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-            },
-          ],
-          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-        },
-        &quot;timestamps&quot;: [ # The times the error occurred.
-          &quot;A String&quot;,
-        ],
-      },
-    ],
-    &quot;description&quot;: &quot;A String&quot;, # User provided description (max 256 chars)
+    &quot;status&quot;: &quot;A String&quot;, # Required. A status for this trigger.
     &quot;triggers&quot;: [ # A list of triggers which will be OR&#x27;ed together. Only one in the list
         # needs to trigger for a job to be started. The list may contain only
         # a single Schedule trigger and must have at least one object.
       { # What event needs to occur for a new job to be started.
+        &quot;manual&quot;: { # Job trigger option for hybrid jobs. Jobs must be manually created # For use with hybrid jobs. Jobs must be manually created and finished.
+            # Early access feature is in a pre-release state and might change or have
+            # limited support. For more information, see
+            # https://cloud.google.com/products#product-launch-stages.
+            # and finished.
+        },
         &quot;schedule&quot;: { # Schedule for triggeredJobs. # Create a job on a repeating basis based on the elapse of time.
           &quot;recurrencePeriodDuration&quot;: &quot;A String&quot;, # With this option a job is started a regular periodic basis. For
               # example: every day (86400 seconds).
@@ -3366,354 +3338,90 @@
               # This value must be set to a time duration greater than or equal
               # to 1 day and can be no longer than 60 days.
         },
-        &quot;manual&quot;: { # Job trigger option for hybrid jobs. Jobs must be manually created # For use with hybrid jobs. Jobs must be manually created and finished.
-            # Early access feature is in a pre-release state and might change or have
-            # limited support. For more information, see
-            # https://cloud.google.com/products#product-launch-stages.
-            # and finished.
+      },
+    ],
+    &quot;errors&quot;: [ # Output only. A stream of errors encountered when the trigger was activated. Repeated
+        # errors may result in the JobTrigger automatically being paused.
+        # Will return the last 100 errors. Whenever the JobTrigger is modified
+        # this list will be cleared.
+      { # Details information about an error encountered during job execution or
+          # the results of an unsuccessful activation of the JobTrigger.
+        &quot;timestamps&quot;: [ # The times the error occurred.
+          &quot;A String&quot;,
+        ],
+        &quot;details&quot;: { # The `Status` type defines a logical error model that is suitable for # Detailed error codes and messages.
+            # different programming environments, including REST APIs and RPC APIs. It is
+            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+            # three pieces of data: error code, error message, and error details.
+            #
+            # You can find out more about this error model and how to work with it in the
+            # [API Design Guide](https://cloud.google.com/apis/design/errors).
+          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+          &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
+              # message types for APIs to use.
+            {
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+          &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
         },
       },
     ],
-    &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 100 chars)
-    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of a triggeredJob.
     &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of a triggeredJob.
     &quot;inspectJob&quot;: { # Controls what and how to inspect for findings. # For inspect jobs, a snapshot of the configuration.
-      &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # How and what to scan for.
-          # When used with redactContent only info_types and min_likelihood are currently
-          # used.
-        &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
-            # POSSIBLE.
-            # See https://cloud.google.com/dlp/docs/likelihood to learn more.
-        &quot;contentOptions&quot;: [ # List of options defining data content to scan.
-            # If empty, text, images, and other content will be included.
-          &quot;A String&quot;,
-        ],
-        &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
-            # InfoType values returned by ListInfoTypes or listed at
-            # https://cloud.google.com/dlp/docs/infotypes-reference.
-            #
-            # When no InfoTypes or CustomInfoTypes are specified in a request, the
-            # system may automatically choose what detectors to run. By default this may
-            # be all types, but may change over time as detectors are updated.
-            #
-            # If you need precise control and predictability as to what detectors are
-            # run you should specify specific InfoTypes listed in the reference,
-            # otherwise a default list will be used, which may change over time.
-          { # Type of information detected by the API.
-            &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. InfoType names should conform to the pattern
-                # `[a-zA-Z0-9_]{1,64}`.
-          },
-        ],
-        &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
-        &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
-            # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
-          { # Custom information type provided by the user. Used to find domain-specific
-              # sensitive information configurable to the data in question.
-            &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
-                # support reversing.
-                # such as
-                # [`CryptoReplaceFfxFpeConfig`](/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
-                # These types of transformations are
-                # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
-                # output. This should be used in conjunction with a field on the
-                # transformation such as `surrogate_info_type`. This CustomInfoType does
-                # not support the use of `detection_rules`.
-            },
-            &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
-                # altered by a detection rule if the finding meets the criteria specified by
-                # the rule. Defaults to `VERY_LIKELY` if not specified.
-            &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
-                # infoType, when the name matches one of existing infoTypes and that infoType
-                # is specified in `InspectContent.info_types` field. Specifying the latter
-                # adds findings to the one detected by the system. If built-in info type is
-                # not specified in `InspectContent.info_types` list then the name is treated
-                # as a custom info type.
-              &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. InfoType names should conform to the pattern
-                  # `[a-zA-Z0-9_]{1,64}`.
-            },
-            &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
-              &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                  # specified, the entire match is returned. No more than 3 may be included.
-                42,
-              ],
-              &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                  # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                  # google/re2 repository on GitHub.
-            },
-            &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
-                # Rules are applied in order that they are specified. Not supported for the
-                # `surrogate_type` CustomInfoType.
-              { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
-                  # `CustomInfoType` to alter behavior under certain circumstances, depending
-                  # on the specific details of the rule. Not supported for the `surrogate_type`
-                  # custom infoType.
-                &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                    # proximity of hotwords.
-                  &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                      # part of a detection rule.
-                    &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                        # levels. For example, if a finding would be `POSSIBLE` without the
-                        # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                        # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                        # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                        # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                        # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                        # a final likelihood of `LIKELY`.
-                    &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                  },
-                  &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                        # specified, the entire match is returned. No more than 3 may be included.
-                      42,
-                    ],
-                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                        # google/re2 repository on GitHub.
-                  },
-                  &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                      # The total length of the window cannot exceed 1000 characters. Note that
-                      # the finding itself will be included in the window, so that hotwords may
-                      # be used to match substrings of the finding itself. For example, the
-                      # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                      # adjusted upwards if the area code is known to be the local area code of
-                      # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                      # is the area code in question.
-                      # rule.
-                    &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                    &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                  },
-                },
-              },
-            ],
-            &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
-                # to be returned. It still can be used for rules matching.
-            &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
-                # be used to match sensitive information specific to the data, such as a list
-                # of employee IDs or job titles.
-                #
-                # Dictionary words are case-insensitive and all characters other than letters
-                # and digits in the unicode [Basic Multilingual
-                # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                # will be replaced with whitespace when scanning for matches, so the
-                # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                # surrounding any match must be of a different type than the adjacent
-                # characters within the word, so letters must be next to non-letters and
-                # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                # match the first three letters of the text &quot;jen123&quot; but will return no
-                # matches for &quot;jennifer&quot;.
-                #
-                # Dictionary words containing a large number of characters that are not
-                # letters or digits may result in unexpected findings because such characters
-                # are treated as whitespace. The
-                # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                # the size limits of dictionaries. For dictionaries that do not fit within
-                # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                # `StoredInfoType` API.
-              &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                    # at least one phrase and every phrase must contain at least 2 characters
-                    # that are letters or digits. [required]
-                  &quot;A String&quot;,
-                ],
-              },
-              &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                  # is accepted.
-                &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                    # Example: gs://[BUCKET_NAME]/dictionary.txt
-              },
-            },
-            &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
-                # `InspectDataSource`. Not currently supported in `InspectContent`.
-              &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
-                  # `organizations/433245324/storedInfoTypes/432452342` or
-                  # `projects/project-id/storedInfoTypes/432452342`.
-              &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
-                  # inspection was created. Output-only field, populated by the system.
-            },
-          },
-        ],
-        &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
-            # included in the response; see Finding.quote.
-        &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
-            # Exclusion rules, contained in the set are executed in the end, other
-            # rules are executed in the order they are specified for each info type.
-          { # Rule set for modifying a set of infoTypes to alter behavior under certain
-              # circumstances, depending on the specific details of the rules within the set.
-            &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
-              { # Type of information detected by the API.
-                &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. InfoType names should conform to the pattern
-                    # `[a-zA-Z0-9_]{1,64}`.
-              },
-            ],
-            &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
-              { # A single inspection rule to be applied to infoTypes, specified in
-                  # `InspectionRuleSet`.
-                &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                    # proximity of hotwords.
-                  &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                      # part of a detection rule.
-                    &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                        # levels. For example, if a finding would be `POSSIBLE` without the
-                        # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                        # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                        # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                        # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                        # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                        # a final likelihood of `LIKELY`.
-                    &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                  },
-                  &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                        # specified, the entire match is returned. No more than 3 may be included.
-                      42,
-                    ],
-                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                        # google/re2 repository on GitHub.
-                  },
-                  &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                      # The total length of the window cannot exceed 1000 characters. Note that
-                      # the finding itself will be included in the window, so that hotwords may
-                      # be used to match substrings of the finding itself. For example, the
-                      # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                      # adjusted upwards if the area code is known to be the local area code of
-                      # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                      # is the area code in question.
-                      # rule.
-                    &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                    &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                  },
-                },
-                &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
-                    # `InspectionRuleSet` are removed from results.
-                  &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
-                      # be used to match sensitive information specific to the data, such as a list
-                      # of employee IDs or job titles.
-                      #
-                      # Dictionary words are case-insensitive and all characters other than letters
-                      # and digits in the unicode [Basic Multilingual
-                      # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                      # will be replaced with whitespace when scanning for matches, so the
-                      # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                      # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                      # surrounding any match must be of a different type than the adjacent
-                      # characters within the word, so letters must be next to non-letters and
-                      # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                      # match the first three letters of the text &quot;jen123&quot; but will return no
-                      # matches for &quot;jennifer&quot;.
-                      #
-                      # Dictionary words containing a large number of characters that are not
-                      # letters or digits may result in unexpected findings because such characters
-                      # are treated as whitespace. The
-                      # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                      # the size limits of dictionaries. For dictionaries that do not fit within
-                      # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                      # `StoredInfoType` API.
-                    &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                      &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                          # at least one phrase and every phrase must contain at least 2 characters
-                          # that are letters or digits. [required]
-                        &quot;A String&quot;,
-                      ],
-                    },
-                    &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                        # is accepted.
-                      &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                          # Example: gs://[BUCKET_NAME]/dictionary.txt
-                    },
-                  },
-                  &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
-                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                        # specified, the entire match is returned. No more than 3 may be included.
-                      42,
-                    ],
-                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                        # google/re2 repository on GitHub.
-                  },
-                  &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
-                    &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
-                        # contained within with a finding of an infoType from this list. For
-                        # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
-                        # `exclusion_rule` containing `exclude_info_types.info_types` with
-                        # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
-                        # with EMAIL_ADDRESS finding.
-                        # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
-                        # finding, namely email address.
-                      { # Type of information detected by the API.
-                        &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. InfoType names should conform to the pattern
-                            # `[a-zA-Z0-9_]{1,64}`.
-                      },
-                    ],
-                  },
-                  &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
-                },
-              },
-            ],
-          },
-        ],
-        &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
-          &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
-              # When set within `InspectJobConfig`,
-              # the maximum returned is 2000 regardless if this is set higher.
-              # When set within `InspectContentRequest`, this field is ignored.
-          &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
-            { # Max findings configuration per infoType, per content item or long
-                # running DlpJob.
-              &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
-              &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
-                  # info_type should be provided. If InfoTypeLimit does not have an
-                  # info_type, the DLP API applies the limit against all info_types that
-                  # are found but not specified in another InfoTypeLimit.
-                &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. InfoType names should conform to the pattern
-                    # `[a-zA-Z0-9_]{1,64}`.
-              },
-            },
-          ],
-          &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
-              # When set within `InspectContentRequest`, the maximum returned is 2000
-              # regardless if this is set higher.
-        },
-      },
+      &quot;inspectTemplateName&quot;: &quot;A String&quot;, # If provided, will be used as the default for all values in InspectConfig.
+          # `inspect_config` will be merged into the values persisted as part of the
+          # template.
       &quot;actions&quot;: [ # Actions to execute at the completion of the job.
         { # A task to execute on the completion of a job.
             # See https://cloud.google.com/dlp/docs/concepts-actions to learn more.
-          &quot;publishSummaryToCscc&quot;: { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha).
-              # Command Center (CSCC Alpha).
-              # This action is only available for projects which are parts of
-              # an organization and whitelisted for the alpha Cloud Security Command
-              # Center.
-              # The action will publish count of finding instances and their info types.
-              # The summary of findings will be persisted in CSCC and are governed by CSCC
-              # service-specific policy, see https://cloud.google.com/terms/service-terms
-              # Only a single instance of this action can be specified.
+          &quot;publishToStackdriver&quot;: { # Enable Stackdriver metric dlp.googleapis.com/finding_count. This # Enable Stackdriver metric dlp.googleapis.com/finding_count.
+              # will publish a metric to stack driver on each infotype requested and
+              # how many findings were found for it. CustomDetectors will be bucketed
+              # as &#x27;Custom&#x27; under the Stackdriver label &#x27;info_type&#x27;.
+          },
+          &quot;publishFindingsToCloudDataCatalog&quot;: { # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the # Publish findings to Cloud Datahub.
+              # results of the DlpJob will be applied to the entry for the resource scanned
+              # in Cloud Data Catalog. Any labels previously written by another DlpJob will
+              # be deleted. InfoType naming patterns are strictly enforced when using this
+              # feature. Note that the findings will be persisted in Cloud Data Catalog
+              # storage and are governed by Data Catalog service-specific policy, see
+              # https://cloud.google.com/terms/service-terms
+              # Only a single instance of this action can be specified and only allowed if
+              # all resources being scanned are BigQuery tables.
               # Compatible with: Inspect
           },
           &quot;jobNotificationEmails&quot;: { # Enable email notification to project owners and editors on jobs&#x27;s # Enable email notification for project owners and editors on job&#x27;s
               # completion/failure.
               # completion/failure.
           },
+          &quot;pubSub&quot;: { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic.
+              # message contains a single field, `DlpJobName`, which is equal to the
+              # finished job&#x27;s
+              # [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
+              # Compatible with: Inspect, Risk
+            &quot;topic&quot;: &quot;A String&quot;, # Cloud Pub/Sub topic to send notifications to. The topic must have given
+                # publishing access rights to the DLP API service account executing
+                # the long running DlpJob sending the notifications.
+                # Format is projects/{project}/topics/{topic}.
+          },
           &quot;saveFindings&quot;: { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location.
               # OutputStorageConfig. Only a single instance of this action can be
               # specified.
               # Compatible with: Inspect, Risk
             &quot;outputConfig&quot;: { # Cloud repository for storing output. # Location to store findings outside of DLP.
+              &quot;outputSchema&quot;: &quot;A String&quot;, # Schema used for writing the findings for Inspect jobs. This field is only
+                  # used for Inspect and must be unspecified for Risk jobs. Columns are derived
+                  # from the `Finding` object. If appending to an existing table, any columns
+                  # from the predefined schema that are missing will be added. No columns in
+                  # the existing table will be deleted.
+                  #
+                  # If unspecified, then all available columns will be used for a new table or
+                  # an (existing) table with no schema, and no changes will be made to an
+                  # existing table that has a schema.
+                  # Only for use with external storage.
               &quot;table&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing
                   # dataset. If table_id is not set a new one will be generated
                   # for you with the following format:
@@ -3737,137 +3445,43 @@
                 &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
                 &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
               },
-              &quot;outputSchema&quot;: &quot;A String&quot;, # Schema used for writing the findings for Inspect jobs. This field is only
-                  # used for Inspect and must be unspecified for Risk jobs. Columns are derived
-                  # from the `Finding` object. If appending to an existing table, any columns
-                  # from the predefined schema that are missing will be added. No columns in
-                  # the existing table will be deleted.
-                  #
-                  # If unspecified, then all available columns will be used for a new table or
-                  # an (existing) table with no schema, and no changes will be made to an
-                  # existing table that has a schema.
-                  # Only for use with external storage.
             },
           },
-          &quot;pubSub&quot;: { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic.
-              # message contains a single field, `DlpJobName`, which is equal to the
-              # finished job&#x27;s
-              # [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
-              # Compatible with: Inspect, Risk
-            &quot;topic&quot;: &quot;A String&quot;, # Cloud Pub/Sub topic to send notifications to. The topic must have given
-                # publishing access rights to the DLP API service account executing
-                # the long running DlpJob sending the notifications.
-                # Format is projects/{project}/topics/{topic}.
-          },
-          &quot;publishFindingsToCloudDataCatalog&quot;: { # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the # Publish findings to Cloud Datahub.
-              # results of the DlpJob will be applied to the entry for the resource scanned
-              # in Cloud Data Catalog. Any labels previously written by another DlpJob will
-              # be deleted. InfoType naming patterns are strictly enforced when using this
-              # feature. Note that the findings will be persisted in Cloud Data Catalog
-              # storage and are governed by Data Catalog service-specific policy, see
-              # https://cloud.google.com/terms/service-terms
-              # Only a single instance of this action can be specified and only allowed if
-              # all resources being scanned are BigQuery tables.
+          &quot;publishSummaryToCscc&quot;: { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha).
+              # Command Center (CSCC Alpha).
+              # This action is only available for projects which are parts of
+              # an organization and whitelisted for the alpha Cloud Security Command
+              # Center.
+              # The action will publish count of finding instances and their info types.
+              # The summary of findings will be persisted in CSCC and are governed by CSCC
+              # service-specific policy, see https://cloud.google.com/terms/service-terms
+              # Only a single instance of this action can be specified.
               # Compatible with: Inspect
           },
-          &quot;publishToStackdriver&quot;: { # Enable Stackdriver metric dlp.googleapis.com/finding_count. This # Enable Stackdriver metric dlp.googleapis.com/finding_count.
-              # will publish a metric to stack driver on each infotype requested and
-              # how many findings were found for it. CustomDetectors will be bucketed
-              # as &#x27;Custom&#x27; under the Stackdriver label &#x27;info_type&#x27;.
-          },
         },
       ],
       &quot;storageConfig&quot;: { # Shared message indicating Cloud storage type. # The data to scan.
-        &quot;hybridOptions&quot;: { # Configuration to control jobs where the content being inspected is outside # Hybrid inspection options.
-            # Early access feature is in a pre-release state and might change or have
-            # limited support. For more information, see
-            # https://cloud.google.com/products#product-launch-stages.
-            # of Google Cloud Platform.
-          &quot;labels&quot;: { # To organize findings, these labels will be added to each finding.
-              #
-              # Label keys must be between 1 and 63 characters long and must conform
-              # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
-              #
-              # Label values must be between 0 and 63 characters long and must conform
-              # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
-              #
-              # No more than 10 labels can be associated with a given finding.
-              #
-              # Examples:
-              # * `&quot;environment&quot; : &quot;production&quot;`
-              # * `&quot;pipeline&quot; : &quot;etl&quot;`
-            &quot;a_key&quot;: &quot;A String&quot;,
-          },
-          &quot;description&quot;: &quot;A String&quot;, # A short description of where the data is coming from. Will be stored once
-              # in the job. 256 max length.
-          &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
-              # meaningful such as the columns that are primary keys.
-            &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
-                # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
-                # each finding so that the finding can be traced to the specific row it came
-                # from. No more than 3 may be provided.
-              { # General identifier of a data field in a storage service.
-                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-              },
-            ],
-          },
-          &quot;requiredFindingLabelKeys&quot;: [ # These are labels that each inspection request must include within their
-              # &#x27;finding_labels&#x27; map. Request may contain others, but any missing one of
-              # these will be rejected.
-              #
-              # Label keys must be between 1 and 63 characters long and must conform
-              # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
-              #
-              # No more than 10 keys can be required.
-            &quot;A String&quot;,
-          ],
-        },
-        &quot;datastoreOptions&quot;: { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options.
-          &quot;partitionId&quot;: { # Datastore partition ID. # A partition ID identifies a grouping of entities. The grouping is always
-              # by project and namespace, however the namespace ID may be empty.
-              # A partition ID identifies a grouping of entities. The grouping is always
-              # by project and namespace, however the namespace ID may be empty.
-              #
-              # A partition ID contains several dimensions:
-              # project ID and namespace ID.
-            &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-            &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-          },
-          &quot;kind&quot;: { # A representation of a Datastore kind. # The kind to process.
-            &quot;name&quot;: &quot;A String&quot;, # The name of the kind.
-          },
-        },
-        &quot;timespanConfig&quot;: { # Configuration of the timespan of the items to include in scanning.
-            # Currently only supported when inspecting Google Cloud Storage and BigQuery.
-          &quot;timestampField&quot;: { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items.
-              # Used for data sources like Datastore and BigQuery.
-              #
-              # For BigQuery:
-              # Required to filter out rows based on the given start and
-              # end times. If not specified and the table was modified between the given
-              # start and end times, the entire table will be scanned.
-              # The valid data types of the timestamp field are: `INTEGER`, `DATE`,
-              # `TIMESTAMP`, or `DATETIME` BigQuery column.
-              #
-              # For Datastore.
-              # Valid data types of the timestamp field are: `TIMESTAMP`.
-              # Datastore entity will be scanned if the timestamp property does not
-              # exist or its value is empty or invalid.
-            &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-          },
-          &quot;enableAutoPopulationOfTimespanConfig&quot;: True or False, # When the job is started by a JobTrigger we will automatically figure out
-              # a valid start_time to avoid scanning files that have not been modified
-              # since the last time the JobTrigger executed. This will be based on the
-              # time of the execution of the last run of the JobTrigger.
-          &quot;endTime&quot;: &quot;A String&quot;, # Exclude files or rows newer than this value.
-              # If set to zero, no upper time limit is applied.
-          &quot;startTime&quot;: &quot;A String&quot;, # Exclude files or rows older than this value.
-        },
         &quot;cloudStorageOptions&quot;: { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options.
             # bucket.
+          &quot;bytesLimitPerFilePercent&quot;: 42, # Max percentage of bytes to scan from a file. The rest are omitted. The
+              # number of bytes scanned is rounded down. Must be between 0 and 100,
+              # inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one
+              # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
+          &quot;fileTypes&quot;: [ # List of file type groups to include in the scan.
+              # If empty, all files are scanned and available data format processors
+              # are applied. In addition, the binary content of the selected files
+              # is always scanned as well.
+              # Images are scanned only as binary if the specified region
+              # does not support image inspection and no file_types were specified.
+              # Image inspection is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;, and &#x27;europe&#x27;.
+            &quot;A String&quot;,
+          ],
           &quot;bytesLimitPerFile&quot;: &quot;A String&quot;, # Max number of bytes to scan from a file. If a scanned file&#x27;s size is bigger
               # than this value then the rest of the bytes are omitted. Only one
               # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
+          &quot;filesLimitPercent&quot;: 42, # Limits the number of files to scan to this percentage of the input FileSet.
+              # Number of files scanned is rounded down. Must be between 0 and 100,
+              # inclusively. Both 0 and 100 means no limit. Defaults to 0.
           &quot;fileSet&quot;: { # Set of files to scan. # The set of one or more files to scan.
             &quot;regexFileSet&quot;: { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or
                 # `regex_file_set` must be set.
@@ -3903,20 +3517,20 @@
                 # include all files directly under `gs://mybucket/directory/`, without matching
                 # across `/`
               &quot;bucketName&quot;: &quot;A String&quot;, # The name of a Cloud Storage bucket. Required.
-              &quot;includeRegex&quot;: [ # A list of regular expressions matching file paths to include. All files in
+              &quot;excludeRegex&quot;: [ # A list of regular expressions matching file paths to exclude. All files in
                   # the bucket that match at least one of these regular expressions will be
-                  # included in the set of files, except for those that also match an item in
-                  # `exclude_regex`. Leaving this field empty will match all files by default
-                  # (this is equivalent to including `.*` in the list).
+                  # excluded from the scan.
                   #
                   # Regular expressions use RE2
                   # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
                   # under the google/re2 repository on GitHub.
                 &quot;A String&quot;,
               ],
-              &quot;excludeRegex&quot;: [ # A list of regular expressions matching file paths to exclude. All files in
+              &quot;includeRegex&quot;: [ # A list of regular expressions matching file paths to include. All files in
                   # the bucket that match at least one of these regular expressions will be
-                  # excluded from the scan.
+                  # included in the set of files, except for those that also match an item in
+                  # `exclude_regex`. Leaving this field empty will match all files by default
+                  # (this is equivalent to including `.*` in the list).
                   #
                   # Regular expressions use RE2
                   # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
@@ -3935,25 +3549,10 @@
                 #
                 # Exactly one of `url` or `regex_file_set` must be set.
           },
-          &quot;filesLimitPercent&quot;: 42, # Limits the number of files to scan to this percentage of the input FileSet.
-              # Number of files scanned is rounded down. Must be between 0 and 100,
-              # inclusively. Both 0 and 100 means no limit. Defaults to 0.
-          &quot;fileTypes&quot;: [ # List of file type groups to include in the scan.
-              # If empty, all files are scanned and available data format processors
-              # are applied. In addition, the binary content of the selected files
-              # is always scanned as well.
-              # Images are scanned only as binary if the specified region
-              # does not support image inspection and no file_types were specified.
-              # Image inspection is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;, and &#x27;europe&#x27;.
-            &quot;A String&quot;,
-          ],
           &quot;sampleMethod&quot;: &quot;A String&quot;,
-          &quot;bytesLimitPerFilePercent&quot;: 42, # Max percentage of bytes to scan from a file. The rest are omitted. The
-              # number of bytes scanned is rounded down. Must be between 0 and 100,
-              # inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one
-              # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
         },
         &quot;bigQueryOptions&quot;: { # Options defining BigQuery table and row identifiers. # BigQuery options.
+          &quot;sampleMethod&quot;: &quot;A String&quot;,
           &quot;tableReference&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference.
               # identified  by its project_id, dataset_id, and table_name. Within a query
               # a table is often referenced with a string in the format of:
@@ -3964,15 +3563,6 @@
             &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
             &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
           },
-          &quot;identifyingFields&quot;: [ # Table fields that may uniquely identify a row within the table. When
-              # `actions.saveFindings.outputConfig.table` is specified, the values of
-              # columns specified here are available in the output table under
-              # `location.content_locations.record_location.record_key.id_values`. Nested
-              # fields such as `person.birthdate.year` are allowed.
-            { # General identifier of a data field in a storage service.
-              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-            },
-          ],
           &quot;rowsLimitPercent&quot;: 42, # Max percentage of rows to scan. The rest are omitted. The number of rows
               # scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and
               # 100 means no limit. Defaults to 0. Only one of rows_limit and
@@ -3982,20 +3572,429 @@
               # rest of the rows are omitted. If not set, or if set to 0, all rows will be
               # scanned. Only one of rows_limit and rows_limit_percent can be specified.
               # Cannot be used in conjunction with TimespanConfig.
+          &quot;identifyingFields&quot;: [ # Table fields that may uniquely identify a row within the table. When
+              # `actions.saveFindings.outputConfig.table` is specified, the values of
+              # columns specified here are available in the output table under
+              # `location.content_locations.record_location.record_key.id_values`. Nested
+              # fields such as `person.birthdate.year` are allowed.
+            { # General identifier of a data field in a storage service.
+              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+            },
+          ],
           &quot;excludedFields&quot;: [ # References to fields excluded from scanning. This allows you to skip
               # inspection of entire columns which you know have no findings.
             { # General identifier of a data field in a storage service.
               &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
             },
           ],
-          &quot;sampleMethod&quot;: &quot;A String&quot;,
+        },
+        &quot;timespanConfig&quot;: { # Configuration of the timespan of the items to include in scanning.
+            # Currently only supported when inspecting Google Cloud Storage and BigQuery.
+          &quot;timestampField&quot;: { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items.
+              # Used for data sources like Datastore and BigQuery.
+              #
+              # For BigQuery:
+              # Required to filter out rows based on the given start and
+              # end times. If not specified and the table was modified between the given
+              # start and end times, the entire table will be scanned.
+              # The valid data types of the timestamp field are: `INTEGER`, `DATE`,
+              # `TIMESTAMP`, or `DATETIME` BigQuery column.
+              #
+              # For Datastore.
+              # Valid data types of the timestamp field are: `TIMESTAMP`.
+              # Datastore entity will be scanned if the timestamp property does not
+              # exist or its value is empty or invalid.
+            &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+          },
+          &quot;enableAutoPopulationOfTimespanConfig&quot;: True or False, # When the job is started by a JobTrigger we will automatically figure out
+              # a valid start_time to avoid scanning files that have not been modified
+              # since the last time the JobTrigger executed. This will be based on the
+              # time of the execution of the last run of the JobTrigger.
+          &quot;startTime&quot;: &quot;A String&quot;, # Exclude files or rows older than this value.
+          &quot;endTime&quot;: &quot;A String&quot;, # Exclude files or rows newer than this value.
+              # If set to zero, no upper time limit is applied.
+        },
+        &quot;datastoreOptions&quot;: { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options.
+          &quot;kind&quot;: { # A representation of a Datastore kind. # The kind to process.
+            &quot;name&quot;: &quot;A String&quot;, # The name of the kind.
+          },
+          &quot;partitionId&quot;: { # Datastore partition ID. # A partition ID identifies a grouping of entities. The grouping is always
+              # by project and namespace, however the namespace ID may be empty.
+              # A partition ID identifies a grouping of entities. The grouping is always
+              # by project and namespace, however the namespace ID may be empty.
+              #
+              # A partition ID contains several dimensions:
+              # project ID and namespace ID.
+            &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+            &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+          },
+        },
+        &quot;hybridOptions&quot;: { # Configuration to control jobs where the content being inspected is outside # Hybrid inspection options.
+            # Early access feature is in a pre-release state and might change or have
+            # limited support. For more information, see
+            # https://cloud.google.com/products#product-launch-stages.
+            # of Google Cloud Platform.
+          &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
+              # meaningful such as the columns that are primary keys.
+            &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
+                # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
+                # each finding so that the finding can be traced to the specific row it came
+                # from. No more than 3 may be provided.
+              { # General identifier of a data field in a storage service.
+                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+              },
+            ],
+          },
+          &quot;requiredFindingLabelKeys&quot;: [ # These are labels that each inspection request must include within their
+              # &#x27;finding_labels&#x27; map. Request may contain others, but any missing one of
+              # these will be rejected.
+              #
+              # Label keys must be between 1 and 63 characters long and must conform
+              # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+              #
+              # No more than 10 keys can be required.
+            &quot;A String&quot;,
+          ],
+          &quot;labels&quot;: { # To organize findings, these labels will be added to each finding.
+              #
+              # Label keys must be between 1 and 63 characters long and must conform
+              # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+              #
+              # Label values must be between 0 and 63 characters long and must conform
+              # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
+              #
+              # No more than 10 labels can be associated with a given finding.
+              #
+              # Examples:
+              # * `&quot;environment&quot; : &quot;production&quot;`
+              # * `&quot;pipeline&quot; : &quot;etl&quot;`
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+          &quot;description&quot;: &quot;A String&quot;, # A short description of where the data is coming from. Will be stored once
+              # in the job. 256 max length.
         },
       },
-      &quot;inspectTemplateName&quot;: &quot;A String&quot;, # If provided, will be used as the default for all values in InspectConfig.
-          # `inspect_config` will be merged into the values persisted as part of the
-          # template.
+      &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # How and what to scan for.
+          # When used with redactContent only info_types and min_likelihood are currently
+          # used.
+        &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
+            # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
+          { # Custom information type provided by the user. Used to find domain-specific
+              # sensitive information configurable to the data in question.
+            &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
+                # be used to match sensitive information specific to the data, such as a list
+                # of employee IDs or job titles.
+                #
+                # Dictionary words are case-insensitive and all characters other than letters
+                # and digits in the unicode [Basic Multilingual
+                # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                # will be replaced with whitespace when scanning for matches, so the
+                # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                # surrounding any match must be of a different type than the adjacent
+                # characters within the word, so letters must be next to non-letters and
+                # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                # match the first three letters of the text &quot;jen123&quot; but will return no
+                # matches for &quot;jennifer&quot;.
+                #
+                # Dictionary words containing a large number of characters that are not
+                # letters or digits may result in unexpected findings because such characters
+                # are treated as whitespace. The
+                # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                # the size limits of dictionaries. For dictionaries that do not fit within
+                # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                # `StoredInfoType` API.
+              &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                  # is accepted.
+                &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                    # Example: gs://[BUCKET_NAME]/dictionary.txt
+              },
+              &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                    # at least one phrase and every phrase must contain at least 2 characters
+                    # that are letters or digits. [required]
+                  &quot;A String&quot;,
+                ],
+              },
+            },
+            &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
+                # infoType, when the name matches one of existing infoTypes and that infoType
+                # is specified in `InspectContent.info_types` field. Specifying the latter
+                # adds findings to the one detected by the system. If built-in info type is
+                # not specified in `InspectContent.info_types` list then the name is treated
+                # as a custom info type.
+              &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}`.
+            },
+            &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
+                # altered by a detection rule if the finding meets the criteria specified by
+                # the rule. Defaults to `VERY_LIKELY` if not specified.
+            &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
+                # Rules are applied in order that they are specified. Not supported for the
+                # `surrogate_type` CustomInfoType.
+              { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
+                  # `CustomInfoType` to alter behavior under certain circumstances, depending
+                  # on the specific details of the rule. Not supported for the `surrogate_type`
+                  # custom infoType.
+                &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                    # proximity of hotwords.
+                  &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                      # The total length of the window cannot exceed 1000 characters. Note that
+                      # the finding itself will be included in the window, so that hotwords may
+                      # be used to match substrings of the finding itself. For example, the
+                      # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                      # adjusted upwards if the area code is known to be the local area code of
+                      # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                      # is the area code in question.
+                      # rule.
+                    &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                    &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                  },
+                  &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                      # part of a detection rule.
+                    &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                    &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                        # levels. For example, if a finding would be `POSSIBLE` without the
+                        # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                        # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                        # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                        # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                        # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                        # a final likelihood of `LIKELY`.
+                  },
+                  &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                        # specified, the entire match is returned. No more than 3 may be included.
+                      42,
+                    ],
+                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                        # google/re2 repository on GitHub.
+                  },
+                },
+              },
+            ],
+            &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
+                # support reversing.
+                # such as
+                # [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
+                # These types of transformations are
+                # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
+                # output. This should be used in conjunction with a field on the
+                # transformation such as `surrogate_info_type`. This CustomInfoType does
+                # not support the use of `detection_rules`.
+            },
+            &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
+              &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                  # specified, the entire match is returned. No more than 3 may be included.
+                42,
+              ],
+              &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                  # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                  # google/re2 repository on GitHub.
+            },
+            &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
+                # `InspectDataSource`. Not currently supported in `InspectContent`.
+              &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
+                  # `organizations/433245324/storedInfoTypes/432452342` or
+                  # `projects/project-id/storedInfoTypes/432452342`.
+              &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
+                  # inspection was created. Output-only field, populated by the system.
+            },
+            &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
+                # to be returned. It still can be used for rules matching.
+          },
+        ],
+        &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
+            # POSSIBLE.
+            # See https://cloud.google.com/dlp/docs/likelihood to learn more.
+        &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
+          &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
+              # When set within `InspectContentRequest`, the maximum returned is 2000
+              # regardless if this is set higher.
+          &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
+            { # Max findings configuration per infoType, per content item or long
+                # running DlpJob.
+              &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
+                  # info_type should be provided. If InfoTypeLimit does not have an
+                  # info_type, the DLP API applies the limit against all info_types that
+                  # are found but not specified in another InfoTypeLimit.
+                &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}`.
+              },
+              &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
+            },
+          ],
+          &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
+              # When set within `InspectJobConfig`,
+              # the maximum returned is 2000 regardless if this is set higher.
+              # When set within `InspectContentRequest`, this field is ignored.
+        },
+        &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
+        &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
+            # included in the response; see Finding.quote.
+        &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
+            # Exclusion rules, contained in the set are executed in the end, other
+            # rules are executed in the order they are specified for each info type.
+          { # Rule set for modifying a set of infoTypes to alter behavior under certain
+              # circumstances, depending on the specific details of the rules within the set.
+            &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
+              { # Type of information detected by the API.
+                &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}`.
+              },
+            ],
+            &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
+              { # A single inspection rule to be applied to infoTypes, specified in
+                  # `InspectionRuleSet`.
+                &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                    # proximity of hotwords.
+                  &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                      # The total length of the window cannot exceed 1000 characters. Note that
+                      # the finding itself will be included in the window, so that hotwords may
+                      # be used to match substrings of the finding itself. For example, the
+                      # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                      # adjusted upwards if the area code is known to be the local area code of
+                      # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                      # is the area code in question.
+                      # rule.
+                    &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                    &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                  },
+                  &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                      # part of a detection rule.
+                    &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                    &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                        # levels. For example, if a finding would be `POSSIBLE` without the
+                        # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                        # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                        # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                        # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                        # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                        # a final likelihood of `LIKELY`.
+                  },
+                  &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                        # specified, the entire match is returned. No more than 3 may be included.
+                      42,
+                    ],
+                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                        # google/re2 repository on GitHub.
+                  },
+                },
+                &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
+                    # `InspectionRuleSet` are removed from results.
+                  &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
+                  &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
+                      # be used to match sensitive information specific to the data, such as a list
+                      # of employee IDs or job titles.
+                      #
+                      # Dictionary words are case-insensitive and all characters other than letters
+                      # and digits in the unicode [Basic Multilingual
+                      # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                      # will be replaced with whitespace when scanning for matches, so the
+                      # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                      # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                      # surrounding any match must be of a different type than the adjacent
+                      # characters within the word, so letters must be next to non-letters and
+                      # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                      # match the first three letters of the text &quot;jen123&quot; but will return no
+                      # matches for &quot;jennifer&quot;.
+                      #
+                      # Dictionary words containing a large number of characters that are not
+                      # letters or digits may result in unexpected findings because such characters
+                      # are treated as whitespace. The
+                      # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                      # the size limits of dictionaries. For dictionaries that do not fit within
+                      # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                      # `StoredInfoType` API.
+                    &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                        # is accepted.
+                      &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                          # Example: gs://[BUCKET_NAME]/dictionary.txt
+                    },
+                    &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                      &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                          # at least one phrase and every phrase must contain at least 2 characters
+                          # that are letters or digits. [required]
+                        &quot;A String&quot;,
+                      ],
+                    },
+                  },
+                  &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
+                    &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
+                        # contained within with a finding of an infoType from this list. For
+                        # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
+                        # `exclusion_rule` containing `exclude_info_types.info_types` with
+                        # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
+                        # with EMAIL_ADDRESS finding.
+                        # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
+                        # finding, namely email address.
+                      { # Type of information detected by the API.
+                        &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}`.
+                      },
+                    ],
+                  },
+                  &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
+                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                        # specified, the entire match is returned. No more than 3 may be included.
+                      42,
+                    ],
+                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                        # google/re2 repository on GitHub.
+                  },
+                },
+              },
+            ],
+          },
+        ],
+        &quot;contentOptions&quot;: [ # List of options defining data content to scan.
+            # If empty, text, images, and other content will be included.
+          &quot;A String&quot;,
+        ],
+        &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
+            # InfoType values returned by ListInfoTypes or listed at
+            # https://cloud.google.com/dlp/docs/infotypes-reference.
+            #
+            # When no InfoTypes or CustomInfoTypes are specified in a request, the
+            # system may automatically choose what detectors to run. By default this may
+            # be all types, but may change over time as detectors are updated.
+            #
+            # If you need precise control and predictability as to what detectors are
+            # run you should specify specific InfoTypes listed in the reference,
+            # otherwise a default list will be used, which may change over time.
+          { # Type of information detected by the API.
+            &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}`.
+          },
+        ],
+      },
     },
-    &quot;status&quot;: &quot;A String&quot;, # Required. A status for this trigger.
+    &quot;name&quot;: &quot;A String&quot;, # Unique resource name for the triggeredJob, assigned by the service when the
+        # triggeredJob is created, for example
+        # `projects/dlp-test-project/jobTriggers/53234423`.
+    &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 100 chars)
+    &quot;lastRunTime&quot;: &quot;A String&quot;, # Output only. The timestamp of the last time this trigger executed.
+    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of a triggeredJob.
+    &quot;description&quot;: &quot;A String&quot;, # User provided description (max 256 chars)
   }</pre>
 </div>
 
@@ -4018,16 +4017,21 @@
     &quot;hybridItem&quot;: { # An individual hybrid item to inspect. Will be stored temporarily during # The item to inspect.
         # processing.
       &quot;item&quot;: { # Container structure for the content to inspect. # The item to inspect.
+        &quot;value&quot;: &quot;A String&quot;, # String data to inspect or redact.
         &quot;byteItem&quot;: { # Container for bytes to inspect or redact. # Content data to inspect or redact. Replaces `type` and `data`.
           &quot;data&quot;: &quot;A String&quot;, # Content data to inspect or redact.
           &quot;type&quot;: &quot;A String&quot;, # The type of data stored in the bytes string. Default will be TEXT_UTF8.
         },
-        &quot;value&quot;: &quot;A String&quot;, # String data to inspect or redact.
         &quot;table&quot;: { # Structured content to inspect. Up to 50,000 `Value`s per request allowed. # Structured content for inspection. See
             # https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
             # learn more.
             # See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
             # learn more.
+          &quot;headers&quot;: [ # Headers of the table.
+            { # General identifier of a data field in a storage service.
+              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+            },
+          ],
           &quot;rows&quot;: [ # Rows of the table.
             { # Values of the row.
               &quot;values&quot;: [ # Individual cells.
@@ -4037,6 +4041,20 @@
                     # 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.
+                  &quot;integerValue&quot;: &quot;A String&quot;, # integer
+                  &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
+                      # or are specified elsewhere. An API may choose to allow leap seconds. Related
+                      # types are google.type.Date and `google.protobuf.Timestamp`.
+                    &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.
+                    &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+                    &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+                    &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.
+                  },
+                  &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
+                  &quot;floatValue&quot;: 3.14, # float
+                  &quot;stringValue&quot;: &quot;A String&quot;, # string
                   &quot;timestampValue&quot;: &quot;A String&quot;, # timestamp
                   &quot;dateValue&quot;: { # Represents a whole or partial calendar date, e.g. a birthday. The time of day # date
                       # and time zone are either specified elsewhere or are not significant. The date
@@ -4048,75 +4066,35 @@
                       # * A year and month value, with a zero day, e.g. a credit card expiration date
                       #
                       # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
-                    &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-                        # a year.
                     &quot;month&quot;: 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
                         # month and day.
+                    &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                        # a year.
                     &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
                         # if specifying a year by itself or a year and month where the day is not
                         # significant.
                   },
-                  &quot;stringValue&quot;: &quot;A String&quot;, # string
-                  &quot;integerValue&quot;: &quot;A String&quot;, # integer
-                  &quot;timeValue&quot;: { # Represents a time of day. The date and time zone are either not significant # time of day
-                      # or are specified elsewhere. An API may choose to allow leap seconds. Related
-                      # types are google.type.Date and `google.protobuf.Timestamp`.
-                    &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.
-                    &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
-                    &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.
-                    &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
-                  },
                   &quot;booleanValue&quot;: True or False, # boolean
-                  &quot;floatValue&quot;: 3.14, # float
-                  &quot;dayOfWeekValue&quot;: &quot;A String&quot;, # day of week
                 },
               ],
             },
           ],
-          &quot;headers&quot;: [ # Headers of the table.
-            { # General identifier of a data field in a storage service.
-              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-            },
-          ],
         },
       },
       &quot;findingDetails&quot;: { # Populate to associate additional data with each finding. # Supplementary information that will be added to each finding.
-        &quot;rowOffset&quot;: &quot;A String&quot;, # Offset of the row for tables. Populate if the row(s) being scanned are
-            # part of a bigger dataset and you want to keep track of their absolute
-            # position.
-        &quot;fileOffset&quot;: &quot;A String&quot;, # Offset in bytes of the line, from the beginning of the file, where the
-            # finding  is located. Populate if the item being scanned is only part of a
-            # bigger item, such as a shard of a file and you want to track the absolute
-            # position of the finding.
-        &quot;containerDetails&quot;: { # Represents a container that may contain DLP findings. # Details about the container where the content being inspected is from.
-            # Examples of a container include a file, table, or database record.
-          &quot;updateTime&quot;: &quot;A String&quot;, # Findings container modification timestamp, if applicable.
-              # For Google Cloud Storage contains last file modification timestamp.
-              # For BigQuery table contains last_modified_time property.
-              # For Datastore - not populated.
-          &quot;rootPath&quot;: &quot;A String&quot;, # The root of the container.
-              # Examples:
-              # - For BigQuery table `project_id:dataset_id.table_id`, the root is
-              #  `dataset_id`
-              # - For Google Cloud Storage file `gs://bucket/folder/filename.txt`, the root
-              #  is `gs://bucket`
-          &quot;projectId&quot;: &quot;A String&quot;, # Project where the finding was found.
-              # Can be different from the project that owns the finding.
-          &quot;version&quot;: &quot;A String&quot;, # Findings container version, if available
-              # (&quot;generation&quot; for Google Cloud Storage).
-          &quot;relativePath&quot;: &quot;A String&quot;, # The rest of the path after the root.
-              # Examples:
-              # - For BigQuery table `project_id:dataset_id.table_id`, the relative path is
-              #  `table_id`
-              # - Google Cloud Storage file `gs://bucket/folder/filename.txt`, the relative
-              #  path is `folder/filename.txt`
-          &quot;fullPath&quot;: &quot;A String&quot;, # A string representation of the full container name.
-              # Examples:
-              # - BigQuery: &#x27;Project:DataSetId.TableId&#x27;
-              # - Google Cloud Storage: &#x27;gs://Bucket/folders/filename.txt&#x27;
-          &quot;type&quot;: &quot;A String&quot;, # Container type, for example BigQuery or Google Cloud Storage.
+        &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
+            # meaningful such as the columns that are primary keys. If not known ahead
+            # of time, can also be set within each inspect hybrid call and the two
+            # will be merged. Note that identifying_fields will only be stored to
+            # BigQuery, and only if the BigQuery action has been included.
+          &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
+              # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
+              # each finding so that the finding can be traced to the specific row it came
+              # from. No more than 3 may be provided.
+            { # General identifier of a data field in a storage service.
+              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+            },
+          ],
         },
         &quot;labels&quot;: { # Labels to represent user provided metadata about the data being inspected.
             # If configured by the job, some key values may be required.
@@ -4136,19 +4114,40 @@
             # * `&quot;pipeline&quot; : &quot;etl&quot;`
           &quot;a_key&quot;: &quot;A String&quot;,
         },
-        &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
-            # meaningful such as the columns that are primary keys. If not known ahead
-            # of time, can also be set within each inspect hybrid call and the two
-            # will be merged. Note that identifying_fields will only be stored to
-            # BigQuery, and only if the BigQuery action has been included.
-          &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
-              # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
-              # each finding so that the finding can be traced to the specific row it came
-              # from. No more than 3 may be provided.
-            { # General identifier of a data field in a storage service.
-              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-            },
-          ],
+        &quot;fileOffset&quot;: &quot;A String&quot;, # Offset in bytes of the line, from the beginning of the file, where the
+            # finding  is located. Populate if the item being scanned is only part of a
+            # bigger item, such as a shard of a file and you want to track the absolute
+            # position of the finding.
+        &quot;rowOffset&quot;: &quot;A String&quot;, # Offset of the row for tables. Populate if the row(s) being scanned are
+            # part of a bigger dataset and you want to keep track of their absolute
+            # position.
+        &quot;containerDetails&quot;: { # Represents a container that may contain DLP findings. # Details about the container where the content being inspected is from.
+            # Examples of a container include a file, table, or database record.
+          &quot;updateTime&quot;: &quot;A String&quot;, # Findings container modification timestamp, if applicable.
+              # For Google Cloud Storage contains last file modification timestamp.
+              # For BigQuery table contains last_modified_time property.
+              # For Datastore - not populated.
+          &quot;projectId&quot;: &quot;A String&quot;, # Project where the finding was found.
+              # Can be different from the project that owns the finding.
+          &quot;rootPath&quot;: &quot;A String&quot;, # The root of the container.
+              # Examples:
+              # - For BigQuery table `project_id:dataset_id.table_id`, the root is
+              #  `dataset_id`
+              # - For Google Cloud Storage file `gs://bucket/folder/filename.txt`, the root
+              #  is `gs://bucket`
+          &quot;version&quot;: &quot;A String&quot;, # Findings container version, if available
+              # (&quot;generation&quot; for Google Cloud Storage).
+          &quot;fullPath&quot;: &quot;A String&quot;, # A string representation of the full container name.
+              # Examples:
+              # - BigQuery: &#x27;Project:DataSetId.TableId&#x27;
+              # - Google Cloud Storage: &#x27;gs://Bucket/folders/filename.txt&#x27;
+          &quot;type&quot;: &quot;A String&quot;, # Container type, for example BigQuery or Google Cloud Storage.
+          &quot;relativePath&quot;: &quot;A String&quot;, # The rest of the path after the root.
+              # Examples:
+              # - For BigQuery table `project_id:dataset_id.table_id`, the relative path is
+              #  `table_id`
+              # - Google Cloud Storage file `gs://bucket/folder/filename.txt`, the relative
+              #  path is `folder/filename.txt`
         },
       },
     },
@@ -4167,33 +4166,18 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, locationId, orderBy=None, pageToken=None, pageSize=None, filter=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, locationId=None, pageToken=None, filter=None, pageSize=None, orderBy=None, x__xgafv=None)</code>
   <pre>Lists job triggers.
 See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.
 
 Args:
-  parent: string, Required. The parent resource name, for example `projects/my-project-id`. (required)
-  locationId: string, The geographic location where job triggers will be retrieved from.
-Use `-` for all locations. Reserved for future extensions. (required)
-  orderBy: string, Comma separated list of triggeredJob 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 JobTrigger was created.
-- `update_time`: corresponds to time the JobTrigger was last updated.
-- `last_run_time`: corresponds to the last time the JobTrigger ran.
-- `name`: corresponds to JobTrigger&#x27;s name.
-- `display_name`: corresponds to JobTrigger&#x27;s display name.
-- `status`: corresponds to JobTrigger&#x27;s status.
+  parent: string, Required. Parent resource name.
+- Format:projects/[PROJECT-ID]
+- Format:projects/[PROJECT-ID]/locations/[LOCATION-ID] (required)
+  locationId: string, Deprecated. This field has no effect.
   pageToken: string, Page token to continue retrieval. Comes from previous call
 to ListJobTriggers. `order_by` field must not
 change for subsequent calls.
-  pageSize: integer, Size of the page, can be limited by a server.
   filter: string, Allows filtering.
 
 Supported syntax:
@@ -4218,6 +4202,22 @@
 * last_run_time &gt; \&quot;2017-12-12T00:00:00+00:00\&quot;
 
 The length of this field should be no more than 500 characters.
+  pageSize: integer, Size of the page, can be limited by a server.
+  orderBy: string, Comma separated list of triggeredJob 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 JobTrigger was created.
+- `update_time`: corresponds to time the JobTrigger was last updated.
+- `last_run_time`: corresponds to the last time the JobTrigger ran.
+- `name`: corresponds to JobTrigger&#x27;s name.
+- `display_name`: corresponds to JobTrigger&#x27;s display name.
+- `status`: corresponds to JobTrigger&#x27;s status.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -4230,44 +4230,17 @@
     &quot;jobTriggers&quot;: [ # List of triggeredJobs, up to page_size in ListJobTriggersRequest.
       { # Contains a configuration to make dlp api calls on a repeating basis.
           # See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more.
-        &quot;lastRunTime&quot;: &quot;A String&quot;, # Output only. The timestamp of the last time this trigger executed.
-        &quot;name&quot;: &quot;A String&quot;, # Unique resource name for the triggeredJob, assigned by the service when the
-            # triggeredJob is created, for example
-            # `projects/dlp-test-project/jobTriggers/53234423`.
-        &quot;errors&quot;: [ # Output only. A stream of errors encountered when the trigger was activated. Repeated
-            # errors may result in the JobTrigger automatically being paused.
-            # Will return the last 100 errors. Whenever the JobTrigger is modified
-            # this list will be cleared.
-          { # Details information about an error encountered during job execution or
-              # the results of an unsuccessful activation of the JobTrigger.
-            &quot;details&quot;: { # The `Status` type defines a logical error model that is suitable for # Detailed error codes and messages.
-                # different programming environments, including REST APIs and RPC APIs. It is
-                # used by [gRPC](https://github.com/grpc). Each `Status` message contains
-                # three pieces of data: error code, error message, and error details.
-                #
-                # You can find out more about this error model and how to work with it in the
-                # [API Design Guide](https://cloud.google.com/apis/design/errors).
-              &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
-                  # user-facing error message should be localized and sent in the
-                  # google.rpc.Status.details field, or localized by the client.
-              &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
-                  # message types for APIs to use.
-                {
-                  &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-                },
-              ],
-              &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-            },
-            &quot;timestamps&quot;: [ # The times the error occurred.
-              &quot;A String&quot;,
-            ],
-          },
-        ],
-        &quot;description&quot;: &quot;A String&quot;, # User provided description (max 256 chars)
+        &quot;status&quot;: &quot;A String&quot;, # Required. A status for this trigger.
         &quot;triggers&quot;: [ # A list of triggers which will be OR&#x27;ed together. Only one in the list
             # needs to trigger for a job to be started. The list may contain only
             # a single Schedule trigger and must have at least one object.
           { # What event needs to occur for a new job to be started.
+            &quot;manual&quot;: { # Job trigger option for hybrid jobs. Jobs must be manually created # For use with hybrid jobs. Jobs must be manually created and finished.
+                # Early access feature is in a pre-release state and might change or have
+                # limited support. For more information, see
+                # https://cloud.google.com/products#product-launch-stages.
+                # and finished.
+            },
             &quot;schedule&quot;: { # Schedule for triggeredJobs. # Create a job on a repeating basis based on the elapse of time.
               &quot;recurrencePeriodDuration&quot;: &quot;A String&quot;, # With this option a job is started a regular periodic basis. For
                   # example: every day (86400 seconds).
@@ -4278,354 +4251,90 @@
                   # This value must be set to a time duration greater than or equal
                   # to 1 day and can be no longer than 60 days.
             },
-            &quot;manual&quot;: { # Job trigger option for hybrid jobs. Jobs must be manually created # For use with hybrid jobs. Jobs must be manually created and finished.
-                # Early access feature is in a pre-release state and might change or have
-                # limited support. For more information, see
-                # https://cloud.google.com/products#product-launch-stages.
-                # and finished.
+          },
+        ],
+        &quot;errors&quot;: [ # Output only. A stream of errors encountered when the trigger was activated. Repeated
+            # errors may result in the JobTrigger automatically being paused.
+            # Will return the last 100 errors. Whenever the JobTrigger is modified
+            # this list will be cleared.
+          { # Details information about an error encountered during job execution or
+              # the results of an unsuccessful activation of the JobTrigger.
+            &quot;timestamps&quot;: [ # The times the error occurred.
+              &quot;A String&quot;,
+            ],
+            &quot;details&quot;: { # The `Status` type defines a logical error model that is suitable for # Detailed error codes and messages.
+                # different programming environments, including REST APIs and RPC APIs. It is
+                # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+                # three pieces of data: error code, error message, and error details.
+                #
+                # You can find out more about this error model and how to work with it in the
+                # [API Design Guide](https://cloud.google.com/apis/design/errors).
+              &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+              &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
+                  # message types for APIs to use.
+                {
+                  &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                },
+              ],
+              &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
+                  # user-facing error message should be localized and sent in the
+                  # google.rpc.Status.details field, or localized by the client.
             },
           },
         ],
-        &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 100 chars)
-        &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of a triggeredJob.
         &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of a triggeredJob.
         &quot;inspectJob&quot;: { # Controls what and how to inspect for findings. # For inspect jobs, a snapshot of the configuration.
-          &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # How and what to scan for.
-              # When used with redactContent only info_types and min_likelihood are currently
-              # used.
-            &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
-                # POSSIBLE.
-                # See https://cloud.google.com/dlp/docs/likelihood to learn more.
-            &quot;contentOptions&quot;: [ # List of options defining data content to scan.
-                # If empty, text, images, and other content will be included.
-              &quot;A String&quot;,
-            ],
-            &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
-                # InfoType values returned by ListInfoTypes or listed at
-                # https://cloud.google.com/dlp/docs/infotypes-reference.
-                #
-                # When no InfoTypes or CustomInfoTypes are specified in a request, the
-                # system may automatically choose what detectors to run. By default this may
-                # be all types, but may change over time as detectors are updated.
-                #
-                # If you need precise control and predictability as to what detectors are
-                # run you should specify specific InfoTypes listed in the reference,
-                # otherwise a default list will be used, which may change over time.
-              { # Type of information detected by the API.
-                &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. InfoType names should conform to the pattern
-                    # `[a-zA-Z0-9_]{1,64}`.
-              },
-            ],
-            &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
-            &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
-                # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
-              { # Custom information type provided by the user. Used to find domain-specific
-                  # sensitive information configurable to the data in question.
-                &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
-                    # support reversing.
-                    # such as
-                    # [`CryptoReplaceFfxFpeConfig`](/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
-                    # These types of transformations are
-                    # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
-                    # output. This should be used in conjunction with a field on the
-                    # transformation such as `surrogate_info_type`. This CustomInfoType does
-                    # not support the use of `detection_rules`.
-                },
-                &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
-                    # altered by a detection rule if the finding meets the criteria specified by
-                    # the rule. Defaults to `VERY_LIKELY` if not specified.
-                &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
-                    # infoType, when the name matches one of existing infoTypes and that infoType
-                    # is specified in `InspectContent.info_types` field. Specifying the latter
-                    # adds findings to the one detected by the system. If built-in info type is
-                    # not specified in `InspectContent.info_types` list then the name is treated
-                    # as a custom info type.
-                  &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. InfoType names should conform to the pattern
-                      # `[a-zA-Z0-9_]{1,64}`.
-                },
-                &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
-                  &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                      # specified, the entire match is returned. No more than 3 may be included.
-                    42,
-                  ],
-                  &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                      # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                      # google/re2 repository on GitHub.
-                },
-                &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
-                    # Rules are applied in order that they are specified. Not supported for the
-                    # `surrogate_type` CustomInfoType.
-                  { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
-                      # `CustomInfoType` to alter behavior under certain circumstances, depending
-                      # on the specific details of the rule. Not supported for the `surrogate_type`
-                      # custom infoType.
-                    &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                        # proximity of hotwords.
-                      &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                          # part of a detection rule.
-                        &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                            # levels. For example, if a finding would be `POSSIBLE` without the
-                            # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                            # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                            # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                            # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                            # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                            # a final likelihood of `LIKELY`.
-                        &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                      },
-                      &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                            # specified, the entire match is returned. No more than 3 may be included.
-                          42,
-                        ],
-                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                            # google/re2 repository on GitHub.
-                      },
-                      &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                          # The total length of the window cannot exceed 1000 characters. Note that
-                          # the finding itself will be included in the window, so that hotwords may
-                          # be used to match substrings of the finding itself. For example, the
-                          # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                          # adjusted upwards if the area code is known to be the local area code of
-                          # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                          # is the area code in question.
-                          # rule.
-                        &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                        &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                      },
-                    },
-                  },
-                ],
-                &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
-                    # to be returned. It still can be used for rules matching.
-                &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
-                    # be used to match sensitive information specific to the data, such as a list
-                    # of employee IDs or job titles.
-                    #
-                    # Dictionary words are case-insensitive and all characters other than letters
-                    # and digits in the unicode [Basic Multilingual
-                    # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                    # will be replaced with whitespace when scanning for matches, so the
-                    # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                    # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                    # surrounding any match must be of a different type than the adjacent
-                    # characters within the word, so letters must be next to non-letters and
-                    # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                    # match the first three letters of the text &quot;jen123&quot; but will return no
-                    # matches for &quot;jennifer&quot;.
-                    #
-                    # Dictionary words containing a large number of characters that are not
-                    # letters or digits may result in unexpected findings because such characters
-                    # are treated as whitespace. The
-                    # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                    # the size limits of dictionaries. For dictionaries that do not fit within
-                    # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                    # `StoredInfoType` API.
-                  &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                    &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                        # at least one phrase and every phrase must contain at least 2 characters
-                        # that are letters or digits. [required]
-                      &quot;A String&quot;,
-                    ],
-                  },
-                  &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                      # is accepted.
-                    &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                        # Example: gs://[BUCKET_NAME]/dictionary.txt
-                  },
-                },
-                &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
-                    # `InspectDataSource`. Not currently supported in `InspectContent`.
-                  &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
-                      # `organizations/433245324/storedInfoTypes/432452342` or
-                      # `projects/project-id/storedInfoTypes/432452342`.
-                  &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
-                      # inspection was created. Output-only field, populated by the system.
-                },
-              },
-            ],
-            &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
-                # included in the response; see Finding.quote.
-            &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
-                # Exclusion rules, contained in the set are executed in the end, other
-                # rules are executed in the order they are specified for each info type.
-              { # Rule set for modifying a set of infoTypes to alter behavior under certain
-                  # circumstances, depending on the specific details of the rules within the set.
-                &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
-                  { # Type of information detected by the API.
-                    &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. InfoType names should conform to the pattern
-                        # `[a-zA-Z0-9_]{1,64}`.
-                  },
-                ],
-                &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
-                  { # A single inspection rule to be applied to infoTypes, specified in
-                      # `InspectionRuleSet`.
-                    &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                        # proximity of hotwords.
-                      &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                          # part of a detection rule.
-                        &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                            # levels. For example, if a finding would be `POSSIBLE` without the
-                            # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                            # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                            # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                            # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                            # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                            # a final likelihood of `LIKELY`.
-                        &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                      },
-                      &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                            # specified, the entire match is returned. No more than 3 may be included.
-                          42,
-                        ],
-                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                            # google/re2 repository on GitHub.
-                      },
-                      &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                          # The total length of the window cannot exceed 1000 characters. Note that
-                          # the finding itself will be included in the window, so that hotwords may
-                          # be used to match substrings of the finding itself. For example, the
-                          # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                          # adjusted upwards if the area code is known to be the local area code of
-                          # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                          # is the area code in question.
-                          # rule.
-                        &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                        &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                      },
-                    },
-                    &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
-                        # `InspectionRuleSet` are removed from results.
-                      &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
-                          # be used to match sensitive information specific to the data, such as a list
-                          # of employee IDs or job titles.
-                          #
-                          # Dictionary words are case-insensitive and all characters other than letters
-                          # and digits in the unicode [Basic Multilingual
-                          # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                          # will be replaced with whitespace when scanning for matches, so the
-                          # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                          # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                          # surrounding any match must be of a different type than the adjacent
-                          # characters within the word, so letters must be next to non-letters and
-                          # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                          # match the first three letters of the text &quot;jen123&quot; but will return no
-                          # matches for &quot;jennifer&quot;.
-                          #
-                          # Dictionary words containing a large number of characters that are not
-                          # letters or digits may result in unexpected findings because such characters
-                          # are treated as whitespace. The
-                          # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                          # the size limits of dictionaries. For dictionaries that do not fit within
-                          # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                          # `StoredInfoType` API.
-                        &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                          &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                              # at least one phrase and every phrase must contain at least 2 characters
-                              # that are letters or digits. [required]
-                            &quot;A String&quot;,
-                          ],
-                        },
-                        &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                            # is accepted.
-                          &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                              # Example: gs://[BUCKET_NAME]/dictionary.txt
-                        },
-                      },
-                      &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
-                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                            # specified, the entire match is returned. No more than 3 may be included.
-                          42,
-                        ],
-                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                            # google/re2 repository on GitHub.
-                      },
-                      &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
-                        &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
-                            # contained within with a finding of an infoType from this list. For
-                            # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
-                            # `exclusion_rule` containing `exclude_info_types.info_types` with
-                            # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
-                            # with EMAIL_ADDRESS finding.
-                            # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
-                            # finding, namely email address.
-                          { # Type of information detected by the API.
-                            &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. InfoType names should conform to the pattern
-                                # `[a-zA-Z0-9_]{1,64}`.
-                          },
-                        ],
-                      },
-                      &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
-                    },
-                  },
-                ],
-              },
-            ],
-            &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
-              &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
-                  # When set within `InspectJobConfig`,
-                  # the maximum returned is 2000 regardless if this is set higher.
-                  # When set within `InspectContentRequest`, this field is ignored.
-              &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
-                { # Max findings configuration per infoType, per content item or long
-                    # running DlpJob.
-                  &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
-                  &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
-                      # info_type should be provided. If InfoTypeLimit does not have an
-                      # info_type, the DLP API applies the limit against all info_types that
-                      # are found but not specified in another InfoTypeLimit.
-                    &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. InfoType names should conform to the pattern
-                        # `[a-zA-Z0-9_]{1,64}`.
-                  },
-                },
-              ],
-              &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
-                  # When set within `InspectContentRequest`, the maximum returned is 2000
-                  # regardless if this is set higher.
-            },
-          },
+          &quot;inspectTemplateName&quot;: &quot;A String&quot;, # If provided, will be used as the default for all values in InspectConfig.
+              # `inspect_config` will be merged into the values persisted as part of the
+              # template.
           &quot;actions&quot;: [ # Actions to execute at the completion of the job.
             { # A task to execute on the completion of a job.
                 # See https://cloud.google.com/dlp/docs/concepts-actions to learn more.
-              &quot;publishSummaryToCscc&quot;: { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha).
-                  # Command Center (CSCC Alpha).
-                  # This action is only available for projects which are parts of
-                  # an organization and whitelisted for the alpha Cloud Security Command
-                  # Center.
-                  # The action will publish count of finding instances and their info types.
-                  # The summary of findings will be persisted in CSCC and are governed by CSCC
-                  # service-specific policy, see https://cloud.google.com/terms/service-terms
-                  # Only a single instance of this action can be specified.
+              &quot;publishToStackdriver&quot;: { # Enable Stackdriver metric dlp.googleapis.com/finding_count. This # Enable Stackdriver metric dlp.googleapis.com/finding_count.
+                  # will publish a metric to stack driver on each infotype requested and
+                  # how many findings were found for it. CustomDetectors will be bucketed
+                  # as &#x27;Custom&#x27; under the Stackdriver label &#x27;info_type&#x27;.
+              },
+              &quot;publishFindingsToCloudDataCatalog&quot;: { # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the # Publish findings to Cloud Datahub.
+                  # results of the DlpJob will be applied to the entry for the resource scanned
+                  # in Cloud Data Catalog. Any labels previously written by another DlpJob will
+                  # be deleted. InfoType naming patterns are strictly enforced when using this
+                  # feature. Note that the findings will be persisted in Cloud Data Catalog
+                  # storage and are governed by Data Catalog service-specific policy, see
+                  # https://cloud.google.com/terms/service-terms
+                  # Only a single instance of this action can be specified and only allowed if
+                  # all resources being scanned are BigQuery tables.
                   # Compatible with: Inspect
               },
               &quot;jobNotificationEmails&quot;: { # Enable email notification to project owners and editors on jobs&#x27;s # Enable email notification for project owners and editors on job&#x27;s
                   # completion/failure.
                   # completion/failure.
               },
+              &quot;pubSub&quot;: { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic.
+                  # message contains a single field, `DlpJobName`, which is equal to the
+                  # finished job&#x27;s
+                  # [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
+                  # Compatible with: Inspect, Risk
+                &quot;topic&quot;: &quot;A String&quot;, # Cloud Pub/Sub topic to send notifications to. The topic must have given
+                    # publishing access rights to the DLP API service account executing
+                    # the long running DlpJob sending the notifications.
+                    # Format is projects/{project}/topics/{topic}.
+              },
               &quot;saveFindings&quot;: { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location.
                   # OutputStorageConfig. Only a single instance of this action can be
                   # specified.
                   # Compatible with: Inspect, Risk
                 &quot;outputConfig&quot;: { # Cloud repository for storing output. # Location to store findings outside of DLP.
+                  &quot;outputSchema&quot;: &quot;A String&quot;, # Schema used for writing the findings for Inspect jobs. This field is only
+                      # used for Inspect and must be unspecified for Risk jobs. Columns are derived
+                      # from the `Finding` object. If appending to an existing table, any columns
+                      # from the predefined schema that are missing will be added. No columns in
+                      # the existing table will be deleted.
+                      #
+                      # If unspecified, then all available columns will be used for a new table or
+                      # an (existing) table with no schema, and no changes will be made to an
+                      # existing table that has a schema.
+                      # Only for use with external storage.
                   &quot;table&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing
                       # dataset. If table_id is not set a new one will be generated
                       # for you with the following format:
@@ -4649,137 +4358,43 @@
                     &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
                     &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
                   },
-                  &quot;outputSchema&quot;: &quot;A String&quot;, # Schema used for writing the findings for Inspect jobs. This field is only
-                      # used for Inspect and must be unspecified for Risk jobs. Columns are derived
-                      # from the `Finding` object. If appending to an existing table, any columns
-                      # from the predefined schema that are missing will be added. No columns in
-                      # the existing table will be deleted.
-                      #
-                      # If unspecified, then all available columns will be used for a new table or
-                      # an (existing) table with no schema, and no changes will be made to an
-                      # existing table that has a schema.
-                      # Only for use with external storage.
                 },
               },
-              &quot;pubSub&quot;: { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic.
-                  # message contains a single field, `DlpJobName`, which is equal to the
-                  # finished job&#x27;s
-                  # [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
-                  # Compatible with: Inspect, Risk
-                &quot;topic&quot;: &quot;A String&quot;, # Cloud Pub/Sub topic to send notifications to. The topic must have given
-                    # publishing access rights to the DLP API service account executing
-                    # the long running DlpJob sending the notifications.
-                    # Format is projects/{project}/topics/{topic}.
-              },
-              &quot;publishFindingsToCloudDataCatalog&quot;: { # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the # Publish findings to Cloud Datahub.
-                  # results of the DlpJob will be applied to the entry for the resource scanned
-                  # in Cloud Data Catalog. Any labels previously written by another DlpJob will
-                  # be deleted. InfoType naming patterns are strictly enforced when using this
-                  # feature. Note that the findings will be persisted in Cloud Data Catalog
-                  # storage and are governed by Data Catalog service-specific policy, see
-                  # https://cloud.google.com/terms/service-terms
-                  # Only a single instance of this action can be specified and only allowed if
-                  # all resources being scanned are BigQuery tables.
+              &quot;publishSummaryToCscc&quot;: { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha).
+                  # Command Center (CSCC Alpha).
+                  # This action is only available for projects which are parts of
+                  # an organization and whitelisted for the alpha Cloud Security Command
+                  # Center.
+                  # The action will publish count of finding instances and their info types.
+                  # The summary of findings will be persisted in CSCC and are governed by CSCC
+                  # service-specific policy, see https://cloud.google.com/terms/service-terms
+                  # Only a single instance of this action can be specified.
                   # Compatible with: Inspect
               },
-              &quot;publishToStackdriver&quot;: { # Enable Stackdriver metric dlp.googleapis.com/finding_count. This # Enable Stackdriver metric dlp.googleapis.com/finding_count.
-                  # will publish a metric to stack driver on each infotype requested and
-                  # how many findings were found for it. CustomDetectors will be bucketed
-                  # as &#x27;Custom&#x27; under the Stackdriver label &#x27;info_type&#x27;.
-              },
             },
           ],
           &quot;storageConfig&quot;: { # Shared message indicating Cloud storage type. # The data to scan.
-            &quot;hybridOptions&quot;: { # Configuration to control jobs where the content being inspected is outside # Hybrid inspection options.
-                # Early access feature is in a pre-release state and might change or have
-                # limited support. For more information, see
-                # https://cloud.google.com/products#product-launch-stages.
-                # of Google Cloud Platform.
-              &quot;labels&quot;: { # To organize findings, these labels will be added to each finding.
-                  #
-                  # Label keys must be between 1 and 63 characters long and must conform
-                  # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
-                  #
-                  # Label values must be between 0 and 63 characters long and must conform
-                  # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
-                  #
-                  # No more than 10 labels can be associated with a given finding.
-                  #
-                  # Examples:
-                  # * `&quot;environment&quot; : &quot;production&quot;`
-                  # * `&quot;pipeline&quot; : &quot;etl&quot;`
-                &quot;a_key&quot;: &quot;A String&quot;,
-              },
-              &quot;description&quot;: &quot;A String&quot;, # A short description of where the data is coming from. Will be stored once
-                  # in the job. 256 max length.
-              &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
-                  # meaningful such as the columns that are primary keys.
-                &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
-                    # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
-                    # each finding so that the finding can be traced to the specific row it came
-                    # from. No more than 3 may be provided.
-                  { # General identifier of a data field in a storage service.
-                    &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-                  },
-                ],
-              },
-              &quot;requiredFindingLabelKeys&quot;: [ # These are labels that each inspection request must include within their
-                  # &#x27;finding_labels&#x27; map. Request may contain others, but any missing one of
-                  # these will be rejected.
-                  #
-                  # Label keys must be between 1 and 63 characters long and must conform
-                  # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
-                  #
-                  # No more than 10 keys can be required.
-                &quot;A String&quot;,
-              ],
-            },
-            &quot;datastoreOptions&quot;: { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options.
-              &quot;partitionId&quot;: { # Datastore partition ID. # A partition ID identifies a grouping of entities. The grouping is always
-                  # by project and namespace, however the namespace ID may be empty.
-                  # A partition ID identifies a grouping of entities. The grouping is always
-                  # by project and namespace, however the namespace ID may be empty.
-                  #
-                  # A partition ID contains several dimensions:
-                  # project ID and namespace ID.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-              },
-              &quot;kind&quot;: { # A representation of a Datastore kind. # The kind to process.
-                &quot;name&quot;: &quot;A String&quot;, # The name of the kind.
-              },
-            },
-            &quot;timespanConfig&quot;: { # Configuration of the timespan of the items to include in scanning.
-                # Currently only supported when inspecting Google Cloud Storage and BigQuery.
-              &quot;timestampField&quot;: { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items.
-                  # Used for data sources like Datastore and BigQuery.
-                  #
-                  # For BigQuery:
-                  # Required to filter out rows based on the given start and
-                  # end times. If not specified and the table was modified between the given
-                  # start and end times, the entire table will be scanned.
-                  # The valid data types of the timestamp field are: `INTEGER`, `DATE`,
-                  # `TIMESTAMP`, or `DATETIME` BigQuery column.
-                  #
-                  # For Datastore.
-                  # Valid data types of the timestamp field are: `TIMESTAMP`.
-                  # Datastore entity will be scanned if the timestamp property does not
-                  # exist or its value is empty or invalid.
-                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-              },
-              &quot;enableAutoPopulationOfTimespanConfig&quot;: True or False, # When the job is started by a JobTrigger we will automatically figure out
-                  # a valid start_time to avoid scanning files that have not been modified
-                  # since the last time the JobTrigger executed. This will be based on the
-                  # time of the execution of the last run of the JobTrigger.
-              &quot;endTime&quot;: &quot;A String&quot;, # Exclude files or rows newer than this value.
-                  # If set to zero, no upper time limit is applied.
-              &quot;startTime&quot;: &quot;A String&quot;, # Exclude files or rows older than this value.
-            },
             &quot;cloudStorageOptions&quot;: { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options.
                 # bucket.
+              &quot;bytesLimitPerFilePercent&quot;: 42, # Max percentage of bytes to scan from a file. The rest are omitted. The
+                  # number of bytes scanned is rounded down. Must be between 0 and 100,
+                  # inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one
+                  # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
+              &quot;fileTypes&quot;: [ # List of file type groups to include in the scan.
+                  # If empty, all files are scanned and available data format processors
+                  # are applied. In addition, the binary content of the selected files
+                  # is always scanned as well.
+                  # Images are scanned only as binary if the specified region
+                  # does not support image inspection and no file_types were specified.
+                  # Image inspection is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;, and &#x27;europe&#x27;.
+                &quot;A String&quot;,
+              ],
               &quot;bytesLimitPerFile&quot;: &quot;A String&quot;, # Max number of bytes to scan from a file. If a scanned file&#x27;s size is bigger
                   # than this value then the rest of the bytes are omitted. Only one
                   # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
+              &quot;filesLimitPercent&quot;: 42, # Limits the number of files to scan to this percentage of the input FileSet.
+                  # Number of files scanned is rounded down. Must be between 0 and 100,
+                  # inclusively. Both 0 and 100 means no limit. Defaults to 0.
               &quot;fileSet&quot;: { # Set of files to scan. # The set of one or more files to scan.
                 &quot;regexFileSet&quot;: { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or
                     # `regex_file_set` must be set.
@@ -4815,20 +4430,20 @@
                     # include all files directly under `gs://mybucket/directory/`, without matching
                     # across `/`
                   &quot;bucketName&quot;: &quot;A String&quot;, # The name of a Cloud Storage bucket. Required.
-                  &quot;includeRegex&quot;: [ # A list of regular expressions matching file paths to include. All files in
+                  &quot;excludeRegex&quot;: [ # A list of regular expressions matching file paths to exclude. All files in
                       # the bucket that match at least one of these regular expressions will be
-                      # included in the set of files, except for those that also match an item in
-                      # `exclude_regex`. Leaving this field empty will match all files by default
-                      # (this is equivalent to including `.*` in the list).
+                      # excluded from the scan.
                       #
                       # Regular expressions use RE2
                       # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
                       # under the google/re2 repository on GitHub.
                     &quot;A String&quot;,
                   ],
-                  &quot;excludeRegex&quot;: [ # A list of regular expressions matching file paths to exclude. All files in
+                  &quot;includeRegex&quot;: [ # A list of regular expressions matching file paths to include. All files in
                       # the bucket that match at least one of these regular expressions will be
-                      # excluded from the scan.
+                      # included in the set of files, except for those that also match an item in
+                      # `exclude_regex`. Leaving this field empty will match all files by default
+                      # (this is equivalent to including `.*` in the list).
                       #
                       # Regular expressions use RE2
                       # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
@@ -4847,25 +4462,10 @@
                     #
                     # Exactly one of `url` or `regex_file_set` must be set.
               },
-              &quot;filesLimitPercent&quot;: 42, # Limits the number of files to scan to this percentage of the input FileSet.
-                  # Number of files scanned is rounded down. Must be between 0 and 100,
-                  # inclusively. Both 0 and 100 means no limit. Defaults to 0.
-              &quot;fileTypes&quot;: [ # List of file type groups to include in the scan.
-                  # If empty, all files are scanned and available data format processors
-                  # are applied. In addition, the binary content of the selected files
-                  # is always scanned as well.
-                  # Images are scanned only as binary if the specified region
-                  # does not support image inspection and no file_types were specified.
-                  # Image inspection is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;, and &#x27;europe&#x27;.
-                &quot;A String&quot;,
-              ],
               &quot;sampleMethod&quot;: &quot;A String&quot;,
-              &quot;bytesLimitPerFilePercent&quot;: 42, # Max percentage of bytes to scan from a file. The rest are omitted. The
-                  # number of bytes scanned is rounded down. Must be between 0 and 100,
-                  # inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one
-                  # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
             },
             &quot;bigQueryOptions&quot;: { # Options defining BigQuery table and row identifiers. # BigQuery options.
+              &quot;sampleMethod&quot;: &quot;A String&quot;,
               &quot;tableReference&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference.
                   # identified  by its project_id, dataset_id, and table_name. Within a query
                   # a table is often referenced with a string in the format of:
@@ -4876,15 +4476,6 @@
                 &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
                 &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
               },
-              &quot;identifyingFields&quot;: [ # Table fields that may uniquely identify a row within the table. When
-                  # `actions.saveFindings.outputConfig.table` is specified, the values of
-                  # columns specified here are available in the output table under
-                  # `location.content_locations.record_location.record_key.id_values`. Nested
-                  # fields such as `person.birthdate.year` are allowed.
-                { # General identifier of a data field in a storage service.
-                  &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-                },
-              ],
               &quot;rowsLimitPercent&quot;: 42, # Max percentage of rows to scan. The rest are omitted. The number of rows
                   # scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and
                   # 100 means no limit. Defaults to 0. Only one of rows_limit and
@@ -4894,20 +4485,429 @@
                   # rest of the rows are omitted. If not set, or if set to 0, all rows will be
                   # scanned. Only one of rows_limit and rows_limit_percent can be specified.
                   # Cannot be used in conjunction with TimespanConfig.
+              &quot;identifyingFields&quot;: [ # Table fields that may uniquely identify a row within the table. When
+                  # `actions.saveFindings.outputConfig.table` is specified, the values of
+                  # columns specified here are available in the output table under
+                  # `location.content_locations.record_location.record_key.id_values`. Nested
+                  # fields such as `person.birthdate.year` are allowed.
+                { # General identifier of a data field in a storage service.
+                  &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+                },
+              ],
               &quot;excludedFields&quot;: [ # References to fields excluded from scanning. This allows you to skip
                   # inspection of entire columns which you know have no findings.
                 { # General identifier of a data field in a storage service.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
               ],
-              &quot;sampleMethod&quot;: &quot;A String&quot;,
+            },
+            &quot;timespanConfig&quot;: { # Configuration of the timespan of the items to include in scanning.
+                # Currently only supported when inspecting Google Cloud Storage and BigQuery.
+              &quot;timestampField&quot;: { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items.
+                  # Used for data sources like Datastore and BigQuery.
+                  #
+                  # For BigQuery:
+                  # Required to filter out rows based on the given start and
+                  # end times. If not specified and the table was modified between the given
+                  # start and end times, the entire table will be scanned.
+                  # The valid data types of the timestamp field are: `INTEGER`, `DATE`,
+                  # `TIMESTAMP`, or `DATETIME` BigQuery column.
+                  #
+                  # For Datastore.
+                  # Valid data types of the timestamp field are: `TIMESTAMP`.
+                  # Datastore entity will be scanned if the timestamp property does not
+                  # exist or its value is empty or invalid.
+                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+              },
+              &quot;enableAutoPopulationOfTimespanConfig&quot;: True or False, # When the job is started by a JobTrigger we will automatically figure out
+                  # a valid start_time to avoid scanning files that have not been modified
+                  # since the last time the JobTrigger executed. This will be based on the
+                  # time of the execution of the last run of the JobTrigger.
+              &quot;startTime&quot;: &quot;A String&quot;, # Exclude files or rows older than this value.
+              &quot;endTime&quot;: &quot;A String&quot;, # Exclude files or rows newer than this value.
+                  # If set to zero, no upper time limit is applied.
+            },
+            &quot;datastoreOptions&quot;: { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options.
+              &quot;kind&quot;: { # A representation of a Datastore kind. # The kind to process.
+                &quot;name&quot;: &quot;A String&quot;, # The name of the kind.
+              },
+              &quot;partitionId&quot;: { # Datastore partition ID. # A partition ID identifies a grouping of entities. The grouping is always
+                  # by project and namespace, however the namespace ID may be empty.
+                  # A partition ID identifies a grouping of entities. The grouping is always
+                  # by project and namespace, however the namespace ID may be empty.
+                  #
+                  # A partition ID contains several dimensions:
+                  # project ID and namespace ID.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+            },
+            &quot;hybridOptions&quot;: { # Configuration to control jobs where the content being inspected is outside # Hybrid inspection options.
+                # Early access feature is in a pre-release state and might change or have
+                # limited support. For more information, see
+                # https://cloud.google.com/products#product-launch-stages.
+                # of Google Cloud Platform.
+              &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
+                  # meaningful such as the columns that are primary keys.
+                &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
+                    # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
+                    # each finding so that the finding can be traced to the specific row it came
+                    # from. No more than 3 may be provided.
+                  { # General identifier of a data field in a storage service.
+                    &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+                  },
+                ],
+              },
+              &quot;requiredFindingLabelKeys&quot;: [ # These are labels that each inspection request must include within their
+                  # &#x27;finding_labels&#x27; map. Request may contain others, but any missing one of
+                  # these will be rejected.
+                  #
+                  # Label keys must be between 1 and 63 characters long and must conform
+                  # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+                  #
+                  # No more than 10 keys can be required.
+                &quot;A String&quot;,
+              ],
+              &quot;labels&quot;: { # To organize findings, these labels will be added to each finding.
+                  #
+                  # Label keys must be between 1 and 63 characters long and must conform
+                  # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+                  #
+                  # Label values must be between 0 and 63 characters long and must conform
+                  # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
+                  #
+                  # No more than 10 labels can be associated with a given finding.
+                  #
+                  # Examples:
+                  # * `&quot;environment&quot; : &quot;production&quot;`
+                  # * `&quot;pipeline&quot; : &quot;etl&quot;`
+                &quot;a_key&quot;: &quot;A String&quot;,
+              },
+              &quot;description&quot;: &quot;A String&quot;, # A short description of where the data is coming from. Will be stored once
+                  # in the job. 256 max length.
             },
           },
-          &quot;inspectTemplateName&quot;: &quot;A String&quot;, # If provided, will be used as the default for all values in InspectConfig.
-              # `inspect_config` will be merged into the values persisted as part of the
-              # template.
+          &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # How and what to scan for.
+              # When used with redactContent only info_types and min_likelihood are currently
+              # used.
+            &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
+                # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
+              { # Custom information type provided by the user. Used to find domain-specific
+                  # sensitive information configurable to the data in question.
+                &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
+                    # be used to match sensitive information specific to the data, such as a list
+                    # of employee IDs or job titles.
+                    #
+                    # Dictionary words are case-insensitive and all characters other than letters
+                    # and digits in the unicode [Basic Multilingual
+                    # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                    # will be replaced with whitespace when scanning for matches, so the
+                    # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                    # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                    # surrounding any match must be of a different type than the adjacent
+                    # characters within the word, so letters must be next to non-letters and
+                    # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                    # match the first three letters of the text &quot;jen123&quot; but will return no
+                    # matches for &quot;jennifer&quot;.
+                    #
+                    # Dictionary words containing a large number of characters that are not
+                    # letters or digits may result in unexpected findings because such characters
+                    # are treated as whitespace. The
+                    # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                    # the size limits of dictionaries. For dictionaries that do not fit within
+                    # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                    # `StoredInfoType` API.
+                  &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                      # is accepted.
+                    &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                        # Example: gs://[BUCKET_NAME]/dictionary.txt
+                  },
+                  &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                    &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                        # at least one phrase and every phrase must contain at least 2 characters
+                        # that are letters or digits. [required]
+                      &quot;A String&quot;,
+                    ],
+                  },
+                },
+                &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
+                    # infoType, when the name matches one of existing infoTypes and that infoType
+                    # is specified in `InspectContent.info_types` field. Specifying the latter
+                    # adds findings to the one detected by the system. If built-in info type is
+                    # not specified in `InspectContent.info_types` list then the name is treated
+                    # as a custom info type.
+                  &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}`.
+                },
+                &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
+                    # altered by a detection rule if the finding meets the criteria specified by
+                    # the rule. Defaults to `VERY_LIKELY` if not specified.
+                &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
+                    # Rules are applied in order that they are specified. Not supported for the
+                    # `surrogate_type` CustomInfoType.
+                  { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
+                      # `CustomInfoType` to alter behavior under certain circumstances, depending
+                      # on the specific details of the rule. Not supported for the `surrogate_type`
+                      # custom infoType.
+                    &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                        # proximity of hotwords.
+                      &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                          # The total length of the window cannot exceed 1000 characters. Note that
+                          # the finding itself will be included in the window, so that hotwords may
+                          # be used to match substrings of the finding itself. For example, the
+                          # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                          # adjusted upwards if the area code is known to be the local area code of
+                          # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                          # is the area code in question.
+                          # rule.
+                        &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                        &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                      },
+                      &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                          # part of a detection rule.
+                        &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                        &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                            # levels. For example, if a finding would be `POSSIBLE` without the
+                            # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                            # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                            # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                            # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                            # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                            # a final likelihood of `LIKELY`.
+                      },
+                      &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                            # specified, the entire match is returned. No more than 3 may be included.
+                          42,
+                        ],
+                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                            # google/re2 repository on GitHub.
+                      },
+                    },
+                  },
+                ],
+                &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
+                    # support reversing.
+                    # such as
+                    # [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
+                    # These types of transformations are
+                    # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
+                    # output. This should be used in conjunction with a field on the
+                    # transformation such as `surrogate_info_type`. This CustomInfoType does
+                    # not support the use of `detection_rules`.
+                },
+                &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
+                  &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                      # specified, the entire match is returned. No more than 3 may be included.
+                    42,
+                  ],
+                  &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                      # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                      # google/re2 repository on GitHub.
+                },
+                &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
+                    # `InspectDataSource`. Not currently supported in `InspectContent`.
+                  &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
+                      # `organizations/433245324/storedInfoTypes/432452342` or
+                      # `projects/project-id/storedInfoTypes/432452342`.
+                  &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
+                      # inspection was created. Output-only field, populated by the system.
+                },
+                &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
+                    # to be returned. It still can be used for rules matching.
+              },
+            ],
+            &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
+                # POSSIBLE.
+                # See https://cloud.google.com/dlp/docs/likelihood to learn more.
+            &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
+              &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
+                  # When set within `InspectContentRequest`, the maximum returned is 2000
+                  # regardless if this is set higher.
+              &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
+                { # Max findings configuration per infoType, per content item or long
+                    # running DlpJob.
+                  &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
+                      # info_type should be provided. If InfoTypeLimit does not have an
+                      # info_type, the DLP API applies the limit against all info_types that
+                      # are found but not specified in another InfoTypeLimit.
+                    &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}`.
+                  },
+                  &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
+                },
+              ],
+              &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
+                  # When set within `InspectJobConfig`,
+                  # the maximum returned is 2000 regardless if this is set higher.
+                  # When set within `InspectContentRequest`, this field is ignored.
+            },
+            &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
+            &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
+                # included in the response; see Finding.quote.
+            &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
+                # Exclusion rules, contained in the set are executed in the end, other
+                # rules are executed in the order they are specified for each info type.
+              { # Rule set for modifying a set of infoTypes to alter behavior under certain
+                  # circumstances, depending on the specific details of the rules within the set.
+                &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
+                  { # Type of information detected by the API.
+                    &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}`.
+                  },
+                ],
+                &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
+                  { # A single inspection rule to be applied to infoTypes, specified in
+                      # `InspectionRuleSet`.
+                    &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                        # proximity of hotwords.
+                      &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                          # The total length of the window cannot exceed 1000 characters. Note that
+                          # the finding itself will be included in the window, so that hotwords may
+                          # be used to match substrings of the finding itself. For example, the
+                          # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                          # adjusted upwards if the area code is known to be the local area code of
+                          # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                          # is the area code in question.
+                          # rule.
+                        &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                        &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                      },
+                      &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                          # part of a detection rule.
+                        &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                        &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                            # levels. For example, if a finding would be `POSSIBLE` without the
+                            # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                            # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                            # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                            # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                            # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                            # a final likelihood of `LIKELY`.
+                      },
+                      &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                            # specified, the entire match is returned. No more than 3 may be included.
+                          42,
+                        ],
+                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                            # google/re2 repository on GitHub.
+                      },
+                    },
+                    &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
+                        # `InspectionRuleSet` are removed from results.
+                      &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
+                      &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
+                          # be used to match sensitive information specific to the data, such as a list
+                          # of employee IDs or job titles.
+                          #
+                          # Dictionary words are case-insensitive and all characters other than letters
+                          # and digits in the unicode [Basic Multilingual
+                          # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                          # will be replaced with whitespace when scanning for matches, so the
+                          # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                          # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                          # surrounding any match must be of a different type than the adjacent
+                          # characters within the word, so letters must be next to non-letters and
+                          # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                          # match the first three letters of the text &quot;jen123&quot; but will return no
+                          # matches for &quot;jennifer&quot;.
+                          #
+                          # Dictionary words containing a large number of characters that are not
+                          # letters or digits may result in unexpected findings because such characters
+                          # are treated as whitespace. The
+                          # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                          # the size limits of dictionaries. For dictionaries that do not fit within
+                          # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                          # `StoredInfoType` API.
+                        &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                            # is accepted.
+                          &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                              # Example: gs://[BUCKET_NAME]/dictionary.txt
+                        },
+                        &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                          &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                              # at least one phrase and every phrase must contain at least 2 characters
+                              # that are letters or digits. [required]
+                            &quot;A String&quot;,
+                          ],
+                        },
+                      },
+                      &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
+                        &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
+                            # contained within with a finding of an infoType from this list. For
+                            # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
+                            # `exclusion_rule` containing `exclude_info_types.info_types` with
+                            # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
+                            # with EMAIL_ADDRESS finding.
+                            # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
+                            # finding, namely email address.
+                          { # Type of information detected by the API.
+                            &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}`.
+                          },
+                        ],
+                      },
+                      &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
+                        &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                            # specified, the entire match is returned. No more than 3 may be included.
+                          42,
+                        ],
+                        &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                            # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                            # google/re2 repository on GitHub.
+                      },
+                    },
+                  },
+                ],
+              },
+            ],
+            &quot;contentOptions&quot;: [ # List of options defining data content to scan.
+                # If empty, text, images, and other content will be included.
+              &quot;A String&quot;,
+            ],
+            &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
+                # InfoType values returned by ListInfoTypes or listed at
+                # https://cloud.google.com/dlp/docs/infotypes-reference.
+                #
+                # When no InfoTypes or CustomInfoTypes are specified in a request, the
+                # system may automatically choose what detectors to run. By default this may
+                # be all types, but may change over time as detectors are updated.
+                #
+                # If you need precise control and predictability as to what detectors are
+                # run you should specify specific InfoTypes listed in the reference,
+                # otherwise a default list will be used, which may change over time.
+              { # Type of information detected by the API.
+                &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}`.
+              },
+            ],
+          },
         },
-        &quot;status&quot;: &quot;A String&quot;, # Required. A status for this trigger.
+        &quot;name&quot;: &quot;A String&quot;, # Unique resource name for the triggeredJob, assigned by the service when the
+            # triggeredJob is created, for example
+            # `projects/dlp-test-project/jobTriggers/53234423`.
+        &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 100 chars)
+        &quot;lastRunTime&quot;: &quot;A String&quot;, # Output only. The timestamp of the last time this trigger executed.
+        &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of a triggeredJob.
+        &quot;description&quot;: &quot;A String&quot;, # User provided description (max 256 chars)
       },
     ],
     &quot;nextPageToken&quot;: &quot;A String&quot;, # If the next page is available then the next page token to be used
@@ -4941,46 +4941,20 @@
     The object takes the form of:
 
 { # Request message for UpdateJobTrigger.
+    &quot;updateMask&quot;: &quot;A String&quot;, # Mask to control which fields get updated.
     &quot;jobTrigger&quot;: { # Contains a configuration to make dlp api calls on a repeating basis. # New JobTrigger value.
         # See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more.
-      &quot;lastRunTime&quot;: &quot;A String&quot;, # Output only. The timestamp of the last time this trigger executed.
-      &quot;name&quot;: &quot;A String&quot;, # Unique resource name for the triggeredJob, assigned by the service when the
-          # triggeredJob is created, for example
-          # `projects/dlp-test-project/jobTriggers/53234423`.
-      &quot;errors&quot;: [ # Output only. A stream of errors encountered when the trigger was activated. Repeated
-          # errors may result in the JobTrigger automatically being paused.
-          # Will return the last 100 errors. Whenever the JobTrigger is modified
-          # this list will be cleared.
-        { # Details information about an error encountered during job execution or
-            # the results of an unsuccessful activation of the JobTrigger.
-          &quot;details&quot;: { # The `Status` type defines a logical error model that is suitable for # Detailed error codes and messages.
-              # different programming environments, including REST APIs and RPC APIs. It is
-              # used by [gRPC](https://github.com/grpc). Each `Status` message contains
-              # three pieces of data: error code, error message, and error details.
-              #
-              # You can find out more about this error model and how to work with it in the
-              # [API Design Guide](https://cloud.google.com/apis/design/errors).
-            &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
-                # user-facing error message should be localized and sent in the
-                # google.rpc.Status.details field, or localized by the client.
-            &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
-                # message types for APIs to use.
-              {
-                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-              },
-            ],
-            &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-          },
-          &quot;timestamps&quot;: [ # The times the error occurred.
-            &quot;A String&quot;,
-          ],
-        },
-      ],
-      &quot;description&quot;: &quot;A String&quot;, # User provided description (max 256 chars)
+      &quot;status&quot;: &quot;A String&quot;, # Required. A status for this trigger.
       &quot;triggers&quot;: [ # A list of triggers which will be OR&#x27;ed together. Only one in the list
           # needs to trigger for a job to be started. The list may contain only
           # a single Schedule trigger and must have at least one object.
         { # What event needs to occur for a new job to be started.
+          &quot;manual&quot;: { # Job trigger option for hybrid jobs. Jobs must be manually created # For use with hybrid jobs. Jobs must be manually created and finished.
+              # Early access feature is in a pre-release state and might change or have
+              # limited support. For more information, see
+              # https://cloud.google.com/products#product-launch-stages.
+              # and finished.
+          },
           &quot;schedule&quot;: { # Schedule for triggeredJobs. # Create a job on a repeating basis based on the elapse of time.
             &quot;recurrencePeriodDuration&quot;: &quot;A String&quot;, # With this option a job is started a regular periodic basis. For
                 # example: every day (86400 seconds).
@@ -4991,354 +4965,90 @@
                 # This value must be set to a time duration greater than or equal
                 # to 1 day and can be no longer than 60 days.
           },
-          &quot;manual&quot;: { # Job trigger option for hybrid jobs. Jobs must be manually created # For use with hybrid jobs. Jobs must be manually created and finished.
-              # Early access feature is in a pre-release state and might change or have
-              # limited support. For more information, see
-              # https://cloud.google.com/products#product-launch-stages.
-              # and finished.
+        },
+      ],
+      &quot;errors&quot;: [ # Output only. A stream of errors encountered when the trigger was activated. Repeated
+          # errors may result in the JobTrigger automatically being paused.
+          # Will return the last 100 errors. Whenever the JobTrigger is modified
+          # this list will be cleared.
+        { # Details information about an error encountered during job execution or
+            # the results of an unsuccessful activation of the JobTrigger.
+          &quot;timestamps&quot;: [ # The times the error occurred.
+            &quot;A String&quot;,
+          ],
+          &quot;details&quot;: { # The `Status` type defines a logical error model that is suitable for # Detailed error codes and messages.
+              # different programming environments, including REST APIs and RPC APIs. It is
+              # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+              # three pieces of data: error code, error message, and error details.
+              #
+              # You can find out more about this error model and how to work with it in the
+              # [API Design Guide](https://cloud.google.com/apis/design/errors).
+            &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+            &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
+                # message types for APIs to use.
+              {
+                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+              },
+            ],
+            &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
+                # user-facing error message should be localized and sent in the
+                # google.rpc.Status.details field, or localized by the client.
           },
         },
       ],
-      &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 100 chars)
-      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of a triggeredJob.
       &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of a triggeredJob.
       &quot;inspectJob&quot;: { # Controls what and how to inspect for findings. # For inspect jobs, a snapshot of the configuration.
-        &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # How and what to scan for.
-            # When used with redactContent only info_types and min_likelihood are currently
-            # used.
-          &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
-              # POSSIBLE.
-              # See https://cloud.google.com/dlp/docs/likelihood to learn more.
-          &quot;contentOptions&quot;: [ # List of options defining data content to scan.
-              # If empty, text, images, and other content will be included.
-            &quot;A String&quot;,
-          ],
-          &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
-              # InfoType values returned by ListInfoTypes or listed at
-              # https://cloud.google.com/dlp/docs/infotypes-reference.
-              #
-              # When no InfoTypes or CustomInfoTypes are specified in a request, the
-              # system may automatically choose what detectors to run. By default this may
-              # be all types, but may change over time as detectors are updated.
-              #
-              # If you need precise control and predictability as to what detectors are
-              # run you should specify specific InfoTypes listed in the reference,
-              # otherwise a default list will be used, which may change over time.
-            { # Type of information detected by the API.
-              &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. InfoType names should conform to the pattern
-                  # `[a-zA-Z0-9_]{1,64}`.
-            },
-          ],
-          &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
-          &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
-              # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
-            { # Custom information type provided by the user. Used to find domain-specific
-                # sensitive information configurable to the data in question.
-              &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
-                  # support reversing.
-                  # such as
-                  # [`CryptoReplaceFfxFpeConfig`](/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
-                  # These types of transformations are
-                  # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
-                  # output. This should be used in conjunction with a field on the
-                  # transformation such as `surrogate_info_type`. This CustomInfoType does
-                  # not support the use of `detection_rules`.
-              },
-              &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
-                  # altered by a detection rule if the finding meets the criteria specified by
-                  # the rule. Defaults to `VERY_LIKELY` if not specified.
-              &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
-                  # infoType, when the name matches one of existing infoTypes and that infoType
-                  # is specified in `InspectContent.info_types` field. Specifying the latter
-                  # adds findings to the one detected by the system. If built-in info type is
-                  # not specified in `InspectContent.info_types` list then the name is treated
-                  # as a custom info type.
-                &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. InfoType names should conform to the pattern
-                    # `[a-zA-Z0-9_]{1,64}`.
-              },
-              &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
-                &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                    # specified, the entire match is returned. No more than 3 may be included.
-                  42,
-                ],
-                &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                    # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                    # google/re2 repository on GitHub.
-              },
-              &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
-                  # Rules are applied in order that they are specified. Not supported for the
-                  # `surrogate_type` CustomInfoType.
-                { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
-                    # `CustomInfoType` to alter behavior under certain circumstances, depending
-                    # on the specific details of the rule. Not supported for the `surrogate_type`
-                    # custom infoType.
-                  &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                      # proximity of hotwords.
-                    &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                        # part of a detection rule.
-                      &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                          # levels. For example, if a finding would be `POSSIBLE` without the
-                          # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                          # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                          # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                          # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                          # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                          # a final likelihood of `LIKELY`.
-                      &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                    },
-                    &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                      &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                          # specified, the entire match is returned. No more than 3 may be included.
-                        42,
-                      ],
-                      &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                          # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                          # google/re2 repository on GitHub.
-                    },
-                    &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                        # The total length of the window cannot exceed 1000 characters. Note that
-                        # the finding itself will be included in the window, so that hotwords may
-                        # be used to match substrings of the finding itself. For example, the
-                        # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                        # adjusted upwards if the area code is known to be the local area code of
-                        # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                        # is the area code in question.
-                        # rule.
-                      &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                      &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                    },
-                  },
-                },
-              ],
-              &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
-                  # to be returned. It still can be used for rules matching.
-              &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
-                  # be used to match sensitive information specific to the data, such as a list
-                  # of employee IDs or job titles.
-                  #
-                  # Dictionary words are case-insensitive and all characters other than letters
-                  # and digits in the unicode [Basic Multilingual
-                  # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                  # will be replaced with whitespace when scanning for matches, so the
-                  # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                  # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                  # surrounding any match must be of a different type than the adjacent
-                  # characters within the word, so letters must be next to non-letters and
-                  # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                  # match the first three letters of the text &quot;jen123&quot; but will return no
-                  # matches for &quot;jennifer&quot;.
-                  #
-                  # Dictionary words containing a large number of characters that are not
-                  # letters or digits may result in unexpected findings because such characters
-                  # are treated as whitespace. The
-                  # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                  # the size limits of dictionaries. For dictionaries that do not fit within
-                  # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                  # `StoredInfoType` API.
-                &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                  &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                      # at least one phrase and every phrase must contain at least 2 characters
-                      # that are letters or digits. [required]
-                    &quot;A String&quot;,
-                  ],
-                },
-                &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                    # is accepted.
-                  &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                      # Example: gs://[BUCKET_NAME]/dictionary.txt
-                },
-              },
-              &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
-                  # `InspectDataSource`. Not currently supported in `InspectContent`.
-                &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
-                    # `organizations/433245324/storedInfoTypes/432452342` or
-                    # `projects/project-id/storedInfoTypes/432452342`.
-                &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
-                    # inspection was created. Output-only field, populated by the system.
-              },
-            },
-          ],
-          &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
-              # included in the response; see Finding.quote.
-          &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
-              # Exclusion rules, contained in the set are executed in the end, other
-              # rules are executed in the order they are specified for each info type.
-            { # Rule set for modifying a set of infoTypes to alter behavior under certain
-                # circumstances, depending on the specific details of the rules within the set.
-              &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
-                { # Type of information detected by the API.
-                  &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. InfoType names should conform to the pattern
-                      # `[a-zA-Z0-9_]{1,64}`.
-                },
-              ],
-              &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
-                { # A single inspection rule to be applied to infoTypes, specified in
-                    # `InspectionRuleSet`.
-                  &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                      # proximity of hotwords.
-                    &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                        # part of a detection rule.
-                      &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                          # levels. For example, if a finding would be `POSSIBLE` without the
-                          # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                          # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                          # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                          # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                          # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                          # a final likelihood of `LIKELY`.
-                      &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                    },
-                    &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                      &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                          # specified, the entire match is returned. No more than 3 may be included.
-                        42,
-                      ],
-                      &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                          # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                          # google/re2 repository on GitHub.
-                    },
-                    &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                        # The total length of the window cannot exceed 1000 characters. Note that
-                        # the finding itself will be included in the window, so that hotwords may
-                        # be used to match substrings of the finding itself. For example, the
-                        # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                        # adjusted upwards if the area code is known to be the local area code of
-                        # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                        # is the area code in question.
-                        # rule.
-                      &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                      &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                    },
-                  },
-                  &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
-                      # `InspectionRuleSet` are removed from results.
-                    &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
-                        # be used to match sensitive information specific to the data, such as a list
-                        # of employee IDs or job titles.
-                        #
-                        # Dictionary words are case-insensitive and all characters other than letters
-                        # and digits in the unicode [Basic Multilingual
-                        # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                        # will be replaced with whitespace when scanning for matches, so the
-                        # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                        # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                        # surrounding any match must be of a different type than the adjacent
-                        # characters within the word, so letters must be next to non-letters and
-                        # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                        # match the first three letters of the text &quot;jen123&quot; but will return no
-                        # matches for &quot;jennifer&quot;.
-                        #
-                        # Dictionary words containing a large number of characters that are not
-                        # letters or digits may result in unexpected findings because such characters
-                        # are treated as whitespace. The
-                        # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                        # the size limits of dictionaries. For dictionaries that do not fit within
-                        # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                        # `StoredInfoType` API.
-                      &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                        &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                            # at least one phrase and every phrase must contain at least 2 characters
-                            # that are letters or digits. [required]
-                          &quot;A String&quot;,
-                        ],
-                      },
-                      &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                          # is accepted.
-                        &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                            # Example: gs://[BUCKET_NAME]/dictionary.txt
-                      },
-                    },
-                    &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
-                      &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                          # specified, the entire match is returned. No more than 3 may be included.
-                        42,
-                      ],
-                      &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                          # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                          # google/re2 repository on GitHub.
-                    },
-                    &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
-                      &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
-                          # contained within with a finding of an infoType from this list. For
-                          # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
-                          # `exclusion_rule` containing `exclude_info_types.info_types` with
-                          # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
-                          # with EMAIL_ADDRESS finding.
-                          # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
-                          # finding, namely email address.
-                        { # Type of information detected by the API.
-                          &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. InfoType names should conform to the pattern
-                              # `[a-zA-Z0-9_]{1,64}`.
-                        },
-                      ],
-                    },
-                    &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
-                  },
-                },
-              ],
-            },
-          ],
-          &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
-            &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
-                # When set within `InspectJobConfig`,
-                # the maximum returned is 2000 regardless if this is set higher.
-                # When set within `InspectContentRequest`, this field is ignored.
-            &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
-              { # Max findings configuration per infoType, per content item or long
-                  # running DlpJob.
-                &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
-                &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
-                    # info_type should be provided. If InfoTypeLimit does not have an
-                    # info_type, the DLP API applies the limit against all info_types that
-                    # are found but not specified in another InfoTypeLimit.
-                  &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. InfoType names should conform to the pattern
-                      # `[a-zA-Z0-9_]{1,64}`.
-                },
-              },
-            ],
-            &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
-                # When set within `InspectContentRequest`, the maximum returned is 2000
-                # regardless if this is set higher.
-          },
-        },
+        &quot;inspectTemplateName&quot;: &quot;A String&quot;, # If provided, will be used as the default for all values in InspectConfig.
+            # `inspect_config` will be merged into the values persisted as part of the
+            # template.
         &quot;actions&quot;: [ # Actions to execute at the completion of the job.
           { # A task to execute on the completion of a job.
               # See https://cloud.google.com/dlp/docs/concepts-actions to learn more.
-            &quot;publishSummaryToCscc&quot;: { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha).
-                # Command Center (CSCC Alpha).
-                # This action is only available for projects which are parts of
-                # an organization and whitelisted for the alpha Cloud Security Command
-                # Center.
-                # The action will publish count of finding instances and their info types.
-                # The summary of findings will be persisted in CSCC and are governed by CSCC
-                # service-specific policy, see https://cloud.google.com/terms/service-terms
-                # Only a single instance of this action can be specified.
+            &quot;publishToStackdriver&quot;: { # Enable Stackdriver metric dlp.googleapis.com/finding_count. This # Enable Stackdriver metric dlp.googleapis.com/finding_count.
+                # will publish a metric to stack driver on each infotype requested and
+                # how many findings were found for it. CustomDetectors will be bucketed
+                # as &#x27;Custom&#x27; under the Stackdriver label &#x27;info_type&#x27;.
+            },
+            &quot;publishFindingsToCloudDataCatalog&quot;: { # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the # Publish findings to Cloud Datahub.
+                # results of the DlpJob will be applied to the entry for the resource scanned
+                # in Cloud Data Catalog. Any labels previously written by another DlpJob will
+                # be deleted. InfoType naming patterns are strictly enforced when using this
+                # feature. Note that the findings will be persisted in Cloud Data Catalog
+                # storage and are governed by Data Catalog service-specific policy, see
+                # https://cloud.google.com/terms/service-terms
+                # Only a single instance of this action can be specified and only allowed if
+                # all resources being scanned are BigQuery tables.
                 # Compatible with: Inspect
             },
             &quot;jobNotificationEmails&quot;: { # Enable email notification to project owners and editors on jobs&#x27;s # Enable email notification for project owners and editors on job&#x27;s
                 # completion/failure.
                 # completion/failure.
             },
+            &quot;pubSub&quot;: { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic.
+                # message contains a single field, `DlpJobName`, which is equal to the
+                # finished job&#x27;s
+                # [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
+                # Compatible with: Inspect, Risk
+              &quot;topic&quot;: &quot;A String&quot;, # Cloud Pub/Sub topic to send notifications to. The topic must have given
+                  # publishing access rights to the DLP API service account executing
+                  # the long running DlpJob sending the notifications.
+                  # Format is projects/{project}/topics/{topic}.
+            },
             &quot;saveFindings&quot;: { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location.
                 # OutputStorageConfig. Only a single instance of this action can be
                 # specified.
                 # Compatible with: Inspect, Risk
               &quot;outputConfig&quot;: { # Cloud repository for storing output. # Location to store findings outside of DLP.
+                &quot;outputSchema&quot;: &quot;A String&quot;, # Schema used for writing the findings for Inspect jobs. This field is only
+                    # used for Inspect and must be unspecified for Risk jobs. Columns are derived
+                    # from the `Finding` object. If appending to an existing table, any columns
+                    # from the predefined schema that are missing will be added. No columns in
+                    # the existing table will be deleted.
+                    #
+                    # If unspecified, then all available columns will be used for a new table or
+                    # an (existing) table with no schema, and no changes will be made to an
+                    # existing table that has a schema.
+                    # Only for use with external storage.
                 &quot;table&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing
                     # dataset. If table_id is not set a new one will be generated
                     # for you with the following format:
@@ -5362,137 +5072,43 @@
                   &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
                   &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
                 },
-                &quot;outputSchema&quot;: &quot;A String&quot;, # Schema used for writing the findings for Inspect jobs. This field is only
-                    # used for Inspect and must be unspecified for Risk jobs. Columns are derived
-                    # from the `Finding` object. If appending to an existing table, any columns
-                    # from the predefined schema that are missing will be added. No columns in
-                    # the existing table will be deleted.
-                    #
-                    # If unspecified, then all available columns will be used for a new table or
-                    # an (existing) table with no schema, and no changes will be made to an
-                    # existing table that has a schema.
-                    # Only for use with external storage.
               },
             },
-            &quot;pubSub&quot;: { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic.
-                # message contains a single field, `DlpJobName`, which is equal to the
-                # finished job&#x27;s
-                # [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
-                # Compatible with: Inspect, Risk
-              &quot;topic&quot;: &quot;A String&quot;, # Cloud Pub/Sub topic to send notifications to. The topic must have given
-                  # publishing access rights to the DLP API service account executing
-                  # the long running DlpJob sending the notifications.
-                  # Format is projects/{project}/topics/{topic}.
-            },
-            &quot;publishFindingsToCloudDataCatalog&quot;: { # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the # Publish findings to Cloud Datahub.
-                # results of the DlpJob will be applied to the entry for the resource scanned
-                # in Cloud Data Catalog. Any labels previously written by another DlpJob will
-                # be deleted. InfoType naming patterns are strictly enforced when using this
-                # feature. Note that the findings will be persisted in Cloud Data Catalog
-                # storage and are governed by Data Catalog service-specific policy, see
-                # https://cloud.google.com/terms/service-terms
-                # Only a single instance of this action can be specified and only allowed if
-                # all resources being scanned are BigQuery tables.
+            &quot;publishSummaryToCscc&quot;: { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha).
+                # Command Center (CSCC Alpha).
+                # This action is only available for projects which are parts of
+                # an organization and whitelisted for the alpha Cloud Security Command
+                # Center.
+                # The action will publish count of finding instances and their info types.
+                # The summary of findings will be persisted in CSCC and are governed by CSCC
+                # service-specific policy, see https://cloud.google.com/terms/service-terms
+                # Only a single instance of this action can be specified.
                 # Compatible with: Inspect
             },
-            &quot;publishToStackdriver&quot;: { # Enable Stackdriver metric dlp.googleapis.com/finding_count. This # Enable Stackdriver metric dlp.googleapis.com/finding_count.
-                # will publish a metric to stack driver on each infotype requested and
-                # how many findings were found for it. CustomDetectors will be bucketed
-                # as &#x27;Custom&#x27; under the Stackdriver label &#x27;info_type&#x27;.
-            },
           },
         ],
         &quot;storageConfig&quot;: { # Shared message indicating Cloud storage type. # The data to scan.
-          &quot;hybridOptions&quot;: { # Configuration to control jobs where the content being inspected is outside # Hybrid inspection options.
-              # Early access feature is in a pre-release state and might change or have
-              # limited support. For more information, see
-              # https://cloud.google.com/products#product-launch-stages.
-              # of Google Cloud Platform.
-            &quot;labels&quot;: { # To organize findings, these labels will be added to each finding.
-                #
-                # Label keys must be between 1 and 63 characters long and must conform
-                # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
-                #
-                # Label values must be between 0 and 63 characters long and must conform
-                # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
-                #
-                # No more than 10 labels can be associated with a given finding.
-                #
-                # Examples:
-                # * `&quot;environment&quot; : &quot;production&quot;`
-                # * `&quot;pipeline&quot; : &quot;etl&quot;`
-              &quot;a_key&quot;: &quot;A String&quot;,
-            },
-            &quot;description&quot;: &quot;A String&quot;, # A short description of where the data is coming from. Will be stored once
-                # in the job. 256 max length.
-            &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
-                # meaningful such as the columns that are primary keys.
-              &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
-                  # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
-                  # each finding so that the finding can be traced to the specific row it came
-                  # from. No more than 3 may be provided.
-                { # General identifier of a data field in a storage service.
-                  &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-                },
-              ],
-            },
-            &quot;requiredFindingLabelKeys&quot;: [ # These are labels that each inspection request must include within their
-                # &#x27;finding_labels&#x27; map. Request may contain others, but any missing one of
-                # these will be rejected.
-                #
-                # Label keys must be between 1 and 63 characters long and must conform
-                # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
-                #
-                # No more than 10 keys can be required.
-              &quot;A String&quot;,
-            ],
-          },
-          &quot;datastoreOptions&quot;: { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options.
-            &quot;partitionId&quot;: { # Datastore partition ID. # A partition ID identifies a grouping of entities. The grouping is always
-                # by project and namespace, however the namespace ID may be empty.
-                # A partition ID identifies a grouping of entities. The grouping is always
-                # by project and namespace, however the namespace ID may be empty.
-                #
-                # A partition ID contains several dimensions:
-                # project ID and namespace ID.
-              &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-            },
-            &quot;kind&quot;: { # A representation of a Datastore kind. # The kind to process.
-              &quot;name&quot;: &quot;A String&quot;, # The name of the kind.
-            },
-          },
-          &quot;timespanConfig&quot;: { # Configuration of the timespan of the items to include in scanning.
-              # Currently only supported when inspecting Google Cloud Storage and BigQuery.
-            &quot;timestampField&quot;: { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items.
-                # Used for data sources like Datastore and BigQuery.
-                #
-                # For BigQuery:
-                # Required to filter out rows based on the given start and
-                # end times. If not specified and the table was modified between the given
-                # start and end times, the entire table will be scanned.
-                # The valid data types of the timestamp field are: `INTEGER`, `DATE`,
-                # `TIMESTAMP`, or `DATETIME` BigQuery column.
-                #
-                # For Datastore.
-                # Valid data types of the timestamp field are: `TIMESTAMP`.
-                # Datastore entity will be scanned if the timestamp property does not
-                # exist or its value is empty or invalid.
-              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-            },
-            &quot;enableAutoPopulationOfTimespanConfig&quot;: True or False, # When the job is started by a JobTrigger we will automatically figure out
-                # a valid start_time to avoid scanning files that have not been modified
-                # since the last time the JobTrigger executed. This will be based on the
-                # time of the execution of the last run of the JobTrigger.
-            &quot;endTime&quot;: &quot;A String&quot;, # Exclude files or rows newer than this value.
-                # If set to zero, no upper time limit is applied.
-            &quot;startTime&quot;: &quot;A String&quot;, # Exclude files or rows older than this value.
-          },
           &quot;cloudStorageOptions&quot;: { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options.
               # bucket.
+            &quot;bytesLimitPerFilePercent&quot;: 42, # Max percentage of bytes to scan from a file. The rest are omitted. The
+                # number of bytes scanned is rounded down. Must be between 0 and 100,
+                # inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one
+                # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
+            &quot;fileTypes&quot;: [ # List of file type groups to include in the scan.
+                # If empty, all files are scanned and available data format processors
+                # are applied. In addition, the binary content of the selected files
+                # is always scanned as well.
+                # Images are scanned only as binary if the specified region
+                # does not support image inspection and no file_types were specified.
+                # Image inspection is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;, and &#x27;europe&#x27;.
+              &quot;A String&quot;,
+            ],
             &quot;bytesLimitPerFile&quot;: &quot;A String&quot;, # Max number of bytes to scan from a file. If a scanned file&#x27;s size is bigger
                 # than this value then the rest of the bytes are omitted. Only one
                 # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
+            &quot;filesLimitPercent&quot;: 42, # Limits the number of files to scan to this percentage of the input FileSet.
+                # Number of files scanned is rounded down. Must be between 0 and 100,
+                # inclusively. Both 0 and 100 means no limit. Defaults to 0.
             &quot;fileSet&quot;: { # Set of files to scan. # The set of one or more files to scan.
               &quot;regexFileSet&quot;: { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or
                   # `regex_file_set` must be set.
@@ -5528,20 +5144,20 @@
                   # include all files directly under `gs://mybucket/directory/`, without matching
                   # across `/`
                 &quot;bucketName&quot;: &quot;A String&quot;, # The name of a Cloud Storage bucket. Required.
-                &quot;includeRegex&quot;: [ # A list of regular expressions matching file paths to include. All files in
+                &quot;excludeRegex&quot;: [ # A list of regular expressions matching file paths to exclude. All files in
                     # the bucket that match at least one of these regular expressions will be
-                    # included in the set of files, except for those that also match an item in
-                    # `exclude_regex`. Leaving this field empty will match all files by default
-                    # (this is equivalent to including `.*` in the list).
+                    # excluded from the scan.
                     #
                     # Regular expressions use RE2
                     # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
                     # under the google/re2 repository on GitHub.
                   &quot;A String&quot;,
                 ],
-                &quot;excludeRegex&quot;: [ # A list of regular expressions matching file paths to exclude. All files in
+                &quot;includeRegex&quot;: [ # A list of regular expressions matching file paths to include. All files in
                     # the bucket that match at least one of these regular expressions will be
-                    # excluded from the scan.
+                    # included in the set of files, except for those that also match an item in
+                    # `exclude_regex`. Leaving this field empty will match all files by default
+                    # (this is equivalent to including `.*` in the list).
                     #
                     # Regular expressions use RE2
                     # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
@@ -5560,25 +5176,10 @@
                   #
                   # Exactly one of `url` or `regex_file_set` must be set.
             },
-            &quot;filesLimitPercent&quot;: 42, # Limits the number of files to scan to this percentage of the input FileSet.
-                # Number of files scanned is rounded down. Must be between 0 and 100,
-                # inclusively. Both 0 and 100 means no limit. Defaults to 0.
-            &quot;fileTypes&quot;: [ # List of file type groups to include in the scan.
-                # If empty, all files are scanned and available data format processors
-                # are applied. In addition, the binary content of the selected files
-                # is always scanned as well.
-                # Images are scanned only as binary if the specified region
-                # does not support image inspection and no file_types were specified.
-                # Image inspection is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;, and &#x27;europe&#x27;.
-              &quot;A String&quot;,
-            ],
             &quot;sampleMethod&quot;: &quot;A String&quot;,
-            &quot;bytesLimitPerFilePercent&quot;: 42, # Max percentage of bytes to scan from a file. The rest are omitted. The
-                # number of bytes scanned is rounded down. Must be between 0 and 100,
-                # inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one
-                # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
           },
           &quot;bigQueryOptions&quot;: { # Options defining BigQuery table and row identifiers. # BigQuery options.
+            &quot;sampleMethod&quot;: &quot;A String&quot;,
             &quot;tableReference&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference.
                 # identified  by its project_id, dataset_id, and table_name. Within a query
                 # a table is often referenced with a string in the format of:
@@ -5589,15 +5190,6 @@
               &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
               &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
             },
-            &quot;identifyingFields&quot;: [ # Table fields that may uniquely identify a row within the table. When
-                # `actions.saveFindings.outputConfig.table` is specified, the values of
-                # columns specified here are available in the output table under
-                # `location.content_locations.record_location.record_key.id_values`. Nested
-                # fields such as `person.birthdate.year` are allowed.
-              { # General identifier of a data field in a storage service.
-                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-              },
-            ],
             &quot;rowsLimitPercent&quot;: 42, # Max percentage of rows to scan. The rest are omitted. The number of rows
                 # scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and
                 # 100 means no limit. Defaults to 0. Only one of rows_limit and
@@ -5607,22 +5199,430 @@
                 # rest of the rows are omitted. If not set, or if set to 0, all rows will be
                 # scanned. Only one of rows_limit and rows_limit_percent can be specified.
                 # Cannot be used in conjunction with TimespanConfig.
+            &quot;identifyingFields&quot;: [ # Table fields that may uniquely identify a row within the table. When
+                # `actions.saveFindings.outputConfig.table` is specified, the values of
+                # columns specified here are available in the output table under
+                # `location.content_locations.record_location.record_key.id_values`. Nested
+                # fields such as `person.birthdate.year` are allowed.
+              { # General identifier of a data field in a storage service.
+                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+              },
+            ],
             &quot;excludedFields&quot;: [ # References to fields excluded from scanning. This allows you to skip
                 # inspection of entire columns which you know have no findings.
               { # General identifier of a data field in a storage service.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
             ],
-            &quot;sampleMethod&quot;: &quot;A String&quot;,
+          },
+          &quot;timespanConfig&quot;: { # Configuration of the timespan of the items to include in scanning.
+              # Currently only supported when inspecting Google Cloud Storage and BigQuery.
+            &quot;timestampField&quot;: { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items.
+                # Used for data sources like Datastore and BigQuery.
+                #
+                # For BigQuery:
+                # Required to filter out rows based on the given start and
+                # end times. If not specified and the table was modified between the given
+                # start and end times, the entire table will be scanned.
+                # The valid data types of the timestamp field are: `INTEGER`, `DATE`,
+                # `TIMESTAMP`, or `DATETIME` BigQuery column.
+                #
+                # For Datastore.
+                # Valid data types of the timestamp field are: `TIMESTAMP`.
+                # Datastore entity will be scanned if the timestamp property does not
+                # exist or its value is empty or invalid.
+              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+            },
+            &quot;enableAutoPopulationOfTimespanConfig&quot;: True or False, # When the job is started by a JobTrigger we will automatically figure out
+                # a valid start_time to avoid scanning files that have not been modified
+                # since the last time the JobTrigger executed. This will be based on the
+                # time of the execution of the last run of the JobTrigger.
+            &quot;startTime&quot;: &quot;A String&quot;, # Exclude files or rows older than this value.
+            &quot;endTime&quot;: &quot;A String&quot;, # Exclude files or rows newer than this value.
+                # If set to zero, no upper time limit is applied.
+          },
+          &quot;datastoreOptions&quot;: { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options.
+            &quot;kind&quot;: { # A representation of a Datastore kind. # The kind to process.
+              &quot;name&quot;: &quot;A String&quot;, # The name of the kind.
+            },
+            &quot;partitionId&quot;: { # Datastore partition ID. # A partition ID identifies a grouping of entities. The grouping is always
+                # by project and namespace, however the namespace ID may be empty.
+                # A partition ID identifies a grouping of entities. The grouping is always
+                # by project and namespace, however the namespace ID may be empty.
+                #
+                # A partition ID contains several dimensions:
+                # project ID and namespace ID.
+              &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+              &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+            },
+          },
+          &quot;hybridOptions&quot;: { # Configuration to control jobs where the content being inspected is outside # Hybrid inspection options.
+              # Early access feature is in a pre-release state and might change or have
+              # limited support. For more information, see
+              # https://cloud.google.com/products#product-launch-stages.
+              # of Google Cloud Platform.
+            &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
+                # meaningful such as the columns that are primary keys.
+              &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
+                  # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
+                  # each finding so that the finding can be traced to the specific row it came
+                  # from. No more than 3 may be provided.
+                { # General identifier of a data field in a storage service.
+                  &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+                },
+              ],
+            },
+            &quot;requiredFindingLabelKeys&quot;: [ # These are labels that each inspection request must include within their
+                # &#x27;finding_labels&#x27; map. Request may contain others, but any missing one of
+                # these will be rejected.
+                #
+                # Label keys must be between 1 and 63 characters long and must conform
+                # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+                #
+                # No more than 10 keys can be required.
+              &quot;A String&quot;,
+            ],
+            &quot;labels&quot;: { # To organize findings, these labels will be added to each finding.
+                #
+                # Label keys must be between 1 and 63 characters long and must conform
+                # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+                #
+                # Label values must be between 0 and 63 characters long and must conform
+                # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
+                #
+                # No more than 10 labels can be associated with a given finding.
+                #
+                # Examples:
+                # * `&quot;environment&quot; : &quot;production&quot;`
+                # * `&quot;pipeline&quot; : &quot;etl&quot;`
+              &quot;a_key&quot;: &quot;A String&quot;,
+            },
+            &quot;description&quot;: &quot;A String&quot;, # A short description of where the data is coming from. Will be stored once
+                # in the job. 256 max length.
           },
         },
-        &quot;inspectTemplateName&quot;: &quot;A String&quot;, # If provided, will be used as the default for all values in InspectConfig.
-            # `inspect_config` will be merged into the values persisted as part of the
-            # template.
+        &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # How and what to scan for.
+            # When used with redactContent only info_types and min_likelihood are currently
+            # used.
+          &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
+              # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
+            { # Custom information type provided by the user. Used to find domain-specific
+                # sensitive information configurable to the data in question.
+              &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
+                  # be used to match sensitive information specific to the data, such as a list
+                  # of employee IDs or job titles.
+                  #
+                  # Dictionary words are case-insensitive and all characters other than letters
+                  # and digits in the unicode [Basic Multilingual
+                  # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                  # will be replaced with whitespace when scanning for matches, so the
+                  # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                  # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                  # surrounding any match must be of a different type than the adjacent
+                  # characters within the word, so letters must be next to non-letters and
+                  # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                  # match the first three letters of the text &quot;jen123&quot; but will return no
+                  # matches for &quot;jennifer&quot;.
+                  #
+                  # Dictionary words containing a large number of characters that are not
+                  # letters or digits may result in unexpected findings because such characters
+                  # are treated as whitespace. The
+                  # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                  # the size limits of dictionaries. For dictionaries that do not fit within
+                  # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                  # `StoredInfoType` API.
+                &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                    # is accepted.
+                  &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                      # Example: gs://[BUCKET_NAME]/dictionary.txt
+                },
+                &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                  &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                      # at least one phrase and every phrase must contain at least 2 characters
+                      # that are letters or digits. [required]
+                    &quot;A String&quot;,
+                  ],
+                },
+              },
+              &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
+                  # infoType, when the name matches one of existing infoTypes and that infoType
+                  # is specified in `InspectContent.info_types` field. Specifying the latter
+                  # adds findings to the one detected by the system. If built-in info type is
+                  # not specified in `InspectContent.info_types` list then the name is treated
+                  # as a custom info type.
+                &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}`.
+              },
+              &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
+                  # altered by a detection rule if the finding meets the criteria specified by
+                  # the rule. Defaults to `VERY_LIKELY` if not specified.
+              &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
+                  # Rules are applied in order that they are specified. Not supported for the
+                  # `surrogate_type` CustomInfoType.
+                { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
+                    # `CustomInfoType` to alter behavior under certain circumstances, depending
+                    # on the specific details of the rule. Not supported for the `surrogate_type`
+                    # custom infoType.
+                  &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                      # proximity of hotwords.
+                    &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                        # The total length of the window cannot exceed 1000 characters. Note that
+                        # the finding itself will be included in the window, so that hotwords may
+                        # be used to match substrings of the finding itself. For example, the
+                        # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                        # adjusted upwards if the area code is known to be the local area code of
+                        # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                        # is the area code in question.
+                        # rule.
+                      &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                      &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                    },
+                    &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                        # part of a detection rule.
+                      &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                      &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                          # levels. For example, if a finding would be `POSSIBLE` without the
+                          # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                          # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                          # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                          # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                          # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                          # a final likelihood of `LIKELY`.
+                    },
+                    &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                      &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                          # specified, the entire match is returned. No more than 3 may be included.
+                        42,
+                      ],
+                      &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                          # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                          # google/re2 repository on GitHub.
+                    },
+                  },
+                },
+              ],
+              &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
+                  # support reversing.
+                  # such as
+                  # [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
+                  # These types of transformations are
+                  # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
+                  # output. This should be used in conjunction with a field on the
+                  # transformation such as `surrogate_info_type`. This CustomInfoType does
+                  # not support the use of `detection_rules`.
+              },
+              &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
+                &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                    # specified, the entire match is returned. No more than 3 may be included.
+                  42,
+                ],
+                &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                    # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                    # google/re2 repository on GitHub.
+              },
+              &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
+                  # `InspectDataSource`. Not currently supported in `InspectContent`.
+                &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
+                    # `organizations/433245324/storedInfoTypes/432452342` or
+                    # `projects/project-id/storedInfoTypes/432452342`.
+                &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
+                    # inspection was created. Output-only field, populated by the system.
+              },
+              &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
+                  # to be returned. It still can be used for rules matching.
+            },
+          ],
+          &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
+              # POSSIBLE.
+              # See https://cloud.google.com/dlp/docs/likelihood to learn more.
+          &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
+            &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
+                # When set within `InspectContentRequest`, the maximum returned is 2000
+                # regardless if this is set higher.
+            &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
+              { # Max findings configuration per infoType, per content item or long
+                  # running DlpJob.
+                &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
+                    # info_type should be provided. If InfoTypeLimit does not have an
+                    # info_type, the DLP API applies the limit against all info_types that
+                    # are found but not specified in another InfoTypeLimit.
+                  &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}`.
+                },
+                &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
+              },
+            ],
+            &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
+                # When set within `InspectJobConfig`,
+                # the maximum returned is 2000 regardless if this is set higher.
+                # When set within `InspectContentRequest`, this field is ignored.
+          },
+          &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
+          &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
+              # included in the response; see Finding.quote.
+          &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
+              # Exclusion rules, contained in the set are executed in the end, other
+              # rules are executed in the order they are specified for each info type.
+            { # Rule set for modifying a set of infoTypes to alter behavior under certain
+                # circumstances, depending on the specific details of the rules within the set.
+              &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
+                { # Type of information detected by the API.
+                  &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}`.
+                },
+              ],
+              &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
+                { # A single inspection rule to be applied to infoTypes, specified in
+                    # `InspectionRuleSet`.
+                  &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                      # proximity of hotwords.
+                    &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                        # The total length of the window cannot exceed 1000 characters. Note that
+                        # the finding itself will be included in the window, so that hotwords may
+                        # be used to match substrings of the finding itself. For example, the
+                        # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                        # adjusted upwards if the area code is known to be the local area code of
+                        # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                        # is the area code in question.
+                        # rule.
+                      &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                      &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                    },
+                    &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                        # part of a detection rule.
+                      &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                      &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                          # levels. For example, if a finding would be `POSSIBLE` without the
+                          # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                          # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                          # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                          # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                          # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                          # a final likelihood of `LIKELY`.
+                    },
+                    &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                      &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                          # specified, the entire match is returned. No more than 3 may be included.
+                        42,
+                      ],
+                      &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                          # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                          # google/re2 repository on GitHub.
+                    },
+                  },
+                  &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
+                      # `InspectionRuleSet` are removed from results.
+                    &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
+                    &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
+                        # be used to match sensitive information specific to the data, such as a list
+                        # of employee IDs or job titles.
+                        #
+                        # Dictionary words are case-insensitive and all characters other than letters
+                        # and digits in the unicode [Basic Multilingual
+                        # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                        # will be replaced with whitespace when scanning for matches, so the
+                        # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                        # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                        # surrounding any match must be of a different type than the adjacent
+                        # characters within the word, so letters must be next to non-letters and
+                        # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                        # match the first three letters of the text &quot;jen123&quot; but will return no
+                        # matches for &quot;jennifer&quot;.
+                        #
+                        # Dictionary words containing a large number of characters that are not
+                        # letters or digits may result in unexpected findings because such characters
+                        # are treated as whitespace. The
+                        # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                        # the size limits of dictionaries. For dictionaries that do not fit within
+                        # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                        # `StoredInfoType` API.
+                      &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                          # is accepted.
+                        &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                            # Example: gs://[BUCKET_NAME]/dictionary.txt
+                      },
+                      &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                        &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                            # at least one phrase and every phrase must contain at least 2 characters
+                            # that are letters or digits. [required]
+                          &quot;A String&quot;,
+                        ],
+                      },
+                    },
+                    &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
+                      &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
+                          # contained within with a finding of an infoType from this list. For
+                          # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
+                          # `exclusion_rule` containing `exclude_info_types.info_types` with
+                          # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
+                          # with EMAIL_ADDRESS finding.
+                          # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
+                          # finding, namely email address.
+                        { # Type of information detected by the API.
+                          &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}`.
+                        },
+                      ],
+                    },
+                    &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
+                      &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                          # specified, the entire match is returned. No more than 3 may be included.
+                        42,
+                      ],
+                      &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                          # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                          # google/re2 repository on GitHub.
+                    },
+                  },
+                },
+              ],
+            },
+          ],
+          &quot;contentOptions&quot;: [ # List of options defining data content to scan.
+              # If empty, text, images, and other content will be included.
+            &quot;A String&quot;,
+          ],
+          &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
+              # InfoType values returned by ListInfoTypes or listed at
+              # https://cloud.google.com/dlp/docs/infotypes-reference.
+              #
+              # When no InfoTypes or CustomInfoTypes are specified in a request, the
+              # system may automatically choose what detectors to run. By default this may
+              # be all types, but may change over time as detectors are updated.
+              #
+              # If you need precise control and predictability as to what detectors are
+              # run you should specify specific InfoTypes listed in the reference,
+              # otherwise a default list will be used, which may change over time.
+            { # Type of information detected by the API.
+              &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}`.
+            },
+          ],
+        },
       },
-      &quot;status&quot;: &quot;A String&quot;, # Required. A status for this trigger.
+      &quot;name&quot;: &quot;A String&quot;, # Unique resource name for the triggeredJob, assigned by the service when the
+          # triggeredJob is created, for example
+          # `projects/dlp-test-project/jobTriggers/53234423`.
+      &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 100 chars)
+      &quot;lastRunTime&quot;: &quot;A String&quot;, # Output only. The timestamp of the last time this trigger executed.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of a triggeredJob.
+      &quot;description&quot;: &quot;A String&quot;, # User provided description (max 256 chars)
     },
-    &quot;updateMask&quot;: &quot;A String&quot;, # Mask to control which fields get updated.
   }
 
   x__xgafv: string, V1 error format.
@@ -5635,44 +5635,17 @@
 
     { # Contains a configuration to make dlp api calls on a repeating basis.
       # See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more.
-    &quot;lastRunTime&quot;: &quot;A String&quot;, # Output only. The timestamp of the last time this trigger executed.
-    &quot;name&quot;: &quot;A String&quot;, # Unique resource name for the triggeredJob, assigned by the service when the
-        # triggeredJob is created, for example
-        # `projects/dlp-test-project/jobTriggers/53234423`.
-    &quot;errors&quot;: [ # Output only. A stream of errors encountered when the trigger was activated. Repeated
-        # errors may result in the JobTrigger automatically being paused.
-        # Will return the last 100 errors. Whenever the JobTrigger is modified
-        # this list will be cleared.
-      { # Details information about an error encountered during job execution or
-          # the results of an unsuccessful activation of the JobTrigger.
-        &quot;details&quot;: { # The `Status` type defines a logical error model that is suitable for # Detailed error codes and messages.
-            # different programming environments, including REST APIs and RPC APIs. It is
-            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
-            # three pieces of data: error code, error message, and error details.
-            #
-            # You can find out more about this error model and how to work with it in the
-            # [API Design Guide](https://cloud.google.com/apis/design/errors).
-          &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
-              # user-facing error message should be localized and sent in the
-              # google.rpc.Status.details field, or localized by the client.
-          &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
-              # message types for APIs to use.
-            {
-              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-            },
-          ],
-          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-        },
-        &quot;timestamps&quot;: [ # The times the error occurred.
-          &quot;A String&quot;,
-        ],
-      },
-    ],
-    &quot;description&quot;: &quot;A String&quot;, # User provided description (max 256 chars)
+    &quot;status&quot;: &quot;A String&quot;, # Required. A status for this trigger.
     &quot;triggers&quot;: [ # A list of triggers which will be OR&#x27;ed together. Only one in the list
         # needs to trigger for a job to be started. The list may contain only
         # a single Schedule trigger and must have at least one object.
       { # What event needs to occur for a new job to be started.
+        &quot;manual&quot;: { # Job trigger option for hybrid jobs. Jobs must be manually created # For use with hybrid jobs. Jobs must be manually created and finished.
+            # Early access feature is in a pre-release state and might change or have
+            # limited support. For more information, see
+            # https://cloud.google.com/products#product-launch-stages.
+            # and finished.
+        },
         &quot;schedule&quot;: { # Schedule for triggeredJobs. # Create a job on a repeating basis based on the elapse of time.
           &quot;recurrencePeriodDuration&quot;: &quot;A String&quot;, # With this option a job is started a regular periodic basis. For
               # example: every day (86400 seconds).
@@ -5683,354 +5656,90 @@
               # This value must be set to a time duration greater than or equal
               # to 1 day and can be no longer than 60 days.
         },
-        &quot;manual&quot;: { # Job trigger option for hybrid jobs. Jobs must be manually created # For use with hybrid jobs. Jobs must be manually created and finished.
-            # Early access feature is in a pre-release state and might change or have
-            # limited support. For more information, see
-            # https://cloud.google.com/products#product-launch-stages.
-            # and finished.
+      },
+    ],
+    &quot;errors&quot;: [ # Output only. A stream of errors encountered when the trigger was activated. Repeated
+        # errors may result in the JobTrigger automatically being paused.
+        # Will return the last 100 errors. Whenever the JobTrigger is modified
+        # this list will be cleared.
+      { # Details information about an error encountered during job execution or
+          # the results of an unsuccessful activation of the JobTrigger.
+        &quot;timestamps&quot;: [ # The times the error occurred.
+          &quot;A String&quot;,
+        ],
+        &quot;details&quot;: { # The `Status` type defines a logical error model that is suitable for # Detailed error codes and messages.
+            # different programming environments, including REST APIs and RPC APIs. It is
+            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+            # three pieces of data: error code, error message, and error details.
+            #
+            # You can find out more about this error model and how to work with it in the
+            # [API Design Guide](https://cloud.google.com/apis/design/errors).
+          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+          &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
+              # message types for APIs to use.
+            {
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+          &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
         },
       },
     ],
-    &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 100 chars)
-    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of a triggeredJob.
     &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update timestamp of a triggeredJob.
     &quot;inspectJob&quot;: { # Controls what and how to inspect for findings. # For inspect jobs, a snapshot of the configuration.
-      &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # How and what to scan for.
-          # When used with redactContent only info_types and min_likelihood are currently
-          # used.
-        &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
-            # POSSIBLE.
-            # See https://cloud.google.com/dlp/docs/likelihood to learn more.
-        &quot;contentOptions&quot;: [ # List of options defining data content to scan.
-            # If empty, text, images, and other content will be included.
-          &quot;A String&quot;,
-        ],
-        &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
-            # InfoType values returned by ListInfoTypes or listed at
-            # https://cloud.google.com/dlp/docs/infotypes-reference.
-            #
-            # When no InfoTypes or CustomInfoTypes are specified in a request, the
-            # system may automatically choose what detectors to run. By default this may
-            # be all types, but may change over time as detectors are updated.
-            #
-            # If you need precise control and predictability as to what detectors are
-            # run you should specify specific InfoTypes listed in the reference,
-            # otherwise a default list will be used, which may change over time.
-          { # Type of information detected by the API.
-            &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. InfoType names should conform to the pattern
-                # `[a-zA-Z0-9_]{1,64}`.
-          },
-        ],
-        &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
-        &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
-            # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
-          { # Custom information type provided by the user. Used to find domain-specific
-              # sensitive information configurable to the data in question.
-            &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
-                # support reversing.
-                # such as
-                # [`CryptoReplaceFfxFpeConfig`](/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
-                # These types of transformations are
-                # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
-                # output. This should be used in conjunction with a field on the
-                # transformation such as `surrogate_info_type`. This CustomInfoType does
-                # not support the use of `detection_rules`.
-            },
-            &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
-                # altered by a detection rule if the finding meets the criteria specified by
-                # the rule. Defaults to `VERY_LIKELY` if not specified.
-            &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
-                # infoType, when the name matches one of existing infoTypes and that infoType
-                # is specified in `InspectContent.info_types` field. Specifying the latter
-                # adds findings to the one detected by the system. If built-in info type is
-                # not specified in `InspectContent.info_types` list then the name is treated
-                # as a custom info type.
-              &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. InfoType names should conform to the pattern
-                  # `[a-zA-Z0-9_]{1,64}`.
-            },
-            &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
-              &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                  # specified, the entire match is returned. No more than 3 may be included.
-                42,
-              ],
-              &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                  # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                  # google/re2 repository on GitHub.
-            },
-            &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
-                # Rules are applied in order that they are specified. Not supported for the
-                # `surrogate_type` CustomInfoType.
-              { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
-                  # `CustomInfoType` to alter behavior under certain circumstances, depending
-                  # on the specific details of the rule. Not supported for the `surrogate_type`
-                  # custom infoType.
-                &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                    # proximity of hotwords.
-                  &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                      # part of a detection rule.
-                    &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                        # levels. For example, if a finding would be `POSSIBLE` without the
-                        # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                        # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                        # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                        # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                        # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                        # a final likelihood of `LIKELY`.
-                    &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                  },
-                  &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                        # specified, the entire match is returned. No more than 3 may be included.
-                      42,
-                    ],
-                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                        # google/re2 repository on GitHub.
-                  },
-                  &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                      # The total length of the window cannot exceed 1000 characters. Note that
-                      # the finding itself will be included in the window, so that hotwords may
-                      # be used to match substrings of the finding itself. For example, the
-                      # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                      # adjusted upwards if the area code is known to be the local area code of
-                      # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                      # is the area code in question.
-                      # rule.
-                    &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                    &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                  },
-                },
-              },
-            ],
-            &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
-                # to be returned. It still can be used for rules matching.
-            &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
-                # be used to match sensitive information specific to the data, such as a list
-                # of employee IDs or job titles.
-                #
-                # Dictionary words are case-insensitive and all characters other than letters
-                # and digits in the unicode [Basic Multilingual
-                # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                # will be replaced with whitespace when scanning for matches, so the
-                # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                # surrounding any match must be of a different type than the adjacent
-                # characters within the word, so letters must be next to non-letters and
-                # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                # match the first three letters of the text &quot;jen123&quot; but will return no
-                # matches for &quot;jennifer&quot;.
-                #
-                # Dictionary words containing a large number of characters that are not
-                # letters or digits may result in unexpected findings because such characters
-                # are treated as whitespace. The
-                # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                # the size limits of dictionaries. For dictionaries that do not fit within
-                # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                # `StoredInfoType` API.
-              &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                    # at least one phrase and every phrase must contain at least 2 characters
-                    # that are letters or digits. [required]
-                  &quot;A String&quot;,
-                ],
-              },
-              &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                  # is accepted.
-                &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                    # Example: gs://[BUCKET_NAME]/dictionary.txt
-              },
-            },
-            &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
-                # `InspectDataSource`. Not currently supported in `InspectContent`.
-              &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
-                  # `organizations/433245324/storedInfoTypes/432452342` or
-                  # `projects/project-id/storedInfoTypes/432452342`.
-              &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
-                  # inspection was created. Output-only field, populated by the system.
-            },
-          },
-        ],
-        &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
-            # included in the response; see Finding.quote.
-        &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
-            # Exclusion rules, contained in the set are executed in the end, other
-            # rules are executed in the order they are specified for each info type.
-          { # Rule set for modifying a set of infoTypes to alter behavior under certain
-              # circumstances, depending on the specific details of the rules within the set.
-            &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
-              { # Type of information detected by the API.
-                &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. InfoType names should conform to the pattern
-                    # `[a-zA-Z0-9_]{1,64}`.
-              },
-            ],
-            &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
-              { # A single inspection rule to be applied to infoTypes, specified in
-                  # `InspectionRuleSet`.
-                &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
-                    # proximity of hotwords.
-                  &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
-                      # part of a detection rule.
-                    &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
-                        # levels. For example, if a finding would be `POSSIBLE` without the
-                        # detection rule and `relative_likelihood` is 1, then it is upgraded to
-                        # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
-                        # Likelihood may never drop below `VERY_UNLIKELY` or exceed
-                        # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
-                        # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
-                        # a final likelihood of `LIKELY`.
-                    &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
-                  },
-                  &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
-                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                        # specified, the entire match is returned. No more than 3 may be included.
-                      42,
-                    ],
-                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                        # google/re2 repository on GitHub.
-                  },
-                  &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
-                      # The total length of the window cannot exceed 1000 characters. Note that
-                      # the finding itself will be included in the window, so that hotwords may
-                      # be used to match substrings of the finding itself. For example, the
-                      # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
-                      # adjusted upwards if the area code is known to be the local area code of
-                      # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
-                      # is the area code in question.
-                      # rule.
-                    &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
-                    &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
-                  },
-                },
-                &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
-                    # `InspectionRuleSet` are removed from results.
-                  &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
-                      # be used to match sensitive information specific to the data, such as a list
-                      # of employee IDs or job titles.
-                      #
-                      # Dictionary words are case-insensitive and all characters other than letters
-                      # and digits in the unicode [Basic Multilingual
-                      # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
-                      # will be replaced with whitespace when scanning for matches, so the
-                      # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
-                      # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
-                      # surrounding any match must be of a different type than the adjacent
-                      # characters within the word, so letters must be next to non-letters and
-                      # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
-                      # match the first three letters of the text &quot;jen123&quot; but will return no
-                      # matches for &quot;jennifer&quot;.
-                      #
-                      # Dictionary words containing a large number of characters that are not
-                      # letters or digits may result in unexpected findings because such characters
-                      # are treated as whitespace. The
-                      # [limits](https://cloud.google.com/dlp/limits) page contains details about
-                      # the size limits of dictionaries. For dictionaries that do not fit within
-                      # these constraints, consider using `LargeCustomDictionaryConfig` in the
-                      # `StoredInfoType` API.
-                    &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
-                      &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
-                          # at least one phrase and every phrase must contain at least 2 characters
-                          # that are letters or digits. [required]
-                        &quot;A String&quot;,
-                      ],
-                    },
-                    &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
-                        # is accepted.
-                      &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
-                          # Example: gs://[BUCKET_NAME]/dictionary.txt
-                    },
-                  },
-                  &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
-                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
-                        # specified, the entire match is returned. No more than 3 may be included.
-                      42,
-                    ],
-                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
-                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
-                        # google/re2 repository on GitHub.
-                  },
-                  &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
-                    &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
-                        # contained within with a finding of an infoType from this list. For
-                        # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
-                        # `exclusion_rule` containing `exclude_info_types.info_types` with
-                        # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
-                        # with EMAIL_ADDRESS finding.
-                        # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
-                        # finding, namely email address.
-                      { # Type of information detected by the API.
-                        &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. InfoType names should conform to the pattern
-                            # `[a-zA-Z0-9_]{1,64}`.
-                      },
-                    ],
-                  },
-                  &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
-                },
-              },
-            ],
-          },
-        ],
-        &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
-          &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
-              # When set within `InspectJobConfig`,
-              # the maximum returned is 2000 regardless if this is set higher.
-              # When set within `InspectContentRequest`, this field is ignored.
-          &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
-            { # Max findings configuration per infoType, per content item or long
-                # running DlpJob.
-              &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
-              &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
-                  # info_type should be provided. If InfoTypeLimit does not have an
-                  # info_type, the DLP API applies the limit against all info_types that
-                  # are found but not specified in another InfoTypeLimit.
-                &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. InfoType names should conform to the pattern
-                    # `[a-zA-Z0-9_]{1,64}`.
-              },
-            },
-          ],
-          &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
-              # When set within `InspectContentRequest`, the maximum returned is 2000
-              # regardless if this is set higher.
-        },
-      },
+      &quot;inspectTemplateName&quot;: &quot;A String&quot;, # If provided, will be used as the default for all values in InspectConfig.
+          # `inspect_config` will be merged into the values persisted as part of the
+          # template.
       &quot;actions&quot;: [ # Actions to execute at the completion of the job.
         { # A task to execute on the completion of a job.
             # See https://cloud.google.com/dlp/docs/concepts-actions to learn more.
-          &quot;publishSummaryToCscc&quot;: { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha).
-              # Command Center (CSCC Alpha).
-              # This action is only available for projects which are parts of
-              # an organization and whitelisted for the alpha Cloud Security Command
-              # Center.
-              # The action will publish count of finding instances and their info types.
-              # The summary of findings will be persisted in CSCC and are governed by CSCC
-              # service-specific policy, see https://cloud.google.com/terms/service-terms
-              # Only a single instance of this action can be specified.
+          &quot;publishToStackdriver&quot;: { # Enable Stackdriver metric dlp.googleapis.com/finding_count. This # Enable Stackdriver metric dlp.googleapis.com/finding_count.
+              # will publish a metric to stack driver on each infotype requested and
+              # how many findings were found for it. CustomDetectors will be bucketed
+              # as &#x27;Custom&#x27; under the Stackdriver label &#x27;info_type&#x27;.
+          },
+          &quot;publishFindingsToCloudDataCatalog&quot;: { # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the # Publish findings to Cloud Datahub.
+              # results of the DlpJob will be applied to the entry for the resource scanned
+              # in Cloud Data Catalog. Any labels previously written by another DlpJob will
+              # be deleted. InfoType naming patterns are strictly enforced when using this
+              # feature. Note that the findings will be persisted in Cloud Data Catalog
+              # storage and are governed by Data Catalog service-specific policy, see
+              # https://cloud.google.com/terms/service-terms
+              # Only a single instance of this action can be specified and only allowed if
+              # all resources being scanned are BigQuery tables.
               # Compatible with: Inspect
           },
           &quot;jobNotificationEmails&quot;: { # Enable email notification to project owners and editors on jobs&#x27;s # Enable email notification for project owners and editors on job&#x27;s
               # completion/failure.
               # completion/failure.
           },
+          &quot;pubSub&quot;: { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic.
+              # message contains a single field, `DlpJobName`, which is equal to the
+              # finished job&#x27;s
+              # [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
+              # Compatible with: Inspect, Risk
+            &quot;topic&quot;: &quot;A String&quot;, # Cloud Pub/Sub topic to send notifications to. The topic must have given
+                # publishing access rights to the DLP API service account executing
+                # the long running DlpJob sending the notifications.
+                # Format is projects/{project}/topics/{topic}.
+          },
           &quot;saveFindings&quot;: { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location.
               # OutputStorageConfig. Only a single instance of this action can be
               # specified.
               # Compatible with: Inspect, Risk
             &quot;outputConfig&quot;: { # Cloud repository for storing output. # Location to store findings outside of DLP.
+              &quot;outputSchema&quot;: &quot;A String&quot;, # Schema used for writing the findings for Inspect jobs. This field is only
+                  # used for Inspect and must be unspecified for Risk jobs. Columns are derived
+                  # from the `Finding` object. If appending to an existing table, any columns
+                  # from the predefined schema that are missing will be added. No columns in
+                  # the existing table will be deleted.
+                  #
+                  # If unspecified, then all available columns will be used for a new table or
+                  # an (existing) table with no schema, and no changes will be made to an
+                  # existing table that has a schema.
+                  # Only for use with external storage.
               &quot;table&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing
                   # dataset. If table_id is not set a new one will be generated
                   # for you with the following format:
@@ -6054,137 +5763,43 @@
                 &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
                 &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
               },
-              &quot;outputSchema&quot;: &quot;A String&quot;, # Schema used for writing the findings for Inspect jobs. This field is only
-                  # used for Inspect and must be unspecified for Risk jobs. Columns are derived
-                  # from the `Finding` object. If appending to an existing table, any columns
-                  # from the predefined schema that are missing will be added. No columns in
-                  # the existing table will be deleted.
-                  #
-                  # If unspecified, then all available columns will be used for a new table or
-                  # an (existing) table with no schema, and no changes will be made to an
-                  # existing table that has a schema.
-                  # Only for use with external storage.
             },
           },
-          &quot;pubSub&quot;: { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic.
-              # message contains a single field, `DlpJobName`, which is equal to the
-              # finished job&#x27;s
-              # [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
-              # Compatible with: Inspect, Risk
-            &quot;topic&quot;: &quot;A String&quot;, # Cloud Pub/Sub topic to send notifications to. The topic must have given
-                # publishing access rights to the DLP API service account executing
-                # the long running DlpJob sending the notifications.
-                # Format is projects/{project}/topics/{topic}.
-          },
-          &quot;publishFindingsToCloudDataCatalog&quot;: { # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the # Publish findings to Cloud Datahub.
-              # results of the DlpJob will be applied to the entry for the resource scanned
-              # in Cloud Data Catalog. Any labels previously written by another DlpJob will
-              # be deleted. InfoType naming patterns are strictly enforced when using this
-              # feature. Note that the findings will be persisted in Cloud Data Catalog
-              # storage and are governed by Data Catalog service-specific policy, see
-              # https://cloud.google.com/terms/service-terms
-              # Only a single instance of this action can be specified and only allowed if
-              # all resources being scanned are BigQuery tables.
+          &quot;publishSummaryToCscc&quot;: { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha).
+              # Command Center (CSCC Alpha).
+              # This action is only available for projects which are parts of
+              # an organization and whitelisted for the alpha Cloud Security Command
+              # Center.
+              # The action will publish count of finding instances and their info types.
+              # The summary of findings will be persisted in CSCC and are governed by CSCC
+              # service-specific policy, see https://cloud.google.com/terms/service-terms
+              # Only a single instance of this action can be specified.
               # Compatible with: Inspect
           },
-          &quot;publishToStackdriver&quot;: { # Enable Stackdriver metric dlp.googleapis.com/finding_count. This # Enable Stackdriver metric dlp.googleapis.com/finding_count.
-              # will publish a metric to stack driver on each infotype requested and
-              # how many findings were found for it. CustomDetectors will be bucketed
-              # as &#x27;Custom&#x27; under the Stackdriver label &#x27;info_type&#x27;.
-          },
         },
       ],
       &quot;storageConfig&quot;: { # Shared message indicating Cloud storage type. # The data to scan.
-        &quot;hybridOptions&quot;: { # Configuration to control jobs where the content being inspected is outside # Hybrid inspection options.
-            # Early access feature is in a pre-release state and might change or have
-            # limited support. For more information, see
-            # https://cloud.google.com/products#product-launch-stages.
-            # of Google Cloud Platform.
-          &quot;labels&quot;: { # To organize findings, these labels will be added to each finding.
-              #
-              # Label keys must be between 1 and 63 characters long and must conform
-              # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
-              #
-              # Label values must be between 0 and 63 characters long and must conform
-              # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
-              #
-              # No more than 10 labels can be associated with a given finding.
-              #
-              # Examples:
-              # * `&quot;environment&quot; : &quot;production&quot;`
-              # * `&quot;pipeline&quot; : &quot;etl&quot;`
-            &quot;a_key&quot;: &quot;A String&quot;,
-          },
-          &quot;description&quot;: &quot;A String&quot;, # A short description of where the data is coming from. Will be stored once
-              # in the job. 256 max length.
-          &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
-              # meaningful such as the columns that are primary keys.
-            &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
-                # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
-                # each finding so that the finding can be traced to the specific row it came
-                # from. No more than 3 may be provided.
-              { # General identifier of a data field in a storage service.
-                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-              },
-            ],
-          },
-          &quot;requiredFindingLabelKeys&quot;: [ # These are labels that each inspection request must include within their
-              # &#x27;finding_labels&#x27; map. Request may contain others, but any missing one of
-              # these will be rejected.
-              #
-              # Label keys must be between 1 and 63 characters long and must conform
-              # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
-              #
-              # No more than 10 keys can be required.
-            &quot;A String&quot;,
-          ],
-        },
-        &quot;datastoreOptions&quot;: { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options.
-          &quot;partitionId&quot;: { # Datastore partition ID. # A partition ID identifies a grouping of entities. The grouping is always
-              # by project and namespace, however the namespace ID may be empty.
-              # A partition ID identifies a grouping of entities. The grouping is always
-              # by project and namespace, however the namespace ID may be empty.
-              #
-              # A partition ID contains several dimensions:
-              # project ID and namespace ID.
-            &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-            &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-          },
-          &quot;kind&quot;: { # A representation of a Datastore kind. # The kind to process.
-            &quot;name&quot;: &quot;A String&quot;, # The name of the kind.
-          },
-        },
-        &quot;timespanConfig&quot;: { # Configuration of the timespan of the items to include in scanning.
-            # Currently only supported when inspecting Google Cloud Storage and BigQuery.
-          &quot;timestampField&quot;: { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items.
-              # Used for data sources like Datastore and BigQuery.
-              #
-              # For BigQuery:
-              # Required to filter out rows based on the given start and
-              # end times. If not specified and the table was modified between the given
-              # start and end times, the entire table will be scanned.
-              # The valid data types of the timestamp field are: `INTEGER`, `DATE`,
-              # `TIMESTAMP`, or `DATETIME` BigQuery column.
-              #
-              # For Datastore.
-              # Valid data types of the timestamp field are: `TIMESTAMP`.
-              # Datastore entity will be scanned if the timestamp property does not
-              # exist or its value is empty or invalid.
-            &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-          },
-          &quot;enableAutoPopulationOfTimespanConfig&quot;: True or False, # When the job is started by a JobTrigger we will automatically figure out
-              # a valid start_time to avoid scanning files that have not been modified
-              # since the last time the JobTrigger executed. This will be based on the
-              # time of the execution of the last run of the JobTrigger.
-          &quot;endTime&quot;: &quot;A String&quot;, # Exclude files or rows newer than this value.
-              # If set to zero, no upper time limit is applied.
-          &quot;startTime&quot;: &quot;A String&quot;, # Exclude files or rows older than this value.
-        },
         &quot;cloudStorageOptions&quot;: { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options.
             # bucket.
+          &quot;bytesLimitPerFilePercent&quot;: 42, # Max percentage of bytes to scan from a file. The rest are omitted. The
+              # number of bytes scanned is rounded down. Must be between 0 and 100,
+              # inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one
+              # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
+          &quot;fileTypes&quot;: [ # List of file type groups to include in the scan.
+              # If empty, all files are scanned and available data format processors
+              # are applied. In addition, the binary content of the selected files
+              # is always scanned as well.
+              # Images are scanned only as binary if the specified region
+              # does not support image inspection and no file_types were specified.
+              # Image inspection is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;, and &#x27;europe&#x27;.
+            &quot;A String&quot;,
+          ],
           &quot;bytesLimitPerFile&quot;: &quot;A String&quot;, # Max number of bytes to scan from a file. If a scanned file&#x27;s size is bigger
               # than this value then the rest of the bytes are omitted. Only one
               # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
+          &quot;filesLimitPercent&quot;: 42, # Limits the number of files to scan to this percentage of the input FileSet.
+              # Number of files scanned is rounded down. Must be between 0 and 100,
+              # inclusively. Both 0 and 100 means no limit. Defaults to 0.
           &quot;fileSet&quot;: { # Set of files to scan. # The set of one or more files to scan.
             &quot;regexFileSet&quot;: { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or
                 # `regex_file_set` must be set.
@@ -6220,20 +5835,20 @@
                 # include all files directly under `gs://mybucket/directory/`, without matching
                 # across `/`
               &quot;bucketName&quot;: &quot;A String&quot;, # The name of a Cloud Storage bucket. Required.
-              &quot;includeRegex&quot;: [ # A list of regular expressions matching file paths to include. All files in
+              &quot;excludeRegex&quot;: [ # A list of regular expressions matching file paths to exclude. All files in
                   # the bucket that match at least one of these regular expressions will be
-                  # included in the set of files, except for those that also match an item in
-                  # `exclude_regex`. Leaving this field empty will match all files by default
-                  # (this is equivalent to including `.*` in the list).
+                  # excluded from the scan.
                   #
                   # Regular expressions use RE2
                   # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
                   # under the google/re2 repository on GitHub.
                 &quot;A String&quot;,
               ],
-              &quot;excludeRegex&quot;: [ # A list of regular expressions matching file paths to exclude. All files in
+              &quot;includeRegex&quot;: [ # A list of regular expressions matching file paths to include. All files in
                   # the bucket that match at least one of these regular expressions will be
-                  # excluded from the scan.
+                  # included in the set of files, except for those that also match an item in
+                  # `exclude_regex`. Leaving this field empty will match all files by default
+                  # (this is equivalent to including `.*` in the list).
                   #
                   # Regular expressions use RE2
                   # [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
@@ -6252,25 +5867,10 @@
                 #
                 # Exactly one of `url` or `regex_file_set` must be set.
           },
-          &quot;filesLimitPercent&quot;: 42, # Limits the number of files to scan to this percentage of the input FileSet.
-              # Number of files scanned is rounded down. Must be between 0 and 100,
-              # inclusively. Both 0 and 100 means no limit. Defaults to 0.
-          &quot;fileTypes&quot;: [ # List of file type groups to include in the scan.
-              # If empty, all files are scanned and available data format processors
-              # are applied. In addition, the binary content of the selected files
-              # is always scanned as well.
-              # Images are scanned only as binary if the specified region
-              # does not support image inspection and no file_types were specified.
-              # Image inspection is restricted to &#x27;global&#x27;, &#x27;us&#x27;, &#x27;asia&#x27;, and &#x27;europe&#x27;.
-            &quot;A String&quot;,
-          ],
           &quot;sampleMethod&quot;: &quot;A String&quot;,
-          &quot;bytesLimitPerFilePercent&quot;: 42, # Max percentage of bytes to scan from a file. The rest are omitted. The
-              # number of bytes scanned is rounded down. Must be between 0 and 100,
-              # inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one
-              # of bytes_limit_per_file and bytes_limit_per_file_percent can be specified.
         },
         &quot;bigQueryOptions&quot;: { # Options defining BigQuery table and row identifiers. # BigQuery options.
+          &quot;sampleMethod&quot;: &quot;A String&quot;,
           &quot;tableReference&quot;: { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference.
               # identified  by its project_id, dataset_id, and table_name. Within a query
               # a table is often referenced with a string in the format of:
@@ -6281,15 +5881,6 @@
             &quot;datasetId&quot;: &quot;A String&quot;, # Dataset ID of the table.
             &quot;tableId&quot;: &quot;A String&quot;, # Name of the table.
           },
-          &quot;identifyingFields&quot;: [ # Table fields that may uniquely identify a row within the table. When
-              # `actions.saveFindings.outputConfig.table` is specified, the values of
-              # columns specified here are available in the output table under
-              # `location.content_locations.record_location.record_key.id_values`. Nested
-              # fields such as `person.birthdate.year` are allowed.
-            { # General identifier of a data field in a storage service.
-              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
-            },
-          ],
           &quot;rowsLimitPercent&quot;: 42, # Max percentage of rows to scan. The rest are omitted. The number of rows
               # scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and
               # 100 means no limit. Defaults to 0. Only one of rows_limit and
@@ -6299,20 +5890,429 @@
               # rest of the rows are omitted. If not set, or if set to 0, all rows will be
               # scanned. Only one of rows_limit and rows_limit_percent can be specified.
               # Cannot be used in conjunction with TimespanConfig.
+          &quot;identifyingFields&quot;: [ # Table fields that may uniquely identify a row within the table. When
+              # `actions.saveFindings.outputConfig.table` is specified, the values of
+              # columns specified here are available in the output table under
+              # `location.content_locations.record_location.record_key.id_values`. Nested
+              # fields such as `person.birthdate.year` are allowed.
+            { # General identifier of a data field in a storage service.
+              &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+            },
+          ],
           &quot;excludedFields&quot;: [ # References to fields excluded from scanning. This allows you to skip
               # inspection of entire columns which you know have no findings.
             { # General identifier of a data field in a storage service.
               &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
             },
           ],
-          &quot;sampleMethod&quot;: &quot;A String&quot;,
+        },
+        &quot;timespanConfig&quot;: { # Configuration of the timespan of the items to include in scanning.
+            # Currently only supported when inspecting Google Cloud Storage and BigQuery.
+          &quot;timestampField&quot;: { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items.
+              # Used for data sources like Datastore and BigQuery.
+              #
+              # For BigQuery:
+              # Required to filter out rows based on the given start and
+              # end times. If not specified and the table was modified between the given
+              # start and end times, the entire table will be scanned.
+              # The valid data types of the timestamp field are: `INTEGER`, `DATE`,
+              # `TIMESTAMP`, or `DATETIME` BigQuery column.
+              #
+              # For Datastore.
+              # Valid data types of the timestamp field are: `TIMESTAMP`.
+              # Datastore entity will be scanned if the timestamp property does not
+              # exist or its value is empty or invalid.
+            &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+          },
+          &quot;enableAutoPopulationOfTimespanConfig&quot;: True or False, # When the job is started by a JobTrigger we will automatically figure out
+              # a valid start_time to avoid scanning files that have not been modified
+              # since the last time the JobTrigger executed. This will be based on the
+              # time of the execution of the last run of the JobTrigger.
+          &quot;startTime&quot;: &quot;A String&quot;, # Exclude files or rows older than this value.
+          &quot;endTime&quot;: &quot;A String&quot;, # Exclude files or rows newer than this value.
+              # If set to zero, no upper time limit is applied.
+        },
+        &quot;datastoreOptions&quot;: { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options.
+          &quot;kind&quot;: { # A representation of a Datastore kind. # The kind to process.
+            &quot;name&quot;: &quot;A String&quot;, # The name of the kind.
+          },
+          &quot;partitionId&quot;: { # Datastore partition ID. # A partition ID identifies a grouping of entities. The grouping is always
+              # by project and namespace, however the namespace ID may be empty.
+              # A partition ID identifies a grouping of entities. The grouping is always
+              # by project and namespace, however the namespace ID may be empty.
+              #
+              # A partition ID contains several dimensions:
+              # project ID and namespace ID.
+            &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+            &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+          },
+        },
+        &quot;hybridOptions&quot;: { # Configuration to control jobs where the content being inspected is outside # Hybrid inspection options.
+            # Early access feature is in a pre-release state and might change or have
+            # limited support. For more information, see
+            # https://cloud.google.com/products#product-launch-stages.
+            # of Google Cloud Platform.
+          &quot;tableOptions&quot;: { # Instructions regarding the table content being inspected. # If the container is a table, additional information to make findings
+              # meaningful such as the columns that are primary keys.
+            &quot;identifyingFields&quot;: [ # The columns that are the primary keys for table objects included in
+                # ContentItem. A copy of this cell&#x27;s value will stored alongside alongside
+                # each finding so that the finding can be traced to the specific row it came
+                # from. No more than 3 may be provided.
+              { # General identifier of a data field in a storage service.
+                &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
+              },
+            ],
+          },
+          &quot;requiredFindingLabelKeys&quot;: [ # These are labels that each inspection request must include within their
+              # &#x27;finding_labels&#x27; map. Request may contain others, but any missing one of
+              # these will be rejected.
+              #
+              # Label keys must be between 1 and 63 characters long and must conform
+              # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+              #
+              # No more than 10 keys can be required.
+            &quot;A String&quot;,
+          ],
+          &quot;labels&quot;: { # To organize findings, these labels will be added to each finding.
+              #
+              # Label keys must be between 1 and 63 characters long and must conform
+              # to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+              #
+              # Label values must be between 0 and 63 characters long and must conform
+              # to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
+              #
+              # No more than 10 labels can be associated with a given finding.
+              #
+              # Examples:
+              # * `&quot;environment&quot; : &quot;production&quot;`
+              # * `&quot;pipeline&quot; : &quot;etl&quot;`
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+          &quot;description&quot;: &quot;A String&quot;, # A short description of where the data is coming from. Will be stored once
+              # in the job. 256 max length.
         },
       },
-      &quot;inspectTemplateName&quot;: &quot;A String&quot;, # If provided, will be used as the default for all values in InspectConfig.
-          # `inspect_config` will be merged into the values persisted as part of the
-          # template.
+      &quot;inspectConfig&quot;: { # Configuration description of the scanning process. # How and what to scan for.
+          # When used with redactContent only info_types and min_likelihood are currently
+          # used.
+        &quot;customInfoTypes&quot;: [ # CustomInfoTypes provided by the user. See
+            # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
+          { # Custom information type provided by the user. Used to find domain-specific
+              # sensitive information configurable to the data in question.
+            &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType.
+                # be used to match sensitive information specific to the data, such as a list
+                # of employee IDs or job titles.
+                #
+                # Dictionary words are case-insensitive and all characters other than letters
+                # and digits in the unicode [Basic Multilingual
+                # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                # will be replaced with whitespace when scanning for matches, so the
+                # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                # surrounding any match must be of a different type than the adjacent
+                # characters within the word, so letters must be next to non-letters and
+                # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                # match the first three letters of the text &quot;jen123&quot; but will return no
+                # matches for &quot;jennifer&quot;.
+                #
+                # Dictionary words containing a large number of characters that are not
+                # letters or digits may result in unexpected findings because such characters
+                # are treated as whitespace. The
+                # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                # the size limits of dictionaries. For dictionaries that do not fit within
+                # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                # `StoredInfoType` API.
+              &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                  # is accepted.
+                &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                    # Example: gs://[BUCKET_NAME]/dictionary.txt
+              },
+              &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                    # at least one phrase and every phrase must contain at least 2 characters
+                    # that are letters or digits. [required]
+                  &quot;A String&quot;,
+                ],
+              },
+            },
+            &quot;infoType&quot;: { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in
+                # infoType, when the name matches one of existing infoTypes and that infoType
+                # is specified in `InspectContent.info_types` field. Specifying the latter
+                # adds findings to the one detected by the system. If built-in info type is
+                # not specified in `InspectContent.info_types` list then the name is treated
+                # as a custom info type.
+              &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}`.
+            },
+            &quot;likelihood&quot;: &quot;A String&quot;, # Likelihood to return for this CustomInfoType. This base value can be
+                # altered by a detection rule if the finding meets the criteria specified by
+                # the rule. Defaults to `VERY_LIKELY` if not specified.
+            &quot;detectionRules&quot;: [ # Set of detection rules to apply to all findings of this CustomInfoType.
+                # Rules are applied in order that they are specified. Not supported for the
+                # `surrogate_type` CustomInfoType.
+              { # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
+                  # `CustomInfoType` to alter behavior under certain circumstances, depending
+                  # on the specific details of the rule. Not supported for the `surrogate_type`
+                  # custom infoType.
+                &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                    # proximity of hotwords.
+                  &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                      # The total length of the window cannot exceed 1000 characters. Note that
+                      # the finding itself will be included in the window, so that hotwords may
+                      # be used to match substrings of the finding itself. For example, the
+                      # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                      # adjusted upwards if the area code is known to be the local area code of
+                      # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                      # is the area code in question.
+                      # rule.
+                    &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                    &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                  },
+                  &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                      # part of a detection rule.
+                    &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                    &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                        # levels. For example, if a finding would be `POSSIBLE` without the
+                        # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                        # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                        # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                        # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                        # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                        # a final likelihood of `LIKELY`.
+                  },
+                  &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                        # specified, the entire match is returned. No more than 3 may be included.
+                      42,
+                    ],
+                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                        # google/re2 repository on GitHub.
+                  },
+                },
+              },
+            ],
+            &quot;surrogateType&quot;: { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that
+                # support reversing.
+                # such as
+                # [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig).
+                # These types of transformations are
+                # those that perform pseudonymization, thereby producing a &quot;surrogate&quot; as
+                # output. This should be used in conjunction with a field on the
+                # transformation such as `surrogate_info_type`. This CustomInfoType does
+                # not support the use of `detection_rules`.
+            },
+            &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression based CustomInfoType.
+              &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                  # specified, the entire match is returned. No more than 3 may be included.
+                42,
+              ],
+              &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                  # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                  # google/re2 repository on GitHub.
+            },
+            &quot;storedType&quot;: { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in
+                # `InspectDataSource`. Not currently supported in `InspectContent`.
+              &quot;name&quot;: &quot;A String&quot;, # Resource name of the requested `StoredInfoType`, for example
+                  # `organizations/433245324/storedInfoTypes/432452342` or
+                  # `projects/project-id/storedInfoTypes/432452342`.
+              &quot;createTime&quot;: &quot;A String&quot;, # Timestamp indicating when the version of the `StoredInfoType` used for
+                  # inspection was created. Output-only field, populated by the system.
+            },
+            &quot;exclusionType&quot;: &quot;A String&quot;, # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
+                # to be returned. It still can be used for rules matching.
+          },
+        ],
+        &quot;minLikelihood&quot;: &quot;A String&quot;, # Only returns findings equal or above this threshold. The default is
+            # POSSIBLE.
+            # See https://cloud.google.com/dlp/docs/likelihood to learn more.
+        &quot;limits&quot;: { # Configuration to control the number of findings returned. # Configuration to control the number of findings returned.
+          &quot;maxFindingsPerRequest&quot;: 42, # Max number of findings that will be returned per request/job.
+              # When set within `InspectContentRequest`, the maximum returned is 2000
+              # regardless if this is set higher.
+          &quot;maxFindingsPerInfoType&quot;: [ # Configuration of findings limit given for specified infoTypes.
+            { # Max findings configuration per infoType, per content item or long
+                # running DlpJob.
+              &quot;infoType&quot;: { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per
+                  # info_type should be provided. If InfoTypeLimit does not have an
+                  # info_type, the DLP API applies the limit against all info_types that
+                  # are found but not specified in another InfoTypeLimit.
+                &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}`.
+              },
+              &quot;maxFindings&quot;: 42, # Max findings limit for the given infoType.
+            },
+          ],
+          &quot;maxFindingsPerItem&quot;: 42, # Max number of findings that will be returned for each item scanned.
+              # When set within `InspectJobConfig`,
+              # the maximum returned is 2000 regardless if this is set higher.
+              # When set within `InspectContentRequest`, this field is ignored.
+        },
+        &quot;excludeInfoTypes&quot;: True or False, # When true, excludes type information of the findings.
+        &quot;includeQuote&quot;: True or False, # When true, a contextual quote from the data that triggered a finding is
+            # included in the response; see Finding.quote.
+        &quot;ruleSet&quot;: [ # Set of rules to apply to the findings for this InspectConfig.
+            # Exclusion rules, contained in the set are executed in the end, other
+            # rules are executed in the order they are specified for each info type.
+          { # Rule set for modifying a set of infoTypes to alter behavior under certain
+              # circumstances, depending on the specific details of the rules within the set.
+            &quot;infoTypes&quot;: [ # List of infoTypes this rule set is applied to.
+              { # Type of information detected by the API.
+                &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}`.
+              },
+            ],
+            &quot;rules&quot;: [ # Set of rules to be applied to infoTypes. The rules are applied in order.
+              { # A single inspection rule to be applied to infoTypes, specified in
+                  # `InspectionRuleSet`.
+                &quot;hotwordRule&quot;: { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule.
+                    # proximity of hotwords.
+                  &quot;proximity&quot;: { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside.
+                      # The total length of the window cannot exceed 1000 characters. Note that
+                      # the finding itself will be included in the window, so that hotwords may
+                      # be used to match substrings of the finding itself. For example, the
+                      # certainty of a phone number regex &quot;\(\d{3}\) \d{3}-\d{4}&quot; could be
+                      # adjusted upwards if the area code is known to be the local area code of
+                      # a company office using the hotword regex &quot;\(xxx\)&quot;, where &quot;xxx&quot;
+                      # is the area code in question.
+                      # rule.
+                    &quot;windowAfter&quot;: 42, # Number of characters after the finding to consider.
+                    &quot;windowBefore&quot;: 42, # Number of characters before the finding to consider.
+                  },
+                  &quot;likelihoodAdjustment&quot;: { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings.
+                      # part of a detection rule.
+                    &quot;fixedLikelihood&quot;: &quot;A String&quot;, # Set the likelihood of a finding to a fixed value.
+                    &quot;relativeLikelihood&quot;: 42, # Increase or decrease the likelihood by the specified number of
+                        # levels. For example, if a finding would be `POSSIBLE` without the
+                        # detection rule and `relative_likelihood` is 1, then it is upgraded to
+                        # `LIKELY`, while a value of -1 would downgrade it to `UNLIKELY`.
+                        # Likelihood may never drop below `VERY_UNLIKELY` or exceed
+                        # `VERY_LIKELY`, so applying an adjustment of 1 followed by an
+                        # adjustment of -1 when base likelihood is `VERY_LIKELY` will result in
+                        # a final likelihood of `LIKELY`.
+                  },
+                  &quot;hotwordRegex&quot;: { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword.
+                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                        # specified, the entire match is returned. No more than 3 may be included.
+                      42,
+                    ],
+                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                        # google/re2 repository on GitHub.
+                  },
+                },
+                &quot;exclusionRule&quot;: { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule.
+                    # `InspectionRuleSet` are removed from results.
+                  &quot;matchingType&quot;: &quot;A String&quot;, # How the rule is applied, see MatchingType documentation for details.
+                  &quot;dictionary&quot;: { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule.
+                      # be used to match sensitive information specific to the data, such as a list
+                      # of employee IDs or job titles.
+                      #
+                      # Dictionary words are case-insensitive and all characters other than letters
+                      # and digits in the unicode [Basic Multilingual
+                      # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane)
+                      # will be replaced with whitespace when scanning for matches, so the
+                      # dictionary phrase &quot;Sam Johnson&quot; will match all three phrases &quot;sam johnson&quot;,
+                      # &quot;Sam, Johnson&quot;, and &quot;Sam (Johnson)&quot;. Additionally, the characters
+                      # surrounding any match must be of a different type than the adjacent
+                      # characters within the word, so letters must be next to non-letters and
+                      # digits next to non-digits. For example, the dictionary word &quot;jen&quot; will
+                      # match the first three letters of the text &quot;jen123&quot; but will return no
+                      # matches for &quot;jennifer&quot;.
+                      #
+                      # Dictionary words containing a large number of characters that are not
+                      # letters or digits may result in unexpected findings because such characters
+                      # are treated as whitespace. The
+                      # [limits](https://cloud.google.com/dlp/limits) page contains details about
+                      # the size limits of dictionaries. For dictionaries that do not fit within
+                      # these constraints, consider using `LargeCustomDictionaryConfig` in the
+                      # `StoredInfoType` API.
+                    &quot;cloudStoragePath&quot;: { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file
+                        # is accepted.
+                      &quot;path&quot;: &quot;A String&quot;, # A url representing a file or path (no wildcards) in Cloud Storage.
+                          # Example: gs://[BUCKET_NAME]/dictionary.txt
+                    },
+                    &quot;wordList&quot;: { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for.
+                      &quot;words&quot;: [ # Words or phrases defining the dictionary. The dictionary must contain
+                          # at least one phrase and every phrase must contain at least 2 characters
+                          # that are letters or digits. [required]
+                        &quot;A String&quot;,
+                      ],
+                    },
+                  },
+                  &quot;excludeInfoTypes&quot;: { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule.
+                    &quot;infoTypes&quot;: [ # InfoType list in ExclusionRule rule drops a finding when it overlaps or
+                        # contained within with a finding of an infoType from this list. For
+                        # example, for `InspectionRuleSet.info_types` containing &quot;PHONE_NUMBER&quot;` and
+                        # `exclusion_rule` containing `exclude_info_types.info_types` with
+                        # &quot;EMAIL_ADDRESS&quot; the phone number findings are dropped if they overlap
+                        # with EMAIL_ADDRESS finding.
+                        # That leads to &quot;555-222-2222@example.org&quot; to generate only a single
+                        # finding, namely email address.
+                      { # Type of information detected by the API.
+                        &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}`.
+                      },
+                    ],
+                  },
+                  &quot;regex&quot;: { # Message defining a custom regular expression. # Regular expression which defines the rule.
+                    &quot;groupIndexes&quot;: [ # The index of the submatch to extract as findings. When not
+                        # specified, the entire match is returned. No more than 3 may be included.
+                      42,
+                    ],
+                    &quot;pattern&quot;: &quot;A String&quot;, # Pattern defining the regular expression. Its syntax
+                        # (https://github.com/google/re2/wiki/Syntax) can be found under the
+                        # google/re2 repository on GitHub.
+                  },
+                },
+              },
+            ],
+          },
+        ],
+        &quot;contentOptions&quot;: [ # List of options defining data content to scan.
+            # If empty, text, images, and other content will be included.
+          &quot;A String&quot;,
+        ],
+        &quot;infoTypes&quot;: [ # Restricts what info_types to look for. The values must correspond to
+            # InfoType values returned by ListInfoTypes or listed at
+            # https://cloud.google.com/dlp/docs/infotypes-reference.
+            #
+            # When no InfoTypes or CustomInfoTypes are specified in a request, the
+            # system may automatically choose what detectors to run. By default this may
+            # be all types, but may change over time as detectors are updated.
+            #
+            # If you need precise control and predictability as to what detectors are
+            # run you should specify specific InfoTypes listed in the reference,
+            # otherwise a default list will be used, which may change over time.
+          { # Type of information detected by the API.
+            &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}`.
+          },
+        ],
+      },
     },
-    &quot;status&quot;: &quot;A String&quot;, # Required. A status for this trigger.
+    &quot;name&quot;: &quot;A String&quot;, # Unique resource name for the triggeredJob, assigned by the service when the
+        # triggeredJob is created, for example
+        # `projects/dlp-test-project/jobTriggers/53234423`.
+    &quot;displayName&quot;: &quot;A String&quot;, # Display name (max 100 chars)
+    &quot;lastRunTime&quot;: &quot;A String&quot;, # Output only. The timestamp of the last time this trigger executed.
+    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The creation timestamp of a triggeredJob.
+    &quot;description&quot;: &quot;A String&quot;, # User provided description (max 256 chars)
   }</pre>
 </div>