diff --git a/dlp/docs/conf.py b/dlp/docs/conf.py
index 2d33b89f6062..557ce004755d 100644
--- a/dlp/docs/conf.py
+++ b/dlp/docs/conf.py
@@ -164,7 +164,7 @@
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
-# html_static_path = []
+html_static_path = ["_static"]
 
 # Add any extra paths that contain custom files (such as robots.txt or
 # .htaccess) here, relative to this directory. These files are copied
diff --git a/dlp/google/cloud/dlp_v2/gapic/dlp_service_client.py b/dlp/google/cloud/dlp_v2/gapic/dlp_service_client.py
index f54c5d600e1c..f5b2dfac098e 100644
--- a/dlp/google/cloud/dlp_v2/gapic/dlp_service_client.py
+++ b/dlp/google/cloud/dlp_v2/gapic/dlp_service_client.py
@@ -86,21 +86,36 @@ def from_service_account_file(cls, filename, *args, **kwargs):
 
     @classmethod
     def dlp_job_path(cls, project, dlp_job):
-        """Return a fully-qualified dlp_job string."""
+        """DEPRECATED. Return a fully-qualified dlp_job string."""
+        warnings.warn(
+            "Resource name helper functions are deprecated.",
+            PendingDeprecationWarning,
+            stacklevel=1,
+        )
         return google.api_core.path_template.expand(
             "projects/{project}/dlpJobs/{dlp_job}", project=project, dlp_job=dlp_job
         )
 
     @classmethod
     def organization_path(cls, organization):
-        """Return a fully-qualified organization string."""
+        """DEPRECATED. Return a fully-qualified organization string."""
+        warnings.warn(
+            "Resource name helper functions are deprecated.",
+            PendingDeprecationWarning,
+            stacklevel=1,
+        )
         return google.api_core.path_template.expand(
             "organizations/{organization}", organization=organization
         )
 
     @classmethod
     def organization_deidentify_template_path(cls, organization, deidentify_template):
-        """Return a fully-qualified organization_deidentify_template string."""
+        """DEPRECATED. Return a fully-qualified organization_deidentify_template string."""
+        warnings.warn(
+            "Resource name helper functions are deprecated.",
+            PendingDeprecationWarning,
+            stacklevel=1,
+        )
         return google.api_core.path_template.expand(
             "organizations/{organization}/deidentifyTemplates/{deidentify_template}",
             organization=organization,
@@ -109,7 +124,12 @@ def organization_deidentify_template_path(cls, organization, deidentify_template
 
     @classmethod
     def organization_inspect_template_path(cls, organization, inspect_template):
-        """Return a fully-qualified organization_inspect_template string."""
+        """DEPRECATED. Return a fully-qualified organization_inspect_template string."""
+        warnings.warn(
+            "Resource name helper functions are deprecated.",
+            PendingDeprecationWarning,
+            stacklevel=1,
+        )
         return google.api_core.path_template.expand(
             "organizations/{organization}/inspectTemplates/{inspect_template}",
             organization=organization,
@@ -118,7 +138,12 @@ def organization_inspect_template_path(cls, organization, inspect_template):
 
     @classmethod
     def organization_stored_info_type_path(cls, organization, stored_info_type):
-        """Return a fully-qualified organization_stored_info_type string."""
+        """DEPRECATED. Return a fully-qualified organization_stored_info_type string."""
+        warnings.warn(
+            "Resource name helper functions are deprecated.",
+            PendingDeprecationWarning,
+            stacklevel=1,
+        )
         return google.api_core.path_template.expand(
             "organizations/{organization}/storedInfoTypes/{stored_info_type}",
             organization=organization,
@@ -127,14 +152,24 @@ def organization_stored_info_type_path(cls, organization, stored_info_type):
 
     @classmethod
     def project_path(cls, project):
-        """Return a fully-qualified project string."""
+        """DEPRECATED. Return a fully-qualified project string."""
+        warnings.warn(
+            "Resource name helper functions are deprecated.",
+            PendingDeprecationWarning,
+            stacklevel=1,
+        )
         return google.api_core.path_template.expand(
             "projects/{project}", project=project
         )
 
     @classmethod
     def project_deidentify_template_path(cls, project, deidentify_template):
-        """Return a fully-qualified project_deidentify_template string."""
+        """DEPRECATED. Return a fully-qualified project_deidentify_template string."""
+        warnings.warn(
+            "Resource name helper functions are deprecated.",
+            PendingDeprecationWarning,
+            stacklevel=1,
+        )
         return google.api_core.path_template.expand(
             "projects/{project}/deidentifyTemplates/{deidentify_template}",
             project=project,
@@ -143,7 +178,12 @@ def project_deidentify_template_path(cls, project, deidentify_template):
 
     @classmethod
     def project_inspect_template_path(cls, project, inspect_template):
-        """Return a fully-qualified project_inspect_template string."""
+        """DEPRECATED. Return a fully-qualified project_inspect_template string."""
+        warnings.warn(
+            "Resource name helper functions are deprecated.",
+            PendingDeprecationWarning,
+            stacklevel=1,
+        )
         return google.api_core.path_template.expand(
             "projects/{project}/inspectTemplates/{inspect_template}",
             project=project,
@@ -152,7 +192,12 @@ def project_inspect_template_path(cls, project, inspect_template):
 
     @classmethod
     def project_job_trigger_path(cls, project, job_trigger):
-        """Return a fully-qualified project_job_trigger string."""
+        """DEPRECATED. Return a fully-qualified project_job_trigger string."""
+        warnings.warn(
+            "Resource name helper functions are deprecated.",
+            PendingDeprecationWarning,
+            stacklevel=1,
+        )
         return google.api_core.path_template.expand(
             "projects/{project}/jobTriggers/{job_trigger}",
             project=project,
@@ -161,7 +206,12 @@ def project_job_trigger_path(cls, project, job_trigger):
 
     @classmethod
     def project_stored_info_type_path(cls, project, stored_info_type):
-        """Return a fully-qualified project_stored_info_type string."""
+        """DEPRECATED. Return a fully-qualified project_stored_info_type string."""
+        warnings.warn(
+            "Resource name helper functions are deprecated.",
+            PendingDeprecationWarning,
+            stacklevel=1,
+        )
         return google.api_core.path_template.expand(
             "projects/{project}/storedInfoTypes/{stored_info_type}",
             project=project,
@@ -287,6 +337,7 @@ def inspect_content(
         inspect_config=None,
         item=None,
         inspect_template_name=None,
+        location_id=None,
         retry=google.api_core.gapic_v1.method.DEFAULT,
         timeout=google.api_core.gapic_v1.method.DEFAULT,
         metadata=None,
@@ -327,6 +378,8 @@ def inspect_content(
                 that are set in this request will replace their corresponding fields in
                 the template. Repeated fields are appended. Singular sub-messages and
                 groups are recursively merged.
+            location_id (str): The geographic location to process content inspection. Reserved for future
+                extensions.
             retry (Optional[google.api_core.retry.Retry]):  A retry object used
                 to retry requests. If ``None`` is specified, requests will
                 be retried using a default configuration.
@@ -362,6 +415,7 @@ def inspect_content(
             inspect_config=inspect_config,
             item=item,
             inspect_template_name=inspect_template_name,
+            location_id=location_id,
         )
         if metadata is None:
             metadata = []
@@ -383,6 +437,7 @@ def inspect_content(
     def redact_image(
         self,
         parent,
+        location_id=None,
         inspect_config=None,
         image_redaction_configs=None,
         include_findings=None,
@@ -412,6 +467,8 @@ def redact_image(
 
         Args:
             parent (str): The parent resource name, for example projects/my-project-id.
+            location_id (str): The geographic location to process the request. Reserved for future
+                extensions.
             inspect_config (Union[dict, ~google.cloud.dlp_v2.types.InspectConfig]): Configuration for the inspector.
 
                 If a dict is provided, it must be of the same form as the protobuf
@@ -458,6 +515,7 @@ def redact_image(
 
         request = dlp_pb2.RedactImageRequest(
             parent=parent,
+            location_id=location_id,
             inspect_config=inspect_config,
             image_redaction_configs=image_redaction_configs,
             include_findings=include_findings,
@@ -488,6 +546,7 @@ def deidentify_content(
         item=None,
         inspect_template_name=None,
         deidentify_template_name=None,
+        location_id=None,
         retry=google.api_core.gapic_v1.method.DEFAULT,
         timeout=google.api_core.gapic_v1.method.DEFAULT,
         metadata=None,
@@ -538,6 +597,8 @@ def deidentify_content(
                 fields that are set in this request will replace their corresponding
                 fields in the template. Repeated fields are appended. Singular
                 sub-messages and groups are recursively merged.
+            location_id (str): The geographic location to process de-identification. Reserved for future
+                extensions.
             retry (Optional[google.api_core.retry.Retry]):  A retry object used
                 to retry requests. If ``None`` is specified, requests will
                 be retried using a default configuration.
@@ -575,6 +636,7 @@ def deidentify_content(
             item=item,
             inspect_template_name=inspect_template_name,
             deidentify_template_name=deidentify_template_name,
+            location_id=location_id,
         )
         if metadata is None:
             metadata = []
@@ -601,6 +663,7 @@ def reidentify_content(
         item=None,
         inspect_template_name=None,
         reidentify_template_name=None,
+        location_id=None,
         retry=google.api_core.gapic_v1.method.DEFAULT,
         timeout=google.api_core.gapic_v1.method.DEFAULT,
         metadata=None,
@@ -653,6 +716,8 @@ def reidentify_content(
                 the template. Singular fields that are set in this request will replace
                 their corresponding fields in the template. Repeated fields are
                 appended. Singular sub-messages and groups are recursively merged.
+            location_id (str): The geographic location to process content reidentification.  Reserved for
+                future extensions.
             retry (Optional[google.api_core.retry.Retry]):  A retry object used
                 to retry requests. If ``None`` is specified, requests will
                 be retried using a default configuration.
@@ -690,6 +755,7 @@ def reidentify_content(
             item=item,
             inspect_template_name=inspect_template_name,
             reidentify_template_name=reidentify_template_name,
+            location_id=location_id,
         )
         if metadata is None:
             metadata = []
@@ -712,6 +778,7 @@ def list_info_types(
         self,
         language_code=None,
         filter_=None,
+        location_id=None,
         retry=google.api_core.gapic_v1.method.DEFAULT,
         timeout=google.api_core.gapic_v1.method.DEFAULT,
         metadata=None,
@@ -734,6 +801,8 @@ def list_info_types(
                 en-US strings will be returned.
             filter_ (str): Optional filter to only return infoTypes supported by certain parts of
                 the API. Defaults to supported\_by=INSPECT.
+            location_id (str): The geographic location to list info types. Reserved for future
+                extensions.
             retry (Optional[google.api_core.retry.Retry]):  A retry object used
                 to retry requests. If ``None`` is specified, requests will
                 be retried using a default configuration.
@@ -765,8 +834,21 @@ def list_info_types(
             )
 
         request = dlp_pb2.ListInfoTypesRequest(
-            language_code=language_code, filter=filter_
+            language_code=language_code, filter=filter_, location_id=location_id
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("location_id", location_id)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["list_info_types"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -776,6 +858,7 @@ def create_inspect_template(
         parent,
         inspect_template=None,
         template_id=None,
+        location_id=None,
         retry=google.api_core.gapic_v1.method.DEFAULT,
         timeout=google.api_core.gapic_v1.method.DEFAULT,
         metadata=None,
@@ -805,6 +888,8 @@ def create_inspect_template(
                 and hyphens; that is, it must match the regular expression:
                 ``[a-zA-Z\\d-_]+``. The maximum length is 100 characters. Can be empty
                 to allow the system to generate one.
+            location_id (str): The geographic location to store the inspection template. Reserved for
+                future extensions.
             retry (Optional[google.api_core.retry.Retry]):  A retry object used
                 to retry requests. If ``None`` is specified, requests will
                 be retried using a default configuration.
@@ -836,7 +921,10 @@ def create_inspect_template(
             )
 
         request = dlp_pb2.CreateInspectTemplateRequest(
-            parent=parent, inspect_template=inspect_template, template_id=template_id
+            parent=parent,
+            inspect_template=inspect_template,
+            template_id=template_id,
+            location_id=location_id,
         )
         if metadata is None:
             metadata = []
@@ -1015,6 +1103,7 @@ def list_inspect_templates(
         parent,
         page_size=None,
         order_by=None,
+        location_id=None,
         retry=google.api_core.gapic_v1.method.DEFAULT,
         timeout=google.api_core.gapic_v1.method.DEFAULT,
         metadata=None,
@@ -1064,6 +1153,8 @@ def list_inspect_templates(
                 -  ``update_time``: corresponds to time the template was last updated.
                 -  ``name``: corresponds to template's name.
                 -  ``display_name``: corresponds to template's display name.
+            location_id (str): The geographic location where inspection templates will be retrieved
+                from. Use ``-`` for all locations. Reserved for future extensions.
             retry (Optional[google.api_core.retry.Retry]):  A retry object used
                 to retry requests. If ``None`` is specified, requests will
                 be retried using a default configuration.
@@ -1098,7 +1189,10 @@ def list_inspect_templates(
             )
 
         request = dlp_pb2.ListInspectTemplatesRequest(
-            parent=parent, page_size=page_size, order_by=order_by
+            parent=parent,
+            page_size=page_size,
+            order_by=order_by,
+            location_id=location_id,
         )
         if metadata is None:
             metadata = []
@@ -1203,6 +1297,7 @@ def create_deidentify_template(
         parent,
         deidentify_template=None,
         template_id=None,
+        location_id=None,
         retry=google.api_core.gapic_v1.method.DEFAULT,
         timeout=google.api_core.gapic_v1.method.DEFAULT,
         metadata=None,
@@ -1233,6 +1328,8 @@ def create_deidentify_template(
                 and hyphens; that is, it must match the regular expression:
                 ``[a-zA-Z\\d-_]+``. The maximum length is 100 characters. Can be empty
                 to allow the system to generate one.
+            location_id (str): The geographic location to store the deidentification template. Reserved
+                for future extensions.
             retry (Optional[google.api_core.retry.Retry]):  A retry object used
                 to retry requests. If ``None`` is specified, requests will
                 be retried using a default configuration.
@@ -1269,6 +1366,7 @@ def create_deidentify_template(
             parent=parent,
             deidentify_template=deidentify_template,
             template_id=template_id,
+            location_id=location_id,
         )
         if metadata is None:
             metadata = []
@@ -1454,6 +1552,7 @@ def list_deidentify_templates(
         parent,
         page_size=None,
         order_by=None,
+        location_id=None,
         retry=google.api_core.gapic_v1.method.DEFAULT,
         timeout=google.api_core.gapic_v1.method.DEFAULT,
         metadata=None,
@@ -1504,6 +1603,9 @@ def list_deidentify_templates(
                 -  ``update_time``: corresponds to time the template was last updated.
                 -  ``name``: corresponds to template's name.
                 -  ``display_name``: corresponds to template's display name.
+            location_id (str): The geographic location where deidentifications templates will be
+                retrieved from. Use ``-`` for all locations. Reserved for future
+                extensions.
             retry (Optional[google.api_core.retry.Retry]):  A retry object used
                 to retry requests. If ``None`` is specified, requests will
                 be retried using a default configuration.
@@ -1538,7 +1640,10 @@ def list_deidentify_templates(
             )
 
         request = dlp_pb2.ListDeidentifyTemplatesRequest(
-            parent=parent, page_size=page_size, order_by=order_by
+            parent=parent,
+            page_size=page_size,
+            order_by=order_by,
+            location_id=location_id,
         )
         if metadata is None:
             metadata = []
@@ -1647,6 +1752,7 @@ def create_dlp_job(
         inspect_job=None,
         risk_job=None,
         job_id=None,
+        location_id=None,
         retry=google.api_core.gapic_v1.method.DEFAULT,
         timeout=google.api_core.gapic_v1.method.DEFAULT,
         metadata=None,
@@ -1681,6 +1787,8 @@ def create_dlp_job(
                 hyphens; that is, it must match the regular expression:
                 ``[a-zA-Z\\d-_]+``. The maximum length is 100 characters. Can be empty
                 to allow the system to generate one.
+            location_id (str): The geographic location to store and process the job. Reserved for
+                future extensions.
             retry (Optional[google.api_core.retry.Retry]):  A retry object used
                 to retry requests. If ``None`` is specified, requests will
                 be retried using a default configuration.
@@ -1718,7 +1826,11 @@ def create_dlp_job(
         )
 
         request = dlp_pb2.CreateDlpJobRequest(
-            parent=parent, inspect_job=inspect_job, risk_job=risk_job, job_id=job_id
+            parent=parent,
+            inspect_job=inspect_job,
+            risk_job=risk_job,
+            job_id=job_id,
+            location_id=location_id,
         )
         if metadata is None:
             metadata = []
@@ -1744,6 +1856,7 @@ def list_dlp_jobs(
         page_size=None,
         type_=None,
         order_by=None,
+        location_id=None,
         retry=google.api_core.gapic_v1.method.DEFAULT,
         timeout=google.api_core.gapic_v1.method.DEFAULT,
         metadata=None,
@@ -1828,6 +1941,8 @@ def list_dlp_jobs(
                 -  ``end_time``: corresponds to time the job ended.
                 -  ``name``: corresponds to job's name.
                 -  ``state``: corresponds to ``state``
+            location_id (str): The geographic location where jobs will be retrieved from. Use ``-`` for
+                all locations. Reserved for future extensions.
             retry (Optional[google.api_core.retry.Retry]):  A retry object used
                 to retry requests. If ``None`` is specified, requests will
                 be retried using a default configuration.
@@ -1867,6 +1982,7 @@ def list_dlp_jobs(
             page_size=page_size,
             type=type_,
             order_by=order_by,
+            location_id=location_id,
         )
         if metadata is None:
             metadata = []
@@ -2113,6 +2229,7 @@ def list_job_triggers(
         page_size=None,
         order_by=None,
         filter_=None,
+        location_id=None,
         retry=google.api_core.gapic_v1.method.DEFAULT,
         timeout=google.api_core.gapic_v1.method.DEFAULT,
         metadata=None,
@@ -2194,6 +2311,8 @@ def list_job_triggers(
                 -  last\_run\_time > "2017-12-12T00:00:00+00:00"
 
                 The length of this field should be no more than 500 characters.
+            location_id (str): The geographic location where job triggers will be retrieved from. Use
+                ``-`` for all locations. Reserved for future extensions.
             retry (Optional[google.api_core.retry.Retry]):  A retry object used
                 to retry requests. If ``None`` is specified, requests will
                 be retried using a default configuration.
@@ -2228,7 +2347,11 @@ def list_job_triggers(
             )
 
         request = dlp_pb2.ListJobTriggersRequest(
-            parent=parent, page_size=page_size, order_by=order_by, filter=filter_
+            parent=parent,
+            page_size=page_size,
+            order_by=order_by,
+            filter=filter_,
+            location_id=location_id,
         )
         if metadata is None:
             metadata = []
@@ -2486,6 +2609,7 @@ def create_job_trigger(
         parent,
         job_trigger=None,
         trigger_id=None,
+        location_id=None,
         retry=google.api_core.gapic_v1.method.DEFAULT,
         timeout=google.api_core.gapic_v1.method.DEFAULT,
         metadata=None,
@@ -2514,6 +2638,8 @@ def create_job_trigger(
                 hyphens; that is, it must match the regular expression:
                 ``[a-zA-Z\\d-_]+``. The maximum length is 100 characters. Can be empty
                 to allow the system to generate one.
+            location_id (str): The geographic location to store the job trigger. Reserved for
+                future extensions.
             retry (Optional[google.api_core.retry.Retry]):  A retry object used
                 to retry requests. If ``None`` is specified, requests will
                 be retried using a default configuration.
@@ -2545,7 +2671,10 @@ def create_job_trigger(
             )
 
         request = dlp_pb2.CreateJobTriggerRequest(
-            parent=parent, job_trigger=job_trigger, trigger_id=trigger_id
+            parent=parent,
+            job_trigger=job_trigger,
+            trigger_id=trigger_id,
+            location_id=location_id,
         )
         if metadata is None:
             metadata = []
@@ -2569,6 +2698,7 @@ def create_stored_info_type(
         parent,
         config=None,
         stored_info_type_id=None,
+        location_id=None,
         retry=google.api_core.gapic_v1.method.DEFAULT,
         timeout=google.api_core.gapic_v1.method.DEFAULT,
         metadata=None,
@@ -2598,6 +2728,8 @@ def create_stored_info_type(
                 numbers, and hyphens; that is, it must match the regular expression:
                 ``[a-zA-Z\\d-_]+``. The maximum length is 100 characters. Can be empty
                 to allow the system to generate one.
+            location_id (str): The geographic location to store the stored infoType. Reserved for
+                future extensions.
             retry (Optional[google.api_core.retry.Retry]):  A retry object used
                 to retry requests. If ``None`` is specified, requests will
                 be retried using a default configuration.
@@ -2629,7 +2761,10 @@ def create_stored_info_type(
             )
 
         request = dlp_pb2.CreateStoredInfoTypeRequest(
-            parent=parent, config=config, stored_info_type_id=stored_info_type_id
+            parent=parent,
+            config=config,
+            stored_info_type_id=stored_info_type_id,
+            location_id=location_id,
         )
         if metadata is None:
             metadata = []
@@ -2815,6 +2950,7 @@ def list_stored_info_types(
         parent,
         page_size=None,
         order_by=None,
+        location_id=None,
         retry=google.api_core.gapic_v1.method.DEFAULT,
         timeout=google.api_core.gapic_v1.method.DEFAULT,
         metadata=None,
@@ -2866,6 +3002,8 @@ def list_stored_info_types(
                 -  ``state``: corresponds to the state of the resource.
                 -  ``name``: corresponds to resource name.
                 -  ``display_name``: corresponds to info type's display name.
+            location_id (str): The geographic location where stored infoTypes will be retrieved from.
+                Use ``-`` for all locations. Reserved for future extensions.
             retry (Optional[google.api_core.retry.Retry]):  A retry object used
                 to retry requests. If ``None`` is specified, requests will
                 be retried using a default configuration.
@@ -2900,7 +3038,10 @@ def list_stored_info_types(
             )
 
         request = dlp_pb2.ListStoredInfoTypesRequest(
-            parent=parent, page_size=page_size, order_by=order_by
+            parent=parent,
+            page_size=page_size,
+            order_by=order_by,
+            location_id=location_id,
         )
         if metadata is None:
             metadata = []
diff --git a/dlp/google/cloud/dlp_v2/proto/dlp.proto b/dlp/google/cloud/dlp_v2/proto/dlp.proto
index dfc9354850fc..ece44c6f79f4 100644
--- a/dlp/google/cloud/dlp_v2/proto/dlp.proto
+++ b/dlp/google/cloud/dlp_v2/proto/dlp.proto
@@ -64,6 +64,10 @@ service DlpService {
     option (google.api.http) = {
       post: "/v2/{parent=projects/*}/content:inspect"
       body: "*"
+      additional_bindings {
+        post: "/v2/{parent=projects/*}/locations/{location_id}/content:inspect"
+        body: "*"
+      }
     };
   }
 
@@ -79,6 +83,10 @@ service DlpService {
     option (google.api.http) = {
       post: "/v2/{parent=projects/*}/image:redact"
       body: "*"
+      additional_bindings {
+        post: "/v2/{parent=projects/*}/locations/{location_id}/image:redact"
+        body: "*"
+      }
     };
   }
 
@@ -94,6 +102,10 @@ service DlpService {
     option (google.api.http) = {
       post: "/v2/{parent=projects/*}/content:deidentify"
       body: "*"
+      additional_bindings {
+        post: "/v2/{parent=projects/*}/locations/{location_id}/content:deidentify"
+        body: "*"
+      }
     };
   }
 
@@ -105,6 +117,10 @@ service DlpService {
     option (google.api.http) = {
       post: "/v2/{parent=projects/*}/content:reidentify"
       body: "*"
+      additional_bindings {
+        post: "/v2/{parent=projects/*}/locations/{location_id}/content:reidentify"
+        body: "*"
+      }
     };
   }
 
@@ -114,6 +130,9 @@ service DlpService {
   rpc ListInfoTypes(ListInfoTypesRequest) returns (ListInfoTypesResponse) {
     option (google.api.http) = {
       get: "/v2/infoTypes"
+      additional_bindings {
+        get: "/v2/locations/{location_id}/infoTypes"
+      }
     };
   }
 
@@ -124,10 +143,18 @@ service DlpService {
     option (google.api.http) = {
       post: "/v2/{parent=organizations/*}/inspectTemplates"
       body: "*"
+      additional_bindings {
+        post: "/v2/{parent=organizations/*}/locations/{location_id}/inspectTemplates"
+        body: "*"
+      }
       additional_bindings {
         post: "/v2/{parent=projects/*}/inspectTemplates"
         body: "*"
       }
+      additional_bindings {
+        post: "/v2/{parent=projects/*}/locations/{location_id}/inspectTemplates"
+        body: "*"
+      }
     };
   }
 
@@ -137,10 +164,18 @@ service DlpService {
     option (google.api.http) = {
       patch: "/v2/{name=organizations/*/inspectTemplates/*}"
       body: "*"
+      additional_bindings {
+        patch: "/v2/{name=organizations/*/locations/*/inspectTemplates/*}"
+        body: "*"
+      }
       additional_bindings {
         patch: "/v2/{name=projects/*/inspectTemplates/*}"
         body: "*"
       }
+      additional_bindings {
+        patch: "/v2/{name=projects/*/locations/*/inspectTemplates/*}"
+        body: "*"
+      }
     };
   }
 
@@ -149,9 +184,15 @@ service DlpService {
   rpc GetInspectTemplate(GetInspectTemplateRequest) returns (InspectTemplate) {
     option (google.api.http) = {
       get: "/v2/{name=organizations/*/inspectTemplates/*}"
+      additional_bindings {
+        get: "/v2/{name=organizations/*/locations/*/inspectTemplates/*}"
+      }
       additional_bindings {
         get: "/v2/{name=projects/*/inspectTemplates/*}"
       }
+      additional_bindings {
+        get: "/v2/{name=projects/*/locations/*/inspectTemplates/*}"
+      }
     };
   }
 
@@ -160,9 +201,15 @@ service DlpService {
   rpc ListInspectTemplates(ListInspectTemplatesRequest) returns (ListInspectTemplatesResponse) {
     option (google.api.http) = {
       get: "/v2/{parent=organizations/*}/inspectTemplates"
+      additional_bindings {
+        get: "/v2/{parent=organizations/*}/locations/{location_id}/inspectTemplates"
+      }
       additional_bindings {
         get: "/v2/{parent=projects/*}/inspectTemplates"
       }
+      additional_bindings {
+        get: "/v2/{parent=projects/*}/locations/{location_id}/inspectTemplates"
+      }
     };
   }
 
@@ -171,9 +218,15 @@ service DlpService {
   rpc DeleteInspectTemplate(DeleteInspectTemplateRequest) returns (google.protobuf.Empty) {
     option (google.api.http) = {
       delete: "/v2/{name=organizations/*/inspectTemplates/*}"
+      additional_bindings {
+        delete: "/v2/{name=organizations/*/locations/*/inspectTemplates/*}"
+      }
       additional_bindings {
         delete: "/v2/{name=projects/*/inspectTemplates/*}"
       }
+      additional_bindings {
+        delete: "/v2/{name=projects/*/locations/*/inspectTemplates/*}"
+      }
     };
   }
 
@@ -185,10 +238,18 @@ service DlpService {
     option (google.api.http) = {
       post: "/v2/{parent=organizations/*}/deidentifyTemplates"
       body: "*"
+      additional_bindings {
+        post: "/v2/{parent=organizations/*}/locations/{location_id}/deidentifyTemplates"
+        body: "*"
+      }
       additional_bindings {
         post: "/v2/{parent=projects/*}/deidentifyTemplates"
         body: "*"
       }
+      additional_bindings {
+        post: "/v2/{parent=projects/*}/locations/{location_id}/deidentifyTemplates"
+        body: "*"
+      }
     };
   }
 
@@ -199,10 +260,18 @@ service DlpService {
     option (google.api.http) = {
       patch: "/v2/{name=organizations/*/deidentifyTemplates/*}"
       body: "*"
+      additional_bindings {
+        patch: "/v2/{name=organizations/*/locations/*/deidentifyTemplates/*}"
+        body: "*"
+      }
       additional_bindings {
         patch: "/v2/{name=projects/*/deidentifyTemplates/*}"
         body: "*"
       }
+      additional_bindings {
+        patch: "/v2/{name=projects/*/locations/*/deidentifyTemplates/*}"
+        body: "*"
+      }
     };
   }
 
@@ -212,9 +281,15 @@ service DlpService {
   rpc GetDeidentifyTemplate(GetDeidentifyTemplateRequest) returns (DeidentifyTemplate) {
     option (google.api.http) = {
       get: "/v2/{name=organizations/*/deidentifyTemplates/*}"
+      additional_bindings {
+        get: "/v2/{name=organizations/*/locations/*/deidentifyTemplates/*}"
+      }
       additional_bindings {
         get: "/v2/{name=projects/*/deidentifyTemplates/*}"
       }
+      additional_bindings {
+        get: "/v2/{name=projects/*/locations/*/deidentifyTemplates/*}"
+      }
     };
   }
 
@@ -224,9 +299,15 @@ service DlpService {
   rpc ListDeidentifyTemplates(ListDeidentifyTemplatesRequest) returns (ListDeidentifyTemplatesResponse) {
     option (google.api.http) = {
       get: "/v2/{parent=organizations/*}/deidentifyTemplates"
+      additional_bindings {
+        get: "/v2/{parent=organizations/*}/locations/{location_id}/deidentifyTemplates"
+      }
       additional_bindings {
         get: "/v2/{parent=projects/*}/deidentifyTemplates"
       }
+      additional_bindings {
+        get: "/v2/{parent=projects/*}/locations/{location_id}/deidentifyTemplates"
+      }
     };
   }
 
@@ -236,9 +317,15 @@ service DlpService {
   rpc DeleteDeidentifyTemplate(DeleteDeidentifyTemplateRequest) returns (google.protobuf.Empty) {
     option (google.api.http) = {
       delete: "/v2/{name=organizations/*/deidentifyTemplates/*}"
+      additional_bindings {
+        delete: "/v2/{name=organizations/*/locations/*/deidentifyTemplates/*}"
+      }
       additional_bindings {
         delete: "/v2/{name=projects/*/deidentifyTemplates/*}"
       }
+      additional_bindings {
+        delete: "/v2/{name=projects/*/locations/*/deidentifyTemplates/*}"
+      }
     };
   }
 
@@ -249,6 +336,10 @@ service DlpService {
     option (google.api.http) = {
       post: "/v2/{parent=projects/*}/jobTriggers"
       body: "*"
+      additional_bindings {
+        post: "/v2/{parent=projects/*}/locations/{location_id}/jobTriggers"
+        body: "*"
+      }
     };
   }
 
@@ -258,6 +349,10 @@ service DlpService {
     option (google.api.http) = {
       patch: "/v2/{name=projects/*/jobTriggers/*}"
       body: "*"
+      additional_bindings {
+        patch: "/v2/{name=projects/*/locations/*/jobTriggers/*}"
+        body: "*"
+      }
     };
   }
 
@@ -266,6 +361,9 @@ service DlpService {
   rpc GetJobTrigger(GetJobTriggerRequest) returns (JobTrigger) {
     option (google.api.http) = {
       get: "/v2/{name=projects/*/jobTriggers/*}"
+      additional_bindings {
+        get: "/v2/{name=projects/*/locations/*/jobTriggers/*}"
+      }
     };
   }
 
@@ -274,6 +372,9 @@ service DlpService {
   rpc ListJobTriggers(ListJobTriggersRequest) returns (ListJobTriggersResponse) {
     option (google.api.http) = {
       get: "/v2/{parent=projects/*}/jobTriggers"
+      additional_bindings {
+        get: "/v2/{parent=projects/*}/locations/{location_id}/jobTriggers"
+      }
     };
   }
 
@@ -282,6 +383,9 @@ service DlpService {
   rpc DeleteJobTrigger(DeleteJobTriggerRequest) returns (google.protobuf.Empty) {
     option (google.api.http) = {
       delete: "/v2/{name=projects/*/jobTriggers/*}"
+      additional_bindings {
+        delete: "/v2/{name=projects/*/locations/*/jobTriggers/*}"
+      }
     };
   }
 
@@ -291,6 +395,10 @@ service DlpService {
     option (google.api.http) = {
       post: "/v2/{name=projects/*/jobTriggers/*}:activate"
       body: "*"
+      additional_bindings {
+        post: "/v2/{name=projects/*/locations/*/jobTriggers/*}:activate"
+        body: "*"
+      }
     };
   }
 
@@ -305,6 +413,10 @@ service DlpService {
     option (google.api.http) = {
       post: "/v2/{parent=projects/*}/dlpJobs"
       body: "*"
+      additional_bindings {
+        post: "/v2/{parent=projects/*}/locations/{location_id}/dlpJobs"
+        body: "*"
+      }
     };
   }
 
@@ -314,6 +426,9 @@ service DlpService {
   rpc ListDlpJobs(ListDlpJobsRequest) returns (ListDlpJobsResponse) {
     option (google.api.http) = {
       get: "/v2/{parent=projects/*}/dlpJobs"
+      additional_bindings {
+        get: "/v2/{parent=projects/*}/locations/{location_id}/dlpJobs"
+      }
     };
   }
 
@@ -323,6 +438,9 @@ service DlpService {
   rpc GetDlpJob(GetDlpJobRequest) returns (DlpJob) {
     option (google.api.http) = {
       get: "/v2/{name=projects/*/dlpJobs/*}"
+      additional_bindings {
+        get: "/v2/{name=projects/*/locations/*/dlpJobs/*}"
+      }
     };
   }
 
@@ -334,6 +452,9 @@ service DlpService {
   rpc DeleteDlpJob(DeleteDlpJobRequest) returns (google.protobuf.Empty) {
     option (google.api.http) = {
       delete: "/v2/{name=projects/*/dlpJobs/*}"
+      additional_bindings {
+        delete: "/v2/{name=projects/*/locations/*/dlpJobs/*}"
+      }
     };
   }
 
@@ -346,6 +467,10 @@ service DlpService {
     option (google.api.http) = {
       post: "/v2/{name=projects/*/dlpJobs/*}:cancel"
       body: "*"
+      additional_bindings {
+        post: "/v2/{name=projects/*/locations/*/dlpJobs/*}:cancel"
+        body: "*"
+      }
     };
   }
 
@@ -356,10 +481,18 @@ service DlpService {
     option (google.api.http) = {
       post: "/v2/{parent=organizations/*}/storedInfoTypes"
       body: "*"
+      additional_bindings {
+        post: "/v2/{parent=organizations/*}/locations/{location_id}/storedInfoTypes"
+        body: "*"
+      }
       additional_bindings {
         post: "/v2/{parent=projects/*}/storedInfoTypes"
         body: "*"
       }
+      additional_bindings {
+        post: "/v2/{parent=projects/*}/locations/{location_id}/storedInfoTypes"
+        body: "*"
+      }
     };
   }
 
@@ -371,10 +504,18 @@ service DlpService {
     option (google.api.http) = {
       patch: "/v2/{name=organizations/*/storedInfoTypes/*}"
       body: "*"
+      additional_bindings {
+        patch: "/v2/{name=organizations/*/locations/*/storedInfoTypes/*}"
+        body: "*"
+      }
       additional_bindings {
         patch: "/v2/{name=projects/*/storedInfoTypes/*}"
         body: "*"
       }
+      additional_bindings {
+        patch: "/v2/{name=projects/*/locations/*/storedInfoTypes/*}"
+        body: "*"
+      }
     };
   }
 
@@ -384,9 +525,15 @@ service DlpService {
   rpc GetStoredInfoType(GetStoredInfoTypeRequest) returns (StoredInfoType) {
     option (google.api.http) = {
       get: "/v2/{name=organizations/*/storedInfoTypes/*}"
+      additional_bindings {
+        get: "/v2/{name=organizations/*/locations/*/storedInfoTypes/*}"
+      }
       additional_bindings {
         get: "/v2/{name=projects/*/storedInfoTypes/*}"
       }
+      additional_bindings {
+        get: "/v2/{name=projects/*/locations/*/storedInfoTypes/*}"
+      }
     };
   }
 
@@ -396,9 +543,15 @@ service DlpService {
   rpc ListStoredInfoTypes(ListStoredInfoTypesRequest) returns (ListStoredInfoTypesResponse) {
     option (google.api.http) = {
       get: "/v2/{parent=organizations/*}/storedInfoTypes"
+      additional_bindings {
+        get: "/v2/{parent=organizations/*}/locations/{location_id}/storedInfoTypes"
+      }
       additional_bindings {
         get: "/v2/{parent=projects/*}/storedInfoTypes"
       }
+      additional_bindings {
+        get: "/v2/{parent=projects/*}/locations/{location_id}/storedInfoTypes"
+      }
     };
   }
 
@@ -408,9 +561,15 @@ service DlpService {
   rpc DeleteStoredInfoType(DeleteStoredInfoTypeRequest) returns (google.protobuf.Empty) {
     option (google.api.http) = {
       delete: "/v2/{name=organizations/*/storedInfoTypes/*}"
+      additional_bindings {
+        delete: "/v2/{name=organizations/*/locations/*/storedInfoTypes/*}"
+      }
       additional_bindings {
         delete: "/v2/{name=projects/*/storedInfoTypes/*}"
       }
+      additional_bindings {
+        delete: "/v2/{name=projects/*/locations/*/storedInfoTypes/*}"
+      }
     };
   }
 }
@@ -821,6 +980,10 @@ message RedactImageRequest {
                        type: "cloudresourcemanager.googleapis.com/Project"
                      }];
 
+  // The geographic location to process the request. Reserved for future
+  // extensions.
+  string location_id = 8;
+
   // Configuration for the inspector.
   InspectConfig inspect_config = 2;
 
@@ -894,6 +1057,10 @@ message DeidentifyContentRequest {
   // template. Repeated fields are appended. Singular sub-messages and groups
   // are recursively merged.
   string deidentify_template_name = 6;
+
+  // The geographic location to process de-identification. Reserved for future
+  // extensions.
+  string location_id = 7;
 }
 
 // Results of de-identifying a ContentItem.
@@ -947,6 +1114,10 @@ message ReidentifyContentRequest {
   // template. Repeated fields are appended. Singular sub-messages and groups
   // are recursively merged.
   string reidentify_template_name = 6;
+
+  // The geographic location to process content reidentification.  Reserved for
+  // future extensions.
+  string location_id = 7;
 }
 
 // Results of re-identifying a item.
@@ -978,6 +1149,10 @@ message InspectContentRequest {
   // template. Repeated fields are appended. Singular sub-messages and groups
   // are recursively merged.
   string inspect_template_name = 4;
+
+  // The geographic location to process content inspection. Reserved for future
+  // extensions.
+  string location_id = 5;
 }
 
 // Results of inspecting an item.
@@ -1104,6 +1279,10 @@ message ListInfoTypesRequest {
   // Optional filter to only return infoTypes supported by certain parts of the
   // API. Defaults to supported_by=INSPECT.
   string filter = 2;
+
+  // The geographic location to list info types. Reserved for future
+  // extensions.
+  string location_id = 3;
 }
 
 // Response to the ListInfoTypes request.
@@ -2116,7 +2295,7 @@ message DateShiftConfig {
   int32 lower_bound_days = 2;
 
   // Points to the field that contains the context, for example, an entity id.
-  // If set, must also set method. If set, shift will be consistent for the
+  // If set, must also set cryptoKey. If set, shift will be consistent for the
   // given context.
   FieldId context = 3;
 
@@ -2124,7 +2303,8 @@ message DateShiftConfig {
   // set, must also set context. Can only be applied to table items.
   oneof method {
     // Causes the shift to be computed based on this key and the context. This
-    // results in the same shift for the same context and crypto_key.
+    // results in the same shift for the same context and crypto_key. If
+    // set, must also set context. Can only be applied to table items.
     CryptoKey crypto_key = 4;
   }
 }
@@ -2352,17 +2532,17 @@ message InspectTemplate {
   // Short description (max 256 chars).
   string description = 3;
 
-  // The creation timestamp of a inspectTemplate, output only field.
+  // The creation timestamp of an inspectTemplate, output only field.
   google.protobuf.Timestamp create_time = 4;
 
-  // The last update timestamp of a inspectTemplate, output only field.
+  // The last update timestamp of an inspectTemplate, output only field.
   google.protobuf.Timestamp update_time = 5;
 
   // The core content of the template. Configuration of the scanning process.
   InspectConfig inspect_config = 6;
 }
 
-// The DeidentifyTemplates contains instructions on how to deidentify content.
+// DeidentifyTemplates contains instructions on how to de-identify content.
 // See https://cloud.google.com/dlp/docs/concepts-templates to learn more.
 message DeidentifyTemplate {
   option (google.api.resource) = {
@@ -2384,10 +2564,10 @@ message DeidentifyTemplate {
   // Short description (max 256 chars).
   string description = 3;
 
-  // The creation timestamp of a inspectTemplate, output only field.
+  // The creation timestamp of an inspectTemplate, output only field.
   google.protobuf.Timestamp create_time = 4;
 
-  // The last update timestamp of a inspectTemplate, output only field.
+  // The last update timestamp of an inspectTemplate, output only field.
   google.protobuf.Timestamp update_time = 5;
 
   // ///////////// // The core content of the template  // ///////////////
@@ -2584,6 +2764,10 @@ message CreateInspectTemplateRequest {
   // expression: `[a-zA-Z\\d-_]+`. The maximum length is 100
   // characters. Can be empty to allow the system to generate one.
   string template_id = 3;
+
+  // The geographic location to store the inspection template. Reserved for
+  // future extensions.
+  string location_id = 4;
 }
 
 // Request message for UpdateInspectTemplate.
@@ -2651,6 +2835,10 @@ message ListInspectTemplatesRequest {
   // - `name`: corresponds to template's name.
   // - `display_name`: corresponds to template's display name.
   string order_by = 4;
+
+  // The geographic location where inspection templates will be retrieved from.
+  // Use `-` for all locations. Reserved for future extensions.
+  string location_id = 5;
 }
 
 // Response message for ListInspectTemplates.
@@ -2694,6 +2882,10 @@ message CreateJobTriggerRequest {
   // expression: `[a-zA-Z\\d-_]+`. The maximum length is 100
   // characters. Can be empty to allow the system to generate one.
   string trigger_id = 3;
+
+  // The geographic location to store the job trigger. Reserved for
+  // future extensions.
+  string location_id = 4;
 }
 
 // Request message for ActivateJobTrigger.
@@ -2762,6 +2954,10 @@ message CreateDlpJobRequest {
   // expression: `[a-zA-Z\\d-_]+`. The maximum length is 100
   // characters. Can be empty to allow the system to generate one.
   string job_id = 4;
+
+  // The geographic location to store and process the job. Reserved for
+  // future extensions.
+  string location_id = 5;
 }
 
 // Request message for ListJobTriggers.
@@ -2824,6 +3020,10 @@ message ListJobTriggersRequest {
   //
   // The length of this field should be no more than 500 characters.
   string filter = 5;
+
+  // The geographic location where job triggers will be retrieved from.
+  // Use `-` for all locations. Reserved for future extensions.
+  string location_id = 7;
 }
 
 // Response message for ListJobTriggers.
@@ -2935,32 +3135,6 @@ message GetDlpJobRequest {
   ];
 }
 
-// Operators available for comparing the value of fields.
-enum RelationalOperator {
-  RELATIONAL_OPERATOR_UNSPECIFIED = 0;
-
-  // Equal. Attempts to match even with incompatible types.
-  EQUAL_TO = 1;
-
-  // Not equal to. Attempts to match even with incompatible types.
-  NOT_EQUAL_TO = 2;
-
-  // Greater than.
-  GREATER_THAN = 3;
-
-  // Less than.
-  LESS_THAN = 4;
-
-  // Greater than or equals.
-  GREATER_THAN_OR_EQUALS = 5;
-
-  // Less than or equals.
-  LESS_THAN_OR_EQUALS = 6;
-
-  // Exists
-  EXISTS = 7;
-}
-
 // The request message for listing DLP jobs.
 message ListDlpJobsRequest {
   // Required. The parent resource name, for example projects/my-project-id.
@@ -3024,6 +3198,36 @@ message ListDlpJobsRequest {
   // - `name`: corresponds to job's name.
   // - `state`: corresponds to `state`
   string order_by = 6;
+
+  // The geographic location where jobs will be retrieved from.
+  // Use `-` for all locations. Reserved for future extensions.
+  string location_id = 7;
+}
+
+// Operators available for comparing the value of fields.
+enum RelationalOperator {
+  RELATIONAL_OPERATOR_UNSPECIFIED = 0;
+
+  // Equal. Attempts to match even with incompatible types.
+  EQUAL_TO = 1;
+
+  // Not equal to. Attempts to match even with incompatible types.
+  NOT_EQUAL_TO = 2;
+
+  // Greater than.
+  GREATER_THAN = 3;
+
+  // Less than.
+  LESS_THAN = 4;
+
+  // Greater than or equals.
+  GREATER_THAN_OR_EQUALS = 5;
+
+  // Less than or equals.
+  LESS_THAN_OR_EQUALS = 6;
+
+  // Exists
+  EXISTS = 7;
 }
 
 // The response message for listing DLP jobs.
@@ -3076,6 +3280,10 @@ message CreateDeidentifyTemplateRequest {
   // expression: `[a-zA-Z\\d-_]+`. The maximum length is 100
   // characters. Can be empty to allow the system to generate one.
   string template_id = 3;
+
+  // The geographic location to store the deidentification template. Reserved
+  // for future extensions.
+  string location_id = 4;
 }
 
 // Request message for UpdateDeidentifyTemplate.
@@ -3143,6 +3351,10 @@ message ListDeidentifyTemplatesRequest {
   // - `name`: corresponds to template's name.
   // - `display_name`: corresponds to template's display name.
   string order_by = 4;
+
+  // The geographic location where deidentifications templates will be retrieved
+  // from. Use `-` for all locations. Reserved for future extensions.
+  string location_id = 5;
 }
 
 // Response message for ListDeidentifyTemplates.
@@ -3197,7 +3409,9 @@ message LargeCustomDictionaryStats {
   int64 approx_num_phrases = 1;
 }
 
-// Configuration for a StoredInfoType.
+// Configuration for stored infoTypes. All fields and subfield are provided
+// by the user. For more information, see
+// https://cloud.google.com/dlp/docs/creating-custom-infotypes.
 message StoredInfoTypeConfig {
   // Display name of the StoredInfoType (max 256 characters).
   string display_name = 1;
@@ -3289,6 +3503,10 @@ message CreateStoredInfoTypeRequest {
   // expression: `[a-zA-Z\\d-_]+`. The maximum length is 100
   // characters. Can be empty to allow the system to generate one.
   string stored_info_type_id = 3;
+
+  // The geographic location to store the stored infoType. Reserved for
+  // future extensions.
+  string location_id = 4;
 }
 
 // Request message for UpdateStoredInfoType.
@@ -3359,6 +3577,10 @@ message ListStoredInfoTypesRequest {
   // - `name`: corresponds to resource name.
   // - `display_name`: corresponds to info type's display name.
   string order_by = 4;
+
+  // The geographic location where stored infoTypes will be retrieved from.
+  // Use `-` for all locations. Reserved for future extensions.
+  string location_id = 5;
 }
 
 // Response message for ListStoredInfoTypes.
diff --git a/dlp/google/cloud/dlp_v2/proto/dlp_pb2.py b/dlp/google/cloud/dlp_v2/proto/dlp_pb2.py
index fd3bf5acf631..8ff717d4b193 100644
--- a/dlp/google/cloud/dlp_v2/proto/dlp_pb2.py
+++ b/dlp/google/cloud/dlp_v2/proto/dlp_pb2.py
@@ -42,7 +42,7 @@
         "\n\031com.google.privacy.dlp.v2B\010DlpProtoP\001Z8google.golang.org/genproto/googleapis/privacy/dlp/v2;dlp\252\002\023Google.Cloud.Dlp.V2\312\002\023Google\\Cloud\\Dlp\\V2"
     ),
     serialized_pb=_b(
-        '\n+google/cloud/privacy/dlp_v2/proto/dlp.proto\x12\x15google.privacy.dlp.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a/google/cloud/privacy/dlp_v2/proto/storage.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\x1a\x16google/type/date.proto\x1a\x1bgoogle/type/dayofweek.proto\x1a\x1bgoogle/type/timeofday.proto\x1a\x17google/api/client.proto"G\n\x10\x45xcludeInfoTypes\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType"\xa0\x02\n\rExclusionRule\x12\x46\n\ndictionary\x18\x01 \x01(\x0b\x32\x30.google.privacy.dlp.v2.CustomInfoType.DictionaryH\x00\x12<\n\x05regex\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.RegexH\x00\x12\x45\n\x12\x65xclude_info_types\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.ExcludeInfoTypesH\x00\x12:\n\rmatching_type\x18\x04 \x01(\x0e\x32#.google.privacy.dlp.v2.MatchingTypeB\x06\n\x04type"\xb1\x01\n\x0eInspectionRule\x12W\n\x0chotword_rule\x18\x01 \x01(\x0b\x32?.google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRuleH\x00\x12>\n\x0e\x65xclusion_rule\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.ExclusionRuleH\x00\x42\x06\n\x04type"~\n\x11InspectionRuleSet\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x34\n\x05rules\x18\x02 \x03(\x0b\x32%.google.privacy.dlp.v2.InspectionRule"\xc7\x05\n\rInspectConfig\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x39\n\x0emin_likelihood\x18\x02 \x01(\x0e\x32!.google.privacy.dlp.v2.Likelihood\x12\x42\n\x06limits\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.InspectConfig.FindingLimits\x12\x15\n\rinclude_quote\x18\x04 \x01(\x08\x12\x1a\n\x12\x65xclude_info_types\x18\x05 \x01(\x08\x12@\n\x11\x63ustom_info_types\x18\x06 \x03(\x0b\x32%.google.privacy.dlp.v2.CustomInfoType\x12=\n\x0f\x63ontent_options\x18\x08 \x03(\x0e\x32$.google.privacy.dlp.v2.ContentOption\x12:\n\x08rule_set\x18\n \x03(\x0b\x32(.google.privacy.dlp.v2.InspectionRuleSet\x1a\x91\x02\n\rFindingLimits\x12\x1d\n\x15max_findings_per_item\x18\x01 \x01(\x05\x12 \n\x18max_findings_per_request\x18\x02 \x01(\x05\x12\x64\n\x1amax_findings_per_info_type\x18\x03 \x03(\x0b\x32@.google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit\x1aY\n\rInfoTypeLimit\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x14\n\x0cmax_findings\x18\x02 \x01(\x05"\xea\x01\n\x0f\x42yteContentItem\x12>\n\x04type\x18\x01 \x01(\x0e\x32\x30.google.privacy.dlp.v2.ByteContentItem.BytesType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c"\x88\x01\n\tBytesType\x12\x1a\n\x16\x42YTES_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05IMAGE\x10\x06\x12\x0e\n\nIMAGE_JPEG\x10\x01\x12\r\n\tIMAGE_BMP\x10\x02\x12\r\n\tIMAGE_PNG\x10\x03\x12\r\n\tIMAGE_SVG\x10\x04\x12\r\n\tTEXT_UTF8\x10\x05\x12\x08\n\x04\x41VRO\x10\x0b"\x97\x01\n\x0b\x43ontentItem\x12\x0f\n\x05value\x18\x03 \x01(\tH\x00\x12-\n\x05table\x18\x04 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.TableH\x00\x12;\n\tbyte_item\x18\x05 \x01(\x0b\x32&.google.privacy.dlp.v2.ByteContentItemH\x00\x42\x0b\n\tdata_item"\x9d\x01\n\x05Table\x12/\n\x07headers\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12.\n\x04rows\x18\x02 \x03(\x0b\x32 .google.privacy.dlp.v2.Table.Row\x1a\x33\n\x03Row\x12,\n\x06values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value"]\n\rInspectResult\x12\x30\n\x08\x66indings\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.Finding\x12\x1a\n\x12\x66indings_truncated\x18\x02 \x01(\x08"\x9d\x02\n\x07\x46inding\x12\r\n\x05quote\x18\x01 \x01(\t\x12\x32\n\tinfo_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x35\n\nlikelihood\x18\x03 \x01(\x0e\x32!.google.privacy.dlp.v2.Likelihood\x12\x31\n\x08location\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.Location\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\nquote_info\x18\x07 \x01(\x0b\x32 .google.privacy.dlp.v2.QuoteInfo"\xb6\x01\n\x08Location\x12\x30\n\nbyte_range\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Range\x12\x35\n\x0f\x63odepoint_range\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Range\x12\x41\n\x11\x63ontent_locations\x18\x07 \x03(\x0b\x32&.google.privacy.dlp.v2.ContentLocation"\xd1\x02\n\x0f\x43ontentLocation\x12\x16\n\x0e\x63ontainer_name\x18\x01 \x01(\t\x12@\n\x0frecord_location\x18\x02 \x01(\x0b\x32%.google.privacy.dlp.v2.RecordLocationH\x00\x12>\n\x0eimage_location\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.ImageLocationH\x00\x12\x44\n\x11\x64ocument_location\x18\x05 \x01(\x0b\x32\'.google.privacy.dlp.v2.DocumentLocationH\x00\x12\x37\n\x13\x63ontainer_timestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11\x63ontainer_version\x18\x07 \x01(\tB\n\n\x08location"\'\n\x10\x44ocumentLocation\x12\x13\n\x0b\x66ile_offset\x18\x01 \x01(\x03"\xb6\x01\n\x0eRecordLocation\x12\x34\n\nrecord_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.RecordKey\x12\x30\n\x08\x66ield_id\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12<\n\x0etable_location\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.TableLocation""\n\rTableLocation\x12\x11\n\trow_index\x18\x01 \x01(\x03"#\n\x05Range\x12\r\n\x05start\x18\x01 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x03"K\n\rImageLocation\x12:\n\x0e\x62ounding_boxes\x18\x01 \x03(\x0b\x32".google.privacy.dlp.v2.BoundingBox"G\n\x0b\x42oundingBox\x12\x0b\n\x03top\x18\x01 \x01(\x05\x12\x0c\n\x04left\x18\x02 \x01(\x05\x12\r\n\x05width\x18\x03 \x01(\x05\x12\x0e\n\x06height\x18\x04 \x01(\x05"\xf5\x03\n\x12RedactImageRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12_\n\x17image_redaction_configs\x18\x05 \x03(\x0b\x32>.google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig\x12\x18\n\x10include_findings\x18\x06 \x01(\x08\x12\x39\n\tbyte_item\x18\x07 \x01(\x0b\x32&.google.privacy.dlp.v2.ByteContentItem\x1a\xa8\x01\n\x14ImageRedactionConfig\x12\x34\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeH\x00\x12\x19\n\x0fredact_all_text\x18\x02 \x01(\x08H\x00\x12\x35\n\x0fredaction_color\x18\x03 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ColorB\x08\n\x06target"1\n\x05\x43olor\x12\x0b\n\x03red\x18\x01 \x01(\x02\x12\r\n\x05green\x18\x02 \x01(\x02\x12\x0c\n\x04\x62lue\x18\x03 \x01(\x02"\x83\x01\n\x13RedactImageResponse\x12\x16\n\x0eredacted_image\x18\x01 \x01(\x0c\x12\x16\n\x0e\x65xtracted_text\x18\x02 \x01(\t\x12<\n\x0einspect_result\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectResult"\xd1\x02\n\x18\x44\x65identifyContentRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x42\n\x11\x64\x65identify_config\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.DeidentifyConfig\x12<\n\x0einspect_config\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x30\n\x04item\x18\x04 \x01(\x0b\x32".google.privacy.dlp.v2.ContentItem\x12\x1d\n\x15inspect_template_name\x18\x05 \x01(\t\x12 \n\x18\x64\x65identify_template_name\x18\x06 \x01(\t"\x8e\x01\n\x19\x44\x65identifyContentResponse\x12\x30\n\x04item\x18\x01 \x01(\x0b\x32".google.privacy.dlp.v2.ContentItem\x12?\n\x08overview\x18\x02 \x01(\x0b\x32-.google.privacy.dlp.v2.TransformationOverview"\xd4\x02\n\x18ReidentifyContentRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x42\n\x11reidentify_config\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.DeidentifyConfig\x12<\n\x0einspect_config\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x30\n\x04item\x18\x04 \x01(\x0b\x32".google.privacy.dlp.v2.ContentItem\x12\x1d\n\x15inspect_template_name\x18\x05 \x01(\t\x12 \n\x18reidentify_template_name\x18\x06 \x01(\t"\x8e\x01\n\x19ReidentifyContentResponse\x12\x30\n\x04item\x18\x01 \x01(\x0b\x32".google.privacy.dlp.v2.ContentItem\x12?\n\x08overview\x18\x02 \x01(\x0b\x32-.google.privacy.dlp.v2.TransformationOverview"\xe8\x01\n\x15InspectContentRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x30\n\x04item\x18\x03 \x01(\x0b\x32".google.privacy.dlp.v2.ContentItem\x12\x1d\n\x15inspect_template_name\x18\x04 \x01(\t"N\n\x16InspectContentResponse\x12\x34\n\x06result\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectResult"\xb7\x02\n\x13OutputStorageConfig\x12\x35\n\x05table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableH\x00\x12N\n\routput_schema\x18\x03 \x01(\x0e\x32\x37.google.privacy.dlp.v2.OutputStorageConfig.OutputSchema"\x90\x01\n\x0cOutputSchema\x12\x1d\n\x19OUTPUT_SCHEMA_UNSPECIFIED\x10\x00\x12\x11\n\rBASIC_COLUMNS\x10\x01\x12\x0f\n\x0bGCS_COLUMNS\x10\x02\x12\x15\n\x11\x44\x41TASTORE_COLUMNS\x10\x03\x12\x15\n\x11\x42IG_QUERY_COLUMNS\x10\x04\x12\x0f\n\x0b\x41LL_COLUMNS\x10\x05\x42\x06\n\x04type"R\n\rInfoTypeStats\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\r\n\x05\x63ount\x18\x02 \x01(\x03"\xdd\x03\n\x18InspectDataSourceDetails\x12[\n\x11requested_options\x18\x02 \x01(\x0b\x32@.google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions\x12\x46\n\x06result\x18\x03 \x01(\x0b\x32\x36.google.privacy.dlp.v2.InspectDataSourceDetails.Result\x1a\x9a\x01\n\x10RequestedOptions\x12I\n\x19snapshot_inspect_template\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplate\x12;\n\njob_config\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.InspectJobConfig\x1a\x7f\n\x06Result\x12\x17\n\x0fprocessed_bytes\x18\x01 \x01(\x03\x12\x1d\n\x15total_estimated_bytes\x18\x02 \x01(\x03\x12=\n\x0finfo_type_stats\x18\x03 \x03(\x0b\x32$.google.privacy.dlp.v2.InfoTypeStats"\x90\x01\n\x13InfoTypeDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12@\n\x0csupported_by\x18\x03 \x03(\x0e\x32*.google.privacy.dlp.v2.InfoTypeSupportedBy\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t"=\n\x14ListInfoTypesRequest\x12\x15\n\rlanguage_code\x18\x01 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x02 \x01(\t"W\n\x15ListInfoTypesResponse\x12>\n\ninfo_types\x18\x01 \x03(\x0b\x32*.google.privacy.dlp.v2.InfoTypeDescription"\xc1\x01\n\x15RiskAnalysisJobConfig\x12<\n\x0eprivacy_metric\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.PrivacyMetric\x12:\n\x0csource_table\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12.\n\x07\x61\x63tions\x18\x03 \x03(\x0b\x32\x1d.google.privacy.dlp.v2.Action"\xb7\x01\n\x07QuasiId\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x34\n\tinfo_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeH\x00\x12\x14\n\ncustom_tag\x18\x03 \x01(\tH\x00\x12*\n\x08inferred\x18\x04 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x42\x05\n\x03tag"\xaf\x02\n\x10StatisticalTable\x12\x33\n\x05table\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12O\n\tquasi_ids\x18\x01 \x03(\x0b\x32<.google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField\x12:\n\x12relative_frequency\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1aY\n\x14QuasiIdentifierField\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x12\n\ncustom_tag\x18\x02 \x01(\t"\xf5\x0e\n\rPrivacyMetric\x12[\n\x16numerical_stats_config\x18\x01 \x01(\x0b\x32\x39.google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfigH\x00\x12_\n\x18\x63\x61tegorical_stats_config\x18\x02 \x01(\x0b\x32;.google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfigH\x00\x12S\n\x12k_anonymity_config\x18\x03 \x01(\x0b\x32\x35.google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfigH\x00\x12S\n\x12l_diversity_config\x18\x04 \x01(\x0b\x32\x35.google.privacy.dlp.v2.PrivacyMetric.LDiversityConfigH\x00\x12\\\n\x17k_map_estimation_config\x18\x05 \x01(\x0b\x32\x39.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfigH\x00\x12n\n delta_presence_estimation_config\x18\x06 \x01(\x0b\x32\x42.google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfigH\x00\x1a\x45\n\x14NumericalStatsConfig\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1aG\n\x16\x43\x61tegoricalStatsConfig\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1ay\n\x10KAnonymityConfig\x12\x31\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x32\n\tentity_id\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.EntityId\x1a\x82\x01\n\x10LDiversityConfig\x12\x31\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12;\n\x13sensitive_attribute\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1a\xe8\x05\n\x14KMapEstimationConfig\x12X\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x45.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField\x12\x13\n\x0bregion_code\x18\x02 \x01(\t\x12\x62\n\x10\x61uxiliary_tables\x18\x03 \x03(\x0b\x32H.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable\x1a\xbb\x01\n\x0bTaggedField\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x34\n\tinfo_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeH\x00\x12\x14\n\ncustom_tag\x18\x03 \x01(\tH\x00\x12*\n\x08inferred\x18\x04 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x42\x05\n\x03tag\x1a\xbe\x02\n\x0e\x41uxiliaryTable\x12\x33\n\x05table\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12h\n\tquasi_ids\x18\x01 \x03(\x0b\x32U.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField\x12:\n\x12relative_frequency\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1aQ\n\x0cQuasiIdField\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x12\n\ncustom_tag\x18\x02 \x01(\t\x1a\xaa\x01\n\x1d\x44\x65ltaPresenceEstimationConfig\x12\x31\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.QuasiId\x12\x13\n\x0bregion_code\x18\x02 \x01(\t\x12\x41\n\x10\x61uxiliary_tables\x18\x03 \x03(\x0b\x32\'.google.privacy.dlp.v2.StatisticalTableB\x06\n\x04type"\xf2\x1d\n\x1c\x41nalyzeDataSourceRiskDetails\x12\x46\n\x18requested_privacy_metric\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.PrivacyMetric\x12\x44\n\x16requested_source_table\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12j\n\x16numerical_stats_result\x18\x03 \x01(\x0b\x32H.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResultH\x00\x12n\n\x18\x63\x61tegorical_stats_result\x18\x04 \x01(\x0b\x32J.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResultH\x00\x12\x62\n\x12k_anonymity_result\x18\x05 \x01(\x0b\x32\x44.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResultH\x00\x12\x62\n\x12l_diversity_result\x18\x06 \x01(\x0b\x32\x44.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResultH\x00\x12k\n\x17k_map_estimation_result\x18\x07 \x01(\x0b\x32H.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResultH\x00\x12}\n delta_presence_estimation_result\x18\t \x01(\x0b\x32Q.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResultH\x00\x1a\xaf\x01\n\x14NumericalStatsResult\x12/\n\tmin_value\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12/\n\tmax_value\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x35\n\x0fquantile_values\x18\x04 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x1a\x8d\x03\n\x16\x43\x61tegoricalStatsResult\x12\x95\x01\n!value_frequency_histogram_buckets\x18\x05 \x03(\x0b\x32j.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket\x1a\xda\x01\n\x1f\x43\x61tegoricalStatsHistogramBucket\x12#\n\x1bvalue_frequency_lower_bound\x18\x01 \x01(\x03\x12#\n\x1bvalue_frequency_upper_bound\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x03 \x01(\x03\x12<\n\rbucket_values\x18\x04 \x03(\x0b\x32%.google.privacy.dlp.v2.ValueFrequency\x12\x1a\n\x12\x62ucket_value_count\x18\x05 \x01(\x03\x1a\xb5\x04\n\x10KAnonymityResult\x12\x8b\x01\n#equivalence_class_histogram_buckets\x18\x05 \x03(\x0b\x32^.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket\x1at\n\x1aKAnonymityEquivalenceClass\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1e\n\x16\x65quivalence_class_size\x18\x02 \x01(\x03\x1a\x9c\x02\n\x19KAnonymityHistogramBucket\x12*\n"equivalence_class_size_lower_bound\x18\x01 \x01(\x03\x12*\n"equivalence_class_size_upper_bound\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x03 \x01(\x03\x12v\n\rbucket_values\x18\x04 \x03(\x0b\x32_.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass\x12\x1a\n\x12\x62ucket_value_count\x18\x05 \x01(\x03\x1a\xb0\x05\n\x10LDiversityResult\x12\x93\x01\n+sensitive_value_frequency_histogram_buckets\x18\x05 \x03(\x0b\x32^.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket\x1a\xe0\x01\n\x1aLDiversityEquivalenceClass\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1e\n\x16\x65quivalence_class_size\x18\x02 \x01(\x03\x12%\n\x1dnum_distinct_sensitive_values\x18\x03 \x01(\x03\x12\x43\n\x14top_sensitive_values\x18\x04 \x03(\x0b\x32%.google.privacy.dlp.v2.ValueFrequency\x1a\xa2\x02\n\x19LDiversityHistogramBucket\x12-\n%sensitive_value_frequency_lower_bound\x18\x01 \x01(\x03\x12-\n%sensitive_value_frequency_upper_bound\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x03 \x01(\x03\x12v\n\rbucket_values\x18\x04 \x03(\x0b\x32_.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass\x12\x1a\n\x12\x62ucket_value_count\x18\x05 \x01(\x03\x1a\x95\x04\n\x14KMapEstimationResult\x12\x8a\x01\n\x1ak_map_estimation_histogram\x18\x01 \x03(\x0b\x32\x66.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket\x1ar\n\x1bKMapEstimationQuasiIdValues\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1b\n\x13\x65stimated_anonymity\x18\x02 \x01(\x03\x1a\xfb\x01\n\x1dKMapEstimationHistogramBucket\x12\x15\n\rmin_anonymity\x18\x01 \x01(\x03\x12\x15\n\rmax_anonymity\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x05 \x01(\x03\x12{\n\rbucket_values\x18\x06 \x03(\x0b\x32\x64.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues\x12\x1a\n\x12\x62ucket_value_count\x18\x07 \x01(\x03\x1a\xe4\x04\n\x1d\x44\x65ltaPresenceEstimationResult\x12\xa5\x01\n#delta_presence_estimation_histogram\x18\x01 \x03(\x0b\x32x.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket\x1a}\n$DeltaPresenceEstimationQuasiIdValues\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1d\n\x15\x65stimated_probability\x18\x02 \x01(\x01\x1a\x9b\x02\n&DeltaPresenceEstimationHistogramBucket\x12\x17\n\x0fmin_probability\x18\x01 \x01(\x01\x12\x17\n\x0fmax_probability\x18\x02 \x01(\x01\x12\x13\n\x0b\x62ucket_size\x18\x05 \x01(\x03\x12\x8d\x01\n\rbucket_values\x18\x06 \x03(\x0b\x32v.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues\x12\x1a\n\x12\x62ucket_value_count\x18\x07 \x01(\x03\x42\x08\n\x06result"L\n\x0eValueFrequency\x12+\n\x05value\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\r\n\x05\x63ount\x18\x02 \x01(\x03"\xb3\x02\n\x05Value\x12\x17\n\rinteger_value\x18\x01 \x01(\x03H\x00\x12\x15\n\x0b\x66loat_value\x18\x02 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x12\x17\n\rboolean_value\x18\x04 \x01(\x08H\x00\x12\x35\n\x0ftimestamp_value\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12,\n\ntime_value\x18\x06 \x01(\x0b\x32\x16.google.type.TimeOfDayH\x00\x12\'\n\ndate_value\x18\x07 \x01(\x0b\x32\x11.google.type.DateH\x00\x12\x33\n\x11\x64\x61y_of_week_value\x18\x08 \x01(\x0e\x32\x16.google.type.DayOfWeekH\x00\x42\x06\n\x04type"Q\n\tQuoteInfo\x12\x34\n\tdate_time\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DateTimeH\x00\x42\x0e\n\x0cparsed_quote"\xdf\x01\n\x08\x44\x61teTime\x12\x1f\n\x04\x64\x61te\x18\x01 \x01(\x0b\x32\x11.google.type.Date\x12+\n\x0b\x64\x61y_of_week\x18\x02 \x01(\x0e\x32\x16.google.type.DayOfWeek\x12$\n\x04time\x18\x03 \x01(\x0b\x32\x16.google.type.TimeOfDay\x12;\n\ttime_zone\x18\x04 \x01(\x0b\x32(.google.privacy.dlp.v2.DateTime.TimeZone\x1a"\n\x08TimeZone\x12\x16\n\x0eoffset_minutes\x18\x01 \x01(\x05"\xc9\x01\n\x10\x44\x65identifyConfig\x12S\n\x19info_type_transformations\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.InfoTypeTransformationsH\x00\x12N\n\x16record_transformations\x18\x02 \x01(\x0b\x32,.google.privacy.dlp.v2.RecordTransformationsH\x00\x42\x10\n\x0etransformation"\xf5\x06\n\x17PrimitiveTransformation\x12\x43\n\x0ereplace_config\x18\x01 \x01(\x0b\x32).google.privacy.dlp.v2.ReplaceValueConfigH\x00\x12<\n\rredact_config\x18\x02 \x01(\x0b\x32#.google.privacy.dlp.v2.RedactConfigH\x00\x12K\n\x15\x63haracter_mask_config\x18\x03 \x01(\x0b\x32*.google.privacy.dlp.v2.CharacterMaskConfigH\x00\x12Y\n\x1d\x63rypto_replace_ffx_fpe_config\x18\x04 \x01(\x0b\x32\x30.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfigH\x00\x12V\n\x1b\x66ixed_size_bucketing_config\x18\x05 \x01(\x0b\x32/.google.privacy.dlp.v2.FixedSizeBucketingConfigH\x00\x12\x42\n\x10\x62ucketing_config\x18\x06 \x01(\x0b\x32&.google.privacy.dlp.v2.BucketingConfigH\x00\x12Y\n\x1dreplace_with_info_type_config\x18\x07 \x01(\x0b\x32\x30.google.privacy.dlp.v2.ReplaceWithInfoTypeConfigH\x00\x12\x41\n\x10time_part_config\x18\x08 \x01(\x0b\x32%.google.privacy.dlp.v2.TimePartConfigH\x00\x12\x45\n\x12\x63rypto_hash_config\x18\t \x01(\x0b\x32\'.google.privacy.dlp.v2.CryptoHashConfigH\x00\x12\x43\n\x11\x64\x61te_shift_config\x18\x0b \x01(\x0b\x32&.google.privacy.dlp.v2.DateShiftConfigH\x00\x12W\n\x1b\x63rypto_deterministic_config\x18\x0c \x01(\x0b\x32\x30.google.privacy.dlp.v2.CryptoDeterministicConfigH\x00\x42\x10\n\x0etransformation"\xdc\x01\n\x0eTimePartConfig\x12G\n\x0fpart_to_extract\x18\x01 \x01(\x0e\x32..google.privacy.dlp.v2.TimePartConfig.TimePart"\x80\x01\n\x08TimePart\x12\x19\n\x15TIME_PART_UNSPECIFIED\x10\x00\x12\x08\n\x04YEAR\x10\x01\x12\t\n\x05MONTH\x10\x02\x12\x10\n\x0c\x44\x41Y_OF_MONTH\x10\x03\x12\x0f\n\x0b\x44\x41Y_OF_WEEK\x10\x04\x12\x10\n\x0cWEEK_OF_YEAR\x10\x05\x12\x0f\n\x0bHOUR_OF_DAY\x10\x06"H\n\x10\x43ryptoHashConfig\x12\x34\n\ncrypto_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKey"\xc0\x01\n\x19\x43ryptoDeterministicConfig\x12\x34\n\ncrypto_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKey\x12<\n\x13surrogate_info_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12/\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId"E\n\x12ReplaceValueConfig\x12/\n\tnew_value\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value"\x1b\n\x19ReplaceWithInfoTypeConfig"\x0e\n\x0cRedactConfig"\xb6\x02\n\rCharsToIgnore\x12\x1c\n\x12\x63haracters_to_skip\x18\x01 \x01(\tH\x00\x12_\n\x1b\x63ommon_characters_to_ignore\x18\x02 \x01(\x0e\x32\x38.google.privacy.dlp.v2.CharsToIgnore.CommonCharsToIgnoreH\x00"\x97\x01\n\x13\x43ommonCharsToIgnore\x12&\n"COMMON_CHARS_TO_IGNORE_UNSPECIFIED\x10\x00\x12\x0b\n\x07NUMERIC\x10\x01\x12\x14\n\x10\x41LPHA_UPPER_CASE\x10\x02\x12\x14\n\x10\x41LPHA_LOWER_CASE\x10\x03\x12\x0f\n\x0bPUNCTUATION\x10\x04\x12\x0e\n\nWHITESPACE\x10\x05\x42\x0c\n\ncharacters"\xa3\x01\n\x13\x43haracterMaskConfig\x12\x19\n\x11masking_character\x18\x01 \x01(\t\x12\x16\n\x0enumber_to_mask\x18\x02 \x01(\x05\x12\x15\n\rreverse_order\x18\x03 \x01(\x08\x12\x42\n\x14\x63haracters_to_ignore\x18\x04 \x03(\x0b\x32$.google.privacy.dlp.v2.CharsToIgnore"\x95\x01\n\x18\x46ixedSizeBucketingConfig\x12\x31\n\x0blower_bound\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x31\n\x0bupper_bound\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x13\n\x0b\x62ucket_size\x18\x03 \x01(\x01"\xeb\x01\n\x0f\x42ucketingConfig\x12>\n\x07\x62uckets\x18\x01 \x03(\x0b\x32-.google.privacy.dlp.v2.BucketingConfig.Bucket\x1a\x97\x01\n\x06\x42ucket\x12)\n\x03min\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12)\n\x03max\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x37\n\x11replacement_value\x18\x03 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value"\xf4\x03\n\x19\x43ryptoReplaceFfxFpeConfig\x12\x34\n\ncrypto_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKey\x12/\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x63\n\x0f\x63ommon_alphabet\x18\x04 \x01(\x0e\x32H.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabetH\x00\x12\x19\n\x0f\x63ustom_alphabet\x18\x05 \x01(\tH\x00\x12\x0f\n\x05radix\x18\x06 \x01(\x05H\x00\x12<\n\x13surrogate_info_type\x18\x08 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType"\x94\x01\n\x17\x46\x66xCommonNativeAlphabet\x12*\n&FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED\x10\x00\x12\x0b\n\x07NUMERIC\x10\x01\x12\x0f\n\x0bHEXADECIMAL\x10\x02\x12\x1c\n\x18UPPER_CASE_ALPHA_NUMERIC\x10\x03\x12\x11\n\rALPHA_NUMERIC\x10\x04\x42\n\n\x08\x61lphabet"\xd8\x01\n\tCryptoKey\x12>\n\ttransient\x18\x01 \x01(\x0b\x32).google.privacy.dlp.v2.TransientCryptoKeyH\x00\x12>\n\tunwrapped\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.UnwrappedCryptoKeyH\x00\x12\x41\n\x0bkms_wrapped\x18\x03 \x01(\x0b\x32*.google.privacy.dlp.v2.KmsWrappedCryptoKeyH\x00\x42\x08\n\x06source""\n\x12TransientCryptoKey\x12\x0c\n\x04name\x18\x01 \x01(\t"!\n\x12UnwrappedCryptoKey\x12\x0b\n\x03key\x18\x01 \x01(\x0c"C\n\x13KmsWrappedCryptoKey\x12\x13\n\x0bwrapped_key\x18\x01 \x01(\x0c\x12\x17\n\x0f\x63rypto_key_name\x18\x02 \x01(\t"\xb8\x01\n\x0f\x44\x61teShiftConfig\x12\x18\n\x10upper_bound_days\x18\x01 \x01(\x05\x12\x18\n\x10lower_bound_days\x18\x02 \x01(\x05\x12/\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x36\n\ncrypto_key\x18\x04 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKeyH\x00\x42\x08\n\x06method"\x9b\x02\n\x17InfoTypeTransformations\x12^\n\x0ftransformations\x18\x01 \x03(\x0b\x32\x45.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation\x1a\x9f\x01\n\x16InfoTypeTransformation\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12P\n\x18primitive_transformation\x18\x02 \x01(\x0b\x32..google.privacy.dlp.v2.PrimitiveTransformation"\xbb\x02\n\x13\x46ieldTransformation\x12.\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x39\n\tcondition\x18\x03 \x01(\x0b\x32&.google.privacy.dlp.v2.RecordCondition\x12R\n\x18primitive_transformation\x18\x04 \x01(\x0b\x32..google.privacy.dlp.v2.PrimitiveTransformationH\x00\x12S\n\x19info_type_transformations\x18\x05 \x01(\x0b\x32..google.privacy.dlp.v2.InfoTypeTransformationsH\x00\x42\x10\n\x0etransformation"\xa9\x01\n\x15RecordTransformations\x12I\n\x15\x66ield_transformations\x18\x01 \x03(\x0b\x32*.google.privacy.dlp.v2.FieldTransformation\x12\x45\n\x13record_suppressions\x18\x02 \x03(\x0b\x32(.google.privacy.dlp.v2.RecordSuppression"N\n\x11RecordSuppression\x12\x39\n\tcondition\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.RecordCondition"\xd2\x04\n\x0fRecordCondition\x12G\n\x0b\x65xpressions\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.RecordCondition.Expressions\x1a\xa4\x01\n\tCondition\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12;\n\x08operator\x18\x03 \x01(\x0e\x32).google.privacy.dlp.v2.RelationalOperator\x12+\n\x05value\x18\x04 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x1aR\n\nConditions\x12\x44\n\nconditions\x18\x01 \x03(\x0b\x32\x30.google.privacy.dlp.v2.RecordCondition.Condition\x1a\xfa\x01\n\x0b\x45xpressions\x12\\\n\x10logical_operator\x18\x01 \x01(\x0e\x32\x42.google.privacy.dlp.v2.RecordCondition.Expressions.LogicalOperator\x12G\n\nconditions\x18\x03 \x01(\x0b\x32\x31.google.privacy.dlp.v2.RecordCondition.ConditionsH\x00"<\n\x0fLogicalOperator\x12 \n\x1cLOGICAL_OPERATOR_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41ND\x10\x01\x42\x06\n\x04type"\x83\x01\n\x16TransformationOverview\x12\x19\n\x11transformed_bytes\x18\x02 \x01(\x03\x12N\n\x18transformation_summaries\x18\x03 \x03(\x0b\x32,.google.privacy.dlp.v2.TransformationSummary"\x9f\x05\n\x15TransformationSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12-\n\x05\x66ield\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x46\n\x0etransformation\x18\x03 \x01(\x0b\x32..google.privacy.dlp.v2.PrimitiveTransformation\x12I\n\x15\x66ield_transformations\x18\x05 \x03(\x0b\x32*.google.privacy.dlp.v2.FieldTransformation\x12\x41\n\x0frecord_suppress\x18\x06 \x01(\x0b\x32(.google.privacy.dlp.v2.RecordSuppression\x12K\n\x07results\x18\x04 \x03(\x0b\x32:.google.privacy.dlp.v2.TransformationSummary.SummaryResult\x12\x19\n\x11transformed_bytes\x18\x07 \x01(\x03\x1a\x84\x01\n\rSummaryResult\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12S\n\x04\x63ode\x18\x02 \x01(\x0e\x32\x45.google.privacy.dlp.v2.TransformationSummary.TransformationResultCode\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\t"^\n\x18TransformationResultCode\x12*\n&TRANSFORMATION_RESULT_CODE_UNSPECIFIED\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\t\n\x05\x45RROR\x10\x02"U\n\x08Schedule\x12?\n\x1arecurrence_period_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x42\x08\n\x06option"\x8f\x03\n\x0fInspectTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12/\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12<\n\x0einspect_config\x18\x06 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig:\xa2\x01\xea\x41\x9e\x01\n"dlp.googleapis.com/InspectTemplate\x12@organizations/{organization}/inspectTemplates/{inspect_template}\x12\x36projects/{project}/inspectTemplates/{inspect_template}"\xa7\x03\n\x12\x44\x65identifyTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12/\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x42\n\x11\x64\x65identify_config\x18\x06 \x01(\x0b\x32\'.google.privacy.dlp.v2.DeidentifyConfig:\xb1\x01\xea\x41\xad\x01\n%dlp.googleapis.com/DeidentifyTemplate\x12\x46organizations/{organization}/deidentifyTemplates/{deidentify_template}\x12<projects/{project}/deidentifyTemplates/{deidentify_template}"\\\n\x05\x45rror\x12#\n\x07\x64\x65tails\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12.\n\ntimestamps\x18\x02 \x03(\x0b\x32\x1a.google.protobuf.Timestamp"\xad\x05\n\nJobTrigger\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12>\n\x0binspect_job\x18\x04 \x01(\x0b\x32\'.google.privacy.dlp.v2.InspectJobConfigH\x00\x12;\n\x08triggers\x18\x05 \x03(\x0b\x32).google.privacy.dlp.v2.JobTrigger.Trigger\x12,\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Error\x12/\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rlast_run_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x38\n\x06status\x18\n \x01(\x0e\x32(.google.privacy.dlp.v2.JobTrigger.Status\x1aI\n\x07Trigger\x12\x33\n\x08schedule\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.ScheduleH\x00\x42\t\n\x07trigger"H\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x0b\n\x07HEALTHY\x10\x01\x12\n\n\x06PAUSED\x10\x02\x12\r\n\tCANCELLED\x10\x03:P\xea\x41M\n\x1d\x64lp.googleapis.com/JobTrigger\x12,projects/{project}/jobTriggers/{job_trigger}B\x05\n\x03job"\xf4\x05\n\x06\x41\x63tion\x12\x43\n\rsave_findings\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.Action.SaveFindingsH\x00\x12@\n\x07pub_sub\x18\x02 \x01(\x0b\x32-.google.privacy.dlp.v2.Action.PublishToPubSubH\x00\x12U\n\x17publish_summary_to_cscc\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.Action.PublishSummaryToCsccH\x00\x12q\n&publish_findings_to_cloud_data_catalog\x18\x05 \x01(\x0b\x32?.google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalogH\x00\x12V\n\x17job_notification_emails\x18\x08 \x01(\x0b\x32\x33.google.privacy.dlp.v2.Action.JobNotificationEmailsH\x00\x12T\n\x16publish_to_stackdriver\x18\t \x01(\x0b\x32\x32.google.privacy.dlp.v2.Action.PublishToStackdriverH\x00\x1aQ\n\x0cSaveFindings\x12\x41\n\routput_config\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.OutputStorageConfig\x1a \n\x0fPublishToPubSub\x12\r\n\x05topic\x18\x01 \x01(\t\x1a\x16\n\x14PublishSummaryToCscc\x1a#\n!PublishFindingsToCloudDataCatalog\x1a\x17\n\x15JobNotificationEmails\x1a\x16\n\x14PublishToStackdriverB\x08\n\x06\x61\x63tion"\xb1\x01\n\x1c\x43reateInspectTemplateRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12"dlp.googleapis.com/InspectTemplate\x12@\n\x10inspect_template\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplate\x12\x13\n\x0btemplate_id\x18\x03 \x01(\t"\xcb\x01\n\x1cUpdateInspectTemplateRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n"dlp.googleapis.com/InspectTemplate\x12@\n\x10inspect_template\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplate\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"U\n\x19GetInspectTemplateRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n"dlp.googleapis.com/InspectTemplate"\x92\x01\n\x1bListInspectTemplatesRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12"dlp.googleapis.com/InspectTemplate\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t"z\n\x1cListInspectTemplatesResponse\x12\x41\n\x11inspect_templates\x18\x01 \x03(\x0b\x32&.google.privacy.dlp.v2.InspectTemplate\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"X\n\x1c\x44\x65leteInspectTemplateRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n"dlp.googleapis.com/InspectTemplate"\xaa\x01\n\x17\x43reateJobTriggerRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x36\n\x0bjob_trigger\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.JobTrigger\x12\x12\n\ntrigger_id\x18\x03 \x01(\t"P\n\x19\x41\x63tivateJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger"\xb7\x01\n\x17UpdateJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\x12\x36\n\x0bjob_trigger\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.JobTrigger\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"K\n\x14GetJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger"\xf3\x01\n\x13\x43reateDlpJobRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12>\n\x0binspect_job\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.InspectJobConfigH\x00\x12@\n\x08risk_job\x18\x03 \x01(\x0b\x32,.google.privacy.dlp.v2.RiskAnalysisJobConfigH\x00\x12\x0e\n\x06job_id\x18\x04 \x01(\tB\x05\n\x03job"\xa6\x01\n\x16ListJobTriggersRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t"k\n\x17ListJobTriggersResponse\x12\x37\n\x0cjob_triggers\x18\x01 \x03(\x0b\x32!.google.privacy.dlp.v2.JobTrigger\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"N\n\x17\x44\x65leteJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger"\xdd\x01\n\x10InspectJobConfig\x12<\n\x0estorage_config\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.StorageConfig\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x1d\n\x15inspect_template_name\x18\x03 \x01(\t\x12.\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32\x1d.google.privacy.dlp.v2.Action"\xa4\x05\n\x06\x44lpJob\x12\x0c\n\x04name\x18\x01 \x01(\t\x12/\n\x04type\x18\x02 \x01(\x0e\x32!.google.privacy.dlp.v2.DlpJobType\x12\x35\n\x05state\x18\x03 \x01(\x0e\x32&.google.privacy.dlp.v2.DlpJob.JobState\x12K\n\x0crisk_details\x18\x04 \x01(\x0b\x32\x33.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetailsH\x00\x12J\n\x0finspect_details\x18\x05 \x01(\x0b\x32/.google.privacy.dlp.v2.InspectDataSourceDetailsH\x00\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nstart_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10job_trigger_name\x18\n \x01(\t\x12,\n\x06\x65rrors\x18\x0b \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Error"c\n\x08JobState\x12\x19\n\x15JOB_STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\x08\n\x04\x44ONE\x10\x03\x12\x0c\n\x08\x43\x41NCELED\x10\x04\x12\n\n\x06\x46\x41ILED\x10\x05:D\xea\x41\x41\n\x19\x64lp.googleapis.com/DlpJob\x12$projects/{project}/dlpJobs/{dlp_job}B\t\n\x07\x64\x65tails"C\n\x10GetDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob"\xd3\x01\n\x12ListDlpJobsRequest\x12\x43\n\x06parent\x18\x04 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x0e\n\x06\x66ilter\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12/\n\x04type\x18\x05 \x01(\x0e\x32!.google.privacy.dlp.v2.DlpJobType\x12\x10\n\x08order_by\x18\x06 \x01(\t"[\n\x13ListDlpJobsResponse\x12+\n\x04jobs\x18\x01 \x03(\x0b\x32\x1d.google.privacy.dlp.v2.DlpJob\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"F\n\x13\x43\x61ncelDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob"F\n\x13\x44\x65leteDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob"\xbd\x01\n\x1f\x43reateDeidentifyTemplateRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%dlp.googleapis.com/DeidentifyTemplate\x12\x46\n\x13\x64\x65identify_template\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12\x13\n\x0btemplate_id\x18\x03 \x01(\t"\xd7\x01\n\x1fUpdateDeidentifyTemplateRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/DeidentifyTemplate\x12\x46\n\x13\x64\x65identify_template\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"[\n\x1cGetDeidentifyTemplateRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/DeidentifyTemplate"\x98\x01\n\x1eListDeidentifyTemplatesRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%dlp.googleapis.com/DeidentifyTemplate\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t"\x83\x01\n\x1fListDeidentifyTemplatesResponse\x12G\n\x14\x64\x65identify_templates\x18\x01 \x03(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"^\n\x1f\x44\x65leteDeidentifyTemplateRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/DeidentifyTemplate"\xf4\x01\n\x1bLargeCustomDictionaryConfig\x12<\n\x0boutput_path\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.CloudStoragePath\x12L\n\x16\x63loud_storage_file_set\x18\x02 \x01(\x0b\x32*.google.privacy.dlp.v2.CloudStorageFileSetH\x00\x12?\n\x0f\x62ig_query_field\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryFieldH\x00\x42\x08\n\x06source"8\n\x1aLargeCustomDictionaryStats\x12\x1a\n\x12\x61pprox_num_phrases\x18\x01 \x01(\x03"\xa0\x01\n\x14StoredInfoTypeConfig\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12U\n\x17large_custom_dictionary\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.LargeCustomDictionaryConfigH\x00\x42\x06\n\x04type"s\n\x13StoredInfoTypeStats\x12T\n\x17large_custom_dictionary\x18\x01 \x01(\x0b\x32\x31.google.privacy.dlp.v2.LargeCustomDictionaryStatsH\x00\x42\x06\n\x04type"\xa9\x02\n\x15StoredInfoTypeVersion\x12;\n\x06\x63onfig\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.StoredInfoTypeConfig\x12/\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x39\n\x05state\x18\x03 \x01(\x0e\x32*.google.privacy.dlp.v2.StoredInfoTypeState\x12,\n\x06\x65rrors\x18\x04 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Error\x12\x39\n\x05stats\x18\x05 \x01(\x0b\x32*.google.privacy.dlp.v2.StoredInfoTypeStats"\xcf\x02\n\x0eStoredInfoType\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x45\n\x0f\x63urrent_version\x18\x02 \x01(\x0b\x32,.google.privacy.dlp.v2.StoredInfoTypeVersion\x12\x46\n\x10pending_versions\x18\x03 \x03(\x0b\x32,.google.privacy.dlp.v2.StoredInfoTypeVersion:\x9f\x01\xea\x41\x9b\x01\n!dlp.googleapis.com/StoredInfoType\x12?organizations/{organization}/storedInfoTypes/{stored_info_type}\x12\x35projects/{project}/storedInfoTypes/{stored_info_type}"\xb2\x01\n\x1b\x43reateStoredInfoTypeRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!dlp.googleapis.com/StoredInfoType\x12;\n\x06\x63onfig\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.StoredInfoTypeConfig\x12\x1b\n\x13stored_info_type_id\x18\x03 \x01(\t"\xc4\x01\n\x1bUpdateStoredInfoTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dlp.googleapis.com/StoredInfoType\x12;\n\x06\x63onfig\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.StoredInfoTypeConfig\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"S\n\x18GetStoredInfoTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dlp.googleapis.com/StoredInfoType"\x90\x01\n\x1aListStoredInfoTypesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!dlp.googleapis.com/StoredInfoType\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t"x\n\x1bListStoredInfoTypesResponse\x12@\n\x11stored_info_types\x18\x01 \x03(\x0b\x32%.google.privacy.dlp.v2.StoredInfoType\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"V\n\x1b\x44\x65leteStoredInfoTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dlp.googleapis.com/StoredInfoType*M\n\rContentOption\x12\x17\n\x13\x43ONTENT_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x43ONTENT_TEXT\x10\x01\x12\x11\n\rCONTENT_IMAGE\x10\x02*\x8d\x01\n\x0cMatchingType\x12\x1d\n\x19MATCHING_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18MATCHING_TYPE_FULL_MATCH\x10\x01\x12\x1f\n\x1bMATCHING_TYPE_PARTIAL_MATCH\x10\x02\x12\x1f\n\x1bMATCHING_TYPE_INVERSE_MATCH\x10\x03*P\n\x13InfoTypeSupportedBy\x12\x19\n\x15\x45NUM_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07INSPECT\x10\x01\x12\x11\n\rRISK_ANALYSIS\x10\x02*\xbb\x01\n\x12RelationalOperator\x12#\n\x1fRELATIONAL_OPERATOR_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x45QUAL_TO\x10\x01\x12\x10\n\x0cNOT_EQUAL_TO\x10\x02\x12\x10\n\x0cGREATER_THAN\x10\x03\x12\r\n\tLESS_THAN\x10\x04\x12\x1a\n\x16GREATER_THAN_OR_EQUALS\x10\x05\x12\x17\n\x13LESS_THAN_OR_EQUALS\x10\x06\x12\n\n\x06\x45XISTS\x10\x07*R\n\nDlpJobType\x12\x1c\n\x18\x44LP_JOB_TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bINSPECT_JOB\x10\x01\x12\x15\n\x11RISK_ANALYSIS_JOB\x10\x02*n\n\x13StoredInfoTypeState\x12&\n"STORED_INFO_TYPE_STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\t\n\x05READY\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\x0b\n\x07INVALID\x10\x04\x32\x92-\n\nDlpService\x12\xa1\x01\n\x0eInspectContent\x12,.google.privacy.dlp.v2.InspectContentRequest\x1a-.google.privacy.dlp.v2.InspectContentResponse"2\x82\xd3\xe4\x93\x02,"\'/v2/{parent=projects/*}/content:inspect:\x01*\x12\x95\x01\n\x0bRedactImage\x12).google.privacy.dlp.v2.RedactImageRequest\x1a*.google.privacy.dlp.v2.RedactImageResponse"/\x82\xd3\xe4\x93\x02)"$/v2/{parent=projects/*}/image:redact:\x01*\x12\xad\x01\n\x11\x44\x65identifyContent\x12/.google.privacy.dlp.v2.DeidentifyContentRequest\x1a\x30.google.privacy.dlp.v2.DeidentifyContentResponse"5\x82\xd3\xe4\x93\x02/"*/v2/{parent=projects/*}/content:deidentify:\x01*\x12\xad\x01\n\x11ReidentifyContent\x12/.google.privacy.dlp.v2.ReidentifyContentRequest\x1a\x30.google.privacy.dlp.v2.ReidentifyContentResponse"5\x82\xd3\xe4\x93\x02/"*/v2/{parent=projects/*}/content:reidentify:\x01*\x12\x81\x01\n\rListInfoTypes\x12+.google.privacy.dlp.v2.ListInfoTypesRequest\x1a,.google.privacy.dlp.v2.ListInfoTypesResponse"\x15\x82\xd3\xe4\x93\x02\x0f\x12\r/v2/infoTypes\x12\xdd\x01\n\x15\x43reateInspectTemplate\x12\x33.google.privacy.dlp.v2.CreateInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate"g\x82\xd3\xe4\x93\x02\x61"-/v2/{parent=organizations/*}/inspectTemplates:\x01*Z-"(/v2/{parent=projects/*}/inspectTemplates:\x01*\x12\xdd\x01\n\x15UpdateInspectTemplate\x12\x33.google.privacy.dlp.v2.UpdateInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate"g\x82\xd3\xe4\x93\x02\x61\x32-/v2/{name=organizations/*/inspectTemplates/*}:\x01*Z-2(/v2/{name=projects/*/inspectTemplates/*}:\x01*\x12\xd1\x01\n\x12GetInspectTemplate\x12\x30.google.privacy.dlp.v2.GetInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate"a\x82\xd3\xe4\x93\x02[\x12-/v2/{name=organizations/*/inspectTemplates/*}Z*\x12(/v2/{name=projects/*/inspectTemplates/*}\x12\xe2\x01\n\x14ListInspectTemplates\x12\x32.google.privacy.dlp.v2.ListInspectTemplatesRequest\x1a\x33.google.privacy.dlp.v2.ListInspectTemplatesResponse"a\x82\xd3\xe4\x93\x02[\x12-/v2/{parent=organizations/*}/inspectTemplatesZ*\x12(/v2/{parent=projects/*}/inspectTemplates\x12\xc7\x01\n\x15\x44\x65leteInspectTemplate\x12\x33.google.privacy.dlp.v2.DeleteInspectTemplateRequest\x1a\x16.google.protobuf.Empty"a\x82\xd3\xe4\x93\x02[*-/v2/{name=organizations/*/inspectTemplates/*}Z**(/v2/{name=projects/*/inspectTemplates/*}\x12\xec\x01\n\x18\x43reateDeidentifyTemplate\x12\x36.google.privacy.dlp.v2.CreateDeidentifyTemplateRequest\x1a).google.privacy.dlp.v2.DeidentifyTemplate"m\x82\xd3\xe4\x93\x02g"0/v2/{parent=organizations/*}/deidentifyTemplates:\x01*Z0"+/v2/{parent=projects/*}/deidentifyTemplates:\x01*\x12\xec\x01\n\x18UpdateDeidentifyTemplate\x12\x36.google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest\x1a).google.privacy.dlp.v2.DeidentifyTemplate"m\x82\xd3\xe4\x93\x02g20/v2/{name=organizations/*/deidentifyTemplates/*}:\x01*Z02+/v2/{name=projects/*/deidentifyTemplates/*}:\x01*\x12\xe0\x01\n\x15GetDeidentifyTemplate\x12\x33.google.privacy.dlp.v2.GetDeidentifyTemplateRequest\x1a).google.privacy.dlp.v2.DeidentifyTemplate"g\x82\xd3\xe4\x93\x02\x61\x12\x30/v2/{name=organizations/*/deidentifyTemplates/*}Z-\x12+/v2/{name=projects/*/deidentifyTemplates/*}\x12\xf1\x01\n\x17ListDeidentifyTemplates\x12\x35.google.privacy.dlp.v2.ListDeidentifyTemplatesRequest\x1a\x36.google.privacy.dlp.v2.ListDeidentifyTemplatesResponse"g\x82\xd3\xe4\x93\x02\x61\x12\x30/v2/{parent=organizations/*}/deidentifyTemplatesZ-\x12+/v2/{parent=projects/*}/deidentifyTemplates\x12\xd3\x01\n\x18\x44\x65leteDeidentifyTemplate\x12\x36.google.privacy.dlp.v2.DeleteDeidentifyTemplateRequest\x1a\x16.google.protobuf.Empty"g\x82\xd3\xe4\x93\x02\x61*0/v2/{name=organizations/*/deidentifyTemplates/*}Z-*+/v2/{name=projects/*/deidentifyTemplates/*}\x12\x95\x01\n\x10\x43reateJobTrigger\x12..google.privacy.dlp.v2.CreateJobTriggerRequest\x1a!.google.privacy.dlp.v2.JobTrigger".\x82\xd3\xe4\x93\x02("#/v2/{parent=projects/*}/jobTriggers:\x01*\x12\x95\x01\n\x10UpdateJobTrigger\x12..google.privacy.dlp.v2.UpdateJobTriggerRequest\x1a!.google.privacy.dlp.v2.JobTrigger".\x82\xd3\xe4\x93\x02(2#/v2/{name=projects/*/jobTriggers/*}:\x01*\x12\x8c\x01\n\rGetJobTrigger\x12+.google.privacy.dlp.v2.GetJobTriggerRequest\x1a!.google.privacy.dlp.v2.JobTrigger"+\x82\xd3\xe4\x93\x02%\x12#/v2/{name=projects/*/jobTriggers/*}\x12\x9d\x01\n\x0fListJobTriggers\x12-.google.privacy.dlp.v2.ListJobTriggersRequest\x1a..google.privacy.dlp.v2.ListJobTriggersResponse"+\x82\xd3\xe4\x93\x02%\x12#/v2/{parent=projects/*}/jobTriggers\x12\x87\x01\n\x10\x44\x65leteJobTrigger\x12..google.privacy.dlp.v2.DeleteJobTriggerRequest\x1a\x16.google.protobuf.Empty"+\x82\xd3\xe4\x93\x02%*#/v2/{name=projects/*/jobTriggers/*}\x12\x9e\x01\n\x12\x41\x63tivateJobTrigger\x12\x30.google.privacy.dlp.v2.ActivateJobTriggerRequest\x1a\x1d.google.privacy.dlp.v2.DlpJob"7\x82\xd3\xe4\x93\x02\x31",/v2/{name=projects/*/jobTriggers/*}:activate:\x01*\x12\x85\x01\n\x0c\x43reateDlpJob\x12*.google.privacy.dlp.v2.CreateDlpJobRequest\x1a\x1d.google.privacy.dlp.v2.DlpJob"*\x82\xd3\xe4\x93\x02$"\x1f/v2/{parent=projects/*}/dlpJobs:\x01*\x12\x8d\x01\n\x0bListDlpJobs\x12).google.privacy.dlp.v2.ListDlpJobsRequest\x1a*.google.privacy.dlp.v2.ListDlpJobsResponse"\'\x82\xd3\xe4\x93\x02!\x12\x1f/v2/{parent=projects/*}/dlpJobs\x12|\n\tGetDlpJob\x12\'.google.privacy.dlp.v2.GetDlpJobRequest\x1a\x1d.google.privacy.dlp.v2.DlpJob"\'\x82\xd3\xe4\x93\x02!\x12\x1f/v2/{name=projects/*/dlpJobs/*}\x12{\n\x0c\x44\x65leteDlpJob\x12*.google.privacy.dlp.v2.DeleteDlpJobRequest\x1a\x16.google.protobuf.Empty"\'\x82\xd3\xe4\x93\x02!*\x1f/v2/{name=projects/*/dlpJobs/*}\x12\x85\x01\n\x0c\x43\x61ncelDlpJob\x12*.google.privacy.dlp.v2.CancelDlpJobRequest\x1a\x16.google.protobuf.Empty"1\x82\xd3\xe4\x93\x02+"&/v2/{name=projects/*/dlpJobs/*}:cancel:\x01*\x12\xd8\x01\n\x14\x43reateStoredInfoType\x12\x32.google.privacy.dlp.v2.CreateStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType"e\x82\xd3\xe4\x93\x02_",/v2/{parent=organizations/*}/storedInfoTypes:\x01*Z,"\'/v2/{parent=projects/*}/storedInfoTypes:\x01*\x12\xd8\x01\n\x14UpdateStoredInfoType\x12\x32.google.privacy.dlp.v2.UpdateStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType"e\x82\xd3\xe4\x93\x02_2,/v2/{name=organizations/*/storedInfoTypes/*}:\x01*Z,2\'/v2/{name=projects/*/storedInfoTypes/*}:\x01*\x12\xcc\x01\n\x11GetStoredInfoType\x12/.google.privacy.dlp.v2.GetStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType"_\x82\xd3\xe4\x93\x02Y\x12,/v2/{name=organizations/*/storedInfoTypes/*}Z)\x12\'/v2/{name=projects/*/storedInfoTypes/*}\x12\xdd\x01\n\x13ListStoredInfoTypes\x12\x31.google.privacy.dlp.v2.ListStoredInfoTypesRequest\x1a\x32.google.privacy.dlp.v2.ListStoredInfoTypesResponse"_\x82\xd3\xe4\x93\x02Y\x12,/v2/{parent=organizations/*}/storedInfoTypesZ)\x12\'/v2/{parent=projects/*}/storedInfoTypes\x12\xc3\x01\n\x14\x44\x65leteStoredInfoType\x12\x32.google.privacy.dlp.v2.DeleteStoredInfoTypeRequest\x1a\x16.google.protobuf.Empty"_\x82\xd3\xe4\x93\x02Y*,/v2/{name=organizations/*/storedInfoTypes/*}Z)*\'/v2/{name=projects/*/storedInfoTypes/*}\x1a\x46\xca\x41\x12\x64lp.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x8d\x01\n\x19\x63om.google.privacy.dlp.v2B\x08\x44lpProtoP\x01Z8google.golang.org/genproto/googleapis/privacy/dlp/v2;dlp\xaa\x02\x13Google.Cloud.Dlp.V2\xca\x02\x13Google\\Cloud\\Dlp\\V2b\x06proto3'
+        '\n+google/cloud/privacy/dlp_v2/proto/dlp.proto\x12\x15google.privacy.dlp.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a/google/cloud/privacy/dlp_v2/proto/storage.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\x1a\x16google/type/date.proto\x1a\x1bgoogle/type/dayofweek.proto\x1a\x1bgoogle/type/timeofday.proto\x1a\x17google/api/client.proto"G\n\x10\x45xcludeInfoTypes\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType"\xa0\x02\n\rExclusionRule\x12\x46\n\ndictionary\x18\x01 \x01(\x0b\x32\x30.google.privacy.dlp.v2.CustomInfoType.DictionaryH\x00\x12<\n\x05regex\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.RegexH\x00\x12\x45\n\x12\x65xclude_info_types\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.ExcludeInfoTypesH\x00\x12:\n\rmatching_type\x18\x04 \x01(\x0e\x32#.google.privacy.dlp.v2.MatchingTypeB\x06\n\x04type"\xb1\x01\n\x0eInspectionRule\x12W\n\x0chotword_rule\x18\x01 \x01(\x0b\x32?.google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRuleH\x00\x12>\n\x0e\x65xclusion_rule\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.ExclusionRuleH\x00\x42\x06\n\x04type"~\n\x11InspectionRuleSet\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x34\n\x05rules\x18\x02 \x03(\x0b\x32%.google.privacy.dlp.v2.InspectionRule"\xc7\x05\n\rInspectConfig\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x39\n\x0emin_likelihood\x18\x02 \x01(\x0e\x32!.google.privacy.dlp.v2.Likelihood\x12\x42\n\x06limits\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.InspectConfig.FindingLimits\x12\x15\n\rinclude_quote\x18\x04 \x01(\x08\x12\x1a\n\x12\x65xclude_info_types\x18\x05 \x01(\x08\x12@\n\x11\x63ustom_info_types\x18\x06 \x03(\x0b\x32%.google.privacy.dlp.v2.CustomInfoType\x12=\n\x0f\x63ontent_options\x18\x08 \x03(\x0e\x32$.google.privacy.dlp.v2.ContentOption\x12:\n\x08rule_set\x18\n \x03(\x0b\x32(.google.privacy.dlp.v2.InspectionRuleSet\x1a\x91\x02\n\rFindingLimits\x12\x1d\n\x15max_findings_per_item\x18\x01 \x01(\x05\x12 \n\x18max_findings_per_request\x18\x02 \x01(\x05\x12\x64\n\x1amax_findings_per_info_type\x18\x03 \x03(\x0b\x32@.google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit\x1aY\n\rInfoTypeLimit\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x14\n\x0cmax_findings\x18\x02 \x01(\x05"\xea\x01\n\x0f\x42yteContentItem\x12>\n\x04type\x18\x01 \x01(\x0e\x32\x30.google.privacy.dlp.v2.ByteContentItem.BytesType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c"\x88\x01\n\tBytesType\x12\x1a\n\x16\x42YTES_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05IMAGE\x10\x06\x12\x0e\n\nIMAGE_JPEG\x10\x01\x12\r\n\tIMAGE_BMP\x10\x02\x12\r\n\tIMAGE_PNG\x10\x03\x12\r\n\tIMAGE_SVG\x10\x04\x12\r\n\tTEXT_UTF8\x10\x05\x12\x08\n\x04\x41VRO\x10\x0b"\x97\x01\n\x0b\x43ontentItem\x12\x0f\n\x05value\x18\x03 \x01(\tH\x00\x12-\n\x05table\x18\x04 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.TableH\x00\x12;\n\tbyte_item\x18\x05 \x01(\x0b\x32&.google.privacy.dlp.v2.ByteContentItemH\x00\x42\x0b\n\tdata_item"\x9d\x01\n\x05Table\x12/\n\x07headers\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12.\n\x04rows\x18\x02 \x03(\x0b\x32 .google.privacy.dlp.v2.Table.Row\x1a\x33\n\x03Row\x12,\n\x06values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value"]\n\rInspectResult\x12\x30\n\x08\x66indings\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.Finding\x12\x1a\n\x12\x66indings_truncated\x18\x02 \x01(\x08"\x9d\x02\n\x07\x46inding\x12\r\n\x05quote\x18\x01 \x01(\t\x12\x32\n\tinfo_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x35\n\nlikelihood\x18\x03 \x01(\x0e\x32!.google.privacy.dlp.v2.Likelihood\x12\x31\n\x08location\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.Location\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\nquote_info\x18\x07 \x01(\x0b\x32 .google.privacy.dlp.v2.QuoteInfo"\xb6\x01\n\x08Location\x12\x30\n\nbyte_range\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Range\x12\x35\n\x0f\x63odepoint_range\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Range\x12\x41\n\x11\x63ontent_locations\x18\x07 \x03(\x0b\x32&.google.privacy.dlp.v2.ContentLocation"\xd1\x02\n\x0f\x43ontentLocation\x12\x16\n\x0e\x63ontainer_name\x18\x01 \x01(\t\x12@\n\x0frecord_location\x18\x02 \x01(\x0b\x32%.google.privacy.dlp.v2.RecordLocationH\x00\x12>\n\x0eimage_location\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.ImageLocationH\x00\x12\x44\n\x11\x64ocument_location\x18\x05 \x01(\x0b\x32\'.google.privacy.dlp.v2.DocumentLocationH\x00\x12\x37\n\x13\x63ontainer_timestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11\x63ontainer_version\x18\x07 \x01(\tB\n\n\x08location"\'\n\x10\x44ocumentLocation\x12\x13\n\x0b\x66ile_offset\x18\x01 \x01(\x03"\xb6\x01\n\x0eRecordLocation\x12\x34\n\nrecord_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.RecordKey\x12\x30\n\x08\x66ield_id\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12<\n\x0etable_location\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.TableLocation""\n\rTableLocation\x12\x11\n\trow_index\x18\x01 \x01(\x03"#\n\x05Range\x12\r\n\x05start\x18\x01 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x03"K\n\rImageLocation\x12:\n\x0e\x62ounding_boxes\x18\x01 \x03(\x0b\x32".google.privacy.dlp.v2.BoundingBox"G\n\x0b\x42oundingBox\x12\x0b\n\x03top\x18\x01 \x01(\x05\x12\x0c\n\x04left\x18\x02 \x01(\x05\x12\r\n\x05width\x18\x03 \x01(\x05\x12\x0e\n\x06height\x18\x04 \x01(\x05"\x8a\x04\n\x12RedactImageRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x13\n\x0blocation_id\x18\x08 \x01(\t\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12_\n\x17image_redaction_configs\x18\x05 \x03(\x0b\x32>.google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig\x12\x18\n\x10include_findings\x18\x06 \x01(\x08\x12\x39\n\tbyte_item\x18\x07 \x01(\x0b\x32&.google.privacy.dlp.v2.ByteContentItem\x1a\xa8\x01\n\x14ImageRedactionConfig\x12\x34\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeH\x00\x12\x19\n\x0fredact_all_text\x18\x02 \x01(\x08H\x00\x12\x35\n\x0fredaction_color\x18\x03 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ColorB\x08\n\x06target"1\n\x05\x43olor\x12\x0b\n\x03red\x18\x01 \x01(\x02\x12\r\n\x05green\x18\x02 \x01(\x02\x12\x0c\n\x04\x62lue\x18\x03 \x01(\x02"\x83\x01\n\x13RedactImageResponse\x12\x16\n\x0eredacted_image\x18\x01 \x01(\x0c\x12\x16\n\x0e\x65xtracted_text\x18\x02 \x01(\t\x12<\n\x0einspect_result\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectResult"\xe6\x02\n\x18\x44\x65identifyContentRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x42\n\x11\x64\x65identify_config\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.DeidentifyConfig\x12<\n\x0einspect_config\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x30\n\x04item\x18\x04 \x01(\x0b\x32".google.privacy.dlp.v2.ContentItem\x12\x1d\n\x15inspect_template_name\x18\x05 \x01(\t\x12 \n\x18\x64\x65identify_template_name\x18\x06 \x01(\t\x12\x13\n\x0blocation_id\x18\x07 \x01(\t"\x8e\x01\n\x19\x44\x65identifyContentResponse\x12\x30\n\x04item\x18\x01 \x01(\x0b\x32".google.privacy.dlp.v2.ContentItem\x12?\n\x08overview\x18\x02 \x01(\x0b\x32-.google.privacy.dlp.v2.TransformationOverview"\xe9\x02\n\x18ReidentifyContentRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x42\n\x11reidentify_config\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.DeidentifyConfig\x12<\n\x0einspect_config\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x30\n\x04item\x18\x04 \x01(\x0b\x32".google.privacy.dlp.v2.ContentItem\x12\x1d\n\x15inspect_template_name\x18\x05 \x01(\t\x12 \n\x18reidentify_template_name\x18\x06 \x01(\t\x12\x13\n\x0blocation_id\x18\x07 \x01(\t"\x8e\x01\n\x19ReidentifyContentResponse\x12\x30\n\x04item\x18\x01 \x01(\x0b\x32".google.privacy.dlp.v2.ContentItem\x12?\n\x08overview\x18\x02 \x01(\x0b\x32-.google.privacy.dlp.v2.TransformationOverview"\xfd\x01\n\x15InspectContentRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x30\n\x04item\x18\x03 \x01(\x0b\x32".google.privacy.dlp.v2.ContentItem\x12\x1d\n\x15inspect_template_name\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\t"N\n\x16InspectContentResponse\x12\x34\n\x06result\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectResult"\xb7\x02\n\x13OutputStorageConfig\x12\x35\n\x05table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableH\x00\x12N\n\routput_schema\x18\x03 \x01(\x0e\x32\x37.google.privacy.dlp.v2.OutputStorageConfig.OutputSchema"\x90\x01\n\x0cOutputSchema\x12\x1d\n\x19OUTPUT_SCHEMA_UNSPECIFIED\x10\x00\x12\x11\n\rBASIC_COLUMNS\x10\x01\x12\x0f\n\x0bGCS_COLUMNS\x10\x02\x12\x15\n\x11\x44\x41TASTORE_COLUMNS\x10\x03\x12\x15\n\x11\x42IG_QUERY_COLUMNS\x10\x04\x12\x0f\n\x0b\x41LL_COLUMNS\x10\x05\x42\x06\n\x04type"R\n\rInfoTypeStats\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\r\n\x05\x63ount\x18\x02 \x01(\x03"\xdd\x03\n\x18InspectDataSourceDetails\x12[\n\x11requested_options\x18\x02 \x01(\x0b\x32@.google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions\x12\x46\n\x06result\x18\x03 \x01(\x0b\x32\x36.google.privacy.dlp.v2.InspectDataSourceDetails.Result\x1a\x9a\x01\n\x10RequestedOptions\x12I\n\x19snapshot_inspect_template\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplate\x12;\n\njob_config\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.InspectJobConfig\x1a\x7f\n\x06Result\x12\x17\n\x0fprocessed_bytes\x18\x01 \x01(\x03\x12\x1d\n\x15total_estimated_bytes\x18\x02 \x01(\x03\x12=\n\x0finfo_type_stats\x18\x03 \x03(\x0b\x32$.google.privacy.dlp.v2.InfoTypeStats"\x90\x01\n\x13InfoTypeDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12@\n\x0csupported_by\x18\x03 \x03(\x0e\x32*.google.privacy.dlp.v2.InfoTypeSupportedBy\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t"R\n\x14ListInfoTypesRequest\x12\x15\n\rlanguage_code\x18\x01 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x02 \x01(\t\x12\x13\n\x0blocation_id\x18\x03 \x01(\t"W\n\x15ListInfoTypesResponse\x12>\n\ninfo_types\x18\x01 \x03(\x0b\x32*.google.privacy.dlp.v2.InfoTypeDescription"\xc1\x01\n\x15RiskAnalysisJobConfig\x12<\n\x0eprivacy_metric\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.PrivacyMetric\x12:\n\x0csource_table\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12.\n\x07\x61\x63tions\x18\x03 \x03(\x0b\x32\x1d.google.privacy.dlp.v2.Action"\xb7\x01\n\x07QuasiId\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x34\n\tinfo_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeH\x00\x12\x14\n\ncustom_tag\x18\x03 \x01(\tH\x00\x12*\n\x08inferred\x18\x04 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x42\x05\n\x03tag"\xaf\x02\n\x10StatisticalTable\x12\x33\n\x05table\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12O\n\tquasi_ids\x18\x01 \x03(\x0b\x32<.google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField\x12:\n\x12relative_frequency\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1aY\n\x14QuasiIdentifierField\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x12\n\ncustom_tag\x18\x02 \x01(\t"\xf5\x0e\n\rPrivacyMetric\x12[\n\x16numerical_stats_config\x18\x01 \x01(\x0b\x32\x39.google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfigH\x00\x12_\n\x18\x63\x61tegorical_stats_config\x18\x02 \x01(\x0b\x32;.google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfigH\x00\x12S\n\x12k_anonymity_config\x18\x03 \x01(\x0b\x32\x35.google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfigH\x00\x12S\n\x12l_diversity_config\x18\x04 \x01(\x0b\x32\x35.google.privacy.dlp.v2.PrivacyMetric.LDiversityConfigH\x00\x12\\\n\x17k_map_estimation_config\x18\x05 \x01(\x0b\x32\x39.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfigH\x00\x12n\n delta_presence_estimation_config\x18\x06 \x01(\x0b\x32\x42.google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfigH\x00\x1a\x45\n\x14NumericalStatsConfig\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1aG\n\x16\x43\x61tegoricalStatsConfig\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1ay\n\x10KAnonymityConfig\x12\x31\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x32\n\tentity_id\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.EntityId\x1a\x82\x01\n\x10LDiversityConfig\x12\x31\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12;\n\x13sensitive_attribute\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1a\xe8\x05\n\x14KMapEstimationConfig\x12X\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x45.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField\x12\x13\n\x0bregion_code\x18\x02 \x01(\t\x12\x62\n\x10\x61uxiliary_tables\x18\x03 \x03(\x0b\x32H.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable\x1a\xbb\x01\n\x0bTaggedField\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x34\n\tinfo_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeH\x00\x12\x14\n\ncustom_tag\x18\x03 \x01(\tH\x00\x12*\n\x08inferred\x18\x04 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x42\x05\n\x03tag\x1a\xbe\x02\n\x0e\x41uxiliaryTable\x12\x33\n\x05table\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12h\n\tquasi_ids\x18\x01 \x03(\x0b\x32U.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField\x12:\n\x12relative_frequency\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1aQ\n\x0cQuasiIdField\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x12\n\ncustom_tag\x18\x02 \x01(\t\x1a\xaa\x01\n\x1d\x44\x65ltaPresenceEstimationConfig\x12\x31\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.QuasiId\x12\x13\n\x0bregion_code\x18\x02 \x01(\t\x12\x41\n\x10\x61uxiliary_tables\x18\x03 \x03(\x0b\x32\'.google.privacy.dlp.v2.StatisticalTableB\x06\n\x04type"\xf2\x1d\n\x1c\x41nalyzeDataSourceRiskDetails\x12\x46\n\x18requested_privacy_metric\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.PrivacyMetric\x12\x44\n\x16requested_source_table\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12j\n\x16numerical_stats_result\x18\x03 \x01(\x0b\x32H.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResultH\x00\x12n\n\x18\x63\x61tegorical_stats_result\x18\x04 \x01(\x0b\x32J.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResultH\x00\x12\x62\n\x12k_anonymity_result\x18\x05 \x01(\x0b\x32\x44.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResultH\x00\x12\x62\n\x12l_diversity_result\x18\x06 \x01(\x0b\x32\x44.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResultH\x00\x12k\n\x17k_map_estimation_result\x18\x07 \x01(\x0b\x32H.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResultH\x00\x12}\n delta_presence_estimation_result\x18\t \x01(\x0b\x32Q.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResultH\x00\x1a\xaf\x01\n\x14NumericalStatsResult\x12/\n\tmin_value\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12/\n\tmax_value\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x35\n\x0fquantile_values\x18\x04 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x1a\x8d\x03\n\x16\x43\x61tegoricalStatsResult\x12\x95\x01\n!value_frequency_histogram_buckets\x18\x05 \x03(\x0b\x32j.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket\x1a\xda\x01\n\x1f\x43\x61tegoricalStatsHistogramBucket\x12#\n\x1bvalue_frequency_lower_bound\x18\x01 \x01(\x03\x12#\n\x1bvalue_frequency_upper_bound\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x03 \x01(\x03\x12<\n\rbucket_values\x18\x04 \x03(\x0b\x32%.google.privacy.dlp.v2.ValueFrequency\x12\x1a\n\x12\x62ucket_value_count\x18\x05 \x01(\x03\x1a\xb5\x04\n\x10KAnonymityResult\x12\x8b\x01\n#equivalence_class_histogram_buckets\x18\x05 \x03(\x0b\x32^.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket\x1at\n\x1aKAnonymityEquivalenceClass\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1e\n\x16\x65quivalence_class_size\x18\x02 \x01(\x03\x1a\x9c\x02\n\x19KAnonymityHistogramBucket\x12*\n"equivalence_class_size_lower_bound\x18\x01 \x01(\x03\x12*\n"equivalence_class_size_upper_bound\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x03 \x01(\x03\x12v\n\rbucket_values\x18\x04 \x03(\x0b\x32_.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass\x12\x1a\n\x12\x62ucket_value_count\x18\x05 \x01(\x03\x1a\xb0\x05\n\x10LDiversityResult\x12\x93\x01\n+sensitive_value_frequency_histogram_buckets\x18\x05 \x03(\x0b\x32^.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket\x1a\xe0\x01\n\x1aLDiversityEquivalenceClass\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1e\n\x16\x65quivalence_class_size\x18\x02 \x01(\x03\x12%\n\x1dnum_distinct_sensitive_values\x18\x03 \x01(\x03\x12\x43\n\x14top_sensitive_values\x18\x04 \x03(\x0b\x32%.google.privacy.dlp.v2.ValueFrequency\x1a\xa2\x02\n\x19LDiversityHistogramBucket\x12-\n%sensitive_value_frequency_lower_bound\x18\x01 \x01(\x03\x12-\n%sensitive_value_frequency_upper_bound\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x03 \x01(\x03\x12v\n\rbucket_values\x18\x04 \x03(\x0b\x32_.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass\x12\x1a\n\x12\x62ucket_value_count\x18\x05 \x01(\x03\x1a\x95\x04\n\x14KMapEstimationResult\x12\x8a\x01\n\x1ak_map_estimation_histogram\x18\x01 \x03(\x0b\x32\x66.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket\x1ar\n\x1bKMapEstimationQuasiIdValues\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1b\n\x13\x65stimated_anonymity\x18\x02 \x01(\x03\x1a\xfb\x01\n\x1dKMapEstimationHistogramBucket\x12\x15\n\rmin_anonymity\x18\x01 \x01(\x03\x12\x15\n\rmax_anonymity\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x05 \x01(\x03\x12{\n\rbucket_values\x18\x06 \x03(\x0b\x32\x64.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues\x12\x1a\n\x12\x62ucket_value_count\x18\x07 \x01(\x03\x1a\xe4\x04\n\x1d\x44\x65ltaPresenceEstimationResult\x12\xa5\x01\n#delta_presence_estimation_histogram\x18\x01 \x03(\x0b\x32x.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket\x1a}\n$DeltaPresenceEstimationQuasiIdValues\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1d\n\x15\x65stimated_probability\x18\x02 \x01(\x01\x1a\x9b\x02\n&DeltaPresenceEstimationHistogramBucket\x12\x17\n\x0fmin_probability\x18\x01 \x01(\x01\x12\x17\n\x0fmax_probability\x18\x02 \x01(\x01\x12\x13\n\x0b\x62ucket_size\x18\x05 \x01(\x03\x12\x8d\x01\n\rbucket_values\x18\x06 \x03(\x0b\x32v.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues\x12\x1a\n\x12\x62ucket_value_count\x18\x07 \x01(\x03\x42\x08\n\x06result"L\n\x0eValueFrequency\x12+\n\x05value\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\r\n\x05\x63ount\x18\x02 \x01(\x03"\xb3\x02\n\x05Value\x12\x17\n\rinteger_value\x18\x01 \x01(\x03H\x00\x12\x15\n\x0b\x66loat_value\x18\x02 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x12\x17\n\rboolean_value\x18\x04 \x01(\x08H\x00\x12\x35\n\x0ftimestamp_value\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12,\n\ntime_value\x18\x06 \x01(\x0b\x32\x16.google.type.TimeOfDayH\x00\x12\'\n\ndate_value\x18\x07 \x01(\x0b\x32\x11.google.type.DateH\x00\x12\x33\n\x11\x64\x61y_of_week_value\x18\x08 \x01(\x0e\x32\x16.google.type.DayOfWeekH\x00\x42\x06\n\x04type"Q\n\tQuoteInfo\x12\x34\n\tdate_time\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DateTimeH\x00\x42\x0e\n\x0cparsed_quote"\xdf\x01\n\x08\x44\x61teTime\x12\x1f\n\x04\x64\x61te\x18\x01 \x01(\x0b\x32\x11.google.type.Date\x12+\n\x0b\x64\x61y_of_week\x18\x02 \x01(\x0e\x32\x16.google.type.DayOfWeek\x12$\n\x04time\x18\x03 \x01(\x0b\x32\x16.google.type.TimeOfDay\x12;\n\ttime_zone\x18\x04 \x01(\x0b\x32(.google.privacy.dlp.v2.DateTime.TimeZone\x1a"\n\x08TimeZone\x12\x16\n\x0eoffset_minutes\x18\x01 \x01(\x05"\xc9\x01\n\x10\x44\x65identifyConfig\x12S\n\x19info_type_transformations\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.InfoTypeTransformationsH\x00\x12N\n\x16record_transformations\x18\x02 \x01(\x0b\x32,.google.privacy.dlp.v2.RecordTransformationsH\x00\x42\x10\n\x0etransformation"\xf5\x06\n\x17PrimitiveTransformation\x12\x43\n\x0ereplace_config\x18\x01 \x01(\x0b\x32).google.privacy.dlp.v2.ReplaceValueConfigH\x00\x12<\n\rredact_config\x18\x02 \x01(\x0b\x32#.google.privacy.dlp.v2.RedactConfigH\x00\x12K\n\x15\x63haracter_mask_config\x18\x03 \x01(\x0b\x32*.google.privacy.dlp.v2.CharacterMaskConfigH\x00\x12Y\n\x1d\x63rypto_replace_ffx_fpe_config\x18\x04 \x01(\x0b\x32\x30.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfigH\x00\x12V\n\x1b\x66ixed_size_bucketing_config\x18\x05 \x01(\x0b\x32/.google.privacy.dlp.v2.FixedSizeBucketingConfigH\x00\x12\x42\n\x10\x62ucketing_config\x18\x06 \x01(\x0b\x32&.google.privacy.dlp.v2.BucketingConfigH\x00\x12Y\n\x1dreplace_with_info_type_config\x18\x07 \x01(\x0b\x32\x30.google.privacy.dlp.v2.ReplaceWithInfoTypeConfigH\x00\x12\x41\n\x10time_part_config\x18\x08 \x01(\x0b\x32%.google.privacy.dlp.v2.TimePartConfigH\x00\x12\x45\n\x12\x63rypto_hash_config\x18\t \x01(\x0b\x32\'.google.privacy.dlp.v2.CryptoHashConfigH\x00\x12\x43\n\x11\x64\x61te_shift_config\x18\x0b \x01(\x0b\x32&.google.privacy.dlp.v2.DateShiftConfigH\x00\x12W\n\x1b\x63rypto_deterministic_config\x18\x0c \x01(\x0b\x32\x30.google.privacy.dlp.v2.CryptoDeterministicConfigH\x00\x42\x10\n\x0etransformation"\xdc\x01\n\x0eTimePartConfig\x12G\n\x0fpart_to_extract\x18\x01 \x01(\x0e\x32..google.privacy.dlp.v2.TimePartConfig.TimePart"\x80\x01\n\x08TimePart\x12\x19\n\x15TIME_PART_UNSPECIFIED\x10\x00\x12\x08\n\x04YEAR\x10\x01\x12\t\n\x05MONTH\x10\x02\x12\x10\n\x0c\x44\x41Y_OF_MONTH\x10\x03\x12\x0f\n\x0b\x44\x41Y_OF_WEEK\x10\x04\x12\x10\n\x0cWEEK_OF_YEAR\x10\x05\x12\x0f\n\x0bHOUR_OF_DAY\x10\x06"H\n\x10\x43ryptoHashConfig\x12\x34\n\ncrypto_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKey"\xc0\x01\n\x19\x43ryptoDeterministicConfig\x12\x34\n\ncrypto_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKey\x12<\n\x13surrogate_info_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12/\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId"E\n\x12ReplaceValueConfig\x12/\n\tnew_value\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value"\x1b\n\x19ReplaceWithInfoTypeConfig"\x0e\n\x0cRedactConfig"\xb6\x02\n\rCharsToIgnore\x12\x1c\n\x12\x63haracters_to_skip\x18\x01 \x01(\tH\x00\x12_\n\x1b\x63ommon_characters_to_ignore\x18\x02 \x01(\x0e\x32\x38.google.privacy.dlp.v2.CharsToIgnore.CommonCharsToIgnoreH\x00"\x97\x01\n\x13\x43ommonCharsToIgnore\x12&\n"COMMON_CHARS_TO_IGNORE_UNSPECIFIED\x10\x00\x12\x0b\n\x07NUMERIC\x10\x01\x12\x14\n\x10\x41LPHA_UPPER_CASE\x10\x02\x12\x14\n\x10\x41LPHA_LOWER_CASE\x10\x03\x12\x0f\n\x0bPUNCTUATION\x10\x04\x12\x0e\n\nWHITESPACE\x10\x05\x42\x0c\n\ncharacters"\xa3\x01\n\x13\x43haracterMaskConfig\x12\x19\n\x11masking_character\x18\x01 \x01(\t\x12\x16\n\x0enumber_to_mask\x18\x02 \x01(\x05\x12\x15\n\rreverse_order\x18\x03 \x01(\x08\x12\x42\n\x14\x63haracters_to_ignore\x18\x04 \x03(\x0b\x32$.google.privacy.dlp.v2.CharsToIgnore"\x95\x01\n\x18\x46ixedSizeBucketingConfig\x12\x31\n\x0blower_bound\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x31\n\x0bupper_bound\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x13\n\x0b\x62ucket_size\x18\x03 \x01(\x01"\xeb\x01\n\x0f\x42ucketingConfig\x12>\n\x07\x62uckets\x18\x01 \x03(\x0b\x32-.google.privacy.dlp.v2.BucketingConfig.Bucket\x1a\x97\x01\n\x06\x42ucket\x12)\n\x03min\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12)\n\x03max\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x37\n\x11replacement_value\x18\x03 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value"\xf4\x03\n\x19\x43ryptoReplaceFfxFpeConfig\x12\x34\n\ncrypto_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKey\x12/\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x63\n\x0f\x63ommon_alphabet\x18\x04 \x01(\x0e\x32H.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabetH\x00\x12\x19\n\x0f\x63ustom_alphabet\x18\x05 \x01(\tH\x00\x12\x0f\n\x05radix\x18\x06 \x01(\x05H\x00\x12<\n\x13surrogate_info_type\x18\x08 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType"\x94\x01\n\x17\x46\x66xCommonNativeAlphabet\x12*\n&FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED\x10\x00\x12\x0b\n\x07NUMERIC\x10\x01\x12\x0f\n\x0bHEXADECIMAL\x10\x02\x12\x1c\n\x18UPPER_CASE_ALPHA_NUMERIC\x10\x03\x12\x11\n\rALPHA_NUMERIC\x10\x04\x42\n\n\x08\x61lphabet"\xd8\x01\n\tCryptoKey\x12>\n\ttransient\x18\x01 \x01(\x0b\x32).google.privacy.dlp.v2.TransientCryptoKeyH\x00\x12>\n\tunwrapped\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.UnwrappedCryptoKeyH\x00\x12\x41\n\x0bkms_wrapped\x18\x03 \x01(\x0b\x32*.google.privacy.dlp.v2.KmsWrappedCryptoKeyH\x00\x42\x08\n\x06source""\n\x12TransientCryptoKey\x12\x0c\n\x04name\x18\x01 \x01(\t"!\n\x12UnwrappedCryptoKey\x12\x0b\n\x03key\x18\x01 \x01(\x0c"C\n\x13KmsWrappedCryptoKey\x12\x13\n\x0bwrapped_key\x18\x01 \x01(\x0c\x12\x17\n\x0f\x63rypto_key_name\x18\x02 \x01(\t"\xb8\x01\n\x0f\x44\x61teShiftConfig\x12\x18\n\x10upper_bound_days\x18\x01 \x01(\x05\x12\x18\n\x10lower_bound_days\x18\x02 \x01(\x05\x12/\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x36\n\ncrypto_key\x18\x04 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKeyH\x00\x42\x08\n\x06method"\x9b\x02\n\x17InfoTypeTransformations\x12^\n\x0ftransformations\x18\x01 \x03(\x0b\x32\x45.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation\x1a\x9f\x01\n\x16InfoTypeTransformation\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12P\n\x18primitive_transformation\x18\x02 \x01(\x0b\x32..google.privacy.dlp.v2.PrimitiveTransformation"\xbb\x02\n\x13\x46ieldTransformation\x12.\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x39\n\tcondition\x18\x03 \x01(\x0b\x32&.google.privacy.dlp.v2.RecordCondition\x12R\n\x18primitive_transformation\x18\x04 \x01(\x0b\x32..google.privacy.dlp.v2.PrimitiveTransformationH\x00\x12S\n\x19info_type_transformations\x18\x05 \x01(\x0b\x32..google.privacy.dlp.v2.InfoTypeTransformationsH\x00\x42\x10\n\x0etransformation"\xa9\x01\n\x15RecordTransformations\x12I\n\x15\x66ield_transformations\x18\x01 \x03(\x0b\x32*.google.privacy.dlp.v2.FieldTransformation\x12\x45\n\x13record_suppressions\x18\x02 \x03(\x0b\x32(.google.privacy.dlp.v2.RecordSuppression"N\n\x11RecordSuppression\x12\x39\n\tcondition\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.RecordCondition"\xd2\x04\n\x0fRecordCondition\x12G\n\x0b\x65xpressions\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.RecordCondition.Expressions\x1a\xa4\x01\n\tCondition\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12;\n\x08operator\x18\x03 \x01(\x0e\x32).google.privacy.dlp.v2.RelationalOperator\x12+\n\x05value\x18\x04 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x1aR\n\nConditions\x12\x44\n\nconditions\x18\x01 \x03(\x0b\x32\x30.google.privacy.dlp.v2.RecordCondition.Condition\x1a\xfa\x01\n\x0b\x45xpressions\x12\\\n\x10logical_operator\x18\x01 \x01(\x0e\x32\x42.google.privacy.dlp.v2.RecordCondition.Expressions.LogicalOperator\x12G\n\nconditions\x18\x03 \x01(\x0b\x32\x31.google.privacy.dlp.v2.RecordCondition.ConditionsH\x00"<\n\x0fLogicalOperator\x12 \n\x1cLOGICAL_OPERATOR_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41ND\x10\x01\x42\x06\n\x04type"\x83\x01\n\x16TransformationOverview\x12\x19\n\x11transformed_bytes\x18\x02 \x01(\x03\x12N\n\x18transformation_summaries\x18\x03 \x03(\x0b\x32,.google.privacy.dlp.v2.TransformationSummary"\x9f\x05\n\x15TransformationSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12-\n\x05\x66ield\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x46\n\x0etransformation\x18\x03 \x01(\x0b\x32..google.privacy.dlp.v2.PrimitiveTransformation\x12I\n\x15\x66ield_transformations\x18\x05 \x03(\x0b\x32*.google.privacy.dlp.v2.FieldTransformation\x12\x41\n\x0frecord_suppress\x18\x06 \x01(\x0b\x32(.google.privacy.dlp.v2.RecordSuppression\x12K\n\x07results\x18\x04 \x03(\x0b\x32:.google.privacy.dlp.v2.TransformationSummary.SummaryResult\x12\x19\n\x11transformed_bytes\x18\x07 \x01(\x03\x1a\x84\x01\n\rSummaryResult\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12S\n\x04\x63ode\x18\x02 \x01(\x0e\x32\x45.google.privacy.dlp.v2.TransformationSummary.TransformationResultCode\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\t"^\n\x18TransformationResultCode\x12*\n&TRANSFORMATION_RESULT_CODE_UNSPECIFIED\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\t\n\x05\x45RROR\x10\x02"U\n\x08Schedule\x12?\n\x1arecurrence_period_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x42\x08\n\x06option"\x8f\x03\n\x0fInspectTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12/\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12<\n\x0einspect_config\x18\x06 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig:\xa2\x01\xea\x41\x9e\x01\n"dlp.googleapis.com/InspectTemplate\x12@organizations/{organization}/inspectTemplates/{inspect_template}\x12\x36projects/{project}/inspectTemplates/{inspect_template}"\xa7\x03\n\x12\x44\x65identifyTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12/\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x42\n\x11\x64\x65identify_config\x18\x06 \x01(\x0b\x32\'.google.privacy.dlp.v2.DeidentifyConfig:\xb1\x01\xea\x41\xad\x01\n%dlp.googleapis.com/DeidentifyTemplate\x12\x46organizations/{organization}/deidentifyTemplates/{deidentify_template}\x12<projects/{project}/deidentifyTemplates/{deidentify_template}"\\\n\x05\x45rror\x12#\n\x07\x64\x65tails\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12.\n\ntimestamps\x18\x02 \x03(\x0b\x32\x1a.google.protobuf.Timestamp"\xad\x05\n\nJobTrigger\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12>\n\x0binspect_job\x18\x04 \x01(\x0b\x32\'.google.privacy.dlp.v2.InspectJobConfigH\x00\x12;\n\x08triggers\x18\x05 \x03(\x0b\x32).google.privacy.dlp.v2.JobTrigger.Trigger\x12,\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Error\x12/\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rlast_run_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x38\n\x06status\x18\n \x01(\x0e\x32(.google.privacy.dlp.v2.JobTrigger.Status\x1aI\n\x07Trigger\x12\x33\n\x08schedule\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.ScheduleH\x00\x42\t\n\x07trigger"H\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x0b\n\x07HEALTHY\x10\x01\x12\n\n\x06PAUSED\x10\x02\x12\r\n\tCANCELLED\x10\x03:P\xea\x41M\n\x1d\x64lp.googleapis.com/JobTrigger\x12,projects/{project}/jobTriggers/{job_trigger}B\x05\n\x03job"\xf4\x05\n\x06\x41\x63tion\x12\x43\n\rsave_findings\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.Action.SaveFindingsH\x00\x12@\n\x07pub_sub\x18\x02 \x01(\x0b\x32-.google.privacy.dlp.v2.Action.PublishToPubSubH\x00\x12U\n\x17publish_summary_to_cscc\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.Action.PublishSummaryToCsccH\x00\x12q\n&publish_findings_to_cloud_data_catalog\x18\x05 \x01(\x0b\x32?.google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalogH\x00\x12V\n\x17job_notification_emails\x18\x08 \x01(\x0b\x32\x33.google.privacy.dlp.v2.Action.JobNotificationEmailsH\x00\x12T\n\x16publish_to_stackdriver\x18\t \x01(\x0b\x32\x32.google.privacy.dlp.v2.Action.PublishToStackdriverH\x00\x1aQ\n\x0cSaveFindings\x12\x41\n\routput_config\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.OutputStorageConfig\x1a \n\x0fPublishToPubSub\x12\r\n\x05topic\x18\x01 \x01(\t\x1a\x16\n\x14PublishSummaryToCscc\x1a#\n!PublishFindingsToCloudDataCatalog\x1a\x17\n\x15JobNotificationEmails\x1a\x16\n\x14PublishToStackdriverB\x08\n\x06\x61\x63tion"\xc6\x01\n\x1c\x43reateInspectTemplateRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12"dlp.googleapis.com/InspectTemplate\x12@\n\x10inspect_template\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplate\x12\x13\n\x0btemplate_id\x18\x03 \x01(\t\x12\x13\n\x0blocation_id\x18\x04 \x01(\t"\xcb\x01\n\x1cUpdateInspectTemplateRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n"dlp.googleapis.com/InspectTemplate\x12@\n\x10inspect_template\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplate\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"U\n\x19GetInspectTemplateRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n"dlp.googleapis.com/InspectTemplate"\xa7\x01\n\x1bListInspectTemplatesRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12"dlp.googleapis.com/InspectTemplate\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\t"z\n\x1cListInspectTemplatesResponse\x12\x41\n\x11inspect_templates\x18\x01 \x03(\x0b\x32&.google.privacy.dlp.v2.InspectTemplate\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"X\n\x1c\x44\x65leteInspectTemplateRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n"dlp.googleapis.com/InspectTemplate"\xbf\x01\n\x17\x43reateJobTriggerRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x36\n\x0bjob_trigger\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.JobTrigger\x12\x12\n\ntrigger_id\x18\x03 \x01(\t\x12\x13\n\x0blocation_id\x18\x04 \x01(\t"P\n\x19\x41\x63tivateJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger"\xb7\x01\n\x17UpdateJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\x12\x36\n\x0bjob_trigger\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.JobTrigger\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"K\n\x14GetJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger"\x88\x02\n\x13\x43reateDlpJobRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12>\n\x0binspect_job\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.InspectJobConfigH\x00\x12@\n\x08risk_job\x18\x03 \x01(\x0b\x32,.google.privacy.dlp.v2.RiskAnalysisJobConfigH\x00\x12\x0e\n\x06job_id\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\tB\x05\n\x03job"\xbb\x01\n\x16ListJobTriggersRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\x12\x13\n\x0blocation_id\x18\x07 \x01(\t"k\n\x17ListJobTriggersResponse\x12\x37\n\x0cjob_triggers\x18\x01 \x03(\x0b\x32!.google.privacy.dlp.v2.JobTrigger\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"N\n\x17\x44\x65leteJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger"\xdd\x01\n\x10InspectJobConfig\x12<\n\x0estorage_config\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.StorageConfig\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x1d\n\x15inspect_template_name\x18\x03 \x01(\t\x12.\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32\x1d.google.privacy.dlp.v2.Action"\xa4\x05\n\x06\x44lpJob\x12\x0c\n\x04name\x18\x01 \x01(\t\x12/\n\x04type\x18\x02 \x01(\x0e\x32!.google.privacy.dlp.v2.DlpJobType\x12\x35\n\x05state\x18\x03 \x01(\x0e\x32&.google.privacy.dlp.v2.DlpJob.JobState\x12K\n\x0crisk_details\x18\x04 \x01(\x0b\x32\x33.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetailsH\x00\x12J\n\x0finspect_details\x18\x05 \x01(\x0b\x32/.google.privacy.dlp.v2.InspectDataSourceDetailsH\x00\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nstart_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10job_trigger_name\x18\n \x01(\t\x12,\n\x06\x65rrors\x18\x0b \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Error"c\n\x08JobState\x12\x19\n\x15JOB_STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\x08\n\x04\x44ONE\x10\x03\x12\x0c\n\x08\x43\x41NCELED\x10\x04\x12\n\n\x06\x46\x41ILED\x10\x05:D\xea\x41\x41\n\x19\x64lp.googleapis.com/DlpJob\x12$projects/{project}/dlpJobs/{dlp_job}B\t\n\x07\x64\x65tails"C\n\x10GetDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob"\xe8\x01\n\x12ListDlpJobsRequest\x12\x43\n\x06parent\x18\x04 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x0e\n\x06\x66ilter\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12/\n\x04type\x18\x05 \x01(\x0e\x32!.google.privacy.dlp.v2.DlpJobType\x12\x10\n\x08order_by\x18\x06 \x01(\t\x12\x13\n\x0blocation_id\x18\x07 \x01(\t"[\n\x13ListDlpJobsResponse\x12+\n\x04jobs\x18\x01 \x03(\x0b\x32\x1d.google.privacy.dlp.v2.DlpJob\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"F\n\x13\x43\x61ncelDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob"F\n\x13\x44\x65leteDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob"\xd2\x01\n\x1f\x43reateDeidentifyTemplateRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%dlp.googleapis.com/DeidentifyTemplate\x12\x46\n\x13\x64\x65identify_template\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12\x13\n\x0btemplate_id\x18\x03 \x01(\t\x12\x13\n\x0blocation_id\x18\x04 \x01(\t"\xd7\x01\n\x1fUpdateDeidentifyTemplateRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/DeidentifyTemplate\x12\x46\n\x13\x64\x65identify_template\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"[\n\x1cGetDeidentifyTemplateRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/DeidentifyTemplate"\xad\x01\n\x1eListDeidentifyTemplatesRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%dlp.googleapis.com/DeidentifyTemplate\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\t"\x83\x01\n\x1fListDeidentifyTemplatesResponse\x12G\n\x14\x64\x65identify_templates\x18\x01 \x03(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"^\n\x1f\x44\x65leteDeidentifyTemplateRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/DeidentifyTemplate"\xf4\x01\n\x1bLargeCustomDictionaryConfig\x12<\n\x0boutput_path\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.CloudStoragePath\x12L\n\x16\x63loud_storage_file_set\x18\x02 \x01(\x0b\x32*.google.privacy.dlp.v2.CloudStorageFileSetH\x00\x12?\n\x0f\x62ig_query_field\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryFieldH\x00\x42\x08\n\x06source"8\n\x1aLargeCustomDictionaryStats\x12\x1a\n\x12\x61pprox_num_phrases\x18\x01 \x01(\x03"\xa0\x01\n\x14StoredInfoTypeConfig\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12U\n\x17large_custom_dictionary\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.LargeCustomDictionaryConfigH\x00\x42\x06\n\x04type"s\n\x13StoredInfoTypeStats\x12T\n\x17large_custom_dictionary\x18\x01 \x01(\x0b\x32\x31.google.privacy.dlp.v2.LargeCustomDictionaryStatsH\x00\x42\x06\n\x04type"\xa9\x02\n\x15StoredInfoTypeVersion\x12;\n\x06\x63onfig\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.StoredInfoTypeConfig\x12/\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x39\n\x05state\x18\x03 \x01(\x0e\x32*.google.privacy.dlp.v2.StoredInfoTypeState\x12,\n\x06\x65rrors\x18\x04 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Error\x12\x39\n\x05stats\x18\x05 \x01(\x0b\x32*.google.privacy.dlp.v2.StoredInfoTypeStats"\xcf\x02\n\x0eStoredInfoType\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x45\n\x0f\x63urrent_version\x18\x02 \x01(\x0b\x32,.google.privacy.dlp.v2.StoredInfoTypeVersion\x12\x46\n\x10pending_versions\x18\x03 \x03(\x0b\x32,.google.privacy.dlp.v2.StoredInfoTypeVersion:\x9f\x01\xea\x41\x9b\x01\n!dlp.googleapis.com/StoredInfoType\x12?organizations/{organization}/storedInfoTypes/{stored_info_type}\x12\x35projects/{project}/storedInfoTypes/{stored_info_type}"\xc7\x01\n\x1b\x43reateStoredInfoTypeRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!dlp.googleapis.com/StoredInfoType\x12;\n\x06\x63onfig\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.StoredInfoTypeConfig\x12\x1b\n\x13stored_info_type_id\x18\x03 \x01(\t\x12\x13\n\x0blocation_id\x18\x04 \x01(\t"\xc4\x01\n\x1bUpdateStoredInfoTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dlp.googleapis.com/StoredInfoType\x12;\n\x06\x63onfig\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.StoredInfoTypeConfig\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"S\n\x18GetStoredInfoTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dlp.googleapis.com/StoredInfoType"\xa5\x01\n\x1aListStoredInfoTypesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!dlp.googleapis.com/StoredInfoType\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\t"x\n\x1bListStoredInfoTypesResponse\x12@\n\x11stored_info_types\x18\x01 \x03(\x0b\x32%.google.privacy.dlp.v2.StoredInfoType\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"V\n\x1b\x44\x65leteStoredInfoTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dlp.googleapis.com/StoredInfoType*M\n\rContentOption\x12\x17\n\x13\x43ONTENT_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x43ONTENT_TEXT\x10\x01\x12\x11\n\rCONTENT_IMAGE\x10\x02*\x8d\x01\n\x0cMatchingType\x12\x1d\n\x19MATCHING_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18MATCHING_TYPE_FULL_MATCH\x10\x01\x12\x1f\n\x1bMATCHING_TYPE_PARTIAL_MATCH\x10\x02\x12\x1f\n\x1bMATCHING_TYPE_INVERSE_MATCH\x10\x03*P\n\x13InfoTypeSupportedBy\x12\x19\n\x15\x45NUM_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07INSPECT\x10\x01\x12\x11\n\rRISK_ANALYSIS\x10\x02*\xbb\x01\n\x12RelationalOperator\x12#\n\x1fRELATIONAL_OPERATOR_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x45QUAL_TO\x10\x01\x12\x10\n\x0cNOT_EQUAL_TO\x10\x02\x12\x10\n\x0cGREATER_THAN\x10\x03\x12\r\n\tLESS_THAN\x10\x04\x12\x1a\n\x16GREATER_THAN_OR_EQUALS\x10\x05\x12\x17\n\x13LESS_THAN_OR_EQUALS\x10\x06\x12\n\n\x06\x45XISTS\x10\x07*R\n\nDlpJobType\x12\x1c\n\x18\x44LP_JOB_TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bINSPECT_JOB\x10\x01\x12\x15\n\x11RISK_ANALYSIS_JOB\x10\x02*n\n\x13StoredInfoTypeState\x12&\n"STORED_INFO_TYPE_STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\t\n\x05READY\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\x0b\n\x07INVALID\x10\x04\x32\x85\x44\n\nDlpService\x12\xe7\x01\n\x0eInspectContent\x12,.google.privacy.dlp.v2.InspectContentRequest\x1a-.google.privacy.dlp.v2.InspectContentResponse"x\x82\xd3\xe4\x93\x02r"\'/v2/{parent=projects/*}/content:inspect:\x01*ZD"?/v2/{parent=projects/*}/locations/{location_id}/content:inspect:\x01*\x12\xd8\x01\n\x0bRedactImage\x12).google.privacy.dlp.v2.RedactImageRequest\x1a*.google.privacy.dlp.v2.RedactImageResponse"r\x82\xd3\xe4\x93\x02l"$/v2/{parent=projects/*}/image:redact:\x01*ZA"</v2/{parent=projects/*}/locations/{location_id}/image:redact:\x01*\x12\xf6\x01\n\x11\x44\x65identifyContent\x12/.google.privacy.dlp.v2.DeidentifyContentRequest\x1a\x30.google.privacy.dlp.v2.DeidentifyContentResponse"~\x82\xd3\xe4\x93\x02x"*/v2/{parent=projects/*}/content:deidentify:\x01*ZG"B/v2/{parent=projects/*}/locations/{location_id}/content:deidentify:\x01*\x12\xf6\x01\n\x11ReidentifyContent\x12/.google.privacy.dlp.v2.ReidentifyContentRequest\x1a\x30.google.privacy.dlp.v2.ReidentifyContentResponse"~\x82\xd3\xe4\x93\x02x"*/v2/{parent=projects/*}/content:reidentify:\x01*ZG"B/v2/{parent=projects/*}/locations/{location_id}/content:reidentify:\x01*\x12\xaa\x01\n\rListInfoTypes\x12+.google.privacy.dlp.v2.ListInfoTypesRequest\x1a,.google.privacy.dlp.v2.ListInfoTypesResponse">\x82\xd3\xe4\x93\x02\x38\x12\r/v2/infoTypesZ\'\x12%/v2/locations/{location_id}/infoTypes\x12\xf2\x02\n\x15\x43reateInspectTemplate\x12\x33.google.privacy.dlp.v2.CreateInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate"\xfb\x01\x82\xd3\xe4\x93\x02\xf4\x01"-/v2/{parent=organizations/*}/inspectTemplates:\x01*ZJ"E/v2/{parent=organizations/*}/locations/{location_id}/inspectTemplates:\x01*Z-"(/v2/{parent=projects/*}/inspectTemplates:\x01*ZE"@/v2/{parent=projects/*}/locations/{location_id}/inspectTemplates:\x01*\x12\xda\x02\n\x15UpdateInspectTemplate\x12\x33.google.privacy.dlp.v2.UpdateInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate"\xe3\x01\x82\xd3\xe4\x93\x02\xdc\x01\x32-/v2/{name=organizations/*/inspectTemplates/*}:\x01*Z>29/v2/{name=organizations/*/locations/*/inspectTemplates/*}:\x01*Z-2(/v2/{name=projects/*/inspectTemplates/*}:\x01*Z924/v2/{name=projects/*/locations/*/inspectTemplates/*}:\x01*\x12\xc8\x02\n\x12GetInspectTemplate\x12\x30.google.privacy.dlp.v2.GetInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate"\xd7\x01\x82\xd3\xe4\x93\x02\xd0\x01\x12-/v2/{name=organizations/*/inspectTemplates/*}Z;\x12\x39/v2/{name=organizations/*/locations/*/inspectTemplates/*}Z*\x12(/v2/{name=projects/*/inspectTemplates/*}Z6\x12\x34/v2/{name=projects/*/locations/*/inspectTemplates/*}\x12\xf1\x02\n\x14ListInspectTemplates\x12\x32.google.privacy.dlp.v2.ListInspectTemplatesRequest\x1a\x33.google.privacy.dlp.v2.ListInspectTemplatesResponse"\xef\x01\x82\xd3\xe4\x93\x02\xe8\x01\x12-/v2/{parent=organizations/*}/inspectTemplatesZG\x12\x45/v2/{parent=organizations/*}/locations/{location_id}/inspectTemplatesZ*\x12(/v2/{parent=projects/*}/inspectTemplatesZB\x12@/v2/{parent=projects/*}/locations/{location_id}/inspectTemplates\x12\xbe\x02\n\x15\x44\x65leteInspectTemplate\x12\x33.google.privacy.dlp.v2.DeleteInspectTemplateRequest\x1a\x16.google.protobuf.Empty"\xd7\x01\x82\xd3\xe4\x93\x02\xd0\x01*-/v2/{name=organizations/*/inspectTemplates/*}Z;*9/v2/{name=organizations/*/locations/*/inspectTemplates/*}Z**(/v2/{name=projects/*/inspectTemplates/*}Z6*4/v2/{name=projects/*/locations/*/inspectTemplates/*}\x12\x87\x03\n\x18\x43reateDeidentifyTemplate\x12\x36.google.privacy.dlp.v2.CreateDeidentifyTemplateRequest\x1a).google.privacy.dlp.v2.DeidentifyTemplate"\x87\x02\x82\xd3\xe4\x93\x02\x80\x02"0/v2/{parent=organizations/*}/deidentifyTemplates:\x01*ZM"H/v2/{parent=organizations/*}/locations/{location_id}/deidentifyTemplates:\x01*Z0"+/v2/{parent=projects/*}/deidentifyTemplates:\x01*ZH"C/v2/{parent=projects/*}/locations/{location_id}/deidentifyTemplates:\x01*\x12\xef\x02\n\x18UpdateDeidentifyTemplate\x12\x36.google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest\x1a).google.privacy.dlp.v2.DeidentifyTemplate"\xef\x01\x82\xd3\xe4\x93\x02\xe8\x01\x32\x30/v2/{name=organizations/*/deidentifyTemplates/*}:\x01*ZA2</v2/{name=organizations/*/locations/*/deidentifyTemplates/*}:\x01*Z02+/v2/{name=projects/*/deidentifyTemplates/*}:\x01*Z<27/v2/{name=projects/*/locations/*/deidentifyTemplates/*}:\x01*\x12\xdd\x02\n\x15GetDeidentifyTemplate\x12\x33.google.privacy.dlp.v2.GetDeidentifyTemplateRequest\x1a).google.privacy.dlp.v2.DeidentifyTemplate"\xe3\x01\x82\xd3\xe4\x93\x02\xdc\x01\x12\x30/v2/{name=organizations/*/deidentifyTemplates/*}Z>\x12</v2/{name=organizations/*/locations/*/deidentifyTemplates/*}Z-\x12+/v2/{name=projects/*/deidentifyTemplates/*}Z9\x12\x37/v2/{name=projects/*/locations/*/deidentifyTemplates/*}\x12\x86\x03\n\x17ListDeidentifyTemplates\x12\x35.google.privacy.dlp.v2.ListDeidentifyTemplatesRequest\x1a\x36.google.privacy.dlp.v2.ListDeidentifyTemplatesResponse"\xfb\x01\x82\xd3\xe4\x93\x02\xf4\x01\x12\x30/v2/{parent=organizations/*}/deidentifyTemplatesZJ\x12H/v2/{parent=organizations/*}/locations/{location_id}/deidentifyTemplatesZ-\x12+/v2/{parent=projects/*}/deidentifyTemplatesZE\x12\x43/v2/{parent=projects/*}/locations/{location_id}/deidentifyTemplates\x12\xd0\x02\n\x18\x44\x65leteDeidentifyTemplate\x12\x36.google.privacy.dlp.v2.DeleteDeidentifyTemplateRequest\x1a\x16.google.protobuf.Empty"\xe3\x01\x82\xd3\xe4\x93\x02\xdc\x01*0/v2/{name=organizations/*/deidentifyTemplates/*}Z>*</v2/{name=organizations/*/locations/*/deidentifyTemplates/*}Z-*+/v2/{name=projects/*/deidentifyTemplates/*}Z9*7/v2/{name=projects/*/locations/*/deidentifyTemplates/*}\x12\xd7\x01\n\x10\x43reateJobTrigger\x12..google.privacy.dlp.v2.CreateJobTriggerRequest\x1a!.google.privacy.dlp.v2.JobTrigger"p\x82\xd3\xe4\x93\x02j"#/v2/{parent=projects/*}/jobTriggers:\x01*Z@";/v2/{parent=projects/*}/locations/{location_id}/jobTriggers:\x01*\x12\xcb\x01\n\x10UpdateJobTrigger\x12..google.privacy.dlp.v2.UpdateJobTriggerRequest\x1a!.google.privacy.dlp.v2.JobTrigger"d\x82\xd3\xe4\x93\x02^2#/v2/{name=projects/*/jobTriggers/*}:\x01*Z42//v2/{name=projects/*/locations/*/jobTriggers/*}:\x01*\x12\xbf\x01\n\rGetJobTrigger\x12+.google.privacy.dlp.v2.GetJobTriggerRequest\x1a!.google.privacy.dlp.v2.JobTrigger"^\x82\xd3\xe4\x93\x02X\x12#/v2/{name=projects/*/jobTriggers/*}Z1\x12//v2/{name=projects/*/locations/*/jobTriggers/*}\x12\xdc\x01\n\x0fListJobTriggers\x12-.google.privacy.dlp.v2.ListJobTriggersRequest\x1a..google.privacy.dlp.v2.ListJobTriggersResponse"j\x82\xd3\xe4\x93\x02\x64\x12#/v2/{parent=projects/*}/jobTriggersZ=\x12;/v2/{parent=projects/*}/locations/{location_id}/jobTriggers\x12\xba\x01\n\x10\x44\x65leteJobTrigger\x12..google.privacy.dlp.v2.DeleteJobTriggerRequest\x1a\x16.google.protobuf.Empty"^\x82\xd3\xe4\x93\x02X*#/v2/{name=projects/*/jobTriggers/*}Z1*//v2/{name=projects/*/locations/*/jobTriggers/*}\x12\xdd\x01\n\x12\x41\x63tivateJobTrigger\x12\x30.google.privacy.dlp.v2.ActivateJobTriggerRequest\x1a\x1d.google.privacy.dlp.v2.DlpJob"v\x82\xd3\xe4\x93\x02p",/v2/{name=projects/*/jobTriggers/*}:activate:\x01*Z="8/v2/{name=projects/*/locations/*/jobTriggers/*}:activate:\x01*\x12\xc3\x01\n\x0c\x43reateDlpJob\x12*.google.privacy.dlp.v2.CreateDlpJobRequest\x1a\x1d.google.privacy.dlp.v2.DlpJob"h\x82\xd3\xe4\x93\x02\x62"\x1f/v2/{parent=projects/*}/dlpJobs:\x01*Z<"7/v2/{parent=projects/*}/locations/{location_id}/dlpJobs:\x01*\x12\xc8\x01\n\x0bListDlpJobs\x12).google.privacy.dlp.v2.ListDlpJobsRequest\x1a*.google.privacy.dlp.v2.ListDlpJobsResponse"b\x82\xd3\xe4\x93\x02\\\x12\x1f/v2/{parent=projects/*}/dlpJobsZ9\x12\x37/v2/{parent=projects/*}/locations/{location_id}/dlpJobs\x12\xab\x01\n\tGetDlpJob\x12\'.google.privacy.dlp.v2.GetDlpJobRequest\x1a\x1d.google.privacy.dlp.v2.DlpJob"V\x82\xd3\xe4\x93\x02P\x12\x1f/v2/{name=projects/*/dlpJobs/*}Z-\x12+/v2/{name=projects/*/locations/*/dlpJobs/*}\x12\xaa\x01\n\x0c\x44\x65leteDlpJob\x12*.google.privacy.dlp.v2.DeleteDlpJobRequest\x1a\x16.google.protobuf.Empty"V\x82\xd3\xe4\x93\x02P*\x1f/v2/{name=projects/*/dlpJobs/*}Z-*+/v2/{name=projects/*/locations/*/dlpJobs/*}\x12\xbe\x01\n\x0c\x43\x61ncelDlpJob\x12*.google.privacy.dlp.v2.CancelDlpJobRequest\x1a\x16.google.protobuf.Empty"j\x82\xd3\xe4\x93\x02\x64"&/v2/{name=projects/*/dlpJobs/*}:cancel:\x01*Z7"2/v2/{name=projects/*/locations/*/dlpJobs/*}:cancel:\x01*\x12\xeb\x02\n\x14\x43reateStoredInfoType\x12\x32.google.privacy.dlp.v2.CreateStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType"\xf7\x01\x82\xd3\xe4\x93\x02\xf0\x01",/v2/{parent=organizations/*}/storedInfoTypes:\x01*ZI"D/v2/{parent=organizations/*}/locations/{location_id}/storedInfoTypes:\x01*Z,"\'/v2/{parent=projects/*}/storedInfoTypes:\x01*ZD"?/v2/{parent=projects/*}/locations/{location_id}/storedInfoTypes:\x01*\x12\xd3\x02\n\x14UpdateStoredInfoType\x12\x32.google.privacy.dlp.v2.UpdateStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType"\xdf\x01\x82\xd3\xe4\x93\x02\xd8\x01\x32,/v2/{name=organizations/*/storedInfoTypes/*}:\x01*Z=28/v2/{name=organizations/*/locations/*/storedInfoTypes/*}:\x01*Z,2\'/v2/{name=projects/*/storedInfoTypes/*}:\x01*Z823/v2/{name=projects/*/locations/*/storedInfoTypes/*}:\x01*\x12\xc1\x02\n\x11GetStoredInfoType\x12/.google.privacy.dlp.v2.GetStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType"\xd3\x01\x82\xd3\xe4\x93\x02\xcc\x01\x12,/v2/{name=organizations/*/storedInfoTypes/*}Z:\x12\x38/v2/{name=organizations/*/locations/*/storedInfoTypes/*}Z)\x12\'/v2/{name=projects/*/storedInfoTypes/*}Z5\x12\x33/v2/{name=projects/*/locations/*/storedInfoTypes/*}\x12\xea\x02\n\x13ListStoredInfoTypes\x12\x31.google.privacy.dlp.v2.ListStoredInfoTypesRequest\x1a\x32.google.privacy.dlp.v2.ListStoredInfoTypesResponse"\xeb\x01\x82\xd3\xe4\x93\x02\xe4\x01\x12,/v2/{parent=organizations/*}/storedInfoTypesZF\x12\x44/v2/{parent=organizations/*}/locations/{location_id}/storedInfoTypesZ)\x12\'/v2/{parent=projects/*}/storedInfoTypesZA\x12?/v2/{parent=projects/*}/locations/{location_id}/storedInfoTypes\x12\xb8\x02\n\x14\x44\x65leteStoredInfoType\x12\x32.google.privacy.dlp.v2.DeleteStoredInfoTypeRequest\x1a\x16.google.protobuf.Empty"\xd3\x01\x82\xd3\xe4\x93\x02\xcc\x01*,/v2/{name=organizations/*/storedInfoTypes/*}Z:*8/v2/{name=organizations/*/locations/*/storedInfoTypes/*}Z)*\'/v2/{name=projects/*/storedInfoTypes/*}Z5*3/v2/{name=projects/*/locations/*/storedInfoTypes/*}\x1a\x46\xca\x41\x12\x64lp.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x8d\x01\n\x19\x63om.google.privacy.dlp.v2B\x08\x44lpProtoP\x01Z8google.golang.org/genproto/googleapis/privacy/dlp/v2;dlp\xaa\x02\x13Google.Cloud.Dlp.V2\xca\x02\x13Google\\Cloud\\Dlp\\V2b\x06proto3'
     ),
     dependencies=[
         google_dot_api_dot_annotations__pb2.DESCRIPTOR,
@@ -83,8 +83,8 @@
     ],
     containing_type=None,
     serialized_options=None,
-    serialized_start=28692,
-    serialized_end=28769,
+    serialized_start=29007,
+    serialized_end=29084,
 )
 _sym_db.RegisterEnumDescriptor(_CONTENTOPTION)
 
@@ -126,8 +126,8 @@
     ],
     containing_type=None,
     serialized_options=None,
-    serialized_start=28772,
-    serialized_end=28913,
+    serialized_start=29087,
+    serialized_end=29228,
 )
 _sym_db.RegisterEnumDescriptor(_MATCHINGTYPE)
 
@@ -154,8 +154,8 @@
     ],
     containing_type=None,
     serialized_options=None,
-    serialized_start=28915,
-    serialized_end=28995,
+    serialized_start=29230,
+    serialized_end=29310,
 )
 _sym_db.RegisterEnumDescriptor(_INFOTYPESUPPORTEDBY)
 
@@ -205,8 +205,8 @@
     ],
     containing_type=None,
     serialized_options=None,
-    serialized_start=28998,
-    serialized_end=29185,
+    serialized_start=29313,
+    serialized_end=29500,
 )
 _sym_db.RegisterEnumDescriptor(_RELATIONALOPERATOR)
 
@@ -237,8 +237,8 @@
     ],
     containing_type=None,
     serialized_options=None,
-    serialized_start=29187,
-    serialized_end=29269,
+    serialized_start=29502,
+    serialized_end=29584,
 )
 _sym_db.RegisterEnumDescriptor(_DLPJOBTYPE)
 
@@ -271,8 +271,8 @@
     ],
     containing_type=None,
     serialized_options=None,
-    serialized_start=29271,
-    serialized_end=29381,
+    serialized_start=29586,
+    serialized_end=29696,
 )
 _sym_db.RegisterEnumDescriptor(_STOREDINFOTYPESTATE)
 
@@ -386,8 +386,8 @@
     ],
     containing_type=None,
     serialized_options=None,
-    serialized_start=5900,
-    serialized_end=6044,
+    serialized_start=5984,
+    serialized_end=6128,
 )
 _sym_db.RegisterEnumDescriptor(_OUTPUTSTORAGECONFIG_OUTPUTSCHEMA)
 
@@ -425,8 +425,8 @@
     ],
     containing_type=None,
     serialized_options=None,
-    serialized_start=15228,
-    serialized_end=15356,
+    serialized_start=15333,
+    serialized_end=15461,
 )
 _sym_db.RegisterEnumDescriptor(_TIMEPARTCONFIG_TIMEPART)
 
@@ -469,8 +469,8 @@
     ],
     containing_type=None,
     serialized_options=None,
-    serialized_start=15889,
-    serialized_end=16040,
+    serialized_start=15994,
+    serialized_end=16145,
 )
 _sym_db.RegisterEnumDescriptor(_CHARSTOIGNORE_COMMONCHARSTOIGNORE)
 
@@ -506,8 +506,8 @@
     ],
     containing_type=None,
     serialized_options=None,
-    serialized_start=16953,
-    serialized_end=17101,
+    serialized_start=17058,
+    serialized_end=17206,
 )
 _sym_db.RegisterEnumDescriptor(_CRYPTOREPLACEFFXFPECONFIG_FFXCOMMONNATIVEALPHABET)
 
@@ -530,8 +530,8 @@
     ],
     containing_type=None,
     serialized_options=None,
-    serialized_start=19044,
-    serialized_end=19104,
+    serialized_start=19149,
+    serialized_end=19209,
 )
 _sym_db.RegisterEnumDescriptor(_RECORDCONDITION_EXPRESSIONS_LOGICALOPERATOR)
 
@@ -557,8 +557,8 @@
     ],
     containing_type=None,
     serialized_options=None,
-    serialized_start=19826,
-    serialized_end=19920,
+    serialized_start=19931,
+    serialized_end=20025,
 )
 _sym_db.RegisterEnumDescriptor(_TRANSFORMATIONSUMMARY_TRANSFORMATIONRESULTCODE)
 
@@ -587,8 +587,8 @@
     ],
     containing_type=None,
     serialized_options=None,
-    serialized_start=21456,
-    serialized_end=21528,
+    serialized_start=21561,
+    serialized_end=21633,
 )
 _sym_db.RegisterEnumDescriptor(_JOBTRIGGER_STATUS)
 
@@ -623,8 +623,8 @@
     ],
     containing_type=None,
     serialized_options=None,
-    serialized_start=25057,
-    serialized_end=25156,
+    serialized_start=25267,
+    serialized_end=25366,
 )
 _sym_db.RegisterEnumDescriptor(_DLPJOB_JOBSTATE)
 
@@ -2239,8 +2239,8 @@
             fields=[],
         )
     ],
-    serialized_start=4097,
-    serialized_end=4265,
+    serialized_start=4118,
+    serialized_end=4286,
 )
 
 _REDACTIMAGEREQUEST = _descriptor.Descriptor(
@@ -2270,10 +2270,28 @@
             ),
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.RedactImageRequest.location_id",
+            index=1,
+            number=8,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
         _descriptor.FieldDescriptor(
             name="inspect_config",
             full_name="google.privacy.dlp.v2.RedactImageRequest.inspect_config",
-            index=1,
+            index=2,
             number=2,
             type=11,
             cpp_type=10,
@@ -2291,7 +2309,7 @@
         _descriptor.FieldDescriptor(
             name="image_redaction_configs",
             full_name="google.privacy.dlp.v2.RedactImageRequest.image_redaction_configs",
-            index=2,
+            index=3,
             number=5,
             type=11,
             cpp_type=10,
@@ -2309,7 +2327,7 @@
         _descriptor.FieldDescriptor(
             name="include_findings",
             full_name="google.privacy.dlp.v2.RedactImageRequest.include_findings",
-            index=3,
+            index=4,
             number=6,
             type=8,
             cpp_type=7,
@@ -2327,7 +2345,7 @@
         _descriptor.FieldDescriptor(
             name="byte_item",
             full_name="google.privacy.dlp.v2.RedactImageRequest.byte_item",
-            index=4,
+            index=5,
             number=7,
             type=11,
             cpp_type=10,
@@ -2352,7 +2370,7 @@
     extension_ranges=[],
     oneofs=[],
     serialized_start=3764,
-    serialized_end=4265,
+    serialized_end=4286,
 )
 
 
@@ -2426,8 +2444,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=4267,
-    serialized_end=4316,
+    serialized_start=4288,
+    serialized_end=4337,
 )
 
 
@@ -2501,8 +2519,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=4319,
-    serialized_end=4450,
+    serialized_start=4340,
+    serialized_end=4471,
 )
 
 
@@ -2623,6 +2641,24 @@
             serialized_options=None,
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.DeidentifyContentRequest.location_id",
+            index=6,
+            number=7,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
     ],
     extensions=[],
     nested_types=[],
@@ -2632,8 +2668,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=4453,
-    serialized_end=4790,
+    serialized_start=4474,
+    serialized_end=4832,
 )
 
 
@@ -2689,8 +2725,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=4793,
-    serialized_end=4935,
+    serialized_start=4835,
+    serialized_end=4977,
 )
 
 
@@ -2811,6 +2847,24 @@
             serialized_options=None,
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.ReidentifyContentRequest.location_id",
+            index=6,
+            number=7,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
     ],
     extensions=[],
     nested_types=[],
@@ -2820,8 +2874,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=4938,
-    serialized_end=5278,
+    serialized_start=4980,
+    serialized_end=5341,
 )
 
 
@@ -2877,8 +2931,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=5281,
-    serialized_end=5423,
+    serialized_start=5344,
+    serialized_end=5486,
 )
 
 
@@ -2963,6 +3017,24 @@
             serialized_options=None,
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.InspectContentRequest.location_id",
+            index=4,
+            number=5,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
     ],
     extensions=[],
     nested_types=[],
@@ -2972,8 +3044,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=5426,
-    serialized_end=5658,
+    serialized_start=5489,
+    serialized_end=5742,
 )
 
 
@@ -3011,8 +3083,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=5660,
-    serialized_end=5738,
+    serialized_start=5744,
+    serialized_end=5822,
 )
 
 
@@ -3076,8 +3148,8 @@
             fields=[],
         )
     ],
-    serialized_start=5741,
-    serialized_end=6052,
+    serialized_start=5825,
+    serialized_end=6136,
 )
 
 
@@ -3133,8 +3205,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=6054,
-    serialized_end=6136,
+    serialized_start=6138,
+    serialized_end=6220,
 )
 
 
@@ -3190,8 +3262,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=6333,
-    serialized_end=6487,
+    serialized_start=6417,
+    serialized_end=6571,
 )
 
 _INSPECTDATASOURCEDETAILS_RESULT = _descriptor.Descriptor(
@@ -3264,8 +3336,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=6489,
-    serialized_end=6616,
+    serialized_start=6573,
+    serialized_end=6700,
 )
 
 _INSPECTDATASOURCEDETAILS = _descriptor.Descriptor(
@@ -3323,8 +3395,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=6139,
-    serialized_end=6616,
+    serialized_start=6223,
+    serialized_end=6700,
 )
 
 
@@ -3416,8 +3488,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=6619,
-    serialized_end=6763,
+    serialized_start=6703,
+    serialized_end=6847,
 )
 
 
@@ -3464,6 +3536,24 @@
             serialized_options=None,
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.ListInfoTypesRequest.location_id",
+            index=2,
+            number=3,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
     ],
     extensions=[],
     nested_types=[],
@@ -3473,8 +3563,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=6765,
-    serialized_end=6826,
+    serialized_start=6849,
+    serialized_end=6931,
 )
 
 
@@ -3512,8 +3602,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=6828,
-    serialized_end=6915,
+    serialized_start=6933,
+    serialized_end=7020,
 )
 
 
@@ -3587,8 +3677,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=6918,
-    serialized_end=7111,
+    serialized_start=7023,
+    serialized_end=7216,
 )
 
 
@@ -3688,8 +3778,8 @@
             fields=[],
         )
     ],
-    serialized_start=7114,
-    serialized_end=7297,
+    serialized_start=7219,
+    serialized_end=7402,
 )
 
 
@@ -3745,8 +3835,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=7514,
-    serialized_end=7603,
+    serialized_start=7619,
+    serialized_end=7708,
 )
 
 _STATISTICALTABLE = _descriptor.Descriptor(
@@ -3819,8 +3909,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=7300,
-    serialized_end=7603,
+    serialized_start=7405,
+    serialized_end=7708,
 )
 
 
@@ -3858,8 +3948,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=8189,
-    serialized_end=8258,
+    serialized_start=8294,
+    serialized_end=8363,
 )
 
 _PRIVACYMETRIC_CATEGORICALSTATSCONFIG = _descriptor.Descriptor(
@@ -3896,8 +3986,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=8260,
-    serialized_end=8331,
+    serialized_start=8365,
+    serialized_end=8436,
 )
 
 _PRIVACYMETRIC_KANONYMITYCONFIG = _descriptor.Descriptor(
@@ -3952,8 +4042,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=8333,
-    serialized_end=8454,
+    serialized_start=8438,
+    serialized_end=8559,
 )
 
 _PRIVACYMETRIC_LDIVERSITYCONFIG = _descriptor.Descriptor(
@@ -4008,8 +4098,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=8457,
-    serialized_end=8587,
+    serialized_start=8562,
+    serialized_end=8692,
 )
 
 _PRIVACYMETRIC_KMAPESTIMATIONCONFIG_TAGGEDFIELD = _descriptor.Descriptor(
@@ -4108,8 +4198,8 @@
             fields=[],
         )
     ],
-    serialized_start=8826,
-    serialized_end=9013,
+    serialized_start=8931,
+    serialized_end=9118,
 )
 
 _PRIVACYMETRIC_KMAPESTIMATIONCONFIG_AUXILIARYTABLE_QUASIIDFIELD = _descriptor.Descriptor(
@@ -4164,8 +4254,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=9253,
-    serialized_end=9334,
+    serialized_start=9358,
+    serialized_end=9439,
 )
 
 _PRIVACYMETRIC_KMAPESTIMATIONCONFIG_AUXILIARYTABLE = _descriptor.Descriptor(
@@ -4238,8 +4328,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=9016,
-    serialized_end=9334,
+    serialized_start=9121,
+    serialized_end=9439,
 )
 
 _PRIVACYMETRIC_KMAPESTIMATIONCONFIG = _descriptor.Descriptor(
@@ -4315,8 +4405,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=8590,
-    serialized_end=9334,
+    serialized_start=8695,
+    serialized_end=9439,
 )
 
 _PRIVACYMETRIC_DELTAPRESENCEESTIMATIONCONFIG = _descriptor.Descriptor(
@@ -4389,8 +4479,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=9337,
-    serialized_end=9507,
+    serialized_start=9442,
+    serialized_end=9612,
 )
 
 _PRIVACYMETRIC = _descriptor.Descriptor(
@@ -4532,8 +4622,8 @@
             fields=[],
         )
     ],
-    serialized_start=7606,
-    serialized_end=9515,
+    serialized_start=7711,
+    serialized_end=9620,
 )
 
 
@@ -4607,8 +4697,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=10349,
-    serialized_end=10524,
+    serialized_start=10454,
+    serialized_end=10629,
 )
 
 _ANALYZEDATASOURCERISKDETAILS_CATEGORICALSTATSRESULT_CATEGORICALSTATSHISTOGRAMBUCKET = _descriptor.Descriptor(
@@ -4717,8 +4807,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=10706,
-    serialized_end=10924,
+    serialized_start=10811,
+    serialized_end=11029,
 )
 
 _ANALYZEDATASOURCERISKDETAILS_CATEGORICALSTATSRESULT = _descriptor.Descriptor(
@@ -4757,8 +4847,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=10527,
-    serialized_end=10924,
+    serialized_start=10632,
+    serialized_end=11029,
 )
 
 _ANALYZEDATASOURCERISKDETAILS_KANONYMITYRESULT_KANONYMITYEQUIVALENCECLASS = _descriptor.Descriptor(
@@ -4813,8 +4903,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=11089,
-    serialized_end=11205,
+    serialized_start=11194,
+    serialized_end=11310,
 )
 
 _ANALYZEDATASOURCERISKDETAILS_KANONYMITYRESULT_KANONYMITYHISTOGRAMBUCKET = _descriptor.Descriptor(
@@ -4923,8 +5013,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=11208,
-    serialized_end=11492,
+    serialized_start=11313,
+    serialized_end=11597,
 )
 
 _ANALYZEDATASOURCERISKDETAILS_KANONYMITYRESULT = _descriptor.Descriptor(
@@ -4964,8 +5054,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=10927,
-    serialized_end=11492,
+    serialized_start=11032,
+    serialized_end=11597,
 )
 
 _ANALYZEDATASOURCERISKDETAILS_LDIVERSITYRESULT_LDIVERSITYEQUIVALENCECLASS = _descriptor.Descriptor(
@@ -5056,8 +5146,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=11666,
-    serialized_end=11890,
+    serialized_start=11771,
+    serialized_end=11995,
 )
 
 _ANALYZEDATASOURCERISKDETAILS_LDIVERSITYRESULT_LDIVERSITYHISTOGRAMBUCKET = _descriptor.Descriptor(
@@ -5166,8 +5256,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=11893,
-    serialized_end=12183,
+    serialized_start=11998,
+    serialized_end=12288,
 )
 
 _ANALYZEDATASOURCERISKDETAILS_LDIVERSITYRESULT = _descriptor.Descriptor(
@@ -5207,8 +5297,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=11495,
-    serialized_end=12183,
+    serialized_start=11600,
+    serialized_end=12288,
 )
 
 _ANALYZEDATASOURCERISKDETAILS_KMAPESTIMATIONRESULT_KMAPESTIMATIONQUASIIDVALUES = _descriptor.Descriptor(
@@ -5263,8 +5353,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=12351,
-    serialized_end=12465,
+    serialized_start=12456,
+    serialized_end=12570,
 )
 
 _ANALYZEDATASOURCERISKDETAILS_KMAPESTIMATIONRESULT_KMAPESTIMATIONHISTOGRAMBUCKET = _descriptor.Descriptor(
@@ -5373,8 +5463,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=12468,
-    serialized_end=12719,
+    serialized_start=12573,
+    serialized_end=12824,
 )
 
 _ANALYZEDATASOURCERISKDETAILS_KMAPESTIMATIONRESULT = _descriptor.Descriptor(
@@ -5414,8 +5504,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=12186,
-    serialized_end=12719,
+    serialized_start=12291,
+    serialized_end=12824,
 )
 
 _ANALYZEDATASOURCERISKDETAILS_DELTAPRESENCEESTIMATIONRESULT_DELTAPRESENCEESTIMATIONQUASIIDVALUES = _descriptor.Descriptor(
@@ -5470,8 +5560,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=12923,
-    serialized_end=13048,
+    serialized_start=13028,
+    serialized_end=13153,
 )
 
 _ANALYZEDATASOURCERISKDETAILS_DELTAPRESENCEESTIMATIONRESULT_DELTAPRESENCEESTIMATIONHISTOGRAMBUCKET = _descriptor.Descriptor(
@@ -5580,8 +5670,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=13051,
-    serialized_end=13334,
+    serialized_start=13156,
+    serialized_end=13439,
 )
 
 _ANALYZEDATASOURCERISKDETAILS_DELTAPRESENCEESTIMATIONRESULT = _descriptor.Descriptor(
@@ -5621,8 +5711,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=12722,
-    serialized_end=13334,
+    serialized_start=12827,
+    serialized_end=13439,
 )
 
 _ANALYZEDATASOURCERISKDETAILS = _descriptor.Descriptor(
@@ -5800,8 +5890,8 @@
             fields=[],
         )
     ],
-    serialized_start=9518,
-    serialized_end=13344,
+    serialized_start=9623,
+    serialized_end=13449,
 )
 
 
@@ -5857,8 +5947,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=13346,
-    serialized_end=13422,
+    serialized_start=13451,
+    serialized_end=13527,
 )
 
 
@@ -6030,8 +6120,8 @@
             fields=[],
         )
     ],
-    serialized_start=13425,
-    serialized_end=13732,
+    serialized_start=13530,
+    serialized_end=13837,
 )
 
 
@@ -6077,8 +6167,8 @@
             fields=[],
         )
     ],
-    serialized_start=13734,
-    serialized_end=13815,
+    serialized_start=13839,
+    serialized_end=13920,
 )
 
 
@@ -6116,8 +6206,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=14007,
-    serialized_end=14041,
+    serialized_start=14112,
+    serialized_end=14146,
 )
 
 _DATETIME = _descriptor.Descriptor(
@@ -6208,8 +6298,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=13818,
-    serialized_end=14041,
+    serialized_start=13923,
+    serialized_end=14146,
 )
 
 
@@ -6273,8 +6363,8 @@
             fields=[],
         )
     ],
-    serialized_start=14044,
-    serialized_end=14245,
+    serialized_start=14149,
+    serialized_end=14350,
 )
 
 
@@ -6500,8 +6590,8 @@
             fields=[],
         )
     ],
-    serialized_start=14248,
-    serialized_end=15133,
+    serialized_start=14353,
+    serialized_end=15238,
 )
 
 
@@ -6539,8 +6629,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=15136,
-    serialized_end=15356,
+    serialized_start=15241,
+    serialized_end=15461,
 )
 
 
@@ -6578,8 +6668,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=15358,
-    serialized_end=15430,
+    serialized_start=15463,
+    serialized_end=15535,
 )
 
 
@@ -6653,8 +6743,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=15433,
-    serialized_end=15625,
+    serialized_start=15538,
+    serialized_end=15730,
 )
 
 
@@ -6692,8 +6782,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=15627,
-    serialized_end=15696,
+    serialized_start=15732,
+    serialized_end=15801,
 )
 
 
@@ -6712,8 +6802,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=15698,
-    serialized_end=15725,
+    serialized_start=15803,
+    serialized_end=15830,
 )
 
 
@@ -6732,8 +6822,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=15727,
-    serialized_end=15741,
+    serialized_start=15832,
+    serialized_end=15846,
 )
 
 
@@ -6797,8 +6887,8 @@
             fields=[],
         )
     ],
-    serialized_start=15744,
-    serialized_end=16054,
+    serialized_start=15849,
+    serialized_end=16159,
 )
 
 
@@ -6890,8 +6980,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=16057,
-    serialized_end=16220,
+    serialized_start=16162,
+    serialized_end=16325,
 )
 
 
@@ -6965,8 +7055,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=16223,
-    serialized_end=16372,
+    serialized_start=16328,
+    serialized_end=16477,
 )
 
 
@@ -7040,8 +7130,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=16459,
-    serialized_end=16610,
+    serialized_start=16564,
+    serialized_end=16715,
 )
 
 _BUCKETINGCONFIG = _descriptor.Descriptor(
@@ -7078,8 +7168,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=16375,
-    serialized_end=16610,
+    serialized_start=16480,
+    serialized_end=16715,
 )
 
 
@@ -7215,8 +7305,8 @@
             fields=[],
         )
     ],
-    serialized_start=16613,
-    serialized_end=17113,
+    serialized_start=16718,
+    serialized_end=17218,
 )
 
 
@@ -7298,8 +7388,8 @@
             fields=[],
         )
     ],
-    serialized_start=17116,
-    serialized_end=17332,
+    serialized_start=17221,
+    serialized_end=17437,
 )
 
 
@@ -7337,8 +7427,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=17334,
-    serialized_end=17368,
+    serialized_start=17439,
+    serialized_end=17473,
 )
 
 
@@ -7376,8 +7466,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=17370,
-    serialized_end=17403,
+    serialized_start=17475,
+    serialized_end=17508,
 )
 
 
@@ -7433,8 +7523,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=17405,
-    serialized_end=17472,
+    serialized_start=17510,
+    serialized_end=17577,
 )
 
 
@@ -7534,8 +7624,8 @@
             fields=[],
         )
     ],
-    serialized_start=17475,
-    serialized_end=17659,
+    serialized_start=17580,
+    serialized_end=17764,
 )
 
 
@@ -7591,8 +7681,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=17786,
-    serialized_end=17945,
+    serialized_start=17891,
+    serialized_end=18050,
 )
 
 _INFOTYPETRANSFORMATIONS = _descriptor.Descriptor(
@@ -7629,8 +7719,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=17662,
-    serialized_end=17945,
+    serialized_start=17767,
+    serialized_end=18050,
 )
 
 
@@ -7730,8 +7820,8 @@
             fields=[],
         )
     ],
-    serialized_start=17948,
-    serialized_end=18263,
+    serialized_start=18053,
+    serialized_end=18368,
 )
 
 
@@ -7787,8 +7877,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=18266,
-    serialized_end=18435,
+    serialized_start=18371,
+    serialized_end=18540,
 )
 
 
@@ -7826,8 +7916,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=18437,
-    serialized_end=18515,
+    serialized_start=18542,
+    serialized_end=18620,
 )
 
 
@@ -7901,8 +7991,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=18611,
-    serialized_end=18775,
+    serialized_start=18716,
+    serialized_end=18880,
 )
 
 _RECORDCONDITION_CONDITIONS = _descriptor.Descriptor(
@@ -7939,8 +8029,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=18777,
-    serialized_end=18859,
+    serialized_start=18882,
+    serialized_end=18964,
 )
 
 _RECORDCONDITION_EXPRESSIONS = _descriptor.Descriptor(
@@ -8003,8 +8093,8 @@
             fields=[],
         )
     ],
-    serialized_start=18862,
-    serialized_end=19112,
+    serialized_start=18967,
+    serialized_end=19217,
 )
 
 _RECORDCONDITION = _descriptor.Descriptor(
@@ -8045,8 +8135,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=18518,
-    serialized_end=19112,
+    serialized_start=18623,
+    serialized_end=19217,
 )
 
 
@@ -8102,8 +8192,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=19115,
-    serialized_end=19246,
+    serialized_start=19220,
+    serialized_end=19351,
 )
 
 
@@ -8177,8 +8267,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=19692,
-    serialized_end=19824,
+    serialized_start=19797,
+    serialized_end=19929,
 )
 
 _TRANSFORMATIONSUMMARY = _descriptor.Descriptor(
@@ -8323,8 +8413,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=19249,
-    serialized_end=19920,
+    serialized_start=19354,
+    serialized_end=20025,
 )
 
 
@@ -8370,8 +8460,8 @@
             fields=[],
         )
     ],
-    serialized_start=19922,
-    serialized_end=20007,
+    serialized_start=20027,
+    serialized_end=20112,
 )
 
 
@@ -8501,8 +8591,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=20010,
-    serialized_end=20409,
+    serialized_start=20115,
+    serialized_end=20514,
 )
 
 
@@ -8632,8 +8722,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=20412,
-    serialized_end=20835,
+    serialized_start=20517,
+    serialized_end=20940,
 )
 
 
@@ -8689,8 +8779,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=20837,
-    serialized_end=20929,
+    serialized_start=20942,
+    serialized_end=21034,
 )
 
 
@@ -8736,8 +8826,8 @@
             fields=[],
         )
     ],
-    serialized_start=21381,
-    serialized_end=21454,
+    serialized_start=21486,
+    serialized_end=21559,
 )
 
 _JOBTRIGGER = _descriptor.Descriptor(
@@ -8946,8 +9036,8 @@
             fields=[],
         )
     ],
-    serialized_start=20932,
-    serialized_end=21617,
+    serialized_start=21037,
+    serialized_end=21722,
 )
 
 
@@ -8985,8 +9075,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=22141,
-    serialized_end=22222,
+    serialized_start=22246,
+    serialized_end=22327,
 )
 
 _ACTION_PUBLISHTOPUBSUB = _descriptor.Descriptor(
@@ -9023,8 +9113,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=22224,
-    serialized_end=22256,
+    serialized_start=22329,
+    serialized_end=22361,
 )
 
 _ACTION_PUBLISHSUMMARYTOCSCC = _descriptor.Descriptor(
@@ -9042,8 +9132,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=22258,
-    serialized_end=22280,
+    serialized_start=22363,
+    serialized_end=22385,
 )
 
 _ACTION_PUBLISHFINDINGSTOCLOUDDATACATALOG = _descriptor.Descriptor(
@@ -9061,8 +9151,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=22282,
-    serialized_end=22317,
+    serialized_start=22387,
+    serialized_end=22422,
 )
 
 _ACTION_JOBNOTIFICATIONEMAILS = _descriptor.Descriptor(
@@ -9080,8 +9170,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=22319,
-    serialized_end=22342,
+    serialized_start=22424,
+    serialized_end=22447,
 )
 
 _ACTION_PUBLISHTOSTACKDRIVER = _descriptor.Descriptor(
@@ -9099,8 +9189,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=22344,
-    serialized_end=22366,
+    serialized_start=22449,
+    serialized_end=22471,
 )
 
 _ACTION = _descriptor.Descriptor(
@@ -9242,8 +9332,8 @@
             fields=[],
         )
     ],
-    serialized_start=21620,
-    serialized_end=22376,
+    serialized_start=21725,
+    serialized_end=22481,
 )
 
 
@@ -9310,6 +9400,24 @@
             serialized_options=None,
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.CreateInspectTemplateRequest.location_id",
+            index=3,
+            number=4,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
     ],
     extensions=[],
     nested_types=[],
@@ -9319,8 +9427,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=22379,
-    serialized_end=22556,
+    serialized_start=22484,
+    serialized_end=22682,
 )
 
 
@@ -9396,8 +9504,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=22559,
-    serialized_end=22762,
+    serialized_start=22685,
+    serialized_end=22888,
 )
 
 
@@ -9437,8 +9545,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=22764,
-    serialized_end=22849,
+    serialized_start=22890,
+    serialized_end=22975,
 )
 
 
@@ -9523,6 +9631,24 @@
             serialized_options=None,
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.ListInspectTemplatesRequest.location_id",
+            index=4,
+            number=5,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
     ],
     extensions=[],
     nested_types=[],
@@ -9532,8 +9658,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=22852,
-    serialized_end=22998,
+    serialized_start=22978,
+    serialized_end=23145,
 )
 
 
@@ -9589,8 +9715,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=23000,
-    serialized_end=23122,
+    serialized_start=23147,
+    serialized_end=23269,
 )
 
 
@@ -9630,8 +9756,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=23124,
-    serialized_end=23212,
+    serialized_start=23271,
+    serialized_end=23359,
 )
 
 
@@ -9698,6 +9824,24 @@
             serialized_options=None,
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.CreateJobTriggerRequest.location_id",
+            index=3,
+            number=4,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
     ],
     extensions=[],
     nested_types=[],
@@ -9707,8 +9851,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=23215,
-    serialized_end=23385,
+    serialized_start=23362,
+    serialized_end=23553,
 )
 
 
@@ -9748,8 +9892,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=23387,
-    serialized_end=23467,
+    serialized_start=23555,
+    serialized_end=23635,
 )
 
 
@@ -9825,8 +9969,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=23470,
-    serialized_end=23653,
+    serialized_start=23638,
+    serialized_end=23821,
 )
 
 
@@ -9866,8 +10010,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=23655,
-    serialized_end=23730,
+    serialized_start=23823,
+    serialized_end=23898,
 )
 
 
@@ -9952,6 +10096,24 @@
             serialized_options=None,
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.CreateDlpJobRequest.location_id",
+            index=4,
+            number=5,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
     ],
     extensions=[],
     nested_types=[],
@@ -9969,8 +10131,8 @@
             fields=[],
         )
     ],
-    serialized_start=23733,
-    serialized_end=23976,
+    serialized_start=23901,
+    serialized_end=24165,
 )
 
 
@@ -10073,6 +10235,24 @@
             serialized_options=None,
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.ListJobTriggersRequest.location_id",
+            index=5,
+            number=7,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
     ],
     extensions=[],
     nested_types=[],
@@ -10082,8 +10262,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=23979,
-    serialized_end=24145,
+    serialized_start=24168,
+    serialized_end=24355,
 )
 
 
@@ -10139,8 +10319,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=24147,
-    serialized_end=24254,
+    serialized_start=24357,
+    serialized_end=24464,
 )
 
 
@@ -10180,8 +10360,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=24256,
-    serialized_end=24334,
+    serialized_start=24466,
+    serialized_end=24544,
 )
 
 
@@ -10273,8 +10453,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=24337,
-    serialized_end=24558,
+    serialized_start=24547,
+    serialized_end=24768,
 )
 
 
@@ -10484,8 +10664,8 @@
             fields=[],
         )
     ],
-    serialized_start=24561,
-    serialized_end=25237,
+    serialized_start=24771,
+    serialized_end=25447,
 )
 
 
@@ -10523,8 +10703,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=25239,
-    serialized_end=25306,
+    serialized_start=25449,
+    serialized_end=25516,
 )
 
 
@@ -10645,6 +10825,24 @@
             serialized_options=None,
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.ListDlpJobsRequest.location_id",
+            index=6,
+            number=7,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
     ],
     extensions=[],
     nested_types=[],
@@ -10654,8 +10852,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=25309,
-    serialized_end=25520,
+    serialized_start=25519,
+    serialized_end=25751,
 )
 
 
@@ -10711,8 +10909,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=25522,
-    serialized_end=25613,
+    serialized_start=25753,
+    serialized_end=25844,
 )
 
 
@@ -10750,8 +10948,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=25615,
-    serialized_end=25685,
+    serialized_start=25846,
+    serialized_end=25916,
 )
 
 
@@ -10789,8 +10987,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=25687,
-    serialized_end=25757,
+    serialized_start=25918,
+    serialized_end=25988,
 )
 
 
@@ -10857,6 +11055,24 @@
             serialized_options=None,
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.CreateDeidentifyTemplateRequest.location_id",
+            index=3,
+            number=4,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
     ],
     extensions=[],
     nested_types=[],
@@ -10866,8 +11082,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=25760,
-    serialized_end=25949,
+    serialized_start=25991,
+    serialized_end=26201,
 )
 
 
@@ -10943,8 +11159,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=25952,
-    serialized_end=26167,
+    serialized_start=26204,
+    serialized_end=26419,
 )
 
 
@@ -10984,8 +11200,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=26169,
-    serialized_end=26260,
+    serialized_start=26421,
+    serialized_end=26512,
 )
 
 
@@ -11070,6 +11286,24 @@
             serialized_options=None,
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.ListDeidentifyTemplatesRequest.location_id",
+            index=4,
+            number=5,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
     ],
     extensions=[],
     nested_types=[],
@@ -11079,8 +11313,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=26263,
-    serialized_end=26415,
+    serialized_start=26515,
+    serialized_end=26688,
 )
 
 
@@ -11136,8 +11370,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=26418,
-    serialized_end=26549,
+    serialized_start=26691,
+    serialized_end=26822,
 )
 
 
@@ -11177,8 +11411,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=26551,
-    serialized_end=26645,
+    serialized_start=26824,
+    serialized_end=26918,
 )
 
 
@@ -11260,8 +11494,8 @@
             fields=[],
         )
     ],
-    serialized_start=26648,
-    serialized_end=26892,
+    serialized_start=26921,
+    serialized_end=27165,
 )
 
 
@@ -11299,8 +11533,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=26894,
-    serialized_end=26950,
+    serialized_start=27167,
+    serialized_end=27223,
 )
 
 
@@ -11382,8 +11616,8 @@
             fields=[],
         )
     ],
-    serialized_start=26953,
-    serialized_end=27113,
+    serialized_start=27226,
+    serialized_end=27386,
 )
 
 
@@ -11429,8 +11663,8 @@
             fields=[],
         )
     ],
-    serialized_start=27115,
-    serialized_end=27230,
+    serialized_start=27388,
+    serialized_end=27503,
 )
 
 
@@ -11540,8 +11774,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=27233,
-    serialized_end=27530,
+    serialized_start=27506,
+    serialized_end=27803,
 )
 
 
@@ -11617,8 +11851,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=27533,
-    serialized_end=27868,
+    serialized_start=27806,
+    serialized_end=28141,
 )
 
 
@@ -11685,6 +11919,24 @@
             serialized_options=None,
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.CreateStoredInfoTypeRequest.location_id",
+            index=3,
+            number=4,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
     ],
     extensions=[],
     nested_types=[],
@@ -11694,8 +11946,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=27871,
-    serialized_end=28049,
+    serialized_start=28144,
+    serialized_end=28343,
 )
 
 
@@ -11771,8 +12023,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=28052,
-    serialized_end=28248,
+    serialized_start=28346,
+    serialized_end=28542,
 )
 
 
@@ -11812,8 +12064,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=28250,
-    serialized_end=28333,
+    serialized_start=28544,
+    serialized_end=28627,
 )
 
 
@@ -11898,6 +12150,24 @@
             serialized_options=None,
             file=DESCRIPTOR,
         ),
+        _descriptor.FieldDescriptor(
+            name="location_id",
+            full_name="google.privacy.dlp.v2.ListStoredInfoTypesRequest.location_id",
+            index=4,
+            number=5,
+            type=9,
+            cpp_type=9,
+            label=1,
+            has_default_value=False,
+            default_value=_b("").decode("utf-8"),
+            message_type=None,
+            enum_type=None,
+            containing_type=None,
+            is_extension=False,
+            extension_scope=None,
+            serialized_options=None,
+            file=DESCRIPTOR,
+        ),
     ],
     extensions=[],
     nested_types=[],
@@ -11907,8 +12177,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=28336,
-    serialized_end=28480,
+    serialized_start=28630,
+    serialized_end=28795,
 )
 
 
@@ -11964,8 +12234,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=28482,
-    serialized_end=28602,
+    serialized_start=28797,
+    serialized_end=28917,
 )
 
 
@@ -12005,8 +12275,8 @@
     syntax="proto3",
     extension_ranges=[],
     oneofs=[],
-    serialized_start=28604,
-    serialized_end=28690,
+    serialized_start=28919,
+    serialized_end=29005,
 )
 
 _EXCLUDEINFOTYPES.fields_by_name[
@@ -14022,6 +14292,9 @@
   Attributes:
       parent:
           The parent resource name, for example projects/my-project-id.
+      location_id:
+          The geographic location to process the request. Reserved for
+          future extensions.
       inspect_config:
           Configuration for the inspector.
       image_redaction_configs:
@@ -14126,6 +14399,9 @@
           their corresponding fields in the template. Repeated fields
           are appended. Singular sub-messages and groups are recursively
           merged.
+      location_id:
+          The geographic location to process de-identification. Reserved
+          for future extensions.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.DeidentifyContentRequest)
     ),
@@ -14193,6 +14469,9 @@
           this request will replace their corresponding fields in the
           template. Repeated fields are appended. Singular sub-messages
           and groups are recursively merged.
+      location_id:
+          The geographic location to process content reidentification.
+          Reserved for future extensions.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.ReidentifyContentRequest)
     ),
@@ -14244,6 +14523,9 @@
           their corresponding fields in the template. Repeated fields
           are appended. Singular sub-messages and groups are recursively
           merged.
+      location_id:
+          The geographic location to process content inspection.
+          Reserved for future extensions.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.InspectContentRequest)
     ),
@@ -14429,6 +14711,9 @@
       filter:
           Optional filter to only return infoTypes supported by certain
           parts of the API. Defaults to supported\_by=INSPECT.
+      location_id:
+          The geographic location to list info types. Reserved for
+          future extensions.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.ListInfoTypesRequest)
     ),
@@ -15811,8 +16096,8 @@
           past. [Required]
       context:
           Points to the field that contains the context, for example, an
-          entity id. If set, must also set method. If set, shift will be
-          consistent for the given context.
+          entity id. If set, must also set cryptoKey. If set, shift will
+          be consistent for the given context.
       method:
           Method for calculating shift that takes context into
           consideration. If set, must also set context. Can only be
@@ -15820,7 +16105,8 @@
       crypto_key:
           Causes the shift to be computed based on this key and the
           context. This results in the same shift for the same context
-          and crypto\_key.
+          and crypto\_key. If set, must also set context. Can only be
+          applied to table items.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.DateShiftConfig)
     ),
@@ -16151,10 +16437,10 @@
       description:
           Short description (max 256 chars).
       create_time:
-          The creation timestamp of a inspectTemplate, output only
+          The creation timestamp of an inspectTemplate, output only
           field.
       update_time:
-          The last update timestamp of a inspectTemplate, output only
+          The last update timestamp of an inspectTemplate, output only
           field.
       inspect_config:
           The core content of the template. Configuration of the
@@ -16171,9 +16457,8 @@
     dict(
         DESCRIPTOR=_DEIDENTIFYTEMPLATE,
         __module__="google.cloud.dlp_v2.proto.dlp_pb2",
-        __doc__="""The DeidentifyTemplates contains instructions on how to deidentify
-  content. See https://cloud.google.com/dlp/docs/concepts-templates to
-  learn more.
+        __doc__="""DeidentifyTemplates contains instructions on how to de-identify content.
+  See https://cloud.google.com/dlp/docs/concepts-templates to learn more.
   
   
   Attributes:
@@ -16187,10 +16472,10 @@
       description:
           Short description (max 256 chars).
       create_time:
-          The creation timestamp of a inspectTemplate, output only
+          The creation timestamp of an inspectTemplate, output only
           field.
       update_time:
-          The last update timestamp of a inspectTemplate, output only
+          The last update timestamp of an inspectTemplate, output only
           field.
       deidentify_config:
           ///////////// // The core content of the template // ///////////////
@@ -16435,6 +16720,9 @@
           numbers, and hyphens; that is, it must match the regular
           expression: ``[a-zA-Z\\d-_]+``. The maximum length is 100
           characters. Can be empty to allow the system to generate one.
+      location_id:
+          The geographic location to store the inspection template.
+          Reserved for future extensions.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.CreateInspectTemplateRequest)
     ),
@@ -16516,6 +16804,10 @@
           ``update_time``: corresponds to time the template was last
           updated. -  ``name``: corresponds to template's name. -
           ``display_name``: corresponds to template's display name.
+      location_id:
+          The geographic location where inspection templates will be
+          retrieved from. Use ``-`` for all locations. Reserved for
+          future extensions.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.ListInspectTemplatesRequest)
     ),
@@ -16585,6 +16877,9 @@
           numbers, and hyphens; that is, it must match the regular
           expression: ``[a-zA-Z\\d-_]+``. The maximum length is 100
           characters. Can be empty to allow the system to generate one.
+      location_id:
+          The geographic location to store the job trigger. Reserved for
+          future extensions.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.CreateJobTriggerRequest)
     ),
@@ -16676,6 +16971,9 @@
           numbers, and hyphens; that is, it must match the regular
           expression: ``[a-zA-Z\\d-_]+``. The maximum length is 100
           characters. Can be empty to allow the system to generate one.
+      location_id:
+          The geographic location to store and process the job. Reserved
+          for future extensions.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.CreateDlpJobRequest)
     ),
@@ -16734,6 +17032,10 @@
           state =    HEALTHY) -  last\_run\_time >
           "2017-12-12T00:00:00+00:00"  The length of this field should
           be no more than 500 characters.
+      location_id:
+          The geographic location where job triggers will be retrieved
+          from. Use ``-`` for all locations. Reserved for future
+          extensions.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.ListJobTriggersRequest)
     ),
@@ -16912,6 +17214,9 @@
           corresponds to time the job was created. -  ``end_time``:
           corresponds to time the job ended. -  ``name``: corresponds to
           job's name. -  ``state``: corresponds to ``state``
+      location_id:
+          The geographic location where jobs will be retrieved from. Use
+          ``-`` for all locations. Reserved for future extensions.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.ListDlpJobsRequest)
     ),
@@ -16995,6 +17300,9 @@
           numbers, and hyphens; that is, it must match the regular
           expression: ``[a-zA-Z\\d-_]+``. The maximum length is 100
           characters. Can be empty to allow the system to generate one.
+      location_id:
+          The geographic location to store the deidentification
+          template. Reserved for future extensions.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.CreateDeidentifyTemplateRequest)
     ),
@@ -17076,6 +17384,10 @@
           ``update_time``: corresponds to time the template was last
           updated. -  ``name``: corresponds to template's name. -
           ``display_name``: corresponds to template's display name.
+      location_id:
+          The geographic location where deidentifications templates will
+          be retrieved from. Use ``-`` for all locations. Reserved for
+          future extensions.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.ListDeidentifyTemplatesRequest)
     ),
@@ -17181,7 +17493,9 @@
     dict(
         DESCRIPTOR=_STOREDINFOTYPECONFIG,
         __module__="google.cloud.dlp_v2.proto.dlp_pb2",
-        __doc__="""Configuration for a StoredInfoType.
+        __doc__="""Configuration for stored infoTypes. All fields and subfield are provided
+  by the user. For more information, see
+  https://cloud.google.com/dlp/docs/creating-custom-infotypes.
   
   
   Attributes:
@@ -17303,6 +17617,9 @@
           regular expression: ``[a-zA-Z\\d-_]+``. The maximum length is
           100 characters. Can be empty to allow the system to generate
           one.
+      location_id:
+          The geographic location to store the stored infoType. Reserved
+          for future extensions.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.CreateStoredInfoTypeRequest)
     ),
@@ -17386,6 +17703,10 @@
           was created. -  ``state``: corresponds to the state of the
           resource. -  ``name``: corresponds to resource name. -
           ``display_name``: corresponds to info type's display name.
+      location_id:
+          The geographic location where stored infoTypes will be
+          retrieved from. Use ``-`` for all locations. Reserved for
+          future extensions.
   """,
         # @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.ListStoredInfoTypesRequest)
     ),
@@ -17481,8 +17802,8 @@
     serialized_options=_b(
         "\312A\022dlp.googleapis.com\322A.https://www.googleapis.com/auth/cloud-platform"
     ),
-    serialized_start=29384,
-    serialized_end=35162,
+    serialized_start=29699,
+    serialized_end=38408,
     methods=[
         _descriptor.MethodDescriptor(
             name="InspectContent",
@@ -17492,7 +17813,7 @@
             input_type=_INSPECTCONTENTREQUEST,
             output_type=_INSPECTCONTENTRESPONSE,
             serialized_options=_b(
-                "\202\323\344\223\002,\"'/v2/{parent=projects/*}/content:inspect:\001*"
+                '\202\323\344\223\002r"\'/v2/{parent=projects/*}/content:inspect:\001*ZD"?/v2/{parent=projects/*}/locations/{location_id}/content:inspect:\001*'
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17503,7 +17824,7 @@
             input_type=_REDACTIMAGEREQUEST,
             output_type=_REDACTIMAGERESPONSE,
             serialized_options=_b(
-                '\202\323\344\223\002)"$/v2/{parent=projects/*}/image:redact:\001*'
+                '\202\323\344\223\002l"$/v2/{parent=projects/*}/image:redact:\001*ZA"</v2/{parent=projects/*}/locations/{location_id}/image:redact:\001*'
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17514,7 +17835,7 @@
             input_type=_DEIDENTIFYCONTENTREQUEST,
             output_type=_DEIDENTIFYCONTENTRESPONSE,
             serialized_options=_b(
-                '\202\323\344\223\002/"*/v2/{parent=projects/*}/content:deidentify:\001*'
+                '\202\323\344\223\002x"*/v2/{parent=projects/*}/content:deidentify:\001*ZG"B/v2/{parent=projects/*}/locations/{location_id}/content:deidentify:\001*'
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17525,7 +17846,7 @@
             input_type=_REIDENTIFYCONTENTREQUEST,
             output_type=_REIDENTIFYCONTENTRESPONSE,
             serialized_options=_b(
-                '\202\323\344\223\002/"*/v2/{parent=projects/*}/content:reidentify:\001*'
+                '\202\323\344\223\002x"*/v2/{parent=projects/*}/content:reidentify:\001*ZG"B/v2/{parent=projects/*}/locations/{location_id}/content:reidentify:\001*'
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17535,7 +17856,9 @@
             containing_service=None,
             input_type=_LISTINFOTYPESREQUEST,
             output_type=_LISTINFOTYPESRESPONSE,
-            serialized_options=_b("\202\323\344\223\002\017\022\r/v2/infoTypes"),
+            serialized_options=_b(
+                "\202\323\344\223\0028\022\r/v2/infoTypesZ'\022%/v2/locations/{location_id}/infoTypes"
+            ),
         ),
         _descriptor.MethodDescriptor(
             name="CreateInspectTemplate",
@@ -17545,7 +17868,7 @@
             input_type=_CREATEINSPECTTEMPLATEREQUEST,
             output_type=_INSPECTTEMPLATE,
             serialized_options=_b(
-                '\202\323\344\223\002a"-/v2/{parent=organizations/*}/inspectTemplates:\001*Z-"(/v2/{parent=projects/*}/inspectTemplates:\001*'
+                '\202\323\344\223\002\364\001"-/v2/{parent=organizations/*}/inspectTemplates:\001*ZJ"E/v2/{parent=organizations/*}/locations/{location_id}/inspectTemplates:\001*Z-"(/v2/{parent=projects/*}/inspectTemplates:\001*ZE"@/v2/{parent=projects/*}/locations/{location_id}/inspectTemplates:\001*'
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17556,7 +17879,7 @@
             input_type=_UPDATEINSPECTTEMPLATEREQUEST,
             output_type=_INSPECTTEMPLATE,
             serialized_options=_b(
-                "\202\323\344\223\002a2-/v2/{name=organizations/*/inspectTemplates/*}:\001*Z-2(/v2/{name=projects/*/inspectTemplates/*}:\001*"
+                "\202\323\344\223\002\334\0012-/v2/{name=organizations/*/inspectTemplates/*}:\001*Z>29/v2/{name=organizations/*/locations/*/inspectTemplates/*}:\001*Z-2(/v2/{name=projects/*/inspectTemplates/*}:\001*Z924/v2/{name=projects/*/locations/*/inspectTemplates/*}:\001*"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17567,7 +17890,7 @@
             input_type=_GETINSPECTTEMPLATEREQUEST,
             output_type=_INSPECTTEMPLATE,
             serialized_options=_b(
-                "\202\323\344\223\002[\022-/v2/{name=organizations/*/inspectTemplates/*}Z*\022(/v2/{name=projects/*/inspectTemplates/*}"
+                "\202\323\344\223\002\320\001\022-/v2/{name=organizations/*/inspectTemplates/*}Z;\0229/v2/{name=organizations/*/locations/*/inspectTemplates/*}Z*\022(/v2/{name=projects/*/inspectTemplates/*}Z6\0224/v2/{name=projects/*/locations/*/inspectTemplates/*}"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17578,7 +17901,7 @@
             input_type=_LISTINSPECTTEMPLATESREQUEST,
             output_type=_LISTINSPECTTEMPLATESRESPONSE,
             serialized_options=_b(
-                "\202\323\344\223\002[\022-/v2/{parent=organizations/*}/inspectTemplatesZ*\022(/v2/{parent=projects/*}/inspectTemplates"
+                "\202\323\344\223\002\350\001\022-/v2/{parent=organizations/*}/inspectTemplatesZG\022E/v2/{parent=organizations/*}/locations/{location_id}/inspectTemplatesZ*\022(/v2/{parent=projects/*}/inspectTemplatesZB\022@/v2/{parent=projects/*}/locations/{location_id}/inspectTemplates"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17589,7 +17912,7 @@
             input_type=_DELETEINSPECTTEMPLATEREQUEST,
             output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
             serialized_options=_b(
-                "\202\323\344\223\002[*-/v2/{name=organizations/*/inspectTemplates/*}Z**(/v2/{name=projects/*/inspectTemplates/*}"
+                "\202\323\344\223\002\320\001*-/v2/{name=organizations/*/inspectTemplates/*}Z;*9/v2/{name=organizations/*/locations/*/inspectTemplates/*}Z**(/v2/{name=projects/*/inspectTemplates/*}Z6*4/v2/{name=projects/*/locations/*/inspectTemplates/*}"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17600,7 +17923,7 @@
             input_type=_CREATEDEIDENTIFYTEMPLATEREQUEST,
             output_type=_DEIDENTIFYTEMPLATE,
             serialized_options=_b(
-                '\202\323\344\223\002g"0/v2/{parent=organizations/*}/deidentifyTemplates:\001*Z0"+/v2/{parent=projects/*}/deidentifyTemplates:\001*'
+                '\202\323\344\223\002\200\002"0/v2/{parent=organizations/*}/deidentifyTemplates:\001*ZM"H/v2/{parent=organizations/*}/locations/{location_id}/deidentifyTemplates:\001*Z0"+/v2/{parent=projects/*}/deidentifyTemplates:\001*ZH"C/v2/{parent=projects/*}/locations/{location_id}/deidentifyTemplates:\001*'
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17611,7 +17934,7 @@
             input_type=_UPDATEDEIDENTIFYTEMPLATEREQUEST,
             output_type=_DEIDENTIFYTEMPLATE,
             serialized_options=_b(
-                "\202\323\344\223\002g20/v2/{name=organizations/*/deidentifyTemplates/*}:\001*Z02+/v2/{name=projects/*/deidentifyTemplates/*}:\001*"
+                "\202\323\344\223\002\350\00120/v2/{name=organizations/*/deidentifyTemplates/*}:\001*ZA2</v2/{name=organizations/*/locations/*/deidentifyTemplates/*}:\001*Z02+/v2/{name=projects/*/deidentifyTemplates/*}:\001*Z<27/v2/{name=projects/*/locations/*/deidentifyTemplates/*}:\001*"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17622,7 +17945,7 @@
             input_type=_GETDEIDENTIFYTEMPLATEREQUEST,
             output_type=_DEIDENTIFYTEMPLATE,
             serialized_options=_b(
-                "\202\323\344\223\002a\0220/v2/{name=organizations/*/deidentifyTemplates/*}Z-\022+/v2/{name=projects/*/deidentifyTemplates/*}"
+                "\202\323\344\223\002\334\001\0220/v2/{name=organizations/*/deidentifyTemplates/*}Z>\022</v2/{name=organizations/*/locations/*/deidentifyTemplates/*}Z-\022+/v2/{name=projects/*/deidentifyTemplates/*}Z9\0227/v2/{name=projects/*/locations/*/deidentifyTemplates/*}"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17633,7 +17956,7 @@
             input_type=_LISTDEIDENTIFYTEMPLATESREQUEST,
             output_type=_LISTDEIDENTIFYTEMPLATESRESPONSE,
             serialized_options=_b(
-                "\202\323\344\223\002a\0220/v2/{parent=organizations/*}/deidentifyTemplatesZ-\022+/v2/{parent=projects/*}/deidentifyTemplates"
+                "\202\323\344\223\002\364\001\0220/v2/{parent=organizations/*}/deidentifyTemplatesZJ\022H/v2/{parent=organizations/*}/locations/{location_id}/deidentifyTemplatesZ-\022+/v2/{parent=projects/*}/deidentifyTemplatesZE\022C/v2/{parent=projects/*}/locations/{location_id}/deidentifyTemplates"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17644,7 +17967,7 @@
             input_type=_DELETEDEIDENTIFYTEMPLATEREQUEST,
             output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
             serialized_options=_b(
-                "\202\323\344\223\002a*0/v2/{name=organizations/*/deidentifyTemplates/*}Z-*+/v2/{name=projects/*/deidentifyTemplates/*}"
+                "\202\323\344\223\002\334\001*0/v2/{name=organizations/*/deidentifyTemplates/*}Z>*</v2/{name=organizations/*/locations/*/deidentifyTemplates/*}Z-*+/v2/{name=projects/*/deidentifyTemplates/*}Z9*7/v2/{name=projects/*/locations/*/deidentifyTemplates/*}"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17655,7 +17978,7 @@
             input_type=_CREATEJOBTRIGGERREQUEST,
             output_type=_JOBTRIGGER,
             serialized_options=_b(
-                '\202\323\344\223\002("#/v2/{parent=projects/*}/jobTriggers:\001*'
+                '\202\323\344\223\002j"#/v2/{parent=projects/*}/jobTriggers:\001*Z@";/v2/{parent=projects/*}/locations/{location_id}/jobTriggers:\001*'
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17666,7 +17989,7 @@
             input_type=_UPDATEJOBTRIGGERREQUEST,
             output_type=_JOBTRIGGER,
             serialized_options=_b(
-                "\202\323\344\223\002(2#/v2/{name=projects/*/jobTriggers/*}:\001*"
+                "\202\323\344\223\002^2#/v2/{name=projects/*/jobTriggers/*}:\001*Z42//v2/{name=projects/*/locations/*/jobTriggers/*}:\001*"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17677,7 +18000,7 @@
             input_type=_GETJOBTRIGGERREQUEST,
             output_type=_JOBTRIGGER,
             serialized_options=_b(
-                "\202\323\344\223\002%\022#/v2/{name=projects/*/jobTriggers/*}"
+                "\202\323\344\223\002X\022#/v2/{name=projects/*/jobTriggers/*}Z1\022//v2/{name=projects/*/locations/*/jobTriggers/*}"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17688,7 +18011,7 @@
             input_type=_LISTJOBTRIGGERSREQUEST,
             output_type=_LISTJOBTRIGGERSRESPONSE,
             serialized_options=_b(
-                "\202\323\344\223\002%\022#/v2/{parent=projects/*}/jobTriggers"
+                "\202\323\344\223\002d\022#/v2/{parent=projects/*}/jobTriggersZ=\022;/v2/{parent=projects/*}/locations/{location_id}/jobTriggers"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17699,7 +18022,7 @@
             input_type=_DELETEJOBTRIGGERREQUEST,
             output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
             serialized_options=_b(
-                "\202\323\344\223\002%*#/v2/{name=projects/*/jobTriggers/*}"
+                "\202\323\344\223\002X*#/v2/{name=projects/*/jobTriggers/*}Z1*//v2/{name=projects/*/locations/*/jobTriggers/*}"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17710,7 +18033,7 @@
             input_type=_ACTIVATEJOBTRIGGERREQUEST,
             output_type=_DLPJOB,
             serialized_options=_b(
-                '\202\323\344\223\0021",/v2/{name=projects/*/jobTriggers/*}:activate:\001*'
+                '\202\323\344\223\002p",/v2/{name=projects/*/jobTriggers/*}:activate:\001*Z="8/v2/{name=projects/*/locations/*/jobTriggers/*}:activate:\001*'
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17721,7 +18044,7 @@
             input_type=_CREATEDLPJOBREQUEST,
             output_type=_DLPJOB,
             serialized_options=_b(
-                '\202\323\344\223\002$"\037/v2/{parent=projects/*}/dlpJobs:\001*'
+                '\202\323\344\223\002b"\037/v2/{parent=projects/*}/dlpJobs:\001*Z<"7/v2/{parent=projects/*}/locations/{location_id}/dlpJobs:\001*'
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17732,7 +18055,7 @@
             input_type=_LISTDLPJOBSREQUEST,
             output_type=_LISTDLPJOBSRESPONSE,
             serialized_options=_b(
-                "\202\323\344\223\002!\022\037/v2/{parent=projects/*}/dlpJobs"
+                "\202\323\344\223\002\\\022\037/v2/{parent=projects/*}/dlpJobsZ9\0227/v2/{parent=projects/*}/locations/{location_id}/dlpJobs"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17743,7 +18066,7 @@
             input_type=_GETDLPJOBREQUEST,
             output_type=_DLPJOB,
             serialized_options=_b(
-                "\202\323\344\223\002!\022\037/v2/{name=projects/*/dlpJobs/*}"
+                "\202\323\344\223\002P\022\037/v2/{name=projects/*/dlpJobs/*}Z-\022+/v2/{name=projects/*/locations/*/dlpJobs/*}"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17754,7 +18077,7 @@
             input_type=_DELETEDLPJOBREQUEST,
             output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
             serialized_options=_b(
-                "\202\323\344\223\002!*\037/v2/{name=projects/*/dlpJobs/*}"
+                "\202\323\344\223\002P*\037/v2/{name=projects/*/dlpJobs/*}Z-*+/v2/{name=projects/*/locations/*/dlpJobs/*}"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17765,7 +18088,7 @@
             input_type=_CANCELDLPJOBREQUEST,
             output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
             serialized_options=_b(
-                '\202\323\344\223\002+"&/v2/{name=projects/*/dlpJobs/*}:cancel:\001*'
+                '\202\323\344\223\002d"&/v2/{name=projects/*/dlpJobs/*}:cancel:\001*Z7"2/v2/{name=projects/*/locations/*/dlpJobs/*}:cancel:\001*'
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17776,7 +18099,7 @@
             input_type=_CREATESTOREDINFOTYPEREQUEST,
             output_type=_STOREDINFOTYPE,
             serialized_options=_b(
-                '\202\323\344\223\002_",/v2/{parent=organizations/*}/storedInfoTypes:\001*Z,"\'/v2/{parent=projects/*}/storedInfoTypes:\001*'
+                '\202\323\344\223\002\360\001",/v2/{parent=organizations/*}/storedInfoTypes:\001*ZI"D/v2/{parent=organizations/*}/locations/{location_id}/storedInfoTypes:\001*Z,"\'/v2/{parent=projects/*}/storedInfoTypes:\001*ZD"?/v2/{parent=projects/*}/locations/{location_id}/storedInfoTypes:\001*'
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17787,7 +18110,7 @@
             input_type=_UPDATESTOREDINFOTYPEREQUEST,
             output_type=_STOREDINFOTYPE,
             serialized_options=_b(
-                "\202\323\344\223\002_2,/v2/{name=organizations/*/storedInfoTypes/*}:\001*Z,2'/v2/{name=projects/*/storedInfoTypes/*}:\001*"
+                "\202\323\344\223\002\330\0012,/v2/{name=organizations/*/storedInfoTypes/*}:\001*Z=28/v2/{name=organizations/*/locations/*/storedInfoTypes/*}:\001*Z,2'/v2/{name=projects/*/storedInfoTypes/*}:\001*Z823/v2/{name=projects/*/locations/*/storedInfoTypes/*}:\001*"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17798,7 +18121,7 @@
             input_type=_GETSTOREDINFOTYPEREQUEST,
             output_type=_STOREDINFOTYPE,
             serialized_options=_b(
-                "\202\323\344\223\002Y\022,/v2/{name=organizations/*/storedInfoTypes/*}Z)\022'/v2/{name=projects/*/storedInfoTypes/*}"
+                "\202\323\344\223\002\314\001\022,/v2/{name=organizations/*/storedInfoTypes/*}Z:\0228/v2/{name=organizations/*/locations/*/storedInfoTypes/*}Z)\022'/v2/{name=projects/*/storedInfoTypes/*}Z5\0223/v2/{name=projects/*/locations/*/storedInfoTypes/*}"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17809,7 +18132,7 @@
             input_type=_LISTSTOREDINFOTYPESREQUEST,
             output_type=_LISTSTOREDINFOTYPESRESPONSE,
             serialized_options=_b(
-                "\202\323\344\223\002Y\022,/v2/{parent=organizations/*}/storedInfoTypesZ)\022'/v2/{parent=projects/*}/storedInfoTypes"
+                "\202\323\344\223\002\344\001\022,/v2/{parent=organizations/*}/storedInfoTypesZF\022D/v2/{parent=organizations/*}/locations/{location_id}/storedInfoTypesZ)\022'/v2/{parent=projects/*}/storedInfoTypesZA\022?/v2/{parent=projects/*}/locations/{location_id}/storedInfoTypes"
             ),
         ),
         _descriptor.MethodDescriptor(
@@ -17820,7 +18143,7 @@
             input_type=_DELETESTOREDINFOTYPEREQUEST,
             output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
             serialized_options=_b(
-                "\202\323\344\223\002Y*,/v2/{name=organizations/*/storedInfoTypes/*}Z)*'/v2/{name=projects/*/storedInfoTypes/*}"
+                "\202\323\344\223\002\314\001*,/v2/{name=organizations/*/storedInfoTypes/*}Z:*8/v2/{name=organizations/*/locations/*/storedInfoTypes/*}Z)*'/v2/{name=projects/*/storedInfoTypes/*}Z5*3/v2/{name=projects/*/locations/*/storedInfoTypes/*}"
             ),
         ),
     ],
diff --git a/dlp/synth.metadata b/dlp/synth.metadata
index 3b063933a372..f5779ad4e93e 100644
--- a/dlp/synth.metadata
+++ b/dlp/synth.metadata
@@ -1,19 +1,19 @@
 {
-  "updateTime": "2019-11-12T13:26:00.311149Z",
+  "updateTime": "2019-12-06T19:49:27.997402Z",
   "sources": [
     {
       "generator": {
         "name": "artman",
-        "version": "0.41.1",
-        "dockerImage": "googleapis/artman@sha256:545c758c76c3f779037aa259023ec3d1ef2d57d2c8cd00a222cb187d63ceac5e"
+        "version": "0.42.1",
+        "dockerImage": "googleapis/artman@sha256:c773192618c608a7a0415dd95282f841f8e6bcdef7dd760a988c93b77a64bd57"
       }
     },
     {
       "git": {
         "name": "googleapis",
         "remote": "https://github.com/googleapis/googleapis.git",
-        "sha": "f69562be0608904932bdcfbc5ad8b9a22d9dceb8",
-        "internalRef": "279774957"
+        "sha": "b10e4547017ca529ac8d183e839f3c272e1c13de",
+        "internalRef": "284059574"
       }
     },
     {
diff --git a/dlp/synth.py b/dlp/synth.py
index 4a0b8d801de9..86862894f5bc 100644
--- a/dlp/synth.py
+++ b/dlp/synth.py
@@ -50,7 +50,7 @@
 s.replace(
     "google/cloud/dlp_v2/proto/storage_pb2.py",
     "number regex.*\n(\s+)latex:.*\n",
-    'number regex "(\\d\{3\}) \\d\{3\}-\\d\{4\} "\\\n'
+    r'number regex "(\\d\{3\}) \\d\{3\}-\\d\{4\} "\\\n'
     "\g<1>could be adjusted upwards if the area code is \\\n",
 )