From 7cfcf126a8db2698afd9c5cdfb96439e8b5158d8 Mon Sep 17 00:00:00 2001 From: Noah Dietz Date: Wed, 2 Sep 2026 19:43:44 +0000 Subject: [PATCH] feat: update API sources and regenerate --- .../lib/google/cloud/batch/v1/job_pb.rb | 3 +- .../proto_docs/google/cloud/batch/v1/job.rb | 18 + .../migration/v2/migration_entities_pb.rb | 11 +- .../migration/v2/migration_entities.rb | 174 +++++ .../lib/google/bigtable/admin/v2/table_pb.rb | 3 +- .../google/bigtable/admin/v2/table.rb | 22 +- .../v1/confidential_computing/client.rb | 5 +- .../v1/confidential_computing/rest/client.rb | 5 +- .../confidentialcomputing/v1/service_pb.rb | 3 +- .../cloud/confidentialcomputing/v1/service.rb | 17 + .../v1/confidential_computing_rest_test.rb | 11 +- .../v1/confidential_computing_test.rb | 12 +- google-cloud-dlp-v2/gapic_metadata.json | 25 + .../lib/google/cloud/dlp/v2/dlp_service.rb | 2 +- .../google/cloud/dlp/v2/dlp_service/client.rb | 596 ++++++++++++++++-- .../google/cloud/dlp/v2/dlp_service/paths.rb | 19 + .../google/cloud/dlp/v2/dlp_service/rest.rb | 2 +- .../cloud/dlp/v2/dlp_service/rest/client.rb | 561 +++++++++++++++-- .../dlp/v2/dlp_service/rest/service_stub.rb | 307 +++++++++ .../lib/google/privacy/dlp/v2/dlp_pb.rb | 21 +- .../google/privacy/dlp/v2/dlp_services_pb.rb | 84 +-- .../lib/google/privacy/dlp/v2/storage_pb.rb | 6 +- .../proto_docs/google/privacy/dlp/v2/dlp.rb | 592 +++++++++++++---- .../google/privacy/dlp/v2/storage.rb | 94 ++- .../dlp_service/create_content_policy.rb | 47 ++ .../dlp_service/delete_content_policy.rb | 47 ++ .../dlp_service/get_content_policy.rb | 47 ++ .../dlp_service/list_content_policies.rb | 51 ++ .../dlp_service/update_content_policy.rb | 47 ++ .../cloud/dlp/v2/dlp_service_paths_test.rb | 12 + .../cloud/dlp/v2/dlp_service_rest_test.rb | 276 ++++++++ .../google/cloud/dlp/v2/dlp_service_test.rb | 307 +++++++++ google-cloud-dlp/lib/google/cloud/dlp.rb | 2 +- .../geminidataanalytics/v1/datasource_pb.rb | 2 +- .../geminidataanalytics/v1/datasource.rb | 7 + .../v1beta/data_chat_service_pb.rb | 2 +- .../v1beta/datasource_pb.rb | 6 +- .../v1beta/data_chat_service.rb | 16 + .../geminidataanalytics/v1beta/datasource.rb | 115 +++- .../v1/developer_knowledge/client.rb | 48 +- .../v1/developer_knowledge/rest/client.rb | 48 +- .../knowledge/v1/developerknowledge_pb.rb | 2 +- .../knowledge/v1/developerknowledge.rb | 47 ++ .../v1/developer_knowledge_rest_test.rb | 11 +- .../v1/developer_knowledge_test.rb | 12 +- librarian.yaml | 4 +- 46 files changed, 3398 insertions(+), 351 deletions(-) create mode 100644 google-cloud-dlp-v2/snippets/dlp_service/create_content_policy.rb create mode 100644 google-cloud-dlp-v2/snippets/dlp_service/delete_content_policy.rb create mode 100644 google-cloud-dlp-v2/snippets/dlp_service/get_content_policy.rb create mode 100644 google-cloud-dlp-v2/snippets/dlp_service/list_content_policies.rb create mode 100644 google-cloud-dlp-v2/snippets/dlp_service/update_content_policy.rb diff --git a/google-cloud-batch-v1/lib/google/cloud/batch/v1/job_pb.rb b/google-cloud-batch-v1/lib/google/cloud/batch/v1/job_pb.rb index 8127bff9136b..84fac5487854 100644 --- a/google-cloud-batch-v1/lib/google/cloud/batch/v1/job_pb.rb +++ b/google-cloud-batch-v1/lib/google/cloud/batch/v1/job_pb.rb @@ -11,7 +11,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n\x1fgoogle/cloud/batch/v1/job.proto\x12\x15google.cloud.batch.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/cloud/batch/v1/task.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x90\x05\n\x03Job\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x10\n\x08priority\x18\x03 \x01(\x03\x12:\n\x0btask_groups\x18\x04 \x03(\x0b\x32 .google.cloud.batch.v1.TaskGroupB\x03\xe0\x41\x02\x12\x42\n\x11\x61llocation_policy\x18\x07 \x01(\x0b\x32\'.google.cloud.batch.v1.AllocationPolicy\x12\x36\n\x06labels\x18\x08 \x03(\x0b\x32&.google.cloud.batch.v1.Job.LabelsEntry\x12\x35\n\x06status\x18\t \x01(\x0b\x32 .google.cloud.batch.v1.JobStatusB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\x0blogs_policy\x18\r \x01(\x0b\x32!.google.cloud.batch.v1.LogsPolicy\x12=\n\rnotifications\x18\x0e \x03(\x0b\x32&.google.cloud.batch.v1.JobNotification\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:Q\xea\x41N\n\x18\x62\x61tch.googleapis.com/Job\x12\x32projects/{project}/locations/{location}/jobs/{job}\"\xcd\x02\n\nLogsPolicy\x12\x42\n\x0b\x64\x65stination\x18\x01 \x01(\x0e\x32-.google.cloud.batch.v1.LogsPolicy.Destination\x12\x11\n\tlogs_path\x18\x02 \x01(\t\x12W\n\x14\x63loud_logging_option\x18\x03 \x01(\x0b\x32\x34.google.cloud.batch.v1.LogsPolicy.CloudLoggingOptionB\x03\xe0\x41\x01\x1a\x46\n\x12\x43loudLoggingOption\x12\x30\n#use_generic_task_monitored_resource\x18\x01 \x01(\x08\x42\x03\xe0\x41\x01\"G\n\x0b\x44\x65stination\x12\x1b\n\x17\x44\x45STINATION_UNSPECIFIED\x10\x00\x12\x11\n\rCLOUD_LOGGING\x10\x01\x12\x08\n\x04PATH\x10\x02\"\xae\x07\n\tJobStatus\x12\x35\n\x05state\x18\x01 \x01(\x0e\x32&.google.cloud.batch.v1.JobStatus.State\x12\x39\n\rstatus_events\x18\x02 \x03(\x0b\x32\".google.cloud.batch.v1.StatusEvent\x12\x45\n\x0btask_groups\x18\x04 \x03(\x0b\x32\x30.google.cloud.batch.v1.JobStatus.TaskGroupsEntry\x12/\n\x0crun_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\xd1\x01\n\x0eInstanceStatus\x12\x14\n\x0cmachine_type\x18\x01 \x01(\t\x12U\n\x12provisioning_model\x18\x02 \x01(\x0e\x32\x39.google.cloud.batch.v1.AllocationPolicy.ProvisioningModel\x12\x11\n\ttask_pack\x18\x03 \x01(\x03\x12?\n\tboot_disk\x18\x04 \x01(\x0b\x32,.google.cloud.batch.v1.AllocationPolicy.Disk\x1a\xd2\x01\n\x0fTaskGroupStatus\x12L\n\x06\x63ounts\x18\x01 \x03(\x0b\x32<.google.cloud.batch.v1.JobStatus.TaskGroupStatus.CountsEntry\x12\x42\n\tinstances\x18\x02 \x03(\x0b\x32/.google.cloud.batch.v1.JobStatus.InstanceStatus\x1a-\n\x0b\x43ountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x63\n\x0fTaskGroupsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12?\n\x05value\x18\x02 \x01(\x0b\x32\x30.google.cloud.batch.v1.JobStatus.TaskGroupStatus:\x02\x38\x01\"\xa8\x01\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\n\n\x06QUEUED\x10\x01\x12\r\n\tSCHEDULED\x10\x02\x12\x0b\n\x07RUNNING\x10\x03\x12\r\n\tSUCCEEDED\x10\x04\x12\n\n\x06\x46\x41ILED\x10\x05\x12\x18\n\x14\x44\x45LETION_IN_PROGRESS\x10\x06\x12\x1c\n\x18\x43\x41NCELLATION_IN_PROGRESS\x10\x07\x12\r\n\tCANCELLED\x10\x08\"\xfc\x02\n\x0fJobNotification\x12\x14\n\x0cpubsub_topic\x18\x01 \x01(\t\x12?\n\x07message\x18\x02 \x01(\x0b\x32..google.cloud.batch.v1.JobNotification.Message\x1a\xc4\x01\n\x07Message\x12\x39\n\x04type\x18\x01 \x01(\x0e\x32+.google.cloud.batch.v1.JobNotification.Type\x12=\n\rnew_job_state\x18\x02 \x01(\x0e\x32&.google.cloud.batch.v1.JobStatus.State\x12?\n\x0enew_task_state\x18\x03 \x01(\x0e\x32\'.google.cloud.batch.v1.TaskStatus.State\"K\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11JOB_STATE_CHANGED\x10\x01\x12\x16\n\x12TASK_STATE_CHANGED\x10\x02\"\xad\x0f\n\x10\x41llocationPolicy\x12H\n\x08location\x18\x01 \x01(\x0b\x32\x36.google.cloud.batch.v1.AllocationPolicy.LocationPolicy\x12S\n\tinstances\x18\x08 \x03(\x0b\x32@.google.cloud.batch.v1.AllocationPolicy.InstancePolicyOrTemplate\x12>\n\x0fservice_account\x18\t \x01(\x0b\x32%.google.cloud.batch.v1.ServiceAccount\x12\x43\n\x06labels\x18\x06 \x03(\x0b\x32\x33.google.cloud.batch.v1.AllocationPolicy.LabelsEntry\x12\x46\n\x07network\x18\x07 \x01(\x0b\x32\x35.google.cloud.batch.v1.AllocationPolicy.NetworkPolicy\x12J\n\tplacement\x18\n \x01(\x0b\x32\x37.google.cloud.batch.v1.AllocationPolicy.PlacementPolicy\x12\x11\n\x04tags\x18\x0b \x03(\tB\x03\xe0\x41\x01\x1a+\n\x0eLocationPolicy\x12\x19\n\x11\x61llowed_locations\x18\x01 \x03(\t\x1aq\n\x04\x44isk\x12\x0f\n\x05image\x18\x04 \x01(\tH\x00\x12\x12\n\x08snapshot\x18\x05 \x01(\tH\x00\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0f\n\x07size_gb\x18\x02 \x01(\x03\x12\x16\n\x0e\x64isk_interface\x18\x06 \x01(\tB\r\n\x0b\x64\x61ta_source\x1a\x8a\x01\n\x0c\x41ttachedDisk\x12@\n\x08new_disk\x18\x01 \x01(\x0b\x32,.google.cloud.batch.v1.AllocationPolicy.DiskH\x00\x12\x17\n\rexisting_disk\x18\x02 \x01(\tH\x00\x12\x13\n\x0b\x64\x65vice_name\x18\x03 \x01(\tB\n\n\x08\x61ttached\x1ah\n\x0b\x41\x63\x63\x65lerator\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x03\x12\x1f\n\x13install_gpu_drivers\x18\x03 \x01(\x08\x42\x02\x18\x01\x12\x1b\n\x0e\x64river_version\x18\x04 \x01(\tB\x03\xe0\x41\x01\x1a\x82\x03\n\x0eInstancePolicy\x12\x14\n\x0cmachine_type\x18\x02 \x01(\t\x12\x18\n\x10min_cpu_platform\x18\x03 \x01(\t\x12U\n\x12provisioning_model\x18\x04 \x01(\x0e\x32\x39.google.cloud.batch.v1.AllocationPolicy.ProvisioningModel\x12I\n\x0c\x61\x63\x63\x65lerators\x18\x05 \x03(\x0b\x32\x33.google.cloud.batch.v1.AllocationPolicy.Accelerator\x12?\n\tboot_disk\x18\x08 \x01(\x0b\x32,.google.cloud.batch.v1.AllocationPolicy.Disk\x12\x43\n\x05\x64isks\x18\x06 \x03(\x0b\x32\x34.google.cloud.batch.v1.AllocationPolicy.AttachedDisk\x12\x18\n\x0breservation\x18\x07 \x01(\tB\x03\xe0\x41\x01\x1a\xf6\x01\n\x18InstancePolicyOrTemplate\x12H\n\x06policy\x18\x01 \x01(\x0b\x32\x36.google.cloud.batch.v1.AllocationPolicy.InstancePolicyH\x00\x12\x1b\n\x11instance_template\x18\x02 \x01(\tH\x00\x12\x1b\n\x13install_gpu_drivers\x18\x03 \x01(\x08\x12\x1e\n\x11install_ops_agent\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12#\n\x16\x62lock_project_ssh_keys\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01\x42\x11\n\x0fpolicy_template\x1aW\n\x10NetworkInterface\x12\x0f\n\x07network\x18\x01 \x01(\t\x12\x12\n\nsubnetwork\x18\x02 \x01(\t\x12\x1e\n\x16no_external_ip_address\x18\x03 \x01(\x08\x1a\x65\n\rNetworkPolicy\x12T\n\x12network_interfaces\x18\x01 \x03(\x0b\x32\x38.google.cloud.batch.v1.AllocationPolicy.NetworkInterface\x1a<\n\x0fPlacementPolicy\x12\x13\n\x0b\x63ollocation\x18\x01 \x01(\t\x12\x14\n\x0cmax_distance\x18\x02 \x01(\x03\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8b\x01\n\x11ProvisioningModel\x12\"\n\x1ePROVISIONING_MODEL_UNSPECIFIED\x10\x00\x12\x0c\n\x08STANDARD\x10\x01\x12\x08\n\x04SPOT\x10\x02\x12\x13\n\x0bPREEMPTIBLE\x10\x03\x1a\x02\x08\x01\x12\x15\n\x11RESERVATION_BOUND\x10\x04\x12\x0e\n\nFLEX_START\x10\x05\"\xcb\x04\n\tTaskGroup\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x37\n\ttask_spec\x18\x03 \x01(\x0b\x32\x1f.google.cloud.batch.v1.TaskSpecB\x03\xe0\x41\x02\x12\x12\n\ntask_count\x18\x04 \x01(\x03\x12\x13\n\x0bparallelism\x18\x05 \x01(\x03\x12L\n\x11scheduling_policy\x18\x06 \x01(\x0e\x32\x31.google.cloud.batch.v1.TaskGroup.SchedulingPolicy\x12=\n\x11task_environments\x18\t \x03(\x0b\x32\".google.cloud.batch.v1.Environment\x12\x1b\n\x13task_count_per_node\x18\n \x01(\x03\x12\x1a\n\x12require_hosts_file\x18\x0b \x01(\x08\x12\x16\n\x0epermissive_ssh\x18\x0c \x01(\x08\x12\x1c\n\x0frun_as_non_root\x18\x0e \x01(\x08\x42\x03\xe0\x41\x01\"\\\n\x10SchedulingPolicy\x12!\n\x1dSCHEDULING_POLICY_UNSPECIFIED\x10\x00\x12\x17\n\x13\x41S_SOON_AS_POSSIBLE\x10\x01\x12\x0c\n\x08IN_ORDER\x10\x02:o\xea\x41l\n\x1e\x62\x61tch.googleapis.com/TaskGroup\x12Jprojects/{project}/locations/{location}/jobs/{job}/taskGroups/{task_group}\"/\n\x0eServiceAccount\x12\r\n\x05\x65mail\x18\x01 \x01(\t\x12\x0e\n\x06scopes\x18\x02 \x03(\tB\xa9\x01\n\x19\x63om.google.cloud.batch.v1B\x08JobProtoP\x01Z/cloud.google.com/go/batch/apiv1/batchpb;batchpb\xa2\x02\x03GCB\xaa\x02\x15Google.Cloud.Batch.V1\xca\x02\x15Google\\Cloud\\Batch\\V1\xea\x02\x18Google::Cloud::Batch::V1b\x06proto3" +descriptor_data = "\n\x1fgoogle/cloud/batch/v1/job.proto\x12\x15google.cloud.batch.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/cloud/batch/v1/task.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x90\x05\n\x03Job\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x10\n\x08priority\x18\x03 \x01(\x03\x12:\n\x0btask_groups\x18\x04 \x03(\x0b\x32 .google.cloud.batch.v1.TaskGroupB\x03\xe0\x41\x02\x12\x42\n\x11\x61llocation_policy\x18\x07 \x01(\x0b\x32\'.google.cloud.batch.v1.AllocationPolicy\x12\x36\n\x06labels\x18\x08 \x03(\x0b\x32&.google.cloud.batch.v1.Job.LabelsEntry\x12\x35\n\x06status\x18\t \x01(\x0b\x32 .google.cloud.batch.v1.JobStatusB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\x0blogs_policy\x18\r \x01(\x0b\x32!.google.cloud.batch.v1.LogsPolicy\x12=\n\rnotifications\x18\x0e \x03(\x0b\x32&.google.cloud.batch.v1.JobNotification\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:Q\xea\x41N\n\x18\x62\x61tch.googleapis.com/Job\x12\x32projects/{project}/locations/{location}/jobs/{job}\"\xcd\x02\n\nLogsPolicy\x12\x42\n\x0b\x64\x65stination\x18\x01 \x01(\x0e\x32-.google.cloud.batch.v1.LogsPolicy.Destination\x12\x11\n\tlogs_path\x18\x02 \x01(\t\x12W\n\x14\x63loud_logging_option\x18\x03 \x01(\x0b\x32\x34.google.cloud.batch.v1.LogsPolicy.CloudLoggingOptionB\x03\xe0\x41\x01\x1a\x46\n\x12\x43loudLoggingOption\x12\x30\n#use_generic_task_monitored_resource\x18\x01 \x01(\x08\x42\x03\xe0\x41\x01\"G\n\x0b\x44\x65stination\x12\x1b\n\x17\x44\x45STINATION_UNSPECIFIED\x10\x00\x12\x11\n\rCLOUD_LOGGING\x10\x01\x12\x08\n\x04PATH\x10\x02\"\xae\x07\n\tJobStatus\x12\x35\n\x05state\x18\x01 \x01(\x0e\x32&.google.cloud.batch.v1.JobStatus.State\x12\x39\n\rstatus_events\x18\x02 \x03(\x0b\x32\".google.cloud.batch.v1.StatusEvent\x12\x45\n\x0btask_groups\x18\x04 \x03(\x0b\x32\x30.google.cloud.batch.v1.JobStatus.TaskGroupsEntry\x12/\n\x0crun_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\xd1\x01\n\x0eInstanceStatus\x12\x14\n\x0cmachine_type\x18\x01 \x01(\t\x12U\n\x12provisioning_model\x18\x02 \x01(\x0e\x32\x39.google.cloud.batch.v1.AllocationPolicy.ProvisioningModel\x12\x11\n\ttask_pack\x18\x03 \x01(\x03\x12?\n\tboot_disk\x18\x04 \x01(\x0b\x32,.google.cloud.batch.v1.AllocationPolicy.Disk\x1a\xd2\x01\n\x0fTaskGroupStatus\x12L\n\x06\x63ounts\x18\x01 \x03(\x0b\x32<.google.cloud.batch.v1.JobStatus.TaskGroupStatus.CountsEntry\x12\x42\n\tinstances\x18\x02 \x03(\x0b\x32/.google.cloud.batch.v1.JobStatus.InstanceStatus\x1a-\n\x0b\x43ountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x63\n\x0fTaskGroupsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12?\n\x05value\x18\x02 \x01(\x0b\x32\x30.google.cloud.batch.v1.JobStatus.TaskGroupStatus:\x02\x38\x01\"\xa8\x01\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\n\n\x06QUEUED\x10\x01\x12\r\n\tSCHEDULED\x10\x02\x12\x0b\n\x07RUNNING\x10\x03\x12\r\n\tSUCCEEDED\x10\x04\x12\n\n\x06\x46\x41ILED\x10\x05\x12\x18\n\x14\x44\x45LETION_IN_PROGRESS\x10\x06\x12\x1c\n\x18\x43\x41NCELLATION_IN_PROGRESS\x10\x07\x12\r\n\tCANCELLED\x10\x08\"\xfc\x02\n\x0fJobNotification\x12\x14\n\x0cpubsub_topic\x18\x01 \x01(\t\x12?\n\x07message\x18\x02 \x01(\x0b\x32..google.cloud.batch.v1.JobNotification.Message\x1a\xc4\x01\n\x07Message\x12\x39\n\x04type\x18\x01 \x01(\x0e\x32+.google.cloud.batch.v1.JobNotification.Type\x12=\n\rnew_job_state\x18\x02 \x01(\x0e\x32&.google.cloud.batch.v1.JobStatus.State\x12?\n\x0enew_task_state\x18\x03 \x01(\x0e\x32\'.google.cloud.batch.v1.TaskStatus.State\"K\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11JOB_STATE_CHANGED\x10\x01\x12\x16\n\x12TASK_STATE_CHANGED\x10\x02\"\xdf\x10\n\x10\x41llocationPolicy\x12H\n\x08location\x18\x01 \x01(\x0b\x32\x36.google.cloud.batch.v1.AllocationPolicy.LocationPolicy\x12S\n\tinstances\x18\x08 \x03(\x0b\x32@.google.cloud.batch.v1.AllocationPolicy.InstancePolicyOrTemplate\x12>\n\x0fservice_account\x18\t \x01(\x0b\x32%.google.cloud.batch.v1.ServiceAccount\x12\x43\n\x06labels\x18\x06 \x03(\x0b\x32\x33.google.cloud.batch.v1.AllocationPolicy.LabelsEntry\x12\x46\n\x07network\x18\x07 \x01(\x0b\x32\x35.google.cloud.batch.v1.AllocationPolicy.NetworkPolicy\x12J\n\tplacement\x18\n \x01(\x0b\x32\x37.google.cloud.batch.v1.AllocationPolicy.PlacementPolicy\x12\x11\n\x04tags\x18\x0b \x03(\tB\x03\xe0\x41\x01\x1a+\n\x0eLocationPolicy\x12\x19\n\x11\x61llowed_locations\x18\x01 \x03(\t\x1aq\n\x04\x44isk\x12\x0f\n\x05image\x18\x04 \x01(\tH\x00\x12\x12\n\x08snapshot\x18\x05 \x01(\tH\x00\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0f\n\x07size_gb\x18\x02 \x01(\x03\x12\x16\n\x0e\x64isk_interface\x18\x06 \x01(\tB\r\n\x0b\x64\x61ta_source\x1a\x8a\x01\n\x0c\x41ttachedDisk\x12@\n\x08new_disk\x18\x01 \x01(\x0b\x32,.google.cloud.batch.v1.AllocationPolicy.DiskH\x00\x12\x17\n\rexisting_disk\x18\x02 \x01(\tH\x00\x12\x13\n\x0b\x64\x65vice_name\x18\x03 \x01(\tB\n\n\x08\x61ttached\x1ah\n\x0b\x41\x63\x63\x65lerator\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x03\x12\x1f\n\x13install_gpu_drivers\x18\x03 \x01(\x08\x42\x02\x18\x01\x12\x1b\n\x0e\x64river_version\x18\x04 \x01(\tB\x03\xe0\x41\x01\x1a\x82\x03\n\x0eInstancePolicy\x12\x14\n\x0cmachine_type\x18\x02 \x01(\t\x12\x18\n\x10min_cpu_platform\x18\x03 \x01(\t\x12U\n\x12provisioning_model\x18\x04 \x01(\x0e\x32\x39.google.cloud.batch.v1.AllocationPolicy.ProvisioningModel\x12I\n\x0c\x61\x63\x63\x65lerators\x18\x05 \x03(\x0b\x32\x33.google.cloud.batch.v1.AllocationPolicy.Accelerator\x12?\n\tboot_disk\x18\x08 \x01(\x0b\x32,.google.cloud.batch.v1.AllocationPolicy.Disk\x12\x43\n\x05\x64isks\x18\x06 \x03(\x0b\x32\x34.google.cloud.batch.v1.AllocationPolicy.AttachedDisk\x12\x18\n\x0breservation\x18\x07 \x01(\tB\x03\xe0\x41\x01\x1a\xf6\x01\n\x18InstancePolicyOrTemplate\x12H\n\x06policy\x18\x01 \x01(\x0b\x32\x36.google.cloud.batch.v1.AllocationPolicy.InstancePolicyH\x00\x12\x1b\n\x11instance_template\x18\x02 \x01(\tH\x00\x12\x1b\n\x13install_gpu_drivers\x18\x03 \x01(\x08\x12\x1e\n\x11install_ops_agent\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12#\n\x16\x62lock_project_ssh_keys\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01\x42\x11\n\x0fpolicy_template\x1a\x88\x02\n\x10NetworkInterface\x12\x0f\n\x07network\x18\x01 \x01(\t\x12\x12\n\nsubnetwork\x18\x02 \x01(\t\x12\x1e\n\x16no_external_ip_address\x18\x03 \x01(\x08\x12\\\n\x08nic_type\x18\x07 \x01(\x0e\x32@.google.cloud.batch.v1.AllocationPolicy.NetworkInterface.NicTypeB\x03\xe0\x41\x01H\x00\x88\x01\x01\"D\n\x07NicType\x12\x18\n\x14NIC_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05GVNIC\x10\x01\x12\t\n\x05IRDMA\x10\x02\x12\t\n\x05MRDMA\x10\x03\x42\x0b\n\t_nic_type\x1a\x65\n\rNetworkPolicy\x12T\n\x12network_interfaces\x18\x01 \x03(\x0b\x32\x38.google.cloud.batch.v1.AllocationPolicy.NetworkInterface\x1a<\n\x0fPlacementPolicy\x12\x13\n\x0b\x63ollocation\x18\x01 \x01(\t\x12\x14\n\x0cmax_distance\x18\x02 \x01(\x03\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8b\x01\n\x11ProvisioningModel\x12\"\n\x1ePROVISIONING_MODEL_UNSPECIFIED\x10\x00\x12\x0c\n\x08STANDARD\x10\x01\x12\x08\n\x04SPOT\x10\x02\x12\x13\n\x0bPREEMPTIBLE\x10\x03\x1a\x02\x08\x01\x12\x15\n\x11RESERVATION_BOUND\x10\x04\x12\x0e\n\nFLEX_START\x10\x05\"\xcb\x04\n\tTaskGroup\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x37\n\ttask_spec\x18\x03 \x01(\x0b\x32\x1f.google.cloud.batch.v1.TaskSpecB\x03\xe0\x41\x02\x12\x12\n\ntask_count\x18\x04 \x01(\x03\x12\x13\n\x0bparallelism\x18\x05 \x01(\x03\x12L\n\x11scheduling_policy\x18\x06 \x01(\x0e\x32\x31.google.cloud.batch.v1.TaskGroup.SchedulingPolicy\x12=\n\x11task_environments\x18\t \x03(\x0b\x32\".google.cloud.batch.v1.Environment\x12\x1b\n\x13task_count_per_node\x18\n \x01(\x03\x12\x1a\n\x12require_hosts_file\x18\x0b \x01(\x08\x12\x16\n\x0epermissive_ssh\x18\x0c \x01(\x08\x12\x1c\n\x0frun_as_non_root\x18\x0e \x01(\x08\x42\x03\xe0\x41\x01\"\\\n\x10SchedulingPolicy\x12!\n\x1dSCHEDULING_POLICY_UNSPECIFIED\x10\x00\x12\x17\n\x13\x41S_SOON_AS_POSSIBLE\x10\x01\x12\x0c\n\x08IN_ORDER\x10\x02:o\xea\x41l\n\x1e\x62\x61tch.googleapis.com/TaskGroup\x12Jprojects/{project}/locations/{location}/jobs/{job}/taskGroups/{task_group}\"/\n\x0eServiceAccount\x12\r\n\x05\x65mail\x18\x01 \x01(\t\x12\x0e\n\x06scopes\x18\x02 \x03(\tB\xa9\x01\n\x19\x63om.google.cloud.batch.v1B\x08JobProtoP\x01Z/cloud.google.com/go/batch/apiv1/batchpb;batchpb\xa2\x02\x03GCB\xaa\x02\x15Google.Cloud.Batch.V1\xca\x02\x15Google\\Cloud\\Batch\\V1\xea\x02\x18Google::Cloud::Batch::V1b\x06proto3" pool = ::Google::Protobuf::DescriptorPool.generated_pool pool.add_serialized_file(descriptor_data) @@ -39,6 +39,7 @@ module V1 AllocationPolicy::InstancePolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.batch.v1.AllocationPolicy.InstancePolicy").msgclass AllocationPolicy::InstancePolicyOrTemplate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.batch.v1.AllocationPolicy.InstancePolicyOrTemplate").msgclass AllocationPolicy::NetworkInterface = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.batch.v1.AllocationPolicy.NetworkInterface").msgclass + AllocationPolicy::NetworkInterface::NicType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.batch.v1.AllocationPolicy.NetworkInterface.NicType").enummodule AllocationPolicy::NetworkPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.batch.v1.AllocationPolicy.NetworkPolicy").msgclass AllocationPolicy::PlacementPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.batch.v1.AllocationPolicy.PlacementPolicy").msgclass AllocationPolicy::ProvisioningModel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.batch.v1.AllocationPolicy.ProvisioningModel").enummodule diff --git a/google-cloud-batch-v1/proto_docs/google/cloud/batch/v1/job.rb b/google-cloud-batch-v1/proto_docs/google/cloud/batch/v1/job.rb index 3096f4fede93..6110dadf995b 100644 --- a/google-cloud-batch-v1/proto_docs/google/cloud/batch/v1/job.rb +++ b/google-cloud-batch-v1/proto_docs/google/cloud/batch/v1/job.rb @@ -637,9 +637,27 @@ class InstancePolicyOrTemplate # https://cloud.google.com/vpc/docs/configure-private-google-access and # https://cloud.google.com/nat/docs/gce-example#create-nat for more # information. + # @!attribute [rw] nic_type + # @return [::Google::Cloud::Batch::V1::AllocationPolicy::NetworkInterface::NicType] + # Optional. The NIC type of the network interface. class NetworkInterface include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods + + # Compute Engine VM instance NIC type. + module NicType + # No type specified. + NIC_TYPE_UNSPECIFIED = 0 + + # GVNIC + GVNIC = 1 + + # IRDMA + IRDMA = 2 + + # MRDMA + MRDMA = 3 + end end # NetworkPolicy describes VM instance network configurations. diff --git a/google-cloud-bigquery-migration-v2/lib/google/cloud/bigquery/migration/v2/migration_entities_pb.rb b/google-cloud-bigquery-migration-v2/lib/google/cloud/bigquery/migration/v2/migration_entities_pb.rb index 64ad22c7c8c2..c4dad8c36497 100644 --- a/google-cloud-bigquery-migration-v2/lib/google/cloud/bigquery/migration/v2/migration_entities_pb.rb +++ b/google-cloud-bigquery-migration-v2/lib/google/cloud/bigquery/migration/v2/migration_entities_pb.rb @@ -16,7 +16,7 @@ require 'google/rpc/error_details_pb' -descriptor_data = "\n;google/cloud/bigquery/migration/v2/migration_entities.proto\x12\"google.cloud.bigquery.migration.v2\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x38google/cloud/bigquery/migration/v2/assessment_task.proto\x1a@google/cloud/bigquery/migration/v2/migration_error_details.proto\x1a:google/cloud/bigquery/migration/v2/migration_metrics.proto\x1a;google/cloud/bigquery/migration/v2/translation_config.proto\x1agoogle/cloud/bigquery/migration/v2/translation_usability.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/rpc/error_details.proto\"\x80\x05\n\x11MigrationWorkflow\x12\x17\n\x04name\x18\x01 \x01(\tB\t\xe0\x41\x03\xe0\x41\x05\xe0\x41\x08\x12\x14\n\x0c\x64isplay_name\x18\x06 \x01(\t\x12O\n\x05tasks\x18\x02 \x03(\x0b\x32@.google.cloud.bigquery.migration.v2.MigrationWorkflow.TasksEntry\x12O\n\x05state\x18\x03 \x01(\x0e\x32;.google.cloud.bigquery.migration.v2.MigrationWorkflow.StateB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x39\n\x10last_update_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x1a_\n\nTasksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12@\n\x05value\x18\x02 \x01(\x0b\x32\x31.google.cloud.bigquery.migration.v2.MigrationTask:\x02\x38\x01\"Q\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\t\n\x05\x44RAFT\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\n\n\x06PAUSED\x10\x03\x12\r\n\tCOMPLETED\x10\x04:u\xea\x41r\n2bigquerymigration.googleapis.com/MigrationWorkflow\x12google/cloud/bigquery/migration/v2/translation_usability.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/rpc/error_details.proto\"\x80\x05\n\x11MigrationWorkflow\x12\x17\n\x04name\x18\x01 \x01(\tB\t\xe0\x41\x03\xe0\x41\x05\xe0\x41\x08\x12\x14\n\x0c\x64isplay_name\x18\x06 \x01(\t\x12O\n\x05tasks\x18\x02 \x03(\x0b\x32@.google.cloud.bigquery.migration.v2.MigrationWorkflow.TasksEntry\x12O\n\x05state\x18\x03 \x01(\x0e\x32;.google.cloud.bigquery.migration.v2.MigrationWorkflow.StateB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x39\n\x10last_update_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x1a_\n\nTasksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12@\n\x05value\x18\x02 \x01(\x0b\x32\x31.google.cloud.bigquery.migration.v2.MigrationTask:\x02\x38\x01\"Q\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\t\n\x05\x44RAFT\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\n\n\x06PAUSED\x10\x03\x12\r\n\tCOMPLETED\x10\x04:u\xea\x41r\n2bigquerymigration.googleapis.com/MigrationWorkflow\x12 ::Google::Cloud::Bigquery::Migration::V2::TaskOutput}] + # The map of task output types to the task outputs, e.g. "LINEAGE". class MigrationTaskResult include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::Google::Cloud::Bigquery::Migration::V2::TaskOutput] + class TaskOutputsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end end # Translation specific result details from the migration task. @@ -290,6 +302,168 @@ class TranslationTaskResult include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + + # The task output for a task type including the status and any errors. + # @!attribute [rw] lineage_output + # @return [::Google::Cloud::Bigquery::Migration::V2::LineageOutput] + # The output of the task with output type "LINEAGE". + # @!attribute [r] state + # @return [::Google::Cloud::Bigquery::Migration::V2::TaskOutput::State] + # Output only. The current state of the task output. + # @!attribute [rw] processing_error + # @return [::Google::Rpc::ErrorInfo] + # An explanation that may be populated when the task output is in FAILED + # state. + class TaskOutput + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Possible task output states. + module State + # Task output state is unspecified. + STATE_UNSPECIFIED = 0 + + # Task output is pending. + PENDING = 1 + + # Task output is succeeded. + SUCCEEDED = 2 + + # Task output is failed. This does not mean that there is no useful + # information in the output; partial outputs or failure details may be + # available. + FAILED = 3 + end + end + + # The output of a task with output type "LINEAGE". + # + # Actual generated lineage can be queried separately (see + # {::Google::Cloud::Bigquery::Migration::V2::LineageOutput#webapp_uri webapp_uri}), + # this message contains only metadata: processing status, errors, etc. + # @!attribute [rw] webapp_uri + # @return [::String] + # The URI of the webapp that visualizes the lineage. + # The user needs the `bigquerymigration.googleapis.com/lineageDbs.query` IAM + # permission to use the webapp. + # @!attribute [r] recognized_inputs + # @return [::Array<::Google::Cloud::Bigquery::Migration::V2::LineageOutput::RecognizedInput>] + # Output only. Recognized lineage inputs. + # + # All inputs are processed only if the task succeeds and all work is in state + # [SUCCEEDED](ProgressReport.WorkSummary.State.SUCCEEDED) (in particular, + # nothing is [SKIPPED](ProgressReport.WorkSummary.State.SKIPPED)). + # + # Even with all inputs processed successfully, there may be transpiler errors + # present leading to inaccurate lineage. + # @!attribute [r] processing_progress_reports + # @return [::Array<::Google::Cloud::Bigquery::Migration::V2::LineageOutput::ProgressReport>] + # Output only. Work processing progress reports broken up by processing + # stage. + class LineageOutput + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Information about lineage input of the given type that lineage generation + # recognized. + # + # If you expected to process more of the given input, verify your input was + # uploaded and is in the correct format and the request to generate lineage + # correctly specified the input location. + # @!attribute [r] type + # @return [::Google::Cloud::Bigquery::Migration::V2::LineageOutput::RecognizedInput::Type] + # Output only. The type of the input. + # @!attribute [r] uncompressed_size_bytes + # @return [::Integer] + # Output only. The uncompressed size of the recognized input of the given + # type. + class RecognizedInput + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Input type recognized by the lineage processing. + module Type + # The type is not specified. + TYPE_UNSPECIFIED = 0 + + # The input is metadata. + METADATA = 1 + + # The input is a query log. + QUERY_LOG = 2 + + # The input is a SQL script. + SCRIPT = 3 + end + end + + # Breaks down processing progress of work. + # @!attribute [r] processing_stage + # @return [::Google::Cloud::Bigquery::Migration::V2::LineageOutput::ProgressReport::ProcessingStage] + # Output only. The processing stage this progress report describes. + # @!attribute [r] work_summaries + # @return [::Array<::Google::Cloud::Bigquery::Migration::V2::LineageOutput::ProgressReport::WorkSummary>] + # Output only. Summaries of work broken up by the state of the work. Each + # work summary describes how much work is in the given state. + # + # To get numbers for the total work covered, aggregate the numbers from all + # summaries. + class ProgressReport + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Summary of work in the given state. + # @!attribute [r] state + # @return [::Google::Cloud::Bigquery::Migration::V2::LineageOutput::ProgressReport::WorkSummary::State] + # Output only. The state of the work this summary describes. + # @!attribute [r] size + # @return [::Integer] + # Output only. Size of the work in the given State. + # + # Size counts "units of work". Units represent arbitrary division of + # work; there's no expectation each unit takes similar time to process. + # @!attribute [r] comment + # @return [::String] + # Output only. Human-readable comment. + class WorkSummary + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # States of work. Each piece of work is in exactly one state. + # [SUCCEEDED], [FAILED] and [SKIPPED] are terminal states; work in the + # [IN_PROGRESS] will eventually transition to one of the terminal states. + module State + # The state is not specified. + STATE_UNSPECIFIED = 0 + + # Work that was processed successfully. + SUCCEEDED = 1 + + # Work that failed processing. + FAILED = 2 + + # Work that is currently being processed or queued for processing. + IN_PROGRESS = 3 + + # Work that was recognised as necessary to fully process inputs but was + # skipped due to system limitations. + SKIPPED = 4 + end + end + + # The processing stage the progress report describes. + module ProcessingStage + # The stage is not specified. + PROCESSING_STAGE_UNSPECIFIED = 0 + + # The input ingestion stage. + INPUT_INGESTION = 1000 + + # The lineage DB postprocessing stage. + POSTPROCESSING = 2000 + end + end + end end end end diff --git a/google-cloud-bigtable-admin-v2/lib/google/bigtable/admin/v2/table_pb.rb b/google-cloud-bigtable-admin-v2/lib/google/bigtable/admin/v2/table_pb.rb index 3c6d0a5ab0e0..e7b1c3d95d4d 100644 --- a/google-cloud-bigtable-admin-v2/lib/google/bigtable/admin/v2/table_pb.rb +++ b/google-cloud-bigtable-admin-v2/lib/google/bigtable/admin/v2/table_pb.rb @@ -12,7 +12,7 @@ require 'google/rpc/status_pb' -descriptor_data = "\n$google/bigtable/admin/v2/table.proto\x12\x18google.bigtable.admin.v2\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a$google/bigtable/admin/v2/types.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\x9b\x01\n\x0bRestoreInfo\x12@\n\x0bsource_type\x18\x01 \x01(\x0e\x32+.google.bigtable.admin.v2.RestoreSourceType\x12;\n\x0b\x62\x61\x63kup_info\x18\x02 \x01(\x0b\x32$.google.bigtable.admin.v2.BackupInfoH\x00\x42\r\n\x0bsource_info\"I\n\x12\x43hangeStreamConfig\x12\x33\n\x10retention_period\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xa8\r\n\x05Table\x12\x0c\n\x04name\x18\x01 \x01(\t\x12O\n\x0e\x63luster_states\x18\x02 \x03(\x0b\x32\x32.google.bigtable.admin.v2.Table.ClusterStatesEntryB\x03\xe0\x41\x03\x12L\n\x0f\x63olumn_families\x18\x03 \x03(\x0b\x32\x33.google.bigtable.admin.v2.Table.ColumnFamiliesEntry\x12N\n\x0bgranularity\x18\x04 \x01(\x0e\x32\x34.google.bigtable.admin.v2.Table.TimestampGranularityB\x03\xe0\x41\x05\x12@\n\x0crestore_info\x18\x06 \x01(\x0b\x32%.google.bigtable.admin.v2.RestoreInfoB\x03\xe0\x41\x03\x12J\n\x14\x63hange_stream_config\x18\x08 \x01(\x0b\x32,.google.bigtable.admin.v2.ChangeStreamConfig\x12\x1b\n\x13\x64\x65letion_protection\x18\t \x01(\x08\x12X\n\x17\x61utomated_backup_policy\x18\r \x01(\x0b\x32\x35.google.bigtable.admin.v2.Table.AutomatedBackupPolicyH\x00\x12L\n\x15tiered_storage_config\x18\x0e \x01(\x0b\x32-.google.bigtable.admin.v2.TieredStorageConfig\x12=\n\x0erow_key_schema\x18\x0f \x01(\x0b\x32%.google.bigtable.admin.v2.Type.Struct\x1a\xc6\x02\n\x0c\x43lusterState\x12]\n\x11replication_state\x18\x01 \x01(\x0e\x32=.google.bigtable.admin.v2.Table.ClusterState.ReplicationStateB\x03\xe0\x41\x03\x12\x46\n\x0f\x65ncryption_info\x18\x02 \x03(\x0b\x32(.google.bigtable.admin.v2.EncryptionInfoB\x03\xe0\x41\x03\"\x8e\x01\n\x10ReplicationState\x12\x13\n\x0fSTATE_NOT_KNOWN\x10\x00\x12\x10\n\x0cINITIALIZING\x10\x01\x12\x17\n\x13PLANNED_MAINTENANCE\x10\x02\x12\x19\n\x15UNPLANNED_MAINTENANCE\x10\x03\x12\t\n\x05READY\x10\x04\x12\x14\n\x10READY_OPTIMIZING\x10\x05\x1a\xbd\x01\n\x15\x41utomatedBackupPolicy\x12\x38\n\x10retention_period\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02\x12,\n\tfrequency\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\tlocations\x18\x03 \x03(\tB)\xe0\x41\x01\xfa\x41#\n!locations.googleapis.com/Location\x1a\x62\n\x12\x43lusterStatesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.google.bigtable.admin.v2.Table.ClusterState:\x02\x38\x01\x1a]\n\x13\x43olumnFamiliesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.google.bigtable.admin.v2.ColumnFamily:\x02\x38\x01\"U\n\x14TimestampGranularity\x12%\n!TIMESTAMP_GRANULARITY_UNSPECIFIED\x10\x00\x12\n\n\x06MILLIS\x10\x01\x12\n\n\x06MICROS\x10\x02\"q\n\x04View\x12\x14\n\x10VIEW_UNSPECIFIED\x10\x00\x12\r\n\tNAME_ONLY\x10\x01\x12\x0f\n\x0bSCHEMA_VIEW\x10\x02\x12\x14\n\x10REPLICATION_VIEW\x10\x03\x12\x13\n\x0f\x45NCRYPTION_VIEW\x10\x05\x12\x08\n\x04\x46ULL\x10\x04:_\xea\x41\\\n\"bigtableadmin.googleapis.com/Table\x12\x36projects/{project}/instances/{instance}/tables/{table}B\x19\n\x17\x61utomated_backup_config\"\xe3\x05\n\x0e\x41uthorizedView\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12J\n\x0bsubset_view\x18\x02 \x01(\x0b\x32\x33.google.bigtable.admin.v2.AuthorizedView.SubsetViewH\x00\x12\x0c\n\x04\x65tag\x18\x03 \x01(\t\x12\x1b\n\x13\x64\x65letion_protection\x18\x04 \x01(\x08\x1a?\n\rFamilySubsets\x12\x12\n\nqualifiers\x18\x01 \x03(\x0c\x12\x1a\n\x12qualifier_prefixes\x18\x02 \x03(\x0c\x1a\xf0\x01\n\nSubsetView\x12\x14\n\x0crow_prefixes\x18\x01 \x03(\x0c\x12^\n\x0e\x66\x61mily_subsets\x18\x02 \x03(\x0b\x32\x46.google.bigtable.admin.v2.AuthorizedView.SubsetView.FamilySubsetsEntry\x1al\n\x12\x46\x61milySubsetsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x45\n\x05value\x18\x02 \x01(\x0b\x32\x36.google.bigtable.admin.v2.AuthorizedView.FamilySubsets:\x02\x38\x01\"Q\n\x0cResponseView\x12\x1d\n\x19RESPONSE_VIEW_UNSPECIFIED\x10\x00\x12\r\n\tNAME_ONLY\x10\x01\x12\t\n\x05\x42\x41SIC\x10\x02\x12\x08\n\x04\x46ULL\x10\x03:\xac\x01\xea\x41\xa8\x01\n+bigtableadmin.googleapis.com/AuthorizedView\x12Xprojects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}*\x0f\x61uthorizedViews2\x0e\x61uthorizedViewB\x11\n\x0f\x61uthorized_view\"u\n\x0c\x43olumnFamily\x12\x31\n\x07gc_rule\x18\x01 \x01(\x0b\x32 .google.bigtable.admin.v2.GcRule\x12\x32\n\nvalue_type\x18\x03 \x01(\x0b\x32\x1e.google.bigtable.admin.v2.Type\"\xd5\x02\n\x06GcRule\x12\x1a\n\x10max_num_versions\x18\x01 \x01(\x05H\x00\x12,\n\x07max_age\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x45\n\x0cintersection\x18\x03 \x01(\x0b\x32-.google.bigtable.admin.v2.GcRule.IntersectionH\x00\x12\x37\n\x05union\x18\x04 \x01(\x0b\x32&.google.bigtable.admin.v2.GcRule.UnionH\x00\x1a?\n\x0cIntersection\x12/\n\x05rules\x18\x01 \x03(\x0b\x32 .google.bigtable.admin.v2.GcRule\x1a\x38\n\x05Union\x12/\n\x05rules\x18\x01 \x03(\x0b\x32 .google.bigtable.admin.v2.GcRuleB\x06\n\x04rule\"\xd9\x02\n\x0e\x45ncryptionInfo\x12U\n\x0f\x65ncryption_type\x18\x03 \x01(\x0e\x32\x37.google.bigtable.admin.v2.EncryptionInfo.EncryptionTypeB\x03\xe0\x41\x03\x12\x32\n\x11\x65ncryption_status\x18\x04 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12I\n\x0fkms_key_version\x18\x02 \x01(\tB0\xe0\x41\x03\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\"q\n\x0e\x45ncryptionType\x12\x1f\n\x1b\x45NCRYPTION_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19GOOGLE_DEFAULT_ENCRYPTION\x10\x01\x12\x1f\n\x1b\x43USTOMER_MANAGED_ENCRYPTION\x10\x02\"\xe0\x03\n\x08Snapshot\x12\x0c\n\x04name\x18\x01 \x01(\t\x12:\n\x0csource_table\x18\x02 \x01(\x0b\x32\x1f.google.bigtable.admin.v2.TableB\x03\xe0\x41\x03\x12\x1c\n\x0f\x64\x61ta_size_bytes\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12/\n\x0b\x64\x65lete_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12<\n\x05state\x18\x06 \x01(\x0e\x32(.google.bigtable.admin.v2.Snapshot.StateB\x03\xe0\x41\x03\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\"5\n\x05State\x12\x13\n\x0fSTATE_NOT_KNOWN\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0c\n\x08\x43REATING\x10\x02:{\xea\x41x\n%bigtableadmin.googleapis.com/Snapshot\x12Oprojects/{project}/instances/{instance}/clusters/{cluster}/snapshots/{snapshot}\"\xf9\x05\n\x06\x42\x61\x63kup\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1c\n\x0csource_table\x18\x02 \x01(\tB\x06\xe0\x41\x05\xe0\x41\x02\x12\x1a\n\rsource_backup\x18\n \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02\x12\x33\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x17\n\nsize_bytes\x18\x06 \x01(\x03\x42\x03\xe0\x41\x03\x12:\n\x05state\x18\x07 \x01(\x0e\x32&.google.bigtable.admin.v2.Backup.StateB\x03\xe0\x41\x03\x12\x46\n\x0f\x65ncryption_info\x18\t \x01(\x0b\x32(.google.bigtable.admin.v2.EncryptionInfoB\x03\xe0\x41\x03\x12@\n\x0b\x62\x61\x63kup_type\x18\x0b \x01(\x0e\x32+.google.bigtable.admin.v2.Backup.BackupType\x12\x38\n\x14hot_to_standard_time\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"7\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\t\n\x05READY\x10\x02\"@\n\nBackupType\x12\x1b\n\x17\x42\x41\x43KUP_TYPE_UNSPECIFIED\x10\x00\x12\x0c\n\x08STANDARD\x10\x01\x12\x07\n\x03HOT\x10\x02:u\xea\x41r\n#bigtableadmin.googleapis.com/Backup\x12Kprojects/{project}/instances/{instance}/clusters/{cluster}/backups/{backup}\"\xc0\x01\n\nBackupInfo\x12\x13\n\x06\x62\x61\x63kup\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x33\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x19\n\x0csource_table\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rsource_backup\x18\n \x01(\tB\x03\xe0\x41\x03\"]\n\x13TieredStorageConfig\x12\x46\n\x11infrequent_access\x18\x01 \x01(\x0b\x32+.google.bigtable.admin.v2.TieredStorageRule\"W\n\x11TieredStorageRule\x12:\n\x15include_if_older_than\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x42\x06\n\x04rule\"-\n\x0bProtoSchema\x12\x1e\n\x11proto_descriptors\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\"\xa0\x02\n\x0cSchemaBundle\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12=\n\x0cproto_schema\x18\x02 \x01(\x0b\x32%.google.bigtable.admin.v2.ProtoSchemaH\x00\x12\x11\n\x04\x65tag\x18\x03 \x01(\tB\x03\xe0\x41\x01:\xa2\x01\xea\x41\x9e\x01\n)bigtableadmin.googleapis.com/SchemaBundle\x12Tprojects/{project}/instances/{instance}/tables/{table}/schemaBundles/{schema_bundle}*\rschemaBundles2\x0cschemaBundleB\x06\n\x04type*D\n\x11RestoreSourceType\x12#\n\x1fRESTORE_SOURCE_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06\x42\x41\x43KUP\x10\x01\x42\xf7\x02\n\x1c\x63om.google.bigtable.admin.v2B\nTableProtoP\x01Z8cloud.google.com/go/bigtable/admin/apiv2/adminpb;adminpb\xaa\x02\x1eGoogle.Cloud.Bigtable.Admin.V2\xca\x02\x1eGoogle\\Cloud\\Bigtable\\Admin\\V2\xea\x02\"Google::Cloud::Bigtable::Admin::V2\xea\x41\xa6\x01\n(cloudkms.googleapis.com/CryptoKeyVersion\x12zprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}b\x06proto3" +descriptor_data = "\n$google/bigtable/admin/v2/table.proto\x12\x18google.bigtable.admin.v2\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a$google/bigtable/admin/v2/types.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\x9b\x01\n\x0bRestoreInfo\x12@\n\x0bsource_type\x18\x01 \x01(\x0e\x32+.google.bigtable.admin.v2.RestoreSourceType\x12;\n\x0b\x62\x61\x63kup_info\x18\x02 \x01(\x0b\x32$.google.bigtable.admin.v2.BackupInfoH\x00\x42\r\n\x0bsource_info\"I\n\x12\x43hangeStreamConfig\x12\x33\n\x10retention_period\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xa8\r\n\x05Table\x12\x0c\n\x04name\x18\x01 \x01(\t\x12O\n\x0e\x63luster_states\x18\x02 \x03(\x0b\x32\x32.google.bigtable.admin.v2.Table.ClusterStatesEntryB\x03\xe0\x41\x03\x12L\n\x0f\x63olumn_families\x18\x03 \x03(\x0b\x32\x33.google.bigtable.admin.v2.Table.ColumnFamiliesEntry\x12N\n\x0bgranularity\x18\x04 \x01(\x0e\x32\x34.google.bigtable.admin.v2.Table.TimestampGranularityB\x03\xe0\x41\x05\x12@\n\x0crestore_info\x18\x06 \x01(\x0b\x32%.google.bigtable.admin.v2.RestoreInfoB\x03\xe0\x41\x03\x12J\n\x14\x63hange_stream_config\x18\x08 \x01(\x0b\x32,.google.bigtable.admin.v2.ChangeStreamConfig\x12\x1b\n\x13\x64\x65letion_protection\x18\t \x01(\x08\x12X\n\x17\x61utomated_backup_policy\x18\r \x01(\x0b\x32\x35.google.bigtable.admin.v2.Table.AutomatedBackupPolicyH\x00\x12L\n\x15tiered_storage_config\x18\x0e \x01(\x0b\x32-.google.bigtable.admin.v2.TieredStorageConfig\x12=\n\x0erow_key_schema\x18\x0f \x01(\x0b\x32%.google.bigtable.admin.v2.Type.Struct\x1a\xc6\x02\n\x0c\x43lusterState\x12]\n\x11replication_state\x18\x01 \x01(\x0e\x32=.google.bigtable.admin.v2.Table.ClusterState.ReplicationStateB\x03\xe0\x41\x03\x12\x46\n\x0f\x65ncryption_info\x18\x02 \x03(\x0b\x32(.google.bigtable.admin.v2.EncryptionInfoB\x03\xe0\x41\x03\"\x8e\x01\n\x10ReplicationState\x12\x13\n\x0fSTATE_NOT_KNOWN\x10\x00\x12\x10\n\x0cINITIALIZING\x10\x01\x12\x17\n\x13PLANNED_MAINTENANCE\x10\x02\x12\x19\n\x15UNPLANNED_MAINTENANCE\x10\x03\x12\t\n\x05READY\x10\x04\x12\x14\n\x10READY_OPTIMIZING\x10\x05\x1a\xbd\x01\n\x15\x41utomatedBackupPolicy\x12\x38\n\x10retention_period\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02\x12,\n\tfrequency\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\tlocations\x18\x03 \x03(\tB)\xe0\x41\x01\xfa\x41#\n!locations.googleapis.com/Location\x1a\x62\n\x12\x43lusterStatesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.google.bigtable.admin.v2.Table.ClusterState:\x02\x38\x01\x1a]\n\x13\x43olumnFamiliesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.google.bigtable.admin.v2.ColumnFamily:\x02\x38\x01\"U\n\x14TimestampGranularity\x12%\n!TIMESTAMP_GRANULARITY_UNSPECIFIED\x10\x00\x12\n\n\x06MILLIS\x10\x01\x12\n\n\x06MICROS\x10\x02\"q\n\x04View\x12\x14\n\x10VIEW_UNSPECIFIED\x10\x00\x12\r\n\tNAME_ONLY\x10\x01\x12\x0f\n\x0bSCHEMA_VIEW\x10\x02\x12\x14\n\x10REPLICATION_VIEW\x10\x03\x12\x13\n\x0f\x45NCRYPTION_VIEW\x10\x05\x12\x08\n\x04\x46ULL\x10\x04:_\xea\x41\\\n\"bigtableadmin.googleapis.com/Table\x12\x36projects/{project}/instances/{instance}/tables/{table}B\x19\n\x17\x61utomated_backup_config\"\xe3\x05\n\x0e\x41uthorizedView\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12J\n\x0bsubset_view\x18\x02 \x01(\x0b\x32\x33.google.bigtable.admin.v2.AuthorizedView.SubsetViewH\x00\x12\x0c\n\x04\x65tag\x18\x03 \x01(\t\x12\x1b\n\x13\x64\x65letion_protection\x18\x04 \x01(\x08\x1a?\n\rFamilySubsets\x12\x12\n\nqualifiers\x18\x01 \x03(\x0c\x12\x1a\n\x12qualifier_prefixes\x18\x02 \x03(\x0c\x1a\xf0\x01\n\nSubsetView\x12\x14\n\x0crow_prefixes\x18\x01 \x03(\x0c\x12^\n\x0e\x66\x61mily_subsets\x18\x02 \x03(\x0b\x32\x46.google.bigtable.admin.v2.AuthorizedView.SubsetView.FamilySubsetsEntry\x1al\n\x12\x46\x61milySubsetsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x45\n\x05value\x18\x02 \x01(\x0b\x32\x36.google.bigtable.admin.v2.AuthorizedView.FamilySubsets:\x02\x38\x01\"Q\n\x0cResponseView\x12\x1d\n\x19RESPONSE_VIEW_UNSPECIFIED\x10\x00\x12\r\n\tNAME_ONLY\x10\x01\x12\t\n\x05\x42\x41SIC\x10\x02\x12\x08\n\x04\x46ULL\x10\x03:\xac\x01\xea\x41\xa8\x01\n+bigtableadmin.googleapis.com/AuthorizedView\x12Xprojects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}*\x0f\x61uthorizedViews2\x0e\x61uthorizedViewB\x11\n\x0f\x61uthorized_view\"u\n\x0c\x43olumnFamily\x12\x31\n\x07gc_rule\x18\x01 \x01(\x0b\x32 .google.bigtable.admin.v2.GcRule\x12\x32\n\nvalue_type\x18\x03 \x01(\x0b\x32\x1e.google.bigtable.admin.v2.Type\"\xd5\x02\n\x06GcRule\x12\x1a\n\x10max_num_versions\x18\x01 \x01(\x05H\x00\x12,\n\x07max_age\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x45\n\x0cintersection\x18\x03 \x01(\x0b\x32-.google.bigtable.admin.v2.GcRule.IntersectionH\x00\x12\x37\n\x05union\x18\x04 \x01(\x0b\x32&.google.bigtable.admin.v2.GcRule.UnionH\x00\x1a?\n\x0cIntersection\x12/\n\x05rules\x18\x01 \x03(\x0b\x32 .google.bigtable.admin.v2.GcRule\x1a\x38\n\x05Union\x12/\n\x05rules\x18\x01 \x03(\x0b\x32 .google.bigtable.admin.v2.GcRuleB\x06\n\x04rule\"\xd9\x02\n\x0e\x45ncryptionInfo\x12U\n\x0f\x65ncryption_type\x18\x03 \x01(\x0e\x32\x37.google.bigtable.admin.v2.EncryptionInfo.EncryptionTypeB\x03\xe0\x41\x03\x12\x32\n\x11\x65ncryption_status\x18\x04 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12I\n\x0fkms_key_version\x18\x02 \x01(\tB0\xe0\x41\x03\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\"q\n\x0e\x45ncryptionType\x12\x1f\n\x1b\x45NCRYPTION_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19GOOGLE_DEFAULT_ENCRYPTION\x10\x01\x12\x1f\n\x1b\x43USTOMER_MANAGED_ENCRYPTION\x10\x02\"\xe0\x03\n\x08Snapshot\x12\x0c\n\x04name\x18\x01 \x01(\t\x12:\n\x0csource_table\x18\x02 \x01(\x0b\x32\x1f.google.bigtable.admin.v2.TableB\x03\xe0\x41\x03\x12\x1c\n\x0f\x64\x61ta_size_bytes\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12/\n\x0b\x64\x65lete_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12<\n\x05state\x18\x06 \x01(\x0e\x32(.google.bigtable.admin.v2.Snapshot.StateB\x03\xe0\x41\x03\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\"5\n\x05State\x12\x13\n\x0fSTATE_NOT_KNOWN\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0c\n\x08\x43REATING\x10\x02:{\xea\x41x\n%bigtableadmin.googleapis.com/Snapshot\x12Oprojects/{project}/instances/{instance}/clusters/{cluster}/snapshots/{snapshot}\"\xf9\x05\n\x06\x42\x61\x63kup\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1c\n\x0csource_table\x18\x02 \x01(\tB\x06\xe0\x41\x05\xe0\x41\x02\x12\x1a\n\rsource_backup\x18\n \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02\x12\x33\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x17\n\nsize_bytes\x18\x06 \x01(\x03\x42\x03\xe0\x41\x03\x12:\n\x05state\x18\x07 \x01(\x0e\x32&.google.bigtable.admin.v2.Backup.StateB\x03\xe0\x41\x03\x12\x46\n\x0f\x65ncryption_info\x18\t \x01(\x0b\x32(.google.bigtable.admin.v2.EncryptionInfoB\x03\xe0\x41\x03\x12@\n\x0b\x62\x61\x63kup_type\x18\x0b \x01(\x0e\x32+.google.bigtable.admin.v2.Backup.BackupType\x12\x38\n\x14hot_to_standard_time\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"7\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\t\n\x05READY\x10\x02\"@\n\nBackupType\x12\x1b\n\x17\x42\x41\x43KUP_TYPE_UNSPECIFIED\x10\x00\x12\x0c\n\x08STANDARD\x10\x01\x12\x07\n\x03HOT\x10\x02:u\xea\x41r\n#bigtableadmin.googleapis.com/Backup\x12Kprojects/{project}/instances/{instance}/clusters/{cluster}/backups/{backup}\"\xc0\x01\n\nBackupInfo\x12\x13\n\x06\x62\x61\x63kup\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x33\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x19\n\x0csource_table\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rsource_backup\x18\n \x01(\tB\x03\xe0\x41\x03\"]\n\x13TieredStorageConfig\x12\x46\n\x11infrequent_access\x18\x01 \x01(\x0b\x32+.google.bigtable.admin.v2.TieredStorageRule\"W\n\x11TieredStorageRule\x12:\n\x15include_if_older_than\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x42\x06\n\x04rule\"-\n\x0bProtoSchema\x12\x1e\n\x11proto_descriptors\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\"\'\n\nAvroSchema\x12\x19\n\x0cjson_schemas\x18\x01 \x03(\tB\x03\xe0\x41\x02\"\xe2\x02\n\x0cSchemaBundle\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12=\n\x0cproto_schema\x18\x02 \x01(\x0b\x32%.google.bigtable.admin.v2.ProtoSchemaH\x00\x12@\n\x0b\x61vro_schema\x18\x06 \x01(\x0b\x32$.google.bigtable.admin.v2.AvroSchemaB\x03\xe0\x41\x01H\x00\x12\x11\n\x04\x65tag\x18\x03 \x01(\tB\x03\xe0\x41\x01:\xa2\x01\xea\x41\x9e\x01\n)bigtableadmin.googleapis.com/SchemaBundle\x12Tprojects/{project}/instances/{instance}/tables/{table}/schemaBundles/{schema_bundle}*\rschemaBundles2\x0cschemaBundleB\x06\n\x04type*D\n\x11RestoreSourceType\x12#\n\x1fRESTORE_SOURCE_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06\x42\x41\x43KUP\x10\x01\x42\xf7\x02\n\x1c\x63om.google.bigtable.admin.v2B\nTableProtoP\x01Z8cloud.google.com/go/bigtable/admin/apiv2/adminpb;adminpb\xaa\x02\x1eGoogle.Cloud.Bigtable.Admin.V2\xca\x02\x1eGoogle\\Cloud\\Bigtable\\Admin\\V2\xea\x02\"Google::Cloud::Bigtable::Admin::V2\xea\x41\xa6\x01\n(cloudkms.googleapis.com/CryptoKeyVersion\x12zprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}b\x06proto3" pool = ::Google::Protobuf::DescriptorPool.generated_pool pool.add_serialized_file(descriptor_data) @@ -49,6 +49,7 @@ module V2 TieredStorageConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.admin.v2.TieredStorageConfig").msgclass TieredStorageRule = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.admin.v2.TieredStorageRule").msgclass ProtoSchema = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.admin.v2.ProtoSchema").msgclass + AvroSchema = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.admin.v2.AvroSchema").msgclass SchemaBundle = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.admin.v2.SchemaBundle").msgclass RestoreSourceType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.admin.v2.RestoreSourceType").enummodule end diff --git a/google-cloud-bigtable-admin-v2/proto_docs/google/bigtable/admin/v2/table.rb b/google-cloud-bigtable-admin-v2/proto_docs/google/bigtable/admin/v2/table.rb index 0cacca8c0919..ae7e51142cc8 100644 --- a/google-cloud-bigtable-admin-v2/proto_docs/google/bigtable/admin/v2/table.rb +++ b/google-cloud-bigtable-admin-v2/proto_docs/google/bigtable/admin/v2/table.rb @@ -686,7 +686,7 @@ class TieredStorageRule extend ::Google::Protobuf::MessageExts::ClassMethods end - # Represents a protobuf schema. + # Represents a collection of protobuf schemas. # @!attribute [rw] proto_descriptors # @return [::String] # Required. Contains a protobuf-serialized @@ -709,6 +709,19 @@ class ProtoSchema extend ::Google::Protobuf::MessageExts::ClassMethods end + # Represents a collection of Avro schemas. + # @!attribute [rw] json_schemas + # @return [::Array<::String>] + # Required. The Avro schemas in JSON format. + # Each element must be the content of a valid, self-contained Avro schema + # file (.avsc), as described in https://avro.apache.org/docs/1.8.1/spec.html. + # Use repeated elements to include multiple Avro schema files in a single + # bundle. + class AvroSchema + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # A named collection of related schemas. # @!attribute [rw] name # @return [::String] @@ -718,6 +731,13 @@ class ProtoSchema # @!attribute [rw] proto_schema # @return [::Google::Cloud::Bigtable::Admin::V2::ProtoSchema] # Schema for Protobufs. + # + # Note: The following fields are mutually exclusive: `proto_schema`, `avro_schema`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] avro_schema + # @return [::Google::Cloud::Bigtable::Admin::V2::AvroSchema] + # Optional. Schema for Avros. + # + # Note: The following fields are mutually exclusive: `avro_schema`, `proto_schema`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] etag # @return [::String] # Optional. The etag for this schema bundle. diff --git a/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/client.rb b/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/client.rb index aa9239ae1270..0c879d3b7ee4 100644 --- a/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/client.rb +++ b/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/client.rb @@ -552,7 +552,7 @@ def verify_confidential_space request, options = nil # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. # - # @overload verify_confidential_gke(tpm_attestation: nil, challenge: nil, options: nil) + # @overload verify_confidential_gke(tpm_attestation: nil, challenge: nil, options: nil, platform_type: nil) # Pass arguments to `verify_confidential_gke` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). @@ -566,6 +566,9 @@ def verify_confidential_space request, options = nil # provided Challenge will be consumed, and cannot be used again. # @param options [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest::ConfidentialGkeOptions, ::Hash] # Optional. A collection of fields that modify the token output. + # @param platform_type [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest::PlatformType] + # Optional. Optional platform security architecture hint for the verifier + # engine. Defaults to `VIRTUALIZED_CVM` behavior if unspecified. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse] diff --git a/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/rest/client.rb b/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/rest/client.rb index 2d31bf3ed8a9..e5a466650983 100644 --- a/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/rest/client.rb +++ b/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/rest/client.rb @@ -525,7 +525,7 @@ def verify_confidential_space request, options = nil # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # @overload verify_confidential_gke(tpm_attestation: nil, challenge: nil, options: nil) + # @overload verify_confidential_gke(tpm_attestation: nil, challenge: nil, options: nil, platform_type: nil) # Pass arguments to `verify_confidential_gke` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). @@ -539,6 +539,9 @@ def verify_confidential_space request, options = nil # provided Challenge will be consumed, and cannot be used again. # @param options [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest::ConfidentialGkeOptions, ::Hash] # Optional. A collection of fields that modify the token output. + # @param platform_type [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest::PlatformType] + # Optional. Optional platform security architecture hint for the verifier + # engine. Defaults to `VIRTUALIZED_CVM` behavior if unspecified. # @yield [result, operation] Access the result along with the TransportOperation object # @yieldparam result [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse] # @yieldparam operation [::Gapic::Rest::TransportOperation] diff --git a/google-cloud-confidential_computing-v1/lib/google/cloud/confidentialcomputing/v1/service_pb.rb b/google-cloud-confidential_computing-v1/lib/google/cloud/confidentialcomputing/v1/service_pb.rb index 1ccb672223ca..6bdcb59c9b7c 100644 --- a/google-cloud-confidential_computing-v1/lib/google/cloud/confidentialcomputing/v1/service_pb.rb +++ b/google-cloud-confidential_computing-v1/lib/google/cloud/confidentialcomputing/v1/service_pb.rb @@ -12,7 +12,7 @@ require 'google/rpc/status_pb' -descriptor_data = "\n3google/cloud/confidentialcomputing/v1/service.proto\x12%google.cloud.confidentialcomputing.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\xa5\x02\n\tChallenge\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04used\x18\x04 \x01(\x08\x42\x03\xe0\x41\x03\x12\x16\n\ttpm_nonce\x18\x06 \x01(\tB\x03\xe0\x41\x03:n\xea\x41k\n.confidentialcomputing.googleapis.com/Challenge\x12\x39projects/{project}/locations/{location}/challenges/{uuid}\"\x9d\x01\n\x16\x43reateChallengeRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12H\n\tchallenge\x18\x02 \x01(\x0b\x32\x30.google.cloud.confidentialcomputing.v1.ChallengeB\x03\xe0\x41\x02\"\xcd\x06\n\x18VerifyAttestationRequest\x12Q\n\x07td_ccel\x18\x06 \x01(\x0b\x32\x39.google.cloud.confidentialcomputing.v1.TdxCcelAttestationB\x03\xe0\x41\x01H\x00\x12\\\n\x13sev_snp_attestation\x18\x07 \x01(\x0b\x32\x38.google.cloud.confidentialcomputing.v1.SevSnpAttestationB\x03\xe0\x41\x01H\x00\x12[\n\x12nvidia_attestation\x18\t \x01(\x0b\x32\x38.google.cloud.confidentialcomputing.v1.NvidiaAttestationB\x03\xe0\x41\x01H\x01\x12I\n\tchallenge\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.confidentialcomputing.googleapis.com/Challenge\x12S\n\x0fgcp_credentials\x18\x02 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.GcpCredentialsB\x03\xe0\x41\x01\x12S\n\x0ftpm_attestation\x18\x03 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.TpmAttestationB\x03\xe0\x41\x02\x12\x62\n\x17\x63onfidential_space_info\x18\x04 \x01(\x0b\x32<.google.cloud.confidentialcomputing.v1.ConfidentialSpaceInfoB\x03\xe0\x41\x01\x12O\n\rtoken_options\x18\x05 \x01(\x0b\x32\x33.google.cloud.confidentialcomputing.v1.TokenOptionsB\x03\xe0\x41\x01\x12\x15\n\x08\x61ttester\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\x39\n\x08instance\x18\n \x01(\tB\'\xe0\x41\x01\xfa\x41!\n\x1f\x63ompute.googleapis.com/InstanceB\x11\n\x0ftee_attestationB\x14\n\x12\x64\x65vice_attestation\"\xbb\n\n\x11NvidiaAttestation\x12\x64\n\x03spt\x18\x01 \x01(\x0b\x32U.google.cloud.confidentialcomputing.v1.NvidiaAttestation.SinglePassthroughAttestationH\x00\x12\x62\n\x05ppcie\x18\x02 \x01(\x0b\x32Q.google.cloud.confidentialcomputing.v1.NvidiaAttestation.ProtectedPcieAttestationH\x00\x12l\n\x03mpt\x18\x03 \x01(\x0b\x32].google.cloud.confidentialcomputing.v1.NvidiaAttestation.MultiGpuSecurePassthroughAttestationH\x00\x1a\x94\x02\n\x07GpuInfo\x12\x11\n\x04uuid\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1b\n\x0e\x64river_version\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rvbios_version\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12p\n\x15gpu_architecture_type\x18\x04 \x01(\x0e\x32L.google.cloud.confidentialcomputing.v1.NvidiaAttestation.GpuArchitectureTypeB\x03\xe0\x41\x01\x12*\n\x1d\x61ttestation_certificate_chain\x18\x05 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x1f\n\x12\x61ttestation_report\x18\x06 \x01(\x0c\x42\x03\xe0\x41\x01\x1al\n\nSwitchInfo\x12\x11\n\x04uuid\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12*\n\x1d\x61ttestation_certificate_chain\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x1f\n\x12\x61ttestation_report\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x1ax\n\x1cSinglePassthroughAttestation\x12X\n\tgpu_quote\x18\x01 \x01(\x0b\x32@.google.cloud.confidentialcomputing.v1.NvidiaAttestation.GpuInfoB\x03\xe0\x41\x01\x1a\xd6\x01\n\x18ProtectedPcieAttestation\x12Y\n\ngpu_quotes\x18\x01 \x03(\x0b\x32@.google.cloud.confidentialcomputing.v1.NvidiaAttestation.GpuInfoB\x03\xe0\x41\x01\x12_\n\rswitch_quotes\x18\x02 \x03(\x0b\x32\x43.google.cloud.confidentialcomputing.v1.NvidiaAttestation.SwitchInfoB\x03\xe0\x41\x01\x1a\x81\x01\n$MultiGpuSecurePassthroughAttestation\x12Y\n\ngpu_quotes\x18\x01 \x03(\x0b\x32@.google.cloud.confidentialcomputing.v1.NvidiaAttestation.GpuInfoB\x03\xe0\x41\x01\"\x83\x01\n\x13GpuArchitectureType\x12%\n!GPU_ARCHITECTURE_TYPE_UNSPECIFIED\x10\x00\x12 \n\x1cGPU_ARCHITECTURE_TYPE_HOPPER\x10\x08\x12#\n\x1fGPU_ARCHITECTURE_TYPE_BLACKWELL\x10\nB\x0c\n\ncc_feature\"\x83\x01\n\x12TdxCcelAttestation\x12\x1c\n\x0f\x63\x63\x65l_acpi_table\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x16\n\tccel_data\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\x12 \n\x13\x63\x61nonical_event_log\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x15\n\x08td_quote\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x01\"?\n\x11SevSnpAttestation\x12\x13\n\x06report\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x15\n\x08\x61ux_blob\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\"l\n\x19VerifyAttestationResponse\x12\x1e\n\x11oidc_claims_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12/\n\x0epartial_errors\x18\x03 \x03(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\"3\n\x0eGcpCredentials\x12!\n\x19service_account_id_tokens\x18\x02 \x03(\t\"\x85\x02\n\x0cTokenOptions\x12i\n\x1a\x61ws_principal_tags_options\x18\x04 \x01(\x0b\x32>.google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptionsB\x03\xe0\x41\x01H\x00\x12\x15\n\x08\x61udience\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05nonce\x18\x02 \x03(\tB\x03\xe0\x41\x01\x12I\n\ntoken_type\x18\x03 \x01(\x0e\x32\x30.google.cloud.confidentialcomputing.v1.TokenTypeB\x03\xe0\x41\x01\x42\x14\n\x12token_type_options\"\xf6\x02\n\x17\x41wsPrincipalTagsOptions\x12x\n\x16\x61llowed_principal_tags\x18\x01 \x01(\x0b\x32S.google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptions.AllowedPrincipalTagsB\x03\xe0\x41\x01\x1a\xe0\x01\n\x14\x41llowedPrincipalTags\x12\x95\x01\n\x1a\x63ontainer_image_signatures\x18\x01 \x01(\x0b\x32l.google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptions.AllowedPrincipalTags.ContainerImageSignaturesB\x03\xe0\x41\x01\x1a\x30\n\x18\x43ontainerImageSignatures\x12\x14\n\x07key_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01\"\x8f\x03\n\x0eTpmAttestation\x12K\n\x06quotes\x18\x01 \x03(\x0b\x32;.google.cloud.confidentialcomputing.v1.TpmAttestation.Quote\x12\x15\n\rtcg_event_log\x18\x02 \x01(\x0c\x12\x1b\n\x13\x63\x61nonical_event_log\x18\x03 \x01(\x0c\x12\x0f\n\x07\x61k_cert\x18\x04 \x01(\x0c\x12\x12\n\ncert_chain\x18\x05 \x03(\x0c\x1a\xd6\x01\n\x05Quote\x12\x11\n\thash_algo\x18\x01 \x01(\x05\x12^\n\npcr_values\x18\x02 \x03(\x0b\x32J.google.cloud.confidentialcomputing.v1.TpmAttestation.Quote.PcrValuesEntry\x12\x11\n\traw_quote\x18\x03 \x01(\x0c\x12\x15\n\rraw_signature\x18\x04 \x01(\x0c\x1a\x30\n\x0ePcrValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"j\n\x15\x43onfidentialSpaceInfo\x12Q\n\x0fsigned_entities\x18\x01 \x03(\x0b\x32\x33.google.cloud.confidentialcomputing.v1.SignedEntityB\x03\xe0\x41\x01\"w\n\x0cSignedEntity\x12g\n\x1a\x63ontainer_image_signatures\x18\x01 \x03(\x0b\x32>.google.cloud.confidentialcomputing.v1.ContainerImageSignatureB\x03\xe0\x41\x01\"\xaf\x01\n\x17\x43ontainerImageSignature\x12\x14\n\x07payload\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x16\n\tsignature\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x17\n\npublic_key\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12M\n\x07sig_alg\x18\x04 \x01(\x0e\x32\x37.google.cloud.confidentialcomputing.v1.SigningAlgorithmB\x03\xe0\x41\x01\"\xf1\x08\n\x1eVerifyConfidentialSpaceRequest\x12Q\n\x07td_ccel\x18\x03 \x01(\x0b\x32\x39.google.cloud.confidentialcomputing.v1.TdxCcelAttestationB\x03\xe0\x41\x04H\x00\x12U\n\x0ftpm_attestation\x18\x04 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.TpmAttestationB\x03\xe0\x41\x04H\x00\x12I\n\tchallenge\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.confidentialcomputing.googleapis.com/Challenge\x12S\n\x0fgcp_credentials\x18\x02 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.GcpCredentialsB\x03\xe0\x41\x01\x12Q\n\x0fsigned_entities\x18\x05 \x03(\x0b\x32\x33.google.cloud.confidentialcomputing.v1.SignedEntityB\x03\xe0\x41\x01\x12^\n\x15gce_shielded_identity\x18\x06 \x01(\x0b\x32:.google.cloud.confidentialcomputing.v1.GceShieldedIdentityB\x03\xe0\x41\x01\x12t\n\x07options\x18\x07 \x01(\x0b\x32^.google.cloud.confidentialcomputing.v1.VerifyConfidentialSpaceRequest.ConfidentialSpaceOptionsB\x03\xe0\x41\x01\x12Y\n\x12nvidia_attestation\x18\x08 \x01(\x0b\x32\x38.google.cloud.confidentialcomputing.v1.NvidiaAttestationB\x03\xe0\x41\x01\x1a\xed\x02\n\x18\x43onfidentialSpaceOptions\x12i\n\x1a\x61ws_principal_tags_options\x18\x05 \x01(\x0b\x32>.google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptionsB\x03\xe0\x41\x01H\x00\x12\x15\n\x08\x61udience\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12O\n\rtoken_profile\x18\x02 \x01(\x0e\x32\x33.google.cloud.confidentialcomputing.v1.TokenProfileB\x03\xe0\x41\x01\x12\x12\n\x05nonce\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12Q\n\x0esignature_type\x18\x04 \x01(\x0e\x32\x34.google.cloud.confidentialcomputing.v1.SignatureTypeB\x03\xe0\x41\x01\x42\x17\n\x15token_profile_optionsB\x11\n\x0ftee_attestation\"G\n\x13GceShieldedIdentity\x12\x14\n\x07\x61k_cert\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x1a\n\rak_cert_chain\x18\x02 \x03(\x0c\x42\x03\xe0\x41\x01\"r\n\x1fVerifyConfidentialSpaceResponse\x12\x1e\n\x11\x61ttestation_token\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12/\n\x0epartial_errors\x18\x02 \x03(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\"\xd9\x03\n\x1cVerifyConfidentialGkeRequest\x12P\n\x0ftpm_attestation\x18\x02 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.TpmAttestationH\x00\x12I\n\tchallenge\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.confidentialcomputing.googleapis.com/Challenge\x12p\n\x07options\x18\x03 \x01(\x0b\x32Z.google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeRequest.ConfidentialGkeOptionsB\x03\xe0\x41\x01\x1a\x96\x01\n\x16\x43onfidentialGkeOptions\x12\x15\n\x08\x61udience\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05nonce\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12Q\n\x0esignature_type\x18\x04 \x01(\x0e\x32\x34.google.cloud.confidentialcomputing.v1.SignatureTypeB\x03\xe0\x41\x01\x42\x11\n\x0ftee_attestation\"?\n\x1dVerifyConfidentialGkeResponse\x12\x1e\n\x11\x61ttestation_token\x18\x01 \x01(\tB\x03\xe0\x41\x03*\x7f\n\x10SigningAlgorithm\x12!\n\x1dSIGNING_ALGORITHM_UNSPECIFIED\x10\x00\x12\x15\n\x11RSASSA_PSS_SHA256\x10\x01\x12\x1a\n\x16RSASSA_PKCS1V15_SHA256\x10\x02\x12\x15\n\x11\x45\x43\x44SA_P256_SHA256\x10\x03*\x8e\x01\n\tTokenType\x12\x1a\n\x16TOKEN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fTOKEN_TYPE_OIDC\x10\x01\x12\x12\n\x0eTOKEN_TYPE_PKI\x10\x02\x12\x1a\n\x16TOKEN_TYPE_LIMITED_AWS\x10\x03\x12 \n\x1cTOKEN_TYPE_AWS_PRINCIPALTAGS\x10\x04*`\n\rSignatureType\x12\x1e\n\x1aSIGNATURE_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13SIGNATURE_TYPE_OIDC\x10\x01\x12\x16\n\x12SIGNATURE_TYPE_PKI\x10\x02*c\n\x0cTokenProfile\x12\x1d\n\x19TOKEN_PROFILE_UNSPECIFIED\x10\x00\x12\x1d\n\x19TOKEN_PROFILE_DEFAULT_EAT\x10\x01\x12\x15\n\x11TOKEN_PROFILE_AWS\x10\x02\x32\xb5\x08\n\x15\x43onfidentialComputing\x12\xd8\x01\n\x0f\x43reateChallenge\x12=.google.cloud.confidentialcomputing.v1.CreateChallengeRequest\x1a\x30.google.cloud.confidentialcomputing.v1.Challenge\"T\xda\x41\x10parent,challenge\x82\xd3\xe4\x93\x02;\"./v1/{parent=projects/*/locations/*}/challenges:\tchallenge\x12\xe8\x01\n\x11VerifyAttestation\x12?.google.cloud.confidentialcomputing.v1.VerifyAttestationRequest\x1a@.google.cloud.confidentialcomputing.v1.VerifyAttestationResponse\"P\x82\xd3\xe4\x93\x02J\"E/v1/{challenge=projects/*/locations/*/challenges/*}:verifyAttestation:\x01*\x12\x80\x02\n\x17VerifyConfidentialSpace\x12\x45.google.cloud.confidentialcomputing.v1.VerifyConfidentialSpaceRequest\x1a\x46.google.cloud.confidentialcomputing.v1.VerifyConfidentialSpaceResponse\"V\x82\xd3\xe4\x93\x02P\"K/v1/{challenge=projects/*/locations/*/challenges/*}:verifyConfidentialSpace:\x01*\x12\xf8\x01\n\x15VerifyConfidentialGke\x12\x43.google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeRequest\x1a\x44.google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeResponse\"T\x82\xd3\xe4\x93\x02N\"I/v1/{challenge=projects/*/locations/*/challenges/*}:verifyConfidentialGke:\x01*\x1aX\xca\x41$confidentialcomputing.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x86\x03\n)com.google.cloud.confidentialcomputing.v1B\x0cServiceProtoP\x01Z_cloud.google.com/go/confidentialcomputing/apiv1/confidentialcomputingpb;confidentialcomputingpb\xaa\x02%Google.Cloud.ConfidentialComputing.V1\xca\x02%Google\\Cloud\\ConfidentialComputing\\V1\xea\x02(Google::Cloud::ConfidentialComputing::V1\xea\x41l\n\x1f\x63ompute.googleapis.com/Instance\x12\x34projects/{project}/zones/{zone}/instances/{instance}*\tinstances2\x08instanceb\x06proto3" +descriptor_data = "\n3google/cloud/confidentialcomputing/v1/service.proto\x12%google.cloud.confidentialcomputing.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\xa5\x02\n\tChallenge\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04used\x18\x04 \x01(\x08\x42\x03\xe0\x41\x03\x12\x16\n\ttpm_nonce\x18\x06 \x01(\tB\x03\xe0\x41\x03:n\xea\x41k\n.confidentialcomputing.googleapis.com/Challenge\x12\x39projects/{project}/locations/{location}/challenges/{uuid}\"\x9d\x01\n\x16\x43reateChallengeRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12H\n\tchallenge\x18\x02 \x01(\x0b\x32\x30.google.cloud.confidentialcomputing.v1.ChallengeB\x03\xe0\x41\x02\"\xcd\x06\n\x18VerifyAttestationRequest\x12Q\n\x07td_ccel\x18\x06 \x01(\x0b\x32\x39.google.cloud.confidentialcomputing.v1.TdxCcelAttestationB\x03\xe0\x41\x01H\x00\x12\\\n\x13sev_snp_attestation\x18\x07 \x01(\x0b\x32\x38.google.cloud.confidentialcomputing.v1.SevSnpAttestationB\x03\xe0\x41\x01H\x00\x12[\n\x12nvidia_attestation\x18\t \x01(\x0b\x32\x38.google.cloud.confidentialcomputing.v1.NvidiaAttestationB\x03\xe0\x41\x01H\x01\x12I\n\tchallenge\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.confidentialcomputing.googleapis.com/Challenge\x12S\n\x0fgcp_credentials\x18\x02 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.GcpCredentialsB\x03\xe0\x41\x01\x12S\n\x0ftpm_attestation\x18\x03 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.TpmAttestationB\x03\xe0\x41\x02\x12\x62\n\x17\x63onfidential_space_info\x18\x04 \x01(\x0b\x32<.google.cloud.confidentialcomputing.v1.ConfidentialSpaceInfoB\x03\xe0\x41\x01\x12O\n\rtoken_options\x18\x05 \x01(\x0b\x32\x33.google.cloud.confidentialcomputing.v1.TokenOptionsB\x03\xe0\x41\x01\x12\x15\n\x08\x61ttester\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\x39\n\x08instance\x18\n \x01(\tB\'\xe0\x41\x01\xfa\x41!\n\x1f\x63ompute.googleapis.com/InstanceB\x11\n\x0ftee_attestationB\x14\n\x12\x64\x65vice_attestation\"\xbb\n\n\x11NvidiaAttestation\x12\x64\n\x03spt\x18\x01 \x01(\x0b\x32U.google.cloud.confidentialcomputing.v1.NvidiaAttestation.SinglePassthroughAttestationH\x00\x12\x62\n\x05ppcie\x18\x02 \x01(\x0b\x32Q.google.cloud.confidentialcomputing.v1.NvidiaAttestation.ProtectedPcieAttestationH\x00\x12l\n\x03mpt\x18\x03 \x01(\x0b\x32].google.cloud.confidentialcomputing.v1.NvidiaAttestation.MultiGpuSecurePassthroughAttestationH\x00\x1a\x94\x02\n\x07GpuInfo\x12\x11\n\x04uuid\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1b\n\x0e\x64river_version\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rvbios_version\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12p\n\x15gpu_architecture_type\x18\x04 \x01(\x0e\x32L.google.cloud.confidentialcomputing.v1.NvidiaAttestation.GpuArchitectureTypeB\x03\xe0\x41\x01\x12*\n\x1d\x61ttestation_certificate_chain\x18\x05 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x1f\n\x12\x61ttestation_report\x18\x06 \x01(\x0c\x42\x03\xe0\x41\x01\x1al\n\nSwitchInfo\x12\x11\n\x04uuid\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12*\n\x1d\x61ttestation_certificate_chain\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x1f\n\x12\x61ttestation_report\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x1ax\n\x1cSinglePassthroughAttestation\x12X\n\tgpu_quote\x18\x01 \x01(\x0b\x32@.google.cloud.confidentialcomputing.v1.NvidiaAttestation.GpuInfoB\x03\xe0\x41\x01\x1a\xd6\x01\n\x18ProtectedPcieAttestation\x12Y\n\ngpu_quotes\x18\x01 \x03(\x0b\x32@.google.cloud.confidentialcomputing.v1.NvidiaAttestation.GpuInfoB\x03\xe0\x41\x01\x12_\n\rswitch_quotes\x18\x02 \x03(\x0b\x32\x43.google.cloud.confidentialcomputing.v1.NvidiaAttestation.SwitchInfoB\x03\xe0\x41\x01\x1a\x81\x01\n$MultiGpuSecurePassthroughAttestation\x12Y\n\ngpu_quotes\x18\x01 \x03(\x0b\x32@.google.cloud.confidentialcomputing.v1.NvidiaAttestation.GpuInfoB\x03\xe0\x41\x01\"\x83\x01\n\x13GpuArchitectureType\x12%\n!GPU_ARCHITECTURE_TYPE_UNSPECIFIED\x10\x00\x12 \n\x1cGPU_ARCHITECTURE_TYPE_HOPPER\x10\x08\x12#\n\x1fGPU_ARCHITECTURE_TYPE_BLACKWELL\x10\nB\x0c\n\ncc_feature\"\x83\x01\n\x12TdxCcelAttestation\x12\x1c\n\x0f\x63\x63\x65l_acpi_table\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x16\n\tccel_data\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\x12 \n\x13\x63\x61nonical_event_log\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x15\n\x08td_quote\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x01\"?\n\x11SevSnpAttestation\x12\x13\n\x06report\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x15\n\x08\x61ux_blob\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\"l\n\x19VerifyAttestationResponse\x12\x1e\n\x11oidc_claims_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12/\n\x0epartial_errors\x18\x03 \x03(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\"3\n\x0eGcpCredentials\x12!\n\x19service_account_id_tokens\x18\x02 \x03(\t\"\x85\x02\n\x0cTokenOptions\x12i\n\x1a\x61ws_principal_tags_options\x18\x04 \x01(\x0b\x32>.google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptionsB\x03\xe0\x41\x01H\x00\x12\x15\n\x08\x61udience\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05nonce\x18\x02 \x03(\tB\x03\xe0\x41\x01\x12I\n\ntoken_type\x18\x03 \x01(\x0e\x32\x30.google.cloud.confidentialcomputing.v1.TokenTypeB\x03\xe0\x41\x01\x42\x14\n\x12token_type_options\"\xf6\x02\n\x17\x41wsPrincipalTagsOptions\x12x\n\x16\x61llowed_principal_tags\x18\x01 \x01(\x0b\x32S.google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptions.AllowedPrincipalTagsB\x03\xe0\x41\x01\x1a\xe0\x01\n\x14\x41llowedPrincipalTags\x12\x95\x01\n\x1a\x63ontainer_image_signatures\x18\x01 \x01(\x0b\x32l.google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptions.AllowedPrincipalTags.ContainerImageSignaturesB\x03\xe0\x41\x01\x1a\x30\n\x18\x43ontainerImageSignatures\x12\x14\n\x07key_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01\"\x8f\x03\n\x0eTpmAttestation\x12K\n\x06quotes\x18\x01 \x03(\x0b\x32;.google.cloud.confidentialcomputing.v1.TpmAttestation.Quote\x12\x15\n\rtcg_event_log\x18\x02 \x01(\x0c\x12\x1b\n\x13\x63\x61nonical_event_log\x18\x03 \x01(\x0c\x12\x0f\n\x07\x61k_cert\x18\x04 \x01(\x0c\x12\x12\n\ncert_chain\x18\x05 \x03(\x0c\x1a\xd6\x01\n\x05Quote\x12\x11\n\thash_algo\x18\x01 \x01(\x05\x12^\n\npcr_values\x18\x02 \x03(\x0b\x32J.google.cloud.confidentialcomputing.v1.TpmAttestation.Quote.PcrValuesEntry\x12\x11\n\traw_quote\x18\x03 \x01(\x0c\x12\x15\n\rraw_signature\x18\x04 \x01(\x0c\x1a\x30\n\x0ePcrValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"j\n\x15\x43onfidentialSpaceInfo\x12Q\n\x0fsigned_entities\x18\x01 \x03(\x0b\x32\x33.google.cloud.confidentialcomputing.v1.SignedEntityB\x03\xe0\x41\x01\"w\n\x0cSignedEntity\x12g\n\x1a\x63ontainer_image_signatures\x18\x01 \x03(\x0b\x32>.google.cloud.confidentialcomputing.v1.ContainerImageSignatureB\x03\xe0\x41\x01\"\xaf\x01\n\x17\x43ontainerImageSignature\x12\x14\n\x07payload\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x16\n\tsignature\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x17\n\npublic_key\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12M\n\x07sig_alg\x18\x04 \x01(\x0e\x32\x37.google.cloud.confidentialcomputing.v1.SigningAlgorithmB\x03\xe0\x41\x01\"\xf1\x08\n\x1eVerifyConfidentialSpaceRequest\x12Q\n\x07td_ccel\x18\x03 \x01(\x0b\x32\x39.google.cloud.confidentialcomputing.v1.TdxCcelAttestationB\x03\xe0\x41\x04H\x00\x12U\n\x0ftpm_attestation\x18\x04 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.TpmAttestationB\x03\xe0\x41\x04H\x00\x12I\n\tchallenge\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.confidentialcomputing.googleapis.com/Challenge\x12S\n\x0fgcp_credentials\x18\x02 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.GcpCredentialsB\x03\xe0\x41\x01\x12Q\n\x0fsigned_entities\x18\x05 \x03(\x0b\x32\x33.google.cloud.confidentialcomputing.v1.SignedEntityB\x03\xe0\x41\x01\x12^\n\x15gce_shielded_identity\x18\x06 \x01(\x0b\x32:.google.cloud.confidentialcomputing.v1.GceShieldedIdentityB\x03\xe0\x41\x01\x12t\n\x07options\x18\x07 \x01(\x0b\x32^.google.cloud.confidentialcomputing.v1.VerifyConfidentialSpaceRequest.ConfidentialSpaceOptionsB\x03\xe0\x41\x01\x12Y\n\x12nvidia_attestation\x18\x08 \x01(\x0b\x32\x38.google.cloud.confidentialcomputing.v1.NvidiaAttestationB\x03\xe0\x41\x01\x1a\xed\x02\n\x18\x43onfidentialSpaceOptions\x12i\n\x1a\x61ws_principal_tags_options\x18\x05 \x01(\x0b\x32>.google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptionsB\x03\xe0\x41\x01H\x00\x12\x15\n\x08\x61udience\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12O\n\rtoken_profile\x18\x02 \x01(\x0e\x32\x33.google.cloud.confidentialcomputing.v1.TokenProfileB\x03\xe0\x41\x01\x12\x12\n\x05nonce\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12Q\n\x0esignature_type\x18\x04 \x01(\x0e\x32\x34.google.cloud.confidentialcomputing.v1.SignatureTypeB\x03\xe0\x41\x01\x42\x17\n\x15token_profile_optionsB\x11\n\x0ftee_attestation\"G\n\x13GceShieldedIdentity\x12\x14\n\x07\x61k_cert\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x1a\n\rak_cert_chain\x18\x02 \x03(\x0c\x42\x03\xe0\x41\x01\"r\n\x1fVerifyConfidentialSpaceResponse\x12\x1e\n\x11\x61ttestation_token\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12/\n\x0epartial_errors\x18\x02 \x03(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\"\xa0\x05\n\x1cVerifyConfidentialGkeRequest\x12P\n\x0ftpm_attestation\x18\x02 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.TpmAttestationH\x00\x12I\n\tchallenge\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.confidentialcomputing.googleapis.com/Challenge\x12p\n\x07options\x18\x03 \x01(\x0b\x32Z.google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeRequest.ConfidentialGkeOptionsB\x03\xe0\x41\x01\x12l\n\rplatform_type\x18\x04 \x01(\x0e\x32P.google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeRequest.PlatformTypeB\x03\xe0\x41\x01\x1a\x96\x01\n\x16\x43onfidentialGkeOptions\x12\x15\n\x08\x61udience\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05nonce\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12Q\n\x0esignature_type\x18\x04 \x01(\x0e\x32\x34.google.cloud.confidentialcomputing.v1.SignatureTypeB\x03\xe0\x41\x01\"W\n\x0cPlatformType\x12\x1d\n\x19PLATFORM_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fVIRTUALIZED_CVM\x10\x01\x12\x13\n\x0f\x42\x41RE_METAL_VTPM\x10\x02\x42\x11\n\x0ftee_attestation\"?\n\x1dVerifyConfidentialGkeResponse\x12\x1e\n\x11\x61ttestation_token\x18\x01 \x01(\tB\x03\xe0\x41\x03*\x7f\n\x10SigningAlgorithm\x12!\n\x1dSIGNING_ALGORITHM_UNSPECIFIED\x10\x00\x12\x15\n\x11RSASSA_PSS_SHA256\x10\x01\x12\x1a\n\x16RSASSA_PKCS1V15_SHA256\x10\x02\x12\x15\n\x11\x45\x43\x44SA_P256_SHA256\x10\x03*\x8e\x01\n\tTokenType\x12\x1a\n\x16TOKEN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fTOKEN_TYPE_OIDC\x10\x01\x12\x12\n\x0eTOKEN_TYPE_PKI\x10\x02\x12\x1a\n\x16TOKEN_TYPE_LIMITED_AWS\x10\x03\x12 \n\x1cTOKEN_TYPE_AWS_PRINCIPALTAGS\x10\x04*`\n\rSignatureType\x12\x1e\n\x1aSIGNATURE_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13SIGNATURE_TYPE_OIDC\x10\x01\x12\x16\n\x12SIGNATURE_TYPE_PKI\x10\x02*c\n\x0cTokenProfile\x12\x1d\n\x19TOKEN_PROFILE_UNSPECIFIED\x10\x00\x12\x1d\n\x19TOKEN_PROFILE_DEFAULT_EAT\x10\x01\x12\x15\n\x11TOKEN_PROFILE_AWS\x10\x02\x32\xb5\x08\n\x15\x43onfidentialComputing\x12\xd8\x01\n\x0f\x43reateChallenge\x12=.google.cloud.confidentialcomputing.v1.CreateChallengeRequest\x1a\x30.google.cloud.confidentialcomputing.v1.Challenge\"T\xda\x41\x10parent,challenge\x82\xd3\xe4\x93\x02;\"./v1/{parent=projects/*/locations/*}/challenges:\tchallenge\x12\xe8\x01\n\x11VerifyAttestation\x12?.google.cloud.confidentialcomputing.v1.VerifyAttestationRequest\x1a@.google.cloud.confidentialcomputing.v1.VerifyAttestationResponse\"P\x82\xd3\xe4\x93\x02J\"E/v1/{challenge=projects/*/locations/*/challenges/*}:verifyAttestation:\x01*\x12\x80\x02\n\x17VerifyConfidentialSpace\x12\x45.google.cloud.confidentialcomputing.v1.VerifyConfidentialSpaceRequest\x1a\x46.google.cloud.confidentialcomputing.v1.VerifyConfidentialSpaceResponse\"V\x82\xd3\xe4\x93\x02P\"K/v1/{challenge=projects/*/locations/*/challenges/*}:verifyConfidentialSpace:\x01*\x12\xf8\x01\n\x15VerifyConfidentialGke\x12\x43.google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeRequest\x1a\x44.google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeResponse\"T\x82\xd3\xe4\x93\x02N\"I/v1/{challenge=projects/*/locations/*/challenges/*}:verifyConfidentialGke:\x01*\x1aX\xca\x41$confidentialcomputing.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x86\x03\n)com.google.cloud.confidentialcomputing.v1B\x0cServiceProtoP\x01Z_cloud.google.com/go/confidentialcomputing/apiv1/confidentialcomputingpb;confidentialcomputingpb\xaa\x02%Google.Cloud.ConfidentialComputing.V1\xca\x02%Google\\Cloud\\ConfidentialComputing\\V1\xea\x02(Google::Cloud::ConfidentialComputing::V1\xea\x41l\n\x1f\x63ompute.googleapis.com/Instance\x12\x34projects/{project}/zones/{zone}/instances/{instance}*\tinstances2\x08instanceb\x06proto3" pool = ::Google::Protobuf::DescriptorPool.generated_pool pool.add_serialized_file(descriptor_data) @@ -50,6 +50,7 @@ module V1 VerifyConfidentialSpaceResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyConfidentialSpaceResponse").msgclass VerifyConfidentialGkeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeRequest").msgclass VerifyConfidentialGkeRequest::ConfidentialGkeOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeRequest.ConfidentialGkeOptions").msgclass + VerifyConfidentialGkeRequest::PlatformType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeRequest.PlatformType").enummodule VerifyConfidentialGkeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeResponse").msgclass SigningAlgorithm = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.SigningAlgorithm").enummodule TokenType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.TokenType").enummodule diff --git a/google-cloud-confidential_computing-v1/proto_docs/google/cloud/confidentialcomputing/v1/service.rb b/google-cloud-confidential_computing-v1/proto_docs/google/cloud/confidentialcomputing/v1/service.rb index 453eff384837..77e28aec58c2 100644 --- a/google-cloud-confidential_computing-v1/proto_docs/google/cloud/confidentialcomputing/v1/service.rb +++ b/google-cloud-confidential_computing-v1/proto_docs/google/cloud/confidentialcomputing/v1/service.rb @@ -556,6 +556,10 @@ class VerifyConfidentialSpaceResponse # @!attribute [rw] options # @return [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest::ConfidentialGkeOptions] # Optional. A collection of fields that modify the token output. + # @!attribute [rw] platform_type + # @return [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest::PlatformType] + # Optional. Optional platform security architecture hint for the verifier + # engine. Defaults to `VIRTUALIZED_CVM` behavior if unspecified. class VerifyConfidentialGkeRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -578,6 +582,19 @@ class ConfidentialGkeOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + + # Platform types supported by Confidential GKE. + # This enum is not frozen, and new values may be added in the future. + module PlatformType + # Unspecified platform type, defaults to `VIRTUALIZED_CVM`. + PLATFORM_TYPE_UNSPECIFIED = 0 + + # Standard virtualized Confidential GKE VM. + VIRTUALIZED_CVM = 1 + + # Bare Metal host using a vTPM. + BARE_METAL_VTPM = 2 + end end # VerifyConfidentialGkeResponse response is returened once a Confidential GKE diff --git a/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_rest_test.rb b/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_rest_test.rb index 07b825add295..bafc581485bd 100644 --- a/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_rest_test.rb +++ b/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_rest_test.rb @@ -266,6 +266,7 @@ def test_verify_confidential_gke tpm_attestation = {} challenge = "hello world" options = {} + platform_type = :PLATFORM_TYPE_UNSPECIFIED verify_confidential_gke_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| assert options.metadata.key? :"x-goog-api-client" @@ -281,27 +282,27 @@ def test_verify_confidential_gke end # Use hash object - c.verify_confidential_gke({ tpm_attestation: tpm_attestation, challenge: challenge, options: options }) do |_result, response| + c.verify_confidential_gke({ tpm_attestation: tpm_attestation, challenge: challenge, options: options, platform_type: platform_type }) do |_result, response| assert_equal http_response, response.underlying_op end # Use named arguments - c.verify_confidential_gke tpm_attestation: tpm_attestation, challenge: challenge, options: options do |_result, response| + c.verify_confidential_gke tpm_attestation: tpm_attestation, challenge: challenge, options: options, platform_type: platform_type do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object - c.verify_confidential_gke ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new(tpm_attestation: tpm_attestation, challenge: challenge, options: options) do |_result, response| + c.verify_confidential_gke ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new(tpm_attestation: tpm_attestation, challenge: challenge, options: options, platform_type: platform_type) do |_result, response| assert_equal http_response, response.underlying_op end # Use hash object with options - c.verify_confidential_gke({ tpm_attestation: tpm_attestation, challenge: challenge, options: options }, call_options) do |_result, response| + c.verify_confidential_gke({ tpm_attestation: tpm_attestation, challenge: challenge, options: options, platform_type: platform_type }, call_options) do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object with options - c.verify_confidential_gke(::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new(tpm_attestation: tpm_attestation, challenge: challenge, options: options), call_options) do |_result, response| + c.verify_confidential_gke(::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new(tpm_attestation: tpm_attestation, challenge: challenge, options: options, platform_type: platform_type), call_options) do |_result, response| assert_equal http_response, response.underlying_op end diff --git a/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_test.rb b/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_test.rb index 3b7fe551048e..e0871b0cd23a 100644 --- a/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_test.rb +++ b/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_test.rb @@ -281,6 +281,7 @@ def test_verify_confidential_gke tpm_attestation = {} challenge = "hello world" options = {} + platform_type = :PLATFORM_TYPE_UNSPECIFIED verify_confidential_gke_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| assert_equal :verify_confidential_gke, name @@ -289,6 +290,7 @@ def test_verify_confidential_gke assert_equal :tpm_attestation, request.tee_attestation assert_equal "hello world", request["challenge"] assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest::ConfidentialGkeOptions), request["options"] + assert_equal :PLATFORM_TYPE_UNSPECIFIED, request["platform_type"] refute_nil options end @@ -299,31 +301,31 @@ def test_verify_confidential_gke end # Use hash object - c.verify_confidential_gke({ tpm_attestation: tpm_attestation, challenge: challenge, options: options }) do |response, operation| + c.verify_confidential_gke({ tpm_attestation: tpm_attestation, challenge: challenge, options: options, platform_type: platform_type }) do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end # Use named arguments - c.verify_confidential_gke tpm_attestation: tpm_attestation, challenge: challenge, options: options do |response, operation| + c.verify_confidential_gke tpm_attestation: tpm_attestation, challenge: challenge, options: options, platform_type: platform_type do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end # Use protobuf object - c.verify_confidential_gke ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new(tpm_attestation: tpm_attestation, challenge: challenge, options: options) do |response, operation| + c.verify_confidential_gke ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new(tpm_attestation: tpm_attestation, challenge: challenge, options: options, platform_type: platform_type) do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end # Use hash object with options - c.verify_confidential_gke({ tpm_attestation: tpm_attestation, challenge: challenge, options: options }, grpc_options) do |response, operation| + c.verify_confidential_gke({ tpm_attestation: tpm_attestation, challenge: challenge, options: options, platform_type: platform_type }, grpc_options) do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end # Use protobuf object with options - c.verify_confidential_gke(::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new(tpm_attestation: tpm_attestation, challenge: challenge, options: options), grpc_options) do |response, operation| + c.verify_confidential_gke(::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new(tpm_attestation: tpm_attestation, challenge: challenge, options: options, platform_type: platform_type), grpc_options) do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end diff --git a/google-cloud-dlp-v2/gapic_metadata.json b/google-cloud-dlp-v2/gapic_metadata.json index 2d460b34261e..41c07eed524f 100644 --- a/google-cloud-dlp-v2/gapic_metadata.json +++ b/google-cloud-dlp-v2/gapic_metadata.json @@ -284,6 +284,31 @@ "methods": [ "update_connection" ] + }, + "CreateContentPolicy": { + "methods": [ + "create_content_policy" + ] + }, + "UpdateContentPolicy": { + "methods": [ + "update_content_policy" + ] + }, + "GetContentPolicy": { + "methods": [ + "get_content_policy" + ] + }, + "ListContentPolicies": { + "methods": [ + "list_content_policies" + ] + }, + "DeleteContentPolicy": { + "methods": [ + "delete_content_policy" + ] } } } diff --git a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service.rb b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service.rb index ccaa5a19eba2..71692225fb61 100644 --- a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service.rb +++ b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service.rb @@ -36,7 +36,7 @@ module V2 # inspection, classification, and de-identification platform that works # on text, images, and Google Cloud storage repositories. # To learn more about concepts and find how-to guides see - # https://cloud.google.com/sensitive-data-protection/docs/. + # https://docs.cloud.google.com/sensitive-data-protection/docs/. # # @example Load this service and instantiate a gRPC client # diff --git a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/client.rb b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/client.rb index 90dc30dd71a5..8fef29e8efe3 100644 --- a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/client.rb +++ b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/client.rb @@ -32,7 +32,7 @@ module DlpService # inspection, classification, and de-identification platform that works # on text, images, and Google Cloud storage repositories. # To learn more about concepts and find how-to guides see - # https://cloud.google.com/sensitive-data-protection/docs/. + # https://docs.cloud.google.com/sensitive-data-protection/docs/. # class Client # @private @@ -404,9 +404,9 @@ def logger # be all types, but may change over time as detectors are updated. # # For how to guides, see - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-images + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-images # and - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-text, + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-text, # # @overload inspect_content(request, options = nil) # Pass arguments to `inspect_content` via a request object, either of type @@ -428,7 +428,7 @@ def logger # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -522,7 +522,7 @@ def inspect_content request, options = nil # Redacts potentially sensitive info from an image. # This method has limits on input size, processing time, and output size. # See - # https://cloud.google.com/sensitive-data-protection/docs/redacting-sensitive-data-images + # https://docs.cloud.google.com/sensitive-data-protection/docs/redacting-sensitive-data-images # to learn more. # # When no InfoTypes or CustomInfoTypes are specified in this request, the @@ -552,7 +552,7 @@ def inspect_content request, options = nil # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -661,7 +661,7 @@ def redact_image request, options = nil # De-identifies potentially sensitive info from a ContentItem. # This method has limits on input size and output size. # See - # https://cloud.google.com/sensitive-data-protection/docs/deidentify-sensitive-data + # https://docs.cloud.google.com/sensitive-data-protection/docs/deidentify-sensitive-data # to learn more. # # When no InfoTypes or CustomInfoTypes are specified in this request, the @@ -688,7 +688,7 @@ def redact_image request, options = nil # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -799,7 +799,7 @@ def deidentify_content request, options = nil ## # Re-identifies content that has been de-identified. # See - # https://cloud.google.com/sensitive-data-protection/docs/pseudonymization#re-identification_in_free_text_code_example + # https://docs.cloud.google.com/sensitive-data-protection/docs/pseudonymization#re-identification_in_free_text_code_example # to learn more. # # @overload reidentify_content(request, options = nil) @@ -822,7 +822,7 @@ def deidentify_content request, options = nil # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -933,7 +933,7 @@ def reidentify_content request, options = nil ## # Returns a list of the sensitive information types that the DLP API # supports. See - # https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference + # https://docs.cloud.google.com/sensitive-data-protection/docs/infotypes-reference # to learn more. # # @overload list_info_types(request, options = nil) @@ -1027,7 +1027,7 @@ def list_info_types request, options = nil # Creates an InspectTemplate for reusing frequently used configuration # for inspecting content, images, and storage. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. # # @overload create_inspect_template(request, options = nil) @@ -1050,7 +1050,7 @@ def list_info_types request, options = nil # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -1143,7 +1143,7 @@ def create_inspect_template request, options = nil ## # Updates the InspectTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. # # @overload update_inspect_template(request, options = nil) @@ -1237,7 +1237,7 @@ def update_inspect_template request, options = nil ## # Gets an InspectTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. # # @overload get_inspect_template(request, options = nil) @@ -1327,7 +1327,7 @@ def get_inspect_template request, options = nil ## # Lists InspectTemplates. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. # # @overload list_inspect_templates(request, options = nil) @@ -1350,7 +1350,7 @@ def get_inspect_template request, options = nil # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -1462,7 +1462,7 @@ def list_inspect_templates request, options = nil ## # Deletes an InspectTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. # # @overload delete_inspect_template(request, options = nil) @@ -1553,7 +1553,7 @@ def delete_inspect_template request, options = nil # Creates a DeidentifyTemplate for reusing frequently used configuration # for de-identifying content, images, and storage. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. # # @overload create_deidentify_template(request, options = nil) @@ -1576,7 +1576,7 @@ def delete_inspect_template request, options = nil # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -1669,7 +1669,7 @@ def create_deidentify_template request, options = nil ## # Updates the DeidentifyTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. # # @overload update_deidentify_template(request, options = nil) @@ -1764,7 +1764,7 @@ def update_deidentify_template request, options = nil ## # Gets a DeidentifyTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. # # @overload get_deidentify_template(request, options = nil) @@ -1854,7 +1854,7 @@ def get_deidentify_template request, options = nil ## # Lists DeidentifyTemplates. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. # # @overload list_deidentify_templates(request, options = nil) @@ -1877,7 +1877,7 @@ def get_deidentify_template request, options = nil # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -1989,7 +1989,7 @@ def list_deidentify_templates request, options = nil ## # Deletes a DeidentifyTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. # # @overload delete_deidentify_template(request, options = nil) @@ -2081,7 +2081,7 @@ def delete_deidentify_template request, options = nil # Creates a job trigger to run DLP actions such as scanning storage for # sensitive information on a set schedule. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. # # @overload create_job_trigger(request, options = nil) @@ -2104,7 +2104,7 @@ def delete_deidentify_template request, options = nil # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -2193,7 +2193,7 @@ def create_job_trigger request, options = nil ## # Updates a job trigger. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. # # @overload update_job_trigger(request, options = nil) @@ -2376,7 +2376,7 @@ def hybrid_inspect_job_trigger request, options = nil ## # Gets a job trigger. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. # # @overload get_job_trigger(request, options = nil) @@ -2465,7 +2465,7 @@ def get_job_trigger request, options = nil ## # Lists job triggers. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. # # @overload list_job_triggers(request, options = nil) @@ -2488,7 +2488,7 @@ def get_job_trigger request, options = nil # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -2627,7 +2627,7 @@ def list_job_triggers request, options = nil ## # Deletes a job trigger. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. # # @overload delete_job_trigger(request, options = nil) @@ -3290,9 +3290,9 @@ def delete_discovery_config request, options = nil ## # Creates a new job to inspect storage or calculate risk metrics. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. # # When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the @@ -3319,7 +3319,7 @@ def delete_discovery_config request, options = nil # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -3415,9 +3415,9 @@ def create_dlp_job request, options = nil ## # Lists DlpJobs that match the specified filter in the request. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. # # @overload list_dlp_jobs(request, options = nil) @@ -3440,7 +3440,7 @@ def create_dlp_job request, options = nil # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -3579,9 +3579,9 @@ def list_dlp_jobs request, options = nil ## # Gets the latest state of a long-running DlpJob. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. # # @overload get_dlp_job(request, options = nil) @@ -3671,9 +3671,9 @@ def get_dlp_job request, options = nil # no longer interested in the DlpJob result. The job will be canceled if # possible. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. # # @overload delete_dlp_job(request, options = nil) @@ -3763,9 +3763,9 @@ def delete_dlp_job request, options = nil # makes a best effort to cancel the DlpJob, but success is not # guaranteed. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. # # @overload cancel_dlp_job(request, options = nil) @@ -3853,7 +3853,7 @@ def cancel_dlp_job request, options = nil ## # Creates a pre-built stored infoType to be used for inspection. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. # # @overload create_stored_info_type(request, options = nil) @@ -3876,7 +3876,7 @@ def cancel_dlp_job request, options = nil # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -3970,7 +3970,7 @@ def create_stored_info_type request, options = nil # Updates the stored infoType by creating a new version. The existing version # will continue to be used until the new version is ready. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. # # @overload update_stored_info_type(request, options = nil) @@ -4066,7 +4066,7 @@ def update_stored_info_type request, options = nil ## # Gets a stored infoType. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. # # @overload get_stored_info_type(request, options = nil) @@ -4156,7 +4156,7 @@ def get_stored_info_type request, options = nil ## # Lists stored infoTypes. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. # # @overload list_stored_info_types(request, options = nil) @@ -4179,7 +4179,7 @@ def get_stored_info_type request, options = nil # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -4288,7 +4288,7 @@ def list_stored_info_types request, options = nil ## # Deletes a stored infoType. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. # # @overload delete_stored_info_type(request, options = nil) @@ -6242,6 +6242,465 @@ def update_connection request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Create a ContentPolicy. + # + # @overload create_content_policy(request, options = nil) + # Pass arguments to `create_content_policy` via a request object, either of type + # {::Google::Cloud::Dlp::V2::CreateContentPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dlp::V2::CreateContentPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload create_content_policy(parent: nil, content_policy: nil, content_policy_id: nil) + # Pass arguments to `create_content_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. Parent resource name. + # + # The format of this value varies depending on the scope of the request + # (project): + # + # + Projects scope: + # `projects/{project_id}/locations/{location_id}` + # @param content_policy [::Google::Cloud::Dlp::V2::ContentPolicy, ::Hash] + # Required. The content_policy resource. + # @param content_policy_id [::String] + # Optional. The content policy ID can contain uppercase and lowercase + # letters, numbers, and hyphens; that is, it must match the regular + # expression: + # `[a-zA-Z\d-_]+`. + # The maximum length is 100 characters. If empty, the system will generate + # a random id. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Dlp::V2::ContentPolicy] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Dlp::V2::ContentPolicy] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dlp/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dlp::V2::DlpService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dlp::V2::CreateContentPolicyRequest.new + # + # # Call the create_content_policy method. + # result = client.create_content_policy request + # + # # The returned object is of type Google::Cloud::Dlp::V2::ContentPolicy. + # p result + # + def create_content_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dlp::V2::CreateContentPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.create_content_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dlp::V2::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.create_content_policy.timeout, + metadata: metadata, + retry_policy: @config.rpcs.create_content_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @dlp_service_stub.call_rpc :create_content_policy, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Update a ContentPolicy. + # + # @overload update_content_policy(request, options = nil) + # Pass arguments to `update_content_policy` via a request object, either of type + # {::Google::Cloud::Dlp::V2::UpdateContentPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dlp::V2::UpdateContentPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload update_content_policy(name: nil, content_policy: nil, update_mask: nil) + # Pass arguments to `update_content_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. Resource name in the format: + # `projects/{project}/locations/{location}/contentPolicies/{content_policy}`. + # @param content_policy [::Google::Cloud::Dlp::V2::ContentPolicy, ::Hash] + # Required. The content_policy with new values for the relevant fields. + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Optional. Mask to control which fields get updated. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Dlp::V2::ContentPolicy] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Dlp::V2::ContentPolicy] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dlp/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dlp::V2::DlpService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dlp::V2::UpdateContentPolicyRequest.new + # + # # Call the update_content_policy method. + # result = client.update_content_policy request + # + # # The returned object is of type Google::Cloud::Dlp::V2::ContentPolicy. + # p result + # + def update_content_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dlp::V2::UpdateContentPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.update_content_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dlp::V2::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.update_content_policy.timeout, + metadata: metadata, + retry_policy: @config.rpcs.update_content_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @dlp_service_stub.call_rpc :update_content_policy, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Get a ContentPolicy. + # + # @overload get_content_policy(request, options = nil) + # Pass arguments to `get_content_policy` via a request object, either of type + # {::Google::Cloud::Dlp::V2::GetContentPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dlp::V2::GetContentPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_content_policy(name: nil) + # Pass arguments to `get_content_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. Resource name in the format: + # `projects/{project}/locations/{location}/contentPolicies/{content_policy}`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Dlp::V2::ContentPolicy] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Dlp::V2::ContentPolicy] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dlp/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dlp::V2::DlpService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dlp::V2::GetContentPolicyRequest.new + # + # # Call the get_content_policy method. + # result = client.get_content_policy request + # + # # The returned object is of type Google::Cloud::Dlp::V2::ContentPolicy. + # p result + # + def get_content_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dlp::V2::GetContentPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_content_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dlp::V2::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_content_policy.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_content_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @dlp_service_stub.call_rpc :get_content_policy, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists ContentPolicies in a parent. + # + # @overload list_content_policies(request, options = nil) + # Pass arguments to `list_content_policies` via a request object, either of type + # {::Google::Cloud::Dlp::V2::ListContentPoliciesRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dlp::V2::ListContentPoliciesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_content_policies(parent: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_content_policies` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. Resource name of the project, + # for example, `projects/project-id/locations/asia`. + # @param page_size [::Integer] + # Optional. Number of results per page, max 1000. + # @param page_token [::String] + # Optional. Page token from a previous page to return the next set of + # results. If set, all other request fields must match the original request. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Dlp::V2::ContentPolicy>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Cloud::Dlp::V2::ContentPolicy>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dlp/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dlp::V2::DlpService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dlp::V2::ListContentPoliciesRequest.new + # + # # Call the list_content_policies method. + # result = client.list_content_policies request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::Dlp::V2::ContentPolicy. + # p item + # end + # + def list_content_policies request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dlp::V2::ListContentPoliciesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_content_policies.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dlp::V2::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_content_policies.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_content_policies.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @dlp_service_stub.call_rpc :list_content_policies, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @dlp_service_stub, :list_content_policies, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Delete a ContentPolicy. + # + # @overload delete_content_policy(request, options = nil) + # Pass arguments to `delete_content_policy` via a request object, either of type + # {::Google::Cloud::Dlp::V2::DeleteContentPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dlp::V2::DeleteContentPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload delete_content_policy(name: nil) + # Pass arguments to `delete_content_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. Resource name of the ContentPolicy to be deleted, in the format: + # `projects/{project}/locations/{location}/contentPolicies/{content_policy}`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Protobuf::Empty] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dlp/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dlp::V2::DlpService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dlp::V2::DeleteContentPolicyRequest.new + # + # # Call the delete_content_policy method. + # result = client.delete_content_policy request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_content_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dlp::V2::DeleteContentPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.delete_content_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dlp::V2::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.delete_content_policy.timeout, + metadata: metadata, + retry_policy: @config.rpcs.delete_content_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @dlp_service_stub.call_rpc :delete_content_policy, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the DlpService API. # @@ -6702,6 +7161,31 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :update_connection + ## + # RPC-specific configuration for `create_content_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :create_content_policy + ## + # RPC-specific configuration for `update_content_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :update_content_policy + ## + # RPC-specific configuration for `get_content_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :get_content_policy + ## + # RPC-specific configuration for `list_content_policies` + # @return [::Gapic::Config::Method] + # + attr_reader :list_content_policies + ## + # RPC-specific configuration for `delete_content_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_content_policy # @private def initialize parent_rpcs = nil @@ -6815,6 +7299,16 @@ def initialize parent_rpcs = nil @delete_connection = ::Gapic::Config::Method.new delete_connection_config update_connection_config = parent_rpcs.update_connection if parent_rpcs.respond_to? :update_connection @update_connection = ::Gapic::Config::Method.new update_connection_config + create_content_policy_config = parent_rpcs.create_content_policy if parent_rpcs.respond_to? :create_content_policy + @create_content_policy = ::Gapic::Config::Method.new create_content_policy_config + update_content_policy_config = parent_rpcs.update_content_policy if parent_rpcs.respond_to? :update_content_policy + @update_content_policy = ::Gapic::Config::Method.new update_content_policy_config + get_content_policy_config = parent_rpcs.get_content_policy if parent_rpcs.respond_to? :get_content_policy + @get_content_policy = ::Gapic::Config::Method.new get_content_policy_config + list_content_policies_config = parent_rpcs.list_content_policies if parent_rpcs.respond_to? :list_content_policies + @list_content_policies = ::Gapic::Config::Method.new list_content_policies_config + delete_content_policy_config = parent_rpcs.delete_content_policy if parent_rpcs.respond_to? :delete_content_policy + @delete_content_policy = ::Gapic::Config::Method.new delete_content_policy_config yield self if block_given? end diff --git a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/paths.rb b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/paths.rb index 4c148d8109b7..2eac3141a212 100644 --- a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/paths.rb +++ b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/paths.rb @@ -110,6 +110,25 @@ def connection_path **args resource.call(**args) end + ## + # Create a fully-qualified ContentPolicy resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/contentPolicies/{content_policy}` + # + # @param project [String] + # @param location [String] + # @param content_policy [String] + # + # @return [::String] + def content_policy_path project:, location:, content_policy: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + + "projects/#{project}/locations/#{location}/contentPolicies/#{content_policy}" + end + ## # Create a fully-qualified DeidentifyTemplate resource string. # diff --git a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest.rb b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest.rb index df7b88e14adc..1ca1e8fe26ab 100644 --- a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest.rb +++ b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest.rb @@ -35,7 +35,7 @@ module V2 # inspection, classification, and de-identification platform that works # on text, images, and Google Cloud storage repositories. # To learn more about concepts and find how-to guides see - # https://cloud.google.com/sensitive-data-protection/docs/. + # https://docs.cloud.google.com/sensitive-data-protection/docs/. # # To load this service and instantiate a REST client: # diff --git a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest/client.rb b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest/client.rb index 6d5333267e0d..2b72795f83e4 100644 --- a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest/client.rb +++ b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest/client.rb @@ -34,7 +34,7 @@ module Rest # inspection, classification, and de-identification platform that works # on text, images, and Google Cloud storage repositories. # To learn more about concepts and find how-to guides see - # https://cloud.google.com/sensitive-data-protection/docs/. + # https://docs.cloud.google.com/sensitive-data-protection/docs/. # class Client # @private @@ -397,9 +397,9 @@ def logger # be all types, but may change over time as detectors are updated. # # For how to guides, see - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-images + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-images # and - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-text, + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-text, # # @overload inspect_content(request, options = nil) # Pass arguments to `inspect_content` via a request object, either of type @@ -421,7 +421,7 @@ def logger # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -508,7 +508,7 @@ def inspect_content request, options = nil # Redacts potentially sensitive info from an image. # This method has limits on input size, processing time, and output size. # See - # https://cloud.google.com/sensitive-data-protection/docs/redacting-sensitive-data-images + # https://docs.cloud.google.com/sensitive-data-protection/docs/redacting-sensitive-data-images # to learn more. # # When no InfoTypes or CustomInfoTypes are specified in this request, the @@ -538,7 +538,7 @@ def inspect_content request, options = nil # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -640,7 +640,7 @@ def redact_image request, options = nil # De-identifies potentially sensitive info from a ContentItem. # This method has limits on input size and output size. # See - # https://cloud.google.com/sensitive-data-protection/docs/deidentify-sensitive-data + # https://docs.cloud.google.com/sensitive-data-protection/docs/deidentify-sensitive-data # to learn more. # # When no InfoTypes or CustomInfoTypes are specified in this request, the @@ -667,7 +667,7 @@ def redact_image request, options = nil # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -771,7 +771,7 @@ def deidentify_content request, options = nil ## # Re-identifies content that has been de-identified. # See - # https://cloud.google.com/sensitive-data-protection/docs/pseudonymization#re-identification_in_free_text_code_example + # https://docs.cloud.google.com/sensitive-data-protection/docs/pseudonymization#re-identification_in_free_text_code_example # to learn more. # # @overload reidentify_content(request, options = nil) @@ -794,7 +794,7 @@ def deidentify_content request, options = nil # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -898,7 +898,7 @@ def reidentify_content request, options = nil ## # Returns a list of the sensitive information types that the DLP API # supports. See - # https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference + # https://docs.cloud.google.com/sensitive-data-protection/docs/infotypes-reference # to learn more. # # @overload list_info_types(request, options = nil) @@ -993,7 +993,7 @@ def list_info_types request, options = nil # Creates an InspectTemplate for reusing frequently used configuration # for inspecting content, images, and storage. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. # # @overload create_inspect_template(request, options = nil) @@ -1016,7 +1016,7 @@ def list_info_types request, options = nil # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -1102,7 +1102,7 @@ def create_inspect_template request, options = nil ## # Updates the InspectTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. # # @overload update_inspect_template(request, options = nil) @@ -1189,7 +1189,7 @@ def update_inspect_template request, options = nil ## # Gets an InspectTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. # # @overload get_inspect_template(request, options = nil) @@ -1272,7 +1272,7 @@ def get_inspect_template request, options = nil ## # Lists InspectTemplates. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. # # @overload list_inspect_templates(request, options = nil) @@ -1295,7 +1295,7 @@ def get_inspect_template request, options = nil # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -1400,7 +1400,7 @@ def list_inspect_templates request, options = nil ## # Deletes an InspectTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. # # @overload delete_inspect_template(request, options = nil) @@ -1484,7 +1484,7 @@ def delete_inspect_template request, options = nil # Creates a DeidentifyTemplate for reusing frequently used configuration # for de-identifying content, images, and storage. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. # # @overload create_deidentify_template(request, options = nil) @@ -1507,7 +1507,7 @@ def delete_inspect_template request, options = nil # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -1593,7 +1593,7 @@ def create_deidentify_template request, options = nil ## # Updates the DeidentifyTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. # # @overload update_deidentify_template(request, options = nil) @@ -1681,7 +1681,7 @@ def update_deidentify_template request, options = nil ## # Gets a DeidentifyTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. # # @overload get_deidentify_template(request, options = nil) @@ -1764,7 +1764,7 @@ def get_deidentify_template request, options = nil ## # Lists DeidentifyTemplates. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. # # @overload list_deidentify_templates(request, options = nil) @@ -1787,7 +1787,7 @@ def get_deidentify_template request, options = nil # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -1892,7 +1892,7 @@ def list_deidentify_templates request, options = nil ## # Deletes a DeidentifyTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. # # @overload delete_deidentify_template(request, options = nil) @@ -1977,7 +1977,7 @@ def delete_deidentify_template request, options = nil # Creates a job trigger to run DLP actions such as scanning storage for # sensitive information on a set schedule. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. # # @overload create_job_trigger(request, options = nil) @@ -2000,7 +2000,7 @@ def delete_deidentify_template request, options = nil # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -2082,7 +2082,7 @@ def create_job_trigger request, options = nil ## # Updates a job trigger. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. # # @overload update_job_trigger(request, options = nil) @@ -2251,7 +2251,7 @@ def hybrid_inspect_job_trigger request, options = nil ## # Gets a job trigger. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. # # @overload get_job_trigger(request, options = nil) @@ -2333,7 +2333,7 @@ def get_job_trigger request, options = nil ## # Lists job triggers. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. # # @overload list_job_triggers(request, options = nil) @@ -2356,7 +2356,7 @@ def get_job_trigger request, options = nil # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -2488,7 +2488,7 @@ def list_job_triggers request, options = nil ## # Deletes a job trigger. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. # # @overload delete_job_trigger(request, options = nil) @@ -3102,9 +3102,9 @@ def delete_discovery_config request, options = nil ## # Creates a new job to inspect storage or calculate risk metrics. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. # # When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the @@ -3131,7 +3131,7 @@ def delete_discovery_config request, options = nil # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -3220,9 +3220,9 @@ def create_dlp_job request, options = nil ## # Lists DlpJobs that match the specified filter in the request. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. # # @overload list_dlp_jobs(request, options = nil) @@ -3245,7 +3245,7 @@ def create_dlp_job request, options = nil # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -3377,9 +3377,9 @@ def list_dlp_jobs request, options = nil ## # Gets the latest state of a long-running DlpJob. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. # # @overload get_dlp_job(request, options = nil) @@ -3462,9 +3462,9 @@ def get_dlp_job request, options = nil # no longer interested in the DlpJob result. The job will be canceled if # possible. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. # # @overload delete_dlp_job(request, options = nil) @@ -3547,9 +3547,9 @@ def delete_dlp_job request, options = nil # makes a best effort to cancel the DlpJob, but success is not # guaranteed. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. # # @overload cancel_dlp_job(request, options = nil) @@ -3630,7 +3630,7 @@ def cancel_dlp_job request, options = nil ## # Creates a pre-built stored infoType to be used for inspection. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. # # @overload create_stored_info_type(request, options = nil) @@ -3653,7 +3653,7 @@ def cancel_dlp_job request, options = nil # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -3740,7 +3740,7 @@ def create_stored_info_type request, options = nil # Updates the stored infoType by creating a new version. The existing version # will continue to be used until the new version is ready. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. # # @overload update_stored_info_type(request, options = nil) @@ -3829,7 +3829,7 @@ def update_stored_info_type request, options = nil ## # Gets a stored infoType. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. # # @overload get_stored_info_type(request, options = nil) @@ -3912,7 +3912,7 @@ def get_stored_info_type request, options = nil ## # Lists stored infoTypes. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. # # @overload list_stored_info_types(request, options = nil) @@ -3935,7 +3935,7 @@ def get_stored_info_type request, options = nil # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -4037,7 +4037,7 @@ def list_stored_info_types request, options = nil ## # Deletes a stored infoType. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. # # @overload delete_stored_info_type(request, options = nil) @@ -5858,6 +5858,430 @@ def update_connection request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Create a ContentPolicy. + # + # @overload create_content_policy(request, options = nil) + # Pass arguments to `create_content_policy` via a request object, either of type + # {::Google::Cloud::Dlp::V2::CreateContentPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dlp::V2::CreateContentPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_content_policy(parent: nil, content_policy: nil, content_policy_id: nil) + # Pass arguments to `create_content_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. Parent resource name. + # + # The format of this value varies depending on the scope of the request + # (project): + # + # + Projects scope: + # `projects/{project_id}/locations/{location_id}` + # @param content_policy [::Google::Cloud::Dlp::V2::ContentPolicy, ::Hash] + # Required. The content_policy resource. + # @param content_policy_id [::String] + # Optional. The content policy ID can contain uppercase and lowercase + # letters, numbers, and hyphens; that is, it must match the regular + # expression: + # `[a-zA-Z\d-_]+`. + # The maximum length is 100 characters. If empty, the system will generate + # a random id. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dlp::V2::ContentPolicy] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dlp::V2::ContentPolicy] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dlp/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dlp::V2::DlpService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dlp::V2::CreateContentPolicyRequest.new + # + # # Call the create_content_policy method. + # result = client.create_content_policy request + # + # # The returned object is of type Google::Cloud::Dlp::V2::ContentPolicy. + # p result + # + def create_content_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dlp::V2::CreateContentPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_content_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dlp::V2::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_content_policy.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_content_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @dlp_service_stub.create_content_policy request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Update a ContentPolicy. + # + # @overload update_content_policy(request, options = nil) + # Pass arguments to `update_content_policy` via a request object, either of type + # {::Google::Cloud::Dlp::V2::UpdateContentPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dlp::V2::UpdateContentPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload update_content_policy(name: nil, content_policy: nil, update_mask: nil) + # Pass arguments to `update_content_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. Resource name in the format: + # `projects/{project}/locations/{location}/contentPolicies/{content_policy}`. + # @param content_policy [::Google::Cloud::Dlp::V2::ContentPolicy, ::Hash] + # Required. The content_policy with new values for the relevant fields. + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Optional. Mask to control which fields get updated. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dlp::V2::ContentPolicy] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dlp::V2::ContentPolicy] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dlp/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dlp::V2::DlpService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dlp::V2::UpdateContentPolicyRequest.new + # + # # Call the update_content_policy method. + # result = client.update_content_policy request + # + # # The returned object is of type Google::Cloud::Dlp::V2::ContentPolicy. + # p result + # + def update_content_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dlp::V2::UpdateContentPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.update_content_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dlp::V2::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.update_content_policy.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.update_content_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @dlp_service_stub.update_content_policy request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Get a ContentPolicy. + # + # @overload get_content_policy(request, options = nil) + # Pass arguments to `get_content_policy` via a request object, either of type + # {::Google::Cloud::Dlp::V2::GetContentPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dlp::V2::GetContentPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_content_policy(name: nil) + # Pass arguments to `get_content_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. Resource name in the format: + # `projects/{project}/locations/{location}/contentPolicies/{content_policy}`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dlp::V2::ContentPolicy] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dlp::V2::ContentPolicy] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dlp/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dlp::V2::DlpService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dlp::V2::GetContentPolicyRequest.new + # + # # Call the get_content_policy method. + # result = client.get_content_policy request + # + # # The returned object is of type Google::Cloud::Dlp::V2::ContentPolicy. + # p result + # + def get_content_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dlp::V2::GetContentPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_content_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dlp::V2::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_content_policy.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_content_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @dlp_service_stub.get_content_policy request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists ContentPolicies in a parent. + # + # @overload list_content_policies(request, options = nil) + # Pass arguments to `list_content_policies` via a request object, either of type + # {::Google::Cloud::Dlp::V2::ListContentPoliciesRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dlp::V2::ListContentPoliciesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_content_policies(parent: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_content_policies` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. Resource name of the project, + # for example, `projects/project-id/locations/asia`. + # @param page_size [::Integer] + # Optional. Number of results per page, max 1000. + # @param page_token [::String] + # Optional. Page token from a previous page to return the next set of + # results. If set, all other request fields must match the original request. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Dlp::V2::ContentPolicy>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Dlp::V2::ContentPolicy>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dlp/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dlp::V2::DlpService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dlp::V2::ListContentPoliciesRequest.new + # + # # Call the list_content_policies method. + # result = client.list_content_policies request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::Dlp::V2::ContentPolicy. + # p item + # end + # + def list_content_policies request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dlp::V2::ListContentPoliciesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_content_policies.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dlp::V2::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_content_policies.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_content_policies.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @dlp_service_stub.list_content_policies request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @dlp_service_stub, :list_content_policies, "content_policies", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Delete a ContentPolicy. + # + # @overload delete_content_policy(request, options = nil) + # Pass arguments to `delete_content_policy` via a request object, either of type + # {::Google::Cloud::Dlp::V2::DeleteContentPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dlp::V2::DeleteContentPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_content_policy(name: nil) + # Pass arguments to `delete_content_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. Resource name of the ContentPolicy to be deleted, in the format: + # `projects/{project}/locations/{location}/contentPolicies/{content_policy}`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dlp/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dlp::V2::DlpService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dlp::V2::DeleteContentPolicyRequest.new + # + # # Call the delete_content_policy method. + # result = client.delete_content_policy request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_content_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dlp::V2::DeleteContentPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_content_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dlp::V2::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_content_policy.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_content_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @dlp_service_stub.delete_content_policy request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the DlpService REST API. # @@ -6281,6 +6705,31 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :update_connection + ## + # RPC-specific configuration for `create_content_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :create_content_policy + ## + # RPC-specific configuration for `update_content_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :update_content_policy + ## + # RPC-specific configuration for `get_content_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :get_content_policy + ## + # RPC-specific configuration for `list_content_policies` + # @return [::Gapic::Config::Method] + # + attr_reader :list_content_policies + ## + # RPC-specific configuration for `delete_content_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_content_policy # @private def initialize parent_rpcs = nil @@ -6394,6 +6843,16 @@ def initialize parent_rpcs = nil @delete_connection = ::Gapic::Config::Method.new delete_connection_config update_connection_config = parent_rpcs.update_connection if parent_rpcs.respond_to? :update_connection @update_connection = ::Gapic::Config::Method.new update_connection_config + create_content_policy_config = parent_rpcs.create_content_policy if parent_rpcs.respond_to? :create_content_policy + @create_content_policy = ::Gapic::Config::Method.new create_content_policy_config + update_content_policy_config = parent_rpcs.update_content_policy if parent_rpcs.respond_to? :update_content_policy + @update_content_policy = ::Gapic::Config::Method.new update_content_policy_config + get_content_policy_config = parent_rpcs.get_content_policy if parent_rpcs.respond_to? :get_content_policy + @get_content_policy = ::Gapic::Config::Method.new get_content_policy_config + list_content_policies_config = parent_rpcs.list_content_policies if parent_rpcs.respond_to? :list_content_policies + @list_content_policies = ::Gapic::Config::Method.new list_content_policies_config + delete_content_policy_config = parent_rpcs.delete_content_policy if parent_rpcs.respond_to? :delete_content_policy + @delete_content_policy = ::Gapic::Config::Method.new delete_content_policy_config yield self if block_given? end diff --git a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest/service_stub.rb b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest/service_stub.rb index 4e03e7d64795..0395ab42ba16 100644 --- a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest/service_stub.rb +++ b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest/service_stub.rb @@ -2273,6 +2273,206 @@ def update_connection request_pb, options = nil end end + ## + # Baseline implementation for the create_content_policy REST call + # + # @param request_pb [::Google::Cloud::Dlp::V2::CreateContentPolicyRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dlp::V2::ContentPolicy] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dlp::V2::ContentPolicy] + # A result object deserialized from the server's reply + def create_content_policy request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_content_policy_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_content_policy", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dlp::V2::ContentPolicy.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the update_content_policy REST call + # + # @param request_pb [::Google::Cloud::Dlp::V2::UpdateContentPolicyRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dlp::V2::ContentPolicy] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dlp::V2::ContentPolicy] + # A result object deserialized from the server's reply + def update_content_policy request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_update_content_policy_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "update_content_policy", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dlp::V2::ContentPolicy.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_content_policy REST call + # + # @param request_pb [::Google::Cloud::Dlp::V2::GetContentPolicyRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dlp::V2::ContentPolicy] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dlp::V2::ContentPolicy] + # A result object deserialized from the server's reply + def get_content_policy request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_content_policy_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_content_policy", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dlp::V2::ContentPolicy.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_content_policies REST call + # + # @param request_pb [::Google::Cloud::Dlp::V2::ListContentPoliciesRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dlp::V2::ListContentPoliciesResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dlp::V2::ListContentPoliciesResponse] + # A result object deserialized from the server's reply + def list_content_policies request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_content_policies_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_content_policies", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dlp::V2::ListContentPoliciesResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_content_policy REST call + # + # @param request_pb [::Google::Cloud::Dlp::V2::DeleteContentPolicyRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # A result object deserialized from the server's reply + def delete_content_policy request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_content_policy_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_content_policy", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # @private # @@ -4110,6 +4310,113 @@ def self.transcode_update_connection_request request_pb ) transcoder.transcode request_pb end + + ## + # @private + # + # GRPC transcoding helper method for the create_content_policy REST call + # + # @param request_pb [::Google::Cloud::Dlp::V2::CreateContentPolicyRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_content_policy_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v2/{parent}/contentPolicies", + body: "*", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the update_content_policy REST call + # + # @param request_pb [::Google::Cloud::Dlp::V2::UpdateContentPolicyRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_update_content_policy_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :patch, + uri_template: "/v2/{name}", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/contentPolicies/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_content_policy REST call + # + # @param request_pb [::Google::Cloud::Dlp::V2::GetContentPolicyRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_content_policy_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v2/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/contentPolicies/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_content_policies REST call + # + # @param request_pb [::Google::Cloud::Dlp::V2::ListContentPoliciesRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_content_policies_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v2/{parent}/contentPolicies", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_content_policy REST call + # + # @param request_pb [::Google::Cloud::Dlp::V2::DeleteContentPolicyRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_content_policy_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v2/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/contentPolicies/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end end end end diff --git a/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/dlp_pb.rb b/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/dlp_pb.rb index a2b6e7722569..bec0f3af630d 100644 --- a/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/dlp_pb.rb +++ b/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/dlp_pb.rb @@ -19,7 +19,7 @@ require 'google/type/timeofday_pb' -descriptor_data = "\n\x1fgoogle/privacy/dlp/v2/dlp.proto\x12\x15google.privacy.dlp.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/privacy/dlp/v2/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\"G\n\x10\x45xcludeInfoTypes\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\"\xa8\x01\n\x10\x45xcludeByHotword\x12\x42\n\rhotword_regex\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.Regex\x12P\n\tproximity\x18\x02 \x01(\x0b\x32=.google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity\"\x9a\x01\n\x16\x45xcludeByImageFindings\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12K\n\x16image_containment_type\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.ImageContainmentType\"\xbb\x03\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\x45\n\x12\x65xclude_by_hotword\x18\x05 \x01(\x0b\x32\'.google.privacy.dlp.v2.ExcludeByHotwordH\x00\x12R\n\x19\x65xclude_by_image_findings\x18\x06 \x01(\x0b\x32-.google.privacy.dlp.v2.ExcludeByImageFindingsH\x00\x12:\n\rmatching_type\x18\x04 \x01(\x0e\x32#.google.privacy.dlp.v2.MatchingTypeB\x06\n\x04type\"\xc7\x01\n\x19\x41\x64justByMatchingInfoTypes\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:\n\rmatching_type\x18\x03 \x01(\x0e\x32#.google.privacy.dlp.v2.MatchingType\"\xd4\x01\n\x15\x41\x64justByImageFindings\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\x12K\n\x16image_containment_type\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.ImageContainmentType\"\xb4\x02\n\x0e\x41\x64justmentRule\x12Y\n\x1d\x61\x64just_by_matching_info_types\x18\x01 \x01(\x0b\x32\x30.google.privacy.dlp.v2.AdjustByMatchingInfoTypesH\x00\x12P\n\x18\x61\x64just_by_image_findings\x18\x03 \x01(\x0b\x32,.google.privacy.dlp.v2.AdjustByImageFindingsH\x00\x12g\n\x15likelihood_adjustment\x18\x02 \x01(\x0b\x32H.google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustmentB\x0c\n\nconditions\"\xf3\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\x12@\n\x0f\x61\x64justment_rule\x18\x03 \x01(\x0b\x32%.google.privacy.dlp.v2.AdjustmentRuleH\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\"\xac\x07\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]\n\x1cmin_likelihood_per_info_type\x18\x0b \x03(\x0b\x32\x37.google.privacy.dlp.v2.InspectConfig.InfoTypeLikelihood\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\x83\x01\n\x12InfoTypeLikelihood\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x39\n\x0emin_likelihood\x18\x02 \x01(\x0e\x32!.google.privacy.dlp.v2.Likelihood\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\"\xf9\x02\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\"\x97\x02\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\x11\n\rWORD_DOCUMENT\x10\x07\x12\x07\n\x03PDF\x10\x08\x12\x17\n\x13POWERPOINT_DOCUMENT\x10\t\x12\x12\n\x0e\x45XCEL_DOCUMENT\x10\n\x12\x08\n\x04\x41VRO\x10\x0b\x12\x07\n\x03\x43SV\x10\x0c\x12\x07\n\x03TSV\x10\r\x12\t\n\x05\x41UDIO\x10\x0f\x12\t\n\x05VIDEO\x10\x10\x12\x0e\n\nEXECUTABLE\x10\x11\x12\x0c\n\x08\x41I_MODEL\x10\x12\"\xdd\x02\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\x12;\n\x0c\x63onversation\x18\x07 \x01(\x0b\x32#.google.privacy.dlp.v2.ConversationH\x00\x12\x45\n\x12\x62\x61tch_content_item\x18\x08 \x01(\x0b\x32\'.google.privacy.dlp.v2.BatchContentItemH\x00\x12@\n\x10\x63ontent_metadata\x18\x06 \x01(\x0b\x32&.google.privacy.dlp.v2.ContentMetadataB\x0b\n\tdata_item\"V\n\x0f\x43ontentMetadata\x12\x43\n\nproperties\x18\x02 \x03(\x0b\x32/.google.privacy.dlp.v2.KeyValueMetadataProperty\"L\n\x0c\x43onversation\x12<\n\x08messages\x18\x01 \x03(\x0b\x32*.google.privacy.dlp.v2.ConversationMessage\"\xd3\x01\n\x13\x43onversationMessage\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\t\x12L\n\x0cmessage_type\x18\x02 \x01(\x0e\x32\x36.google.privacy.dlp.v2.ConversationMessage.MessageType\x12\x16\n\x0eparticipant_id\x18\x03 \x01(\t\"E\n\x0bMessageType\x12\x1c\n\x18MESSAGE_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x43ONTENT\x10\x01\x12\x0b\n\x07\x43ONTEXT\x10\x02\"g\n\x10\x42\x61tchContentItem\x12J\n\x12string_value_batch\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.StringValueBatchB\x03\xe0\x41\x01H\x00\x42\x07\n\x05\x62\x61tch\"\'\n\x10StringValueBatch\x12\x13\n\x06values\x18\x01 \x03(\tB\x03\xe0\x41\x01\"\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\"6\n\x18KeyValueMetadataProperty\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"]\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\"\xdf\x05\n\x07\x46inding\x12\x0c\n\x04name\x18\x0e \x01(\t\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\x12\x35\n\rresource_name\x18\x08 \x01(\tB\x1e\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\x12\x38\n\x0ctrigger_name\x18\t \x01(\tB\"\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\x12:\n\x06labels\x18\n \x03(\x0b\x32*.google.privacy.dlp.v2.Finding.LabelsEntry\x12\x33\n\x0fjob_create_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x08job_name\x18\r \x01(\tB\x1e\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\x12\x12\n\nfinding_id\x18\x0f \x01(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:[\xea\x41X\n\x1a\x64lp.googleapis.com/Finding\x12:projects/{project}/locations/{location}/findings/{finding}\"\xeb\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\x12\x33\n\tcontainer\x18\x08 \x01(\x0b\x32 .google.privacy.dlp.v2.Container\"\xb4\x04\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\x44\n\x11metadata_location\x18\x08 \x01(\x0b\x32\'.google.privacy.dlp.v2.MetadataLocationH\x00\x12L\n\x15\x63onversation_location\x18\n \x01(\x0b\x32+.google.privacy.dlp.v2.ConversationLocationH\x00\x12M\n\x16\x62\x61tch_content_location\x18\x0b \x01(\x0b\x32+.google.privacy.dlp.v2.BatchContentLocationH\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\"\x9b\x01\n\x14\x43onversationLocation\x12\x17\n\rmessage_index\x18\x01 \x01(\x05H\x00\x12O\n\x0c\x61ll_messages\x18\x02 \x01(\x0b\x32\x37.google.privacy.dlp.v2.ConversationLocation.AllMessagesH\x00\x1a\r\n\x0b\x41llMessagesB\n\n\x08location\"*\n\x14\x42\x61tchContentLocation\x12\x12\n\nitem_index\x18\x01 \x01(\x05\"\xe6\x01\n\x10MetadataLocation\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32#.google.privacy.dlp.v2.MetadataType\x12\x44\n\rstorage_label\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.StorageMetadataLabelH\x00\x12P\n\x18key_value_metadata_label\x18\x04 \x01(\x0b\x32,.google.privacy.dlp.v2.KeyValueMetadataLabelH\x00\x42\x07\n\x05label\"#\n\x14StorageMetadataLabel\x12\x0b\n\x03key\x18\x01 \x01(\t\"$\n\x15KeyValueMetadataLabel\x12\x0b\n\x03key\x18\x01 \x01(\t\"\'\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\"\xac\x01\n\tContainer\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12\x11\n\tfull_path\x18\x03 \x01(\t\x12\x11\n\troot_path\x18\x04 \x01(\t\x12\x15\n\rrelative_path\x18\x05 \x01(\t\x12/\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07version\x18\x07 \x01(\t\"#\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\"\xb3\x04\n\x12RedactImageRequest\x12\x32\n\x06parent\x18\x01 \x01(\tB\"\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\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\x12\x18\n\x10inspect_template\x18\t \x01(\t\x12\x1b\n\x13\x64\x65identify_template\x18\n \x01(\t\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\"\xd8\x02\n\x18\x44\x65identifyContentRequest\x12\x32\n\x06parent\x18\x01 \x01(\tB\"\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\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\"\xdb\x02\n\x18ReidentifyContentRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\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\"\xef\x01\n\x15InspectContentRequest\x12\x32\n\x06parent\x18\x01 \x01(\tB\"\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\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\"\xf8\x02\n\x13OutputStorageConfig\x12\x35\n\x05table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableH\x00\x12?\n\x0cstorage_path\x18\x05 \x01(\x0b\x32\'.google.privacy.dlp.v2.CloudStoragePathH\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\"\xc0\x04\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\xe1\x01\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\x12\x1a\n\x12num_rows_processed\x18\x05 \x01(\x03\x12\x44\n\x0chybrid_stats\x18\x07 \x01(\x0b\x32..google.privacy.dlp.v2.HybridInspectStatistics\"\xff\x01\n\x1c\x44\x61taProfileBigQueryRowSchema\x12@\n\rtable_profile\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.TableDataProfileH\x00\x12\x42\n\x0e\x63olumn_profile\x18\x02 \x01(\x0b\x32(.google.privacy.dlp.v2.ColumnDataProfileH\x00\x12I\n\x12\x66ile_store_profile\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.FileStoreDataProfileH\x00\x42\x0e\n\x0c\x64\x61ta_profile\"`\n\x17HybridInspectStatistics\x12\x17\n\x0fprocessed_count\x18\x01 \x01(\x03\x12\x15\n\raborted_count\x18\x02 \x01(\x03\x12\x15\n\rpending_count\x18\x03 \x01(\x03\"l\n\rActionDetails\x12P\n\x12\x64\x65identify_details\x18\x01 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DeidentifyDataSourceDetailsH\x00\x42\t\n\x07\x64\x65tails\"x\n\x19\x44\x65identifyDataSourceStats\x12\x19\n\x11transformed_bytes\x18\x01 \x01(\x03\x12\x1c\n\x14transformation_count\x18\x02 \x01(\x03\x12\"\n\x1atransformation_error_count\x18\x03 \x01(\x03\"\xf2\x03\n\x1b\x44\x65identifyDataSourceDetails\x12h\n\x11requested_options\x18\x01 \x01(\x0b\x32M.google.privacy.dlp.v2.DeidentifyDataSourceDetails.RequestedDeidentifyOptions\x12J\n\x10\x64\x65identify_stats\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DeidentifyDataSourceStats\x1a\x9c\x02\n\x1aRequestedDeidentifyOptions\x12O\n\x1csnapshot_deidentify_template\x18\x01 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12Z\n\'snapshot_structured_deidentify_template\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12Q\n\x1esnapshot_image_redact_template\x18\x03 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\"\xdf\x01\n\x0fLocationSupport\x12Z\n\x15regionalization_scope\x18\x01 \x01(\x0e\x32;.google.privacy.dlp.v2.LocationSupport.RegionalizationScope\x12\x11\n\tlocations\x18\x02 \x03(\t\"]\n\x14RegionalizationScope\x12%\n!REGIONALIZATION_SCOPE_UNSPECIFIED\x10\x00\x12\x0c\n\x08REGIONAL\x10\x01\x12\x10\n\x0c\x41NY_LOCATION\x10\x02\"\x9b\x05\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\x12@\n\x10location_support\x18\x06 \x01(\x0b\x32&.google.privacy.dlp.v2.LocationSupport\x12\x0f\n\x07\x65xample\x18\x08 \x01(\t\x12;\n\x08versions\x18\t \x03(\x0b\x32).google.privacy.dlp.v2.VersionDescription\x12;\n\ncategories\x18\n \x03(\x0b\x32\'.google.privacy.dlp.v2.InfoTypeCategory\x12\x42\n\x11sensitivity_score\x18\x0b \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12\x1b\n\x13specific_info_types\x18\x0c \x03(\t\x12V\n\rlaunch_status\x18\r \x01(\x0e\x32?.google.privacy.dlp.v2.InfoTypeDescription.InfoTypeLaunchStatus\"\x82\x01\n\x14InfoTypeLaunchStatus\x12\'\n#INFO_TYPE_LAUNCH_STATUS_UNSPECIFIED\x10\x00\x12\x18\n\x14GENERAL_AVAILABILITY\x10\x01\x12\x12\n\x0ePUBLIC_PREVIEW\x10\x02\x12\x13\n\x0fPRIVATE_PREVIEW\x10\x03\"\x90\n\n\x10InfoTypeCategory\x12U\n\x11location_category\x18\x01 \x01(\x0e\x32\x38.google.privacy.dlp.v2.InfoTypeCategory.LocationCategoryH\x00\x12U\n\x11industry_category\x18\x02 \x01(\x0e\x32\x38.google.privacy.dlp.v2.InfoTypeCategory.IndustryCategoryH\x00\x12M\n\rtype_category\x18\x03 \x01(\x0e\x32\x34.google.privacy.dlp.v2.InfoTypeCategory.TypeCategoryH\x00\"\xef\x05\n\x10LocationCategory\x12\x18\n\x14LOCATION_UNSPECIFIED\x10\x00\x12\n\n\x06GLOBAL\x10\x01\x12\r\n\tARGENTINA\x10\x02\x12\x0b\n\x07\x41RMENIA\x10\x33\x12\r\n\tAUSTRALIA\x10\x03\x12\x0b\n\x07\x41USTRIA\x10\x35\x12\x0e\n\nAZERBAIJAN\x10\x30\x12\x0b\n\x07\x42\x45LARUS\x10\x32\x12\x0b\n\x07\x42\x45LGIUM\x10\x04\x12\n\n\x06\x42RAZIL\x10\x05\x12\n\n\x06\x43\x41NADA\x10\x06\x12\t\n\x05\x43HILE\x10\x07\x12\t\n\x05\x43HINA\x10\x08\x12\x0c\n\x08\x43OLOMBIA\x10\t\x12\x0b\n\x07\x43ROATIA\x10*\x12\x0b\n\x07\x43ZECHIA\x10\x34\x12\x0b\n\x07\x44\x45NMARK\x10\n\x12\n\n\x06\x46RANCE\x10\x0b\x12\x0b\n\x07\x46INLAND\x10\x0c\x12\x0b\n\x07GERMANY\x10\r\x12\r\n\tHONG_KONG\x10\x0e\x12\t\n\x05INDIA\x10\x0f\x12\r\n\tINDONESIA\x10\x10\x12\x0b\n\x07IRELAND\x10\x11\x12\n\n\x06ISRAEL\x10\x12\x12\t\n\x05ITALY\x10\x13\x12\t\n\x05JAPAN\x10\x14\x12\x0e\n\nKAZAKHSTAN\x10/\x12\t\n\x05KOREA\x10\x15\x12\n\n\x06MEXICO\x10\x16\x12\x13\n\x0fTHE_NETHERLANDS\x10\x17\x12\x0f\n\x0bNEW_ZEALAND\x10)\x12\n\n\x06NORWAY\x10\x18\x12\x0c\n\x08PARAGUAY\x10\x19\x12\x08\n\x04PERU\x10\x1a\x12\n\n\x06POLAND\x10\x1b\x12\x0c\n\x08PORTUGAL\x10\x1c\x12\n\n\x06RUSSIA\x10,\x12\r\n\tSINGAPORE\x10\x1d\x12\x10\n\x0cSOUTH_AFRICA\x10\x1e\x12\t\n\x05SPAIN\x10\x1f\x12\n\n\x06SWEDEN\x10 \x12\x0f\n\x0bSWITZERLAND\x10+\x12\n\n\x06TAIWAN\x10!\x12\x0c\n\x08THAILAND\x10\"\x12\n\n\x06TURKEY\x10#\x12\x0b\n\x07UKRAINE\x10-\x12\x12\n\x0eUNITED_KINGDOM\x10$\x12\x11\n\rUNITED_STATES\x10%\x12\x0b\n\x07URUGUAY\x10&\x12\x0e\n\nUZBEKISTAN\x10.\x12\r\n\tVENEZUELA\x10\'\x12\x0c\n\x08INTERNAL\x10(\"]\n\x10IndustryCategory\x12\x18\n\x14INDUSTRY_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x46INANCE\x10\x01\x12\n\n\x06HEALTH\x10\x02\x12\x16\n\x12TELECOMMUNICATIONS\x10\x03\"\xa1\x01\n\x0cTypeCategory\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03PII\x10\x01\x12\x08\n\x04SPII\x10\x02\x12\x0f\n\x0b\x44\x45MOGRAPHIC\x10\x03\x12\x0e\n\nCREDENTIAL\x10\x04\x12\x11\n\rGOVERNMENT_ID\x10\x05\x12\x0c\n\x08\x44OCUMENT\x10\x06\x12\x1a\n\x16\x43ONTEXTUAL_INFORMATION\x10\x07\x12\n\n\x06\x43USTOM\x10\x08\x42\n\n\x08\x63\x61tegory\":\n\x12VersionDescription\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\"b\n\x14ListInfoTypesRequest\x12\x0e\n\x06parent\x18\x04 \x01(\t\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\"\xbc\x01\n\x07QuasiId\x12\x32\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\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\"\xbe\x02\n\x10StatisticalTable\x12\x38\n\x05table\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableB\x03\xe0\x41\x02\x12T\n\tquasi_ids\x18\x01 \x03(\x0b\x32<.google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierFieldB\x03\xe0\x41\x02\x12?\n\x12relative_frequency\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\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\"\x93\x0f\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\x81\x06\n\x14KMapEstimationConfig\x12]\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x45.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedFieldB\x03\xe0\x41\x02\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\xc0\x01\n\x0bTaggedField\x12\x32\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\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\xcd\x02\n\x0e\x41uxiliaryTable\x12\x38\n\x05table\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableB\x03\xe0\x41\x02\x12m\n\tquasi_ids\x18\x01 \x03(\x0b\x32U.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdFieldB\x03\xe0\x41\x02\x12?\n\x12relative_frequency\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\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\xaf\x01\n\x1d\x44\x65ltaPresenceEstimationConfig\x12\x36\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.QuasiIdB\x03\xe0\x41\x02\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\"\xc1\x1f\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\x12k\n\x11requested_options\x18\n \x01(\x0b\x32P.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.RequestedRiskAnalysisOptions\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\x1a`\n\x1cRequestedRiskAnalysisOptions\x12@\n\njob_config\x18\x01 \x01(\x0b\x32,.google.privacy.dlp.v2.RiskAnalysisJobConfigB\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\"\xf2\x02\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\x12L\n\x15image_transformations\x18\x04 \x01(\x0b\x32+.google.privacy.dlp.v2.ImageTransformationsH\x00\x12Y\n\x1dtransformation_error_handling\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.TransformationErrorHandlingB\x10\n\x0etransformation\"\xe5\x04\n\x14ImageTransformations\x12S\n\ntransforms\x18\x02 \x03(\x0b\x32?.google.privacy.dlp.v2.ImageTransformations.ImageTransformation\x1a\xf7\x03\n\x13ImageTransformation\x12p\n\x13selected_info_types\x18\x04 \x01(\x0b\x32Q.google.privacy.dlp.v2.ImageTransformations.ImageTransformation.SelectedInfoTypesH\x00\x12\x66\n\x0e\x61ll_info_types\x18\x05 \x01(\x0b\x32L.google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllInfoTypesH\x00\x12[\n\x08\x61ll_text\x18\x06 \x01(\x0b\x32G.google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllTextH\x00\x12\x35\n\x0fredaction_color\x18\x03 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Color\x1aM\n\x11SelectedInfoTypes\x12\x38\n\ninfo_types\x18\x05 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeB\x03\xe0\x41\x02\x1a\x0e\n\x0c\x41llInfoTypes\x1a\t\n\x07\x41llTextB\x08\n\x06target\"\x85\x02\n\x1bTransformationErrorHandling\x12T\n\x0bthrow_error\x18\x01 \x01(\x0b\x32=.google.privacy.dlp.v2.TransformationErrorHandling.ThrowErrorH\x00\x12\x64\n\x13leave_untransformed\x18\x02 \x01(\x0b\x32\x45.google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformedH\x00\x1a\x0c\n\nThrowError\x1a\x14\n\x12LeaveUntransformedB\x06\n\x04mode\"\xca\x07\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\x12S\n\x19replace_dictionary_config\x18\r \x01(\x0b\x32..google.privacy.dlp.v2.ReplaceDictionaryConfigH\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\"q\n\x17ReplaceDictionaryConfig\x12N\n\tword_list\x18\x01 \x01(\x0b\x32\x39.google.privacy.dlp.v2.CustomInfoType.Dictionary.WordListH\x00\x42\x06\n\x04type\"\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\"\xa4\x01\n\x18\x46ixedSizeBucketingConfig\x12\x36\n\x0blower_bound\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ValueB\x03\xe0\x41\x02\x12\x36\n\x0bupper_bound\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ValueB\x03\xe0\x41\x02\x12\x18\n\x0b\x62ucket_size\x18\x03 \x01(\x01\x42\x03\xe0\x41\x02\"\xf0\x01\n\x0f\x42ucketingConfig\x12>\n\x07\x62uckets\x18\x01 \x03(\x0b\x32-.google.privacy.dlp.v2.BucketingConfig.Bucket\x1a\x9c\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<\n\x11replacement_value\x18\x03 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ValueB\x03\xe0\x41\x02\"\xf9\x03\n\x19\x43ryptoReplaceFfxFpeConfig\x12\x39\n\ncrypto_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKeyB\x03\xe0\x41\x02\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\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\"&\n\x12UnwrappedCryptoKey\x12\x10\n\x03key\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x02\"M\n\x13KmsWrappedCryptoKey\x12\x18\n\x0bwrapped_key\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x1c\n\x0f\x63rypto_key_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xc2\x01\n\x0f\x44\x61teShiftConfig\x12\x1d\n\x10upper_bound_days\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x1d\n\x10lower_bound_days\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02\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\"\xa5\x02\n\x17InfoTypeTransformations\x12\x63\n\x0ftransformations\x18\x01 \x03(\x0b\x32\x45.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformationB\x03\xe0\x41\x02\x1a\xa4\x01\n\x16InfoTypeTransformation\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12U\n\x18primitive_transformation\x18\x02 \x01(\x0b\x32..google.privacy.dlp.v2.PrimitiveTransformationB\x03\xe0\x41\x02\"\xc0\x02\n\x13\x46ieldTransformation\x12\x33\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\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\"\xdc\x04\n\x0fRecordCondition\x12G\n\x0b\x65xpressions\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.RecordCondition.Expressions\x1a\xae\x01\n\tCondition\x12\x32\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\x12@\n\x08operator\x18\x03 \x01(\x0e\x32).google.privacy.dlp.v2.RelationalOperatorB\x03\xe0\x41\x02\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\"\xb0\x01\n\x19TransformationDescription\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32).google.privacy.dlp.v2.TransformationType\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x11\n\tcondition\x18\x03 \x01(\t\x12\x32\n\tinfo_type\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\"\xc6\x02\n\x15TransformationDetails\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12H\n\x0etransformation\x18\x03 \x03(\x0b\x32\x30.google.privacy.dlp.v2.TransformationDescription\x12I\n\x0estatus_details\x18\x04 \x01(\x0b\x32\x31.google.privacy.dlp.v2.TransformationResultStatus\x12\x19\n\x11transformed_bytes\x18\x05 \x01(\x03\x12N\n\x17transformation_location\x18\x06 \x01(\x0b\x32-.google.privacy.dlp.v2.TransformationLocation\"\xd9\x01\n\x16TransformationLocation\x12\x14\n\nfinding_id\x18\x01 \x01(\tH\x00\x12L\n\x15record_transformation\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.RecordTransformationH\x00\x12J\n\x0e\x63ontainer_type\x18\x03 \x01(\x0e\x32\x32.google.privacy.dlp.v2.TransformationContainerTypeB\x0f\n\rlocation_type\"\x9c\x01\n\x14RecordTransformation\x12\x30\n\x08\x66ield_id\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x37\n\x13\x63ontainer_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11\x63ontainer_version\x18\x03 \x01(\t\"\x94\x01\n\x1aTransformationResultStatus\x12Q\n\x12result_status_type\x18\x01 \x01(\x0e\x32\x35.google.privacy.dlp.v2.TransformationResultStatusType\x12#\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\"c\n\"TransformationDetailsStorageConfig\x12\x35\n\x05table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableH\x00\x42\x06\n\x04type\"U\n\x08Schedule\x12?\n\x1arecurrence_period_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x42\x08\n\x06option\"\x08\n\x06Manual\"\xc2\x04\n\x0fInspectTemplate\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12<\n\x0einspect_config\x18\x06 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig:\xc6\x02\xea\x41\xc2\x02\n\"dlp.googleapis.com/InspectTemplate\x12@organizations/{organization}/inspectTemplates/{inspect_template}\x12\x36projects/{project}/inspectTemplates/{inspect_template}\x12Uorganizations/{organization}/locations/{location}/inspectTemplates/{inspect_template}\x12Kprojects/{project}/locations/{location}/inspectTemplates/{inspect_template}\"\xe6\x04\n\x12\x44\x65identifyTemplate\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x11\x64\x65identify_config\x18\x06 \x01(\x0b\x32\'.google.privacy.dlp.v2.DeidentifyConfig:\xe1\x02\xea\x41\xdd\x02\n%dlp.googleapis.com/DeidentifyTemplate\x12\x46organizations/{organization}/deidentifyTemplates/{deidentify_template}\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\x31\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\rlast_run_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12=\n\x06status\x18\n \x01(\x0e\x32(.google.privacy.dlp.v2.JobTrigger.StatusB\x03\xe0\x41\x02\x1az\n\x07Trigger\x12\x33\n\x08schedule\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.ScheduleH\x00\x12/\n\x06manual\x18\x02 \x01(\x0b\x32\x1d.google.privacy.dlp.v2.ManualH\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:\x94\x01\xea\x41\x90\x01\n\x1d\x64lp.googleapis.com/JobTrigger\x12,projects/{project}/jobTriggers/{job_trigger}\x12\x41projects/{project}/locations/{location}/jobTriggers/{job_trigger}B\x05\n\x03job\"\x82\n\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\x12u\n&publish_findings_to_cloud_data_catalog\x18\x05 \x01(\x0b\x32?.google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalogB\x02\x18\x01H\x00\x12n\n$publish_findings_to_dataplex_catalog\x18\n \x01(\x0b\x32>.google.privacy.dlp.v2.Action.PublishFindingsToDataplexCatalogH\x00\x12>\n\ndeidentify\x18\x07 \x01(\x0b\x32(.google.privacy.dlp.v2.Action.DeidentifyH\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\"\n PublishFindingsToDataplexCatalog\x1a\xb3\x02\n\nDeidentify\x12J\n\x15transformation_config\x18\x07 \x01(\x0b\x32+.google.privacy.dlp.v2.TransformationConfig\x12h\n%transformation_details_storage_config\x18\x03 \x01(\x0b\x32\x39.google.privacy.dlp.v2.TransformationDetailsStorageConfig\x12#\n\x14\x63loud_storage_output\x18\t \x01(\tB\x03\xe0\x41\x02H\x00\x12@\n\x17\x66ile_types_to_transform\x18\x08 \x03(\x0e\x32\x1f.google.privacy.dlp.v2.FileTypeB\x08\n\x06output\x1a\x17\n\x15JobNotificationEmails\x1a\x16\n\x14PublishToStackdriverB\x08\n\x06\x61\x63tion\"z\n\x14TransformationConfig\x12\x1b\n\x13\x64\x65identify_template\x18\x01 \x01(\t\x12&\n\x1estructured_deidentify_template\x18\x02 \x01(\t\x12\x1d\n\x15image_redact_template\x18\x04 \x01(\t\"\xcb\x01\n\x1c\x43reateInspectTemplateRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"dlp.googleapis.com/InspectTemplate\x12\x45\n\x10inspect_template\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplateB\x03\xe0\x41\x02\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\"\xb6\x01\n\x17\x43reateJobTriggerRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/JobTrigger\x12;\n\x0bjob_trigger\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.JobTriggerB\x03\xe0\x41\x02\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\"\xb4\x01\n\x1c\x43reateDiscoveryConfigRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"dlp.googleapis.com/DiscoveryConfig\x12\x45\n\x10\x64iscovery_config\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfigB\x03\xe0\x41\x02\x12\x11\n\tconfig_id\x18\x03 \x01(\t\"\xd0\x01\n\x1cUpdateDiscoveryConfigRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/DiscoveryConfig\x12\x45\n\x10\x64iscovery_config\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfigB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"U\n\x19GetDiscoveryConfigRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/DiscoveryConfig\"\x92\x01\n\x1bListDiscoveryConfigsRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"dlp.googleapis.com/DiscoveryConfig\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\x1cListDiscoveryConfigsResponse\x12\x41\n\x11\x64iscovery_configs\x18\x01 \x03(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfig\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"X\n\x1c\x44\x65leteDiscoveryConfigRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/DiscoveryConfig\"\xf6\x01\n\x13\x43reateDlpJobRequest\x12\x31\n\x06parent\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\x12\x19\x64lp.googleapis.com/DlpJob\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\"\xde\x01\n\x16ListJobTriggersRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/JobTrigger\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/\n\x04type\x18\x06 \x01(\x0e\x32!.google.privacy.dlp.v2.DlpJobType\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\"\xf2\r\n\x11\x44\x61taProfileAction\x12\x46\n\x0b\x65xport_data\x18\x01 \x01(\x0b\x32/.google.privacy.dlp.v2.DataProfileAction.ExportH\x00\x12[\n\x14pub_sub_notification\x18\x02 \x01(\x0b\x32;.google.privacy.dlp.v2.DataProfileAction.PubSubNotificationH\x00\x12[\n\x14publish_to_chronicle\x18\x03 \x01(\x0b\x32;.google.privacy.dlp.v2.DataProfileAction.PublishToChronicleH\x00\x12\x61\n\x0epublish_to_scc\x18\x04 \x01(\x0b\x32G.google.privacy.dlp.v2.DataProfileAction.PublishToSecurityCommandCenterH\x00\x12N\n\rtag_resources\x18\x08 \x01(\x0b\x32\x35.google.privacy.dlp.v2.DataProfileAction.TagResourcesH\x00\x12h\n\x1bpublish_to_dataplex_catalog\x18\t \x01(\x0b\x32\x41.google.privacy.dlp.v2.DataProfileAction.PublishToDataplexCatalogH\x00\x1a\x8a\x01\n\x06\x45xport\x12;\n\rprofile_table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12\x43\n\x15sample_findings_table\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x1a\x82\x03\n\x12PubSubNotification\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x41\n\x05\x65vent\x18\x02 \x01(\x0e\x32\x32.google.privacy.dlp.v2.DataProfileAction.EventType\x12K\n\x10pubsub_condition\x18\x03 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DataProfilePubSubCondition\x12\x62\n\x11\x64\x65tail_of_message\x18\x04 \x01(\x0e\x32G.google.privacy.dlp.v2.DataProfileAction.PubSubNotification.DetailLevel\"i\n\x0b\x44\x65tailLevel\x12\x1c\n\x18\x44\x45TAIL_LEVEL_UNSPECIFIED\x10\x00\x12\x11\n\rTABLE_PROFILE\x10\x01\x12\x11\n\rRESOURCE_NAME\x10\x02\x12\x16\n\x12\x46ILE_STORE_PROFILE\x10\x03\x1a\x14\n\x12PublishToChronicle\x1a \n\x1ePublishToSecurityCommandCenter\x1a:\n\x18PublishToDataplexCatalog\x12\x1e\n\x16lower_data_risk_to_low\x18\x01 \x01(\x08\x1a\xb6\x03\n\x0cTagResources\x12Z\n\x0etag_conditions\x18\x01 \x03(\x0b\x32\x42.google.privacy.dlp.v2.DataProfileAction.TagResources.TagCondition\x12L\n\x1aprofile_generations_to_tag\x18\x02 \x03(\x0e\x32(.google.privacy.dlp.v2.ProfileGeneration\x12\x1e\n\x16lower_data_risk_to_low\x18\x03 \x01(\x08\x1a\xa9\x01\n\x0cTagCondition\x12K\n\x03tag\x18\x01 \x01(\x0b\x32>.google.privacy.dlp.v2.DataProfileAction.TagResources.TagValue\x12\x44\n\x11sensitivity_score\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScoreH\x00\x42\x06\n\x04type\x1a\x30\n\x08TagValue\x12\x1a\n\x10namespaced_value\x18\x01 \x01(\tH\x00\x42\x08\n\x06\x66ormat\"u\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bNEW_PROFILE\x10\x01\x12\x13\n\x0f\x43HANGED_PROFILE\x10\x02\x12\x13\n\x0fSCORE_INCREASED\x10\x03\x12\x11\n\rERROR_CHANGED\x10\x04\x42\x08\n\x06\x61\x63tion\"\xdd\x03\n\x12\x44\x61taProfileFinding\x12\r\n\x05quote\x18\x01 \x01(\t\x12\x31\n\x08infotype\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x34\n\nquote_info\x18\x03 \x01(\x0b\x32 .google.privacy.dlp.v2.QuoteInfo\x12\"\n\x1a\x64\x61ta_profile_resource_name\x18\x04 \x01(\t\x12\x12\n\nfinding_id\x18\x05 \x01(\t\x12-\n\ttimestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x08location\x18\x07 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DataProfileFindingLocation\x12\x46\n\x13resource_visibility\x18\x08 \x01(\x0e\x32).google.privacy.dlp.v2.ResourceVisibility\x12\x1a\n\x12\x66ull_resource_name\x18\t \x01(\t\x12?\n\x10\x64\x61ta_source_type\x18\n \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceType\"\xb7\x01\n\x1a\x44\x61taProfileFindingLocation\x12\x16\n\x0e\x63ontainer_name\x18\x01 \x01(\t\x12g\n$data_profile_finding_record_location\x18\x02 \x01(\x0b\x32\x37.google.privacy.dlp.v2.DataProfileFindingRecordLocationH\x00\x42\x18\n\x16location_extra_details\"Q\n DataProfileFindingRecordLocation\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\"\xae\x02\n\x14\x44\x61taProfileJobConfig\x12<\n\x08location\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.DataProfileLocation\x12\x12\n\nproject_id\x18\x05 \x01(\t\x12\x61\n\x1dother_cloud_starting_location\x18\x08 \x01(\x0b\x32:.google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation\x12\x19\n\x11inspect_templates\x18\x07 \x03(\t\x12\x46\n\x14\x64\x61ta_profile_actions\x18\x06 \x03(\x0b\x32(.google.privacy.dlp.v2.DataProfileAction\"[\n\rBigQueryRegex\x12\x18\n\x10project_id_regex\x18\x01 \x01(\t\x12\x18\n\x10\x64\x61taset_id_regex\x18\x02 \x01(\t\x12\x16\n\x0etable_id_regex\x18\x03 \x01(\t\"I\n\x0f\x42igQueryRegexes\x12\x36\n\x08patterns\x18\x01 \x03(\x0b\x32$.google.privacy.dlp.v2.BigQueryRegex\"M\n\x12\x42igQueryTableTypes\x12\x37\n\x05types\x18\x01 \x03(\x0e\x32(.google.privacy.dlp.v2.BigQueryTableType\"\n\n\x08\x44isabled\"Q\n\x13\x44\x61taProfileLocation\x12\x19\n\x0forganization_id\x18\x01 \x01(\x03H\x00\x12\x13\n\tfolder_id\x18\x02 \x01(\x03H\x00\x42\n\n\x08location\"\xeb\x07\n\x0f\x44iscoveryConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x0b \x01(\t\x12\x44\n\norg_config\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DiscoveryConfig.OrgConfig\x12\x61\n\x1dother_cloud_starting_location\x18\x0c \x01(\x0b\x32:.google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation\x12\x19\n\x11inspect_templates\x18\x03 \x03(\t\x12\x39\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32(.google.privacy.dlp.v2.DataProfileAction\x12\x37\n\x07targets\x18\x05 \x03(\x0b\x32&.google.privacy.dlp.v2.DiscoveryTarget\x12\x31\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\rlast_run_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x06status\x18\n \x01(\x0e\x32-.google.privacy.dlp.v2.DiscoveryConfig.StatusB\x03\xe0\x41\x02\x12K\n\x13processing_location\x18\r \x01(\x0b\x32).google.privacy.dlp.v2.ProcessingLocationB\x03\xe0\x41\x01\x1a\x63\n\tOrgConfig\x12\x42\n\x08location\x18\x01 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DiscoveryStartingLocation\x12\x12\n\nproject_id\x18\x02 \x01(\t\"9\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\n\n\x06PAUSED\x10\x02:t\xea\x41q\n\"dlp.googleapis.com/DiscoveryConfig\x12Kprojects/{project}/locations/{location}/discoveryConfigs/{discovery_config}\"\xf6\x03\n\x0f\x44iscoveryTarget\x12J\n\x10\x62ig_query_target\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.BigQueryDiscoveryTargetH\x00\x12J\n\x10\x63loud_sql_target\x18\x02 \x01(\x0b\x32..google.privacy.dlp.v2.CloudSqlDiscoveryTargetH\x00\x12G\n\x0esecrets_target\x18\x03 \x01(\x0b\x32-.google.privacy.dlp.v2.SecretsDiscoveryTargetH\x00\x12R\n\x14\x63loud_storage_target\x18\x04 \x01(\x0b\x32\x32.google.privacy.dlp.v2.CloudStorageDiscoveryTargetH\x00\x12N\n\x12other_cloud_target\x18\x05 \x01(\x0b\x32\x30.google.privacy.dlp.v2.OtherCloudDiscoveryTargetH\x00\x12T\n\x15vertex_dataset_target\x18\x07 \x01(\x0b\x32\x33.google.privacy.dlp.v2.VertexDatasetDiscoveryTargetH\x00\x42\x08\n\x06target\"\xae\x02\n\x17\x42igQueryDiscoveryTarget\x12\x43\n\x06\x66ilter\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.DiscoveryBigQueryFilterB\x03\xe0\x41\x02\x12\x46\n\nconditions\x18\x02 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DiscoveryBigQueryConditions\x12\x44\n\x07\x63\x61\x64\x65nce\x18\x03 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DiscoveryGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\x0b\n\tfrequency\"\xa0\x02\n\x17\x44iscoveryBigQueryFilter\x12@\n\x06tables\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.BigQueryTableCollectionH\x00\x12]\n\x0cother_tables\x18\x02 \x01(\x0b\x32\x45.google.privacy.dlp.v2.DiscoveryBigQueryFilter.AllOtherBigQueryTablesH\x00\x12@\n\x0ftable_reference\x18\x03 \x01(\x0b\x32%.google.privacy.dlp.v2.TableReferenceH\x00\x1a\x18\n\x16\x41llOtherBigQueryTablesB\x08\n\x06\x66ilter\"g\n\x17\x42igQueryTableCollection\x12\x41\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.BigQueryRegexesH\x00\x42\t\n\x07pattern\"\x98\x03\n\x1b\x44iscoveryBigQueryConditions\x12\x31\n\rcreated_after\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x05types\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.BigQueryTableTypesH\x00\x12M\n\x0ftype_collection\x18\x03 \x01(\x0e\x32\x32.google.privacy.dlp.v2.BigQueryTableTypeCollectionH\x00\x12V\n\ror_conditions\x18\x04 \x01(\x0b\x32?.google.privacy.dlp.v2.DiscoveryBigQueryConditions.OrConditions\x1aQ\n\x0cOrConditions\x12\x15\n\rmin_row_count\x18\x01 \x01(\x05\x12*\n\x07min_age\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x10\n\x0eincluded_types\"\x83\x03\n\x1a\x44iscoveryGenerationCadence\x12V\n\x17schema_modified_cadence\x18\x01 \x01(\x0b\x32\x35.google.privacy.dlp.v2.DiscoverySchemaModifiedCadence\x12T\n\x16table_modified_cadence\x18\x02 \x01(\x0b\x32\x34.google.privacy.dlp.v2.DiscoveryTableModifiedCadence\x12i\n!inspect_template_modified_cadence\x18\x03 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadence\x12L\n\x11refresh_frequency\x18\x04 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"\xa6\x01\n\x1d\x44iscoveryTableModifiedCadence\x12?\n\x05types\x18\x01 \x03(\x0e\x32\x30.google.privacy.dlp.v2.BigQueryTableModification\x12\x44\n\tfrequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"\xa8\x01\n\x1e\x44iscoverySchemaModifiedCadence\x12@\n\x05types\x18\x01 \x03(\x0e\x32\x31.google.privacy.dlp.v2.BigQuerySchemaModification\x12\x44\n\tfrequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"o\n\'DiscoveryInspectTemplateModifiedCadence\x12\x44\n\tfrequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"\xbf\x02\n\x17\x43loudSqlDiscoveryTarget\x12\x43\n\x06\x66ilter\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.DiscoveryCloudSqlFilterB\x03\xe0\x41\x02\x12\x46\n\nconditions\x18\x02 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DiscoveryCloudSqlConditions\x12W\n\x12generation_cadence\x18\x03 \x01(\x0b\x32\x39.google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x89\x02\n\x17\x44iscoveryCloudSqlFilter\x12G\n\ncollection\x18\x01 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DatabaseResourceCollectionH\x00\x12\x42\n\x06others\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.AllOtherDatabaseResourcesH\x00\x12W\n\x1b\x64\x61tabase_resource_reference\x18\x03 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DatabaseResourceReferenceH\x00\x42\x08\n\x06\x66ilter\"r\n\x1a\x44\x61tabaseResourceCollection\x12I\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.DatabaseResourceRegexesH\x00\x42\t\n\x07pattern\"Y\n\x17\x44\x61tabaseResourceRegexes\x12>\n\x08patterns\x18\x01 \x03(\x0b\x32,.google.privacy.dlp.v2.DatabaseResourceRegex\"\x87\x01\n\x15\x44\x61tabaseResourceRegex\x12\x18\n\x10project_id_regex\x18\x01 \x01(\t\x12\x16\n\x0einstance_regex\x18\x02 \x01(\t\x12\x16\n\x0e\x64\x61tabase_regex\x18\x03 \x01(\t\x12$\n\x1c\x64\x61tabase_resource_name_regex\x18\x04 \x01(\t\"\x1b\n\x19\x41llOtherDatabaseResources\"\x82\x01\n\x19\x44\x61tabaseResourceReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08instance\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08\x64\x61tabase\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11\x64\x61tabase_resource\x18\x04 \x01(\tB\x03\xe0\x41\x02\"\xda\x03\n\x1b\x44iscoveryCloudSqlConditions\x12`\n\x10\x64\x61tabase_engines\x18\x01 \x03(\x0e\x32\x41.google.privacy.dlp.v2.DiscoveryCloudSqlConditions.DatabaseEngineB\x03\xe0\x41\x01\x12V\n\x05types\x18\x03 \x03(\x0e\x32G.google.privacy.dlp.v2.DiscoveryCloudSqlConditions.DatabaseResourceType\"n\n\x0e\x44\x61tabaseEngine\x12\x1f\n\x1b\x44\x41TABASE_ENGINE_UNSPECIFIED\x10\x00\x12\"\n\x1e\x41LL_SUPPORTED_DATABASE_ENGINES\x10\x01\x12\t\n\x05MYSQL\x10\x02\x12\x0c\n\x08POSTGRES\x10\x03\"\x90\x01\n\x14\x44\x61tabaseResourceType\x12&\n\"DATABASE_RESOURCE_TYPE_UNSPECIFIED\x10\x00\x12.\n*DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES\x10\x01\x12 \n\x1c\x44\x41TABASE_RESOURCE_TYPE_TABLE\x10\x02\"\x97\x05\n\"DiscoveryCloudSqlGenerationCadence\x12p\n\x17schema_modified_cadence\x18\x01 \x01(\x0b\x32O.google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadence.SchemaModifiedCadence\x12L\n\x11refresh_frequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\x12i\n!inspect_template_modified_cadence\x18\x03 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadence\x1a\xc5\x02\n\x15SchemaModifiedCadence\x12y\n\x05types\x18\x01 \x03(\x0e\x32j.google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadence.SchemaModifiedCadence.CloudSqlSchemaModification\x12\x44\n\tfrequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"k\n\x1a\x43loudSqlSchemaModification\x12\'\n#SQL_SCHEMA_MODIFICATION_UNSPECIFIED\x10\x00\x12\x0f\n\x0bNEW_COLUMNS\x10\x01\x12\x13\n\x0fREMOVED_COLUMNS\x10\x02\"\x18\n\x16SecretsDiscoveryTarget\"\xdb\x02\n\x1b\x43loudStorageDiscoveryTarget\x12G\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DiscoveryCloudStorageFilterB\x03\xe0\x41\x02\x12L\n\nconditions\x18\x04 \x01(\x0b\x32\x33.google.privacy.dlp.v2.DiscoveryFileStoreConditionsB\x03\xe0\x41\x01\x12`\n\x12generation_cadence\x18\x02 \x01(\x0b\x32=.google.privacy.dlp.v2.DiscoveryCloudStorageGenerationCadenceB\x03\xe0\x41\x01H\x00\x12\x38\n\x08\x64isabled\x18\x03 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledB\x03\xe0\x41\x01H\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x96\x02\n\x1b\x44iscoveryCloudStorageFilter\x12\x45\n\ncollection\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.FileStoreCollectionB\x03\xe0\x41\x01H\x00\x12\x65\n cloud_storage_resource_reference\x18\x02 \x01(\x0b\x32\x34.google.privacy.dlp.v2.CloudStorageResourceReferenceB\x03\xe0\x41\x01H\x00\x12?\n\x06others\x18\x64 \x01(\x0b\x32(.google.privacy.dlp.v2.AllOtherResourcesB\x03\xe0\x41\x01H\x00\x42\x08\n\x06\x66ilter\"\xa7\x01\n\x13\x46ileStoreCollection\x12G\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.FileStoreRegexesB\x03\xe0\x41\x01H\x00\x12<\n\x0cinclude_tags\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.TagFiltersB\x03\xe0\x41\x01\x42\t\n\x07pattern\"P\n\x10\x46ileStoreRegexes\x12<\n\x08patterns\x18\x01 \x03(\x0b\x32%.google.privacy.dlp.v2.FileStoreRegexB\x03\xe0\x41\x02\"p\n\x0e\x46ileStoreRegex\x12L\n\x13\x63loud_storage_regex\x18\x01 \x01(\x0b\x32(.google.privacy.dlp.v2.CloudStorageRegexB\x03\xe0\x41\x01H\x00\x42\x10\n\x0eresource_regex\"R\n\x11\x43loudStorageRegex\x12\x1d\n\x10project_id_regex\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1e\n\x11\x62ucket_name_regex\x18\x02 \x01(\tB\x03\xe0\x41\x01\"R\n\x1d\x43loudStorageResourceReference\x12\x18\n\x0b\x62ucket_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\nproject_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xeb\x01\n&DiscoveryCloudStorageGenerationCadence\x12Q\n\x11refresh_frequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequencyB\x03\xe0\x41\x01\x12n\n!inspect_template_modified_cadence\x18\x02 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadenceB\x03\xe0\x41\x01\"\x9b\x05\n\x1f\x44iscoveryCloudStorageConditions\x12{\n\x1aincluded_object_attributes\x18\x01 \x03(\x0e\x32R.google.privacy.dlp.v2.DiscoveryCloudStorageConditions.CloudStorageObjectAttributeB\x03\xe0\x41\x02\x12{\n\x1aincluded_bucket_attributes\x18\x02 \x03(\x0e\x32R.google.privacy.dlp.v2.DiscoveryCloudStorageConditions.CloudStorageBucketAttributeB\x03\xe0\x41\x02\"\xe3\x01\n\x1b\x43loudStorageObjectAttribute\x12.\n*CLOUD_STORAGE_OBJECT_ATTRIBUTE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41LL_SUPPORTED_OBJECTS\x10\x01\x12\x0c\n\x08STANDARD\x10\x02\x12\x0c\n\x08NEARLINE\x10\x03\x12\x0c\n\x08\x43OLDLINE\x10\x04\x12\x0b\n\x07\x41RCHIVE\x10\x05\x12\x0c\n\x08REGIONAL\x10\x06\x12\x12\n\x0eMULTI_REGIONAL\x10\x07\x12 \n\x1c\x44URABLE_REDUCED_AVAILABILITY\x10\x08\"\x97\x01\n\x1b\x43loudStorageBucketAttribute\x12.\n*CLOUD_STORAGE_BUCKET_ATTRIBUTE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41LL_SUPPORTED_BUCKETS\x10\x01\x12\x16\n\x12\x41UTOCLASS_DISABLED\x10\x02\x12\x15\n\x11\x41UTOCLASS_ENABLED\x10\x03\"\xf6\x01\n\x1c\x44iscoveryFileStoreConditions\x12\x36\n\rcreated_after\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12/\n\x07min_age\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01\x12_\n\x18\x63loud_storage_conditions\x18\x03 \x01(\x0b\x32\x36.google.privacy.dlp.v2.DiscoveryCloudStorageConditionsB\x03\xe0\x41\x01H\x00\x42\x0c\n\nconditions\"\x92\x03\n\x19OtherCloudDiscoveryTarget\x12\x44\n\x10\x64\x61ta_source_type\x18\x01 \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceTypeB\x03\xe0\x41\x02\x12\x45\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DiscoveryOtherCloudFilterB\x03\xe0\x41\x02\x12M\n\nconditions\x18\x03 \x01(\x0b\x32\x34.google.privacy.dlp.v2.DiscoveryOtherCloudConditionsB\x03\xe0\x41\x01\x12Y\n\x12generation_cadence\x18\x04 \x01(\x0b\x32;.google.privacy.dlp.v2.DiscoveryOtherCloudGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x05 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x86\x02\n\x19\x44iscoveryOtherCloudFilter\x12I\n\ncollection\x18\x01 \x01(\x0b\x32\x33.google.privacy.dlp.v2.OtherCloudResourceCollectionH\x00\x12S\n\x0fsingle_resource\x18\x02 \x01(\x0b\x32\x38.google.privacy.dlp.v2.OtherCloudSingleResourceReferenceH\x00\x12?\n\x06others\x18\x64 \x01(\x0b\x32(.google.privacy.dlp.v2.AllOtherResourcesB\x03\xe0\x41\x01H\x00\x42\x08\n\x06\x66ilter\"v\n\x1cOtherCloudResourceCollection\x12K\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32\x30.google.privacy.dlp.v2.OtherCloudResourceRegexesH\x00\x42\t\n\x07pattern\"]\n\x19OtherCloudResourceRegexes\x12@\n\x08patterns\x18\x01 \x03(\x0b\x32..google.privacy.dlp.v2.OtherCloudResourceRegex\"y\n\x17OtherCloudResourceRegex\x12L\n\x16\x61mazon_s3_bucket_regex\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.AmazonS3BucketRegexH\x00\x42\x10\n\x0eresource_regex\"0\n\x0f\x41wsAccountRegex\x12\x1d\n\x10\x61\x63\x63ount_id_regex\x18\x01 \x01(\tB\x03\xe0\x41\x01\"x\n\x13\x41mazonS3BucketRegex\x12\x41\n\x11\x61ws_account_regex\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.AwsAccountRegex\x12\x1e\n\x11\x62ucket_name_regex\x18\x02 \x01(\tB\x03\xe0\x41\x01\"r\n!OtherCloudSingleResourceReference\x12\x41\n\x10\x61mazon_s3_bucket\x18\x01 \x01(\x0b\x32%.google.privacy.dlp.v2.AmazonS3BucketH\x00\x42\n\n\x08resource\"%\n\nAwsAccount\x12\x17\n\naccount_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"b\n\x0e\x41mazonS3Bucket\x12\x36\n\x0b\x61ws_account\x18\x01 \x01(\x0b\x32!.google.privacy.dlp.v2.AwsAccount\x12\x18\n\x0b\x62ucket_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xb1\x01\n\x1d\x44iscoveryOtherCloudConditions\x12*\n\x07min_age\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12V\n\x1b\x61mazon_s3_bucket_conditions\x18\x02 \x01(\x0b\x32/.google.privacy.dlp.v2.AmazonS3BucketConditionsH\x00\x42\x0c\n\nconditions\"\xd9\x03\n\x18\x41mazonS3BucketConditions\x12U\n\x0c\x62ucket_types\x18\x01 \x03(\x0e\x32:.google.privacy.dlp.v2.AmazonS3BucketConditions.BucketTypeB\x03\xe0\x41\x01\x12g\n\x16object_storage_classes\x18\x02 \x03(\x0e\x32\x42.google.privacy.dlp.v2.AmazonS3BucketConditions.ObjectStorageClassB\x03\xe0\x41\x01\"T\n\nBucketType\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12TYPE_ALL_SUPPORTED\x10\x01\x12\x18\n\x14TYPE_GENERAL_PURPOSE\x10\x02\"\xa6\x01\n\x12ObjectStorageClass\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x19\n\x15\x41LL_SUPPORTED_CLASSES\x10\x01\x12\x0c\n\x08STANDARD\x10\x02\x12\x1e\n\x1aSTANDARD_INFREQUENT_ACCESS\x10\x04\x12\x1d\n\x19GLACIER_INSTANT_RETRIEVAL\x10\x06\x12\x17\n\x13INTELLIGENT_TIERING\x10\x07\"\xe9\x01\n$DiscoveryOtherCloudGenerationCadence\x12Q\n\x11refresh_frequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequencyB\x03\xe0\x41\x01\x12n\n!inspect_template_modified_cadence\x18\x02 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadenceB\x03\xe0\x41\x01\"W\n\x19\x44iscoveryStartingLocation\x12\x19\n\x0forganization_id\x18\x01 \x01(\x03H\x00\x12\x13\n\tfolder_id\x18\x02 \x01(\x03H\x00\x42\n\n\x08location\"\x87\x02\n#OtherCloudDiscoveryStartingLocation\x12o\n\x0c\x61ws_location\x18\x01 \x01(\x0b\x32W.google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation.AwsDiscoveryStartingLocationH\x00\x1a\x63\n\x1c\x41wsDiscoveryStartingLocation\x12\x14\n\naccount_id\x18\x02 \x01(\tH\x00\x12$\n\x1a\x61ll_asset_inventory_assets\x18\x03 \x01(\x08H\x00\x42\x07\n\x05scopeB\n\n\x08location\"\x13\n\x11\x41llOtherResources\"\xd3\x02\n\x1cVertexDatasetDiscoveryTarget\x12H\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x33.google.privacy.dlp.v2.DiscoveryVertexDatasetFilterB\x03\xe0\x41\x02\x12K\n\nconditions\x18\x02 \x01(\x0b\x32\x37.google.privacy.dlp.v2.DiscoveryVertexDatasetConditions\x12\\\n\x12generation_cadence\x18\x03 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryVertexDatasetGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x8e\x02\n\x1c\x44iscoveryVertexDatasetFilter\x12\x44\n\ncollection\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.VertexDatasetCollectionH\x00\x12\x62\n!vertex_dataset_resource_reference\x18\x02 \x01(\x0b\x32\x35.google.privacy.dlp.v2.VertexDatasetResourceReferenceH\x00\x12:\n\x06others\x18\x64 \x01(\x0b\x32(.google.privacy.dlp.v2.AllOtherResourcesH\x00\x42\x08\n\x06\x66ilter\"s\n\x17VertexDatasetCollection\x12M\n\x16vertex_dataset_regexes\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.VertexDatasetRegexesH\x00\x42\t\n\x07pattern\"X\n\x14VertexDatasetRegexes\x12@\n\x08patterns\x18\x01 \x03(\x0b\x32).google.privacy.dlp.v2.VertexDatasetRegexB\x03\xe0\x41\x02\".\n\x12VertexDatasetRegex\x12\x18\n\x10project_id_regex\x18\x01 \x01(\t\"D\n\x1eVertexDatasetResourceReference\x12\"\n\x15\x64\x61taset_resource_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\x81\x01\n DiscoveryVertexDatasetConditions\x12\x31\n\rcreated_after\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x07min_age\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xe2\x01\n\'DiscoveryVertexDatasetGenerationCadence\x12L\n\x11refresh_frequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\x12i\n!inspect_template_modified_cadence\x18\x02 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadence\"\xdc\x06\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\x31\n\rlast_modified\x18\x0f \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\x12<\n\x0e\x61\x63tion_details\x18\x0c \x03(\x0b\x32$.google.privacy.dlp.v2.ActionDetails\"o\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\x12\n\n\x06\x41\x43TIVE\x10\x06:\x7f\xea\x41|\n\x19\x64lp.googleapis.com/DlpJob\x12$projects/{project}/dlpJobs/{dlp_job}\x12\x39projects/{project}/locations/{location}/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\"\xd6\x01\n\x12ListDlpJobsRequest\x12\x31\n\x06parent\x18\x04 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\x12\x19\x64lp.googleapis.com/DlpJob\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\x46inishDlpJobRequest\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\"\xd7\x01\n\x1f\x43reateDeidentifyTemplateRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%dlp.googleapis.com/DeidentifyTemplate\x12K\n\x13\x64\x65identify_template\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplateB\x03\xe0\x41\x02\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\"\xa6\x02\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\x12\x46\n\ndictionary\x18\x04 \x01(\x0b\x32\x30.google.privacy.dlp.v2.CustomInfoType.DictionaryH\x00\x12<\n\x05regex\x18\x05 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.RegexH\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\"\xf1\x03\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:\xc1\x02\xea\x41\xbd\x02\n!dlp.googleapis.com/StoredInfoType\x12?organizations/{organization}/storedInfoTypes/{stored_info_type}\x12\x35projects/{project}/storedInfoTypes/{stored_info_type}\x12Torganizations/{organization}/locations/{location}/storedInfoTypes/{stored_info_type}\x12Jprojects/{project}/locations/{location}/storedInfoTypes/{stored_info_type}\"\xcc\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.StoredInfoTypeConfigB\x03\xe0\x41\x02\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\"\x94\x01\n\x1eHybridInspectJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\x12=\n\x0bhybrid_item\x18\x03 \x01(\x0b\x32(.google.privacy.dlp.v2.HybridContentItem\"\x8c\x01\n\x1aHybridInspectDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\x12=\n\x0bhybrid_item\x18\x03 \x01(\x0b\x32(.google.privacy.dlp.v2.HybridContentItem\"\x8b\x01\n\x11HybridContentItem\x12\x30\n\x04item\x18\x01 \x01(\x0b\x32\".google.privacy.dlp.v2.ContentItem\x12\x44\n\x0f\x66inding_details\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.HybridFindingDetails\"\xb0\x02\n\x14HybridFindingDetails\x12;\n\x11\x63ontainer_details\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.Container\x12\x13\n\x0b\x66ile_offset\x18\x02 \x01(\x03\x12\x12\n\nrow_offset\x18\x03 \x01(\x03\x12:\n\rtable_options\x18\x04 \x01(\x0b\x32#.google.privacy.dlp.v2.TableOptions\x12G\n\x06labels\x18\x05 \x03(\x0b\x32\x37.google.privacy.dlp.v2.HybridFindingDetails.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x17\n\x15HybridInspectResponse\"\xc3\x01\n\x14ImageContainmentType\x12\x33\n\x08\x65ncloses\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.EnclosesH\x00\x12:\n\x0c\x66ully_inside\x18\x02 \x01(\x0b\x32\".google.privacy.dlp.v2.FullyInsideH\x00\x12\x32\n\x08overlaps\x18\x03 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.OverlapH\x00\x42\x06\n\x04type\"\t\n\x07Overlap\"\n\n\x08\x45ncloses\"\r\n\x0b\x46ullyInside\"\xa8\x01\n\x1eListProjectDataProfilesRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%dlp.googleapis.com/ProjectDataProfile\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\"\x84\x01\n\x1fListProjectDataProfilesResponse\x12H\n\x15project_data_profiles\x18\x01 \x03(\x0b\x32).google.privacy.dlp.v2.ProjectDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xa4\x01\n\x1cListTableDataProfilesRequest\x12;\n\x06parent\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\x12#dlp.googleapis.com/TableDataProfile\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\"~\n\x1dListTableDataProfilesResponse\x12\x44\n\x13table_data_profiles\x18\x01 \x03(\x0b\x32\'.google.privacy.dlp.v2.TableDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xa6\x01\n\x1dListColumnDataProfilesRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$dlp.googleapis.com/ColumnDataProfile\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\"\x81\x01\n\x1eListColumnDataProfilesResponse\x12\x46\n\x14\x63olumn_data_profiles\x18\x01 \x03(\x0b\x32(.google.privacy.dlp.v2.ColumnDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xcb\x01\n\rDataRiskLevel\x12\x46\n\x05score\x18\x01 \x01(\x0e\x32\x37.google.privacy.dlp.v2.DataRiskLevel.DataRiskLevelScore\"r\n\x12\x44\x61taRiskLevelScore\x12\x1a\n\x16RISK_SCORE_UNSPECIFIED\x10\x00\x12\x0c\n\x08RISK_LOW\x10\n\x12\x10\n\x0cRISK_UNKNOWN\x10\x0c\x12\x11\n\rRISK_MODERATE\x10\x14\x12\r\n\tRISK_HIGH\x10\x1e\"\xdc\x04\n\x12ProjectDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12:\n\x16profile_last_generated\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x42\n\x11sensitivity_score\x18\x04 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x05 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12<\n\x0eprofile_status\x18\x07 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12 \n\x18table_data_profile_count\x18\t \x01(\x03\x12%\n\x1d\x66ile_store_data_profile_count\x18\n \x01(\x03:\xdd\x01\xea\x41\xd9\x01\n%dlp.googleapis.com/ProjectDataProfile\x12\\organizations/{organization}/locations/{location}/projectDataProfiles/{project_data_profile}\x12Rprojects/{project}/locations/{location}/projectDataProfiles/{project_data_profile}\"\xc9\x02\n\x19\x44\x61taProfileConfigSnapshot\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12I\n\x10\x64\x61ta_profile_job\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.DataProfileJobConfigB\x02\x18\x01\x12@\n\x10\x64iscovery_config\x18\x04 \x01(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfig\x12\x1d\n\x15inspect_template_name\x18\x05 \x01(\t\x12\x42\n\x1einspect_template_modified_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x93\x0e\n\x10TableDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12?\n\x10\x64\x61ta_source_type\x18$ \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceType\x12\x1c\n\x14project_data_profile\x18\x02 \x01(\t\x12\x1a\n\x12\x64\x61taset_project_id\x18\x18 \x01(\t\x12\x18\n\x10\x64\x61taset_location\x18\x1d \x01(\t\x12\x12\n\ndataset_id\x18\x19 \x01(\t\x12\x10\n\x08table_id\x18\x1a \x01(\t\x12\x15\n\rfull_resource\x18\x03 \x01(\t\x12<\n\x0eprofile_status\x18\x15 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12<\n\x05state\x18\x16 \x01(\x0e\x32-.google.privacy.dlp.v2.TableDataProfile.State\x12\x42\n\x11sensitivity_score\x18\x05 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x06 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12\x44\n\x14predicted_info_types\x18\x1b \x03(\x0b\x32&.google.privacy.dlp.v2.InfoTypeSummary\x12\x45\n\x10other_info_types\x18\x1c \x03(\x0b\x32+.google.privacy.dlp.v2.OtherInfoTypeSummary\x12I\n\x0f\x63onfig_snapshot\x18\x07 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DataProfileConfigSnapshot\x12\x36\n\x12last_modified_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0f\x65xpiration_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1c\n\x14scanned_column_count\x18\n \x01(\x03\x12\x1b\n\x13\x66\x61iled_column_count\x18\x0b \x01(\x03\x12\x18\n\x10table_size_bytes\x18\x0c \x01(\x03\x12\x11\n\trow_count\x18\r \x01(\x03\x12\x42\n\x11\x65ncryption_status\x18\x0e \x01(\x0e\x32\'.google.privacy.dlp.v2.EncryptionStatus\x12\x46\n\x13resource_visibility\x18\x0f \x01(\x0e\x32).google.privacy.dlp.v2.ResourceVisibility\x12:\n\x16profile_last_generated\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12T\n\x0fresource_labels\x18\x11 \x03(\x0b\x32;.google.privacy.dlp.v2.TableDataProfile.ResourceLabelsEntry\x12/\n\x0b\x63reate_time\x18\x17 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x15sample_findings_table\x18% \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12(\n\x04tags\x18\' \x03(\x0b\x32\x1a.google.privacy.dlp.v2.Tag\x12\x41\n\x11related_resources\x18) \x03(\x0b\x32&.google.privacy.dlp.v2.RelatedResource\x12.\n\x07\x64omains\x18/ \x03(\x0b\x32\x1d.google.privacy.dlp.v2.Domain\x1a\x35\n\x13ResourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"5\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x08\n\x04\x44ONE\x10\x02:\xd3\x01\xea\x41\xcf\x01\n#dlp.googleapis.com/TableDataProfile\x12Xorganizations/{organization}/locations/{location}/tableDataProfiles/{table_data_profile}\x12Nprojects/{project}/locations/{location}/tableDataProfiles/{table_data_profile}\"b\n\rProfileStatus\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12-\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"g\n\x0fInfoTypeSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12 \n\x14\x65stimated_prevalence\x18\x02 \x01(\x05\x42\x02\x18\x01\"\x88\x01\n\x14OtherInfoTypeSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x1c\n\x14\x65stimated_prevalence\x18\x02 \x01(\x05\x12\x1e\n\x16\x65xcluded_from_analysis\x18\x03 \x01(\x08\"\xc9\r\n\x11\x43olumnDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12<\n\x0eprofile_status\x18\x11 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12=\n\x05state\x18\x12 \x01(\x0e\x32..google.privacy.dlp.v2.ColumnDataProfile.State\x12:\n\x16profile_last_generated\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1a\n\x12table_data_profile\x18\x04 \x01(\t\x12\x1b\n\x13table_full_resource\x18\x05 \x01(\t\x12\x1a\n\x12\x64\x61taset_project_id\x18\x13 \x01(\t\x12\x18\n\x10\x64\x61taset_location\x18\x14 \x01(\t\x12\x12\n\ndataset_id\x18\x15 \x01(\t\x12\x10\n\x08table_id\x18\x16 \x01(\t\x12\x0e\n\x06\x63olumn\x18\x06 \x01(\t\x12\x42\n\x11sensitivity_score\x18\x07 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x08 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12@\n\x10\x63olumn_info_type\x18\t \x01(\x0b\x32&.google.privacy.dlp.v2.InfoTypeSummary\x12\x42\n\rother_matches\x18\n \x03(\x0b\x32+.google.privacy.dlp.v2.OtherInfoTypeSummary\x12M\n\x19\x65stimated_null_percentage\x18\x17 \x01(\x0e\x32*.google.privacy.dlp.v2.NullPercentageLevel\x12O\n\x1a\x65stimated_uniqueness_score\x18\x18 \x01(\x0e\x32+.google.privacy.dlp.v2.UniquenessScoreLevel\x12\x17\n\x0f\x66ree_text_score\x18\r \x01(\x01\x12L\n\x0b\x63olumn_type\x18\x0e \x01(\x0e\x32\x37.google.privacy.dlp.v2.ColumnDataProfile.ColumnDataType\x12P\n\x0cpolicy_state\x18\x0f \x01(\x0e\x32:.google.privacy.dlp.v2.ColumnDataProfile.ColumnPolicyState\"5\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x08\n\x04\x44ONE\x10\x02\"\xff\x02\n\x0e\x43olumnDataType\x12 \n\x1c\x43OLUMN_DATA_TYPE_UNSPECIFIED\x10\x00\x12\x0e\n\nTYPE_INT64\x10\x01\x12\r\n\tTYPE_BOOL\x10\x02\x12\x10\n\x0cTYPE_FLOAT64\x10\x03\x12\x0f\n\x0bTYPE_STRING\x10\x04\x12\x0e\n\nTYPE_BYTES\x10\x05\x12\x12\n\x0eTYPE_TIMESTAMP\x10\x06\x12\r\n\tTYPE_DATE\x10\x07\x12\r\n\tTYPE_TIME\x10\x08\x12\x11\n\rTYPE_DATETIME\x10\t\x12\x12\n\x0eTYPE_GEOGRAPHY\x10\n\x12\x10\n\x0cTYPE_NUMERIC\x10\x0b\x12\x0f\n\x0bTYPE_RECORD\x10\x0c\x12\x13\n\x0fTYPE_BIGNUMERIC\x10\r\x12\r\n\tTYPE_JSON\x10\x0e\x12\x11\n\rTYPE_INTERVAL\x10\x0f\x12\x13\n\x0fTYPE_RANGE_DATE\x10\x10\x12\x17\n\x13TYPE_RANGE_DATETIME\x10\x11\x12\x18\n\x14TYPE_RANGE_TIMESTAMP\x10\x12\"R\n\x11\x43olumnPolicyState\x12#\n\x1f\x43OLUMN_POLICY_STATE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x43OLUMN_POLICY_TAGGED\x10\x01:\xd8\x01\xea\x41\xd4\x01\n$dlp.googleapis.com/ColumnDataProfile\x12Zorganizations/{organization}/locations/{location}/columnDataProfiles/{column_data_profile}\x12Pprojects/{project}/locations/{location}/columnDataProfiles/{column_data_profile}\"\xe8\x0e\n\x14\x46ileStoreDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12?\n\x10\x64\x61ta_source_type\x18\x02 \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceType\x12\x1c\n\x14project_data_profile\x18\x03 \x01(\t\x12\x12\n\nproject_id\x18\x04 \x01(\t\x12\x1b\n\x13\x66ile_store_location\x18\x05 \x01(\t\x12\x1e\n\x16\x64\x61ta_storage_locations\x18\x13 \x03(\t\x12\x15\n\rlocation_type\x18\x14 \x01(\t\x12\x17\n\x0f\x66ile_store_path\x18\x06 \x01(\t\x12\x15\n\rfull_resource\x18\x18 \x01(\t\x12I\n\x0f\x63onfig_snapshot\x18\x07 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DataProfileConfigSnapshot\x12<\n\x0eprofile_status\x18\x08 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12@\n\x05state\x18\t \x01(\x0e\x32\x31.google.privacy.dlp.v2.FileStoreDataProfile.State\x12:\n\x16profile_last_generated\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x46\n\x13resource_visibility\x18\x0b \x01(\x0e\x32).google.privacy.dlp.v2.ResourceVisibility\x12\x42\n\x11sensitivity_score\x18\x0c \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\r \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12/\n\x0b\x63reate_time\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x12last_modified_time\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12I\n\x16\x66ile_cluster_summaries\x18\x10 \x03(\x0b\x32).google.privacy.dlp.v2.FileClusterSummary\x12`\n\x13resource_attributes\x18\x11 \x03(\x0b\x32\x43.google.privacy.dlp.v2.FileStoreDataProfile.ResourceAttributesEntry\x12X\n\x0fresource_labels\x18\x12 \x03(\x0b\x32?.google.privacy.dlp.v2.FileStoreDataProfile.ResourceLabelsEntry\x12W\n\x1e\x66ile_store_info_type_summaries\x18\x15 \x03(\x0b\x32/.google.privacy.dlp.v2.FileStoreInfoTypeSummary\x12\x43\n\x15sample_findings_table\x18\x16 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12\x1b\n\x13\x66ile_store_is_empty\x18\x17 \x01(\x08\x12(\n\x04tags\x18\x19 \x03(\x0b\x32\x1a.google.privacy.dlp.v2.Tag\x12\x41\n\x11related_resources\x18\x1a \x03(\x0b\x32&.google.privacy.dlp.v2.RelatedResource\x12.\n\x07\x64omains\x18\x1b \x03(\x0b\x32\x1d.google.privacy.dlp.v2.Domain\x1aW\n\x17ResourceAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value:\x02\x38\x01\x1a\x35\n\x13ResourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"5\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x08\n\x04\x44ONE\x10\x02:\xe9\x01\xea\x41\xe5\x01\n\'dlp.googleapis.com/FileStoreDataProfile\x12\x61organizations/{organization}/locations/{location}/fileStoreDataProfiles/{file_store_data_profile}\x12Wprojects/{project}/locations/{location}/fileStoreDataProfiles/{file_store_data_profile}\"?\n\x03Tag\x12\x1c\n\x14namespaced_tag_value\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\"H\n\nTagFilters\x12:\n\x0btag_filters\x18\x01 \x03(\x0b\x32 .google.privacy.dlp.v2.TagFilterB\x03\xe0\x41\x02\"S\n\tTagFilter\x12\x1e\n\x14namespaced_tag_value\x18\x01 \x01(\tH\x00\x12\x1c\n\x12namespaced_tag_key\x18\x02 \x01(\tH\x00\x42\x08\n\x06\x66ormat\"(\n\x0fRelatedResource\x12\x15\n\rfull_resource\x18\x01 \x01(\t\"N\n\x18\x46ileStoreInfoTypeSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\"+\n\x11\x46ileExtensionInfo\x12\x16\n\x0e\x66ile_extension\x18\x01 \x01(\t\"\x8c\x04\n\x12\x46ileClusterSummary\x12\x41\n\x11\x66ile_cluster_type\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.FileClusterType\x12W\n\x1e\x66ile_store_info_type_summaries\x18\x02 \x03(\x0b\x32/.google.privacy.dlp.v2.FileStoreInfoTypeSummary\x12\x42\n\x11sensitivity_score\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x04 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12,\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Error\x12I\n\x17\x66ile_extensions_scanned\x18\x07 \x03(\x0b\x32(.google.privacy.dlp.v2.FileExtensionInfo\x12\x46\n\x14\x66ile_extensions_seen\x18\x08 \x03(\x0b\x32(.google.privacy.dlp.v2.FileExtensionInfo\x12\x16\n\x0eno_files_exist\x18\t \x01(\x08\"[\n\x1cGetProjectDataProfileRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/ProjectDataProfile\"]\n\x1eGetFileStoreDataProfileRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/ProjectDataProfile\"\xc0\x01\n ListFileStoreDataProfilesRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\x12\'dlp.googleapis.com/FileStoreDataProfile\x12\x17\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8b\x01\n!ListFileStoreDataProfilesResponse\x12M\n\x18\x66ile_store_data_profiles\x18\x01 \x03(\x0b\x32+.google.privacy.dlp.v2.FileStoreDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"b\n!DeleteFileStoreDataProfileRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'dlp.googleapis.com/FileStoreDataProfile\"W\n\x1aGetTableDataProfileRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#dlp.googleapis.com/TableDataProfile\"Y\n\x1bGetColumnDataProfileRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$dlp.googleapis.com/ColumnDataProfile\"\xea\x05\n\x1a\x44\x61taProfilePubSubCondition\x12X\n\x0b\x65xpressions\x18\x01 \x01(\x0b\x32\x43.google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions\x1a\xe9\x01\n\x0fPubSubCondition\x12\x62\n\x12minimum_risk_score\x18\x01 \x01(\x0e\x32\x44.google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucketH\x00\x12i\n\x19minimum_sensitivity_score\x18\x02 \x01(\x0e\x32\x44.google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucketH\x00\x42\x07\n\x05value\x1a\xab\x02\n\x11PubSubExpressions\x12s\n\x10logical_operator\x18\x01 \x01(\x0e\x32Y.google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions.PubSubLogicalOperator\x12U\n\nconditions\x18\x02 \x03(\x0b\x32\x41.google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubCondition\"J\n\x15PubSubLogicalOperator\x12 \n\x1cLOGICAL_OPERATOR_UNSPECIFIED\x10\x00\x12\x06\n\x02OR\x10\x01\x12\x07\n\x03\x41ND\x10\x02\"X\n\x12ProfileScoreBucket\x12$\n PROFILE_SCORE_BUCKET_UNSPECIFIED\x10\x00\x12\x08\n\x04HIGH\x10\x01\x12\x12\n\x0eMEDIUM_OR_HIGH\x10\x02\"\xe0\x01\n\x18\x44\x61taProfilePubSubMessage\x12\x38\n\x07profile\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.TableDataProfile\x12G\n\x12\x66ile_store_profile\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.FileStoreDataProfile\x12\x41\n\x05\x65vent\x18\x02 \x01(\x0e\x32\x32.google.privacy.dlp.v2.DataProfileAction.EventType\"\x8c\x01\n\x17\x43reateConnectionRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/Connection\x12:\n\nconnection\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.ConnectionB\x03\xe0\x41\x02\"K\n\x14GetConnectionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/Connection\"\x95\x01\n\x16ListConnectionsRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/Connection\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"\x97\x01\n\x18SearchConnectionsRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/Connection\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"j\n\x17ListConnectionsResponse\x12\x36\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32!.google.privacy.dlp.v2.Connection\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"l\n\x19SearchConnectionsResponse\x12\x36\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32!.google.privacy.dlp.v2.Connection\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xc0\x01\n\x17UpdateConnectionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/Connection\x12:\n\nconnection\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.ConnectionB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\"N\n\x17\x44\x65leteConnectionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/Connection\"\x90\x03\n\nConnection\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12:\n\x05state\x18\x02 \x01(\x0e\x32&.google.privacy.dlp.v2.ConnectionStateB\x03\xe0\x41\x02\x12\x31\n\x06\x65rrors\x18\x03 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x12>\n\tcloud_sql\x18\x04 \x01(\x0b\x32).google.privacy.dlp.v2.CloudSqlPropertiesH\x00:\xb1\x01\xea\x41\xad\x01\n\x1d\x64lp.googleapis.com/Connection\x12@projects/{project}/locations/{location}/connections/{connection}\x12Jorganizations/{organization}/locations/{location}/connections/{connection}B\x0c\n\nproperties\"[\n\x17SecretManagerCredential\x12\x15\n\x08username\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12)\n\x1cpassword_secret_version_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\x17\n\x15\x43loudSqlIamCredential\"\xb5\x03\n\x12\x43loudSqlProperties\x12\x1f\n\x0f\x63onnection_name\x18\x01 \x01(\tB\x06\xe0\x41\x05\xe0\x41\x01\x12K\n\x11username_password\x18\x02 \x01(\x0b\x32..google.privacy.dlp.v2.SecretManagerCredentialH\x00\x12\x45\n\rcloud_sql_iam\x18\x03 \x01(\x0b\x32,.google.privacy.dlp.v2.CloudSqlIamCredentialH\x00\x12\x1c\n\x0fmax_connections\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02\x12V\n\x0f\x64\x61tabase_engine\x18\x07 \x01(\x0e\x32\x38.google.privacy.dlp.v2.CloudSqlProperties.DatabaseEngineB\x03\xe0\x41\x02\"f\n\x0e\x44\x61tabaseEngine\x12\x1b\n\x17\x44\x41TABASE_ENGINE_UNKNOWN\x10\x00\x12\x19\n\x15\x44\x41TABASE_ENGINE_MYSQL\x10\x01\x12\x1c\n\x18\x44\x41TABASE_ENGINE_POSTGRES\x10\x02\x42\x0c\n\ncredential\"Z\n\x1d\x44\x65leteTableDataProfileRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#dlp.googleapis.com/TableDataProfile\"%\n\x0e\x44\x61taSourceType\x12\x13\n\x0b\x64\x61ta_source\x18\x01 \x01(\t\"\xf4\x02\n\x0f\x46ileClusterType\x12\x41\n\x07\x63luster\x18\x01 \x01(\x0e\x32..google.privacy.dlp.v2.FileClusterType.ClusterH\x00\"\x88\x02\n\x07\x43luster\x12\x17\n\x13\x43LUSTER_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x43LUSTER_UNKNOWN\x10\x01\x12\x10\n\x0c\x43LUSTER_TEXT\x10\x02\x12\x1b\n\x17\x43LUSTER_STRUCTURED_DATA\x10\x03\x12\x17\n\x13\x43LUSTER_SOURCE_CODE\x10\x04\x12\x19\n\x15\x43LUSTER_RICH_DOCUMENT\x10\x05\x12\x11\n\rCLUSTER_IMAGE\x10\x06\x12\x13\n\x0f\x43LUSTER_ARCHIVE\x10\x07\x12\x16\n\x12\x43LUSTER_MULTIMEDIA\x10\x08\x12\x16\n\x12\x43LUSTER_EXECUTABLE\x10\t\x12\x14\n\x10\x43LUSTER_AI_MODEL\x10\nB\x13\n\x11\x66ile_cluster_type\"\xb6\x05\n\x12ProcessingLocation\x12`\n\x17image_fallback_location\x18\x01 \x01(\x0b\x32?.google.privacy.dlp.v2.ProcessingLocation.ImageFallbackLocation\x12\x66\n\x1a\x64ocument_fallback_location\x18\x02 \x01(\x0b\x32\x42.google.privacy.dlp.v2.ProcessingLocation.DocumentFallbackLocation\x1a\x17\n\x15MultiRegionProcessing\x1a\x12\n\x10GlobalProcessing\x1a\xd1\x01\n\x15ImageFallbackLocation\x12`\n\x17multi_region_processing\x18\x64 \x01(\x0b\x32?.google.privacy.dlp.v2.ProcessingLocation.MultiRegionProcessing\x12V\n\x11global_processing\x18\xc8\x01 \x01(\x0b\x32:.google.privacy.dlp.v2.ProcessingLocation.GlobalProcessing\x1a\xd4\x01\n\x18\x44ocumentFallbackLocation\x12`\n\x17multi_region_processing\x18\x64 \x01(\x0b\x32?.google.privacy.dlp.v2.ProcessingLocation.MultiRegionProcessing\x12V\n\x11global_processing\x18\xc8\x01 \x01(\x0b\x32:.google.privacy.dlp.v2.ProcessingLocation.GlobalProcessing\"K\n\x17SaveToGcsFindingsOutput\x12\x30\n\x08\x66indings\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.Finding\"\xc6\x02\n\x06\x44omain\x12\x38\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32&.google.privacy.dlp.v2.Domain.Category\x12\x35\n\x07signals\x18\x02 \x03(\x0e\x32$.google.privacy.dlp.v2.Domain.Signal\"6\n\x08\x43\x61tegory\x12\x18\n\x14\x43\x41TEGORY_UNSPECIFIED\x10\x00\x12\x06\n\x02\x41I\x10\x01\x12\x08\n\x04\x43ODE\x10\x02\"\x92\x01\n\x06Signal\x12\x16\n\x12SIGNAL_UNSPECIFIED\x10\x00\x12\t\n\x05MODEL\x10\x01\x12\x12\n\x0eTEXT_EMBEDDING\x10\x02\x12\r\n\tEMBEDDING\x10\x07\x12\x11\n\rVERTEX_PLUGIN\x10\x03\x12\x11\n\rVECTOR_PLUGIN\x10\x04\x12\x0f\n\x0bSOURCE_CODE\x10\x05\x12\x0b\n\x07SERVICE\x10\x06*\xa0\x01\n\x1eTransformationResultStatusType\x12\x1a\n\x16STATE_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11INVALID_TRANSFORM\x10\x01\x12\"\n\x1e\x42IGQUERY_MAX_ROW_SIZE_EXCEEDED\x10\x02\x12\x1a\n\x16METADATA_UNRETRIEVABLE\x10\x03\x12\x0b\n\x07SUCCESS\x10\x04*\x7f\n\x1bTransformationContainerType\x12\x1f\n\x1bTRANSFORM_UNKNOWN_CONTAINER\x10\x00\x12\x12\n\x0eTRANSFORM_BODY\x10\x01\x12\x16\n\x12TRANSFORM_METADATA\x10\x02\x12\x13\n\x0fTRANSFORM_TABLE\x10\x03*\xe0\x02\n\x12TransformationType\x12#\n\x1fTRANSFORMATION_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12RECORD_SUPPRESSION\x10\x01\x12\x11\n\rREPLACE_VALUE\x10\x02\x12\x16\n\x12REPLACE_DICTIONARY\x10\x0f\x12\n\n\x06REDACT\x10\x03\x12\x12\n\x0e\x43HARACTER_MASK\x10\x04\x12\x1a\n\x16\x43RYPTO_REPLACE_FFX_FPE\x10\x05\x12\x18\n\x14\x46IXED_SIZE_BUCKETING\x10\x06\x12\r\n\tBUCKETING\x10\x07\x12\x1a\n\x16REPLACE_WITH_INFO_TYPE\x10\x08\x12\r\n\tTIME_PART\x10\t\x12\x0f\n\x0b\x43RYPTO_HASH\x10\n\x12\x0e\n\nDATE_SHIFT\x10\x0c\x12\x1f\n\x1b\x43RYPTO_DETERMINISTIC_CONFIG\x10\r\x12\x10\n\x0cREDACT_IMAGE\x10\x0e*r\n\x11ProfileGeneration\x12\"\n\x1ePROFILE_GENERATION_UNSPECIFIED\x10\x00\x12\x1a\n\x16PROFILE_GENERATION_NEW\x10\x01\x12\x1d\n\x19PROFILE_GENERATION_UPDATE\x10\x02*\x96\x01\n\x1b\x42igQueryTableTypeCollection\x12$\n BIG_QUERY_COLLECTION_UNSPECIFIED\x10\x00\x12\"\n\x1e\x42IG_QUERY_COLLECTION_ALL_TYPES\x10\x01\x12-\n)BIG_QUERY_COLLECTION_ONLY_SUPPORTED_TYPES\x10\x02*\xa8\x01\n\x11\x42igQueryTableType\x12$\n BIG_QUERY_TABLE_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x42IG_QUERY_TABLE_TYPE_TABLE\x10\x01\x12*\n&BIG_QUERY_TABLE_TYPE_EXTERNAL_BIG_LAKE\x10\x02\x12!\n\x1d\x42IG_QUERY_TABLE_TYPE_SNAPSHOT\x10\x03*\x94\x01\n\x1a\x44\x61taProfileUpdateFrequency\x12 \n\x1cUPDATE_FREQUENCY_UNSPECIFIED\x10\x00\x12\x1a\n\x16UPDATE_FREQUENCY_NEVER\x10\x01\x12\x1a\n\x16UPDATE_FREQUENCY_DAILY\x10\x02\x12\x1c\n\x18UPDATE_FREQUENCY_MONTHLY\x10\x04*]\n\x19\x42igQueryTableModification\x12\"\n\x1eTABLE_MODIFICATION_UNSPECIFIED\x10\x00\x12\x1c\n\x18TABLE_MODIFIED_TIMESTAMP\x10\x01*u\n\x1a\x42igQuerySchemaModification\x12#\n\x1fSCHEMA_MODIFICATION_UNSPECIFIED\x10\x00\x12\x16\n\x12SCHEMA_NEW_COLUMNS\x10\x01\x12\x1a\n\x16SCHEMA_REMOVED_COLUMNS\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*\xae\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\x12\x1f\n\x1bMATCHING_TYPE_RULE_SPECIFIC\x10\x04*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*v\n\x0cMetadataType\x12\x1c\n\x18METADATATYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10STORAGE_METADATA\x10\x02\x12\x14\n\x10\x43ONTENT_METADATA\x10\x03\x12\x1c\n\x18\x43LIENT_PROVIDED_METADATA\x10\x04*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*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*\xa3\x01\n\x12ResourceVisibility\x12#\n\x1fRESOURCE_VISIBILITY_UNSPECIFIED\x10\x00\x12\x1e\n\x1aRESOURCE_VISIBILITY_PUBLIC\x10\n\x12$\n RESOURCE_VISIBILITY_INCONCLUSIVE\x10\x0f\x12\"\n\x1eRESOURCE_VISIBILITY_RESTRICTED\x10\x14*u\n\x10\x45ncryptionStatus\x12!\n\x1d\x45NCRYPTION_STATUS_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x45NCRYPTION_GOOGLE_MANAGED\x10\x01\x12\x1f\n\x1b\x45NCRYPTION_CUSTOMER_MANAGED\x10\x02*\xa9\x01\n\x13NullPercentageLevel\x12%\n!NULL_PERCENTAGE_LEVEL_UNSPECIFIED\x10\x00\x12\x1c\n\x18NULL_PERCENTAGE_VERY_LOW\x10\x01\x12\x17\n\x13NULL_PERCENTAGE_LOW\x10\x02\x12\x1a\n\x16NULL_PERCENTAGE_MEDIUM\x10\x03\x12\x18\n\x14NULL_PERCENTAGE_HIGH\x10\x04*\x90\x01\n\x14UniquenessScoreLevel\x12&\n\"UNIQUENESS_SCORE_LEVEL_UNSPECIFIED\x10\x00\x12\x18\n\x14UNIQUENESS_SCORE_LOW\x10\x01\x12\x1b\n\x17UNIQUENESS_SCORE_MEDIUM\x10\x02\x12\x19\n\x15UNIQUENESS_SCORE_HIGH\x10\x03*f\n\x0f\x43onnectionState\x12 \n\x1c\x43ONNECTION_STATE_UNSPECIFIED\x10\x00\x12\x17\n\x13MISSING_CREDENTIALS\x10\x01\x12\r\n\tAVAILABLE\x10\x02\x12\t\n\x05\x45RROR\x10\x03\x32\xddv\n\nDlpService\x12\xdb\x01\n\x0eInspectContent\x12,.google.privacy.dlp.v2.InspectContentRequest\x1a-.google.privacy.dlp.v2.InspectContentResponse\"l\x82\xd3\xe4\x93\x02\x66\"\'/v2/{parent=projects/*}/content:inspect:\x01*Z8\"3/v2/{parent=projects/*/locations/*}/content:inspect:\x01*\x12\xcc\x01\n\x0bRedactImage\x12).google.privacy.dlp.v2.RedactImageRequest\x1a*.google.privacy.dlp.v2.RedactImageResponse\"f\x82\xd3\xe4\x93\x02`\"$/v2/{parent=projects/*}/image:redact:\x01*Z5\"0/v2/{parent=projects/*/locations/*}/image:redact:\x01*\x12\xea\x01\n\x11\x44\x65identifyContent\x12/.google.privacy.dlp.v2.DeidentifyContentRequest\x1a\x30.google.privacy.dlp.v2.DeidentifyContentResponse\"r\x82\xd3\xe4\x93\x02l\"*/v2/{parent=projects/*}/content:deidentify:\x01*Z;\"6/v2/{parent=projects/*/locations/*}/content:deidentify:\x01*\x12\xea\x01\n\x11ReidentifyContent\x12/.google.privacy.dlp.v2.ReidentifyContentRequest\x1a\x30.google.privacy.dlp.v2.ReidentifyContentResponse\"r\x82\xd3\xe4\x93\x02l\"*/v2/{parent=projects/*}/content:reidentify:\x01*Z;\"6/v2/{parent=projects/*/locations/*}/content:reidentify:\x01*\x12\x99\x02\n\rListInfoTypes\x12+.google.privacy.dlp.v2.ListInfoTypesRequest\x1a,.google.privacy.dlp.v2.ListInfoTypesResponse\"\xac\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x9c\x01\x12\r/v2/infoTypesZ$\x12\"/v2/{parent=locations/*}/infoTypesZ/\x12-/v2/{parent=projects/*/locations/*}/infoTypesZ4\x12\x32/v2/{parent=organizations/*/locations/*}/infoTypes\x12\xf4\x02\n\x15\x43reateInspectTemplate\x12\x33.google.privacy.dlp.v2.CreateInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate\"\xfd\x01\xda\x41\x17parent,inspect_template\x82\xd3\xe4\x93\x02\xdc\x01\"4/v2/{parent=projects/*/locations/*}/inspectTemplates:\x01*Z>\"9/v2/{parent=organizations/*/locations/*}/inspectTemplates:\x01*Z-\"(/v2/{parent=projects/*}/inspectTemplates:\x01*Z2\"-/v2/{parent=organizations/*}/inspectTemplates:\x01*\x12\xfe\x02\n\x15UpdateInspectTemplate\x12\x33.google.privacy.dlp.v2.UpdateInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate\"\x87\x02\xda\x41!name,inspect_template,update_mask\x82\xd3\xe4\x93\x02\xdc\x01\x32\x34/v2/{name=projects/*/locations/*/inspectTemplates/*}:\x01*Z>29/v2/{name=organizations/*/locations/*/inspectTemplates/*}:\x01*Z-2(/v2/{name=projects/*/inspectTemplates/*}:\x01*Z22-/v2/{name=organizations/*/inspectTemplates/*}:\x01*\x12\xcf\x02\n\x12GetInspectTemplate\x12\x30.google.privacy.dlp.v2.GetInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate\"\xde\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02\xd0\x01\x12\x34/v2/{name=projects/*/locations/*/inspectTemplates/*}Z;\x12\x39/v2/{name=organizations/*/locations/*/inspectTemplates/*}Z*\x12(/v2/{name=projects/*/inspectTemplates/*}Z/\x12-/v2/{name=organizations/*/inspectTemplates/*}\x12\xe2\x02\n\x14ListInspectTemplates\x12\x32.google.privacy.dlp.v2.ListInspectTemplatesRequest\x1a\x33.google.privacy.dlp.v2.ListInspectTemplatesResponse\"\xe0\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\xd0\x01\x12\x34/v2/{parent=projects/*/locations/*}/inspectTemplatesZ;\x12\x39/v2/{parent=organizations/*/locations/*}/inspectTemplatesZ*\x12(/v2/{parent=projects/*}/inspectTemplatesZ/\x12-/v2/{parent=organizations/*}/inspectTemplates\x12\xc5\x02\n\x15\x44\x65leteInspectTemplate\x12\x33.google.privacy.dlp.v2.DeleteInspectTemplateRequest\x1a\x16.google.protobuf.Empty\"\xde\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02\xd0\x01*4/v2/{name=projects/*/locations/*/inspectTemplates/*}Z;*9/v2/{name=organizations/*/locations/*/inspectTemplates/*}Z**(/v2/{name=projects/*/inspectTemplates/*}Z/*-/v2/{name=organizations/*/inspectTemplates/*}\x12\x8c\x03\n\x18\x43reateDeidentifyTemplate\x12\x36.google.privacy.dlp.v2.CreateDeidentifyTemplateRequest\x1a).google.privacy.dlp.v2.DeidentifyTemplate\"\x8c\x02\xda\x41\x1aparent,deidentify_template\x82\xd3\xe4\x93\x02\xe8\x01\"0/v2/{parent=organizations/*}/deidentifyTemplates:\x01*ZA\"\x12\x12*\"9/v2/{parent=organizations/*/locations/*}/discoveryConfigs:\x01*\x12\x9a\x02\n\x15UpdateDiscoveryConfig\x12\x33.google.privacy.dlp.v2.UpdateDiscoveryConfigRequest\x1a&.google.privacy.dlp.v2.DiscoveryConfig\"\xa3\x01\xda\x41!name,discovery_config,update_mask\x82\xd3\xe4\x93\x02y24/v2/{name=projects/*/locations/*/discoveryConfigs/*}:\x01*Z>29/v2/{name=organizations/*/locations/*/discoveryConfigs/*}:\x01*\x12\xf1\x01\n\x12GetDiscoveryConfig\x12\x30.google.privacy.dlp.v2.GetDiscoveryConfigRequest\x1a&.google.privacy.dlp.v2.DiscoveryConfig\"\x80\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02s\x12\x34/v2/{name=projects/*/locations/*/discoveryConfigs/*}Z;\x12\x39/v2/{name=organizations/*/locations/*/discoveryConfigs/*}\x12\x84\x02\n\x14ListDiscoveryConfigs\x12\x32.google.privacy.dlp.v2.ListDiscoveryConfigsRequest\x1a\x33.google.privacy.dlp.v2.ListDiscoveryConfigsResponse\"\x82\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02s\x12\x34/v2/{parent=projects/*/locations/*}/discoveryConfigsZ;\x12\x39/v2/{parent=organizations/*/locations/*}/discoveryConfigs\x12\xe7\x01\n\x15\x44\x65leteDiscoveryConfig\x12\x33.google.privacy.dlp.v2.DeleteDiscoveryConfigRequest\x1a\x16.google.protobuf.Empty\"\x80\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02s*4/v2/{name=projects/*/locations/*/discoveryConfigs/*}Z;*9/v2/{name=organizations/*/locations/*/discoveryConfigs/*}\x12\xdf\x01\n\x0c\x43reateDlpJob\x12*.google.privacy.dlp.v2.CreateDlpJobRequest\x1a\x1d.google.privacy.dlp.v2.DlpJob\"\x83\x01\xda\x41\x12parent,inspect_job\xda\x41\x0fparent,risk_job\x82\xd3\xe4\x93\x02V\"\x1f/v2/{parent=projects/*}/dlpJobs:\x01*Z0\"+/v2/{parent=projects/*/locations/*}/dlpJobs:\x01*\x12\xfb\x01\n\x0bListDlpJobs\x12).google.privacy.dlp.v2.ListDlpJobsRequest\x1a*.google.privacy.dlp.v2.ListDlpJobsResponse\"\x94\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x84\x01\x12\x1f/v2/{parent=projects/*}/dlpJobsZ-\x12+/v2/{parent=projects/*/locations/*}/dlpJobsZ2\x12\x30/v2/{parent=organizations/*/locations/*}/dlpJobs\x12\xb2\x01\n\tGetDlpJob\x12\'.google.privacy.dlp.v2.GetDlpJobRequest\x1a\x1d.google.privacy.dlp.v2.DlpJob\"]\xda\x41\x04name\x82\xd3\xe4\x93\x02P\x12\x1f/v2/{name=projects/*/dlpJobs/*}Z-\x12+/v2/{name=projects/*/locations/*/dlpJobs/*}\x12\xb1\x01\n\x0c\x44\x65leteDlpJob\x12*.google.privacy.dlp.v2.DeleteDlpJobRequest\x1a\x16.google.protobuf.Empty\"]\xda\x41\x04name\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\xe3\x02\n\x14\x43reateStoredInfoType\x12\x32.google.privacy.dlp.v2.CreateStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType\"\xef\x01\xda\x41\rparent,config\x82\xd3\xe4\x93\x02\xd8\x01\",/v2/{parent=organizations/*}/storedInfoTypes:\x01*Z=\"8/v2/{parent=organizations/*/locations/*}/storedInfoTypes:\x01*Z,\"\'/v2/{parent=projects/*}/storedInfoTypes:\x01*Z8\"3/v2/{parent=projects/*/locations/*}/storedInfoTypes:\x01*\x12\xed\x02\n\x14UpdateStoredInfoType\x12\x32.google.privacy.dlp.v2.UpdateStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType\"\xf9\x01\xda\x41\x17name,config,update_mask\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\xc8\x02\n\x11GetStoredInfoType\x12/.google.privacy.dlp.v2.GetStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType\"\xda\x01\xda\x41\x04name\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\xdb\x02\n\x13ListStoredInfoTypes\x12\x31.google.privacy.dlp.v2.ListStoredInfoTypesRequest\x1a\x32.google.privacy.dlp.v2.ListStoredInfoTypesResponse\"\xdc\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\xcc\x01\x12,/v2/{parent=organizations/*}/storedInfoTypesZ:\x12\x38/v2/{parent=organizations/*/locations/*}/storedInfoTypesZ)\x12\'/v2/{parent=projects/*}/storedInfoTypesZ5\x12\x33/v2/{parent=projects/*/locations/*}/storedInfoTypes\x12\xbf\x02\n\x14\x44\x65leteStoredInfoType\x12\x32.google.privacy.dlp.v2.DeleteStoredInfoTypeRequest\x1a\x16.google.protobuf.Empty\"\xda\x01\xda\x41\x04name\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/*}\x12\x93\x02\n\x17ListProjectDataProfiles\x12\x35.google.privacy.dlp.v2.ListProjectDataProfilesRequest\x1a\x36.google.privacy.dlp.v2.ListProjectDataProfilesResponse\"\x88\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02y\x12/v2/{parent=organizations/*/locations/*}/fileStoreDataProfilesZ;\x12\x39/v2/{parent=projects/*/locations/*}/fileStoreDataProfiles\x12\x8a\x02\n\x17GetFileStoreDataProfile\x12\x35.google.privacy.dlp.v2.GetFileStoreDataProfileRequest\x1a+.google.privacy.dlp.v2.FileStoreDataProfile\"\x8a\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02}\x12>/v2/{name=organizations/*/locations/*/fileStoreDataProfiles/*}Z;\x12\x39/v2/{name=projects/*/locations/*/fileStoreDataProfiles/*}\x12\xfb\x01\n\x1a\x44\x65leteFileStoreDataProfile\x12\x38.google.privacy.dlp.v2.DeleteFileStoreDataProfileRequest\x1a\x16.google.protobuf.Empty\"\x8a\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02}*>/v2/{name=organizations/*/locations/*/fileStoreDataProfiles/*}Z;*9/v2/{name=projects/*/locations/*/fileStoreDataProfiles/*}\x12\xf6\x01\n\x13GetTableDataProfile\x12\x31.google.privacy.dlp.v2.GetTableDataProfileRequest\x1a\'.google.privacy.dlp.v2.TableDataProfile\"\x82\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02u\x12:/v2/{name=organizations/*/locations/*/tableDataProfiles/*}Z7\x12\x35/v2/{name=projects/*/locations/*/tableDataProfiles/*}\x12\xfb\x01\n\x14GetColumnDataProfile\x12\x32.google.privacy.dlp.v2.GetColumnDataProfileRequest\x1a(.google.privacy.dlp.v2.ColumnDataProfile\"\x84\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02w\x12;/v2/{name=organizations/*/locations/*/columnDataProfiles/*}Z8\x12\x36/v2/{name=projects/*/locations/*/columnDataProfiles/*}\x12\xeb\x01\n\x16\x44\x65leteTableDataProfile\x12\x34.google.privacy.dlp.v2.DeleteTableDataProfileRequest\x1a\x16.google.protobuf.Empty\"\x82\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02u*:/v2/{name=organizations/*/locations/*/tableDataProfiles/*}Z7*5/v2/{name=projects/*/locations/*/tableDataProfiles/*}\x12\xc3\x01\n\x13HybridInspectDlpJob\x12\x31.google.privacy.dlp.v2.HybridInspectDlpJobRequest\x1a,.google.privacy.dlp.v2.HybridInspectResponse\"K\xda\x41\x04name\x82\xd3\xe4\x93\x02>\"9/v2/{name=projects/*/locations/*/dlpJobs/*}:hybridInspect:\x01*\x12\x91\x01\n\x0c\x46inishDlpJob\x12*.google.privacy.dlp.v2.FinishDlpJobRequest\x1a\x16.google.protobuf.Empty\"=\x82\xd3\xe4\x93\x02\x37\"2/v2/{name=projects/*/locations/*/dlpJobs/*}:finish:\x01*\x12\xf2\x01\n\x10\x43reateConnection\x12..google.privacy.dlp.v2.CreateConnectionRequest\x1a!.google.privacy.dlp.v2.Connection\"\x8a\x01\xda\x41\x12parent, connection\x82\xd3\xe4\x93\x02o\"//v2/{parent=projects/*/locations/*}/connections:\x01*Z9\"4/v2/{parent=organizations/*/locations/*}/connections:\x01*\x12\xd7\x01\n\rGetConnection\x12+.google.privacy.dlp.v2.GetConnectionRequest\x1a!.google.privacy.dlp.v2.Connection\"v\xda\x41\x04name\x82\xd3\xe4\x93\x02i\x12//v2/{name=projects/*/locations/*/connections/*}Z6\x12\x34/v2/{name=organizations/*/locations/*/connections/*}\x12\xea\x01\n\x0fListConnections\x12-.google.privacy.dlp.v2.ListConnectionsRequest\x1a..google.privacy.dlp.v2.ListConnectionsResponse\"x\xda\x41\x06parent\x82\xd3\xe4\x93\x02i\x12//v2/{parent=projects/*/locations/*}/connectionsZ6\x12\x34/v2/{parent=organizations/*/locations/*}/connections\x12\xff\x01\n\x11SearchConnections\x12/.google.privacy.dlp.v2.SearchConnectionsRequest\x1a\x30.google.privacy.dlp.v2.SearchConnectionsResponse\"\x86\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02w\x12\x36/v2/{parent=projects/*/locations/*}/connections:searchZ=\x12;/v2/{parent=organizations/*/locations/*}/connections:search\x12\xd2\x01\n\x10\x44\x65leteConnection\x12..google.privacy.dlp.v2.DeleteConnectionRequest\x1a\x16.google.protobuf.Empty\"v\xda\x41\x04name\x82\xd3\xe4\x93\x02i*//v2/{name=projects/*/locations/*/connections/*}Z6*4/v2/{name=organizations/*/locations/*/connections/*}\x12\xe3\x01\n\x10UpdateConnection\x12..google.privacy.dlp.v2.UpdateConnectionRequest\x1a!.google.privacy.dlp.v2.Connection\"|\xda\x41\x04name\x82\xd3\xe4\x93\x02o2//v2/{name=projects/*/locations/*/connections/*}:\x01*Z924/v2/{name=organizations/*/locations/*/connections/*}:\x01*\x1a\x46\xca\x41\x12\x64lp.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xeb\x02\n\x19\x63om.google.privacy.dlp.v2B\x08\x44lpProtoP\x01Z)cloud.google.com/go/dlp/apiv2/dlppb;dlppb\xaa\x02\x13Google.Cloud.Dlp.V2\xca\x02\x13Google\\Cloud\\Dlp\\V2\xea\x02\x16Google::Cloud::Dlp::V2\xea\x41r\n\x1d\x64lp.googleapis.com/DlpContent\x12\x1dprojects/{project}/dlpContent\x12\x32projects/{project}/locations/{location}/dlpContent\xea\x41\\\n\'dlp.googleapis.com/OrganizationLocation\x12\x31organizations/{organization}/locations/{location}b\x06proto3" +descriptor_data = "\n\x1fgoogle/privacy/dlp/v2/dlp.proto\x12\x15google.privacy.dlp.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/privacy/dlp/v2/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\"G\n\x10\x45xcludeInfoTypes\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\"\xa8\x01\n\x10\x45xcludeByHotword\x12\x42\n\rhotword_regex\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.Regex\x12P\n\tproximity\x18\x02 \x01(\x0b\x32=.google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity\"\x9a\x01\n\x16\x45xcludeByImageFindings\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12K\n\x16image_containment_type\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.ImageContainmentType\"\xbb\x03\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\x45\n\x12\x65xclude_by_hotword\x18\x05 \x01(\x0b\x32\'.google.privacy.dlp.v2.ExcludeByHotwordH\x00\x12R\n\x19\x65xclude_by_image_findings\x18\x06 \x01(\x0b\x32-.google.privacy.dlp.v2.ExcludeByImageFindingsH\x00\x12:\n\rmatching_type\x18\x04 \x01(\x0e\x32#.google.privacy.dlp.v2.MatchingTypeB\x06\n\x04type\"\xc7\x01\n\x19\x41\x64justByMatchingInfoTypes\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:\n\rmatching_type\x18\x03 \x01(\x0e\x32#.google.privacy.dlp.v2.MatchingType\"\xd4\x01\n\x15\x41\x64justByImageFindings\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\x12K\n\x16image_containment_type\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.ImageContainmentType\"\xb4\x02\n\x0e\x41\x64justmentRule\x12Y\n\x1d\x61\x64just_by_matching_info_types\x18\x01 \x01(\x0b\x32\x30.google.privacy.dlp.v2.AdjustByMatchingInfoTypesH\x00\x12P\n\x18\x61\x64just_by_image_findings\x18\x03 \x01(\x0b\x32,.google.privacy.dlp.v2.AdjustByImageFindingsH\x00\x12g\n\x15likelihood_adjustment\x18\x02 \x01(\x0b\x32H.google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustmentB\x0c\n\nconditions\"\xf3\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\x12@\n\x0f\x61\x64justment_rule\x18\x03 \x01(\x0b\x32%.google.privacy.dlp.v2.AdjustmentRuleH\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\"\xac\x07\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]\n\x1cmin_likelihood_per_info_type\x18\x0b \x03(\x0b\x32\x37.google.privacy.dlp.v2.InspectConfig.InfoTypeLikelihood\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\x83\x01\n\x12InfoTypeLikelihood\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x39\n\x0emin_likelihood\x18\x02 \x01(\x0e\x32!.google.privacy.dlp.v2.Likelihood\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\"\xf9\x02\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\"\x97\x02\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\x11\n\rWORD_DOCUMENT\x10\x07\x12\x07\n\x03PDF\x10\x08\x12\x17\n\x13POWERPOINT_DOCUMENT\x10\t\x12\x12\n\x0e\x45XCEL_DOCUMENT\x10\n\x12\x08\n\x04\x41VRO\x10\x0b\x12\x07\n\x03\x43SV\x10\x0c\x12\x07\n\x03TSV\x10\r\x12\t\n\x05\x41UDIO\x10\x0f\x12\t\n\x05VIDEO\x10\x10\x12\x0e\n\nEXECUTABLE\x10\x11\x12\x0c\n\x08\x41I_MODEL\x10\x12\"\xdd\x02\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\x12;\n\x0c\x63onversation\x18\x07 \x01(\x0b\x32#.google.privacy.dlp.v2.ConversationH\x00\x12\x45\n\x12\x62\x61tch_content_item\x18\x08 \x01(\x0b\x32\'.google.privacy.dlp.v2.BatchContentItemH\x00\x12@\n\x10\x63ontent_metadata\x18\x06 \x01(\x0b\x32&.google.privacy.dlp.v2.ContentMetadataB\x0b\n\tdata_item\"\x92\x01\n\x0f\x43ontentMetadata\x12\x43\n\nproperties\x18\x02 \x03(\x0b\x32/.google.privacy.dlp.v2.KeyValueMetadataProperty\x12:\n\x0b\x66ile_labels\x18\x03 \x03(\x0b\x32 .google.privacy.dlp.v2.FileLabelB\x03\xe0\x41\x01\"L\n\x0c\x43onversation\x12<\n\x08messages\x18\x01 \x03(\x0b\x32*.google.privacy.dlp.v2.ConversationMessage\"\xd3\x01\n\x13\x43onversationMessage\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\t\x12L\n\x0cmessage_type\x18\x02 \x01(\x0e\x32\x36.google.privacy.dlp.v2.ConversationMessage.MessageType\x12\x16\n\x0eparticipant_id\x18\x03 \x01(\t\"E\n\x0bMessageType\x12\x1c\n\x18MESSAGE_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x43ONTENT\x10\x01\x12\x0b\n\x07\x43ONTEXT\x10\x02\"g\n\x10\x42\x61tchContentItem\x12J\n\x12string_value_batch\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.StringValueBatchB\x03\xe0\x41\x01H\x00\x42\x07\n\x05\x62\x61tch\"\'\n\x10StringValueBatch\x12\x13\n\x06values\x18\x01 \x03(\tB\x03\xe0\x41\x01\"\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\"6\n\x18KeyValueMetadataProperty\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\xd5\x03\n\tFileLabel\x12V\n\x11sensitivity_label\x18\x01 \x01(\x0b\x32\x39.google.privacy.dlp.v2.FileLabel.SensitivityLabelMetadataH\x00\x12W\n\x12google_drive_label\x18\x02 \x01(\x0b\x32\x39.google.privacy.dlp.v2.FileLabel.GoogleDriveLabelMetadataH\x00\x1a-\n\x18SensitivityLabelMetadata\x12\x11\n\x04guid\x18\x01 \x01(\tB\x03\xe0\x41\x02\x1a\xdf\x01\n\x18GoogleDriveLabelMetadata\x12\x10\n\x08label_id\x18\x01 \x01(\t\x12\x62\n\x0clabel_fields\x18\x02 \x03(\x0b\x32L.google.privacy.dlp.v2.FileLabel.GoogleDriveLabelMetadata.LabelFieldMetadata\x1aM\n\x12LabelFieldMetadata\x12\n\n\x02id\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ValueB\x06\n\x04type\"]\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\"\xdf\x05\n\x07\x46inding\x12\x0c\n\x04name\x18\x0e \x01(\t\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\x12\x35\n\rresource_name\x18\x08 \x01(\tB\x1e\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\x12\x38\n\x0ctrigger_name\x18\t \x01(\tB\"\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\x12:\n\x06labels\x18\n \x03(\x0b\x32*.google.privacy.dlp.v2.Finding.LabelsEntry\x12\x33\n\x0fjob_create_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x08job_name\x18\r \x01(\tB\x1e\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\x12\x12\n\nfinding_id\x18\x0f \x01(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:[\xea\x41X\n\x1a\x64lp.googleapis.com/Finding\x12:projects/{project}/locations/{location}/findings/{finding}\"\xeb\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\x12\x33\n\tcontainer\x18\x08 \x01(\x0b\x32 .google.privacy.dlp.v2.Container\"\xb4\x04\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\x44\n\x11metadata_location\x18\x08 \x01(\x0b\x32\'.google.privacy.dlp.v2.MetadataLocationH\x00\x12L\n\x15\x63onversation_location\x18\n \x01(\x0b\x32+.google.privacy.dlp.v2.ConversationLocationH\x00\x12M\n\x16\x62\x61tch_content_location\x18\x0b \x01(\x0b\x32+.google.privacy.dlp.v2.BatchContentLocationH\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\"\x9b\x01\n\x14\x43onversationLocation\x12\x17\n\rmessage_index\x18\x01 \x01(\x05H\x00\x12O\n\x0c\x61ll_messages\x18\x02 \x01(\x0b\x32\x37.google.privacy.dlp.v2.ConversationLocation.AllMessagesH\x00\x1a\r\n\x0b\x41llMessagesB\n\n\x08location\"*\n\x14\x42\x61tchContentLocation\x12\x12\n\nitem_index\x18\x01 \x01(\x05\"\xe6\x01\n\x10MetadataLocation\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32#.google.privacy.dlp.v2.MetadataType\x12\x44\n\rstorage_label\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.StorageMetadataLabelH\x00\x12P\n\x18key_value_metadata_label\x18\x04 \x01(\x0b\x32,.google.privacy.dlp.v2.KeyValueMetadataLabelH\x00\x42\x07\n\x05label\"#\n\x14StorageMetadataLabel\x12\x0b\n\x03key\x18\x01 \x01(\t\"$\n\x15KeyValueMetadataLabel\x12\x0b\n\x03key\x18\x01 \x01(\t\"\'\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\"\xac\x01\n\tContainer\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12\x11\n\tfull_path\x18\x03 \x01(\t\x12\x11\n\troot_path\x18\x04 \x01(\t\x12\x15\n\rrelative_path\x18\x05 \x01(\t\x12/\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07version\x18\x07 \x01(\t\"#\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\"\xb3\x04\n\x12RedactImageRequest\x12\x32\n\x06parent\x18\x01 \x01(\tB\"\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\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\x12\x18\n\x10inspect_template\x18\t \x01(\t\x12\x1b\n\x13\x64\x65identify_template\x18\n \x01(\t\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\"\xd8\x02\n\x18\x44\x65identifyContentRequest\x12\x32\n\x06parent\x18\x01 \x01(\tB\"\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\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\"\xdb\x02\n\x18ReidentifyContentRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\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\"\xef\x01\n\x15InspectContentRequest\x12\x32\n\x06parent\x18\x01 \x01(\tB\"\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\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\"\xf8\x02\n\x13OutputStorageConfig\x12\x35\n\x05table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableH\x00\x12?\n\x0cstorage_path\x18\x05 \x01(\x0b\x32\'.google.privacy.dlp.v2.CloudStoragePathH\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\"\xca\x04\n\x18InspectDataSourceDetails\x12[\n\x11requested_options\x18\x02 \x01(\x0b\x32@.google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions\x12K\n\x06result\x18\x03 \x01(\x0b\x32\x36.google.privacy.dlp.v2.InspectDataSourceDetails.ResultB\x03\xe0\x41\x03\x1a\x9f\x01\n\x10RequestedOptions\x12N\n\x19snapshot_inspect_template\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplateB\x03\xe0\x41\x03\x12;\n\njob_config\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.InspectJobConfig\x1a\xe1\x01\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\x12\x1a\n\x12num_rows_processed\x18\x05 \x01(\x03\x12\x44\n\x0chybrid_stats\x18\x07 \x01(\x0b\x32..google.privacy.dlp.v2.HybridInspectStatistics\"\xff\x01\n\x1c\x44\x61taProfileBigQueryRowSchema\x12@\n\rtable_profile\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.TableDataProfileH\x00\x12\x42\n\x0e\x63olumn_profile\x18\x02 \x01(\x0b\x32(.google.privacy.dlp.v2.ColumnDataProfileH\x00\x12I\n\x12\x66ile_store_profile\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.FileStoreDataProfileH\x00\x42\x0e\n\x0c\x64\x61ta_profile\"`\n\x17HybridInspectStatistics\x12\x17\n\x0fprocessed_count\x18\x01 \x01(\x03\x12\x15\n\raborted_count\x18\x02 \x01(\x03\x12\x15\n\rpending_count\x18\x03 \x01(\x03\"l\n\rActionDetails\x12P\n\x12\x64\x65identify_details\x18\x01 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DeidentifyDataSourceDetailsH\x00\x42\t\n\x07\x64\x65tails\"x\n\x19\x44\x65identifyDataSourceStats\x12\x19\n\x11transformed_bytes\x18\x01 \x01(\x03\x12\x1c\n\x14transformation_count\x18\x02 \x01(\x03\x12\"\n\x1atransformation_error_count\x18\x03 \x01(\x03\"\xf2\x03\n\x1b\x44\x65identifyDataSourceDetails\x12h\n\x11requested_options\x18\x01 \x01(\x0b\x32M.google.privacy.dlp.v2.DeidentifyDataSourceDetails.RequestedDeidentifyOptions\x12J\n\x10\x64\x65identify_stats\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DeidentifyDataSourceStats\x1a\x9c\x02\n\x1aRequestedDeidentifyOptions\x12O\n\x1csnapshot_deidentify_template\x18\x01 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12Z\n\'snapshot_structured_deidentify_template\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12Q\n\x1esnapshot_image_redact_template\x18\x03 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\"\xdf\x01\n\x0fLocationSupport\x12Z\n\x15regionalization_scope\x18\x01 \x01(\x0e\x32;.google.privacy.dlp.v2.LocationSupport.RegionalizationScope\x12\x11\n\tlocations\x18\x02 \x03(\t\"]\n\x14RegionalizationScope\x12%\n!REGIONALIZATION_SCOPE_UNSPECIFIED\x10\x00\x12\x0c\n\x08REGIONAL\x10\x01\x12\x10\n\x0c\x41NY_LOCATION\x10\x02\"\x9b\x05\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\x12@\n\x10location_support\x18\x06 \x01(\x0b\x32&.google.privacy.dlp.v2.LocationSupport\x12\x0f\n\x07\x65xample\x18\x08 \x01(\t\x12;\n\x08versions\x18\t \x03(\x0b\x32).google.privacy.dlp.v2.VersionDescription\x12;\n\ncategories\x18\n \x03(\x0b\x32\'.google.privacy.dlp.v2.InfoTypeCategory\x12\x42\n\x11sensitivity_score\x18\x0b \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12\x1b\n\x13specific_info_types\x18\x0c \x03(\t\x12V\n\rlaunch_status\x18\r \x01(\x0e\x32?.google.privacy.dlp.v2.InfoTypeDescription.InfoTypeLaunchStatus\"\x82\x01\n\x14InfoTypeLaunchStatus\x12\'\n#INFO_TYPE_LAUNCH_STATUS_UNSPECIFIED\x10\x00\x12\x18\n\x14GENERAL_AVAILABILITY\x10\x01\x12\x12\n\x0ePUBLIC_PREVIEW\x10\x02\x12\x13\n\x0fPRIVATE_PREVIEW\x10\x03\"\x90\n\n\x10InfoTypeCategory\x12U\n\x11location_category\x18\x01 \x01(\x0e\x32\x38.google.privacy.dlp.v2.InfoTypeCategory.LocationCategoryH\x00\x12U\n\x11industry_category\x18\x02 \x01(\x0e\x32\x38.google.privacy.dlp.v2.InfoTypeCategory.IndustryCategoryH\x00\x12M\n\rtype_category\x18\x03 \x01(\x0e\x32\x34.google.privacy.dlp.v2.InfoTypeCategory.TypeCategoryH\x00\"\xef\x05\n\x10LocationCategory\x12\x18\n\x14LOCATION_UNSPECIFIED\x10\x00\x12\n\n\x06GLOBAL\x10\x01\x12\r\n\tARGENTINA\x10\x02\x12\x0b\n\x07\x41RMENIA\x10\x33\x12\r\n\tAUSTRALIA\x10\x03\x12\x0b\n\x07\x41USTRIA\x10\x35\x12\x0e\n\nAZERBAIJAN\x10\x30\x12\x0b\n\x07\x42\x45LARUS\x10\x32\x12\x0b\n\x07\x42\x45LGIUM\x10\x04\x12\n\n\x06\x42RAZIL\x10\x05\x12\n\n\x06\x43\x41NADA\x10\x06\x12\t\n\x05\x43HILE\x10\x07\x12\t\n\x05\x43HINA\x10\x08\x12\x0c\n\x08\x43OLOMBIA\x10\t\x12\x0b\n\x07\x43ROATIA\x10*\x12\x0b\n\x07\x43ZECHIA\x10\x34\x12\x0b\n\x07\x44\x45NMARK\x10\n\x12\n\n\x06\x46RANCE\x10\x0b\x12\x0b\n\x07\x46INLAND\x10\x0c\x12\x0b\n\x07GERMANY\x10\r\x12\r\n\tHONG_KONG\x10\x0e\x12\t\n\x05INDIA\x10\x0f\x12\r\n\tINDONESIA\x10\x10\x12\x0b\n\x07IRELAND\x10\x11\x12\n\n\x06ISRAEL\x10\x12\x12\t\n\x05ITALY\x10\x13\x12\t\n\x05JAPAN\x10\x14\x12\x0e\n\nKAZAKHSTAN\x10/\x12\t\n\x05KOREA\x10\x15\x12\n\n\x06MEXICO\x10\x16\x12\x13\n\x0fTHE_NETHERLANDS\x10\x17\x12\x0f\n\x0bNEW_ZEALAND\x10)\x12\n\n\x06NORWAY\x10\x18\x12\x0c\n\x08PARAGUAY\x10\x19\x12\x08\n\x04PERU\x10\x1a\x12\n\n\x06POLAND\x10\x1b\x12\x0c\n\x08PORTUGAL\x10\x1c\x12\n\n\x06RUSSIA\x10,\x12\r\n\tSINGAPORE\x10\x1d\x12\x10\n\x0cSOUTH_AFRICA\x10\x1e\x12\t\n\x05SPAIN\x10\x1f\x12\n\n\x06SWEDEN\x10 \x12\x0f\n\x0bSWITZERLAND\x10+\x12\n\n\x06TAIWAN\x10!\x12\x0c\n\x08THAILAND\x10\"\x12\n\n\x06TURKEY\x10#\x12\x0b\n\x07UKRAINE\x10-\x12\x12\n\x0eUNITED_KINGDOM\x10$\x12\x11\n\rUNITED_STATES\x10%\x12\x0b\n\x07URUGUAY\x10&\x12\x0e\n\nUZBEKISTAN\x10.\x12\r\n\tVENEZUELA\x10\'\x12\x0c\n\x08INTERNAL\x10(\"]\n\x10IndustryCategory\x12\x18\n\x14INDUSTRY_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x46INANCE\x10\x01\x12\n\n\x06HEALTH\x10\x02\x12\x16\n\x12TELECOMMUNICATIONS\x10\x03\"\xa1\x01\n\x0cTypeCategory\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03PII\x10\x01\x12\x08\n\x04SPII\x10\x02\x12\x0f\n\x0b\x44\x45MOGRAPHIC\x10\x03\x12\x0e\n\nCREDENTIAL\x10\x04\x12\x11\n\rGOVERNMENT_ID\x10\x05\x12\x0c\n\x08\x44OCUMENT\x10\x06\x12\x1a\n\x16\x43ONTEXTUAL_INFORMATION\x10\x07\x12\n\n\x06\x43USTOM\x10\x08\x42\n\n\x08\x63\x61tegory\":\n\x12VersionDescription\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\"b\n\x14ListInfoTypesRequest\x12\x0e\n\x06parent\x18\x04 \x01(\t\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\"\xbc\x01\n\x07QuasiId\x12\x32\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\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\"\xbe\x02\n\x10StatisticalTable\x12\x38\n\x05table\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableB\x03\xe0\x41\x02\x12T\n\tquasi_ids\x18\x01 \x03(\x0b\x32<.google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierFieldB\x03\xe0\x41\x02\x12?\n\x12relative_frequency\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\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\"\x93\x0f\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\x81\x06\n\x14KMapEstimationConfig\x12]\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x45.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedFieldB\x03\xe0\x41\x02\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\xc0\x01\n\x0bTaggedField\x12\x32\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\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\xcd\x02\n\x0e\x41uxiliaryTable\x12\x38\n\x05table\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableB\x03\xe0\x41\x02\x12m\n\tquasi_ids\x18\x01 \x03(\x0b\x32U.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdFieldB\x03\xe0\x41\x02\x12?\n\x12relative_frequency\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\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\xaf\x01\n\x1d\x44\x65ltaPresenceEstimationConfig\x12\x36\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.QuasiIdB\x03\xe0\x41\x02\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\"\xe0\x1f\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\x12o\n\x16numerical_stats_result\x18\x03 \x01(\x0b\x32H.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResultB\x03\xe0\x41\x03H\x00\x12s\n\x18\x63\x61tegorical_stats_result\x18\x04 \x01(\x0b\x32J.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResultB\x03\xe0\x41\x03H\x00\x12g\n\x12k_anonymity_result\x18\x05 \x01(\x0b\x32\x44.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResultB\x03\xe0\x41\x03H\x00\x12g\n\x12l_diversity_result\x18\x06 \x01(\x0b\x32\x44.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResultB\x03\xe0\x41\x03H\x00\x12p\n\x17k_map_estimation_result\x18\x07 \x01(\x0b\x32H.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResultB\x03\xe0\x41\x03H\x00\x12\x82\x01\n delta_presence_estimation_result\x18\t \x01(\x0b\x32Q.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResultB\x03\xe0\x41\x03H\x00\x12k\n\x11requested_options\x18\n \x01(\x0b\x32P.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.RequestedRiskAnalysisOptions\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\x1a`\n\x1cRequestedRiskAnalysisOptions\x12@\n\njob_config\x18\x01 \x01(\x0b\x32,.google.privacy.dlp.v2.RiskAnalysisJobConfigB\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\"\xf2\x02\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\x12L\n\x15image_transformations\x18\x04 \x01(\x0b\x32+.google.privacy.dlp.v2.ImageTransformationsH\x00\x12Y\n\x1dtransformation_error_handling\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.TransformationErrorHandlingB\x10\n\x0etransformation\"\xe5\x04\n\x14ImageTransformations\x12S\n\ntransforms\x18\x02 \x03(\x0b\x32?.google.privacy.dlp.v2.ImageTransformations.ImageTransformation\x1a\xf7\x03\n\x13ImageTransformation\x12p\n\x13selected_info_types\x18\x04 \x01(\x0b\x32Q.google.privacy.dlp.v2.ImageTransformations.ImageTransformation.SelectedInfoTypesH\x00\x12\x66\n\x0e\x61ll_info_types\x18\x05 \x01(\x0b\x32L.google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllInfoTypesH\x00\x12[\n\x08\x61ll_text\x18\x06 \x01(\x0b\x32G.google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllTextH\x00\x12\x35\n\x0fredaction_color\x18\x03 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Color\x1aM\n\x11SelectedInfoTypes\x12\x38\n\ninfo_types\x18\x05 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeB\x03\xe0\x41\x02\x1a\x0e\n\x0c\x41llInfoTypes\x1a\t\n\x07\x41llTextB\x08\n\x06target\"\x85\x02\n\x1bTransformationErrorHandling\x12T\n\x0bthrow_error\x18\x01 \x01(\x0b\x32=.google.privacy.dlp.v2.TransformationErrorHandling.ThrowErrorH\x00\x12\x64\n\x13leave_untransformed\x18\x02 \x01(\x0b\x32\x45.google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformedH\x00\x1a\x0c\n\nThrowError\x1a\x14\n\x12LeaveUntransformedB\x06\n\x04mode\"\xca\x07\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\x12S\n\x19replace_dictionary_config\x18\r \x01(\x0b\x32..google.privacy.dlp.v2.ReplaceDictionaryConfigH\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\"q\n\x17ReplaceDictionaryConfig\x12N\n\tword_list\x18\x01 \x01(\x0b\x32\x39.google.privacy.dlp.v2.CustomInfoType.Dictionary.WordListH\x00\x42\x06\n\x04type\"\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\"\xa4\x01\n\x18\x46ixedSizeBucketingConfig\x12\x36\n\x0blower_bound\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ValueB\x03\xe0\x41\x02\x12\x36\n\x0bupper_bound\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ValueB\x03\xe0\x41\x02\x12\x18\n\x0b\x62ucket_size\x18\x03 \x01(\x01\x42\x03\xe0\x41\x02\"\xf0\x01\n\x0f\x42ucketingConfig\x12>\n\x07\x62uckets\x18\x01 \x03(\x0b\x32-.google.privacy.dlp.v2.BucketingConfig.Bucket\x1a\x9c\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<\n\x11replacement_value\x18\x03 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ValueB\x03\xe0\x41\x02\"\xf9\x03\n\x19\x43ryptoReplaceFfxFpeConfig\x12\x39\n\ncrypto_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKeyB\x03\xe0\x41\x02\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\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\"&\n\x12UnwrappedCryptoKey\x12\x10\n\x03key\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x02\"M\n\x13KmsWrappedCryptoKey\x12\x18\n\x0bwrapped_key\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x1c\n\x0f\x63rypto_key_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xc2\x01\n\x0f\x44\x61teShiftConfig\x12\x1d\n\x10upper_bound_days\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x1d\n\x10lower_bound_days\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02\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\"\xa5\x02\n\x17InfoTypeTransformations\x12\x63\n\x0ftransformations\x18\x01 \x03(\x0b\x32\x45.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformationB\x03\xe0\x41\x02\x1a\xa4\x01\n\x16InfoTypeTransformation\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12U\n\x18primitive_transformation\x18\x02 \x01(\x0b\x32..google.privacy.dlp.v2.PrimitiveTransformationB\x03\xe0\x41\x02\"\xc0\x02\n\x13\x46ieldTransformation\x12\x33\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\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\"\xdc\x04\n\x0fRecordCondition\x12G\n\x0b\x65xpressions\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.RecordCondition.Expressions\x1a\xae\x01\n\tCondition\x12\x32\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\x12@\n\x08operator\x18\x03 \x01(\x0e\x32).google.privacy.dlp.v2.RelationalOperatorB\x03\xe0\x41\x02\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\"\xb0\x01\n\x19TransformationDescription\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32).google.privacy.dlp.v2.TransformationType\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x11\n\tcondition\x18\x03 \x01(\t\x12\x32\n\tinfo_type\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\"\xc6\x02\n\x15TransformationDetails\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12H\n\x0etransformation\x18\x03 \x03(\x0b\x32\x30.google.privacy.dlp.v2.TransformationDescription\x12I\n\x0estatus_details\x18\x04 \x01(\x0b\x32\x31.google.privacy.dlp.v2.TransformationResultStatus\x12\x19\n\x11transformed_bytes\x18\x05 \x01(\x03\x12N\n\x17transformation_location\x18\x06 \x01(\x0b\x32-.google.privacy.dlp.v2.TransformationLocation\"\xd9\x01\n\x16TransformationLocation\x12\x14\n\nfinding_id\x18\x01 \x01(\tH\x00\x12L\n\x15record_transformation\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.RecordTransformationH\x00\x12J\n\x0e\x63ontainer_type\x18\x03 \x01(\x0e\x32\x32.google.privacy.dlp.v2.TransformationContainerTypeB\x0f\n\rlocation_type\"\x9c\x01\n\x14RecordTransformation\x12\x30\n\x08\x66ield_id\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x37\n\x13\x63ontainer_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11\x63ontainer_version\x18\x03 \x01(\t\"\x94\x01\n\x1aTransformationResultStatus\x12Q\n\x12result_status_type\x18\x01 \x01(\x0e\x32\x35.google.privacy.dlp.v2.TransformationResultStatusType\x12#\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\"c\n\"TransformationDetailsStorageConfig\x12\x35\n\x05table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableH\x00\x42\x06\n\x04type\"U\n\x08Schedule\x12?\n\x1arecurrence_period_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x42\x08\n\x06option\"\x08\n\x06Manual\"\xf6\x04\n\x0fInspectTemplate\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12<\n\x0einspect_config\x18\x06 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x32\n%allow_limited_availability_info_types\x18\x08 \x01(\x08\x42\x03\xe0\x41\x01:\xc6\x02\xea\x41\xc2\x02\n\"dlp.googleapis.com/InspectTemplate\x12@organizations/{organization}/inspectTemplates/{inspect_template}\x12\x36projects/{project}/inspectTemplates/{inspect_template}\x12Uorganizations/{organization}/locations/{location}/inspectTemplates/{inspect_template}\x12Kprojects/{project}/locations/{location}/inspectTemplates/{inspect_template}\"\xe6\x04\n\x12\x44\x65identifyTemplate\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x11\x64\x65identify_config\x18\x06 \x01(\x0b\x32\'.google.privacy.dlp.v2.DeidentifyConfig:\xe1\x02\xea\x41\xdd\x02\n%dlp.googleapis.com/DeidentifyTemplate\x12\x46organizations/{organization}/deidentifyTemplates/{deidentify_template}\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\x31\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\rlast_run_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12=\n\x06status\x18\n \x01(\x0e\x32(.google.privacy.dlp.v2.JobTrigger.StatusB\x03\xe0\x41\x02\x1az\n\x07Trigger\x12\x33\n\x08schedule\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.ScheduleH\x00\x12/\n\x06manual\x18\x02 \x01(\x0b\x32\x1d.google.privacy.dlp.v2.ManualH\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:\x94\x01\xea\x41\x90\x01\n\x1d\x64lp.googleapis.com/JobTrigger\x12,projects/{project}/jobTriggers/{job_trigger}\x12\x41projects/{project}/locations/{location}/jobTriggers/{job_trigger}B\x05\n\x03job\"\x82\n\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\x12u\n&publish_findings_to_cloud_data_catalog\x18\x05 \x01(\x0b\x32?.google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalogB\x02\x18\x01H\x00\x12n\n$publish_findings_to_dataplex_catalog\x18\n \x01(\x0b\x32>.google.privacy.dlp.v2.Action.PublishFindingsToDataplexCatalogH\x00\x12>\n\ndeidentify\x18\x07 \x01(\x0b\x32(.google.privacy.dlp.v2.Action.DeidentifyH\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\"\n PublishFindingsToDataplexCatalog\x1a\xb3\x02\n\nDeidentify\x12J\n\x15transformation_config\x18\x07 \x01(\x0b\x32+.google.privacy.dlp.v2.TransformationConfig\x12h\n%transformation_details_storage_config\x18\x03 \x01(\x0b\x32\x39.google.privacy.dlp.v2.TransformationDetailsStorageConfig\x12#\n\x14\x63loud_storage_output\x18\t \x01(\tB\x03\xe0\x41\x02H\x00\x12@\n\x17\x66ile_types_to_transform\x18\x08 \x03(\x0e\x32\x1f.google.privacy.dlp.v2.FileTypeB\x08\n\x06output\x1a\x17\n\x15JobNotificationEmails\x1a\x16\n\x14PublishToStackdriverB\x08\n\x06\x61\x63tion\"z\n\x14TransformationConfig\x12\x1b\n\x13\x64\x65identify_template\x18\x01 \x01(\t\x12&\n\x1estructured_deidentify_template\x18\x02 \x01(\t\x12\x1d\n\x15image_redact_template\x18\x04 \x01(\t\"\xcb\x01\n\x1c\x43reateInspectTemplateRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"dlp.googleapis.com/InspectTemplate\x12\x45\n\x10inspect_template\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplateB\x03\xe0\x41\x02\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\"\xb6\x01\n\x17\x43reateJobTriggerRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/JobTrigger\x12;\n\x0bjob_trigger\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.JobTriggerB\x03\xe0\x41\x02\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\"\xb4\x01\n\x1c\x43reateDiscoveryConfigRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"dlp.googleapis.com/DiscoveryConfig\x12\x45\n\x10\x64iscovery_config\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfigB\x03\xe0\x41\x02\x12\x11\n\tconfig_id\x18\x03 \x01(\t\"\xd0\x01\n\x1cUpdateDiscoveryConfigRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/DiscoveryConfig\x12\x45\n\x10\x64iscovery_config\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfigB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"U\n\x19GetDiscoveryConfigRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/DiscoveryConfig\"\x92\x01\n\x1bListDiscoveryConfigsRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"dlp.googleapis.com/DiscoveryConfig\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\x1cListDiscoveryConfigsResponse\x12\x41\n\x11\x64iscovery_configs\x18\x01 \x03(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfig\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"X\n\x1c\x44\x65leteDiscoveryConfigRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/DiscoveryConfig\"\xf6\x01\n\x13\x43reateDlpJobRequest\x12\x31\n\x06parent\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\x12\x19\x64lp.googleapis.com/DlpJob\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\"\xde\x01\n\x16ListJobTriggersRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/JobTrigger\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/\n\x04type\x18\x06 \x01(\x0e\x32!.google.privacy.dlp.v2.DlpJobType\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\"\xf2\r\n\x11\x44\x61taProfileAction\x12\x46\n\x0b\x65xport_data\x18\x01 \x01(\x0b\x32/.google.privacy.dlp.v2.DataProfileAction.ExportH\x00\x12[\n\x14pub_sub_notification\x18\x02 \x01(\x0b\x32;.google.privacy.dlp.v2.DataProfileAction.PubSubNotificationH\x00\x12[\n\x14publish_to_chronicle\x18\x03 \x01(\x0b\x32;.google.privacy.dlp.v2.DataProfileAction.PublishToChronicleH\x00\x12\x61\n\x0epublish_to_scc\x18\x04 \x01(\x0b\x32G.google.privacy.dlp.v2.DataProfileAction.PublishToSecurityCommandCenterH\x00\x12N\n\rtag_resources\x18\x08 \x01(\x0b\x32\x35.google.privacy.dlp.v2.DataProfileAction.TagResourcesH\x00\x12h\n\x1bpublish_to_dataplex_catalog\x18\t \x01(\x0b\x32\x41.google.privacy.dlp.v2.DataProfileAction.PublishToDataplexCatalogH\x00\x1a\x8a\x01\n\x06\x45xport\x12;\n\rprofile_table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12\x43\n\x15sample_findings_table\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x1a\x82\x03\n\x12PubSubNotification\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x41\n\x05\x65vent\x18\x02 \x01(\x0e\x32\x32.google.privacy.dlp.v2.DataProfileAction.EventType\x12K\n\x10pubsub_condition\x18\x03 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DataProfilePubSubCondition\x12\x62\n\x11\x64\x65tail_of_message\x18\x04 \x01(\x0e\x32G.google.privacy.dlp.v2.DataProfileAction.PubSubNotification.DetailLevel\"i\n\x0b\x44\x65tailLevel\x12\x1c\n\x18\x44\x45TAIL_LEVEL_UNSPECIFIED\x10\x00\x12\x11\n\rTABLE_PROFILE\x10\x01\x12\x11\n\rRESOURCE_NAME\x10\x02\x12\x16\n\x12\x46ILE_STORE_PROFILE\x10\x03\x1a\x14\n\x12PublishToChronicle\x1a \n\x1ePublishToSecurityCommandCenter\x1a:\n\x18PublishToDataplexCatalog\x12\x1e\n\x16lower_data_risk_to_low\x18\x01 \x01(\x08\x1a\xb6\x03\n\x0cTagResources\x12Z\n\x0etag_conditions\x18\x01 \x03(\x0b\x32\x42.google.privacy.dlp.v2.DataProfileAction.TagResources.TagCondition\x12L\n\x1aprofile_generations_to_tag\x18\x02 \x03(\x0e\x32(.google.privacy.dlp.v2.ProfileGeneration\x12\x1e\n\x16lower_data_risk_to_low\x18\x03 \x01(\x08\x1a\xa9\x01\n\x0cTagCondition\x12K\n\x03tag\x18\x01 \x01(\x0b\x32>.google.privacy.dlp.v2.DataProfileAction.TagResources.TagValue\x12\x44\n\x11sensitivity_score\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScoreH\x00\x42\x06\n\x04type\x1a\x30\n\x08TagValue\x12\x1a\n\x10namespaced_value\x18\x01 \x01(\tH\x00\x42\x08\n\x06\x66ormat\"u\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bNEW_PROFILE\x10\x01\x12\x13\n\x0f\x43HANGED_PROFILE\x10\x02\x12\x13\n\x0fSCORE_INCREASED\x10\x03\x12\x11\n\rERROR_CHANGED\x10\x04\x42\x08\n\x06\x61\x63tion\"\xdd\x03\n\x12\x44\x61taProfileFinding\x12\r\n\x05quote\x18\x01 \x01(\t\x12\x31\n\x08infotype\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x34\n\nquote_info\x18\x03 \x01(\x0b\x32 .google.privacy.dlp.v2.QuoteInfo\x12\"\n\x1a\x64\x61ta_profile_resource_name\x18\x04 \x01(\t\x12\x12\n\nfinding_id\x18\x05 \x01(\t\x12-\n\ttimestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x08location\x18\x07 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DataProfileFindingLocation\x12\x46\n\x13resource_visibility\x18\x08 \x01(\x0e\x32).google.privacy.dlp.v2.ResourceVisibility\x12\x1a\n\x12\x66ull_resource_name\x18\t \x01(\t\x12?\n\x10\x64\x61ta_source_type\x18\n \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceType\"\xb7\x01\n\x1a\x44\x61taProfileFindingLocation\x12\x16\n\x0e\x63ontainer_name\x18\x01 \x01(\t\x12g\n$data_profile_finding_record_location\x18\x02 \x01(\x0b\x32\x37.google.privacy.dlp.v2.DataProfileFindingRecordLocationH\x00\x42\x18\n\x16location_extra_details\"Q\n DataProfileFindingRecordLocation\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\"\xae\x02\n\x14\x44\x61taProfileJobConfig\x12<\n\x08location\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.DataProfileLocation\x12\x12\n\nproject_id\x18\x05 \x01(\t\x12\x61\n\x1dother_cloud_starting_location\x18\x08 \x01(\x0b\x32:.google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation\x12\x19\n\x11inspect_templates\x18\x07 \x03(\t\x12\x46\n\x14\x64\x61ta_profile_actions\x18\x06 \x03(\x0b\x32(.google.privacy.dlp.v2.DataProfileAction\"[\n\rBigQueryRegex\x12\x18\n\x10project_id_regex\x18\x01 \x01(\t\x12\x18\n\x10\x64\x61taset_id_regex\x18\x02 \x01(\t\x12\x16\n\x0etable_id_regex\x18\x03 \x01(\t\"I\n\x0f\x42igQueryRegexes\x12\x36\n\x08patterns\x18\x01 \x03(\x0b\x32$.google.privacy.dlp.v2.BigQueryRegex\"M\n\x12\x42igQueryTableTypes\x12\x37\n\x05types\x18\x01 \x03(\x0e\x32(.google.privacy.dlp.v2.BigQueryTableType\"\n\n\x08\x44isabled\"Q\n\x13\x44\x61taProfileLocation\x12\x19\n\x0forganization_id\x18\x01 \x01(\x03H\x00\x12\x13\n\tfolder_id\x18\x02 \x01(\x03H\x00\x42\n\n\x08location\"\xf0\x07\n\x0f\x44iscoveryConfig\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x0c\x64isplay_name\x18\x0b \x01(\t\x12\x44\n\norg_config\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DiscoveryConfig.OrgConfig\x12\x61\n\x1dother_cloud_starting_location\x18\x0c \x01(\x0b\x32:.google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation\x12\x19\n\x11inspect_templates\x18\x03 \x03(\t\x12\x39\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32(.google.privacy.dlp.v2.DataProfileAction\x12\x37\n\x07targets\x18\x05 \x03(\x0b\x32&.google.privacy.dlp.v2.DiscoveryTarget\x12\x31\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\rlast_run_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x06status\x18\n \x01(\x0e\x32-.google.privacy.dlp.v2.DiscoveryConfig.StatusB\x03\xe0\x41\x02\x12K\n\x13processing_location\x18\r \x01(\x0b\x32).google.privacy.dlp.v2.ProcessingLocationB\x03\xe0\x41\x01\x1a\x63\n\tOrgConfig\x12\x42\n\x08location\x18\x01 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DiscoveryStartingLocation\x12\x12\n\nproject_id\x18\x02 \x01(\t\"9\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\n\n\x06PAUSED\x10\x02:t\xea\x41q\n\"dlp.googleapis.com/DiscoveryConfig\x12Kprojects/{project}/locations/{location}/discoveryConfigs/{discovery_config}\"\xf6\x03\n\x0f\x44iscoveryTarget\x12J\n\x10\x62ig_query_target\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.BigQueryDiscoveryTargetH\x00\x12J\n\x10\x63loud_sql_target\x18\x02 \x01(\x0b\x32..google.privacy.dlp.v2.CloudSqlDiscoveryTargetH\x00\x12G\n\x0esecrets_target\x18\x03 \x01(\x0b\x32-.google.privacy.dlp.v2.SecretsDiscoveryTargetH\x00\x12R\n\x14\x63loud_storage_target\x18\x04 \x01(\x0b\x32\x32.google.privacy.dlp.v2.CloudStorageDiscoveryTargetH\x00\x12N\n\x12other_cloud_target\x18\x05 \x01(\x0b\x32\x30.google.privacy.dlp.v2.OtherCloudDiscoveryTargetH\x00\x12T\n\x15vertex_dataset_target\x18\x07 \x01(\x0b\x32\x33.google.privacy.dlp.v2.VertexDatasetDiscoveryTargetH\x00\x42\x08\n\x06target\"\xae\x02\n\x17\x42igQueryDiscoveryTarget\x12\x43\n\x06\x66ilter\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.DiscoveryBigQueryFilterB\x03\xe0\x41\x02\x12\x46\n\nconditions\x18\x02 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DiscoveryBigQueryConditions\x12\x44\n\x07\x63\x61\x64\x65nce\x18\x03 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DiscoveryGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\x0b\n\tfrequency\"\xa0\x02\n\x17\x44iscoveryBigQueryFilter\x12@\n\x06tables\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.BigQueryTableCollectionH\x00\x12]\n\x0cother_tables\x18\x02 \x01(\x0b\x32\x45.google.privacy.dlp.v2.DiscoveryBigQueryFilter.AllOtherBigQueryTablesH\x00\x12@\n\x0ftable_reference\x18\x03 \x01(\x0b\x32%.google.privacy.dlp.v2.TableReferenceH\x00\x1a\x18\n\x16\x41llOtherBigQueryTablesB\x08\n\x06\x66ilter\"g\n\x17\x42igQueryTableCollection\x12\x41\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.BigQueryRegexesH\x00\x42\t\n\x07pattern\"\x98\x03\n\x1b\x44iscoveryBigQueryConditions\x12\x31\n\rcreated_after\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x05types\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.BigQueryTableTypesH\x00\x12M\n\x0ftype_collection\x18\x03 \x01(\x0e\x32\x32.google.privacy.dlp.v2.BigQueryTableTypeCollectionH\x00\x12V\n\ror_conditions\x18\x04 \x01(\x0b\x32?.google.privacy.dlp.v2.DiscoveryBigQueryConditions.OrConditions\x1aQ\n\x0cOrConditions\x12\x15\n\rmin_row_count\x18\x01 \x01(\x05\x12*\n\x07min_age\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x10\n\x0eincluded_types\"\x83\x03\n\x1a\x44iscoveryGenerationCadence\x12V\n\x17schema_modified_cadence\x18\x01 \x01(\x0b\x32\x35.google.privacy.dlp.v2.DiscoverySchemaModifiedCadence\x12T\n\x16table_modified_cadence\x18\x02 \x01(\x0b\x32\x34.google.privacy.dlp.v2.DiscoveryTableModifiedCadence\x12i\n!inspect_template_modified_cadence\x18\x03 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadence\x12L\n\x11refresh_frequency\x18\x04 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"\xa6\x01\n\x1d\x44iscoveryTableModifiedCadence\x12?\n\x05types\x18\x01 \x03(\x0e\x32\x30.google.privacy.dlp.v2.BigQueryTableModification\x12\x44\n\tfrequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"\xa8\x01\n\x1e\x44iscoverySchemaModifiedCadence\x12@\n\x05types\x18\x01 \x03(\x0e\x32\x31.google.privacy.dlp.v2.BigQuerySchemaModification\x12\x44\n\tfrequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"o\n\'DiscoveryInspectTemplateModifiedCadence\x12\x44\n\tfrequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"\xbf\x02\n\x17\x43loudSqlDiscoveryTarget\x12\x43\n\x06\x66ilter\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.DiscoveryCloudSqlFilterB\x03\xe0\x41\x02\x12\x46\n\nconditions\x18\x02 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DiscoveryCloudSqlConditions\x12W\n\x12generation_cadence\x18\x03 \x01(\x0b\x32\x39.google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x89\x02\n\x17\x44iscoveryCloudSqlFilter\x12G\n\ncollection\x18\x01 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DatabaseResourceCollectionH\x00\x12\x42\n\x06others\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.AllOtherDatabaseResourcesH\x00\x12W\n\x1b\x64\x61tabase_resource_reference\x18\x03 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DatabaseResourceReferenceH\x00\x42\x08\n\x06\x66ilter\"r\n\x1a\x44\x61tabaseResourceCollection\x12I\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.DatabaseResourceRegexesH\x00\x42\t\n\x07pattern\"Y\n\x17\x44\x61tabaseResourceRegexes\x12>\n\x08patterns\x18\x01 \x03(\x0b\x32,.google.privacy.dlp.v2.DatabaseResourceRegex\"\x87\x01\n\x15\x44\x61tabaseResourceRegex\x12\x18\n\x10project_id_regex\x18\x01 \x01(\t\x12\x16\n\x0einstance_regex\x18\x02 \x01(\t\x12\x16\n\x0e\x64\x61tabase_regex\x18\x03 \x01(\t\x12$\n\x1c\x64\x61tabase_resource_name_regex\x18\x04 \x01(\t\"\x1b\n\x19\x41llOtherDatabaseResources\"\x82\x01\n\x19\x44\x61tabaseResourceReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08instance\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08\x64\x61tabase\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11\x64\x61tabase_resource\x18\x04 \x01(\tB\x03\xe0\x41\x02\"\xda\x03\n\x1b\x44iscoveryCloudSqlConditions\x12`\n\x10\x64\x61tabase_engines\x18\x01 \x03(\x0e\x32\x41.google.privacy.dlp.v2.DiscoveryCloudSqlConditions.DatabaseEngineB\x03\xe0\x41\x01\x12V\n\x05types\x18\x03 \x03(\x0e\x32G.google.privacy.dlp.v2.DiscoveryCloudSqlConditions.DatabaseResourceType\"n\n\x0e\x44\x61tabaseEngine\x12\x1f\n\x1b\x44\x41TABASE_ENGINE_UNSPECIFIED\x10\x00\x12\"\n\x1e\x41LL_SUPPORTED_DATABASE_ENGINES\x10\x01\x12\t\n\x05MYSQL\x10\x02\x12\x0c\n\x08POSTGRES\x10\x03\"\x90\x01\n\x14\x44\x61tabaseResourceType\x12&\n\"DATABASE_RESOURCE_TYPE_UNSPECIFIED\x10\x00\x12.\n*DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES\x10\x01\x12 \n\x1c\x44\x41TABASE_RESOURCE_TYPE_TABLE\x10\x02\"\x97\x05\n\"DiscoveryCloudSqlGenerationCadence\x12p\n\x17schema_modified_cadence\x18\x01 \x01(\x0b\x32O.google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadence.SchemaModifiedCadence\x12L\n\x11refresh_frequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\x12i\n!inspect_template_modified_cadence\x18\x03 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadence\x1a\xc5\x02\n\x15SchemaModifiedCadence\x12y\n\x05types\x18\x01 \x03(\x0e\x32j.google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadence.SchemaModifiedCadence.CloudSqlSchemaModification\x12\x44\n\tfrequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"k\n\x1a\x43loudSqlSchemaModification\x12\'\n#SQL_SCHEMA_MODIFICATION_UNSPECIFIED\x10\x00\x12\x0f\n\x0bNEW_COLUMNS\x10\x01\x12\x13\n\x0fREMOVED_COLUMNS\x10\x02\"\x18\n\x16SecretsDiscoveryTarget\"\xdb\x02\n\x1b\x43loudStorageDiscoveryTarget\x12G\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DiscoveryCloudStorageFilterB\x03\xe0\x41\x02\x12L\n\nconditions\x18\x04 \x01(\x0b\x32\x33.google.privacy.dlp.v2.DiscoveryFileStoreConditionsB\x03\xe0\x41\x01\x12`\n\x12generation_cadence\x18\x02 \x01(\x0b\x32=.google.privacy.dlp.v2.DiscoveryCloudStorageGenerationCadenceB\x03\xe0\x41\x01H\x00\x12\x38\n\x08\x64isabled\x18\x03 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledB\x03\xe0\x41\x01H\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x96\x02\n\x1b\x44iscoveryCloudStorageFilter\x12\x45\n\ncollection\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.FileStoreCollectionB\x03\xe0\x41\x01H\x00\x12\x65\n cloud_storage_resource_reference\x18\x02 \x01(\x0b\x32\x34.google.privacy.dlp.v2.CloudStorageResourceReferenceB\x03\xe0\x41\x01H\x00\x12?\n\x06others\x18\x64 \x01(\x0b\x32(.google.privacy.dlp.v2.AllOtherResourcesB\x03\xe0\x41\x01H\x00\x42\x08\n\x06\x66ilter\"\xa7\x01\n\x13\x46ileStoreCollection\x12G\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.FileStoreRegexesB\x03\xe0\x41\x01H\x00\x12<\n\x0cinclude_tags\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.TagFiltersB\x03\xe0\x41\x01\x42\t\n\x07pattern\"P\n\x10\x46ileStoreRegexes\x12<\n\x08patterns\x18\x01 \x03(\x0b\x32%.google.privacy.dlp.v2.FileStoreRegexB\x03\xe0\x41\x02\"p\n\x0e\x46ileStoreRegex\x12L\n\x13\x63loud_storage_regex\x18\x01 \x01(\x0b\x32(.google.privacy.dlp.v2.CloudStorageRegexB\x03\xe0\x41\x01H\x00\x42\x10\n\x0eresource_regex\"R\n\x11\x43loudStorageRegex\x12\x1d\n\x10project_id_regex\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1e\n\x11\x62ucket_name_regex\x18\x02 \x01(\tB\x03\xe0\x41\x01\"R\n\x1d\x43loudStorageResourceReference\x12\x18\n\x0b\x62ucket_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\nproject_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xeb\x01\n&DiscoveryCloudStorageGenerationCadence\x12Q\n\x11refresh_frequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequencyB\x03\xe0\x41\x01\x12n\n!inspect_template_modified_cadence\x18\x02 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadenceB\x03\xe0\x41\x01\"\x9b\x05\n\x1f\x44iscoveryCloudStorageConditions\x12{\n\x1aincluded_object_attributes\x18\x01 \x03(\x0e\x32R.google.privacy.dlp.v2.DiscoveryCloudStorageConditions.CloudStorageObjectAttributeB\x03\xe0\x41\x02\x12{\n\x1aincluded_bucket_attributes\x18\x02 \x03(\x0e\x32R.google.privacy.dlp.v2.DiscoveryCloudStorageConditions.CloudStorageBucketAttributeB\x03\xe0\x41\x02\"\xe3\x01\n\x1b\x43loudStorageObjectAttribute\x12.\n*CLOUD_STORAGE_OBJECT_ATTRIBUTE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41LL_SUPPORTED_OBJECTS\x10\x01\x12\x0c\n\x08STANDARD\x10\x02\x12\x0c\n\x08NEARLINE\x10\x03\x12\x0c\n\x08\x43OLDLINE\x10\x04\x12\x0b\n\x07\x41RCHIVE\x10\x05\x12\x0c\n\x08REGIONAL\x10\x06\x12\x12\n\x0eMULTI_REGIONAL\x10\x07\x12 \n\x1c\x44URABLE_REDUCED_AVAILABILITY\x10\x08\"\x97\x01\n\x1b\x43loudStorageBucketAttribute\x12.\n*CLOUD_STORAGE_BUCKET_ATTRIBUTE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41LL_SUPPORTED_BUCKETS\x10\x01\x12\x16\n\x12\x41UTOCLASS_DISABLED\x10\x02\x12\x15\n\x11\x41UTOCLASS_ENABLED\x10\x03\"\xf6\x01\n\x1c\x44iscoveryFileStoreConditions\x12\x36\n\rcreated_after\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12/\n\x07min_age\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01\x12_\n\x18\x63loud_storage_conditions\x18\x03 \x01(\x0b\x32\x36.google.privacy.dlp.v2.DiscoveryCloudStorageConditionsB\x03\xe0\x41\x01H\x00\x42\x0c\n\nconditions\"\x92\x03\n\x19OtherCloudDiscoveryTarget\x12\x44\n\x10\x64\x61ta_source_type\x18\x01 \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceTypeB\x03\xe0\x41\x02\x12\x45\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DiscoveryOtherCloudFilterB\x03\xe0\x41\x02\x12M\n\nconditions\x18\x03 \x01(\x0b\x32\x34.google.privacy.dlp.v2.DiscoveryOtherCloudConditionsB\x03\xe0\x41\x01\x12Y\n\x12generation_cadence\x18\x04 \x01(\x0b\x32;.google.privacy.dlp.v2.DiscoveryOtherCloudGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x05 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x86\x02\n\x19\x44iscoveryOtherCloudFilter\x12I\n\ncollection\x18\x01 \x01(\x0b\x32\x33.google.privacy.dlp.v2.OtherCloudResourceCollectionH\x00\x12S\n\x0fsingle_resource\x18\x02 \x01(\x0b\x32\x38.google.privacy.dlp.v2.OtherCloudSingleResourceReferenceH\x00\x12?\n\x06others\x18\x64 \x01(\x0b\x32(.google.privacy.dlp.v2.AllOtherResourcesB\x03\xe0\x41\x01H\x00\x42\x08\n\x06\x66ilter\"v\n\x1cOtherCloudResourceCollection\x12K\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32\x30.google.privacy.dlp.v2.OtherCloudResourceRegexesH\x00\x42\t\n\x07pattern\"]\n\x19OtherCloudResourceRegexes\x12@\n\x08patterns\x18\x01 \x03(\x0b\x32..google.privacy.dlp.v2.OtherCloudResourceRegex\"y\n\x17OtherCloudResourceRegex\x12L\n\x16\x61mazon_s3_bucket_regex\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.AmazonS3BucketRegexH\x00\x42\x10\n\x0eresource_regex\"0\n\x0f\x41wsAccountRegex\x12\x1d\n\x10\x61\x63\x63ount_id_regex\x18\x01 \x01(\tB\x03\xe0\x41\x01\"x\n\x13\x41mazonS3BucketRegex\x12\x41\n\x11\x61ws_account_regex\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.AwsAccountRegex\x12\x1e\n\x11\x62ucket_name_regex\x18\x02 \x01(\tB\x03\xe0\x41\x01\"r\n!OtherCloudSingleResourceReference\x12\x41\n\x10\x61mazon_s3_bucket\x18\x01 \x01(\x0b\x32%.google.privacy.dlp.v2.AmazonS3BucketH\x00\x42\n\n\x08resource\"%\n\nAwsAccount\x12\x17\n\naccount_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"b\n\x0e\x41mazonS3Bucket\x12\x36\n\x0b\x61ws_account\x18\x01 \x01(\x0b\x32!.google.privacy.dlp.v2.AwsAccount\x12\x18\n\x0b\x62ucket_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xb1\x01\n\x1d\x44iscoveryOtherCloudConditions\x12*\n\x07min_age\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12V\n\x1b\x61mazon_s3_bucket_conditions\x18\x02 \x01(\x0b\x32/.google.privacy.dlp.v2.AmazonS3BucketConditionsH\x00\x42\x0c\n\nconditions\"\xd9\x03\n\x18\x41mazonS3BucketConditions\x12U\n\x0c\x62ucket_types\x18\x01 \x03(\x0e\x32:.google.privacy.dlp.v2.AmazonS3BucketConditions.BucketTypeB\x03\xe0\x41\x01\x12g\n\x16object_storage_classes\x18\x02 \x03(\x0e\x32\x42.google.privacy.dlp.v2.AmazonS3BucketConditions.ObjectStorageClassB\x03\xe0\x41\x01\"T\n\nBucketType\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12TYPE_ALL_SUPPORTED\x10\x01\x12\x18\n\x14TYPE_GENERAL_PURPOSE\x10\x02\"\xa6\x01\n\x12ObjectStorageClass\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x19\n\x15\x41LL_SUPPORTED_CLASSES\x10\x01\x12\x0c\n\x08STANDARD\x10\x02\x12\x1e\n\x1aSTANDARD_INFREQUENT_ACCESS\x10\x04\x12\x1d\n\x19GLACIER_INSTANT_RETRIEVAL\x10\x06\x12\x17\n\x13INTELLIGENT_TIERING\x10\x07\"\xe9\x01\n$DiscoveryOtherCloudGenerationCadence\x12Q\n\x11refresh_frequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequencyB\x03\xe0\x41\x01\x12n\n!inspect_template_modified_cadence\x18\x02 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadenceB\x03\xe0\x41\x01\"W\n\x19\x44iscoveryStartingLocation\x12\x19\n\x0forganization_id\x18\x01 \x01(\x03H\x00\x12\x13\n\tfolder_id\x18\x02 \x01(\x03H\x00\x42\n\n\x08location\"\x87\x02\n#OtherCloudDiscoveryStartingLocation\x12o\n\x0c\x61ws_location\x18\x01 \x01(\x0b\x32W.google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation.AwsDiscoveryStartingLocationH\x00\x1a\x63\n\x1c\x41wsDiscoveryStartingLocation\x12\x14\n\naccount_id\x18\x02 \x01(\tH\x00\x12$\n\x1a\x61ll_asset_inventory_assets\x18\x03 \x01(\x08H\x00\x42\x07\n\x05scopeB\n\n\x08location\"\x13\n\x11\x41llOtherResources\"\xd3\x02\n\x1cVertexDatasetDiscoveryTarget\x12H\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x33.google.privacy.dlp.v2.DiscoveryVertexDatasetFilterB\x03\xe0\x41\x02\x12K\n\nconditions\x18\x02 \x01(\x0b\x32\x37.google.privacy.dlp.v2.DiscoveryVertexDatasetConditions\x12\\\n\x12generation_cadence\x18\x03 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryVertexDatasetGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x8e\x02\n\x1c\x44iscoveryVertexDatasetFilter\x12\x44\n\ncollection\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.VertexDatasetCollectionH\x00\x12\x62\n!vertex_dataset_resource_reference\x18\x02 \x01(\x0b\x32\x35.google.privacy.dlp.v2.VertexDatasetResourceReferenceH\x00\x12:\n\x06others\x18\x64 \x01(\x0b\x32(.google.privacy.dlp.v2.AllOtherResourcesH\x00\x42\x08\n\x06\x66ilter\"s\n\x17VertexDatasetCollection\x12M\n\x16vertex_dataset_regexes\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.VertexDatasetRegexesH\x00\x42\t\n\x07pattern\"X\n\x14VertexDatasetRegexes\x12@\n\x08patterns\x18\x01 \x03(\x0b\x32).google.privacy.dlp.v2.VertexDatasetRegexB\x03\xe0\x41\x02\".\n\x12VertexDatasetRegex\x12\x18\n\x10project_id_regex\x18\x01 \x01(\t\"D\n\x1eVertexDatasetResourceReference\x12\"\n\x15\x64\x61taset_resource_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\x81\x01\n DiscoveryVertexDatasetConditions\x12\x31\n\rcreated_after\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x07min_age\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xe2\x01\n\'DiscoveryVertexDatasetGenerationCadence\x12L\n\x11refresh_frequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\x12i\n!inspect_template_modified_cadence\x18\x02 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadence\"\x89\x07\n\x06\x44lpJob\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12/\n\x04type\x18\x02 \x01(\x0e\x32!.google.privacy.dlp.v2.DlpJobType\x12:\n\x05state\x18\x03 \x01(\x0e\x32&.google.privacy.dlp.v2.DlpJob.JobStateB\x03\xe0\x41\x03\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\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x33\n\nstart_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\rlast_modified\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1d\n\x10job_trigger_name\x18\n \x01(\tB\x03\xe0\x41\x03\x12\x31\n\x06\x65rrors\x18\x0b \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x12\x41\n\x0e\x61\x63tion_details\x18\x0c \x03(\x0b\x32$.google.privacy.dlp.v2.ActionDetailsB\x03\xe0\x41\x03\"o\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\x12\n\n\x06\x41\x43TIVE\x10\x06:\x7f\xea\x41|\n\x19\x64lp.googleapis.com/DlpJob\x12$projects/{project}/dlpJobs/{dlp_job}\x12\x39projects/{project}/locations/{location}/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\"\xd6\x01\n\x12ListDlpJobsRequest\x12\x31\n\x06parent\x18\x04 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\x12\x19\x64lp.googleapis.com/DlpJob\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\x46inishDlpJobRequest\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\"\xd7\x01\n\x1f\x43reateDeidentifyTemplateRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%dlp.googleapis.com/DeidentifyTemplate\x12K\n\x13\x64\x65identify_template\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplateB\x03\xe0\x41\x02\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\"\xa6\x02\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\x12\x46\n\ndictionary\x18\x04 \x01(\x0b\x32\x30.google.privacy.dlp.v2.CustomInfoType.DictionaryH\x00\x12<\n\x05regex\x18\x05 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.RegexH\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\"\xbd\x02\n\x15StoredInfoTypeVersion\x12;\n\x06\x63onfig\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.StoredInfoTypeConfig\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12>\n\x05state\x18\x03 \x01(\x0e\x32*.google.privacy.dlp.v2.StoredInfoTypeStateB\x03\xe0\x41\x03\x12\x31\n\x06\x65rrors\x18\x04 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x12>\n\x05stats\x18\x05 \x01(\x0b\x32*.google.privacy.dlp.v2.StoredInfoTypeStatsB\x03\xe0\x41\x03\"\xf6\x03\n\x0eStoredInfoType\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\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:\xc1\x02\xea\x41\xbd\x02\n!dlp.googleapis.com/StoredInfoType\x12?organizations/{organization}/storedInfoTypes/{stored_info_type}\x12\x35projects/{project}/storedInfoTypes/{stored_info_type}\x12Torganizations/{organization}/locations/{location}/storedInfoTypes/{stored_info_type}\x12Jprojects/{project}/locations/{location}/storedInfoTypes/{stored_info_type}\"\xcc\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.StoredInfoTypeConfigB\x03\xe0\x41\x02\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\"\x94\x01\n\x1eHybridInspectJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\x12=\n\x0bhybrid_item\x18\x03 \x01(\x0b\x32(.google.privacy.dlp.v2.HybridContentItem\"\x8c\x01\n\x1aHybridInspectDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\x12=\n\x0bhybrid_item\x18\x03 \x01(\x0b\x32(.google.privacy.dlp.v2.HybridContentItem\"\x8b\x01\n\x11HybridContentItem\x12\x30\n\x04item\x18\x01 \x01(\x0b\x32\".google.privacy.dlp.v2.ContentItem\x12\x44\n\x0f\x66inding_details\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.HybridFindingDetails\"\xb0\x02\n\x14HybridFindingDetails\x12;\n\x11\x63ontainer_details\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.Container\x12\x13\n\x0b\x66ile_offset\x18\x02 \x01(\x03\x12\x12\n\nrow_offset\x18\x03 \x01(\x03\x12:\n\rtable_options\x18\x04 \x01(\x0b\x32#.google.privacy.dlp.v2.TableOptions\x12G\n\x06labels\x18\x05 \x03(\x0b\x32\x37.google.privacy.dlp.v2.HybridFindingDetails.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x17\n\x15HybridInspectResponse\"\xc3\x01\n\x14ImageContainmentType\x12\x33\n\x08\x65ncloses\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.EnclosesH\x00\x12:\n\x0c\x66ully_inside\x18\x02 \x01(\x0b\x32\".google.privacy.dlp.v2.FullyInsideH\x00\x12\x32\n\x08overlaps\x18\x03 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.OverlapH\x00\x42\x06\n\x04type\"\t\n\x07Overlap\"\n\n\x08\x45ncloses\"\r\n\x0b\x46ullyInside\"\xa8\x01\n\x1eListProjectDataProfilesRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%dlp.googleapis.com/ProjectDataProfile\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\"\x84\x01\n\x1fListProjectDataProfilesResponse\x12H\n\x15project_data_profiles\x18\x01 \x03(\x0b\x32).google.privacy.dlp.v2.ProjectDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xa4\x01\n\x1cListTableDataProfilesRequest\x12;\n\x06parent\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\x12#dlp.googleapis.com/TableDataProfile\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\"~\n\x1dListTableDataProfilesResponse\x12\x44\n\x13table_data_profiles\x18\x01 \x03(\x0b\x32\'.google.privacy.dlp.v2.TableDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xa6\x01\n\x1dListColumnDataProfilesRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$dlp.googleapis.com/ColumnDataProfile\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\"\x81\x01\n\x1eListColumnDataProfilesResponse\x12\x46\n\x14\x63olumn_data_profiles\x18\x01 \x03(\x0b\x32(.google.privacy.dlp.v2.ColumnDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xcb\x01\n\rDataRiskLevel\x12\x46\n\x05score\x18\x01 \x01(\x0e\x32\x37.google.privacy.dlp.v2.DataRiskLevel.DataRiskLevelScore\"r\n\x12\x44\x61taRiskLevelScore\x12\x1a\n\x16RISK_SCORE_UNSPECIFIED\x10\x00\x12\x0c\n\x08RISK_LOW\x10\n\x12\x10\n\x0cRISK_UNKNOWN\x10\x0c\x12\x11\n\rRISK_MODERATE\x10\x14\x12\r\n\tRISK_HIGH\x10\x1e\"\xdc\x04\n\x12ProjectDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12:\n\x16profile_last_generated\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x42\n\x11sensitivity_score\x18\x04 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x05 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12<\n\x0eprofile_status\x18\x07 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12 \n\x18table_data_profile_count\x18\t \x01(\x03\x12%\n\x1d\x66ile_store_data_profile_count\x18\n \x01(\x03:\xdd\x01\xea\x41\xd9\x01\n%dlp.googleapis.com/ProjectDataProfile\x12\\organizations/{organization}/locations/{location}/projectDataProfiles/{project_data_profile}\x12Rprojects/{project}/locations/{location}/projectDataProfiles/{project_data_profile}\"\xc9\x02\n\x19\x44\x61taProfileConfigSnapshot\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12I\n\x10\x64\x61ta_profile_job\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.DataProfileJobConfigB\x02\x18\x01\x12@\n\x10\x64iscovery_config\x18\x04 \x01(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfig\x12\x1d\n\x15inspect_template_name\x18\x05 \x01(\t\x12\x42\n\x1einspect_template_modified_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x93\x0e\n\x10TableDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12?\n\x10\x64\x61ta_source_type\x18$ \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceType\x12\x1c\n\x14project_data_profile\x18\x02 \x01(\t\x12\x1a\n\x12\x64\x61taset_project_id\x18\x18 \x01(\t\x12\x18\n\x10\x64\x61taset_location\x18\x1d \x01(\t\x12\x12\n\ndataset_id\x18\x19 \x01(\t\x12\x10\n\x08table_id\x18\x1a \x01(\t\x12\x15\n\rfull_resource\x18\x03 \x01(\t\x12<\n\x0eprofile_status\x18\x15 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12<\n\x05state\x18\x16 \x01(\x0e\x32-.google.privacy.dlp.v2.TableDataProfile.State\x12\x42\n\x11sensitivity_score\x18\x05 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x06 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12\x44\n\x14predicted_info_types\x18\x1b \x03(\x0b\x32&.google.privacy.dlp.v2.InfoTypeSummary\x12\x45\n\x10other_info_types\x18\x1c \x03(\x0b\x32+.google.privacy.dlp.v2.OtherInfoTypeSummary\x12I\n\x0f\x63onfig_snapshot\x18\x07 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DataProfileConfigSnapshot\x12\x36\n\x12last_modified_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0f\x65xpiration_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1c\n\x14scanned_column_count\x18\n \x01(\x03\x12\x1b\n\x13\x66\x61iled_column_count\x18\x0b \x01(\x03\x12\x18\n\x10table_size_bytes\x18\x0c \x01(\x03\x12\x11\n\trow_count\x18\r \x01(\x03\x12\x42\n\x11\x65ncryption_status\x18\x0e \x01(\x0e\x32\'.google.privacy.dlp.v2.EncryptionStatus\x12\x46\n\x13resource_visibility\x18\x0f \x01(\x0e\x32).google.privacy.dlp.v2.ResourceVisibility\x12:\n\x16profile_last_generated\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12T\n\x0fresource_labels\x18\x11 \x03(\x0b\x32;.google.privacy.dlp.v2.TableDataProfile.ResourceLabelsEntry\x12/\n\x0b\x63reate_time\x18\x17 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x15sample_findings_table\x18% \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12(\n\x04tags\x18\' \x03(\x0b\x32\x1a.google.privacy.dlp.v2.Tag\x12\x41\n\x11related_resources\x18) \x03(\x0b\x32&.google.privacy.dlp.v2.RelatedResource\x12.\n\x07\x64omains\x18/ \x03(\x0b\x32\x1d.google.privacy.dlp.v2.Domain\x1a\x35\n\x13ResourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"5\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x08\n\x04\x44ONE\x10\x02:\xd3\x01\xea\x41\xcf\x01\n#dlp.googleapis.com/TableDataProfile\x12Xorganizations/{organization}/locations/{location}/tableDataProfiles/{table_data_profile}\x12Nprojects/{project}/locations/{location}/tableDataProfiles/{table_data_profile}\"b\n\rProfileStatus\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12-\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"g\n\x0fInfoTypeSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12 \n\x14\x65stimated_prevalence\x18\x02 \x01(\x05\x42\x02\x18\x01\"\x88\x01\n\x14OtherInfoTypeSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x1c\n\x14\x65stimated_prevalence\x18\x02 \x01(\x05\x12\x1e\n\x16\x65xcluded_from_analysis\x18\x03 \x01(\x08\"\xc9\r\n\x11\x43olumnDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12<\n\x0eprofile_status\x18\x11 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12=\n\x05state\x18\x12 \x01(\x0e\x32..google.privacy.dlp.v2.ColumnDataProfile.State\x12:\n\x16profile_last_generated\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1a\n\x12table_data_profile\x18\x04 \x01(\t\x12\x1b\n\x13table_full_resource\x18\x05 \x01(\t\x12\x1a\n\x12\x64\x61taset_project_id\x18\x13 \x01(\t\x12\x18\n\x10\x64\x61taset_location\x18\x14 \x01(\t\x12\x12\n\ndataset_id\x18\x15 \x01(\t\x12\x10\n\x08table_id\x18\x16 \x01(\t\x12\x0e\n\x06\x63olumn\x18\x06 \x01(\t\x12\x42\n\x11sensitivity_score\x18\x07 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x08 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12@\n\x10\x63olumn_info_type\x18\t \x01(\x0b\x32&.google.privacy.dlp.v2.InfoTypeSummary\x12\x42\n\rother_matches\x18\n \x03(\x0b\x32+.google.privacy.dlp.v2.OtherInfoTypeSummary\x12M\n\x19\x65stimated_null_percentage\x18\x17 \x01(\x0e\x32*.google.privacy.dlp.v2.NullPercentageLevel\x12O\n\x1a\x65stimated_uniqueness_score\x18\x18 \x01(\x0e\x32+.google.privacy.dlp.v2.UniquenessScoreLevel\x12\x17\n\x0f\x66ree_text_score\x18\r \x01(\x01\x12L\n\x0b\x63olumn_type\x18\x0e \x01(\x0e\x32\x37.google.privacy.dlp.v2.ColumnDataProfile.ColumnDataType\x12P\n\x0cpolicy_state\x18\x0f \x01(\x0e\x32:.google.privacy.dlp.v2.ColumnDataProfile.ColumnPolicyState\"5\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x08\n\x04\x44ONE\x10\x02\"\xff\x02\n\x0e\x43olumnDataType\x12 \n\x1c\x43OLUMN_DATA_TYPE_UNSPECIFIED\x10\x00\x12\x0e\n\nTYPE_INT64\x10\x01\x12\r\n\tTYPE_BOOL\x10\x02\x12\x10\n\x0cTYPE_FLOAT64\x10\x03\x12\x0f\n\x0bTYPE_STRING\x10\x04\x12\x0e\n\nTYPE_BYTES\x10\x05\x12\x12\n\x0eTYPE_TIMESTAMP\x10\x06\x12\r\n\tTYPE_DATE\x10\x07\x12\r\n\tTYPE_TIME\x10\x08\x12\x11\n\rTYPE_DATETIME\x10\t\x12\x12\n\x0eTYPE_GEOGRAPHY\x10\n\x12\x10\n\x0cTYPE_NUMERIC\x10\x0b\x12\x0f\n\x0bTYPE_RECORD\x10\x0c\x12\x13\n\x0fTYPE_BIGNUMERIC\x10\r\x12\r\n\tTYPE_JSON\x10\x0e\x12\x11\n\rTYPE_INTERVAL\x10\x0f\x12\x13\n\x0fTYPE_RANGE_DATE\x10\x10\x12\x17\n\x13TYPE_RANGE_DATETIME\x10\x11\x12\x18\n\x14TYPE_RANGE_TIMESTAMP\x10\x12\"R\n\x11\x43olumnPolicyState\x12#\n\x1f\x43OLUMN_POLICY_STATE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x43OLUMN_POLICY_TAGGED\x10\x01:\xd8\x01\xea\x41\xd4\x01\n$dlp.googleapis.com/ColumnDataProfile\x12Zorganizations/{organization}/locations/{location}/columnDataProfiles/{column_data_profile}\x12Pprojects/{project}/locations/{location}/columnDataProfiles/{column_data_profile}\"\xe8\x0e\n\x14\x46ileStoreDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12?\n\x10\x64\x61ta_source_type\x18\x02 \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceType\x12\x1c\n\x14project_data_profile\x18\x03 \x01(\t\x12\x12\n\nproject_id\x18\x04 \x01(\t\x12\x1b\n\x13\x66ile_store_location\x18\x05 \x01(\t\x12\x1e\n\x16\x64\x61ta_storage_locations\x18\x13 \x03(\t\x12\x15\n\rlocation_type\x18\x14 \x01(\t\x12\x17\n\x0f\x66ile_store_path\x18\x06 \x01(\t\x12\x15\n\rfull_resource\x18\x18 \x01(\t\x12I\n\x0f\x63onfig_snapshot\x18\x07 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DataProfileConfigSnapshot\x12<\n\x0eprofile_status\x18\x08 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12@\n\x05state\x18\t \x01(\x0e\x32\x31.google.privacy.dlp.v2.FileStoreDataProfile.State\x12:\n\x16profile_last_generated\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x46\n\x13resource_visibility\x18\x0b \x01(\x0e\x32).google.privacy.dlp.v2.ResourceVisibility\x12\x42\n\x11sensitivity_score\x18\x0c \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\r \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12/\n\x0b\x63reate_time\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x12last_modified_time\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12I\n\x16\x66ile_cluster_summaries\x18\x10 \x03(\x0b\x32).google.privacy.dlp.v2.FileClusterSummary\x12`\n\x13resource_attributes\x18\x11 \x03(\x0b\x32\x43.google.privacy.dlp.v2.FileStoreDataProfile.ResourceAttributesEntry\x12X\n\x0fresource_labels\x18\x12 \x03(\x0b\x32?.google.privacy.dlp.v2.FileStoreDataProfile.ResourceLabelsEntry\x12W\n\x1e\x66ile_store_info_type_summaries\x18\x15 \x03(\x0b\x32/.google.privacy.dlp.v2.FileStoreInfoTypeSummary\x12\x43\n\x15sample_findings_table\x18\x16 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12\x1b\n\x13\x66ile_store_is_empty\x18\x17 \x01(\x08\x12(\n\x04tags\x18\x19 \x03(\x0b\x32\x1a.google.privacy.dlp.v2.Tag\x12\x41\n\x11related_resources\x18\x1a \x03(\x0b\x32&.google.privacy.dlp.v2.RelatedResource\x12.\n\x07\x64omains\x18\x1b \x03(\x0b\x32\x1d.google.privacy.dlp.v2.Domain\x1aW\n\x17ResourceAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value:\x02\x38\x01\x1a\x35\n\x13ResourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"5\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x08\n\x04\x44ONE\x10\x02:\xe9\x01\xea\x41\xe5\x01\n\'dlp.googleapis.com/FileStoreDataProfile\x12\x61organizations/{organization}/locations/{location}/fileStoreDataProfiles/{file_store_data_profile}\x12Wprojects/{project}/locations/{location}/fileStoreDataProfiles/{file_store_data_profile}\"?\n\x03Tag\x12\x1c\n\x14namespaced_tag_value\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\"H\n\nTagFilters\x12:\n\x0btag_filters\x18\x01 \x03(\x0b\x32 .google.privacy.dlp.v2.TagFilterB\x03\xe0\x41\x02\"S\n\tTagFilter\x12\x1e\n\x14namespaced_tag_value\x18\x01 \x01(\tH\x00\x12\x1c\n\x12namespaced_tag_key\x18\x02 \x01(\tH\x00\x42\x08\n\x06\x66ormat\"(\n\x0fRelatedResource\x12\x15\n\rfull_resource\x18\x01 \x01(\t\"N\n\x18\x46ileStoreInfoTypeSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\"+\n\x11\x46ileExtensionInfo\x12\x16\n\x0e\x66ile_extension\x18\x01 \x01(\t\"\x8c\x04\n\x12\x46ileClusterSummary\x12\x41\n\x11\x66ile_cluster_type\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.FileClusterType\x12W\n\x1e\x66ile_store_info_type_summaries\x18\x02 \x03(\x0b\x32/.google.privacy.dlp.v2.FileStoreInfoTypeSummary\x12\x42\n\x11sensitivity_score\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x04 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12,\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Error\x12I\n\x17\x66ile_extensions_scanned\x18\x07 \x03(\x0b\x32(.google.privacy.dlp.v2.FileExtensionInfo\x12\x46\n\x14\x66ile_extensions_seen\x18\x08 \x03(\x0b\x32(.google.privacy.dlp.v2.FileExtensionInfo\x12\x16\n\x0eno_files_exist\x18\t \x01(\x08\"[\n\x1cGetProjectDataProfileRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/ProjectDataProfile\"]\n\x1eGetFileStoreDataProfileRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/ProjectDataProfile\"\xc0\x01\n ListFileStoreDataProfilesRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\x12\'dlp.googleapis.com/FileStoreDataProfile\x12\x17\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8b\x01\n!ListFileStoreDataProfilesResponse\x12M\n\x18\x66ile_store_data_profiles\x18\x01 \x03(\x0b\x32+.google.privacy.dlp.v2.FileStoreDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"b\n!DeleteFileStoreDataProfileRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'dlp.googleapis.com/FileStoreDataProfile\"W\n\x1aGetTableDataProfileRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#dlp.googleapis.com/TableDataProfile\"Y\n\x1bGetColumnDataProfileRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$dlp.googleapis.com/ColumnDataProfile\"\xea\x05\n\x1a\x44\x61taProfilePubSubCondition\x12X\n\x0b\x65xpressions\x18\x01 \x01(\x0b\x32\x43.google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions\x1a\xe9\x01\n\x0fPubSubCondition\x12\x62\n\x12minimum_risk_score\x18\x01 \x01(\x0e\x32\x44.google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucketH\x00\x12i\n\x19minimum_sensitivity_score\x18\x02 \x01(\x0e\x32\x44.google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucketH\x00\x42\x07\n\x05value\x1a\xab\x02\n\x11PubSubExpressions\x12s\n\x10logical_operator\x18\x01 \x01(\x0e\x32Y.google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions.PubSubLogicalOperator\x12U\n\nconditions\x18\x02 \x03(\x0b\x32\x41.google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubCondition\"J\n\x15PubSubLogicalOperator\x12 \n\x1cLOGICAL_OPERATOR_UNSPECIFIED\x10\x00\x12\x06\n\x02OR\x10\x01\x12\x07\n\x03\x41ND\x10\x02\"X\n\x12ProfileScoreBucket\x12$\n PROFILE_SCORE_BUCKET_UNSPECIFIED\x10\x00\x12\x08\n\x04HIGH\x10\x01\x12\x12\n\x0eMEDIUM_OR_HIGH\x10\x02\"\xe0\x01\n\x18\x44\x61taProfilePubSubMessage\x12\x38\n\x07profile\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.TableDataProfile\x12G\n\x12\x66ile_store_profile\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.FileStoreDataProfile\x12\x41\n\x05\x65vent\x18\x02 \x01(\x0e\x32\x32.google.privacy.dlp.v2.DataProfileAction.EventType\"\x8c\x01\n\x17\x43reateConnectionRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/Connection\x12:\n\nconnection\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.ConnectionB\x03\xe0\x41\x02\"K\n\x14GetConnectionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/Connection\"\x95\x01\n\x16ListConnectionsRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/Connection\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"\x97\x01\n\x18SearchConnectionsRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/Connection\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"j\n\x17ListConnectionsResponse\x12\x36\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32!.google.privacy.dlp.v2.Connection\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"l\n\x19SearchConnectionsResponse\x12\x36\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32!.google.privacy.dlp.v2.Connection\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xc0\x01\n\x17UpdateConnectionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/Connection\x12:\n\nconnection\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.ConnectionB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\"N\n\x17\x44\x65leteConnectionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/Connection\"\x90\x03\n\nConnection\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12:\n\x05state\x18\x02 \x01(\x0e\x32&.google.privacy.dlp.v2.ConnectionStateB\x03\xe0\x41\x02\x12\x31\n\x06\x65rrors\x18\x03 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x12>\n\tcloud_sql\x18\x04 \x01(\x0b\x32).google.privacy.dlp.v2.CloudSqlPropertiesH\x00:\xb1\x01\xea\x41\xad\x01\n\x1d\x64lp.googleapis.com/Connection\x12@projects/{project}/locations/{location}/connections/{connection}\x12Jorganizations/{organization}/locations/{location}/connections/{connection}B\x0c\n\nproperties\"[\n\x17SecretManagerCredential\x12\x15\n\x08username\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12)\n\x1cpassword_secret_version_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\x17\n\x15\x43loudSqlIamCredential\"\xb5\x03\n\x12\x43loudSqlProperties\x12\x1f\n\x0f\x63onnection_name\x18\x01 \x01(\tB\x06\xe0\x41\x05\xe0\x41\x01\x12K\n\x11username_password\x18\x02 \x01(\x0b\x32..google.privacy.dlp.v2.SecretManagerCredentialH\x00\x12\x45\n\rcloud_sql_iam\x18\x03 \x01(\x0b\x32,.google.privacy.dlp.v2.CloudSqlIamCredentialH\x00\x12\x1c\n\x0fmax_connections\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02\x12V\n\x0f\x64\x61tabase_engine\x18\x07 \x01(\x0e\x32\x38.google.privacy.dlp.v2.CloudSqlProperties.DatabaseEngineB\x03\xe0\x41\x02\"f\n\x0e\x44\x61tabaseEngine\x12\x1b\n\x17\x44\x41TABASE_ENGINE_UNKNOWN\x10\x00\x12\x19\n\x15\x44\x41TABASE_ENGINE_MYSQL\x10\x01\x12\x1c\n\x18\x44\x41TABASE_ENGINE_POSTGRES\x10\x02\x42\x0c\n\ncredential\"Z\n\x1d\x44\x65leteTableDataProfileRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#dlp.googleapis.com/TableDataProfile\"%\n\x0e\x44\x61taSourceType\x12\x13\n\x0b\x64\x61ta_source\x18\x01 \x01(\t\"\xf4\x02\n\x0f\x46ileClusterType\x12\x41\n\x07\x63luster\x18\x01 \x01(\x0e\x32..google.privacy.dlp.v2.FileClusterType.ClusterH\x00\"\x88\x02\n\x07\x43luster\x12\x17\n\x13\x43LUSTER_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x43LUSTER_UNKNOWN\x10\x01\x12\x10\n\x0c\x43LUSTER_TEXT\x10\x02\x12\x1b\n\x17\x43LUSTER_STRUCTURED_DATA\x10\x03\x12\x17\n\x13\x43LUSTER_SOURCE_CODE\x10\x04\x12\x19\n\x15\x43LUSTER_RICH_DOCUMENT\x10\x05\x12\x11\n\rCLUSTER_IMAGE\x10\x06\x12\x13\n\x0f\x43LUSTER_ARCHIVE\x10\x07\x12\x16\n\x12\x43LUSTER_MULTIMEDIA\x10\x08\x12\x16\n\x12\x43LUSTER_EXECUTABLE\x10\t\x12\x14\n\x10\x43LUSTER_AI_MODEL\x10\nB\x13\n\x11\x66ile_cluster_type\"\xb6\x05\n\x12ProcessingLocation\x12`\n\x17image_fallback_location\x18\x01 \x01(\x0b\x32?.google.privacy.dlp.v2.ProcessingLocation.ImageFallbackLocation\x12\x66\n\x1a\x64ocument_fallback_location\x18\x02 \x01(\x0b\x32\x42.google.privacy.dlp.v2.ProcessingLocation.DocumentFallbackLocation\x1a\x17\n\x15MultiRegionProcessing\x1a\x12\n\x10GlobalProcessing\x1a\xd1\x01\n\x15ImageFallbackLocation\x12`\n\x17multi_region_processing\x18\x64 \x01(\x0b\x32?.google.privacy.dlp.v2.ProcessingLocation.MultiRegionProcessing\x12V\n\x11global_processing\x18\xc8\x01 \x01(\x0b\x32:.google.privacy.dlp.v2.ProcessingLocation.GlobalProcessing\x1a\xd4\x01\n\x18\x44ocumentFallbackLocation\x12`\n\x17multi_region_processing\x18\x64 \x01(\x0b\x32?.google.privacy.dlp.v2.ProcessingLocation.MultiRegionProcessing\x12V\n\x11global_processing\x18\xc8\x01 \x01(\x0b\x32:.google.privacy.dlp.v2.ProcessingLocation.GlobalProcessing\"K\n\x17SaveToGcsFindingsOutput\x12\x30\n\x08\x66indings\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.Finding\"\xc6\x02\n\x06\x44omain\x12\x38\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32&.google.privacy.dlp.v2.Domain.Category\x12\x35\n\x07signals\x18\x02 \x03(\x0e\x32$.google.privacy.dlp.v2.Domain.Signal\"6\n\x08\x43\x61tegory\x12\x18\n\x14\x43\x41TEGORY_UNSPECIFIED\x10\x00\x12\x06\n\x02\x41I\x10\x01\x12\x08\n\x04\x43ODE\x10\x02\"\x92\x01\n\x06Signal\x12\x16\n\x12SIGNAL_UNSPECIFIED\x10\x00\x12\t\n\x05MODEL\x10\x01\x12\x12\n\x0eTEXT_EMBEDDING\x10\x02\x12\r\n\tEMBEDDING\x10\x07\x12\x11\n\rVERTEX_PLUGIN\x10\x03\x12\x11\n\rVECTOR_PLUGIN\x10\x04\x12\x0f\n\x0bSOURCE_CODE\x10\x05\x12\x0b\n\x07SERVICE\x10\x06\"\xb9\x01\n\x1a\x43reateContentPolicyRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 dlp.googleapis.com/ContentPolicy\x12\x41\n\x0e\x63ontent_policy\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.ContentPolicyB\x03\xe0\x41\x02\x12\x1e\n\x11\x63ontent_policy_id\x18\x03 \x01(\tB\x03\xe0\x41\x01\"Q\n\x17GetContentPolicyRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n dlp.googleapis.com/ContentPolicy\"\x87\x01\n\x1aListContentPoliciesRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 dlp.googleapis.com/ContentPolicy\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"v\n\x1bListContentPoliciesResponse\x12>\n\x10\x63ontent_policies\x18\x01 \x03(\x0b\x32$.google.privacy.dlp.v2.ContentPolicy\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xcd\x01\n\x1aUpdateContentPolicyRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n dlp.googleapis.com/ContentPolicy\x12\x41\n\x0e\x63ontent_policy\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.ContentPolicyB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\"T\n\x1a\x44\x65leteContentPolicyRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n dlp.googleapis.com/ContentPolicy\"\x9a\x0e\n\rContentPolicy\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\r \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x19\n\x0c\x64isplay_name\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x41\n\x0einspect_config\x18\x07 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfigB\x03\xe0\x41\x01\x12\x43\n\x05rules\x18\x03 \x03(\x0b\x32/.google.privacy.dlp.v2.ContentPolicy.PolicyRuleB\x03\xe0\x41\x02\x12U\n\x15unsupported_file_type\x18\x08 \x01(\x0b\x32\x31.google.privacy.dlp.v2.ContentPolicy.PolicyActionB\x03\xe0\x41\x01\x12O\n\x0finput_too_large\x18\t \x01(\x0b\x32\x31.google.privacy.dlp.v2.ContentPolicy.PolicyActionB\x03\xe0\x41\x01\x12\x62\n\"failed_to_scan_supported_file_type\x18\n \x01(\x0b\x32\x31.google.privacy.dlp.v2.ContentPolicy.PolicyActionB\x03\xe0\x41\x01\x12I\n\x0e\x64\x65\x66\x61ult_action\x18\x0b \x01(\x0b\x32\x31.google.privacy.dlp.v2.ContentPolicy.PolicyAction\x12P\n\x0flogging_configs\x18\x05 \x03(\x0b\x32\x32.google.privacy.dlp.v2.ContentPolicy.LoggingConfigB\x03\xe0\x41\x01\x12\x31\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x1a\x64\n\x0cPolicyAction\x12J\n\x0ereturn_verdict\x18\x01 \x01(\x0e\x32+.google.privacy.dlp.v2.ContentPolicyVerdictB\x03\xe0\x41\x01H\x00\x42\x08\n\x06\x61\x63tion\x1a\xd5\x04\n\nPolicyRule\x12X\n\nconditions\x18\x02 \x03(\x0b\x32?.google.privacy.dlp.v2.ContentPolicy.PolicyRule.PolicyConditionB\x03\xe0\x41\x01\x12\x46\n\x06\x61\x63tion\x18\x05 \x01(\x0b\x32\x31.google.privacy.dlp.v2.ContentPolicy.PolicyActionB\x03\xe0\x41\x02\x1a\xa4\x03\n\x0fPolicyCondition\x12p\n\x13info_type_condition\x18\x01 \x01(\x0b\x32Q.google.privacy.dlp.v2.ContentPolicy.PolicyRule.PolicyCondition.InfoTypeConditionH\x00\x1a\x91\x02\n\x11InfoTypeCondition\x12\x16\n\tmin_count\x18\x03 \x01(\x03\x42\x03\xe0\x41\x01\x12q\n\ninfo_types\x18\x01 \x01(\x0b\x32[.google.privacy.dlp.v2.ContentPolicy.PolicyRule.PolicyCondition.InfoTypeCondition.InfoTypesH\x00\x12/\n\rany_info_type\x18\x02 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x1a)\n\tInfoTypes\x12\x1c\n\x0finfo_type_names\x18\x01 \x03(\tB\x03\xe0\x41\x02\x42\x15\n\x13info_type_conditionB\x0b\n\tcondition\x1a\xdb\x01\n\rLoggingConfig\x12\x61\n\x10log_to_big_query\x18\x01 \x01(\x0b\x32@.google.privacy.dlp.v2.ContentPolicy.LoggingConfig.LogToBigQueryB\x03\xe0\x41\x01H\x00\x1aX\n\rLogToBigQuery\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\ndataset_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08table_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b\x64\x65stination:o\xea\x41l\n dlp.googleapis.com/ContentPolicy\x12Hprojects/{project}/locations/{location}/contentPolicies/{content_policy}*T\n\x14\x43ontentPolicyVerdict\x12&\n\"CONTENT_POLICY_VERDICT_UNSPECIFIED\x10\x00\x12\t\n\x05\x41LLOW\x10\x01\x12\t\n\x05\x42LOCK\x10\x02*\xa0\x01\n\x1eTransformationResultStatusType\x12\x1a\n\x16STATE_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11INVALID_TRANSFORM\x10\x01\x12\"\n\x1e\x42IGQUERY_MAX_ROW_SIZE_EXCEEDED\x10\x02\x12\x1a\n\x16METADATA_UNRETRIEVABLE\x10\x03\x12\x0b\n\x07SUCCESS\x10\x04*\x7f\n\x1bTransformationContainerType\x12\x1f\n\x1bTRANSFORM_UNKNOWN_CONTAINER\x10\x00\x12\x12\n\x0eTRANSFORM_BODY\x10\x01\x12\x16\n\x12TRANSFORM_METADATA\x10\x02\x12\x13\n\x0fTRANSFORM_TABLE\x10\x03*\xe0\x02\n\x12TransformationType\x12#\n\x1fTRANSFORMATION_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12RECORD_SUPPRESSION\x10\x01\x12\x11\n\rREPLACE_VALUE\x10\x02\x12\x16\n\x12REPLACE_DICTIONARY\x10\x0f\x12\n\n\x06REDACT\x10\x03\x12\x12\n\x0e\x43HARACTER_MASK\x10\x04\x12\x1a\n\x16\x43RYPTO_REPLACE_FFX_FPE\x10\x05\x12\x18\n\x14\x46IXED_SIZE_BUCKETING\x10\x06\x12\r\n\tBUCKETING\x10\x07\x12\x1a\n\x16REPLACE_WITH_INFO_TYPE\x10\x08\x12\r\n\tTIME_PART\x10\t\x12\x0f\n\x0b\x43RYPTO_HASH\x10\n\x12\x0e\n\nDATE_SHIFT\x10\x0c\x12\x1f\n\x1b\x43RYPTO_DETERMINISTIC_CONFIG\x10\r\x12\x10\n\x0cREDACT_IMAGE\x10\x0e*r\n\x11ProfileGeneration\x12\"\n\x1ePROFILE_GENERATION_UNSPECIFIED\x10\x00\x12\x1a\n\x16PROFILE_GENERATION_NEW\x10\x01\x12\x1d\n\x19PROFILE_GENERATION_UPDATE\x10\x02*\x96\x01\n\x1b\x42igQueryTableTypeCollection\x12$\n BIG_QUERY_COLLECTION_UNSPECIFIED\x10\x00\x12\"\n\x1e\x42IG_QUERY_COLLECTION_ALL_TYPES\x10\x01\x12-\n)BIG_QUERY_COLLECTION_ONLY_SUPPORTED_TYPES\x10\x02*\xa8\x01\n\x11\x42igQueryTableType\x12$\n BIG_QUERY_TABLE_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x42IG_QUERY_TABLE_TYPE_TABLE\x10\x01\x12*\n&BIG_QUERY_TABLE_TYPE_EXTERNAL_BIG_LAKE\x10\x02\x12!\n\x1d\x42IG_QUERY_TABLE_TYPE_SNAPSHOT\x10\x03*\x94\x01\n\x1a\x44\x61taProfileUpdateFrequency\x12 \n\x1cUPDATE_FREQUENCY_UNSPECIFIED\x10\x00\x12\x1a\n\x16UPDATE_FREQUENCY_NEVER\x10\x01\x12\x1a\n\x16UPDATE_FREQUENCY_DAILY\x10\x02\x12\x1c\n\x18UPDATE_FREQUENCY_MONTHLY\x10\x04*]\n\x19\x42igQueryTableModification\x12\"\n\x1eTABLE_MODIFICATION_UNSPECIFIED\x10\x00\x12\x1c\n\x18TABLE_MODIFIED_TIMESTAMP\x10\x01*u\n\x1a\x42igQuerySchemaModification\x12#\n\x1fSCHEMA_MODIFICATION_UNSPECIFIED\x10\x00\x12\x16\n\x12SCHEMA_NEW_COLUMNS\x10\x01\x12\x1a\n\x16SCHEMA_REMOVED_COLUMNS\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*\xae\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\x12\x1f\n\x1bMATCHING_TYPE_RULE_SPECIFIC\x10\x04*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*v\n\x0cMetadataType\x12\x1c\n\x18METADATATYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10STORAGE_METADATA\x10\x02\x12\x14\n\x10\x43ONTENT_METADATA\x10\x03\x12\x1c\n\x18\x43LIENT_PROVIDED_METADATA\x10\x04*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*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*\xa3\x01\n\x12ResourceVisibility\x12#\n\x1fRESOURCE_VISIBILITY_UNSPECIFIED\x10\x00\x12\x1e\n\x1aRESOURCE_VISIBILITY_PUBLIC\x10\n\x12$\n RESOURCE_VISIBILITY_INCONCLUSIVE\x10\x0f\x12\"\n\x1eRESOURCE_VISIBILITY_RESTRICTED\x10\x14*u\n\x10\x45ncryptionStatus\x12!\n\x1d\x45NCRYPTION_STATUS_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x45NCRYPTION_GOOGLE_MANAGED\x10\x01\x12\x1f\n\x1b\x45NCRYPTION_CUSTOMER_MANAGED\x10\x02*\xa9\x01\n\x13NullPercentageLevel\x12%\n!NULL_PERCENTAGE_LEVEL_UNSPECIFIED\x10\x00\x12\x1c\n\x18NULL_PERCENTAGE_VERY_LOW\x10\x01\x12\x17\n\x13NULL_PERCENTAGE_LOW\x10\x02\x12\x1a\n\x16NULL_PERCENTAGE_MEDIUM\x10\x03\x12\x18\n\x14NULL_PERCENTAGE_HIGH\x10\x04*\x90\x01\n\x14UniquenessScoreLevel\x12&\n\"UNIQUENESS_SCORE_LEVEL_UNSPECIFIED\x10\x00\x12\x18\n\x14UNIQUENESS_SCORE_LOW\x10\x01\x12\x1b\n\x17UNIQUENESS_SCORE_MEDIUM\x10\x02\x12\x19\n\x15UNIQUENESS_SCORE_HIGH\x10\x03*f\n\x0f\x43onnectionState\x12 \n\x1c\x43ONNECTION_STATE_UNSPECIFIED\x10\x00\x12\x17\n\x13MISSING_CREDENTIALS\x10\x01\x12\r\n\tAVAILABLE\x10\x02\x12\t\n\x05\x45RROR\x10\x03\x32\x97~\n\nDlpService\x12\xdb\x01\n\x0eInspectContent\x12,.google.privacy.dlp.v2.InspectContentRequest\x1a-.google.privacy.dlp.v2.InspectContentResponse\"l\x82\xd3\xe4\x93\x02\x66\"\'/v2/{parent=projects/*}/content:inspect:\x01*Z8\"3/v2/{parent=projects/*/locations/*}/content:inspect:\x01*\x12\xcc\x01\n\x0bRedactImage\x12).google.privacy.dlp.v2.RedactImageRequest\x1a*.google.privacy.dlp.v2.RedactImageResponse\"f\x82\xd3\xe4\x93\x02`\"$/v2/{parent=projects/*}/image:redact:\x01*Z5\"0/v2/{parent=projects/*/locations/*}/image:redact:\x01*\x12\xea\x01\n\x11\x44\x65identifyContent\x12/.google.privacy.dlp.v2.DeidentifyContentRequest\x1a\x30.google.privacy.dlp.v2.DeidentifyContentResponse\"r\x82\xd3\xe4\x93\x02l\"*/v2/{parent=projects/*}/content:deidentify:\x01*Z;\"6/v2/{parent=projects/*/locations/*}/content:deidentify:\x01*\x12\xea\x01\n\x11ReidentifyContent\x12/.google.privacy.dlp.v2.ReidentifyContentRequest\x1a\x30.google.privacy.dlp.v2.ReidentifyContentResponse\"r\x82\xd3\xe4\x93\x02l\"*/v2/{parent=projects/*}/content:reidentify:\x01*Z;\"6/v2/{parent=projects/*/locations/*}/content:reidentify:\x01*\x12\x99\x02\n\rListInfoTypes\x12+.google.privacy.dlp.v2.ListInfoTypesRequest\x1a,.google.privacy.dlp.v2.ListInfoTypesResponse\"\xac\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x9c\x01\x12\r/v2/infoTypesZ$\x12\"/v2/{parent=locations/*}/infoTypesZ/\x12-/v2/{parent=projects/*/locations/*}/infoTypesZ4\x12\x32/v2/{parent=organizations/*/locations/*}/infoTypes\x12\xf4\x02\n\x15\x43reateInspectTemplate\x12\x33.google.privacy.dlp.v2.CreateInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate\"\xfd\x01\xda\x41\x17parent,inspect_template\x82\xd3\xe4\x93\x02\xdc\x01\"4/v2/{parent=projects/*/locations/*}/inspectTemplates:\x01*Z>\"9/v2/{parent=organizations/*/locations/*}/inspectTemplates:\x01*Z-\"(/v2/{parent=projects/*}/inspectTemplates:\x01*Z2\"-/v2/{parent=organizations/*}/inspectTemplates:\x01*\x12\xfe\x02\n\x15UpdateInspectTemplate\x12\x33.google.privacy.dlp.v2.UpdateInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate\"\x87\x02\xda\x41!name,inspect_template,update_mask\x82\xd3\xe4\x93\x02\xdc\x01\x32\x34/v2/{name=projects/*/locations/*/inspectTemplates/*}:\x01*Z>29/v2/{name=organizations/*/locations/*/inspectTemplates/*}:\x01*Z-2(/v2/{name=projects/*/inspectTemplates/*}:\x01*Z22-/v2/{name=organizations/*/inspectTemplates/*}:\x01*\x12\xcf\x02\n\x12GetInspectTemplate\x12\x30.google.privacy.dlp.v2.GetInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate\"\xde\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02\xd0\x01\x12\x34/v2/{name=projects/*/locations/*/inspectTemplates/*}Z;\x12\x39/v2/{name=organizations/*/locations/*/inspectTemplates/*}Z*\x12(/v2/{name=projects/*/inspectTemplates/*}Z/\x12-/v2/{name=organizations/*/inspectTemplates/*}\x12\xe2\x02\n\x14ListInspectTemplates\x12\x32.google.privacy.dlp.v2.ListInspectTemplatesRequest\x1a\x33.google.privacy.dlp.v2.ListInspectTemplatesResponse\"\xe0\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\xd0\x01\x12\x34/v2/{parent=projects/*/locations/*}/inspectTemplatesZ;\x12\x39/v2/{parent=organizations/*/locations/*}/inspectTemplatesZ*\x12(/v2/{parent=projects/*}/inspectTemplatesZ/\x12-/v2/{parent=organizations/*}/inspectTemplates\x12\xc5\x02\n\x15\x44\x65leteInspectTemplate\x12\x33.google.privacy.dlp.v2.DeleteInspectTemplateRequest\x1a\x16.google.protobuf.Empty\"\xde\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02\xd0\x01*4/v2/{name=projects/*/locations/*/inspectTemplates/*}Z;*9/v2/{name=organizations/*/locations/*/inspectTemplates/*}Z**(/v2/{name=projects/*/inspectTemplates/*}Z/*-/v2/{name=organizations/*/inspectTemplates/*}\x12\x8c\x03\n\x18\x43reateDeidentifyTemplate\x12\x36.google.privacy.dlp.v2.CreateDeidentifyTemplateRequest\x1a).google.privacy.dlp.v2.DeidentifyTemplate\"\x8c\x02\xda\x41\x1aparent,deidentify_template\x82\xd3\xe4\x93\x02\xe8\x01\"0/v2/{parent=organizations/*}/deidentifyTemplates:\x01*ZA\"\x12\x12*\"9/v2/{parent=organizations/*/locations/*}/discoveryConfigs:\x01*\x12\x9a\x02\n\x15UpdateDiscoveryConfig\x12\x33.google.privacy.dlp.v2.UpdateDiscoveryConfigRequest\x1a&.google.privacy.dlp.v2.DiscoveryConfig\"\xa3\x01\xda\x41!name,discovery_config,update_mask\x82\xd3\xe4\x93\x02y24/v2/{name=projects/*/locations/*/discoveryConfigs/*}:\x01*Z>29/v2/{name=organizations/*/locations/*/discoveryConfigs/*}:\x01*\x12\xf1\x01\n\x12GetDiscoveryConfig\x12\x30.google.privacy.dlp.v2.GetDiscoveryConfigRequest\x1a&.google.privacy.dlp.v2.DiscoveryConfig\"\x80\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02s\x12\x34/v2/{name=projects/*/locations/*/discoveryConfigs/*}Z;\x12\x39/v2/{name=organizations/*/locations/*/discoveryConfigs/*}\x12\x84\x02\n\x14ListDiscoveryConfigs\x12\x32.google.privacy.dlp.v2.ListDiscoveryConfigsRequest\x1a\x33.google.privacy.dlp.v2.ListDiscoveryConfigsResponse\"\x82\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02s\x12\x34/v2/{parent=projects/*/locations/*}/discoveryConfigsZ;\x12\x39/v2/{parent=organizations/*/locations/*}/discoveryConfigs\x12\xe7\x01\n\x15\x44\x65leteDiscoveryConfig\x12\x33.google.privacy.dlp.v2.DeleteDiscoveryConfigRequest\x1a\x16.google.protobuf.Empty\"\x80\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02s*4/v2/{name=projects/*/locations/*/discoveryConfigs/*}Z;*9/v2/{name=organizations/*/locations/*/discoveryConfigs/*}\x12\xdf\x01\n\x0c\x43reateDlpJob\x12*.google.privacy.dlp.v2.CreateDlpJobRequest\x1a\x1d.google.privacy.dlp.v2.DlpJob\"\x83\x01\xda\x41\x12parent,inspect_job\xda\x41\x0fparent,risk_job\x82\xd3\xe4\x93\x02V\"\x1f/v2/{parent=projects/*}/dlpJobs:\x01*Z0\"+/v2/{parent=projects/*/locations/*}/dlpJobs:\x01*\x12\xfb\x01\n\x0bListDlpJobs\x12).google.privacy.dlp.v2.ListDlpJobsRequest\x1a*.google.privacy.dlp.v2.ListDlpJobsResponse\"\x94\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x84\x01\x12\x1f/v2/{parent=projects/*}/dlpJobsZ-\x12+/v2/{parent=projects/*/locations/*}/dlpJobsZ2\x12\x30/v2/{parent=organizations/*/locations/*}/dlpJobs\x12\xb2\x01\n\tGetDlpJob\x12\'.google.privacy.dlp.v2.GetDlpJobRequest\x1a\x1d.google.privacy.dlp.v2.DlpJob\"]\xda\x41\x04name\x82\xd3\xe4\x93\x02P\x12\x1f/v2/{name=projects/*/dlpJobs/*}Z-\x12+/v2/{name=projects/*/locations/*/dlpJobs/*}\x12\xb1\x01\n\x0c\x44\x65leteDlpJob\x12*.google.privacy.dlp.v2.DeleteDlpJobRequest\x1a\x16.google.protobuf.Empty\"]\xda\x41\x04name\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\xe3\x02\n\x14\x43reateStoredInfoType\x12\x32.google.privacy.dlp.v2.CreateStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType\"\xef\x01\xda\x41\rparent,config\x82\xd3\xe4\x93\x02\xd8\x01\",/v2/{parent=organizations/*}/storedInfoTypes:\x01*Z=\"8/v2/{parent=organizations/*/locations/*}/storedInfoTypes:\x01*Z,\"\'/v2/{parent=projects/*}/storedInfoTypes:\x01*Z8\"3/v2/{parent=projects/*/locations/*}/storedInfoTypes:\x01*\x12\xed\x02\n\x14UpdateStoredInfoType\x12\x32.google.privacy.dlp.v2.UpdateStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType\"\xf9\x01\xda\x41\x17name,config,update_mask\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\xc8\x02\n\x11GetStoredInfoType\x12/.google.privacy.dlp.v2.GetStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType\"\xda\x01\xda\x41\x04name\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\xdb\x02\n\x13ListStoredInfoTypes\x12\x31.google.privacy.dlp.v2.ListStoredInfoTypesRequest\x1a\x32.google.privacy.dlp.v2.ListStoredInfoTypesResponse\"\xdc\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\xcc\x01\x12,/v2/{parent=organizations/*}/storedInfoTypesZ:\x12\x38/v2/{parent=organizations/*/locations/*}/storedInfoTypesZ)\x12\'/v2/{parent=projects/*}/storedInfoTypesZ5\x12\x33/v2/{parent=projects/*/locations/*}/storedInfoTypes\x12\xbf\x02\n\x14\x44\x65leteStoredInfoType\x12\x32.google.privacy.dlp.v2.DeleteStoredInfoTypeRequest\x1a\x16.google.protobuf.Empty\"\xda\x01\xda\x41\x04name\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/*}\x12\x93\x02\n\x17ListProjectDataProfiles\x12\x35.google.privacy.dlp.v2.ListProjectDataProfilesRequest\x1a\x36.google.privacy.dlp.v2.ListProjectDataProfilesResponse\"\x88\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02y\x12/v2/{parent=organizations/*/locations/*}/fileStoreDataProfilesZ;\x12\x39/v2/{parent=projects/*/locations/*}/fileStoreDataProfiles\x12\x8a\x02\n\x17GetFileStoreDataProfile\x12\x35.google.privacy.dlp.v2.GetFileStoreDataProfileRequest\x1a+.google.privacy.dlp.v2.FileStoreDataProfile\"\x8a\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02}\x12>/v2/{name=organizations/*/locations/*/fileStoreDataProfiles/*}Z;\x12\x39/v2/{name=projects/*/locations/*/fileStoreDataProfiles/*}\x12\xfb\x01\n\x1a\x44\x65leteFileStoreDataProfile\x12\x38.google.privacy.dlp.v2.DeleteFileStoreDataProfileRequest\x1a\x16.google.protobuf.Empty\"\x8a\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02}*>/v2/{name=organizations/*/locations/*/fileStoreDataProfiles/*}Z;*9/v2/{name=projects/*/locations/*/fileStoreDataProfiles/*}\x12\xf6\x01\n\x13GetTableDataProfile\x12\x31.google.privacy.dlp.v2.GetTableDataProfileRequest\x1a\'.google.privacy.dlp.v2.TableDataProfile\"\x82\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02u\x12:/v2/{name=organizations/*/locations/*/tableDataProfiles/*}Z7\x12\x35/v2/{name=projects/*/locations/*/tableDataProfiles/*}\x12\xfb\x01\n\x14GetColumnDataProfile\x12\x32.google.privacy.dlp.v2.GetColumnDataProfileRequest\x1a(.google.privacy.dlp.v2.ColumnDataProfile\"\x84\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02w\x12;/v2/{name=organizations/*/locations/*/columnDataProfiles/*}Z8\x12\x36/v2/{name=projects/*/locations/*/columnDataProfiles/*}\x12\xeb\x01\n\x16\x44\x65leteTableDataProfile\x12\x34.google.privacy.dlp.v2.DeleteTableDataProfileRequest\x1a\x16.google.protobuf.Empty\"\x82\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02u*:/v2/{name=organizations/*/locations/*/tableDataProfiles/*}Z7*5/v2/{name=projects/*/locations/*/tableDataProfiles/*}\x12\xc3\x01\n\x13HybridInspectDlpJob\x12\x31.google.privacy.dlp.v2.HybridInspectDlpJobRequest\x1a,.google.privacy.dlp.v2.HybridInspectResponse\"K\xda\x41\x04name\x82\xd3\xe4\x93\x02>\"9/v2/{name=projects/*/locations/*/dlpJobs/*}:hybridInspect:\x01*\x12\x91\x01\n\x0c\x46inishDlpJob\x12*.google.privacy.dlp.v2.FinishDlpJobRequest\x1a\x16.google.protobuf.Empty\"=\x82\xd3\xe4\x93\x02\x37\"2/v2/{name=projects/*/locations/*/dlpJobs/*}:finish:\x01*\x12\xf2\x01\n\x10\x43reateConnection\x12..google.privacy.dlp.v2.CreateConnectionRequest\x1a!.google.privacy.dlp.v2.Connection\"\x8a\x01\xda\x41\x12parent, connection\x82\xd3\xe4\x93\x02o\"//v2/{parent=projects/*/locations/*}/connections:\x01*Z9\"4/v2/{parent=organizations/*/locations/*}/connections:\x01*\x12\xd7\x01\n\rGetConnection\x12+.google.privacy.dlp.v2.GetConnectionRequest\x1a!.google.privacy.dlp.v2.Connection\"v\xda\x41\x04name\x82\xd3\xe4\x93\x02i\x12//v2/{name=projects/*/locations/*/connections/*}Z6\x12\x34/v2/{name=organizations/*/locations/*/connections/*}\x12\xea\x01\n\x0fListConnections\x12-.google.privacy.dlp.v2.ListConnectionsRequest\x1a..google.privacy.dlp.v2.ListConnectionsResponse\"x\xda\x41\x06parent\x82\xd3\xe4\x93\x02i\x12//v2/{parent=projects/*/locations/*}/connectionsZ6\x12\x34/v2/{parent=organizations/*/locations/*}/connections\x12\xff\x01\n\x11SearchConnections\x12/.google.privacy.dlp.v2.SearchConnectionsRequest\x1a\x30.google.privacy.dlp.v2.SearchConnectionsResponse\"\x86\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02w\x12\x36/v2/{parent=projects/*/locations/*}/connections:searchZ=\x12;/v2/{parent=organizations/*/locations/*}/connections:search\x12\xd2\x01\n\x10\x44\x65leteConnection\x12..google.privacy.dlp.v2.DeleteConnectionRequest\x1a\x16.google.protobuf.Empty\"v\xda\x41\x04name\x82\xd3\xe4\x93\x02i*//v2/{name=projects/*/locations/*/connections/*}Z6*4/v2/{name=organizations/*/locations/*/connections/*}\x12\xe3\x01\n\x10UpdateConnection\x12..google.privacy.dlp.v2.UpdateConnectionRequest\x1a!.google.privacy.dlp.v2.Connection\"|\xda\x41\x04name\x82\xd3\xe4\x93\x02o2//v2/{name=projects/*/locations/*/connections/*}:\x01*Z924/v2/{name=organizations/*/locations/*/connections/*}:\x01*\x12\xc7\x01\n\x13\x43reateContentPolicy\x12\x31.google.privacy.dlp.v2.CreateContentPolicyRequest\x1a$.google.privacy.dlp.v2.ContentPolicy\"W\xda\x41\x16parent, content_policy\x82\xd3\xe4\x93\x02\x38\"3/v2/{parent=projects/*/locations/*}/contentPolicies:\x01*\x12\xd2\x01\n\x13UpdateContentPolicy\x12\x31.google.privacy.dlp.v2.UpdateContentPolicyRequest\x1a$.google.privacy.dlp.v2.ContentPolicy\"b\xda\x41!name, content_policy, update_mask\x82\xd3\xe4\x93\x02\x38\x32\x33/v2/{name=projects/*/locations/*/contentPolicies/*}:\x01*\x12\xac\x01\n\x10GetContentPolicy\x12..google.privacy.dlp.v2.GetContentPolicyRequest\x1a$.google.privacy.dlp.v2.ContentPolicy\"B\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35\x12\x33/v2/{name=projects/*/locations/*/contentPolicies/*}\x12\xc2\x01\n\x13ListContentPolicies\x12\x31.google.privacy.dlp.v2.ListContentPoliciesRequest\x1a\x32.google.privacy.dlp.v2.ListContentPoliciesResponse\"D\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x35\x12\x33/v2/{parent=projects/*/locations/*}/contentPolicies\x12\xa4\x01\n\x13\x44\x65leteContentPolicy\x12\x31.google.privacy.dlp.v2.DeleteContentPolicyRequest\x1a\x16.google.protobuf.Empty\"B\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35*3/v2/{name=projects/*/locations/*/contentPolicies/*}\x1a\x46\xca\x41\x12\x64lp.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xeb\x02\n\x19\x63om.google.privacy.dlp.v2B\x08\x44lpProtoP\x01Z)cloud.google.com/go/dlp/apiv2/dlppb;dlppb\xaa\x02\x13Google.Cloud.Dlp.V2\xca\x02\x13Google\\Cloud\\Dlp\\V2\xea\x02\x16Google::Cloud::Dlp::V2\xea\x41r\n\x1d\x64lp.googleapis.com/DlpContent\x12\x1dprojects/{project}/dlpContent\x12\x32projects/{project}/locations/{location}/dlpContent\xea\x41\\\n\'dlp.googleapis.com/OrganizationLocation\x12\x31organizations/{organization}/locations/{location}b\x06proto3" pool = ::Google::Protobuf::DescriptorPool.generated_pool pool.add_serialized_file(descriptor_data) @@ -53,6 +53,10 @@ module V2 Table = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.Table").msgclass Table::Row = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.Table.Row").msgclass KeyValueMetadataProperty = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.KeyValueMetadataProperty").msgclass + FileLabel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.FileLabel").msgclass + FileLabel::SensitivityLabelMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.FileLabel.SensitivityLabelMetadata").msgclass + FileLabel::GoogleDriveLabelMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.FileLabel.GoogleDriveLabelMetadata").msgclass + FileLabel::GoogleDriveLabelMetadata::LabelFieldMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.FileLabel.GoogleDriveLabelMetadata.LabelFieldMetadata").msgclass InspectResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.InspectResult").msgclass Finding = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.Finding").msgclass Location = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.Location").msgclass @@ -419,6 +423,21 @@ module V2 Domain = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.Domain").msgclass Domain::Category = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.Domain.Category").enummodule Domain::Signal = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.Domain.Signal").enummodule + CreateContentPolicyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.CreateContentPolicyRequest").msgclass + GetContentPolicyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.GetContentPolicyRequest").msgclass + ListContentPoliciesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ListContentPoliciesRequest").msgclass + ListContentPoliciesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ListContentPoliciesResponse").msgclass + UpdateContentPolicyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.UpdateContentPolicyRequest").msgclass + DeleteContentPolicyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.DeleteContentPolicyRequest").msgclass + ContentPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ContentPolicy").msgclass + ContentPolicy::PolicyAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ContentPolicy.PolicyAction").msgclass + ContentPolicy::PolicyRule = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ContentPolicy.PolicyRule").msgclass + ContentPolicy::PolicyRule::PolicyCondition = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ContentPolicy.PolicyRule.PolicyCondition").msgclass + ContentPolicy::PolicyRule::PolicyCondition::InfoTypeCondition = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ContentPolicy.PolicyRule.PolicyCondition.InfoTypeCondition").msgclass + ContentPolicy::PolicyRule::PolicyCondition::InfoTypeCondition::InfoTypes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ContentPolicy.PolicyRule.PolicyCondition.InfoTypeCondition.InfoTypes").msgclass + ContentPolicy::LoggingConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ContentPolicy.LoggingConfig").msgclass + ContentPolicy::LoggingConfig::LogToBigQuery = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ContentPolicy.LoggingConfig.LogToBigQuery").msgclass + ContentPolicyVerdict = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ContentPolicyVerdict").enummodule TransformationResultStatusType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.TransformationResultStatusType").enummodule TransformationContainerType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.TransformationContainerType").enummodule TransformationType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.TransformationType").enummodule diff --git a/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/dlp_services_pb.rb b/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/dlp_services_pb.rb index 4d81407a5dee..3aff40e0d857 100644 --- a/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/dlp_services_pb.rb +++ b/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/dlp_services_pb.rb @@ -28,7 +28,7 @@ module DlpService # inspection, classification, and de-identification platform that works # on text, images, and Google Cloud storage repositories. # To learn more about concepts and find how-to guides see - # https://cloud.google.com/sensitive-data-protection/docs/. + # https://docs.cloud.google.com/sensitive-data-protection/docs/. class Service include ::GRPC::GenericService @@ -45,14 +45,14 @@ class Service # be all types, but may change over time as detectors are updated. # # For how to guides, see - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-images + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-images # and - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-text, + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-text, rpc :InspectContent, ::Google::Cloud::Dlp::V2::InspectContentRequest, ::Google::Cloud::Dlp::V2::InspectContentResponse # Redacts potentially sensitive info from an image. # This method has limits on input size, processing time, and output size. # See - # https://cloud.google.com/sensitive-data-protection/docs/redacting-sensitive-data-images + # https://docs.cloud.google.com/sensitive-data-protection/docs/redacting-sensitive-data-images # to learn more. # # When no InfoTypes or CustomInfoTypes are specified in this request, the @@ -65,7 +65,7 @@ class Service # De-identifies potentially sensitive info from a ContentItem. # This method has limits on input size and output size. # See - # https://cloud.google.com/sensitive-data-protection/docs/deidentify-sensitive-data + # https://docs.cloud.google.com/sensitive-data-protection/docs/deidentify-sensitive-data # to learn more. # # When no InfoTypes or CustomInfoTypes are specified in this request, the @@ -74,75 +74,75 @@ class Service rpc :DeidentifyContent, ::Google::Cloud::Dlp::V2::DeidentifyContentRequest, ::Google::Cloud::Dlp::V2::DeidentifyContentResponse # Re-identifies content that has been de-identified. # See - # https://cloud.google.com/sensitive-data-protection/docs/pseudonymization#re-identification_in_free_text_code_example + # https://docs.cloud.google.com/sensitive-data-protection/docs/pseudonymization#re-identification_in_free_text_code_example # to learn more. rpc :ReidentifyContent, ::Google::Cloud::Dlp::V2::ReidentifyContentRequest, ::Google::Cloud::Dlp::V2::ReidentifyContentResponse # Returns a list of the sensitive information types that the DLP API # supports. See - # https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference + # https://docs.cloud.google.com/sensitive-data-protection/docs/infotypes-reference # to learn more. rpc :ListInfoTypes, ::Google::Cloud::Dlp::V2::ListInfoTypesRequest, ::Google::Cloud::Dlp::V2::ListInfoTypesResponse # Creates an InspectTemplate for reusing frequently used configuration # for inspecting content, images, and storage. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. rpc :CreateInspectTemplate, ::Google::Cloud::Dlp::V2::CreateInspectTemplateRequest, ::Google::Cloud::Dlp::V2::InspectTemplate # Updates the InspectTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. rpc :UpdateInspectTemplate, ::Google::Cloud::Dlp::V2::UpdateInspectTemplateRequest, ::Google::Cloud::Dlp::V2::InspectTemplate # Gets an InspectTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. rpc :GetInspectTemplate, ::Google::Cloud::Dlp::V2::GetInspectTemplateRequest, ::Google::Cloud::Dlp::V2::InspectTemplate # Lists InspectTemplates. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. rpc :ListInspectTemplates, ::Google::Cloud::Dlp::V2::ListInspectTemplatesRequest, ::Google::Cloud::Dlp::V2::ListInspectTemplatesResponse # Deletes an InspectTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates # to learn more. rpc :DeleteInspectTemplate, ::Google::Cloud::Dlp::V2::DeleteInspectTemplateRequest, ::Google::Protobuf::Empty # Creates a DeidentifyTemplate for reusing frequently used configuration # for de-identifying content, images, and storage. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. rpc :CreateDeidentifyTemplate, ::Google::Cloud::Dlp::V2::CreateDeidentifyTemplateRequest, ::Google::Cloud::Dlp::V2::DeidentifyTemplate # Updates the DeidentifyTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. rpc :UpdateDeidentifyTemplate, ::Google::Cloud::Dlp::V2::UpdateDeidentifyTemplateRequest, ::Google::Cloud::Dlp::V2::DeidentifyTemplate # Gets a DeidentifyTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. rpc :GetDeidentifyTemplate, ::Google::Cloud::Dlp::V2::GetDeidentifyTemplateRequest, ::Google::Cloud::Dlp::V2::DeidentifyTemplate # Lists DeidentifyTemplates. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. rpc :ListDeidentifyTemplates, ::Google::Cloud::Dlp::V2::ListDeidentifyTemplatesRequest, ::Google::Cloud::Dlp::V2::ListDeidentifyTemplatesResponse # Deletes a DeidentifyTemplate. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-templates-deid # to learn more. rpc :DeleteDeidentifyTemplate, ::Google::Cloud::Dlp::V2::DeleteDeidentifyTemplateRequest, ::Google::Protobuf::Empty # Creates a job trigger to run DLP actions such as scanning storage for # sensitive information on a set schedule. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. rpc :CreateJobTrigger, ::Google::Cloud::Dlp::V2::CreateJobTriggerRequest, ::Google::Cloud::Dlp::V2::JobTrigger # Updates a job trigger. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. rpc :UpdateJobTrigger, ::Google::Cloud::Dlp::V2::UpdateJobTriggerRequest, ::Google::Cloud::Dlp::V2::JobTrigger # Inspect hybrid content and store findings to a trigger. The inspection @@ -151,17 +151,17 @@ class Service rpc :HybridInspectJobTrigger, ::Google::Cloud::Dlp::V2::HybridInspectJobTriggerRequest, ::Google::Cloud::Dlp::V2::HybridInspectResponse # Gets a job trigger. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. rpc :GetJobTrigger, ::Google::Cloud::Dlp::V2::GetJobTriggerRequest, ::Google::Cloud::Dlp::V2::JobTrigger # Lists job triggers. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. rpc :ListJobTriggers, ::Google::Cloud::Dlp::V2::ListJobTriggersRequest, ::Google::Cloud::Dlp::V2::ListJobTriggersResponse # Deletes a job trigger. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-job-triggers # to learn more. rpc :DeleteJobTrigger, ::Google::Cloud::Dlp::V2::DeleteJobTriggerRequest, ::Google::Protobuf::Empty # Activate a job trigger. Causes the immediate execute of a trigger @@ -179,9 +179,9 @@ class Service rpc :DeleteDiscoveryConfig, ::Google::Cloud::Dlp::V2::DeleteDiscoveryConfigRequest, ::Google::Protobuf::Empty # Creates a new job to inspect storage or calculate risk metrics. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. # # When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the @@ -190,60 +190,60 @@ class Service rpc :CreateDlpJob, ::Google::Cloud::Dlp::V2::CreateDlpJobRequest, ::Google::Cloud::Dlp::V2::DlpJob # Lists DlpJobs that match the specified filter in the request. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. rpc :ListDlpJobs, ::Google::Cloud::Dlp::V2::ListDlpJobsRequest, ::Google::Cloud::Dlp::V2::ListDlpJobsResponse # Gets the latest state of a long-running DlpJob. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. rpc :GetDlpJob, ::Google::Cloud::Dlp::V2::GetDlpJobRequest, ::Google::Cloud::Dlp::V2::DlpJob # Deletes a long-running DlpJob. This method indicates that the client is # no longer interested in the DlpJob result. The job will be canceled if # possible. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. rpc :DeleteDlpJob, ::Google::Cloud::Dlp::V2::DeleteDlpJobRequest, ::Google::Protobuf::Empty # Starts asynchronous cancellation on a long-running DlpJob. The server # makes a best effort to cancel the DlpJob, but success is not # guaranteed. # See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-storage # and - # https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis # to learn more. rpc :CancelDlpJob, ::Google::Cloud::Dlp::V2::CancelDlpJobRequest, ::Google::Protobuf::Empty # Creates a pre-built stored infoType to be used for inspection. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. rpc :CreateStoredInfoType, ::Google::Cloud::Dlp::V2::CreateStoredInfoTypeRequest, ::Google::Cloud::Dlp::V2::StoredInfoType # Updates the stored infoType by creating a new version. The existing version # will continue to be used until the new version is ready. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. rpc :UpdateStoredInfoType, ::Google::Cloud::Dlp::V2::UpdateStoredInfoTypeRequest, ::Google::Cloud::Dlp::V2::StoredInfoType # Gets a stored infoType. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. rpc :GetStoredInfoType, ::Google::Cloud::Dlp::V2::GetStoredInfoTypeRequest, ::Google::Cloud::Dlp::V2::StoredInfoType # Lists stored infoTypes. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. rpc :ListStoredInfoTypes, ::Google::Cloud::Dlp::V2::ListStoredInfoTypesRequest, ::Google::Cloud::Dlp::V2::ListStoredInfoTypesResponse # Deletes a stored infoType. # See - # https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes # to learn more. rpc :DeleteStoredInfoType, ::Google::Cloud::Dlp::V2::DeleteStoredInfoTypeRequest, ::Google::Protobuf::Empty # Lists project data profiles for an organization. @@ -288,6 +288,16 @@ class Service rpc :DeleteConnection, ::Google::Cloud::Dlp::V2::DeleteConnectionRequest, ::Google::Protobuf::Empty # Update a Connection. rpc :UpdateConnection, ::Google::Cloud::Dlp::V2::UpdateConnectionRequest, ::Google::Cloud::Dlp::V2::Connection + # Create a ContentPolicy. + rpc :CreateContentPolicy, ::Google::Cloud::Dlp::V2::CreateContentPolicyRequest, ::Google::Cloud::Dlp::V2::ContentPolicy + # Update a ContentPolicy. + rpc :UpdateContentPolicy, ::Google::Cloud::Dlp::V2::UpdateContentPolicyRequest, ::Google::Cloud::Dlp::V2::ContentPolicy + # Get a ContentPolicy. + rpc :GetContentPolicy, ::Google::Cloud::Dlp::V2::GetContentPolicyRequest, ::Google::Cloud::Dlp::V2::ContentPolicy + # Lists ContentPolicies in a parent. + rpc :ListContentPolicies, ::Google::Cloud::Dlp::V2::ListContentPoliciesRequest, ::Google::Cloud::Dlp::V2::ListContentPoliciesResponse + # Delete a ContentPolicy. + rpc :DeleteContentPolicy, ::Google::Cloud::Dlp::V2::DeleteContentPolicyRequest, ::Google::Protobuf::Empty end Stub = Service.rpc_stub_class diff --git a/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/storage_pb.rb b/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/storage_pb.rb index 963b76bbd524..84cdd461b658 100644 --- a/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/storage_pb.rb +++ b/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/storage_pb.rb @@ -8,7 +8,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n#google/privacy/dlp/v2/storage.proto\x12\x15google.privacy.dlp.v2\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"m\n\x08InfoType\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x42\n\x11sensitivity_score\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\"\xfb\x01\n\x10SensitivityScore\x12L\n\x05score\x18\x01 \x01(\x0e\x32=.google.privacy.dlp.v2.SensitivityScore.SensitivityScoreLevel\"\x98\x01\n\x15SensitivityScoreLevel\x12!\n\x1dSENSITIVITY_SCORE_UNSPECIFIED\x10\x00\x12\x13\n\x0fSENSITIVITY_LOW\x10\n\x12\x17\n\x13SENSITIVITY_UNKNOWN\x10\x0c\x12\x18\n\x14SENSITIVITY_MODERATE\x10\x14\x12\x14\n\x10SENSITIVITY_HIGH\x10\x1e\"K\n\nStoredType\x12\x0c\n\x04name\x18\x01 \x01(\t\x12/\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xbd\r\n\x0e\x43ustomInfoType\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x35\n\nlikelihood\x18\x06 \x01(\x0e\x32!.google.privacy.dlp.v2.Likelihood\x12\x46\n\ndictionary\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.CustomInfoType.DictionaryH\x00\x12<\n\x05regex\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.RegexH\x00\x12M\n\x0esurrogate_type\x18\x04 \x01(\x0b\x32\x33.google.privacy.dlp.v2.CustomInfoType.SurrogateTypeH\x00\x12\x38\n\x0bstored_type\x18\x05 \x01(\x0b\x32!.google.privacy.dlp.v2.StoredTypeH\x00\x12i\n\x1dmetadata_key_value_expression\x18\n \x01(\x0b\x32@.google.privacy.dlp.v2.CustomInfoType.MetadataKeyValueExpressionH\x00\x12L\n\x0f\x64\x65tection_rules\x18\x07 \x03(\x0b\x32\x33.google.privacy.dlp.v2.CustomInfoType.DetectionRule\x12K\n\x0e\x65xclusion_type\x18\x08 \x01(\x0e\x32\x33.google.privacy.dlp.v2.CustomInfoType.ExclusionType\x12\x42\n\x11sensitivity_score\x18\t \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x1a\xc8\x01\n\nDictionary\x12N\n\tword_list\x18\x01 \x01(\x0b\x32\x39.google.privacy.dlp.v2.CustomInfoType.Dictionary.WordListH\x00\x12\x45\n\x12\x63loud_storage_path\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.CloudStoragePathH\x00\x1a\x19\n\x08WordList\x12\r\n\x05words\x18\x01 \x03(\tB\x08\n\x06source\x1a/\n\x05Regex\x12\x0f\n\x07pattern\x18\x01 \x01(\t\x12\x15\n\rgroup_indexes\x18\x02 \x03(\x05\x1a\x0f\n\rSurrogateType\x1a\x44\n\x1aMetadataKeyValueExpression\x12\x11\n\tkey_regex\x18\x01 \x01(\t\x12\x13\n\x0bvalue_regex\x18\x02 \x01(\t\x1a\xbe\x04\n\rDetectionRule\x12W\n\x0chotword_rule\x18\x01 \x01(\x0b\x32?.google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRuleH\x00\x1a\x38\n\tProximity\x12\x15\n\rwindow_before\x18\x01 \x01(\x05\x12\x14\n\x0cwindow_after\x18\x02 \x01(\x05\x1a\x82\x01\n\x14LikelihoodAdjustment\x12=\n\x10\x66ixed_likelihood\x18\x01 \x01(\x0e\x32!.google.privacy.dlp.v2.LikelihoodH\x00\x12\x1d\n\x13relative_likelihood\x18\x02 \x01(\x05H\x00\x42\x0c\n\nadjustment\x1a\x8c\x02\n\x0bHotwordRule\x12\x42\n\rhotword_regex\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.Regex\x12P\n\tproximity\x18\x02 \x01(\x0b\x32=.google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity\x12g\n\x15likelihood_adjustment\x18\x03 \x01(\x0b\x32H.google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustmentB\x06\n\x04type\"K\n\rExclusionType\x12\x1e\n\x1a\x45XCLUSION_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x45XCLUSION_TYPE_EXCLUDE\x10\x01\x42\x06\n\x04type\"\x17\n\x07\x46ieldId\x12\x0c\n\x04name\x18\x01 \x01(\t\"7\n\x0bPartitionId\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x04 \x01(\t\"\x1e\n\x0eKindExpression\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x81\x01\n\x10\x44\x61tastoreOptions\x12\x38\n\x0cpartition_id\x18\x01 \x01(\x0b\x32\".google.privacy.dlp.v2.PartitionId\x12\x33\n\x04kind\x18\x02 \x01(\x0b\x32%.google.privacy.dlp.v2.KindExpression\"]\n\x18\x43loudStorageRegexFileSet\x12\x13\n\x0b\x62ucket_name\x18\x01 \x01(\t\x12\x15\n\rinclude_regex\x18\x02 \x03(\t\x12\x15\n\rexclude_regex\x18\x03 \x03(\t\"\xec\x03\n\x13\x43loudStorageOptions\x12\x44\n\x08\x66ile_set\x18\x01 \x01(\x0b\x32\x32.google.privacy.dlp.v2.CloudStorageOptions.FileSet\x12\x1c\n\x14\x62ytes_limit_per_file\x18\x04 \x01(\x03\x12$\n\x1c\x62ytes_limit_per_file_percent\x18\x08 \x01(\x05\x12\x33\n\nfile_types\x18\x05 \x03(\x0e\x32\x1f.google.privacy.dlp.v2.FileType\x12N\n\rsample_method\x18\x06 \x01(\x0e\x32\x37.google.privacy.dlp.v2.CloudStorageOptions.SampleMethod\x12\x1b\n\x13\x66iles_limit_percent\x18\x07 \x01(\x05\x1a_\n\x07\x46ileSet\x12\x0b\n\x03url\x18\x01 \x01(\t\x12G\n\x0eregex_file_set\x18\x02 \x01(\x0b\x32/.google.privacy.dlp.v2.CloudStorageRegexFileSet\"H\n\x0cSampleMethod\x12\x1d\n\x19SAMPLE_METHOD_UNSPECIFIED\x10\x00\x12\x07\n\x03TOP\x10\x01\x12\x10\n\x0cRANDOM_START\x10\x02\"\"\n\x13\x43loudStorageFileSet\x12\x0b\n\x03url\x18\x01 \x01(\t\" \n\x10\x43loudStoragePath\x12\x0c\n\x04path\x18\x01 \x01(\t\"\xc4\x03\n\x0f\x42igQueryOptions\x12=\n\x0ftable_reference\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12:\n\x12identifying_fields\x18\x02 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x12\n\nrows_limit\x18\x03 \x01(\x03\x12\x1a\n\x12rows_limit_percent\x18\x06 \x01(\x05\x12J\n\rsample_method\x18\x04 \x01(\x0e\x32\x33.google.privacy.dlp.v2.BigQueryOptions.SampleMethod\x12\x37\n\x0f\x65xcluded_fields\x18\x05 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x37\n\x0fincluded_fields\x18\x07 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\"H\n\x0cSampleMethod\x12\x1d\n\x19SAMPLE_METHOD_UNSPECIFIED\x10\x00\x12\x07\n\x03TOP\x10\x01\x12\x10\n\x0cRANDOM_START\x10\x02\"\xda\x04\n\rStorageConfig\x12\x44\n\x11\x64\x61tastore_options\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.DatastoreOptionsH\x00\x12K\n\x15\x63loud_storage_options\x18\x03 \x01(\x0b\x32*.google.privacy.dlp.v2.CloudStorageOptionsH\x00\x12\x43\n\x11\x62ig_query_options\x18\x04 \x01(\x0b\x32&.google.privacy.dlp.v2.BigQueryOptionsH\x00\x12>\n\x0ehybrid_options\x18\t \x01(\x0b\x32$.google.privacy.dlp.v2.HybridOptionsH\x00\x12L\n\x0ftimespan_config\x18\x06 \x01(\x0b\x32\x33.google.privacy.dlp.v2.StorageConfig.TimespanConfig\x1a\xda\x01\n\x0eTimespanConfig\x12.\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x0ftimestamp_field\x18\x03 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x31\n)enable_auto_population_of_timespan_config\x18\x04 \x01(\x08\x42\x06\n\x04type\"\xf6\x01\n\rHybridOptions\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12#\n\x1brequired_finding_label_keys\x18\x02 \x03(\t\x12@\n\x06labels\x18\x03 \x03(\x0b\x32\x30.google.privacy.dlp.v2.HybridOptions.LabelsEntry\x12:\n\rtable_options\x18\x04 \x01(\x0b\x32#.google.privacy.dlp.v2.TableOptions\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"`\n\x0b\x42igQueryKey\x12=\n\x0ftable_reference\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12\x12\n\nrow_number\x18\x02 \x01(\x03\">\n\x0c\x44\x61tastoreKey\x12.\n\nentity_key\x18\x01 \x01(\x0b\x32\x1a.google.privacy.dlp.v2.Key\"\xbb\x01\n\x03Key\x12\x38\n\x0cpartition_id\x18\x01 \x01(\x0b\x32\".google.privacy.dlp.v2.PartitionId\x12\x34\n\x04path\x18\x02 \x03(\x0b\x32&.google.privacy.dlp.v2.Key.PathElement\x1a\x44\n\x0bPathElement\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12\x0c\n\x02id\x18\x02 \x01(\x03H\x00\x12\x0e\n\x04name\x18\x03 \x01(\tH\x00\x42\t\n\x07id_type\"\xa1\x01\n\tRecordKey\x12<\n\rdatastore_key\x18\x02 \x01(\x0b\x32#.google.privacy.dlp.v2.DatastoreKeyH\x00\x12;\n\rbig_query_key\x18\x03 \x01(\x0b\x32\".google.privacy.dlp.v2.BigQueryKeyH\x00\x12\x11\n\tid_values\x18\x05 \x03(\tB\x06\n\x04type\"I\n\rBigQueryTable\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x12\n\ndataset_id\x18\x02 \x01(\t\x12\x10\n\x08table_id\x18\x03 \x01(\t\"J\n\x0eTableReference\x12\x12\n\ndataset_id\x18\x01 \x01(\t\x12\x10\n\x08table_id\x18\x02 \x01(\t\x12\x12\n\nproject_id\x18\x03 \x01(\t\"s\n\rBigQueryField\x12\x33\n\x05table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12-\n\x05\x66ield\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\"9\n\x08\x45ntityId\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\"J\n\x0cTableOptions\x12:\n\x12identifying_fields\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId*t\n\nLikelihood\x12\x1a\n\x16LIKELIHOOD_UNSPECIFIED\x10\x00\x12\x11\n\rVERY_UNLIKELY\x10\x01\x12\x0c\n\x08UNLIKELY\x10\x02\x12\x0c\n\x08POSSIBLE\x10\x03\x12\n\n\x06LIKELY\x10\x04\x12\x0f\n\x0bVERY_LIKELY\x10\x05*\x9a\x01\n\x08\x46ileType\x12\x19\n\x15\x46ILE_TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0b\x42INARY_FILE\x10\x01\x12\r\n\tTEXT_FILE\x10\x02\x12\t\n\x05IMAGE\x10\x03\x12\x08\n\x04WORD\x10\x05\x12\x07\n\x03PDF\x10\x06\x12\x08\n\x04\x41VRO\x10\x07\x12\x07\n\x03\x43SV\x10\x08\x12\x07\n\x03TSV\x10\t\x12\x0e\n\nPOWERPOINT\x10\x0b\x12\t\n\x05\x45XCEL\x10\x0c\x42\x99\x01\n\x19\x63om.google.privacy.dlp.v2B\nDlpStorageP\x01Z)cloud.google.com/go/dlp/apiv2/dlppb;dlppb\xaa\x02\x13Google.Cloud.Dlp.V2\xca\x02\x13Google\\Cloud\\Dlp\\V2\xea\x02\x16Google::Cloud::Dlp::V2b\x06proto3" +descriptor_data = "\n#google/privacy/dlp/v2/storage.proto\x12\x15google.privacy.dlp.v2\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"m\n\x08InfoType\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x42\n\x11sensitivity_score\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\"\xfb\x01\n\x10SensitivityScore\x12L\n\x05score\x18\x01 \x01(\x0e\x32=.google.privacy.dlp.v2.SensitivityScore.SensitivityScoreLevel\"\x98\x01\n\x15SensitivityScoreLevel\x12!\n\x1dSENSITIVITY_SCORE_UNSPECIFIED\x10\x00\x12\x13\n\x0fSENSITIVITY_LOW\x10\n\x12\x17\n\x13SENSITIVITY_UNKNOWN\x10\x0c\x12\x18\n\x14SENSITIVITY_MODERATE\x10\x14\x12\x14\n\x10SENSITIVITY_HIGH\x10\x1e\"K\n\nStoredType\x12\x0c\n\x04name\x18\x01 \x01(\t\x12/\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xe9\x11\n\x0e\x43ustomInfoType\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x35\n\nlikelihood\x18\x06 \x01(\x0e\x32!.google.privacy.dlp.v2.Likelihood\x12\x46\n\ndictionary\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.CustomInfoType.DictionaryH\x00\x12<\n\x05regex\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.RegexH\x00\x12M\n\x0esurrogate_type\x18\x04 \x01(\x0b\x32\x33.google.privacy.dlp.v2.CustomInfoType.SurrogateTypeH\x00\x12\x38\n\x0bstored_type\x18\x05 \x01(\x0b\x32!.google.privacy.dlp.v2.StoredTypeH\x00\x12i\n\x1dmetadata_key_value_expression\x18\n \x01(\x0b\x32@.google.privacy.dlp.v2.CustomInfoType.MetadataKeyValueExpressionH\x00\x12W\n\x14\x66ile_label_info_type\x18\x0c \x01(\x0b\x32\x37.google.privacy.dlp.v2.CustomInfoType.FileLabelInfoTypeH\x00\x12L\n\x0f\x64\x65tection_rules\x18\x07 \x03(\x0b\x32\x33.google.privacy.dlp.v2.CustomInfoType.DetectionRule\x12K\n\x0e\x65xclusion_type\x18\x08 \x01(\x0e\x32\x33.google.privacy.dlp.v2.CustomInfoType.ExclusionType\x12\x42\n\x11sensitivity_score\x18\t \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x1a\xc8\x01\n\nDictionary\x12N\n\tword_list\x18\x01 \x01(\x0b\x32\x39.google.privacy.dlp.v2.CustomInfoType.Dictionary.WordListH\x00\x12\x45\n\x12\x63loud_storage_path\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.CloudStoragePathH\x00\x1a\x19\n\x08WordList\x12\r\n\x05words\x18\x01 \x03(\tB\x08\n\x06source\x1a/\n\x05Regex\x12\x0f\n\x07pattern\x18\x01 \x01(\t\x12\x15\n\rgroup_indexes\x18\x02 \x03(\x05\x1a\x0f\n\rSurrogateType\x1a\x44\n\x1aMetadataKeyValueExpression\x12\x11\n\tkey_regex\x18\x01 \x01(\t\x12\x13\n\x0bvalue_regex\x18\x02 \x01(\t\x1a\xd0\x03\n\x11\x46ileLabelInfoType\x12\x65\n\x11sensitivity_label\x18\x01 \x01(\x0b\x32H.google.privacy.dlp.v2.CustomInfoType.FileLabelInfoType.SensitivityLabelH\x00\x12\x66\n\x12google_drive_label\x18\x02 \x01(\x0b\x32H.google.privacy.dlp.v2.CustomInfoType.FileLabelInfoType.GoogleDriveLabelH\x00\x1a \n\x10SensitivityLabel\x12\x0c\n\x04guid\x18\x01 \x01(\t\x1a\xc1\x01\n\x10GoogleDriveLabel\x12\x10\n\x08label_id\x18\x01 \x01(\t\x12r\n\x15label_fields_to_match\x18\x02 \x03(\x0b\x32S.google.privacy.dlp.v2.CustomInfoType.FileLabelInfoType.GoogleDriveLabel.LabelField\x1a\'\n\nLabelField\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\tB\x06\n\x04type\x1a\xbe\x04\n\rDetectionRule\x12W\n\x0chotword_rule\x18\x01 \x01(\x0b\x32?.google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRuleH\x00\x1a\x38\n\tProximity\x12\x15\n\rwindow_before\x18\x01 \x01(\x05\x12\x14\n\x0cwindow_after\x18\x02 \x01(\x05\x1a\x82\x01\n\x14LikelihoodAdjustment\x12=\n\x10\x66ixed_likelihood\x18\x01 \x01(\x0e\x32!.google.privacy.dlp.v2.LikelihoodH\x00\x12\x1d\n\x13relative_likelihood\x18\x02 \x01(\x05H\x00\x42\x0c\n\nadjustment\x1a\x8c\x02\n\x0bHotwordRule\x12\x42\n\rhotword_regex\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.Regex\x12P\n\tproximity\x18\x02 \x01(\x0b\x32=.google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity\x12g\n\x15likelihood_adjustment\x18\x03 \x01(\x0b\x32H.google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustmentB\x06\n\x04type\"K\n\rExclusionType\x12\x1e\n\x1a\x45XCLUSION_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x45XCLUSION_TYPE_EXCLUDE\x10\x01\x42\x06\n\x04type\"\x17\n\x07\x46ieldId\x12\x0c\n\x04name\x18\x01 \x01(\t\"7\n\x0bPartitionId\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x04 \x01(\t\"\x1e\n\x0eKindExpression\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x81\x01\n\x10\x44\x61tastoreOptions\x12\x38\n\x0cpartition_id\x18\x01 \x01(\x0b\x32\".google.privacy.dlp.v2.PartitionId\x12\x33\n\x04kind\x18\x02 \x01(\x0b\x32%.google.privacy.dlp.v2.KindExpression\"]\n\x18\x43loudStorageRegexFileSet\x12\x13\n\x0b\x62ucket_name\x18\x01 \x01(\t\x12\x15\n\rinclude_regex\x18\x02 \x03(\t\x12\x15\n\rexclude_regex\x18\x03 \x03(\t\"\xec\x03\n\x13\x43loudStorageOptions\x12\x44\n\x08\x66ile_set\x18\x01 \x01(\x0b\x32\x32.google.privacy.dlp.v2.CloudStorageOptions.FileSet\x12\x1c\n\x14\x62ytes_limit_per_file\x18\x04 \x01(\x03\x12$\n\x1c\x62ytes_limit_per_file_percent\x18\x08 \x01(\x05\x12\x33\n\nfile_types\x18\x05 \x03(\x0e\x32\x1f.google.privacy.dlp.v2.FileType\x12N\n\rsample_method\x18\x06 \x01(\x0e\x32\x37.google.privacy.dlp.v2.CloudStorageOptions.SampleMethod\x12\x1b\n\x13\x66iles_limit_percent\x18\x07 \x01(\x05\x1a_\n\x07\x46ileSet\x12\x0b\n\x03url\x18\x01 \x01(\t\x12G\n\x0eregex_file_set\x18\x02 \x01(\x0b\x32/.google.privacy.dlp.v2.CloudStorageRegexFileSet\"H\n\x0cSampleMethod\x12\x1d\n\x19SAMPLE_METHOD_UNSPECIFIED\x10\x00\x12\x07\n\x03TOP\x10\x01\x12\x10\n\x0cRANDOM_START\x10\x02\"\"\n\x13\x43loudStorageFileSet\x12\x0b\n\x03url\x18\x01 \x01(\t\" \n\x10\x43loudStoragePath\x12\x0c\n\x04path\x18\x01 \x01(\t\"\xc4\x03\n\x0f\x42igQueryOptions\x12=\n\x0ftable_reference\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12:\n\x12identifying_fields\x18\x02 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x12\n\nrows_limit\x18\x03 \x01(\x03\x12\x1a\n\x12rows_limit_percent\x18\x06 \x01(\x05\x12J\n\rsample_method\x18\x04 \x01(\x0e\x32\x33.google.privacy.dlp.v2.BigQueryOptions.SampleMethod\x12\x37\n\x0f\x65xcluded_fields\x18\x05 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x37\n\x0fincluded_fields\x18\x07 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\"H\n\x0cSampleMethod\x12\x1d\n\x19SAMPLE_METHOD_UNSPECIFIED\x10\x00\x12\x07\n\x03TOP\x10\x01\x12\x10\n\x0cRANDOM_START\x10\x02\"\xda\x04\n\rStorageConfig\x12\x44\n\x11\x64\x61tastore_options\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.DatastoreOptionsH\x00\x12K\n\x15\x63loud_storage_options\x18\x03 \x01(\x0b\x32*.google.privacy.dlp.v2.CloudStorageOptionsH\x00\x12\x43\n\x11\x62ig_query_options\x18\x04 \x01(\x0b\x32&.google.privacy.dlp.v2.BigQueryOptionsH\x00\x12>\n\x0ehybrid_options\x18\t \x01(\x0b\x32$.google.privacy.dlp.v2.HybridOptionsH\x00\x12L\n\x0ftimespan_config\x18\x06 \x01(\x0b\x32\x33.google.privacy.dlp.v2.StorageConfig.TimespanConfig\x1a\xda\x01\n\x0eTimespanConfig\x12.\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x0ftimestamp_field\x18\x03 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x31\n)enable_auto_population_of_timespan_config\x18\x04 \x01(\x08\x42\x06\n\x04type\"\xf6\x01\n\rHybridOptions\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12#\n\x1brequired_finding_label_keys\x18\x02 \x03(\t\x12@\n\x06labels\x18\x03 \x03(\x0b\x32\x30.google.privacy.dlp.v2.HybridOptions.LabelsEntry\x12:\n\rtable_options\x18\x04 \x01(\x0b\x32#.google.privacy.dlp.v2.TableOptions\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"`\n\x0b\x42igQueryKey\x12=\n\x0ftable_reference\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12\x12\n\nrow_number\x18\x02 \x01(\x03\">\n\x0c\x44\x61tastoreKey\x12.\n\nentity_key\x18\x01 \x01(\x0b\x32\x1a.google.privacy.dlp.v2.Key\"\xbb\x01\n\x03Key\x12\x38\n\x0cpartition_id\x18\x01 \x01(\x0b\x32\".google.privacy.dlp.v2.PartitionId\x12\x34\n\x04path\x18\x02 \x03(\x0b\x32&.google.privacy.dlp.v2.Key.PathElement\x1a\x44\n\x0bPathElement\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12\x0c\n\x02id\x18\x02 \x01(\x03H\x00\x12\x0e\n\x04name\x18\x03 \x01(\tH\x00\x42\t\n\x07id_type\"\xa1\x01\n\tRecordKey\x12<\n\rdatastore_key\x18\x02 \x01(\x0b\x32#.google.privacy.dlp.v2.DatastoreKeyH\x00\x12;\n\rbig_query_key\x18\x03 \x01(\x0b\x32\".google.privacy.dlp.v2.BigQueryKeyH\x00\x12\x11\n\tid_values\x18\x05 \x03(\tB\x06\n\x04type\"I\n\rBigQueryTable\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x12\n\ndataset_id\x18\x02 \x01(\t\x12\x10\n\x08table_id\x18\x03 \x01(\t\"J\n\x0eTableReference\x12\x12\n\ndataset_id\x18\x01 \x01(\t\x12\x10\n\x08table_id\x18\x02 \x01(\t\x12\x12\n\nproject_id\x18\x03 \x01(\t\"s\n\rBigQueryField\x12\x33\n\x05table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12-\n\x05\x66ield\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\"9\n\x08\x45ntityId\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\"J\n\x0cTableOptions\x12:\n\x12identifying_fields\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId*t\n\nLikelihood\x12\x1a\n\x16LIKELIHOOD_UNSPECIFIED\x10\x00\x12\x11\n\rVERY_UNLIKELY\x10\x01\x12\x0c\n\x08UNLIKELY\x10\x02\x12\x0c\n\x08POSSIBLE\x10\x03\x12\n\n\x06LIKELY\x10\x04\x12\x0f\n\x0bVERY_LIKELY\x10\x05*\x9a\x01\n\x08\x46ileType\x12\x19\n\x15\x46ILE_TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0b\x42INARY_FILE\x10\x01\x12\r\n\tTEXT_FILE\x10\x02\x12\t\n\x05IMAGE\x10\x03\x12\x08\n\x04WORD\x10\x05\x12\x07\n\x03PDF\x10\x06\x12\x08\n\x04\x41VRO\x10\x07\x12\x07\n\x03\x43SV\x10\x08\x12\x07\n\x03TSV\x10\t\x12\x0e\n\nPOWERPOINT\x10\x0b\x12\t\n\x05\x45XCEL\x10\x0c\x42\x99\x01\n\x19\x63om.google.privacy.dlp.v2B\nDlpStorageP\x01Z)cloud.google.com/go/dlp/apiv2/dlppb;dlppb\xaa\x02\x13Google.Cloud.Dlp.V2\xca\x02\x13Google\\Cloud\\Dlp\\V2\xea\x02\x16Google::Cloud::Dlp::V2b\x06proto3" pool = ::Google::Protobuf::DescriptorPool.generated_pool pool.add_serialized_file(descriptor_data) @@ -27,6 +27,10 @@ module V2 CustomInfoType::Regex = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.CustomInfoType.Regex").msgclass CustomInfoType::SurrogateType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.CustomInfoType.SurrogateType").msgclass CustomInfoType::MetadataKeyValueExpression = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.CustomInfoType.MetadataKeyValueExpression").msgclass + CustomInfoType::FileLabelInfoType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.CustomInfoType.FileLabelInfoType").msgclass + CustomInfoType::FileLabelInfoType::SensitivityLabel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.CustomInfoType.FileLabelInfoType.SensitivityLabel").msgclass + CustomInfoType::FileLabelInfoType::GoogleDriveLabel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.CustomInfoType.FileLabelInfoType.GoogleDriveLabel").msgclass + CustomInfoType::FileLabelInfoType::GoogleDriveLabel::LabelField = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.CustomInfoType.FileLabelInfoType.GoogleDriveLabel.LabelField").msgclass CustomInfoType::DetectionRule = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.CustomInfoType.DetectionRule").msgclass CustomInfoType::DetectionRule::Proximity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity").msgclass CustomInfoType::DetectionRule::LikelihoodAdjustment = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustment").msgclass diff --git a/google-cloud-dlp-v2/proto_docs/google/privacy/dlp/v2/dlp.rb b/google-cloud-dlp-v2/proto_docs/google/privacy/dlp/v2/dlp.rb index 1cd49692e8ae..31ba26bce6ef 100644 --- a/google-cloud-dlp-v2/proto_docs/google/privacy/dlp/v2/dlp.rb +++ b/google-cloud-dlp-v2/proto_docs/google/privacy/dlp/v2/dlp.rb @@ -62,7 +62,7 @@ class ExcludeByHotword # @!attribute [rw] info_types # @return [::Array<::Google::Cloud::Dlp::V2::InfoType>] # A list of image-supported infoTypes—excluding [document - # infoTypes](https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference#documents)—to + # infoTypes](https://docs.cloud.google.com/sensitive-data-protection/docs/infotypes-reference#documents)—to # be used as context for the exclusion rule. A finding is excluded if # its bounding box has the specified spatial relationship (defined by # `image_containment_type`) with a finding of an infoType in this list. @@ -158,7 +158,7 @@ class AdjustByMatchingInfoTypes # @!attribute [rw] info_types # @return [::Array<::Google::Cloud::Dlp::V2::InfoType>] # A list of image-supported infoTypes—excluding [document - # infoTypes](https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference#documents)—to + # infoTypes](https://docs.cloud.google.com/sensitive-data-protection/docs/infotypes-reference#documents)—to # be used as context for the adjustment rule. Sensitive Data Protection # adjusts the likelihood of an image finding if its bounding box has the # specified spatial relationship (defined by `image_containment_type`) with a @@ -250,7 +250,7 @@ class InspectionRuleSet # @return [::Array<::Google::Cloud::Dlp::V2::InfoType>] # Restricts what info_types to look for. The values must correspond to # InfoType values returned by ListInfoTypes or listed at - # https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference. + # https://docs.cloud.google.com/sensitive-data-protection/docs/infotypes-reference. # # When no InfoTypes or CustomInfoTypes are specified in a request, the # system may automatically choose a default list of detectors to run, which @@ -267,7 +267,7 @@ class InspectionRuleSet # In general, the highest likelihood setting yields the fewest findings in # results and the lowest chance of a false positive. For more information, # see [Match - # likelihood](https://cloud.google.com/sensitive-data-protection/docs/likelihood). + # likelihood](https://docs.cloud.google.com/sensitive-data-protection/docs/likelihood). # @!attribute [rw] min_likelihood_per_info_type # @return [::Array<::Google::Cloud::Dlp::V2::InspectConfig::InfoTypeLikelihood>] # Minimum likelihood per infotype. For each infotype, a user can specify a @@ -304,7 +304,7 @@ class InspectionRuleSet # @!attribute [rw] custom_info_types # @return [::Array<::Google::Cloud::Dlp::V2::CustomInfoType>] # CustomInfoTypes provided by the user. See - # https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes # to learn more. # @!attribute [rw] content_options # @return [::Array<::Google::Cloud::Dlp::V2::ContentOption>] @@ -409,7 +409,7 @@ class ByteContentItem # The type of data being sent for inspection. To learn more, see # [Supported file - # types](https://cloud.google.com/sensitive-data-protection/docs/supported-file-types). + # types](https://docs.cloud.google.com/sensitive-data-protection/docs/supported-file-types). # # Only the first frame of each multiframe image is inspected. Metadata and # other frames aren't inspected. @@ -479,7 +479,7 @@ module BytesType # @!attribute [rw] table # @return [::Google::Cloud::Dlp::V2::Table] # Structured content for inspection. See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-text#inspecting_a_table + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-text#inspecting_a_table # to learn more. # # Note: The following fields are mutually exclusive: `table`, `value`, `byte_item`, `conversation`, `batch_content_item`. If a field in that set is populated, all other fields in the set will automatically be cleared. @@ -512,6 +512,9 @@ class ContentItem # @!attribute [rw] properties # @return [::Array<::Google::Cloud::Dlp::V2::KeyValueMetadataProperty>] # User provided key-value pairs of content metadata. + # @!attribute [rw] file_labels + # @return [::Array<::Google::Cloud::Dlp::V2::FileLabel>] + # Optional. The file labels associated with the content. class ContentMetadata include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -584,7 +587,7 @@ class StringValueBatch end # Structured content to inspect. Up to 50,000 `Value`s per request allowed. See - # https://cloud.google.com/sensitive-data-protection/docs/inspecting-structured-text#inspecting_a_table + # https://docs.cloud.google.com/sensitive-data-protection/docs/inspecting-structured-text#inspecting_a_table # to learn more. # @!attribute [rw] headers # @return [::Array<::Google::Cloud::Dlp::V2::FieldId>] @@ -618,6 +621,57 @@ class KeyValueMetadataProperty extend ::Google::Protobuf::MessageExts::ClassMethods end + # Represents a file label. + # @!attribute [rw] sensitivity_label + # @return [::Google::Cloud::Dlp::V2::FileLabel::SensitivityLabelMetadata] + # Sensitivity labels published by Microsoft. + # + # Note: The following fields are mutually exclusive: `sensitivity_label`, `google_drive_label`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] google_drive_label + # @return [::Google::Cloud::Dlp::V2::FileLabel::GoogleDriveLabelMetadata] + # Google Drive labels published by Google. + # + # Note: The following fields are mutually exclusive: `google_drive_label`, `sensitivity_label`. If a field in that set is populated, all other fields in the set will automatically be cleared. + class FileLabel + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Sensitivity labels published by Microsoft. + # @!attribute [rw] guid + # @return [::String] + # Required. The GUID of the sensitivity label. + class SensitivityLabelMetadata + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Google Drive labels published by Google. + # @!attribute [rw] label_id + # @return [::String] + # The [label + # ID](https://developers.google.com/workspace/drive/labels/guides/overview) + # of the Google Drive label. + # @!attribute [rw] label_fields + # @return [::Array<::Google::Cloud::Dlp::V2::FileLabel::GoogleDriveLabelMetadata::LabelFieldMetadata>] + # The field values of the Google Drive label + class GoogleDriveLabelMetadata + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The field values of the Google Drive label + # @!attribute [rw] id + # @return [::String] + # The identifier of the Label Field. + # @!attribute [rw] value + # @return [::Google::Cloud::Dlp::V2::Value] + # The value of the Label Field. + class LabelFieldMetadata + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + # All the findings for a single scanned item. # @!attribute [rw] findings # @return [::Array<::Google::Cloud::Dlp::V2::Finding>] @@ -979,7 +1033,8 @@ class ImageLocation extend ::Google::Protobuf::MessageExts::ClassMethods end - # Bounding box encompassing detected text within an image. + # Bounding box encompassing detected text within an image. Coordinates are in + # pixels and strictly within the image or frame bounds. # @!attribute [rw] top # @return [::Integer] # Top coordinate of the bounding box. (0,0) is upper left. @@ -1005,7 +1060,7 @@ class BoundingBox # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -1120,7 +1175,7 @@ class RedactImageResponse # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -1193,7 +1248,7 @@ class DeidentifyContentResponse # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -1266,7 +1321,7 @@ class ReidentifyContentResponse # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -1399,18 +1454,18 @@ class InfoTypeStats # @!attribute [rw] requested_options # @return [::Google::Cloud::Dlp::V2::InspectDataSourceDetails::RequestedOptions] # The configuration used for this job. - # @!attribute [rw] result + # @!attribute [r] result # @return [::Google::Cloud::Dlp::V2::InspectDataSourceDetails::Result] - # A summary of the outcome of this inspection job. + # Output only. A summary of the outcome of this inspection job. class InspectDataSourceDetails include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Snapshot of the inspection configuration. - # @!attribute [rw] snapshot_inspect_template + # @!attribute [r] snapshot_inspect_template # @return [::Google::Cloud::Dlp::V2::InspectTemplate] - # If run with an InspectTemplate, a snapshot of its state at the time of - # this run. + # Output only. If run with an InspectTemplate, a snapshot of its state at + # the time of this run. # @!attribute [rw] job_config # @return [::Google::Cloud::Dlp::V2::InspectJobConfig] # Inspect config. @@ -1911,7 +1966,7 @@ class ListInfoTypesResponse end # Configuration for a risk analysis job. See - # https://cloud.google.com/sensitive-data-protection/docs/concepts-risk-analysis + # https://docs.cloud.google.com/sensitive-data-protection/docs/concepts-risk-analysis # to learn more. # @!attribute [rw] privacy_metric # @return [::Google::Cloud::Dlp::V2::PrivacyMetric] @@ -2216,34 +2271,34 @@ class DeltaPresenceEstimationConfig # @!attribute [rw] requested_source_table # @return [::Google::Cloud::Dlp::V2::BigQueryTable] # Input dataset to compute metrics over. - # @!attribute [rw] numerical_stats_result + # @!attribute [r] numerical_stats_result # @return [::Google::Cloud::Dlp::V2::AnalyzeDataSourceRiskDetails::NumericalStatsResult] - # Numerical stats result + # Output only. Numerical stats result # # Note: The following fields are mutually exclusive: `numerical_stats_result`, `categorical_stats_result`, `k_anonymity_result`, `l_diversity_result`, `k_map_estimation_result`, `delta_presence_estimation_result`. If a field in that set is populated, all other fields in the set will automatically be cleared. - # @!attribute [rw] categorical_stats_result + # @!attribute [r] categorical_stats_result # @return [::Google::Cloud::Dlp::V2::AnalyzeDataSourceRiskDetails::CategoricalStatsResult] - # Categorical stats result + # Output only. Categorical stats result # # Note: The following fields are mutually exclusive: `categorical_stats_result`, `numerical_stats_result`, `k_anonymity_result`, `l_diversity_result`, `k_map_estimation_result`, `delta_presence_estimation_result`. If a field in that set is populated, all other fields in the set will automatically be cleared. - # @!attribute [rw] k_anonymity_result + # @!attribute [r] k_anonymity_result # @return [::Google::Cloud::Dlp::V2::AnalyzeDataSourceRiskDetails::KAnonymityResult] - # K-anonymity result + # Output only. K-anonymity result # # Note: The following fields are mutually exclusive: `k_anonymity_result`, `numerical_stats_result`, `categorical_stats_result`, `l_diversity_result`, `k_map_estimation_result`, `delta_presence_estimation_result`. If a field in that set is populated, all other fields in the set will automatically be cleared. - # @!attribute [rw] l_diversity_result + # @!attribute [r] l_diversity_result # @return [::Google::Cloud::Dlp::V2::AnalyzeDataSourceRiskDetails::LDiversityResult] - # L-divesity result + # Output only. L-divesity result # # Note: The following fields are mutually exclusive: `l_diversity_result`, `numerical_stats_result`, `categorical_stats_result`, `k_anonymity_result`, `k_map_estimation_result`, `delta_presence_estimation_result`. If a field in that set is populated, all other fields in the set will automatically be cleared. - # @!attribute [rw] k_map_estimation_result + # @!attribute [r] k_map_estimation_result # @return [::Google::Cloud::Dlp::V2::AnalyzeDataSourceRiskDetails::KMapEstimationResult] - # K-map result + # Output only. K-map result # # Note: The following fields are mutually exclusive: `k_map_estimation_result`, `numerical_stats_result`, `categorical_stats_result`, `k_anonymity_result`, `l_diversity_result`, `delta_presence_estimation_result`. If a field in that set is populated, all other fields in the set will automatically be cleared. - # @!attribute [rw] delta_presence_estimation_result + # @!attribute [r] delta_presence_estimation_result # @return [::Google::Cloud::Dlp::V2::AnalyzeDataSourceRiskDetails::DeltaPresenceEstimationResult] - # Delta-presence result + # Output only. Delta-presence result # # Note: The following fields are mutually exclusive: `delta_presence_estimation_result`, `numerical_stats_result`, `categorical_stats_result`, `k_anonymity_result`, `l_diversity_result`, `k_map_estimation_result`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] requested_options @@ -2866,7 +2921,8 @@ module TimePart # Outputs a base64 encoded representation of the hashed output # (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). # Currently, only string and integer values can be hashed. - # See https://cloud.google.com/sensitive-data-protection/docs/pseudonymization + # See + # https://docs.cloud.google.com/sensitive-data-protection/docs/pseudonymization # to learn more. # @!attribute [rw] crypto_key # @return [::Google::Cloud::Dlp::V2::CryptoKey] @@ -2956,8 +3012,8 @@ class ReplaceValueConfig # @!attribute [rw] word_list # @return [::Google::Cloud::Dlp::V2::CustomInfoType::Dictionary::WordList] # A list of words to select from for random replacement. The - # [limits](https://cloud.google.com/sensitive-data-protection/limits) page - # contains details about the size limits of dictionaries. + # [limits](https://docs.cloud.google.com/sensitive-data-protection/limits) + # page contains details about the size limits of dictionaries. class ReplaceDictionaryConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -3081,8 +3137,8 @@ class CharacterMaskConfig # be transformed to match the type of the bound before comparing. # # See - # https://cloud.google.com/sensitive-data-protection/docs/concepts-bucketing to - # learn more. + # https://docs.cloud.google.com/sensitive-data-protection/docs/concepts-bucketing + # to learn more. # @!attribute [rw] lower_bound # @return [::Google::Cloud::Dlp::V2::Value] # Required. Lower bound value of buckets. All values less than `lower_bound` @@ -3114,8 +3170,8 @@ class FixedSizeBucketingConfig # will first attempt converting the type of the data to be transformed to match # the type of the bound before comparing. # See - # https://cloud.google.com/sensitive-data-protection/docs/concepts-bucketing to - # learn more. + # https://docs.cloud.google.com/sensitive-data-protection/docs/concepts-bucketing + # to learn more. # @!attribute [rw] buckets # @return [::Array<::Google::Cloud::Dlp::V2::BucketingConfig::Bucket>] # Set of buckets. Ranges must be non-overlapping. @@ -3148,8 +3204,8 @@ class Bucket # will be replaced with the same surrogate. Identifiers must be at least two # characters long. In the case that the identifier is the empty string, it will # be skipped. See - # https://cloud.google.com/sensitive-data-protection/docs/pseudonymization to - # learn more. + # https://docs.cloud.google.com/sensitive-data-protection/docs/pseudonymization + # to learn more. # # Note: We recommend using CryptoDeterministicConfig for all use cases which # do not require preserving the input alphabet space and size, plus warrant @@ -3216,7 +3272,7 @@ class Bucket # # This annotation identifies the surrogate when inspecting content using the # custom infoType - # [`SurrogateType`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/InspectConfig#surrogatetype). + # [`SurrogateType`](https://docs.cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/InspectConfig#surrogatetype). # This facilitates reversal of the surrogate when it occurs in free text. # # In order for inspection to work properly, the name of this infoType must @@ -3312,7 +3368,7 @@ class UnwrappedCryptoKey # dlp.kms.encrypt # # For more information, see [Creating a wrapped key] - # (https://cloud.google.com/sensitive-data-protection/docs/create-wrapped-key). + # (https://docs.cloud.google.com/sensitive-data-protection/docs/create-wrapped-key). # # Note: When you use Cloud KMS for cryptographic operations, # [charges apply](https://cloud.google.com/kms/pricing). @@ -3329,7 +3385,7 @@ class KmsWrappedCryptoKey # Shifts dates by random number of days, with option to be consistent for the # same context. See - # https://cloud.google.com/sensitive-data-protection/docs/concepts-date-shifting + # https://docs.cloud.google.com/sensitive-data-protection/docs/concepts-date-shifting # to learn more. # @!attribute [rw] upper_bound_days # @return [::Integer] @@ -3749,8 +3805,8 @@ class Manual # The inspectTemplate contains a configuration (set of types of sensitive data # to be detected) to be used anywhere you otherwise would normally specify # InspectConfig. See - # https://cloud.google.com/sensitive-data-protection/docs/concepts-templates to - # learn more. + # https://docs.cloud.google.com/sensitive-data-protection/docs/concepts-templates + # to learn more. # @!attribute [r] name # @return [::String] # Output only. The template name. @@ -3773,6 +3829,12 @@ class Manual # @!attribute [rw] inspect_config # @return [::Google::Cloud::Dlp::V2::InspectConfig] # The core content of the template. Configuration of the scanning process. + # @!attribute [rw] allow_limited_availability_info_types + # @return [::Boolean] + # Optional. Enables the use of [limited-availability built-in + # infoTypes](https://docs.cloud.google.com/sensitive-data-protection/docs/infotypes-reference#limited-availability-infotypes) + # in inspect_config. These infoTypes are supported only in specific regions + # and can cause scanning errors if used elsewhere. class InspectTemplate include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -3780,8 +3842,8 @@ class InspectTemplate # DeidentifyTemplates contains instructions on how to de-identify content. # See - # https://cloud.google.com/sensitive-data-protection/docs/concepts-templates to - # learn more. + # https://docs.cloud.google.com/sensitive-data-protection/docs/concepts-templates + # to learn more. # @!attribute [r] name # @return [::String] # Output only. The template name. @@ -3840,12 +3902,12 @@ module ErrorExtraInfo # Contains a configuration to make API calls on a repeating basis. # See - # https://cloud.google.com/sensitive-data-protection/docs/concepts-job-triggers + # https://docs.cloud.google.com/sensitive-data-protection/docs/concepts-job-triggers # to learn more. - # @!attribute [rw] name + # @!attribute [r] name # @return [::String] - # Unique resource name for the triggeredJob, assigned by the service when the - # triggeredJob is created, for example + # Output only. Unique resource name for the triggeredJob, assigned by the + # service when the triggeredJob is created, for example # `projects/dlp-test-project/jobTriggers/53234423`. # @!attribute [rw] display_name # @return [::String] @@ -3919,7 +3981,8 @@ module Status end # A task to execute on the completion of a job. - # See https://cloud.google.com/sensitive-data-protection/docs/concepts-actions + # See + # https://docs.cloud.google.com/sensitive-data-protection/docs/concepts-actions # to learn more. # @!attribute [rw] save_findings # @return [::Google::Cloud::Dlp::V2::Action::SaveFindings] @@ -3958,7 +4021,7 @@ module Status # @return [::Google::Cloud::Dlp::V2::Action::JobNotificationEmails] # Sends an email when the job completes. The email goes to IAM project # owners and technical [Essential - # Contacts](https://cloud.google.com/resource-manager/docs/managing-notification-contacts). + # Contacts](https://docs.cloud.google.com/resource-manager/docs/managing-notification-contacts). # # Note: The following fields are mutually exclusive: `job_notification_emails`, `save_findings`, `pub_sub`, `publish_summary_to_cscc`, `publish_findings_to_cloud_data_catalog`, `publish_findings_to_dataplex_catalog`, `deidentify`, `publish_to_stackdriver`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] publish_to_stackdriver @@ -3985,7 +4048,7 @@ class SaveFindings # Publish a message into a given Pub/Sub topic when DlpJob has completed. The # message contains a single field, `DlpJobName`, which is equal to the # finished job's - # [`DlpJob.name`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/projects.dlpJobs#DlpJob). + # [`DlpJob.name`](https://docs.cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/projects.dlpJobs#DlpJob). # Compatible with: Inspect, Risk # @!attribute [rw] topic # @return [::String] @@ -4037,7 +4100,7 @@ class PublishFindingsToCloudDataCatalog # Publish findings of a DlpJob to Dataplex Universal Catalog as a # `sensitive-data-protection-job-result` aspect. For more information, # see [Send inspection results to Dataplex Universal Catalog as - # aspects](https://cloud.google.com/sensitive-data-protection/docs/add-aspects-inspection-job). + # aspects](https://docs.cloud.google.com/sensitive-data-protection/docs/add-aspects-inspection-job). # # Aspects are stored in Dataplex Universal Catalog storage and are # governed by service-specific policies for Dataplex Universal Catalog. For @@ -4150,7 +4213,7 @@ class Deidentify # Sends an email when the job completes. The email goes to IAM project owners # and technical [Essential - # Contacts](https://cloud.google.com/resource-manager/docs/managing-notification-contacts). + # Contacts](https://docs.cloud.google.com/resource-manager/docs/managing-notification-contacts). class JobNotificationEmails include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -4204,7 +4267,7 @@ class TransformationConfig # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -4272,7 +4335,7 @@ class GetInspectTemplateRequest # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -4350,7 +4413,7 @@ class DeleteInspectTemplateRequest # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -4545,7 +4608,7 @@ class DeleteDiscoveryConfigRequest # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -4589,7 +4652,7 @@ class CreateDlpJobRequest # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -4724,7 +4787,7 @@ class InspectJobConfig # Publishes generated data profiles to Google Security Operations. # For more information, see [Use Sensitive Data Protection data in # context-aware - # analytics](https://cloud.google.com/chronicle/docs/detection/usecase-dlp-high-risk-user-download). + # analytics](https://docs.cloud.google.com/chronicle/docs/detection/usecase-dlp-high-risk-user-download). # # Note: The following fields are mutually exclusive: `publish_to_chronicle`, `export_data`, `pub_sub_notification`, `publish_to_scc`, `tag_resources`, `publish_to_dataplex_catalog`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] publish_to_scc @@ -4761,9 +4824,9 @@ class DataProfileAction # generated and the dataset and table are created, the discovery scan # configuration will be updated with the dataset and table names. # * See [Analyze data profiles stored in - # BigQuery](https://cloud.google.com/sensitive-data-protection/docs/analyze-data-profiles). + # BigQuery](https://docs.cloud.google.com/sensitive-data-protection/docs/analyze-data-profiles). # * See [Sample queries for your BigQuery - # table](https://cloud.google.com/sensitive-data-protection/docs/analyze-data-profiles#sample_sql_queries). + # table](https://docs.cloud.google.com/sensitive-data-protection/docs/analyze-data-profiles#sample_sql_queries). # * Data is inserted using [streaming # insert](https://cloud.google.com/blog/products/bigquery/life-of-a-bigquery-streaming-insert) # and so data may be in the buffer for a period of time after the @@ -4774,7 +4837,7 @@ class DataProfileAction # notification. # * The best practice is to use the same table for an entire organization # so that you can take advantage of the [provided Data Studio - # reports](https://cloud.google.com/sensitive-data-protection/docs/analyze-data-profiles#use_a_premade_report). + # reports](https://docs.cloud.google.com/sensitive-data-protection/docs/analyze-data-profiles#use_a_premade_report). # If you use VPC Service Controls to define security perimeters, then # you must use a separate table for each boundary. # @!attribute [rw] sample_findings_table @@ -4846,7 +4909,8 @@ class PublishToSecurityCommandCenter # Create Dataplex Universal Catalog aspects for profiled resources with the # aspect type Sensitive Data Protection Profile. To learn more about aspects, - # see https://cloud.google.com/sensitive-data-protection/docs/add-aspects. + # see + # https://docs.cloud.google.com/sensitive-data-protection/docs/add-aspects. # @!attribute [rw] lower_data_risk_to_low # @return [::Boolean] # Whether creating a Dataplex Universal Catalog aspect for a profiled @@ -4861,10 +4925,10 @@ class PublishToDataplexCatalog end # If set, attaches the [tags] - # (https://cloud.google.com/resource-manager/docs/tags/tags-overview) + # (https://docs.cloud.google.com/resource-manager/docs/tags/tags-overview) # provided to profiled resources. Tags support [access - # control](https://cloud.google.com/iam/docs/tags-access-control). You can - # conditionally grant or deny access to a resource based on whether the + # control](https://docs.cloud.google.com/iam/docs/tags-access-control). You + # can conditionally grant or deny access to a resource based on whether the # resource has a specific tag. # @!attribute [rw] tag_conditions # @return [::Array<::Google::Cloud::Dlp::V2::DataProfileAction::TagResources::TagCondition>] @@ -4881,11 +4945,11 @@ class PublishToDataplexCatalog # @return [::Boolean] # Whether applying a tag to a resource should lower the risk of the profile # for that resource. For example, in conjunction with an [IAM deny - # policy](https://cloud.google.com/iam/docs/deny-overview), you can deny - # all principals a permission if a tag value is present, mitigating the - # risk of the resource. This also lowers the data risk of resources at the - # lower levels of the resource hierarchy. For example, reducing the data - # risk of a table data profile also reduces the data risk of the + # policy](https://docs.cloud.google.com/iam/docs/deny-overview), you can + # deny all principals a permission if a tag value is present, mitigating + # the risk of the resource. This also lowers the data risk of resources at + # the lower levels of the resource hierarchy. For example, reducing the + # data risk of a table data profile also reduces the data risk of the # constituent column data profiles. class TagResources include ::Google::Protobuf::MessageExts @@ -4949,7 +5013,7 @@ module EventType # @!attribute [rw] infotype # @return [::Google::Cloud::Dlp::V2::InfoType] # The [type of - # content](https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference) + # content](https://docs.cloud.google.com/sensitive-data-protection/docs/infotypes-reference) # that might have been found. # @!attribute [rw] quote_info # @return [::Google::Cloud::Dlp::V2::QuoteInfo] @@ -5016,7 +5080,7 @@ class DataProfileFindingRecordLocation # # The generated data profiles are retained according to the # [data retention policy] - # (https://cloud.google.com/sensitive-data-protection/docs/data-profiles#retention). + # (https://docs.cloud.google.com/sensitive-data-protection/docs/data-profiles#retention). # @!attribute [rw] location # @return [::Google::Cloud::Dlp::V2::DataProfileLocation] # The data to scan. @@ -5045,7 +5109,7 @@ class DataProfileFindingRecordLocation # scanned. # # For more information, see - # https://cloud.google.com/sensitive-data-protection/docs/data-profiles#data-residency. + # https://docs.cloud.google.com/sensitive-data-protection/docs/data-profiles#data-residency. # @!attribute [rw] data_profile_actions # @return [::Array<::Google::Cloud::Dlp::V2::DataProfileAction>] # Actions to execute at the completion of the job. @@ -5122,11 +5186,11 @@ class DataProfileLocation # # The generated data profiles are retained according to the # [data retention policy] - # (https://cloud.google.com/sensitive-data-protection/docs/data-profiles#retention). - # @!attribute [rw] name + # (https://docs.cloud.google.com/sensitive-data-protection/docs/data-profiles#retention). + # @!attribute [r] name # @return [::String] - # Unique resource name for the DiscoveryConfig, assigned by the service when - # the DiscoveryConfig is created, for example + # Output only. Unique resource name for the DiscoveryConfig, assigned by the + # service when the DiscoveryConfig is created, for example # `projects/dlp-test-project/locations/global/discoveryConfigs/53234423`. # @!attribute [rw] display_name # @return [::String] @@ -5154,7 +5218,7 @@ class DataProfileLocation # scanned. # # For more information, see - # https://cloud.google.com/sensitive-data-protection/docs/data-profiles#data-residency. + # https://docs.cloud.google.com/sensitive-data-protection/docs/data-profiles#data-residency. # @!attribute [rw] actions # @return [::Array<::Google::Cloud::Dlp::V2::DataProfileAction>] # Actions to execute at the completion of scanning. @@ -5673,7 +5737,7 @@ module CloudSqlSchemaModification # No inspect template should be included in the discovery config for a # security benchmarks scan. Instead, the built-in list of secrets and # credentials infoTypes will be used (see - # https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference#credentials_and_secrets). + # https://docs.cloud.google.com/sensitive-data-protection/docs/infotypes-reference#credentials_and_secrets). # # Credentials and secrets discovered will be reported as vulnerabilities to # Security Command Center. @@ -5753,7 +5817,7 @@ class DiscoveryCloudStorageFilter # For a resource to match the tag filters, the resource must have all of the # provided tags attached. Tags refer to Resource Manager tags bound to the # resource or its ancestors. For more information, see [Manage - # schedules](https://cloud.google.com/sensitive-data-protection/docs/profile-project-cloud-storage#manage-schedules). + # schedules](https://docs.cloud.google.com/sensitive-data-protection/docs/profile-project-cloud-storage#manage-schedules). class FileStoreCollection include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -5847,8 +5911,8 @@ class DiscoveryCloudStorageConditions extend ::Google::Protobuf::MessageExts::ClassMethods # The attribute of an object. See - # https://cloud.google.com/storage/docs/storage-classes for more information - # on storage classes. + # https://docs.cloud.google.com/storage/docs/storage-classes for more + # information on storage classes. module CloudStorageObjectAttribute # Unused. CLOUD_STORAGE_OBJECT_ATTRIBUTE_UNSPECIFIED = 0 @@ -5890,12 +5954,14 @@ module CloudStorageBucketAttribute # Scan buckets regardless of the attribute. ALL_SUPPORTED_BUCKETS = 1 - # Buckets with [Autoclass](https://cloud.google.com/storage/docs/autoclass) + # Buckets with + # [Autoclass](https://docs.cloud.google.com/storage/docs/autoclass) # disabled. Only one of # AUTOCLASS_DISABLED or AUTOCLASS_ENABLED should be set. AUTOCLASS_DISABLED = 2 - # Buckets with [Autoclass](https://cloud.google.com/storage/docs/autoclass) + # Buckets with + # [Autoclass](https://docs.cloud.google.com/storage/docs/autoclass) # enabled. Only one of # AUTOCLASS_DISABLED or AUTOCLASS_ENABLED should be set. Scanning # Autoclass-enabled buckets can affect object storage classes. @@ -5924,7 +5990,7 @@ class DiscoveryFileStoreConditions # Target used to match against for discovery of resources from other clouds. # An [AWS connector in Security Command Center - # (Enterprise](https://cloud.google.com/security-command-center/docs/connect-scc-to-aws) + # (Enterprise](https://docs.cloud.google.com/security-command-center/docs/connect-scc-to-aws) # is required to use this feature. # @!attribute [rw] data_source_type # @return [::Google::Cloud::Dlp::V2::DataSourceType] @@ -6334,15 +6400,15 @@ class DiscoveryVertexDatasetGenerationCadence end # Combines all of the information about a DLP job. - # @!attribute [rw] name + # @!attribute [r] name # @return [::String] - # The server-assigned name. + # Output only. The server-assigned name. # @!attribute [rw] type # @return [::Google::Cloud::Dlp::V2::DlpJobType] # The type of job. - # @!attribute [rw] state + # @!attribute [r] state # @return [::Google::Cloud::Dlp::V2::DlpJob::JobState] - # State of a job. + # Output only. State of a job. # @!attribute [rw] risk_details # @return [::Google::Cloud::Dlp::V2::AnalyzeDataSourceRiskDetails] # Results from analyzing risk of a data source. @@ -6353,28 +6419,28 @@ class DiscoveryVertexDatasetGenerationCadence # Results from inspecting a data source. # # Note: The following fields are mutually exclusive: `inspect_details`, `risk_details`. If a field in that set is populated, all other fields in the set will automatically be cleared. - # @!attribute [rw] create_time + # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] - # Time when the job was created. - # @!attribute [rw] start_time + # Output only. Time when the job was created. + # @!attribute [r] start_time # @return [::Google::Protobuf::Timestamp] - # Time when the job started. - # @!attribute [rw] end_time + # Output only. Time when the job started. + # @!attribute [r] end_time # @return [::Google::Protobuf::Timestamp] - # Time when the job finished. - # @!attribute [rw] last_modified + # Output only. Time when the job finished. + # @!attribute [r] last_modified # @return [::Google::Protobuf::Timestamp] - # Time when the job was last modified by the system. - # @!attribute [rw] job_trigger_name + # Output only. Time when the job was last modified by the system. + # @!attribute [r] job_trigger_name # @return [::String] - # If created by a job trigger, the resource name of the trigger that - # instantiated the job. - # @!attribute [rw] errors + # Output only. If created by a job trigger, the resource name of the trigger + # that instantiated the job. + # @!attribute [r] errors # @return [::Array<::Google::Cloud::Dlp::V2::Error>] - # A stream of errors encountered running the job. - # @!attribute [rw] action_details + # Output only. A stream of errors encountered running the job. + # @!attribute [r] action_details # @return [::Array<::Google::Cloud::Dlp::V2::ActionDetails>] - # Events that should occur after the job has completed. + # Output only. Events that should occur after the job has completed. class DlpJob include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -6425,7 +6491,7 @@ class GetDlpJobRequest # # The format of this value varies depending on whether you have [specified a # processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -6547,7 +6613,7 @@ class DeleteDlpJobRequest # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -6616,7 +6682,7 @@ class GetDeidentifyTemplateRequest # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -6691,10 +6757,10 @@ class DeleteDeidentifyTemplateRequest # Configuration for a custom dictionary created from a data source of any size # up to the maximum size defined in the - # [limits](https://cloud.google.com/sensitive-data-protection/limits) page. The - # artifacts of dictionary creation are stored in the specified Cloud Storage - # location. Consider using `CustomInfoType.Dictionary` for smaller dictionaries - # that satisfy the size requirements. + # [limits](https://docs.cloud.google.com/sensitive-data-protection/limits) + # page. The artifacts of dictionary creation are stored in the specified Cloud + # Storage location. Consider using `CustomInfoType.Dictionary` for smaller + # dictionaries that satisfy the size requirements. # @!attribute [rw] output_path # @return [::Google::Cloud::Dlp::V2::CloudStoragePath] # Location to store dictionary artifacts in Cloud Storage. These files @@ -6727,7 +6793,7 @@ class LargeCustomDictionaryStats # Configuration for stored infoTypes. All fields and subfield are provided # by the user. For more information, see - # https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes. + # https://docs.cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes. # @!attribute [rw] display_name # @return [::String] # Display name of the StoredInfoType (max 256 characters). @@ -6768,20 +6834,20 @@ class StoredInfoTypeStats # @!attribute [rw] config # @return [::Google::Cloud::Dlp::V2::StoredInfoTypeConfig] # StoredInfoType configuration. - # @!attribute [rw] create_time + # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] - # Create timestamp of the version. Read-only, determined by the system - # when the version is created. - # @!attribute [rw] state + # Output only. Create timestamp of the version. Read-only, determined by the + # system when the version is created. + # @!attribute [r] state # @return [::Google::Cloud::Dlp::V2::StoredInfoTypeState] - # Stored info type version state. Read-only, updated by the system - # during dictionary creation. - # @!attribute [rw] errors + # Output only. Stored info type version state. Read-only, updated by the + # system during dictionary creation. + # @!attribute [r] errors # @return [::Array<::Google::Cloud::Dlp::V2::Error>] - # Errors that occurred when creating this storedInfoType version, or - # anomalies detected in the storedInfoType data that render it unusable. Only - # the five most recent errors will be displayed, with the most recent error - # appearing first. + # Output only. Errors that occurred when creating this storedInfoType + # version, or anomalies detected in the storedInfoType data that render it + # unusable. Only the five most recent errors will be displayed, with the most + # recent error appearing first. # # For example, some of the data for stored custom dictionaries is put in # the user's Cloud Storage bucket, and if this data is modified or @@ -6791,9 +6857,9 @@ class StoredInfoTypeStats # use the UpdateStoredInfoType API method to create another version of the # storedInfoType to continue using it, reusing the same `config` if it was # not the source of the error. - # @!attribute [rw] stats + # @!attribute [r] stats # @return [::Google::Cloud::Dlp::V2::StoredInfoTypeStats] - # Statistics about this storedInfoType version. + # Output only. Statistics about this storedInfoType version. class StoredInfoTypeVersion include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -6801,9 +6867,9 @@ class StoredInfoTypeVersion # StoredInfoType resource message that contains information about the current # version and any pending updates. - # @!attribute [rw] name + # @!attribute [r] name # @return [::String] - # Resource name. + # Output only. Resource name. # @!attribute [rw] current_version # @return [::Google::Cloud::Dlp::V2::StoredInfoTypeVersion] # Current version of the stored info type. @@ -6823,7 +6889,7 @@ class StoredInfoType # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -6893,7 +6959,7 @@ class GetStoredInfoTypeRequest # # The format of this value varies depending on the scope of the request # (project or organization) and whether you have [specified a processing - # location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): + # location](https://docs.cloud.google.com/sensitive-data-protection/docs/specifying-location): # # + Projects scope, location specified: # `projects/{project_id}/locations/{location_id}` @@ -7466,7 +7532,7 @@ class DataProfileConfigSnapshot # @!attribute [rw] dataset_location # @return [::String] # If supported, the location where the dataset's data is stored. - # See https://cloud.google.com/bigquery/docs/locations for supported + # See https://docs.cloud.google.com/bigquery/docs/locations for supported # locations. # @!attribute [rw] dataset_id # @return [::String] @@ -7648,7 +7714,7 @@ class OtherInfoTypeSummary # @!attribute [rw] dataset_location # @return [::String] # If supported, the location where the dataset's data is stored. - # See https://cloud.google.com/bigquery/docs/locations for supported + # See https://docs.cloud.google.com/bigquery/docs/locations for supported # BigQuery locations. # @!attribute [rw] dataset_id # @return [::String] @@ -7803,7 +7869,7 @@ module ColumnPolicyState # The location of the file store. # # * Cloud Storage: - # https://cloud.google.com/storage/docs/locations#available-locations + # https://docs.cloud.google.com/storage/docs/locations#available-locations # * Amazon S3: # https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints # @!attribute [rw] data_storage_locations @@ -8450,8 +8516,8 @@ class SecretManagerCredential # Use IAM authentication to connect. This requires the Cloud SQL IAM feature # to be enabled on the instance, which is not the default for Cloud SQL. - # See https://cloud.google.com/sql/docs/postgres/authentication and - # https://cloud.google.com/sql/docs/mysql/authentication. + # See https://docs.cloud.google.com/sql/docs/postgres/authentication and + # https://docs.cloud.google.com/sql/docs/mysql/authentication. class CloudSqlIamCredential include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -8688,12 +8754,12 @@ module Signal EMBEDDING = 7 # The [Cloud SQL Vertex - # AI](https://cloud.google.com/sql/docs/postgres/integrate-cloud-sql-with-vertex-ai) + # AI](https://docs.cloud.google.com/sql/docs/postgres/integrate-cloud-sql-with-vertex-ai) # plugin is installed on the database. VERTEX_PLUGIN = 3 # Support for [Cloud SQL vector - # embeddings](https://cloud.google.com/sql/docs/mysql/enable-vector-search) + # embeddings](https://docs.cloud.google.com/sql/docs/mysql/enable-vector-search) # is enabled on the database. VECTOR_PLUGIN = 4 @@ -8706,6 +8772,252 @@ module Signal end end + # Request message for CreateContentPolicy. + # @!attribute [rw] parent + # @return [::String] + # Required. Parent resource name. + # + # The format of this value varies depending on the scope of the request + # (project): + # + # + Projects scope: + # `projects/{project_id}/locations/{location_id}` + # @!attribute [rw] content_policy + # @return [::Google::Cloud::Dlp::V2::ContentPolicy] + # Required. The content_policy resource. + # @!attribute [rw] content_policy_id + # @return [::String] + # Optional. The content policy ID can contain uppercase and lowercase + # letters, numbers, and hyphens; that is, it must match the regular + # expression: + # `[a-zA-Z\d-_]+`. + # The maximum length is 100 characters. If empty, the system will generate + # a random id. + class CreateContentPolicyRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for GetContentPolicy. + # @!attribute [rw] name + # @return [::String] + # Required. Resource name in the format: + # `projects/{project}/locations/{location}/contentPolicies/{content_policy}`. + class GetContentPolicyRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for ListContentPolicies. + # @!attribute [rw] parent + # @return [::String] + # Required. Resource name of the project, + # for example, `projects/project-id/locations/asia`. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. Number of results per page, max 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. Page token from a previous page to return the next set of + # results. If set, all other request fields must match the original request. + class ListContentPoliciesRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for ListContentPolicies. + # @!attribute [rw] content_policies + # @return [::Array<::Google::Cloud::Dlp::V2::ContentPolicy>] + # List of content policies. + # @!attribute [rw] next_page_token + # @return [::String] + # Token to retrieve the next page of results. An empty value means there are + # no more results. + class ListContentPoliciesResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for UpdateContentPolicy. + # @!attribute [rw] name + # @return [::String] + # Required. Resource name in the format: + # `projects/{project}/locations/{location}/contentPolicies/{content_policy}`. + # @!attribute [rw] content_policy + # @return [::Google::Cloud::Dlp::V2::ContentPolicy] + # Required. The content_policy with new values for the relevant fields. + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # Optional. Mask to control which fields get updated. + class UpdateContentPolicyRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for DeleteContentPolicy. + # @!attribute [rw] name + # @return [::String] + # Required. Resource name of the ContentPolicy to be deleted, in the format: + # `projects/{project}/locations/{location}/contentPolicies/{content_policy}`. + class DeleteContentPolicyRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # A policy to apply to content based on its inspection findings. + # @!attribute [r] name + # @return [::String] + # Output only. Resource name of the policy. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The creation timestamp of a contentPolicy; output-only field. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The last update timestamp of a contentPolicy; output-only + # field. + # @!attribute [rw] display_name + # @return [::String] + # Optional. Display name (max 63 chars) + # @!attribute [rw] inspect_config + # @return [::Google::Cloud::Dlp::V2::InspectConfig] + # Optional. InspectConfig to use to produce findings. + # @!attribute [rw] rules + # @return [::Array<::Google::Cloud::Dlp::V2::ContentPolicy::PolicyRule>] + # Required. Policies to apply, based on the findings returned by inspection. + # The first rule to match applies. + # @!attribute [rw] unsupported_file_type + # @return [::Google::Cloud::Dlp::V2::ContentPolicy::PolicyAction] + # Optional. Action to take if the content is an unsupported file type. + # @!attribute [rw] input_too_large + # @return [::Google::Cloud::Dlp::V2::ContentPolicy::PolicyAction] + # Optional. Action to take if the content is a supported file type but is too + # large to be scanned. + # @!attribute [rw] failed_to_scan_supported_file_type + # @return [::Google::Cloud::Dlp::V2::ContentPolicy::PolicyAction] + # Optional. Action to take if the content is a supported file type and size + # but fails to be scanned, for example because the file is encrypted or + # corrupted. + # @!attribute [rw] default_action + # @return [::Google::Cloud::Dlp::V2::ContentPolicy::PolicyAction] + # Action to take if the content is scanned and no rules match. + # Defaults to returning an ALLOW verdict if not set. + # @!attribute [rw] logging_configs + # @return [::Array<::Google::Cloud::Dlp::V2::ContentPolicy::LoggingConfig>] + # Optional. Log the actions taken by the content policy to external systems. + # @!attribute [r] errors + # @return [::Array<::Google::Cloud::Dlp::V2::Error>] + # Output only. A stream of errors encountered when the policy was applied. + # Output only field. Will return the last 100 errors. Whenever the policy is + # modified this list will be cleared. + class ContentPolicy + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # A possible action to take when applying a content policy. + # @!attribute [rw] return_verdict + # @return [::Google::Cloud::Dlp::V2::ContentPolicyVerdict] + # Optional. If set, the verdict will be returned to the user. + class PolicyAction + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # A single policy rule. The first rule to match from the list above controls + # the result. + # @!attribute [rw] conditions + # @return [::Array<::Google::Cloud::Dlp::V2::ContentPolicy::PolicyRule::PolicyCondition>] + # Optional. Conditions that must match for this rule to apply. + # All conditions must match (`AND`). For `OR` conditions, use multiple + # rules. + # @!attribute [rw] action + # @return [::Google::Cloud::Dlp::V2::ContentPolicy::PolicyAction] + # Required. Action to take if this rule applies. + class PolicyRule + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # A condition that must match for this rule to apply. + # @!attribute [rw] info_type_condition + # @return [::Google::Cloud::Dlp::V2::ContentPolicy::PolicyRule::PolicyCondition::InfoTypeCondition] + # A condition based on info types. + class PolicyCondition + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # A info type based condition. + # @!attribute [rw] min_count + # @return [::Integer] + # Optional. The minimum total number of findings of all matching info + # types required for this condition to evaluate to true. Defaults to 1 + # if unset. + # @!attribute [rw] info_types + # @return [::Google::Cloud::Dlp::V2::ContentPolicy::PolicyRule::PolicyCondition::InfoTypeCondition::InfoTypes] + # match any of these info types. + # + # Note: The following fields are mutually exclusive: `info_types`, `any_info_type`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] any_info_type + # @return [::Google::Protobuf::Empty] + # match any info types. + # + # Note: The following fields are mutually exclusive: `any_info_type`, `info_types`. If a field in that set is populated, all other fields in the set will automatically be cleared. + class InfoTypeCondition + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Info types to match. + # @!attribute [rw] info_type_names + # @return [::Array<::String>] + # Required. A list of info types to match. + class InfoTypes + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + end + + # A single logging configuration. + # @!attribute [rw] log_to_big_query + # @return [::Google::Cloud::Dlp::V2::ContentPolicy::LoggingConfig::LogToBigQuery] + # Optional. Log the actions taken to a BigQuery table. + class LoggingConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Configuration for logging content policy actions to BigQuery. + # @!attribute [rw] project_id + # @return [::String] + # Required. The ID of the project containing the BigQuery table to write + # to. + # @!attribute [rw] dataset_id + # @return [::String] + # Required. The ID of the dataset containing the BigQuery table to write + # to. + # @!attribute [rw] table_id + # @return [::String] + # Required. The ID of the BigQuery table to write to. + class LogToBigQuery + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + + # Possible results of applying a content policy. This may expand to include + # additional result types in the future. + module ContentPolicyVerdict + # Not used. + CONTENT_POLICY_VERDICT_UNSPECIFIED = 0 + + # The policy allows the provided content to be used. + ALLOW = 1 + + # The policy prevents the provided content from being used. This should + # result in a blocked file upload, exclusion from training dataset, or + # other similar block action. (specific action will depend on the caller). + BLOCK = 2 + end + # Enum of possible outcomes of transformations. SUCCESS if transformation and # storing of transformation was successful, otherwise, reason for not # transforming. diff --git a/google-cloud-dlp-v2/proto_docs/google/privacy/dlp/v2/storage.rb b/google-cloud-dlp-v2/proto_docs/google/privacy/dlp/v2/storage.rb index 8120b766540f..2dc048cda1fa 100644 --- a/google-cloud-dlp-v2/proto_docs/google/privacy/dlp/v2/storage.rb +++ b/google-cloud-dlp-v2/proto_docs/google/privacy/dlp/v2/storage.rb @@ -27,7 +27,7 @@ module V2 # Name of the information type. Either a name of your choosing when # creating a CustomInfoType, or one of the names listed # at - # https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference + # https://docs.cloud.google.com/sensitive-data-protection/docs/infotypes-reference # when specifying a built-in type. When sending Cloud DLP results to Data # Catalog, infoType names should conform to the pattern # `[A-Za-z0-9$_-]{1,64}`. @@ -112,28 +112,33 @@ class StoredType # @return [::Google::Cloud::Dlp::V2::CustomInfoType::Dictionary] # A list of phrases to detect as a CustomInfoType. # - # Note: The following fields are mutually exclusive: `dictionary`, `regex`, `surrogate_type`, `stored_type`, `metadata_key_value_expression`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `dictionary`, `regex`, `surrogate_type`, `stored_type`, `metadata_key_value_expression`, `file_label_info_type`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] regex # @return [::Google::Cloud::Dlp::V2::CustomInfoType::Regex] # Regular expression based CustomInfoType. # - # Note: The following fields are mutually exclusive: `regex`, `dictionary`, `surrogate_type`, `stored_type`, `metadata_key_value_expression`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `regex`, `dictionary`, `surrogate_type`, `stored_type`, `metadata_key_value_expression`, `file_label_info_type`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] surrogate_type # @return [::Google::Cloud::Dlp::V2::CustomInfoType::SurrogateType] # Message for detecting output from deidentification transformations that # support reversing. # - # Note: The following fields are mutually exclusive: `surrogate_type`, `dictionary`, `regex`, `stored_type`, `metadata_key_value_expression`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `surrogate_type`, `dictionary`, `regex`, `stored_type`, `metadata_key_value_expression`, `file_label_info_type`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] stored_type # @return [::Google::Cloud::Dlp::V2::StoredType] # Loads an existing `StoredInfoType` resource. # - # Note: The following fields are mutually exclusive: `stored_type`, `dictionary`, `regex`, `surrogate_type`, `metadata_key_value_expression`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `stored_type`, `dictionary`, `regex`, `surrogate_type`, `metadata_key_value_expression`, `file_label_info_type`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] metadata_key_value_expression # @return [::Google::Cloud::Dlp::V2::CustomInfoType::MetadataKeyValueExpression] # Key-value pair to detect in the metadata. # - # Note: The following fields are mutually exclusive: `metadata_key_value_expression`, `dictionary`, `regex`, `surrogate_type`, `stored_type`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `metadata_key_value_expression`, `dictionary`, `regex`, `surrogate_type`, `stored_type`, `file_label_info_type`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] file_label_info_type + # @return [::Google::Cloud::Dlp::V2::CustomInfoType::FileLabelInfoType] + # File label to detect. + # + # Note: The following fields are mutually exclusive: `file_label_info_type`, `dictionary`, `regex`, `surrogate_type`, `stored_type`, `metadata_key_value_expression`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] detection_rules # @return [::Array<::Google::Cloud::Dlp::V2::CustomInfoType::DetectionRule>] # Set of detection rules to apply to all findings of this CustomInfoType. @@ -174,9 +179,9 @@ class CustomInfoType # Dictionary words containing a large number of characters that are not # letters or digits may result in unexpected findings because such characters # are treated as whitespace. The - # [limits](https://cloud.google.com/sensitive-data-protection/limits) page - # contains details about the size limits of dictionaries. For dictionaries - # that do not fit within these constraints, consider using + # [limits](https://docs.cloud.google.com/sensitive-data-protection/limits) + # page contains details about the size limits of dictionaries. For + # dictionaries that do not fit within these constraints, consider using # `LargeCustomDictionaryConfig` in the `StoredInfoType` API. # @!attribute [rw] word_list # @return [::Google::Cloud::Dlp::V2::CustomInfoType::Dictionary::WordList] @@ -222,7 +227,7 @@ class Regex # Message for detecting output from deidentification transformations # such as - # [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig). + # [`CryptoReplaceFfxFpeConfig`](https://docs.cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig). # These types of transformations are # those that perform pseudonymization, thereby producing a "surrogate" as # output. This should be used in conjunction with a field on the @@ -247,6 +252,57 @@ class MetadataKeyValueExpression extend ::Google::Protobuf::MessageExts::ClassMethods end + # Configuration for a custom infoType that detects file labels. + # @!attribute [rw] sensitivity_label + # @return [::Google::Cloud::Dlp::V2::CustomInfoType::FileLabelInfoType::SensitivityLabel] + # Sensitivity labels published by Microsoft. + # + # Note: The following fields are mutually exclusive: `sensitivity_label`, `google_drive_label`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] google_drive_label + # @return [::Google::Cloud::Dlp::V2::CustomInfoType::FileLabelInfoType::GoogleDriveLabel] + # Google Drive labels published by Google. + # + # Note: The following fields are mutually exclusive: `google_drive_label`, `sensitivity_label`. If a field in that set is populated, all other fields in the set will automatically be cleared. + class FileLabelInfoType + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Sensitivity labels published by Microsoft. + # @!attribute [rw] guid + # @return [::String] + # The GUID of the sensitivity label. + class SensitivityLabel + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Google Drive labels published by Google. + # @!attribute [rw] label_id + # @return [::String] + # The [label + # ID](https://developers.google.com/workspace/drive/labels/guides/overview) + # of the Google Drive label. + # @!attribute [rw] label_fields_to_match + # @return [::Array<::Google::Cloud::Dlp::V2::CustomInfoType::FileLabelInfoType::GoogleDriveLabel::LabelField>] + # The field values of the Google Drive label to match. + class GoogleDriveLabel + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The field values of the Google Drive label to match. + # @!attribute [rw] id + # @return [::String] + # The identifier of the Label Field. + # @!attribute [rw] value + # @return [::String] + # The value of the Label Field to match. + class LabelField + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a # `CustomInfoType` to alter behavior under certain circumstances, depending # on the specific details of the rule. Not supported for the `surrogate_type` @@ -266,7 +322,7 @@ class DetectionRule # if you want to modify the likelihood of an entire column of findngs, # set this to 1. For more information, see # [Hotword example: Set the match likelihood of a table column] - # (https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes-likelihood#match-column-values). + # (https://docs.cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes-likelihood#match-column-values). # @!attribute [rw] window_after # @return [::Integer] # Number of characters after the finding to consider. @@ -318,7 +374,7 @@ class LikelihoodAdjustment # For tabular data, if you want to modify the likelihood of an entire # column of findngs, see # [Hotword example: Set the match likelihood of a table column] - # (https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes-likelihood#match-column-values). + # (https://docs.cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes-likelihood#match-column-values). # @!attribute [rw] likelihood_adjustment # @return [::Google::Cloud::Dlp::V2::CustomInfoType::DetectionRule::LikelihoodAdjustment] # Likelihood adjustment to apply to all matching findings. @@ -460,7 +516,7 @@ class CloudStorageRegexFileSet # This field can't be set if de-identification is requested. For certain file # types, setting this field has no effect. For more information, see [Limits # on bytes scanned per - # file](https://cloud.google.com/sensitive-data-protection/docs/supported-file-types#max-byte-size-per-file). + # file](https://docs.cloud.google.com/sensitive-data-protection/docs/supported-file-types#max-byte-size-per-file). # @!attribute [rw] bytes_limit_per_file_percent # @return [::Integer] # Max percentage of bytes to scan from a file. The rest are omitted. The @@ -470,7 +526,7 @@ class CloudStorageRegexFileSet # This field can't be set if de-identification is requested. For certain file # types, setting this field has no effect. For more information, see [Limits # on bytes scanned per - # file](https://cloud.google.com/sensitive-data-protection/docs/supported-file-types#max-byte-size-per-file). + # file](https://docs.cloud.google.com/sensitive-data-protection/docs/supported-file-types#max-byte-size-per-file). # @!attribute [rw] file_types # @return [::Array<::Google::Cloud::Dlp::V2::FileType>] # List of file type groups to include in the scan. @@ -576,7 +632,7 @@ class CloudStoragePath # TimespanConfig. # # Caution: A [known - # issue](https://cloud.google.com/sensitive-data-protection/docs/known-issues#bq-sampling) + # issue](https://docs.cloud.google.com/sensitive-data-protection/docs/known-issues#bq-sampling) # is causing the `rowsLimitPercent` field to behave unexpectedly. We # recommend using `rowsLimit` instead. # @!attribute [rw] sample_method @@ -670,7 +726,7 @@ class StorageConfig # `TIMESTAMP`, and `DATETIME`. # # If your BigQuery table is [partitioned at ingestion - # time](https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time), + # time](https://docs.cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time), # you can use any of the following pseudo-columns as your timestamp field. # When used with Cloud DLP, these pseudo-column names are case sensitive. # @@ -687,7 +743,7 @@ class StorageConfig # # See the # [known - # issue](https://cloud.google.com/sensitive-data-protection/docs/known-issues#bq-timespan) + # issue](https://docs.cloud.google.com/sensitive-data-protection/docs/known-issues#bq-timespan) # related to this operation. # @!attribute [rw] enable_auto_population_of_timespan_config # @return [::Boolean] @@ -705,7 +761,7 @@ class StorageConfig # timestamp will result in skipped rows. # # See the [known - # issue](https://cloud.google.com/sensitive-data-protection/docs/known-issues#recently-streamed-data) + # issue](https://docs.cloud.google.com/sensitive-data-protection/docs/known-issues#recently-streamed-data) # related to this operation. class TimespanConfig include ::Google::Protobuf::MessageExts @@ -952,7 +1008,7 @@ class TableOptions # # For more information about each likelihood level # and how likelihood works, see [Match - # likelihood](https://cloud.google.com/sensitive-data-protection/docs/likelihood). + # likelihood](https://docs.cloud.google.com/sensitive-data-protection/docs/likelihood). module Likelihood # Default value; same as POSSIBLE. LIKELIHOOD_UNSPECIFIED = 0 diff --git a/google-cloud-dlp-v2/snippets/dlp_service/create_content_policy.rb b/google-cloud-dlp-v2/snippets/dlp_service/create_content_policy.rb new file mode 100644 index 000000000000..38669ed24d4a --- /dev/null +++ b/google-cloud-dlp-v2/snippets/dlp_service/create_content_policy.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dlp_v2_generated_DlpService_CreateContentPolicy_sync] +require "google/cloud/dlp/v2" + +## +# Snippet for the create_content_policy call in the DlpService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dlp::V2::DlpService::Client#create_content_policy. +# +def create_content_policy + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dlp::V2::DlpService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dlp::V2::CreateContentPolicyRequest.new + + # Call the create_content_policy method. + result = client.create_content_policy request + + # The returned object is of type Google::Cloud::Dlp::V2::ContentPolicy. + p result +end +# [END dlp_v2_generated_DlpService_CreateContentPolicy_sync] diff --git a/google-cloud-dlp-v2/snippets/dlp_service/delete_content_policy.rb b/google-cloud-dlp-v2/snippets/dlp_service/delete_content_policy.rb new file mode 100644 index 000000000000..00302a6cb838 --- /dev/null +++ b/google-cloud-dlp-v2/snippets/dlp_service/delete_content_policy.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dlp_v2_generated_DlpService_DeleteContentPolicy_sync] +require "google/cloud/dlp/v2" + +## +# Snippet for the delete_content_policy call in the DlpService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dlp::V2::DlpService::Client#delete_content_policy. +# +def delete_content_policy + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dlp::V2::DlpService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dlp::V2::DeleteContentPolicyRequest.new + + # Call the delete_content_policy method. + result = client.delete_content_policy request + + # The returned object is of type Google::Protobuf::Empty. + p result +end +# [END dlp_v2_generated_DlpService_DeleteContentPolicy_sync] diff --git a/google-cloud-dlp-v2/snippets/dlp_service/get_content_policy.rb b/google-cloud-dlp-v2/snippets/dlp_service/get_content_policy.rb new file mode 100644 index 000000000000..1706ad4abcb3 --- /dev/null +++ b/google-cloud-dlp-v2/snippets/dlp_service/get_content_policy.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dlp_v2_generated_DlpService_GetContentPolicy_sync] +require "google/cloud/dlp/v2" + +## +# Snippet for the get_content_policy call in the DlpService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dlp::V2::DlpService::Client#get_content_policy. +# +def get_content_policy + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dlp::V2::DlpService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dlp::V2::GetContentPolicyRequest.new + + # Call the get_content_policy method. + result = client.get_content_policy request + + # The returned object is of type Google::Cloud::Dlp::V2::ContentPolicy. + p result +end +# [END dlp_v2_generated_DlpService_GetContentPolicy_sync] diff --git a/google-cloud-dlp-v2/snippets/dlp_service/list_content_policies.rb b/google-cloud-dlp-v2/snippets/dlp_service/list_content_policies.rb new file mode 100644 index 000000000000..0c0f00936aa2 --- /dev/null +++ b/google-cloud-dlp-v2/snippets/dlp_service/list_content_policies.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dlp_v2_generated_DlpService_ListContentPolicies_sync] +require "google/cloud/dlp/v2" + +## +# Snippet for the list_content_policies call in the DlpService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dlp::V2::DlpService::Client#list_content_policies. +# +def list_content_policies + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dlp::V2::DlpService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dlp::V2::ListContentPoliciesRequest.new + + # Call the list_content_policies method. + result = client.list_content_policies request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::Dlp::V2::ContentPolicy. + p item + end +end +# [END dlp_v2_generated_DlpService_ListContentPolicies_sync] diff --git a/google-cloud-dlp-v2/snippets/dlp_service/update_content_policy.rb b/google-cloud-dlp-v2/snippets/dlp_service/update_content_policy.rb new file mode 100644 index 000000000000..a2d74eceabc8 --- /dev/null +++ b/google-cloud-dlp-v2/snippets/dlp_service/update_content_policy.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dlp_v2_generated_DlpService_UpdateContentPolicy_sync] +require "google/cloud/dlp/v2" + +## +# Snippet for the update_content_policy call in the DlpService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dlp::V2::DlpService::Client#update_content_policy. +# +def update_content_policy + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dlp::V2::DlpService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dlp::V2::UpdateContentPolicyRequest.new + + # Call the update_content_policy method. + result = client.update_content_policy request + + # The returned object is of type Google::Cloud::Dlp::V2::ContentPolicy. + p result +end +# [END dlp_v2_generated_DlpService_UpdateContentPolicy_sync] diff --git a/google-cloud-dlp-v2/test/google/cloud/dlp/v2/dlp_service_paths_test.rb b/google-cloud-dlp-v2/test/google/cloud/dlp/v2/dlp_service_paths_test.rb index fb06b253390c..9e03564a79f7 100644 --- a/google-cloud-dlp-v2/test/google/cloud/dlp/v2/dlp_service_paths_test.rb +++ b/google-cloud-dlp-v2/test/google/cloud/dlp/v2/dlp_service_paths_test.rb @@ -71,6 +71,18 @@ def test_connection_path end end + def test_content_policy_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::Dlp::V2::DlpService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.content_policy_path project: "value0", location: "value1", content_policy: "value2" + assert_equal "projects/value0/locations/value1/contentPolicies/value2", path + end + end + def test_deidentify_template_path grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure ::Gapic::ServiceStub.stub :new, DummyStub.new do diff --git a/google-cloud-dlp-v2/test/google/cloud/dlp/v2/dlp_service_rest_test.rb b/google-cloud-dlp-v2/test/google/cloud/dlp/v2/dlp_service_rest_test.rb index 684df2bd136f..214bd1879691 100644 --- a/google-cloud-dlp-v2/test/google/cloud/dlp/v2/dlp_service_rest_test.rb +++ b/google-cloud-dlp-v2/test/google/cloud/dlp/v2/dlp_service_rest_test.rb @@ -3155,6 +3155,282 @@ def test_update_connection end end + def test_create_content_policy + # Create test objects. + client_result = ::Google::Cloud::Dlp::V2::ContentPolicy.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + content_policy = {} + content_policy_id = "hello world" + + create_content_policy_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dlp::V2::DlpService::Rest::ServiceStub.stub :transcode_create_content_policy_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_content_policy_client_stub do + # Create client + c = ::Google::Cloud::Dlp::V2::DlpService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + c.create_content_policy({ parent: parent, content_policy: content_policy, content_policy_id: content_policy_id }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + c.create_content_policy parent: parent, content_policy: content_policy, content_policy_id: content_policy_id do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + c.create_content_policy ::Google::Cloud::Dlp::V2::CreateContentPolicyRequest.new(parent: parent, content_policy: content_policy, content_policy_id: content_policy_id) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + c.create_content_policy({ parent: parent, content_policy: content_policy, content_policy_id: content_policy_id }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + c.create_content_policy(::Google::Cloud::Dlp::V2::CreateContentPolicyRequest.new(parent: parent, content_policy: content_policy, content_policy_id: content_policy_id), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_content_policy_client_stub.call_count + end + end + end + + def test_update_content_policy + # Create test objects. + client_result = ::Google::Cloud::Dlp::V2::ContentPolicy.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + content_policy = {} + update_mask = {} + + update_content_policy_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dlp::V2::DlpService::Rest::ServiceStub.stub :transcode_update_content_policy_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, update_content_policy_client_stub do + # Create client + c = ::Google::Cloud::Dlp::V2::DlpService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + c.update_content_policy({ name: name, content_policy: content_policy, update_mask: update_mask }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + c.update_content_policy name: name, content_policy: content_policy, update_mask: update_mask do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + c.update_content_policy ::Google::Cloud::Dlp::V2::UpdateContentPolicyRequest.new(name: name, content_policy: content_policy, update_mask: update_mask) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + c.update_content_policy({ name: name, content_policy: content_policy, update_mask: update_mask }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + c.update_content_policy(::Google::Cloud::Dlp::V2::UpdateContentPolicyRequest.new(name: name, content_policy: content_policy, update_mask: update_mask), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, update_content_policy_client_stub.call_count + end + end + end + + def test_get_content_policy + # Create test objects. + client_result = ::Google::Cloud::Dlp::V2::ContentPolicy.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_content_policy_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dlp::V2::DlpService::Rest::ServiceStub.stub :transcode_get_content_policy_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_content_policy_client_stub do + # Create client + c = ::Google::Cloud::Dlp::V2::DlpService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + c.get_content_policy({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + c.get_content_policy name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + c.get_content_policy ::Google::Cloud::Dlp::V2::GetContentPolicyRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + c.get_content_policy({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + c.get_content_policy(::Google::Cloud::Dlp::V2::GetContentPolicyRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_content_policy_client_stub.call_count + end + end + end + + def test_list_content_policies + # Create test objects. + client_result = ::Google::Cloud::Dlp::V2::ListContentPoliciesResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + + list_content_policies_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dlp::V2::DlpService::Rest::ServiceStub.stub :transcode_list_content_policies_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_content_policies_client_stub do + # Create client + c = ::Google::Cloud::Dlp::V2::DlpService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + c.list_content_policies({ parent: parent, page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + c.list_content_policies parent: parent, page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + c.list_content_policies ::Google::Cloud::Dlp::V2::ListContentPoliciesRequest.new(parent: parent, page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + c.list_content_policies({ parent: parent, page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + c.list_content_policies(::Google::Cloud::Dlp::V2::ListContentPoliciesRequest.new(parent: parent, page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_content_policies_client_stub.call_count + end + end + end + + def test_delete_content_policy + # Create test objects. + client_result = ::Google::Protobuf::Empty.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_content_policy_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dlp::V2::DlpService::Rest::ServiceStub.stub :transcode_delete_content_policy_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_content_policy_client_stub do + # Create client + c = ::Google::Cloud::Dlp::V2::DlpService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + c.delete_content_policy({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + c.delete_content_policy name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + c.delete_content_policy ::Google::Cloud::Dlp::V2::DeleteContentPolicyRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + c.delete_content_policy({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + c.delete_content_policy(::Google::Cloud::Dlp::V2::DeleteContentPolicyRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_content_policy_client_stub.call_count + end + end + end + def test_configure credentials_token = :dummy_value diff --git a/google-cloud-dlp-v2/test/google/cloud/dlp/v2/dlp_service_test.rb b/google-cloud-dlp-v2/test/google/cloud/dlp/v2/dlp_service_test.rb index d49935427740..1efee662dc6a 100644 --- a/google-cloud-dlp-v2/test/google/cloud/dlp/v2/dlp_service_test.rb +++ b/google-cloud-dlp-v2/test/google/cloud/dlp/v2/dlp_service_test.rb @@ -3528,6 +3528,313 @@ def test_update_connection end end + def test_create_content_policy + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dlp::V2::ContentPolicy.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + content_policy = {} + content_policy_id = "hello world" + + create_content_policy_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :create_content_policy, name + assert_kind_of ::Google::Cloud::Dlp::V2::CreateContentPolicyRequest, request + assert_equal "hello world", request["parent"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::Dlp::V2::ContentPolicy), request["content_policy"] + assert_equal "hello world", request["content_policy_id"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, create_content_policy_client_stub do + # Create client + c = ::Google::Cloud::Dlp::V2::DlpService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + c.create_content_policy({ parent: parent, content_policy: content_policy, content_policy_id: content_policy_id }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + c.create_content_policy parent: parent, content_policy: content_policy, content_policy_id: content_policy_id do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + c.create_content_policy ::Google::Cloud::Dlp::V2::CreateContentPolicyRequest.new(parent: parent, content_policy: content_policy, content_policy_id: content_policy_id) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + c.create_content_policy({ parent: parent, content_policy: content_policy, content_policy_id: content_policy_id }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + c.create_content_policy(::Google::Cloud::Dlp::V2::CreateContentPolicyRequest.new(parent: parent, content_policy: content_policy, content_policy_id: content_policy_id), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, create_content_policy_client_stub.call_rpc_count + end + end + + def test_update_content_policy + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dlp::V2::ContentPolicy.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + content_policy = {} + update_mask = {} + + update_content_policy_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :update_content_policy, name + assert_kind_of ::Google::Cloud::Dlp::V2::UpdateContentPolicyRequest, request + assert_equal "hello world", request["name"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::Dlp::V2::ContentPolicy), request["content_policy"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::FieldMask), request["update_mask"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, update_content_policy_client_stub do + # Create client + c = ::Google::Cloud::Dlp::V2::DlpService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + c.update_content_policy({ name: name, content_policy: content_policy, update_mask: update_mask }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + c.update_content_policy name: name, content_policy: content_policy, update_mask: update_mask do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + c.update_content_policy ::Google::Cloud::Dlp::V2::UpdateContentPolicyRequest.new(name: name, content_policy: content_policy, update_mask: update_mask) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + c.update_content_policy({ name: name, content_policy: content_policy, update_mask: update_mask }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + c.update_content_policy(::Google::Cloud::Dlp::V2::UpdateContentPolicyRequest.new(name: name, content_policy: content_policy, update_mask: update_mask), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, update_content_policy_client_stub.call_rpc_count + end + end + + def test_get_content_policy + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dlp::V2::ContentPolicy.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_content_policy_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_content_policy, name + assert_kind_of ::Google::Cloud::Dlp::V2::GetContentPolicyRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_content_policy_client_stub do + # Create client + c = ::Google::Cloud::Dlp::V2::DlpService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + c.get_content_policy({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + c.get_content_policy name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + c.get_content_policy ::Google::Cloud::Dlp::V2::GetContentPolicyRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + c.get_content_policy({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + c.get_content_policy(::Google::Cloud::Dlp::V2::GetContentPolicyRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_content_policy_client_stub.call_rpc_count + end + end + + def test_list_content_policies + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dlp::V2::ListContentPoliciesResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + + list_content_policies_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_content_policies, name + assert_kind_of ::Google::Cloud::Dlp::V2::ListContentPoliciesRequest, request + assert_equal "hello world", request["parent"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_content_policies_client_stub do + # Create client + c = ::Google::Cloud::Dlp::V2::DlpService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + c.list_content_policies({ parent: parent, page_size: page_size, page_token: page_token }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + c.list_content_policies parent: parent, page_size: page_size, page_token: page_token do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + c.list_content_policies ::Google::Cloud::Dlp::V2::ListContentPoliciesRequest.new(parent: parent, page_size: page_size, page_token: page_token) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + c.list_content_policies({ parent: parent, page_size: page_size, page_token: page_token }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + c.list_content_policies(::Google::Cloud::Dlp::V2::ListContentPoliciesRequest.new(parent: parent, page_size: page_size, page_token: page_token), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_content_policies_client_stub.call_rpc_count + end + end + + def test_delete_content_policy + # Create GRPC objects. + grpc_response = ::Google::Protobuf::Empty.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_content_policy_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :delete_content_policy, name + assert_kind_of ::Google::Cloud::Dlp::V2::DeleteContentPolicyRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, delete_content_policy_client_stub do + # Create client + c = ::Google::Cloud::Dlp::V2::DlpService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + c.delete_content_policy({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + c.delete_content_policy name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + c.delete_content_policy ::Google::Cloud::Dlp::V2::DeleteContentPolicyRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + c.delete_content_policy({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + c.delete_content_policy(::Google::Cloud::Dlp::V2::DeleteContentPolicyRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, delete_content_policy_client_stub.call_rpc_count + end + end + def test_configure grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure diff --git a/google-cloud-dlp/lib/google/cloud/dlp.rb b/google-cloud-dlp/lib/google/cloud/dlp.rb index f99234379ef1..2c6733fcb80b 100644 --- a/google-cloud-dlp/lib/google/cloud/dlp.rb +++ b/google-cloud-dlp/lib/google/cloud/dlp.rb @@ -69,7 +69,7 @@ module Dlp # inspection, classification, and de-identification platform that works # on text, images, and Google Cloud storage repositories. # To learn more about concepts and find how-to guides see - # https://cloud.google.com/sensitive-data-protection/docs/. + # https://docs.cloud.google.com/sensitive-data-protection/docs/. # # @param version [::String, ::Symbol] The API version to connect to. Optional. # Defaults to `:v2`. diff --git a/google-cloud-gemini_data_analytics-v1/lib/google/cloud/geminidataanalytics/v1/datasource_pb.rb b/google-cloud-gemini_data_analytics-v1/lib/google/cloud/geminidataanalytics/v1/datasource_pb.rb index 3b3ecdbaf883..67bccb313181 100644 --- a/google-cloud-gemini_data_analytics-v1/lib/google/cloud/geminidataanalytics/v1/datasource_pb.rb +++ b/google-cloud-gemini_data_analytics-v1/lib/google/cloud/geminidataanalytics/v1/datasource_pb.rb @@ -8,7 +8,7 @@ require 'google/protobuf/struct_pb' -descriptor_data = "\n4google/cloud/geminidataanalytics/v1/datasource.proto\x12#google.cloud.geminidataanalytics.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1cgoogle/protobuf/struct.proto\"\x93\x02\n\x14\x44\x61tasourceReferences\x12J\n\x02\x62q\x18\x01 \x01(\x0b\x32<.google.cloud.geminidataanalytics.v1.BigQueryTableReferencesH\x00\x12Q\n\x06studio\x18\x02 \x01(\x0b\x32?.google.cloud.geminidataanalytics.v1.StudioDatasourceReferencesH\x00\x12N\n\x06looker\x18\x03 \x01(\x0b\x32<.google.cloud.geminidataanalytics.v1.LookerExploreReferencesH\x00\x42\x0c\n\nreferences\"u\n\x17\x42igQueryTableReferences\x12Z\n\x10table_references\x18\x01 \x03(\x0b\x32;.google.cloud.geminidataanalytics.v1.BigQueryTableReferenceB\x03\xe0\x41\x01\"\xa3\x01\n\x16\x42igQueryTableReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\ndataset_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08table_id\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12@\n\x06schema\x18\x06 \x01(\x0b\x32+.google.cloud.geminidataanalytics.v1.SchemaB\x03\xe0\x41\x01\"|\n\x1aStudioDatasourceReferences\x12^\n\x11studio_references\x18\x02 \x03(\x0b\x32>.google.cloud.geminidataanalytics.v1.StudioDatasourceReferenceB\x03\xe0\x41\x01\"7\n\x19StudioDatasourceReference\x12\x1a\n\rdatasource_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"w\n\x17LookerExploreReferences\x12\\\n\x12\x65xplore_references\x18\x01 \x03(\x0b\x32;.google.cloud.geminidataanalytics.v1.LookerExploreReferenceB\x03\xe0\x41\x02\"\x9e\x02\n\x16LookerExploreReference\x12\x1d\n\x13looker_instance_uri\x18\t \x01(\tH\x00\x12\x66\n\x1cprivate_looker_instance_info\x18\n \x01(\x0b\x32>.google.cloud.geminidataanalytics.v1.PrivateLookerInstanceInfoH\x00\x12\x19\n\x0clookml_model\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x07\x65xplore\x18\x05 \x01(\tB\x03\xe0\x41\x02\x12@\n\x06schema\x18\x08 \x01(\x0b\x32+.google.cloud.geminidataanalytics.v1.SchemaB\x03\xe0\x41\x01\x42\n\n\x08instance\"r\n\x1e\x42igQueryPropertyGraphReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\ndataset_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11property_graph_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\"W\n\x19PrivateLookerInstanceInfo\x12\x1a\n\x12looker_instance_id\x18\x01 \x01(\t\x12\x1e\n\x16service_directory_name\x18\x02 \x01(\t\"\xe4\x03\n\nDatasource\x12_\n\x18\x62igquery_table_reference\x18\x01 \x01(\x0b\x32;.google.cloud.geminidataanalytics.v1.BigQueryTableReferenceH\x00\x12\x1e\n\x14studio_datasource_id\x18\x02 \x01(\tH\x00\x12_\n\x18looker_explore_reference\x18\x04 \x01(\x0b\x32;.google.cloud.geminidataanalytics.v1.LookerExploreReferenceH\x00\x12p\n!bigquery_property_graph_reference\x18\x10 \x01(\x0b\x32\x43.google.cloud.geminidataanalytics.v1.BigQueryPropertyGraphReferenceH\x00\x12@\n\x06schema\x18\x07 \x01(\x0b\x32+.google.cloud.geminidataanalytics.v1.SchemaB\x03\xe0\x41\x01\x12\x33\n\rstruct_schema\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x03\xe0\x41\x01\x42\x0b\n\treference\"\xef\x01\n\x06Schema\x12?\n\x06\x66ields\x18\x01 \x03(\x0b\x32*.google.cloud.geminidataanalytics.v1.FieldB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08synonyms\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12\x11\n\x04tags\x18\x04 \x03(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x45\n\x07\x66ilters\x18\x06 \x03(\x0b\x32/.google.cloud.geminidataanalytics.v1.DataFilterB\x03\xe0\x41\x01\"\x95\x02\n\x05\x46ield\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04type\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04mode\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08synonyms\x18\x06 \x03(\tB\x03\xe0\x41\x01\x12\x11\n\x04tags\x18\x07 \x03(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\x42\n\tsubfields\x18\t \x03(\x0b\x32*.google.cloud.geminidataanalytics.v1.FieldB\x03\xe0\x41\x01\x12\x15\n\x08\x63\x61tegory\x18\n \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0cvalue_format\x18\x0b \x01(\tB\x03\xe0\x41\x01\"|\n\nDataFilter\x12\x12\n\x05\x66ield\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x46\n\x04type\x18\x03 \x01(\x0e\x32\x33.google.cloud.geminidataanalytics.v1.DataFilterTypeB\x03\xe0\x41\x01*E\n\x0e\x44\x61taFilterType\x12 \n\x1c\x44\x41TA_FILTER_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rALWAYS_FILTER\x10\x01\x42\x8c\x02\n\'com.google.cloud.geminidataanalytics.v1B\x0f\x44\x61tasourceProtoP\x01ZYcloud.google.com/go/geminidataanalytics/apiv1/geminidataanalyticspb;geminidataanalyticspb\xaa\x02#Google.Cloud.GeminiDataAnalytics.V1\xca\x02#Google\\Cloud\\GeminiDataAnalytics\\V1\xea\x02&Google::Cloud::GeminiDataAnalytics::V1b\x06proto3" +descriptor_data = "\n4google/cloud/geminidataanalytics/v1/datasource.proto\x12#google.cloud.geminidataanalytics.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1cgoogle/protobuf/struct.proto\"\x93\x02\n\x14\x44\x61tasourceReferences\x12J\n\x02\x62q\x18\x01 \x01(\x0b\x32<.google.cloud.geminidataanalytics.v1.BigQueryTableReferencesH\x00\x12Q\n\x06studio\x18\x02 \x01(\x0b\x32?.google.cloud.geminidataanalytics.v1.StudioDatasourceReferencesH\x00\x12N\n\x06looker\x18\x03 \x01(\x0b\x32<.google.cloud.geminidataanalytics.v1.LookerExploreReferencesH\x00\x42\x0c\n\nreferences\"\xe2\x01\n\x17\x42igQueryTableReferences\x12Z\n\x10table_references\x18\x01 \x03(\x0b\x32;.google.cloud.geminidataanalytics.v1.BigQueryTableReferenceB\x03\xe0\x41\x01\x12k\n\x19property_graph_references\x18\x02 \x03(\x0b\x32\x43.google.cloud.geminidataanalytics.v1.BigQueryPropertyGraphReferenceB\x03\xe0\x41\x01\"\xa3\x01\n\x16\x42igQueryTableReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\ndataset_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08table_id\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12@\n\x06schema\x18\x06 \x01(\x0b\x32+.google.cloud.geminidataanalytics.v1.SchemaB\x03\xe0\x41\x01\"|\n\x1aStudioDatasourceReferences\x12^\n\x11studio_references\x18\x02 \x03(\x0b\x32>.google.cloud.geminidataanalytics.v1.StudioDatasourceReferenceB\x03\xe0\x41\x01\"7\n\x19StudioDatasourceReference\x12\x1a\n\rdatasource_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"w\n\x17LookerExploreReferences\x12\\\n\x12\x65xplore_references\x18\x01 \x03(\x0b\x32;.google.cloud.geminidataanalytics.v1.LookerExploreReferenceB\x03\xe0\x41\x02\"\x9e\x02\n\x16LookerExploreReference\x12\x1d\n\x13looker_instance_uri\x18\t \x01(\tH\x00\x12\x66\n\x1cprivate_looker_instance_info\x18\n \x01(\x0b\x32>.google.cloud.geminidataanalytics.v1.PrivateLookerInstanceInfoH\x00\x12\x19\n\x0clookml_model\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x07\x65xplore\x18\x05 \x01(\tB\x03\xe0\x41\x02\x12@\n\x06schema\x18\x08 \x01(\x0b\x32+.google.cloud.geminidataanalytics.v1.SchemaB\x03\xe0\x41\x01\x42\n\n\x08instance\"r\n\x1e\x42igQueryPropertyGraphReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\ndataset_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11property_graph_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\"W\n\x19PrivateLookerInstanceInfo\x12\x1a\n\x12looker_instance_id\x18\x01 \x01(\t\x12\x1e\n\x16service_directory_name\x18\x02 \x01(\t\"\xe4\x03\n\nDatasource\x12_\n\x18\x62igquery_table_reference\x18\x01 \x01(\x0b\x32;.google.cloud.geminidataanalytics.v1.BigQueryTableReferenceH\x00\x12\x1e\n\x14studio_datasource_id\x18\x02 \x01(\tH\x00\x12_\n\x18looker_explore_reference\x18\x04 \x01(\x0b\x32;.google.cloud.geminidataanalytics.v1.LookerExploreReferenceH\x00\x12p\n!bigquery_property_graph_reference\x18\x10 \x01(\x0b\x32\x43.google.cloud.geminidataanalytics.v1.BigQueryPropertyGraphReferenceH\x00\x12@\n\x06schema\x18\x07 \x01(\x0b\x32+.google.cloud.geminidataanalytics.v1.SchemaB\x03\xe0\x41\x01\x12\x33\n\rstruct_schema\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x03\xe0\x41\x01\x42\x0b\n\treference\"\xef\x01\n\x06Schema\x12?\n\x06\x66ields\x18\x01 \x03(\x0b\x32*.google.cloud.geminidataanalytics.v1.FieldB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08synonyms\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12\x11\n\x04tags\x18\x04 \x03(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x45\n\x07\x66ilters\x18\x06 \x03(\x0b\x32/.google.cloud.geminidataanalytics.v1.DataFilterB\x03\xe0\x41\x01\"\x95\x02\n\x05\x46ield\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04type\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04mode\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08synonyms\x18\x06 \x03(\tB\x03\xe0\x41\x01\x12\x11\n\x04tags\x18\x07 \x03(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\x42\n\tsubfields\x18\t \x03(\x0b\x32*.google.cloud.geminidataanalytics.v1.FieldB\x03\xe0\x41\x01\x12\x15\n\x08\x63\x61tegory\x18\n \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0cvalue_format\x18\x0b \x01(\tB\x03\xe0\x41\x01\"|\n\nDataFilter\x12\x12\n\x05\x66ield\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x46\n\x04type\x18\x03 \x01(\x0e\x32\x33.google.cloud.geminidataanalytics.v1.DataFilterTypeB\x03\xe0\x41\x01*E\n\x0e\x44\x61taFilterType\x12 \n\x1c\x44\x41TA_FILTER_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rALWAYS_FILTER\x10\x01\x42\x8c\x02\n\'com.google.cloud.geminidataanalytics.v1B\x0f\x44\x61tasourceProtoP\x01ZYcloud.google.com/go/geminidataanalytics/apiv1/geminidataanalyticspb;geminidataanalyticspb\xaa\x02#Google.Cloud.GeminiDataAnalytics.V1\xca\x02#Google\\Cloud\\GeminiDataAnalytics\\V1\xea\x02&Google::Cloud::GeminiDataAnalytics::V1b\x06proto3" pool = ::Google::Protobuf::DescriptorPool.generated_pool pool.add_serialized_file(descriptor_data) diff --git a/google-cloud-gemini_data_analytics-v1/proto_docs/google/cloud/geminidataanalytics/v1/datasource.rb b/google-cloud-gemini_data_analytics-v1/proto_docs/google/cloud/geminidataanalytics/v1/datasource.rb index 6f4d58de3a7d..1649c111ed72 100644 --- a/google-cloud-gemini_data_analytics-v1/proto_docs/google/cloud/geminidataanalytics/v1/datasource.rb +++ b/google-cloud-gemini_data_analytics-v1/proto_docs/google/cloud/geminidataanalytics/v1/datasource.rb @@ -48,6 +48,13 @@ class DatasourceReferences # @!attribute [rw] table_references # @return [::Array<::Google::Cloud::GeminiDataAnalytics::V1::BigQueryTableReference>] # Optional. References to BigQuery tables. + # @!attribute [rw] property_graph_references + # @return [::Array<::Google::Cloud::GeminiDataAnalytics::V1::BigQueryPropertyGraphReference>] + # Optional. References to BigQuery graphs. + # + # Note: "property graph" is the former name for BigQuery Graph. The field and + # message names retain the original term for backward compatibility; both + # refer to the same resource. class BigQueryTableReferences include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-cloud-gemini_data_analytics-v1beta/lib/google/cloud/geminidataanalytics/v1beta/data_chat_service_pb.rb b/google-cloud-gemini_data_analytics-v1beta/lib/google/cloud/geminidataanalytics/v1beta/data_chat_service_pb.rb index 5914d8da38f8..d358b4f21c0f 100644 --- a/google-cloud-gemini_data_analytics-v1beta/lib/google/cloud/geminidataanalytics/v1beta/data_chat_service_pb.rb +++ b/google-cloud-gemini_data_analytics-v1beta/lib/google/cloud/geminidataanalytics/v1beta/data_chat_service_pb.rb @@ -17,7 +17,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n?google/cloud/geminidataanalytics/v1beta/data_chat_service.proto\x12\'google.cloud.geminidataanalytics.v1beta\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x35google/cloud/geminidataanalytics/v1beta/context.proto\x1a:google/cloud/geminidataanalytics/v1beta/conversation.proto\x1a\x39google/cloud/geminidataanalytics/v1beta/credentials.proto\x1a\x38google/cloud/geminidataanalytics/v1beta/datasource.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x90\x02\n\x10QueryDataRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x13\n\x06prompt\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12O\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x39.google.cloud.geminidataanalytics.v1beta.QueryDataContextB\x03\xe0\x41\x02\x12[\n\x12generation_options\x18\x04 \x01(\x0b\x32:.google.cloud.geminidataanalytics.v1beta.GenerationOptionsB\x03\xe0\x41\x01\"\xb8\x01\n\x11GenerationOptions\x12\"\n\x15generate_query_result\x18\x01 \x01(\x08\x42\x03\xe0\x41\x01\x12-\n generate_natural_language_answer\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x12!\n\x14generate_explanation\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12-\n generate_disambiguation_question\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\"\xf4\x01\n\x10QueryDataContext\x12\x61\n\x15\x64\x61tasource_references\x18\x01 \x01(\x0b\x32=.google.cloud.geminidataanalytics.v1beta.DatasourceReferencesB\x03\xe0\x41\x02\x12}\n$parameterized_secure_view_parameters\x18\x02 \x01(\x0b\x32J.google.cloud.geminidataanalytics.v1beta.ParameterizedSecureViewParametersB\x03\xe0\x41\x01\"\xc5\x01\n!ParameterizedSecureViewParameters\x12m\n\nparameters\x18\x01 \x03(\x0b\x32T.google.cloud.geminidataanalytics.v1beta.ParameterizedSecureViewParameters.ParameterB\x03\xe0\x41\x01\x1a\x31\n\tParameter\x12\x10\n\x03key\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xde\x01\n\x11QueryDataResponse\x12\x17\n\x0fgenerated_query\x18\x01 \x01(\t\x12\x1a\n\x12intent_explanation\x18\x02 \x01(\t\x12R\n\x0cquery_result\x18\x03 \x01(\x0b\x32<.google.cloud.geminidataanalytics.v1beta.ExecutedQueryResult\x12\x1f\n\x17natural_language_answer\x18\x04 \x01(\t\x12\x1f\n\x17\x64isambiguation_question\x18\x05 \x03(\t\"\xa4\x03\n\x13\x45xecutedQueryResult\x12T\n\x07\x63olumns\x18\x01 \x03(\x0b\x32\x43.google.cloud.geminidataanalytics.v1beta.ExecutedQueryResult.Column\x12N\n\x04rows\x18\x02 \x03(\x0b\x32@.google.cloud.geminidataanalytics.v1beta.ExecutedQueryResult.Row\x12\x17\n\x0ftotal_row_count\x18\x03 \x01(\x03\x12\x16\n\x0epartial_result\x18\x04 \x01(\x08\x12\x1d\n\x15query_execution_error\x18\x05 \x01(\t\x1a$\n\x06\x43olumn\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x1a\x16\n\x05Value\x12\r\n\x05value\x18\x01 \x01(\t\x1aY\n\x03Row\x12R\n\x06values\x18\x01 \x03(\x0b\x32\x42.google.cloud.geminidataanalytics.v1beta.ExecutedQueryResult.Value\"\xa4\x01\n\x13ListMessagesRequest\x12G\n\x06parent\x18\x01 \x01(\tB7\xe0\x41\x02\xfa\x41\x31\n/geminidataanalytics.googleapis.com/Conversation\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\"z\n\x14ListMessagesResponse\x12I\n\x08messages\x18\x01 \x03(\x0b\x32\x37.google.cloud.geminidataanalytics.v1beta.StorageMessage\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"g\n\x0eStorageMessage\x12\x12\n\nmessage_id\x18\x01 \x01(\t\x12\x41\n\x07message\x18\x02 \x01(\x0b\x32\x30.google.cloud.geminidataanalytics.v1beta.Message\"\xbf\x08\n\x0b\x43hatRequest\x12O\n\x0einline_context\x18\x65 \x01(\x0b\x32\x30.google.cloud.geminidataanalytics.v1beta.ContextB\x03\xe0\x41\x01H\x00\x12\x65\n\x16\x63onversation_reference\x18g \x01(\x0b\x32>.google.cloud.geminidataanalytics.v1beta.ConversationReferenceB\x03\xe0\x41\x01H\x00\x12\\\n\x12\x64\x61ta_agent_context\x18h \x01(\x0b\x32\x39.google.cloud.geminidataanalytics.v1beta.DataAgentContextB\x03\xe0\x41\x01H\x00\x12u\n\x1f\x63lient_managed_resource_context\x18i \x01(\x0b\x32\x45.google.cloud.geminidataanalytics.v1beta.ClientManagedResourceContextB\x03\xe0\x41\x01H\x00\x12W\n\x0flooker_settings\x18\r \x01(\x0b\x32\x37.google.cloud.geminidataanalytics.v1beta.LookerSettingsB\x03\xe0\x41\x01H\x01\x12\x46\n\x07project\x18\x01 \x01(\tB5\x18\x01\xe0\x41\x01\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x13\n\x06parent\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12G\n\x08messages\x18\x02 \x03(\x0b\x32\x30.google.cloud.geminidataanalytics.v1beta.MessageB\x03\xe0\x41\x02\x12N\n\x0b\x63redentials\x18\x07 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.CredentialsB\x03\xe0\x41\x01\x12]\n\rthinking_mode\x18\t \x01(\x0e\x32\x41.google.cloud.geminidataanalytics.v1beta.ChatRequest.ThinkingModeB\x03\xe0\x41\x01\x12N\n\x05model\x18\x0b \x01(\x0e\x32:.google.cloud.geminidataanalytics.v1beta.ChatRequest.ModelB\x03\xe0\x41\x01\"E\n\x0cThinkingMode\x12\x1d\n\x19THINKING_MODE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x46\x41ST\x10\x01\x12\x0c\n\x08THINKING\x10\x02\"3\n\x05Model\x12\x15\n\x11MODEL_UNSPECIFIED\x10\x00\x12\x13\n\x0fLATEST_GA_MODEL\x10\x01\x42\x12\n\x10\x63ontext_providerB\x15\n\x13\x64\x61tasource_settings\"\xe5\x02\n\x10\x44\x61taAgentContext\x12H\n\ndata_agent\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,geminidataanalytics.googleapis.com/DataAgent\x12P\n\x0b\x63redentials\x18\x02 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.CredentialsB\x05\x18\x01\xe0\x41\x01\x12\x66\n\x0f\x63ontext_version\x18\x03 \x01(\x0e\x32H.google.cloud.geminidataanalytics.v1beta.DataAgentContext.ContextVersionB\x03\xe0\x41\x01\"M\n\x0e\x43ontextVersion\x12\x1f\n\x1b\x43ONTEXT_VERSION_UNSPECIFIED\x10\x00\x12\x0b\n\x07STAGING\x10\x01\x12\r\n\tPUBLISHED\x10\x02\"\xc2\x01\n\x15\x43onversationReference\x12M\n\x0c\x63onversation\x18\x01 \x01(\tB7\xe0\x41\x02\xfa\x41\x31\n/geminidataanalytics.googleapis.com/Conversation\x12Z\n\x12\x64\x61ta_agent_context\x18\x03 \x01(\x0b\x32\x39.google.cloud.geminidataanalytics.v1beta.DataAgentContextB\x03\xe0\x41\x02\"\xa2\x01\n\x1c\x43lientManagedResourceContext\x12M\n\x0einline_context\x18\x01 \x01(\x0b\x32\x30.google.cloud.geminidataanalytics.v1beta.ContextB\x03\xe0\x41\x02\x12\x1c\n\x0f\x63onversation_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08\x61gent_id\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\xfe\x01\n\x07Message\x12L\n\x0cuser_message\x18\x02 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.UserMessageH\x00\x12P\n\x0esystem_message\x18\x03 \x01(\x0b\x32\x36.google.cloud.geminidataanalytics.v1beta.SystemMessageH\x00\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x17\n\nmessage_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\x42\x06\n\x04kind\".\n\x0eLookerSettings\x12\x1c\n\x0f\x65nable_dev_mode\x18\x01 \x01(\x08\x42\x03\xe0\x41\x01\"%\n\x0bUserMessage\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x42\x06\n\x04kind\"\xf1\x05\n\rSystemMessage\x12\x44\n\x04text\x18\x01 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.TextMessageH\x00\x12H\n\x06schema\x18\x02 \x01(\x0b\x32\x36.google.cloud.geminidataanalytics.v1beta.SchemaMessageH\x00\x12\x44\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.DataMessageH\x00\x12L\n\x08\x61nalysis\x18\x04 \x01(\x0b\x32\x38.google.cloud.geminidataanalytics.v1beta.AnalysisMessageH\x00\x12\x46\n\x05\x63hart\x18\x05 \x01(\x0b\x32\x35.google.cloud.geminidataanalytics.v1beta.ChartMessageH\x00\x12\x46\n\x05\x65rror\x18\x06 \x01(\x0b\x32\x35.google.cloud.geminidataanalytics.v1beta.ErrorMessageH\x00\x12W\n\x0f\x65xample_queries\x18\r \x01(\x0b\x32\x37.google.cloud.geminidataanalytics.v1beta.ExampleQueriesB\x03\xe0\x41\x01H\x00\x12]\n\rclarification\x18\x0e \x01(\x0b\x32=.google.cloud.geminidataanalytics.v1beta.ClarificationMessageB\x05\x18\x01\xe0\x41\x01H\x00\x12\x15\n\x08group_id\x18\x0c \x01(\x05H\x01\x88\x01\x01\x12H\n\x08\x63itation\x18\x0f \x01(\x0b\x32\x31.google.cloud.geminidataanalytics.v1beta.CitationB\x03\xe0\x41\x03\x42\x06\n\x04kindB\x0b\n\t_group_id\"\x86\x02\n\x0bTextMessage\x12\x12\n\x05parts\x18\x01 \x03(\tB\x03\xe0\x41\x01\x12U\n\ttext_type\x18\x02 \x01(\x0e\x32=.google.cloud.geminidataanalytics.v1beta.TextMessage.TextTypeB\x03\xe0\x41\x01\x12\x1e\n\x11thought_signature\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\"l\n\x08TextType\x12\x19\n\x15TEXT_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x46INAL_RESPONSE\x10\x01\x12\x0b\n\x07THOUGHT\x10\x02\x12\x0c\n\x08PROGRESS\x10\x03\x12\x16\n\x12\x46OLLOWUP_QUESTIONS\x10\x04\"\xa7\x01\n\rSchemaMessage\x12\x45\n\x05query\x18\x01 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.SchemaQueryH\x00\x12G\n\x06result\x18\x02 \x01(\x0b\x32\x35.google.cloud.geminidataanalytics.v1beta.SchemaResultH\x00\x42\x06\n\x04kind\"$\n\x0bSchemaQuery\x12\x15\n\x08question\x18\x01 \x01(\tB\x03\xe0\x41\x01\"]\n\x0cSchemaResult\x12M\n\x0b\x64\x61tasources\x18\x01 \x03(\x0b\x32\x33.google.cloud.geminidataanalytics.v1beta.DatasourceB\x03\xe0\x41\x01\"\xb5\x03\n\x0b\x44\x61taMessage\x12\x43\n\x05query\x18\x01 \x01(\x0b\x32\x32.google.cloud.geminidataanalytics.v1beta.DataQueryH\x00\x12\x17\n\rgenerated_sql\x18\x02 \x01(\tH\x00\x12\x45\n\x06result\x18\x03 \x01(\x0b\x32\x33.google.cloud.geminidataanalytics.v1beta.DataResultH\x00\x12Z\n\x16generated_looker_query\x18\x04 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.LookerQueryB\x02\x18\x01H\x00\x12M\n\rbig_query_job\x18\x05 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.BigQueryJobH\x00\x12N\n\rmatched_query\x18\x06 \x01(\x0b\x32\x35.google.cloud.geminidataanalytics.v1beta.MatchedQueryH\x00\x42\x06\n\x04kind\"\xdf\x01\n\tDataQuery\x12K\n\x06looker\x18\x04 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.LookerQueryB\x03\xe0\x41\x01H\x00\x12\x15\n\x08question\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12M\n\x0b\x64\x61tasources\x18\x02 \x03(\x0b\x32\x33.google.cloud.geminidataanalytics.v1beta.DatasourceB\x03\xe0\x41\x01\x42\x0c\n\nquery_type\"\xc7\x01\n\nDataResult\x12\x11\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x44\n\x06schema\x18\x05 \x01(\x0b\x32/.google.cloud.geminidataanalytics.v1beta.SchemaB\x03\xe0\x41\x01\x12*\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x17.google.protobuf.StructB\x03\xe0\x41\x01\x12\x34\n\x0e\x66ormatted_data\x18\x06 \x03(\x0b\x32\x17.google.protobuf.StructB\x03\xe0\x41\x01\"\xf9\x01\n\x0b\x42igQueryJob\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06job_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08location\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12_\n\x11\x64\x65stination_table\x18\x03 \x01(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.BigQueryTableReferenceB\x03\xe0\x41\x01\x12\x44\n\x06schema\x18\x07 \x01(\x0b\x32/.google.cloud.geminidataanalytics.v1beta.SchemaB\x03\xe0\x41\x01\"\xb4\x01\n\x0f\x41nalysisMessage\x12G\n\x05query\x18\x01 \x01(\x0b\x32\x36.google.cloud.geminidataanalytics.v1beta.AnalysisQueryH\x00\x12P\n\x0eprogress_event\x18\x02 \x01(\x0b\x32\x36.google.cloud.geminidataanalytics.v1beta.AnalysisEventH\x00\x42\x06\n\x04kind\"F\n\rAnalysisQuery\x12\x15\n\x08question\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1e\n\x11\x64\x61ta_result_names\x18\x02 \x03(\tB\x03\xe0\x41\x01\"\xaa\x02\n\rAnalysisEvent\x12\x1b\n\x11planner_reasoning\x18\x02 \x01(\tH\x00\x12\x1b\n\x11\x63oder_instruction\x18\x03 \x01(\tH\x00\x12\x0e\n\x04\x63ode\x18\x04 \x01(\tH\x00\x12\x1a\n\x10\x65xecution_output\x18\x05 \x01(\tH\x00\x12\x19\n\x0f\x65xecution_error\x18\x06 \x01(\tH\x00\x12 \n\x16result_vega_chart_json\x18\x07 \x01(\tH\x00\x12!\n\x17result_natural_language\x18\x08 \x01(\tH\x00\x12\x19\n\x0fresult_csv_data\x18\t \x01(\tH\x00\x12\x1f\n\x15result_reference_data\x18\n \x01(\tH\x00\x12\x0f\n\x05\x65rror\x18\x0b \x01(\tH\x00\x42\x06\n\x04kind\"\xa4\x01\n\x0c\x43hartMessage\x12\x44\n\x05query\x18\x01 \x01(\x0b\x32\x33.google.cloud.geminidataanalytics.v1beta.ChartQueryH\x00\x12\x46\n\x06result\x18\x02 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.ChartResultH\x00\x42\x06\n\x04kind\"F\n\nChartQuery\x12\x19\n\x0cinstructions\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1d\n\x10\x64\x61ta_result_name\x18\x02 \x01(\tB\x03\xe0\x41\x01\"\x83\x01\n\x0b\x43hartResult\x12\x31\n\x0bvega_config\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructB\x03\xe0\x41\x01\x12\x41\n\x05image\x18\x03 \x01(\x0b\x32-.google.cloud.geminidataanalytics.v1beta.BlobB\x03\xe0\x41\x01\"!\n\x0c\x45rrorMessage\x12\x11\n\x04text\x18\x01 \x01(\tB\x03\xe0\x41\x03\"\x9f\x04\n\x15\x43larificationQuestion\x12\x17\n\x08question\x18\x01 \x01(\tB\x05\x18\x01\xe0\x41\x02\x12k\n\x0eselection_mode\x18\x02 \x01(\x0e\x32L.google.cloud.geminidataanalytics.v1beta.ClarificationQuestion.SelectionModeB\x05\x18\x01\xe0\x41\x02\x12\x16\n\x07options\x18\x03 \x03(\tB\x05\x18\x01\xe0\x41\x02\x12\x84\x01\n\x1b\x63larification_question_type\x18\x04 \x01(\x0e\x32X.google.cloud.geminidataanalytics.v1beta.ClarificationQuestion.ClarificationQuestionTypeB\x05\x18\x01\xe0\x41\x01\"d\n\rSelectionMode\x12\"\n\x1aSELECTION_MODE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x15\n\rSINGLE_SELECT\x10\x01\x1a\x02\x08\x01\x12\x14\n\x0cMULTI_SELECT\x10\x02\x1a\x02\x08\x01\x1a\x02\x18\x01\"w\n\x19\x43larificationQuestionType\x12/\n\'CLARIFICATION_QUESTION_TYPE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x15\n\rFILTER_VALUES\x10\x01\x1a\x02\x08\x01\x12\x0e\n\x06\x46IELDS\x10\x02\x1a\x02\x08\x01\x1a\x02\x18\x01:\x02\x18\x01\"t\n\x14\x43larificationMessage\x12X\n\tquestions\x18\x01 \x03(\x0b\x32>.google.cloud.geminidataanalytics.v1beta.ClarificationQuestionB\x05\x18\x01\xe0\x41\x02:\x02\x18\x01\"e\n\x0e\x45xampleQueries\x12S\n\x0f\x65xample_queries\x18\x01 \x03(\x0b\x32\x35.google.cloud.geminidataanalytics.v1beta.ExampleQueryB\x03\xe0\x41\x01\"1\n\x04\x42lob\x12\x16\n\tmime_type\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x32\xae\x0c\n\x0f\x44\x61taChatService\x12\xa9\x01\n\x04\x43hat\x12\x34.google.cloud.geminidataanalytics.v1beta.ChatRequest\x1a\x30.google.cloud.geminidataanalytics.v1beta.Message\"7\x82\xd3\xe4\x93\x02\x31\",/v1beta/{parent=projects/*/locations/*}:chat:\x01*0\x01\x12\x82\x02\n\x12\x43reateConversation\x12\x42.google.cloud.geminidataanalytics.v1beta.CreateConversationRequest\x1a\x35.google.cloud.geminidataanalytics.v1beta.Conversation\"q\xda\x41#parent,conversation,conversation_id\x82\xd3\xe4\x93\x02\x45\"5/v1beta/{parent=projects/*/locations/*}/conversations:\x0c\x63onversation\x12\xb6\x01\n\x12\x44\x65leteConversation\x12\x42.google.cloud.geminidataanalytics.v1beta.DeleteConversationRequest\x1a\x16.google.protobuf.Empty\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37*5/v1beta/{name=projects/*/locations/*/conversations/*}\x12\xcf\x01\n\x0fGetConversation\x12?.google.cloud.geminidataanalytics.v1beta.GetConversationRequest\x1a\x35.google.cloud.geminidataanalytics.v1beta.Conversation\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37\x12\x35/v1beta/{name=projects/*/locations/*/conversations/*}\x12\xe2\x01\n\x11ListConversations\x12\x41.google.cloud.geminidataanalytics.v1beta.ListConversationsRequest\x1a\x42.google.cloud.geminidataanalytics.v1beta.ListConversationsResponse\"F\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x37\x12\x35/v1beta/{parent=projects/*/locations/*}/conversations\x12\xde\x01\n\x0cListMessages\x12<.google.cloud.geminidataanalytics.v1beta.ListMessagesRequest\x1a=.google.cloud.geminidataanalytics.v1beta.ListMessagesResponse\"Q\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x42\x12@/v1beta/{parent=projects/*/locations/*/conversations/*}/messages\x12\xc0\x01\n\tQueryData\x12\x39.google.cloud.geminidataanalytics.v1beta.QueryDataRequest\x1a:.google.cloud.geminidataanalytics.v1beta.QueryDataResponse\"<\x82\xd3\xe4\x93\x02\x36\"1/v1beta/{parent=projects/*/locations/*}:queryData:\x01*\x1aV\xca\x41\"geminidataanalytics.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xa5\x02\n+com.google.cloud.geminidataanalytics.v1betaB\x14\x44\x61taChatServiceProtoP\x01Z]cloud.google.com/go/geminidataanalytics/apiv1beta/geminidataanalyticspb;geminidataanalyticspb\xaa\x02\'Google.Cloud.GeminiDataAnalytics.V1Beta\xca\x02\'Google\\Cloud\\GeminiDataAnalytics\\V1beta\xea\x02*Google::Cloud::GeminiDataAnalytics::V1betab\x06proto3" +descriptor_data = "\n?google/cloud/geminidataanalytics/v1beta/data_chat_service.proto\x12\'google.cloud.geminidataanalytics.v1beta\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x35google/cloud/geminidataanalytics/v1beta/context.proto\x1a:google/cloud/geminidataanalytics/v1beta/conversation.proto\x1a\x39google/cloud/geminidataanalytics/v1beta/credentials.proto\x1a\x38google/cloud/geminidataanalytics/v1beta/datasource.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x90\x02\n\x10QueryDataRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x13\n\x06prompt\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12O\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x39.google.cloud.geminidataanalytics.v1beta.QueryDataContextB\x03\xe0\x41\x02\x12[\n\x12generation_options\x18\x04 \x01(\x0b\x32:.google.cloud.geminidataanalytics.v1beta.GenerationOptionsB\x03\xe0\x41\x01\"\xda\x01\n\x11GenerationOptions\x12\"\n\x15generate_query_result\x18\x01 \x01(\x08\x42\x03\xe0\x41\x01\x12-\n generate_natural_language_answer\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x12!\n\x14generate_explanation\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12-\n generate_disambiguation_question\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12 \n\x13generate_debug_info\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01\"\xf4\x01\n\x10QueryDataContext\x12\x61\n\x15\x64\x61tasource_references\x18\x01 \x01(\x0b\x32=.google.cloud.geminidataanalytics.v1beta.DatasourceReferencesB\x03\xe0\x41\x02\x12}\n$parameterized_secure_view_parameters\x18\x02 \x01(\x0b\x32J.google.cloud.geminidataanalytics.v1beta.ParameterizedSecureViewParametersB\x03\xe0\x41\x01\"\xc5\x01\n!ParameterizedSecureViewParameters\x12m\n\nparameters\x18\x01 \x03(\x0b\x32T.google.cloud.geminidataanalytics.v1beta.ParameterizedSecureViewParameters.ParameterB\x03\xe0\x41\x01\x1a\x31\n\tParameter\x12\x10\n\x03key\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\x94\x02\n\x11QueryDataResponse\x12\x17\n\x0fgenerated_query\x18\x01 \x01(\t\x12\x1a\n\x12intent_explanation\x18\x02 \x01(\t\x12R\n\x0cquery_result\x18\x03 \x01(\x0b\x32<.google.cloud.geminidataanalytics.v1beta.ExecutedQueryResult\x12\x1f\n\x17natural_language_answer\x18\x04 \x01(\t\x12\x1f\n\x17\x64isambiguation_question\x18\x05 \x03(\t\x12\x34\n\x13pipeline_debug_info\x18\t \x01(\x0b\x32\x17.google.protobuf.Struct\"\xa4\x03\n\x13\x45xecutedQueryResult\x12T\n\x07\x63olumns\x18\x01 \x03(\x0b\x32\x43.google.cloud.geminidataanalytics.v1beta.ExecutedQueryResult.Column\x12N\n\x04rows\x18\x02 \x03(\x0b\x32@.google.cloud.geminidataanalytics.v1beta.ExecutedQueryResult.Row\x12\x17\n\x0ftotal_row_count\x18\x03 \x01(\x03\x12\x16\n\x0epartial_result\x18\x04 \x01(\x08\x12\x1d\n\x15query_execution_error\x18\x05 \x01(\t\x1a$\n\x06\x43olumn\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x1a\x16\n\x05Value\x12\r\n\x05value\x18\x01 \x01(\t\x1aY\n\x03Row\x12R\n\x06values\x18\x01 \x03(\x0b\x32\x42.google.cloud.geminidataanalytics.v1beta.ExecutedQueryResult.Value\"\xa4\x01\n\x13ListMessagesRequest\x12G\n\x06parent\x18\x01 \x01(\tB7\xe0\x41\x02\xfa\x41\x31\n/geminidataanalytics.googleapis.com/Conversation\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\"z\n\x14ListMessagesResponse\x12I\n\x08messages\x18\x01 \x03(\x0b\x32\x37.google.cloud.geminidataanalytics.v1beta.StorageMessage\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"g\n\x0eStorageMessage\x12\x12\n\nmessage_id\x18\x01 \x01(\t\x12\x41\n\x07message\x18\x02 \x01(\x0b\x32\x30.google.cloud.geminidataanalytics.v1beta.Message\"\xbf\x08\n\x0b\x43hatRequest\x12O\n\x0einline_context\x18\x65 \x01(\x0b\x32\x30.google.cloud.geminidataanalytics.v1beta.ContextB\x03\xe0\x41\x01H\x00\x12\x65\n\x16\x63onversation_reference\x18g \x01(\x0b\x32>.google.cloud.geminidataanalytics.v1beta.ConversationReferenceB\x03\xe0\x41\x01H\x00\x12\\\n\x12\x64\x61ta_agent_context\x18h \x01(\x0b\x32\x39.google.cloud.geminidataanalytics.v1beta.DataAgentContextB\x03\xe0\x41\x01H\x00\x12u\n\x1f\x63lient_managed_resource_context\x18i \x01(\x0b\x32\x45.google.cloud.geminidataanalytics.v1beta.ClientManagedResourceContextB\x03\xe0\x41\x01H\x00\x12W\n\x0flooker_settings\x18\r \x01(\x0b\x32\x37.google.cloud.geminidataanalytics.v1beta.LookerSettingsB\x03\xe0\x41\x01H\x01\x12\x46\n\x07project\x18\x01 \x01(\tB5\x18\x01\xe0\x41\x01\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x13\n\x06parent\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12G\n\x08messages\x18\x02 \x03(\x0b\x32\x30.google.cloud.geminidataanalytics.v1beta.MessageB\x03\xe0\x41\x02\x12N\n\x0b\x63redentials\x18\x07 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.CredentialsB\x03\xe0\x41\x01\x12]\n\rthinking_mode\x18\t \x01(\x0e\x32\x41.google.cloud.geminidataanalytics.v1beta.ChatRequest.ThinkingModeB\x03\xe0\x41\x01\x12N\n\x05model\x18\x0b \x01(\x0e\x32:.google.cloud.geminidataanalytics.v1beta.ChatRequest.ModelB\x03\xe0\x41\x01\"E\n\x0cThinkingMode\x12\x1d\n\x19THINKING_MODE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x46\x41ST\x10\x01\x12\x0c\n\x08THINKING\x10\x02\"3\n\x05Model\x12\x15\n\x11MODEL_UNSPECIFIED\x10\x00\x12\x13\n\x0fLATEST_GA_MODEL\x10\x01\x42\x12\n\x10\x63ontext_providerB\x15\n\x13\x64\x61tasource_settings\"\xe5\x02\n\x10\x44\x61taAgentContext\x12H\n\ndata_agent\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,geminidataanalytics.googleapis.com/DataAgent\x12P\n\x0b\x63redentials\x18\x02 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.CredentialsB\x05\x18\x01\xe0\x41\x01\x12\x66\n\x0f\x63ontext_version\x18\x03 \x01(\x0e\x32H.google.cloud.geminidataanalytics.v1beta.DataAgentContext.ContextVersionB\x03\xe0\x41\x01\"M\n\x0e\x43ontextVersion\x12\x1f\n\x1b\x43ONTEXT_VERSION_UNSPECIFIED\x10\x00\x12\x0b\n\x07STAGING\x10\x01\x12\r\n\tPUBLISHED\x10\x02\"\xc2\x01\n\x15\x43onversationReference\x12M\n\x0c\x63onversation\x18\x01 \x01(\tB7\xe0\x41\x02\xfa\x41\x31\n/geminidataanalytics.googleapis.com/Conversation\x12Z\n\x12\x64\x61ta_agent_context\x18\x03 \x01(\x0b\x32\x39.google.cloud.geminidataanalytics.v1beta.DataAgentContextB\x03\xe0\x41\x02\"\xa2\x01\n\x1c\x43lientManagedResourceContext\x12M\n\x0einline_context\x18\x01 \x01(\x0b\x32\x30.google.cloud.geminidataanalytics.v1beta.ContextB\x03\xe0\x41\x02\x12\x1c\n\x0f\x63onversation_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08\x61gent_id\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\xfe\x01\n\x07Message\x12L\n\x0cuser_message\x18\x02 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.UserMessageH\x00\x12P\n\x0esystem_message\x18\x03 \x01(\x0b\x32\x36.google.cloud.geminidataanalytics.v1beta.SystemMessageH\x00\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x17\n\nmessage_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\x42\x06\n\x04kind\".\n\x0eLookerSettings\x12\x1c\n\x0f\x65nable_dev_mode\x18\x01 \x01(\x08\x42\x03\xe0\x41\x01\"%\n\x0bUserMessage\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x42\x06\n\x04kind\"\xf1\x05\n\rSystemMessage\x12\x44\n\x04text\x18\x01 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.TextMessageH\x00\x12H\n\x06schema\x18\x02 \x01(\x0b\x32\x36.google.cloud.geminidataanalytics.v1beta.SchemaMessageH\x00\x12\x44\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.DataMessageH\x00\x12L\n\x08\x61nalysis\x18\x04 \x01(\x0b\x32\x38.google.cloud.geminidataanalytics.v1beta.AnalysisMessageH\x00\x12\x46\n\x05\x63hart\x18\x05 \x01(\x0b\x32\x35.google.cloud.geminidataanalytics.v1beta.ChartMessageH\x00\x12\x46\n\x05\x65rror\x18\x06 \x01(\x0b\x32\x35.google.cloud.geminidataanalytics.v1beta.ErrorMessageH\x00\x12W\n\x0f\x65xample_queries\x18\r \x01(\x0b\x32\x37.google.cloud.geminidataanalytics.v1beta.ExampleQueriesB\x03\xe0\x41\x01H\x00\x12]\n\rclarification\x18\x0e \x01(\x0b\x32=.google.cloud.geminidataanalytics.v1beta.ClarificationMessageB\x05\x18\x01\xe0\x41\x01H\x00\x12\x15\n\x08group_id\x18\x0c \x01(\x05H\x01\x88\x01\x01\x12H\n\x08\x63itation\x18\x0f \x01(\x0b\x32\x31.google.cloud.geminidataanalytics.v1beta.CitationB\x03\xe0\x41\x03\x42\x06\n\x04kindB\x0b\n\t_group_id\"\x86\x02\n\x0bTextMessage\x12\x12\n\x05parts\x18\x01 \x03(\tB\x03\xe0\x41\x01\x12U\n\ttext_type\x18\x02 \x01(\x0e\x32=.google.cloud.geminidataanalytics.v1beta.TextMessage.TextTypeB\x03\xe0\x41\x01\x12\x1e\n\x11thought_signature\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\"l\n\x08TextType\x12\x19\n\x15TEXT_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x46INAL_RESPONSE\x10\x01\x12\x0b\n\x07THOUGHT\x10\x02\x12\x0c\n\x08PROGRESS\x10\x03\x12\x16\n\x12\x46OLLOWUP_QUESTIONS\x10\x04\"\xa7\x01\n\rSchemaMessage\x12\x45\n\x05query\x18\x01 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.SchemaQueryH\x00\x12G\n\x06result\x18\x02 \x01(\x0b\x32\x35.google.cloud.geminidataanalytics.v1beta.SchemaResultH\x00\x42\x06\n\x04kind\"$\n\x0bSchemaQuery\x12\x15\n\x08question\x18\x01 \x01(\tB\x03\xe0\x41\x01\"]\n\x0cSchemaResult\x12M\n\x0b\x64\x61tasources\x18\x01 \x03(\x0b\x32\x33.google.cloud.geminidataanalytics.v1beta.DatasourceB\x03\xe0\x41\x01\"\xb5\x03\n\x0b\x44\x61taMessage\x12\x43\n\x05query\x18\x01 \x01(\x0b\x32\x32.google.cloud.geminidataanalytics.v1beta.DataQueryH\x00\x12\x17\n\rgenerated_sql\x18\x02 \x01(\tH\x00\x12\x45\n\x06result\x18\x03 \x01(\x0b\x32\x33.google.cloud.geminidataanalytics.v1beta.DataResultH\x00\x12Z\n\x16generated_looker_query\x18\x04 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.LookerQueryB\x02\x18\x01H\x00\x12M\n\rbig_query_job\x18\x05 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.BigQueryJobH\x00\x12N\n\rmatched_query\x18\x06 \x01(\x0b\x32\x35.google.cloud.geminidataanalytics.v1beta.MatchedQueryH\x00\x42\x06\n\x04kind\"\xdf\x01\n\tDataQuery\x12K\n\x06looker\x18\x04 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.LookerQueryB\x03\xe0\x41\x01H\x00\x12\x15\n\x08question\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12M\n\x0b\x64\x61tasources\x18\x02 \x03(\x0b\x32\x33.google.cloud.geminidataanalytics.v1beta.DatasourceB\x03\xe0\x41\x01\x42\x0c\n\nquery_type\"\xc7\x01\n\nDataResult\x12\x11\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x44\n\x06schema\x18\x05 \x01(\x0b\x32/.google.cloud.geminidataanalytics.v1beta.SchemaB\x03\xe0\x41\x01\x12*\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x17.google.protobuf.StructB\x03\xe0\x41\x01\x12\x34\n\x0e\x66ormatted_data\x18\x06 \x03(\x0b\x32\x17.google.protobuf.StructB\x03\xe0\x41\x01\"\xf9\x01\n\x0b\x42igQueryJob\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06job_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08location\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12_\n\x11\x64\x65stination_table\x18\x03 \x01(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.BigQueryTableReferenceB\x03\xe0\x41\x01\x12\x44\n\x06schema\x18\x07 \x01(\x0b\x32/.google.cloud.geminidataanalytics.v1beta.SchemaB\x03\xe0\x41\x01\"\xb4\x01\n\x0f\x41nalysisMessage\x12G\n\x05query\x18\x01 \x01(\x0b\x32\x36.google.cloud.geminidataanalytics.v1beta.AnalysisQueryH\x00\x12P\n\x0eprogress_event\x18\x02 \x01(\x0b\x32\x36.google.cloud.geminidataanalytics.v1beta.AnalysisEventH\x00\x42\x06\n\x04kind\"F\n\rAnalysisQuery\x12\x15\n\x08question\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1e\n\x11\x64\x61ta_result_names\x18\x02 \x03(\tB\x03\xe0\x41\x01\"\xaa\x02\n\rAnalysisEvent\x12\x1b\n\x11planner_reasoning\x18\x02 \x01(\tH\x00\x12\x1b\n\x11\x63oder_instruction\x18\x03 \x01(\tH\x00\x12\x0e\n\x04\x63ode\x18\x04 \x01(\tH\x00\x12\x1a\n\x10\x65xecution_output\x18\x05 \x01(\tH\x00\x12\x19\n\x0f\x65xecution_error\x18\x06 \x01(\tH\x00\x12 \n\x16result_vega_chart_json\x18\x07 \x01(\tH\x00\x12!\n\x17result_natural_language\x18\x08 \x01(\tH\x00\x12\x19\n\x0fresult_csv_data\x18\t \x01(\tH\x00\x12\x1f\n\x15result_reference_data\x18\n \x01(\tH\x00\x12\x0f\n\x05\x65rror\x18\x0b \x01(\tH\x00\x42\x06\n\x04kind\"\xa4\x01\n\x0c\x43hartMessage\x12\x44\n\x05query\x18\x01 \x01(\x0b\x32\x33.google.cloud.geminidataanalytics.v1beta.ChartQueryH\x00\x12\x46\n\x06result\x18\x02 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.ChartResultH\x00\x42\x06\n\x04kind\"F\n\nChartQuery\x12\x19\n\x0cinstructions\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1d\n\x10\x64\x61ta_result_name\x18\x02 \x01(\tB\x03\xe0\x41\x01\"\x83\x01\n\x0b\x43hartResult\x12\x31\n\x0bvega_config\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructB\x03\xe0\x41\x01\x12\x41\n\x05image\x18\x03 \x01(\x0b\x32-.google.cloud.geminidataanalytics.v1beta.BlobB\x03\xe0\x41\x01\"!\n\x0c\x45rrorMessage\x12\x11\n\x04text\x18\x01 \x01(\tB\x03\xe0\x41\x03\"\x9f\x04\n\x15\x43larificationQuestion\x12\x17\n\x08question\x18\x01 \x01(\tB\x05\x18\x01\xe0\x41\x02\x12k\n\x0eselection_mode\x18\x02 \x01(\x0e\x32L.google.cloud.geminidataanalytics.v1beta.ClarificationQuestion.SelectionModeB\x05\x18\x01\xe0\x41\x02\x12\x16\n\x07options\x18\x03 \x03(\tB\x05\x18\x01\xe0\x41\x02\x12\x84\x01\n\x1b\x63larification_question_type\x18\x04 \x01(\x0e\x32X.google.cloud.geminidataanalytics.v1beta.ClarificationQuestion.ClarificationQuestionTypeB\x05\x18\x01\xe0\x41\x01\"d\n\rSelectionMode\x12\"\n\x1aSELECTION_MODE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x15\n\rSINGLE_SELECT\x10\x01\x1a\x02\x08\x01\x12\x14\n\x0cMULTI_SELECT\x10\x02\x1a\x02\x08\x01\x1a\x02\x18\x01\"w\n\x19\x43larificationQuestionType\x12/\n\'CLARIFICATION_QUESTION_TYPE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x15\n\rFILTER_VALUES\x10\x01\x1a\x02\x08\x01\x12\x0e\n\x06\x46IELDS\x10\x02\x1a\x02\x08\x01\x1a\x02\x18\x01:\x02\x18\x01\"t\n\x14\x43larificationMessage\x12X\n\tquestions\x18\x01 \x03(\x0b\x32>.google.cloud.geminidataanalytics.v1beta.ClarificationQuestionB\x05\x18\x01\xe0\x41\x02:\x02\x18\x01\"e\n\x0e\x45xampleQueries\x12S\n\x0f\x65xample_queries\x18\x01 \x03(\x0b\x32\x35.google.cloud.geminidataanalytics.v1beta.ExampleQueryB\x03\xe0\x41\x01\"1\n\x04\x42lob\x12\x16\n\tmime_type\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x32\xae\x0c\n\x0f\x44\x61taChatService\x12\xa9\x01\n\x04\x43hat\x12\x34.google.cloud.geminidataanalytics.v1beta.ChatRequest\x1a\x30.google.cloud.geminidataanalytics.v1beta.Message\"7\x82\xd3\xe4\x93\x02\x31\",/v1beta/{parent=projects/*/locations/*}:chat:\x01*0\x01\x12\x82\x02\n\x12\x43reateConversation\x12\x42.google.cloud.geminidataanalytics.v1beta.CreateConversationRequest\x1a\x35.google.cloud.geminidataanalytics.v1beta.Conversation\"q\xda\x41#parent,conversation,conversation_id\x82\xd3\xe4\x93\x02\x45\"5/v1beta/{parent=projects/*/locations/*}/conversations:\x0c\x63onversation\x12\xb6\x01\n\x12\x44\x65leteConversation\x12\x42.google.cloud.geminidataanalytics.v1beta.DeleteConversationRequest\x1a\x16.google.protobuf.Empty\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37*5/v1beta/{name=projects/*/locations/*/conversations/*}\x12\xcf\x01\n\x0fGetConversation\x12?.google.cloud.geminidataanalytics.v1beta.GetConversationRequest\x1a\x35.google.cloud.geminidataanalytics.v1beta.Conversation\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37\x12\x35/v1beta/{name=projects/*/locations/*/conversations/*}\x12\xe2\x01\n\x11ListConversations\x12\x41.google.cloud.geminidataanalytics.v1beta.ListConversationsRequest\x1a\x42.google.cloud.geminidataanalytics.v1beta.ListConversationsResponse\"F\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x37\x12\x35/v1beta/{parent=projects/*/locations/*}/conversations\x12\xde\x01\n\x0cListMessages\x12<.google.cloud.geminidataanalytics.v1beta.ListMessagesRequest\x1a=.google.cloud.geminidataanalytics.v1beta.ListMessagesResponse\"Q\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x42\x12@/v1beta/{parent=projects/*/locations/*/conversations/*}/messages\x12\xc0\x01\n\tQueryData\x12\x39.google.cloud.geminidataanalytics.v1beta.QueryDataRequest\x1a:.google.cloud.geminidataanalytics.v1beta.QueryDataResponse\"<\x82\xd3\xe4\x93\x02\x36\"1/v1beta/{parent=projects/*/locations/*}:queryData:\x01*\x1aV\xca\x41\"geminidataanalytics.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xa5\x02\n+com.google.cloud.geminidataanalytics.v1betaB\x14\x44\x61taChatServiceProtoP\x01Z]cloud.google.com/go/geminidataanalytics/apiv1beta/geminidataanalyticspb;geminidataanalyticspb\xaa\x02\'Google.Cloud.GeminiDataAnalytics.V1Beta\xca\x02\'Google\\Cloud\\GeminiDataAnalytics\\V1beta\xea\x02*Google::Cloud::GeminiDataAnalytics::V1betab\x06proto3" pool = ::Google::Protobuf::DescriptorPool.generated_pool pool.add_serialized_file(descriptor_data) diff --git a/google-cloud-gemini_data_analytics-v1beta/lib/google/cloud/geminidataanalytics/v1beta/datasource_pb.rb b/google-cloud-gemini_data_analytics-v1beta/lib/google/cloud/geminidataanalytics/v1beta/datasource_pb.rb index 3810ed185b67..066bafbc22e1 100644 --- a/google-cloud-gemini_data_analytics-v1beta/lib/google/cloud/geminidataanalytics/v1beta/datasource_pb.rb +++ b/google-cloud-gemini_data_analytics-v1beta/lib/google/cloud/geminidataanalytics/v1beta/datasource_pb.rb @@ -10,7 +10,7 @@ require 'google/protobuf/struct_pb' -descriptor_data = "\n8google/cloud/geminidataanalytics/v1beta/datasource.proto\x12\'google.cloud.geminidataanalytics.v1beta\x1a\x1fgoogle/api/field_behavior.proto\x1a;google/cloud/geminidataanalytics/v1beta/agent_context.proto\x1a\x39google/cloud/geminidataanalytics/v1beta/credentials.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xa0\x04\n\x14\x44\x61tasourceReferences\x12N\n\x02\x62q\x18\x01 \x01(\x0b\x32@.google.cloud.geminidataanalytics.v1beta.BigQueryTableReferencesH\x00\x12U\n\x06studio\x18\x02 \x01(\x0b\x32\x43.google.cloud.geminidataanalytics.v1beta.StudioDatasourceReferencesH\x00\x12R\n\x06looker\x18\x03 \x01(\x0b\x32@.google.cloud.geminidataanalytics.v1beta.LookerExploreReferencesH\x00\x12L\n\x07\x61lloydb\x18\x08 \x01(\x0b\x32\x39.google.cloud.geminidataanalytics.v1beta.AlloyDbReferenceH\x00\x12V\n\x11spanner_reference\x18\t \x01(\x0b\x32\x39.google.cloud.geminidataanalytics.v1beta.SpannerReferenceH\x00\x12Y\n\x13\x63loud_sql_reference\x18\n \x01(\x0b\x32:.google.cloud.geminidataanalytics.v1beta.CloudSqlReferenceH\x00\x42\x0c\n\nreferences\"\xea\x01\n\x17\x42igQueryTableReferences\x12^\n\x10table_references\x18\x01 \x03(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.BigQueryTableReferenceB\x03\xe0\x41\x01\x12o\n\x19property_graph_references\x18\x02 \x03(\x0b\x32G.google.cloud.geminidataanalytics.v1beta.BigQueryPropertyGraphReferenceB\x03\xe0\x41\x01\"\xa7\x01\n\x16\x42igQueryTableReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\ndataset_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08table_id\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x44\n\x06schema\x18\x06 \x01(\x0b\x32/.google.cloud.geminidataanalytics.v1beta.SchemaB\x03\xe0\x41\x01\"\x80\x01\n\x1aStudioDatasourceReferences\x12\x62\n\x11studio_references\x18\x02 \x03(\x0b\x32\x42.google.cloud.geminidataanalytics.v1beta.StudioDatasourceReferenceB\x03\xe0\x41\x01\"7\n\x19StudioDatasourceReference\x12\x1a\n\rdatasource_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\xdc\x01\n\x10\x41lloyDbReference\x12\x62\n\x12\x64\x61tabase_reference\x18\x01 \x01(\x0b\x32\x41.google.cloud.geminidataanalytics.v1beta.AlloyDbDatabaseReferenceB\x03\xe0\x41\x02\x12\x64\n\x17\x61gent_context_reference\x18\x03 \x01(\x0b\x32>.google.cloud.geminidataanalytics.v1beta.AgentContextReferenceB\x03\xe0\x41\x01\"u\n\x16\x44\x61tabaseTableReference\x12\x15\n\x08table_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x44\n\x06schema\x18\x02 \x01(\x0b\x32/.google.cloud.geminidataanalytics.v1beta.SchemaB\x03\xe0\x41\x01\"\x96\x02\n\x18\x41lloyDbDatabaseReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06region\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\ncluster_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0binstance_id\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x61tabase_id\x18\x05 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\ttable_ids\x18\x06 \x03(\tB\x03\xe0\x41\x01\x12g\n\x19\x64\x61tabase_table_references\x18\x07 \x03(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.DatabaseTableReferenceB\x03\xe0\x41\x01\"\xdc\x01\n\x10SpannerReference\x12\x62\n\x12\x64\x61tabase_reference\x18\x01 \x01(\x0b\x32\x41.google.cloud.geminidataanalytics.v1beta.SpannerDatabaseReferenceB\x03\xe0\x41\x02\x12\x64\n\x17\x61gent_context_reference\x18\x02 \x01(\x0b\x32>.google.cloud.geminidataanalytics.v1beta.AgentContextReferenceB\x03\xe0\x41\x01\"\xb5\x03\n\x18SpannerDatabaseReference\x12]\n\x06\x65ngine\x18\x06 \x01(\x0e\x32H.google.cloud.geminidataanalytics.v1beta.SpannerDatabaseReference.EngineB\x03\xe0\x41\x02\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0binstance_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x61tabase_id\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\ttable_ids\x18\x05 \x03(\tB\x03\xe0\x41\x01\x12g\n\x19\x64\x61tabase_table_references\x18\x07 \x03(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.DatabaseTableReferenceB\x03\xe0\x41\x01\x12\x15\n\x08priority\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x0brequest_tag\x18\t \x01(\t\"@\n\x06\x45ngine\x12\x16\n\x12\x45NGINE_UNSPECIFIED\x10\x00\x12\x0e\n\nGOOGLE_SQL\x10\x01\x12\x0e\n\nPOSTGRESQL\x10\x02\"\xde\x01\n\x11\x43loudSqlReference\x12\x63\n\x12\x64\x61tabase_reference\x18\x01 \x01(\x0b\x32\x42.google.cloud.geminidataanalytics.v1beta.CloudSqlDatabaseReferenceB\x03\xe0\x41\x02\x12\x64\n\x17\x61gent_context_reference\x18\x02 \x01(\x0b\x32>.google.cloud.geminidataanalytics.v1beta.AgentContextReferenceB\x03\xe0\x41\x01\"\x9b\x03\n\x19\x43loudSqlDatabaseReference\x12^\n\x06\x65ngine\x18\x01 \x01(\x0e\x32I.google.cloud.geminidataanalytics.v1beta.CloudSqlDatabaseReference.EngineB\x03\xe0\x41\x02\x12\x17\n\nproject_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06region\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0binstance_id\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x61tabase_id\x18\x05 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\ttable_ids\x18\x07 \x03(\tB\x03\xe0\x41\x01\x12g\n\x19\x64\x61tabase_table_references\x18\x08 \x03(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.DatabaseTableReferenceB\x03\xe0\x41\x01\";\n\x06\x45ngine\x12\x16\n\x12\x45NGINE_UNSPECIFIED\x10\x00\x12\x0e\n\nPOSTGRESQL\x10\x01\x12\t\n\x05MYSQL\x10\x02\"\xcd\x01\n\x17LookerExploreReferences\x12`\n\x12\x65xplore_references\x18\x01 \x03(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.LookerExploreReferenceB\x03\xe0\x41\x02\x12P\n\x0b\x63redentials\x18\x02 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.CredentialsB\x05\x18\x01\xe0\x41\x01\"\xa6\x02\n\x16LookerExploreReference\x12\x1d\n\x13looker_instance_uri\x18\t \x01(\tH\x00\x12j\n\x1cprivate_looker_instance_info\x18\n \x01(\x0b\x32\x42.google.cloud.geminidataanalytics.v1beta.PrivateLookerInstanceInfoH\x00\x12\x19\n\x0clookml_model\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x07\x65xplore\x18\x05 \x01(\tB\x03\xe0\x41\x02\x12\x44\n\x06schema\x18\x08 \x01(\x0b\x32/.google.cloud.geminidataanalytics.v1beta.SchemaB\x03\xe0\x41\x01\x42\n\n\x08instance\"r\n\x1e\x42igQueryPropertyGraphReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\ndataset_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11property_graph_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\"W\n\x19PrivateLookerInstanceInfo\x12\x1a\n\x12looker_instance_id\x18\x01 \x01(\t\x12\x1e\n\x16service_directory_name\x18\x02 \x01(\t\"\x80\x06\n\nDatasource\x12\x63\n\x18\x62igquery_table_reference\x18\x01 \x01(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.BigQueryTableReferenceH\x00\x12\x1e\n\x14studio_datasource_id\x18\x02 \x01(\tH\x00\x12\x63\n\x18looker_explore_reference\x18\x04 \x01(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.LookerExploreReferenceH\x00\x12W\n\x12\x61lloy_db_reference\x18\x0c \x01(\x0b\x32\x39.google.cloud.geminidataanalytics.v1beta.AlloyDbReferenceH\x00\x12V\n\x11spanner_reference\x18\r \x01(\x0b\x32\x39.google.cloud.geminidataanalytics.v1beta.SpannerReferenceH\x00\x12Y\n\x13\x63loud_sql_reference\x18\x0e \x01(\x0b\x32:.google.cloud.geminidataanalytics.v1beta.CloudSqlReferenceH\x00\x12t\n!bigquery_property_graph_reference\x18\x10 \x01(\x0b\x32G.google.cloud.geminidataanalytics.v1beta.BigQueryPropertyGraphReferenceH\x00\x12\x44\n\x06schema\x18\x07 \x01(\x0b\x32/.google.cloud.geminidataanalytics.v1beta.SchemaB\x03\xe0\x41\x01\x12\x33\n\rstruct_schema\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x03\xe0\x41\x01\x42\x0b\n\treference\"\xf7\x01\n\x06Schema\x12\x43\n\x06\x66ields\x18\x01 \x03(\x0b\x32..google.cloud.geminidataanalytics.v1beta.FieldB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08synonyms\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12\x11\n\x04tags\x18\x04 \x03(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12I\n\x07\x66ilters\x18\x06 \x03(\x0b\x32\x33.google.cloud.geminidataanalytics.v1beta.DataFilterB\x03\xe0\x41\x01\"\x99\x02\n\x05\x46ield\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04type\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04mode\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08synonyms\x18\x06 \x03(\tB\x03\xe0\x41\x01\x12\x11\n\x04tags\x18\x07 \x03(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\x46\n\tsubfields\x18\t \x03(\x0b\x32..google.cloud.geminidataanalytics.v1beta.FieldB\x03\xe0\x41\x01\x12\x15\n\x08\x63\x61tegory\x18\n \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0cvalue_format\x18\x0b \x01(\tB\x03\xe0\x41\x01\"\x80\x01\n\nDataFilter\x12\x12\n\x05\x66ield\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12J\n\x04type\x18\x03 \x01(\x0e\x32\x37.google.cloud.geminidataanalytics.v1beta.DataFilterTypeB\x03\xe0\x41\x01*E\n\x0e\x44\x61taFilterType\x12 \n\x1c\x44\x41TA_FILTER_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rALWAYS_FILTER\x10\x01\x42\xa0\x02\n+com.google.cloud.geminidataanalytics.v1betaB\x0f\x44\x61tasourceProtoP\x01Z]cloud.google.com/go/geminidataanalytics/apiv1beta/geminidataanalyticspb;geminidataanalyticspb\xaa\x02\'Google.Cloud.GeminiDataAnalytics.V1Beta\xca\x02\'Google\\Cloud\\GeminiDataAnalytics\\V1beta\xea\x02*Google::Cloud::GeminiDataAnalytics::V1betab\x06proto3" +descriptor_data = "\n8google/cloud/geminidataanalytics/v1beta/datasource.proto\x12\'google.cloud.geminidataanalytics.v1beta\x1a\x1fgoogle/api/field_behavior.proto\x1a;google/cloud/geminidataanalytics/v1beta/agent_context.proto\x1a\x39google/cloud/geminidataanalytics/v1beta/credentials.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xd6\x05\n\x14\x44\x61tasourceReferences\x12N\n\x02\x62q\x18\x01 \x01(\x0b\x32@.google.cloud.geminidataanalytics.v1beta.BigQueryTableReferencesH\x00\x12U\n\x06studio\x18\x02 \x01(\x0b\x32\x43.google.cloud.geminidataanalytics.v1beta.StudioDatasourceReferencesH\x00\x12R\n\x06looker\x18\x03 \x01(\x0b\x32@.google.cloud.geminidataanalytics.v1beta.LookerExploreReferencesH\x00\x12L\n\x07\x61lloydb\x18\x08 \x01(\x0b\x32\x39.google.cloud.geminidataanalytics.v1beta.AlloyDbReferenceH\x00\x12V\n\x11spanner_reference\x18\t \x01(\x0b\x32\x39.google.cloud.geminidataanalytics.v1beta.SpannerReferenceH\x00\x12Y\n\x13\x63loud_sql_reference\x18\n \x01(\x0b\x32:.google.cloud.geminidataanalytics.v1beta.CloudSqlReferenceH\x00\x12X\n\x12\x62igtable_reference\x18\x0b \x01(\x0b\x32:.google.cloud.geminidataanalytics.v1beta.BigtableReferenceH\x00\x12Z\n\x13\x66irestore_reference\x18\r \x01(\x0b\x32;.google.cloud.geminidataanalytics.v1beta.FirestoreReferenceH\x00\x42\x0c\n\nreferences\"\xd0\x02\n\x17\x42igQueryTableReferences\x12^\n\x10table_references\x18\x01 \x03(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.BigQueryTableReferenceB\x03\xe0\x41\x01\x12o\n\x19property_graph_references\x18\x02 \x03(\x0b\x32G.google.cloud.geminidataanalytics.v1beta.BigQueryPropertyGraphReferenceB\x03\xe0\x41\x01\x12\x64\n\x17\x61gent_context_reference\x18\x04 \x01(\x0b\x32>.google.cloud.geminidataanalytics.v1beta.AgentContextReferenceB\x03\xe0\x41\x01\"\xa7\x01\n\x16\x42igQueryTableReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\ndataset_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08table_id\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x44\n\x06schema\x18\x06 \x01(\x0b\x32/.google.cloud.geminidataanalytics.v1beta.SchemaB\x03\xe0\x41\x01\"\x80\x01\n\x1aStudioDatasourceReferences\x12\x62\n\x11studio_references\x18\x02 \x03(\x0b\x32\x42.google.cloud.geminidataanalytics.v1beta.StudioDatasourceReferenceB\x03\xe0\x41\x01\"7\n\x19StudioDatasourceReference\x12\x1a\n\rdatasource_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\xdc\x01\n\x10\x41lloyDbReference\x12\x62\n\x12\x64\x61tabase_reference\x18\x01 \x01(\x0b\x32\x41.google.cloud.geminidataanalytics.v1beta.AlloyDbDatabaseReferenceB\x03\xe0\x41\x02\x12\x64\n\x17\x61gent_context_reference\x18\x03 \x01(\x0b\x32>.google.cloud.geminidataanalytics.v1beta.AgentContextReferenceB\x03\xe0\x41\x01\"u\n\x16\x44\x61tabaseTableReference\x12\x15\n\x08table_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x44\n\x06schema\x18\x02 \x01(\x0b\x32/.google.cloud.geminidataanalytics.v1beta.SchemaB\x03\xe0\x41\x01\"\x96\x02\n\x18\x41lloyDbDatabaseReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06region\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\ncluster_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0binstance_id\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x61tabase_id\x18\x05 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\ttable_ids\x18\x06 \x03(\tB\x03\xe0\x41\x01\x12g\n\x19\x64\x61tabase_table_references\x18\x07 \x03(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.DatabaseTableReferenceB\x03\xe0\x41\x01\"\xde\x01\n\x11\x42igtableReference\x12\x63\n\x12\x64\x61tabase_reference\x18\x01 \x01(\x0b\x32\x42.google.cloud.geminidataanalytics.v1beta.BigtableDatabaseReferenceB\x03\xe0\x41\x02\x12\x64\n\x17\x61gent_context_reference\x18\x02 \x01(\x0b\x32>.google.cloud.geminidataanalytics.v1beta.AgentContextReferenceB\x03\xe0\x41\x01\"\xcf\x01\n\x19\x42igtableDatabaseReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0binstance_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\ttable_ids\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12g\n\x19\x64\x61tabase_table_references\x18\x04 \x03(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.DatabaseTableReferenceB\x03\xe0\x41\x01\"\xe0\x01\n\x12\x46irestoreReference\x12\x64\n\x12\x64\x61tabase_reference\x18\x01 \x01(\x0b\x32\x43.google.cloud.geminidataanalytics.v1beta.FirestoreDatabaseReferenceB\x03\xe0\x41\x02\x12\x64\n\x17\x61gent_context_reference\x18\x02 \x01(\x0b\x32>.google.cloud.geminidataanalytics.v1beta.AgentContextReferenceB\x03\xe0\x41\x01\"\xd5\x01\n\x1a\x46irestoreDatabaseReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x61tabase_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0e\x63ollection_ids\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12g\n\x19\x64\x61tabase_table_references\x18\x04 \x03(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.DatabaseTableReferenceB\x03\xe0\x41\x01\"\xdc\x01\n\x10SpannerReference\x12\x62\n\x12\x64\x61tabase_reference\x18\x01 \x01(\x0b\x32\x41.google.cloud.geminidataanalytics.v1beta.SpannerDatabaseReferenceB\x03\xe0\x41\x02\x12\x64\n\x17\x61gent_context_reference\x18\x02 \x01(\x0b\x32>.google.cloud.geminidataanalytics.v1beta.AgentContextReferenceB\x03\xe0\x41\x01\"\xb5\x03\n\x18SpannerDatabaseReference\x12]\n\x06\x65ngine\x18\x06 \x01(\x0e\x32H.google.cloud.geminidataanalytics.v1beta.SpannerDatabaseReference.EngineB\x03\xe0\x41\x02\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0binstance_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x61tabase_id\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\ttable_ids\x18\x05 \x03(\tB\x03\xe0\x41\x01\x12g\n\x19\x64\x61tabase_table_references\x18\x07 \x03(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.DatabaseTableReferenceB\x03\xe0\x41\x01\x12\x15\n\x08priority\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x0brequest_tag\x18\t \x01(\t\"@\n\x06\x45ngine\x12\x16\n\x12\x45NGINE_UNSPECIFIED\x10\x00\x12\x0e\n\nGOOGLE_SQL\x10\x01\x12\x0e\n\nPOSTGRESQL\x10\x02\"\xde\x01\n\x11\x43loudSqlReference\x12\x63\n\x12\x64\x61tabase_reference\x18\x01 \x01(\x0b\x32\x42.google.cloud.geminidataanalytics.v1beta.CloudSqlDatabaseReferenceB\x03\xe0\x41\x02\x12\x64\n\x17\x61gent_context_reference\x18\x02 \x01(\x0b\x32>.google.cloud.geminidataanalytics.v1beta.AgentContextReferenceB\x03\xe0\x41\x01\"\x9b\x03\n\x19\x43loudSqlDatabaseReference\x12^\n\x06\x65ngine\x18\x01 \x01(\x0e\x32I.google.cloud.geminidataanalytics.v1beta.CloudSqlDatabaseReference.EngineB\x03\xe0\x41\x02\x12\x17\n\nproject_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06region\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0binstance_id\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x61tabase_id\x18\x05 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\ttable_ids\x18\x07 \x03(\tB\x03\xe0\x41\x01\x12g\n\x19\x64\x61tabase_table_references\x18\x08 \x03(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.DatabaseTableReferenceB\x03\xe0\x41\x01\";\n\x06\x45ngine\x12\x16\n\x12\x45NGINE_UNSPECIFIED\x10\x00\x12\x0e\n\nPOSTGRESQL\x10\x01\x12\t\n\x05MYSQL\x10\x02\"\xcd\x01\n\x17LookerExploreReferences\x12`\n\x12\x65xplore_references\x18\x01 \x03(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.LookerExploreReferenceB\x03\xe0\x41\x02\x12P\n\x0b\x63redentials\x18\x02 \x01(\x0b\x32\x34.google.cloud.geminidataanalytics.v1beta.CredentialsB\x05\x18\x01\xe0\x41\x01\"\xa6\x02\n\x16LookerExploreReference\x12\x1d\n\x13looker_instance_uri\x18\t \x01(\tH\x00\x12j\n\x1cprivate_looker_instance_info\x18\n \x01(\x0b\x32\x42.google.cloud.geminidataanalytics.v1beta.PrivateLookerInstanceInfoH\x00\x12\x19\n\x0clookml_model\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x07\x65xplore\x18\x05 \x01(\tB\x03\xe0\x41\x02\x12\x44\n\x06schema\x18\x08 \x01(\x0b\x32/.google.cloud.geminidataanalytics.v1beta.SchemaB\x03\xe0\x41\x01\x42\n\n\x08instance\"r\n\x1e\x42igQueryPropertyGraphReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\ndataset_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11property_graph_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\"W\n\x19PrivateLookerInstanceInfo\x12\x1a\n\x12looker_instance_id\x18\x01 \x01(\t\x12\x1e\n\x16service_directory_name\x18\x02 \x01(\t\"\xb6\x07\n\nDatasource\x12\x63\n\x18\x62igquery_table_reference\x18\x01 \x01(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.BigQueryTableReferenceH\x00\x12\x1e\n\x14studio_datasource_id\x18\x02 \x01(\tH\x00\x12\x63\n\x18looker_explore_reference\x18\x04 \x01(\x0b\x32?.google.cloud.geminidataanalytics.v1beta.LookerExploreReferenceH\x00\x12W\n\x12\x61lloy_db_reference\x18\x0c \x01(\x0b\x32\x39.google.cloud.geminidataanalytics.v1beta.AlloyDbReferenceH\x00\x12V\n\x11spanner_reference\x18\r \x01(\x0b\x32\x39.google.cloud.geminidataanalytics.v1beta.SpannerReferenceH\x00\x12Y\n\x13\x63loud_sql_reference\x18\x0e \x01(\x0b\x32:.google.cloud.geminidataanalytics.v1beta.CloudSqlReferenceH\x00\x12X\n\x12\x62igtable_reference\x18\x0f \x01(\x0b\x32:.google.cloud.geminidataanalytics.v1beta.BigtableReferenceH\x00\x12t\n!bigquery_property_graph_reference\x18\x10 \x01(\x0b\x32G.google.cloud.geminidataanalytics.v1beta.BigQueryPropertyGraphReferenceH\x00\x12Z\n\x13\x66irestore_reference\x18\x11 \x01(\x0b\x32;.google.cloud.geminidataanalytics.v1beta.FirestoreReferenceH\x00\x12\x44\n\x06schema\x18\x07 \x01(\x0b\x32/.google.cloud.geminidataanalytics.v1beta.SchemaB\x03\xe0\x41\x01\x12\x33\n\rstruct_schema\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x03\xe0\x41\x01\x42\x0b\n\treference\"\xf7\x01\n\x06Schema\x12\x43\n\x06\x66ields\x18\x01 \x03(\x0b\x32..google.cloud.geminidataanalytics.v1beta.FieldB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08synonyms\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12\x11\n\x04tags\x18\x04 \x03(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12I\n\x07\x66ilters\x18\x06 \x03(\x0b\x32\x33.google.cloud.geminidataanalytics.v1beta.DataFilterB\x03\xe0\x41\x01\"\x99\x02\n\x05\x46ield\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04type\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04mode\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08synonyms\x18\x06 \x03(\tB\x03\xe0\x41\x01\x12\x11\n\x04tags\x18\x07 \x03(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\x46\n\tsubfields\x18\t \x03(\x0b\x32..google.cloud.geminidataanalytics.v1beta.FieldB\x03\xe0\x41\x01\x12\x15\n\x08\x63\x61tegory\x18\n \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0cvalue_format\x18\x0b \x01(\tB\x03\xe0\x41\x01\"\x80\x01\n\nDataFilter\x12\x12\n\x05\x66ield\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12J\n\x04type\x18\x03 \x01(\x0e\x32\x37.google.cloud.geminidataanalytics.v1beta.DataFilterTypeB\x03\xe0\x41\x01*E\n\x0e\x44\x61taFilterType\x12 \n\x1c\x44\x41TA_FILTER_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rALWAYS_FILTER\x10\x01\x42\xa0\x02\n+com.google.cloud.geminidataanalytics.v1betaB\x0f\x44\x61tasourceProtoP\x01Z]cloud.google.com/go/geminidataanalytics/apiv1beta/geminidataanalyticspb;geminidataanalyticspb\xaa\x02\'Google.Cloud.GeminiDataAnalytics.V1Beta\xca\x02\'Google\\Cloud\\GeminiDataAnalytics\\V1beta\xea\x02*Google::Cloud::GeminiDataAnalytics::V1betab\x06proto3" pool = ::Google::Protobuf::DescriptorPool.generated_pool pool.add_serialized_file(descriptor_data) @@ -27,6 +27,10 @@ module V1beta AlloyDbReference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.geminidataanalytics.v1beta.AlloyDbReference").msgclass DatabaseTableReference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.geminidataanalytics.v1beta.DatabaseTableReference").msgclass AlloyDbDatabaseReference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.geminidataanalytics.v1beta.AlloyDbDatabaseReference").msgclass + BigtableReference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.geminidataanalytics.v1beta.BigtableReference").msgclass + BigtableDatabaseReference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.geminidataanalytics.v1beta.BigtableDatabaseReference").msgclass + FirestoreReference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.geminidataanalytics.v1beta.FirestoreReference").msgclass + FirestoreDatabaseReference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.geminidataanalytics.v1beta.FirestoreDatabaseReference").msgclass SpannerReference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.geminidataanalytics.v1beta.SpannerReference").msgclass SpannerDatabaseReference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.geminidataanalytics.v1beta.SpannerDatabaseReference").msgclass SpannerDatabaseReference::Engine = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.geminidataanalytics.v1beta.SpannerDatabaseReference.Engine").enummodule diff --git a/google-cloud-gemini_data_analytics-v1beta/proto_docs/google/cloud/geminidataanalytics/v1beta/data_chat_service.rb b/google-cloud-gemini_data_analytics-v1beta/proto_docs/google/cloud/geminidataanalytics/v1beta/data_chat_service.rb index 4a8bef3b61d0..d859a28a355b 100644 --- a/google-cloud-gemini_data_analytics-v1beta/proto_docs/google/cloud/geminidataanalytics/v1beta/data_chat_service.rb +++ b/google-cloud-gemini_data_analytics-v1beta/proto_docs/google/cloud/geminidataanalytics/v1beta/data_chat_service.rb @@ -59,6 +59,10 @@ class QueryDataRequest # @return [::Boolean] # Optional. If true (default to false), the service may return a # clarifying_question if the input query is ambiguous. + # @!attribute [rw] generate_debug_info + # @return [::Boolean] + # Optional. If true (default to false), returns internal debugging + # information. class GenerationOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -125,6 +129,14 @@ class Parameter # options.generate_disambiguation_question was true, this field contains a # question to the user for clarification. The returned represents the # service's best effort based on the ambiguous input. + # @!attribute [rw] pipeline_debug_info + # @return [::Google::Protobuf::Struct] + # Detailed step-by-step pipeline execution information. + # Populated only if generation_options.generate_debug_info was true. + # Provided for debugging and transparency purposes only. + # The structure and content of this object is not guaranteed and may + # change at any time without notice. Do not write production code or + # business logic depending on the fields in this object. class QueryDataResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -141,6 +153,10 @@ class QueryDataResponse # @return [::Integer] # The total number of rows in the full result set, if known. # This may be an estimate or an exact count. + # + # Note: if an internal limit (such as LIMIT 1000) was applied during query + # execution to guard against excessive data transfer, this count reflects the + # truncated result size rather than the unrestricted table result size. # @!attribute [rw] partial_result # @return [::Boolean] # Set to true if the returned rows in `query_result` are a subset of the diff --git a/google-cloud-gemini_data_analytics-v1beta/proto_docs/google/cloud/geminidataanalytics/v1beta/datasource.rb b/google-cloud-gemini_data_analytics-v1beta/proto_docs/google/cloud/geminidataanalytics/v1beta/datasource.rb index 508c166ed418..5f7f0b3fd1a9 100644 --- a/google-cloud-gemini_data_analytics-v1beta/proto_docs/google/cloud/geminidataanalytics/v1beta/datasource.rb +++ b/google-cloud-gemini_data_analytics-v1beta/proto_docs/google/cloud/geminidataanalytics/v1beta/datasource.rb @@ -26,35 +26,45 @@ module V1beta # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::BigQueryTableReferences] # References to BigQuery tables. # - # Note: The following fields are mutually exclusive: `bq`, `studio`, `looker`, `alloydb`, `spanner_reference`, `cloud_sql_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `bq`, `studio`, `looker`, `alloydb`, `spanner_reference`, `cloud_sql_reference`, `bigtable_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] studio # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::StudioDatasourceReferences] # References to Looker Studio datasources. # - # Note: The following fields are mutually exclusive: `studio`, `bq`, `looker`, `alloydb`, `spanner_reference`, `cloud_sql_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `studio`, `bq`, `looker`, `alloydb`, `spanner_reference`, `cloud_sql_reference`, `bigtable_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] looker # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::LookerExploreReferences] # References to Looker Explores. # - # Note: The following fields are mutually exclusive: `looker`, `bq`, `studio`, `alloydb`, `spanner_reference`, `cloud_sql_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `looker`, `bq`, `studio`, `alloydb`, `spanner_reference`, `cloud_sql_reference`, `bigtable_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] alloydb # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::AlloyDbReference] # Reference to an AlloyDB database. Only supported for the `QueryData` # method. # - # Note: The following fields are mutually exclusive: `alloydb`, `bq`, `studio`, `looker`, `spanner_reference`, `cloud_sql_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `alloydb`, `bq`, `studio`, `looker`, `spanner_reference`, `cloud_sql_reference`, `bigtable_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] spanner_reference # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::SpannerReference] # Reference to a Spanner database. Only supported for the `QueryData` # method. # - # Note: The following fields are mutually exclusive: `spanner_reference`, `bq`, `studio`, `looker`, `alloydb`, `cloud_sql_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `spanner_reference`, `bq`, `studio`, `looker`, `alloydb`, `cloud_sql_reference`, `bigtable_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] cloud_sql_reference # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::CloudSqlReference] # Reference to a CloudSql database. Only supported for the `QueryData` # method. # - # Note: The following fields are mutually exclusive: `cloud_sql_reference`, `bq`, `studio`, `looker`, `alloydb`, `spanner_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `cloud_sql_reference`, `bq`, `studio`, `looker`, `alloydb`, `spanner_reference`, `bigtable_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] bigtable_reference + # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::BigtableReference] + # Reference to a Bigtable instance. + # + # Note: The following fields are mutually exclusive: `bigtable_reference`, `bq`, `studio`, `looker`, `alloydb`, `spanner_reference`, `cloud_sql_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] firestore_reference + # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::FirestoreReference] + # Reference to a Firestore database. + # + # Note: The following fields are mutually exclusive: `firestore_reference`, `bq`, `studio`, `looker`, `alloydb`, `spanner_reference`, `cloud_sql_reference`, `bigtable_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. class DatasourceReferences include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -72,6 +82,9 @@ class DatasourceReferences # Note: Data sources must exclusively use either tables or property graphs, # not both. When using property graphs, a maximum of one graph reference is # supported. + # @!attribute [rw] agent_context_reference + # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::AgentContextReference] + # Optional. Parameters for retrieving data from Agent Context. class BigQueryTableReferences include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -193,6 +206,72 @@ class AlloyDbDatabaseReference extend ::Google::Protobuf::MessageExts::ClassMethods end + # Message representing reference to a Bigtable instance and agent context. + # @!attribute [rw] database_reference + # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::BigtableDatabaseReference] + # Required. Singular proto that supports specifying which database and tables + # to include. + # @!attribute [rw] agent_context_reference + # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::AgentContextReference] + # Optional. Parameters for retrieving data from Agent Context. + class BigtableReference + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message representing reference to Bigtable database. + # @!attribute [rw] project_id + # @return [::String] + # Required. The project the instance belongs to. + # @!attribute [rw] instance_id + # @return [::String] + # Required. The instance id. + # @!attribute [rw] table_ids + # @return [::Array<::String>] + # Optional. The table ids. Denotes all tables if unset. + # @!attribute [rw] database_table_references + # @return [::Array<::Google::Cloud::GeminiDataAnalytics::V1beta::DatabaseTableReference>] + # Optional. References to tables within the database. Each reference + # specifies a table and can optionally include the table's schema to provide + # context for the query. + class BigtableDatabaseReference + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message representing reference to a Firestore database and agent context. + # @!attribute [rw] database_reference + # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::FirestoreDatabaseReference] + # Required. Singular proto that supports specifying which database and tables + # to include. + # @!attribute [rw] agent_context_reference + # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::AgentContextReference] + # Optional. Parameters for retrieving data from Agent Context. + class FirestoreReference + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message representing a reference to a single Firestore database. + # @!attribute [rw] project_id + # @return [::String] + # Required. Project the firestore database belongs to. + # @!attribute [rw] database_id + # @return [::String] + # Required. The database id. + # @!attribute [rw] collection_ids + # @return [::Array<::String>] + # Optional. The collection ids. Denotes all collections if unset. + # @!attribute [rw] database_table_references + # @return [::Array<::Google::Cloud::GeminiDataAnalytics::V1beta::DatabaseTableReference>] + # Optional. References to collections within the database. Each reference + # specifies a collection and can optionally include the collection's schema + # to provide context for the query. + class FirestoreDatabaseReference + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Message representing reference to a Spanner database and agent context. # Only supported for the `QueryData` method. # @!attribute [rw] database_reference @@ -394,37 +473,47 @@ class PrivateLookerInstanceInfo # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::BigQueryTableReference] # A reference to a BigQuery table. # - # Note: The following fields are mutually exclusive: `bigquery_table_reference`, `studio_datasource_id`, `looker_explore_reference`, `alloy_db_reference`, `spanner_reference`, `cloud_sql_reference`, `bigquery_property_graph_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `bigquery_table_reference`, `studio_datasource_id`, `looker_explore_reference`, `alloy_db_reference`, `spanner_reference`, `cloud_sql_reference`, `bigtable_reference`, `bigquery_property_graph_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] studio_datasource_id # @return [::String] # A reference to a Looker Studio datasource. # - # Note: The following fields are mutually exclusive: `studio_datasource_id`, `bigquery_table_reference`, `looker_explore_reference`, `alloy_db_reference`, `spanner_reference`, `cloud_sql_reference`, `bigquery_property_graph_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `studio_datasource_id`, `bigquery_table_reference`, `looker_explore_reference`, `alloy_db_reference`, `spanner_reference`, `cloud_sql_reference`, `bigtable_reference`, `bigquery_property_graph_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] looker_explore_reference # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::LookerExploreReference] # A reference to a Looker explore. # - # Note: The following fields are mutually exclusive: `looker_explore_reference`, `bigquery_table_reference`, `studio_datasource_id`, `alloy_db_reference`, `spanner_reference`, `cloud_sql_reference`, `bigquery_property_graph_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `looker_explore_reference`, `bigquery_table_reference`, `studio_datasource_id`, `alloy_db_reference`, `spanner_reference`, `cloud_sql_reference`, `bigtable_reference`, `bigquery_property_graph_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] alloy_db_reference # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::AlloyDbReference] # A reference to an AlloyDB database. # - # Note: The following fields are mutually exclusive: `alloy_db_reference`, `bigquery_table_reference`, `studio_datasource_id`, `looker_explore_reference`, `spanner_reference`, `cloud_sql_reference`, `bigquery_property_graph_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `alloy_db_reference`, `bigquery_table_reference`, `studio_datasource_id`, `looker_explore_reference`, `spanner_reference`, `cloud_sql_reference`, `bigtable_reference`, `bigquery_property_graph_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] spanner_reference # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::SpannerReference] # A reference to a Spanner database. # - # Note: The following fields are mutually exclusive: `spanner_reference`, `bigquery_table_reference`, `studio_datasource_id`, `looker_explore_reference`, `alloy_db_reference`, `cloud_sql_reference`, `bigquery_property_graph_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `spanner_reference`, `bigquery_table_reference`, `studio_datasource_id`, `looker_explore_reference`, `alloy_db_reference`, `cloud_sql_reference`, `bigtable_reference`, `bigquery_property_graph_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] cloud_sql_reference # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::CloudSqlReference] # A reference to a CloudSQL database. # - # Note: The following fields are mutually exclusive: `cloud_sql_reference`, `bigquery_table_reference`, `studio_datasource_id`, `looker_explore_reference`, `alloy_db_reference`, `spanner_reference`, `bigquery_property_graph_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `cloud_sql_reference`, `bigquery_table_reference`, `studio_datasource_id`, `looker_explore_reference`, `alloy_db_reference`, `spanner_reference`, `bigtable_reference`, `bigquery_property_graph_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] bigtable_reference + # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::BigtableReference] + # A reference to a Bigtable instance. + # + # Note: The following fields are mutually exclusive: `bigtable_reference`, `bigquery_table_reference`, `studio_datasource_id`, `looker_explore_reference`, `alloy_db_reference`, `spanner_reference`, `cloud_sql_reference`, `bigquery_property_graph_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] bigquery_property_graph_reference # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::BigQueryPropertyGraphReference] # A reference to a BigQuery property graph. # - # Note: The following fields are mutually exclusive: `bigquery_property_graph_reference`, `bigquery_table_reference`, `studio_datasource_id`, `looker_explore_reference`, `alloy_db_reference`, `spanner_reference`, `cloud_sql_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `bigquery_property_graph_reference`, `bigquery_table_reference`, `studio_datasource_id`, `looker_explore_reference`, `alloy_db_reference`, `spanner_reference`, `cloud_sql_reference`, `bigtable_reference`, `firestore_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] firestore_reference + # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::FirestoreReference] + # A reference to a Firestore database. + # + # Note: The following fields are mutually exclusive: `firestore_reference`, `bigquery_table_reference`, `studio_datasource_id`, `looker_explore_reference`, `alloy_db_reference`, `spanner_reference`, `cloud_sql_reference`, `bigtable_reference`, `bigquery_property_graph_reference`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] schema # @return [::Google::Cloud::GeminiDataAnalytics::V1beta::Schema] # Optional. The schema of the datasource. diff --git a/google-developers-developer_knowledge-v1/lib/google/developers/developer_knowledge/v1/developer_knowledge/client.rb b/google-developers-developer_knowledge-v1/lib/google/developers/developer_knowledge/v1/developer_knowledge/client.rb index 14fbd2c1ffca..3b00836ce2a0 100644 --- a/google-developers-developer_knowledge-v1/lib/google/developers/developer_knowledge/v1/developer_knowledge/client.rb +++ b/google-developers-developer_knowledge-v1/lib/google/developers/developer_knowledge/v1/developer_knowledge/client.rb @@ -568,13 +568,59 @@ def batch_get_documents request, options = nil # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. # - # @overload answer_query(query: nil) + # @overload answer_query(query: nil, filter: nil) # Pass arguments to `answer_query` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). # # @param query [::String] # Required. The query to answer. + # @param filter [::String] + # Optional. Applies a strict filter to the search results used to ground the + # answer. The expression supports a subset of the syntax described at + # https://google.aip.dev/160. + # + # Supported fields for filtering: + # + # * `content_length_bytes` (INTEGER): The length of the `Document.content` + # field in bytes. + # * `data_source` (STRING): The source of the document, e.g. + # `docs.cloud.google.com`. See + # https://developers.google.com/knowledge/reference/corpus-reference for + # the complete list of data sources in the corpus. + # * `update_time` (TIMESTAMP): The timestamp of when the document was last + # meaningfully updated. A meaningful update is one that changes document's + # markdown content or metadata. + # * `uri` (STRING): The document URI, e.g. + # `https://docs.cloud.google.com/bigquery/docs/tables`. + # + # INTEGER fields support `=`, `<`, `<=`, `>`, and `>=` operators. + # + # STRING fields support `=` (equals) and `!=` (not equals) operators for + # **exact match** on the whole string. Partial match, prefix match, and + # regexp match are not supported. + # + # TIMESTAMP fields support `=`, `<`, `<=`, `>`, and `>=` operators. + # Timestamps must be in RFC-3339 format, e.g., `"2025-01-01T00:00:00Z"`. + # + # You can combine expressions using `AND`, `OR`, and `NOT` (or `-`) logical + # operators. `OR` has higher precedence than `AND`. Use parentheses for + # explicit precedence grouping. + # + # Examples: + # + # * Filter by `Document.content_length_bytes`: + # `content_length_bytes < 50000` + # * `data_source = "docs.cloud.google.com" OR data_source = + # "firebase.google.com"` + # * `data_source != "firebase.google.com"` + # * `update_time < "2024-01-01T00:00:00Z"` + # * `update_time >= "2025-01-22T00:00:00Z" AND (data_source = + # "developer.chrome.com" OR data_source = "web.dev")` + # * `uri = "https://docs.cloud.google.com/release-notes"` + # + # The `filter` string must not exceed 500 characters; values longer than 500 + # characters will result in an `INVALID_ARGUMENT` error. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Developers::DeveloperKnowledge::V1::AnswerQueryResponse] diff --git a/google-developers-developer_knowledge-v1/lib/google/developers/developer_knowledge/v1/developer_knowledge/rest/client.rb b/google-developers-developer_knowledge-v1/lib/google/developers/developer_knowledge/v1/developer_knowledge/rest/client.rb index 22d73f37ff82..691f5a391bd7 100644 --- a/google-developers-developer_knowledge-v1/lib/google/developers/developer_knowledge/v1/developer_knowledge/rest/client.rb +++ b/google-developers-developer_knowledge-v1/lib/google/developers/developer_knowledge/v1/developer_knowledge/rest/client.rb @@ -556,13 +556,59 @@ def batch_get_documents request, options = nil # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # @overload answer_query(query: nil) + # @overload answer_query(query: nil, filter: nil) # Pass arguments to `answer_query` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). # # @param query [::String] # Required. The query to answer. + # @param filter [::String] + # Optional. Applies a strict filter to the search results used to ground the + # answer. The expression supports a subset of the syntax described at + # https://google.aip.dev/160. + # + # Supported fields for filtering: + # + # * `content_length_bytes` (INTEGER): The length of the `Document.content` + # field in bytes. + # * `data_source` (STRING): The source of the document, e.g. + # `docs.cloud.google.com`. See + # https://developers.google.com/knowledge/reference/corpus-reference for + # the complete list of data sources in the corpus. + # * `update_time` (TIMESTAMP): The timestamp of when the document was last + # meaningfully updated. A meaningful update is one that changes document's + # markdown content or metadata. + # * `uri` (STRING): The document URI, e.g. + # `https://docs.cloud.google.com/bigquery/docs/tables`. + # + # INTEGER fields support `=`, `<`, `<=`, `>`, and `>=` operators. + # + # STRING fields support `=` (equals) and `!=` (not equals) operators for + # **exact match** on the whole string. Partial match, prefix match, and + # regexp match are not supported. + # + # TIMESTAMP fields support `=`, `<`, `<=`, `>`, and `>=` operators. + # Timestamps must be in RFC-3339 format, e.g., `"2025-01-01T00:00:00Z"`. + # + # You can combine expressions using `AND`, `OR`, and `NOT` (or `-`) logical + # operators. `OR` has higher precedence than `AND`. Use parentheses for + # explicit precedence grouping. + # + # Examples: + # + # * Filter by `Document.content_length_bytes`: + # `content_length_bytes < 50000` + # * `data_source = "docs.cloud.google.com" OR data_source = + # "firebase.google.com"` + # * `data_source != "firebase.google.com"` + # * `update_time < "2024-01-01T00:00:00Z"` + # * `update_time >= "2025-01-22T00:00:00Z" AND (data_source = + # "developer.chrome.com" OR data_source = "web.dev")` + # * `uri = "https://docs.cloud.google.com/release-notes"` + # + # The `filter` string must not exceed 500 characters; values longer than 500 + # characters will result in an `INVALID_ARGUMENT` error. # @yield [result, operation] Access the result along with the TransportOperation object # @yieldparam result [::Google::Developers::DeveloperKnowledge::V1::AnswerQueryResponse] # @yieldparam operation [::Gapic::Rest::TransportOperation] diff --git a/google-developers-developer_knowledge-v1/lib/google/developers/knowledge/v1/developerknowledge_pb.rb b/google-developers-developer_knowledge-v1/lib/google/developers/knowledge/v1/developerknowledge_pb.rb index 26518ed4f668..9f4835373f8f 100644 --- a/google-developers-developer_knowledge-v1/lib/google/developers/knowledge/v1/developerknowledge_pb.rb +++ b/google-developers-developer_knowledge-v1/lib/google/developers/knowledge/v1/developerknowledge_pb.rb @@ -11,7 +11,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n7google/developers/knowledge/v1/developerknowledge.proto\x12\x1egoogle.developers.knowledge.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x83\x03\n\x08\x44ocument\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x10\n\x03uri\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x07\x63ontent\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x61ta_source\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x12\n\x05title\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12?\n\x04view\x18\x08 \x01(\x0e\x32,.google.developers.knowledge.v1.DocumentViewB\x03\xe0\x41\x03\x12!\n\x14\x63ontent_length_bytes\x18\t \x01(\x05\x42\x03\xe0\x41\x03:Z\xea\x41W\n*developerknowledge.googleapis.com/Document\x12\x14\x64ocuments/{document}*\tdocuments2\x08\x64ocument\"w\n\x1bSearchDocumentChunksRequest\x12\x12\n\x05query\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"w\n\x1cSearchDocumentChunksResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.google.developers.knowledge.v1.DocumentChunk\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x97\x01\n\x12GetDocumentRequest\x12@\n\x04name\x18\x01 \x01(\tB2\xe0\x41\x02\xfa\x41,\n*developerknowledge.googleapis.com/Document\x12?\n\x04view\x18\x02 \x01(\x0e\x32,.google.developers.knowledge.v1.DocumentViewB\x03\xe0\x41\x01\"\x9e\x01\n\x18\x42\x61tchGetDocumentsRequest\x12\x41\n\x05names\x18\x01 \x03(\tB2\xe0\x41\x02\xfa\x41,\n*developerknowledge.googleapis.com/Document\x12?\n\x04view\x18\x02 \x01(\x0e\x32,.google.developers.knowledge.v1.DocumentViewB\x03\xe0\x41\x01\"X\n\x19\x42\x61tchGetDocumentsResponse\x12;\n\tdocuments\x18\x01 \x03(\x0b\x32(.google.developers.knowledge.v1.Document\"(\n\x12\x41nswerQueryRequest\x12\x12\n\x05query\x18\x01 \x01(\tB\x03\xe0\x41\x02\"M\n\x13\x41nswerQueryResponse\x12\x36\n\x06\x61nswer\x18\x01 \x01(\x0b\x32&.google.developers.knowledge.v1.Answer\"\xdb\x04\n\x06\x41nswer\x12\x13\n\x0b\x61nswer_text\x18\x01 \x01(\t\x12M\n\tcitations\x18\x02 \x03(\x0b\x32\x35.google.developers.knowledge.v1.Answer.AnswerCitationB\x03\xe0\x41\x03\x12O\n\nreferences\x18\x03 \x03(\x0b\x32\x36.google.developers.knowledge.v1.Answer.AnswerReferenceB\x03\xe0\x41\x03\x1a\x8f\x01\n\x0e\x41nswerCitation\x12\x18\n\x0bstart_index\x18\x01 \x01(\x05\x42\x03\xe0\x41\x03\x12\x16\n\tend_index\x18\x02 \x01(\x05\x42\x03\xe0\x41\x03\x12K\n\x07sources\x18\x03 \x03(\x0b\x32\x35.google.developers.knowledge.v1.Answer.CitationSourceB\x03\xe0\x41\x03\x1a.\n\x0e\x43itationSource\x12\x1c\n\x0freference_index\x18\x01 \x01(\x05\x42\x03\xe0\x41\x03\x1ay\n\x0f\x41nswerReference\x12[\n\x12\x64ocument_reference\x18\x01 \x01(\x0b\x32\x38.google.developers.knowledge.v1.Answer.DocumentReferenceB\x03\xe0\x41\x03H\x00\x42\t\n\x07\x63ontent\x1a_\n\x11\x44ocumentReference\x12J\n\x0e\x64ocument_chunk\x18\x01 \x01(\x0b\x32-.google.developers.knowledge.v1.DocumentChunkB\x03\xe0\x41\x03\"\xf2\x01\n\rDocumentChunk\x12\x42\n\x06parent\x18\x01 \x01(\tB2\xe0\x41\x03\xfa\x41,\n*developerknowledge.googleapis.com/Document\x12\x0f\n\x02id\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x07\x63ontent\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12?\n\x08\x64ocument\x18\x04 \x01(\x0b\x32(.google.developers.knowledge.v1.DocumentB\x03\xe0\x41\x03\x12!\n\x0frelevance_score\x18\x05 \x01(\x01\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x42\x12\n\x10_relevance_score*y\n\x0c\x44ocumentView\x12\x1d\n\x19\x44OCUMENT_VIEW_UNSPECIFIED\x10\x00\x12\x17\n\x13\x44OCUMENT_VIEW_BASIC\x10\x01\x12\x16\n\x12\x44OCUMENT_VIEW_FULL\x10\x02\x12\x19\n\x15\x44OCUMENT_VIEW_CONTENT\x10\x03\x32\x81\x06\n\x12\x44\x65veloperKnowledge\x12\xbd\x01\n\x14SearchDocumentChunks\x12;.google.developers.knowledge.v1.SearchDocumentChunksRequest\x1a<.google.developers.knowledge.v1.SearchDocumentChunksResponse\"*\x82\xd3\xe4\x93\x02$\x12\"/v1/documents:searchDocumentChunks\x12\x93\x01\n\x0bGetDocument\x12\x32.google.developers.knowledge.v1.GetDocumentRequest\x1a(.google.developers.knowledge.v1.Document\"&\xda\x41\x04name\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{name=documents/**}\x12\xa8\x01\n\x11\x42\x61tchGetDocuments\x12\x38.google.developers.knowledge.v1.BatchGetDocumentsRequest\x1a\x39.google.developers.knowledge.v1.BatchGetDocumentsResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/v1/documents:batchGet\x12\x92\x01\n\x0b\x41nswerQuery\x12\x32.google.developers.knowledge.v1.AnswerQueryRequest\x1a\x33.google.developers.knowledge.v1.AnswerQueryResponse\"\x1a\x82\xd3\xe4\x93\x02\x14\"\x0f/v1:answerQuery:\x01*\x1aU\xca\x41!developerknowledge.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x83\x02\n\"com.google.developers.knowledge.v1B\x17\x44\x65veloperKnowledgeProtoP\x01ZAcloud.google.com/go/developerknowledge/apiv1/developerknowledgepb\xaa\x02\'Google.Developers.DeveloperKnowledge.V1\xca\x02\'Google\\Developers\\DeveloperKnowledge\\V1\xea\x02*Google::Developers::DeveloperKnowledge::V1b\x06proto3" +descriptor_data = "\n7google/developers/knowledge/v1/developerknowledge.proto\x12\x1egoogle.developers.knowledge.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x83\x03\n\x08\x44ocument\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x10\n\x03uri\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x07\x63ontent\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x61ta_source\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x12\n\x05title\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12?\n\x04view\x18\x08 \x01(\x0e\x32,.google.developers.knowledge.v1.DocumentViewB\x03\xe0\x41\x03\x12!\n\x14\x63ontent_length_bytes\x18\t \x01(\x05\x42\x03\xe0\x41\x03:Z\xea\x41W\n*developerknowledge.googleapis.com/Document\x12\x14\x64ocuments/{document}*\tdocuments2\x08\x64ocument\"w\n\x1bSearchDocumentChunksRequest\x12\x12\n\x05query\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"w\n\x1cSearchDocumentChunksResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.google.developers.knowledge.v1.DocumentChunk\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x97\x01\n\x12GetDocumentRequest\x12@\n\x04name\x18\x01 \x01(\tB2\xe0\x41\x02\xfa\x41,\n*developerknowledge.googleapis.com/Document\x12?\n\x04view\x18\x02 \x01(\x0e\x32,.google.developers.knowledge.v1.DocumentViewB\x03\xe0\x41\x01\"\x9e\x01\n\x18\x42\x61tchGetDocumentsRequest\x12\x41\n\x05names\x18\x01 \x03(\tB2\xe0\x41\x02\xfa\x41,\n*developerknowledge.googleapis.com/Document\x12?\n\x04view\x18\x02 \x01(\x0e\x32,.google.developers.knowledge.v1.DocumentViewB\x03\xe0\x41\x01\"X\n\x19\x42\x61tchGetDocumentsResponse\x12;\n\tdocuments\x18\x01 \x03(\x0b\x32(.google.developers.knowledge.v1.Document\"=\n\x12\x41nswerQueryRequest\x12\x12\n\x05query\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\"M\n\x13\x41nswerQueryResponse\x12\x36\n\x06\x61nswer\x18\x01 \x01(\x0b\x32&.google.developers.knowledge.v1.Answer\"\xdb\x04\n\x06\x41nswer\x12\x13\n\x0b\x61nswer_text\x18\x01 \x01(\t\x12M\n\tcitations\x18\x02 \x03(\x0b\x32\x35.google.developers.knowledge.v1.Answer.AnswerCitationB\x03\xe0\x41\x03\x12O\n\nreferences\x18\x03 \x03(\x0b\x32\x36.google.developers.knowledge.v1.Answer.AnswerReferenceB\x03\xe0\x41\x03\x1a\x8f\x01\n\x0e\x41nswerCitation\x12\x18\n\x0bstart_index\x18\x01 \x01(\x05\x42\x03\xe0\x41\x03\x12\x16\n\tend_index\x18\x02 \x01(\x05\x42\x03\xe0\x41\x03\x12K\n\x07sources\x18\x03 \x03(\x0b\x32\x35.google.developers.knowledge.v1.Answer.CitationSourceB\x03\xe0\x41\x03\x1a.\n\x0e\x43itationSource\x12\x1c\n\x0freference_index\x18\x01 \x01(\x05\x42\x03\xe0\x41\x03\x1ay\n\x0f\x41nswerReference\x12[\n\x12\x64ocument_reference\x18\x01 \x01(\x0b\x32\x38.google.developers.knowledge.v1.Answer.DocumentReferenceB\x03\xe0\x41\x03H\x00\x42\t\n\x07\x63ontent\x1a_\n\x11\x44ocumentReference\x12J\n\x0e\x64ocument_chunk\x18\x01 \x01(\x0b\x32-.google.developers.knowledge.v1.DocumentChunkB\x03\xe0\x41\x03\"\xf2\x01\n\rDocumentChunk\x12\x42\n\x06parent\x18\x01 \x01(\tB2\xe0\x41\x03\xfa\x41,\n*developerknowledge.googleapis.com/Document\x12\x0f\n\x02id\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x07\x63ontent\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12?\n\x08\x64ocument\x18\x04 \x01(\x0b\x32(.google.developers.knowledge.v1.DocumentB\x03\xe0\x41\x03\x12!\n\x0frelevance_score\x18\x05 \x01(\x01\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x42\x12\n\x10_relevance_score*y\n\x0c\x44ocumentView\x12\x1d\n\x19\x44OCUMENT_VIEW_UNSPECIFIED\x10\x00\x12\x17\n\x13\x44OCUMENT_VIEW_BASIC\x10\x01\x12\x16\n\x12\x44OCUMENT_VIEW_FULL\x10\x02\x12\x19\n\x15\x44OCUMENT_VIEW_CONTENT\x10\x03\x32\x81\x06\n\x12\x44\x65veloperKnowledge\x12\xbd\x01\n\x14SearchDocumentChunks\x12;.google.developers.knowledge.v1.SearchDocumentChunksRequest\x1a<.google.developers.knowledge.v1.SearchDocumentChunksResponse\"*\x82\xd3\xe4\x93\x02$\x12\"/v1/documents:searchDocumentChunks\x12\x93\x01\n\x0bGetDocument\x12\x32.google.developers.knowledge.v1.GetDocumentRequest\x1a(.google.developers.knowledge.v1.Document\"&\xda\x41\x04name\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{name=documents/**}\x12\xa8\x01\n\x11\x42\x61tchGetDocuments\x12\x38.google.developers.knowledge.v1.BatchGetDocumentsRequest\x1a\x39.google.developers.knowledge.v1.BatchGetDocumentsResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/v1/documents:batchGet\x12\x92\x01\n\x0b\x41nswerQuery\x12\x32.google.developers.knowledge.v1.AnswerQueryRequest\x1a\x33.google.developers.knowledge.v1.AnswerQueryResponse\"\x1a\x82\xd3\xe4\x93\x02\x14\"\x0f/v1:answerQuery:\x01*\x1aU\xca\x41!developerknowledge.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x83\x02\n\"com.google.developers.knowledge.v1B\x17\x44\x65veloperKnowledgeProtoP\x01ZAcloud.google.com/go/developerknowledge/apiv1/developerknowledgepb\xaa\x02\'Google.Developers.DeveloperKnowledge.V1\xca\x02\'Google\\Developers\\DeveloperKnowledge\\V1\xea\x02*Google::Developers::DeveloperKnowledge::V1b\x06proto3" pool = ::Google::Protobuf::DescriptorPool.generated_pool pool.add_serialized_file(descriptor_data) diff --git a/google-developers-developer_knowledge-v1/proto_docs/google/developers/knowledge/v1/developerknowledge.rb b/google-developers-developer_knowledge-v1/proto_docs/google/developers/knowledge/v1/developerknowledge.rb index dd0b79ef3029..161562bac8e8 100644 --- a/google-developers-developer_knowledge-v1/proto_docs/google/developers/knowledge/v1/developerknowledge.rb +++ b/google-developers-developer_knowledge-v1/proto_docs/google/developers/knowledge/v1/developerknowledge.rb @@ -227,6 +227,53 @@ class BatchGetDocumentsResponse # @!attribute [rw] query # @return [::String] # Required. The query to answer. + # @!attribute [rw] filter + # @return [::String] + # Optional. Applies a strict filter to the search results used to ground the + # answer. The expression supports a subset of the syntax described at + # https://google.aip.dev/160. + # + # Supported fields for filtering: + # + # * `content_length_bytes` (INTEGER): The length of the `Document.content` + # field in bytes. + # * `data_source` (STRING): The source of the document, e.g. + # `docs.cloud.google.com`. See + # https://developers.google.com/knowledge/reference/corpus-reference for + # the complete list of data sources in the corpus. + # * `update_time` (TIMESTAMP): The timestamp of when the document was last + # meaningfully updated. A meaningful update is one that changes document's + # markdown content or metadata. + # * `uri` (STRING): The document URI, e.g. + # `https://docs.cloud.google.com/bigquery/docs/tables`. + # + # INTEGER fields support `=`, `<`, `<=`, `>`, and `>=` operators. + # + # STRING fields support `=` (equals) and `!=` (not equals) operators for + # **exact match** on the whole string. Partial match, prefix match, and + # regexp match are not supported. + # + # TIMESTAMP fields support `=`, `<`, `<=`, `>`, and `>=` operators. + # Timestamps must be in RFC-3339 format, e.g., `"2025-01-01T00:00:00Z"`. + # + # You can combine expressions using `AND`, `OR`, and `NOT` (or `-`) logical + # operators. `OR` has higher precedence than `AND`. Use parentheses for + # explicit precedence grouping. + # + # Examples: + # + # * Filter by `Document.content_length_bytes`: + # `content_length_bytes < 50000` + # * `data_source = "docs.cloud.google.com" OR data_source = + # "firebase.google.com"` + # * `data_source != "firebase.google.com"` + # * `update_time < "2024-01-01T00:00:00Z"` + # * `update_time >= "2025-01-22T00:00:00Z" AND (data_source = + # "developer.chrome.com" OR data_source = "web.dev")` + # * `uri = "https://docs.cloud.google.com/release-notes"` + # + # The `filter` string must not exceed 500 characters; values longer than 500 + # characters will result in an `INVALID_ARGUMENT` error. class AnswerQueryRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-developers-developer_knowledge-v1/test/google/developers/developer_knowledge/v1/developer_knowledge_rest_test.rb b/google-developers-developer_knowledge-v1/test/google/developers/developer_knowledge/v1/developer_knowledge_rest_test.rb index 9521d08dc860..f3adb17c5f6c 100644 --- a/google-developers-developer_knowledge-v1/test/google/developers/developer_knowledge/v1/developer_knowledge_rest_test.rb +++ b/google-developers-developer_knowledge-v1/test/google/developers/developer_knowledge/v1/developer_knowledge_rest_test.rb @@ -254,6 +254,7 @@ def test_answer_query # Create request parameters for a unary method. query = "hello world" + filter = "hello world" answer_query_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| assert options.metadata.key? :"x-goog-api-client" @@ -269,27 +270,27 @@ def test_answer_query end # Use hash object - c.answer_query({ query: query }) do |_result, response| + c.answer_query({ query: query, filter: filter }) do |_result, response| assert_equal http_response, response.underlying_op end # Use named arguments - c.answer_query query: query do |_result, response| + c.answer_query query: query, filter: filter do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object - c.answer_query ::Google::Developers::DeveloperKnowledge::V1::AnswerQueryRequest.new(query: query) do |_result, response| + c.answer_query ::Google::Developers::DeveloperKnowledge::V1::AnswerQueryRequest.new(query: query, filter: filter) do |_result, response| assert_equal http_response, response.underlying_op end # Use hash object with options - c.answer_query({ query: query }, call_options) do |_result, response| + c.answer_query({ query: query, filter: filter }, call_options) do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object with options - c.answer_query(::Google::Developers::DeveloperKnowledge::V1::AnswerQueryRequest.new(query: query), call_options) do |_result, response| + c.answer_query(::Google::Developers::DeveloperKnowledge::V1::AnswerQueryRequest.new(query: query, filter: filter), call_options) do |_result, response| assert_equal http_response, response.underlying_op end diff --git a/google-developers-developer_knowledge-v1/test/google/developers/developer_knowledge/v1/developer_knowledge_test.rb b/google-developers-developer_knowledge-v1/test/google/developers/developer_knowledge/v1/developer_knowledge_test.rb index a43b73fefb45..2877f956465c 100644 --- a/google-developers-developer_knowledge-v1/test/google/developers/developer_knowledge/v1/developer_knowledge_test.rb +++ b/google-developers-developer_knowledge-v1/test/google/developers/developer_knowledge/v1/developer_knowledge_test.rb @@ -261,11 +261,13 @@ def test_answer_query # Create request parameters for a unary method. query = "hello world" + filter = "hello world" answer_query_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| assert_equal :answer_query, name assert_kind_of ::Google::Developers::DeveloperKnowledge::V1::AnswerQueryRequest, request assert_equal "hello world", request["query"] + assert_equal "hello world", request["filter"] refute_nil options end @@ -276,31 +278,31 @@ def test_answer_query end # Use hash object - c.answer_query({ query: query }) do |response, operation| + c.answer_query({ query: query, filter: filter }) do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end # Use named arguments - c.answer_query query: query do |response, operation| + c.answer_query query: query, filter: filter do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end # Use protobuf object - c.answer_query ::Google::Developers::DeveloperKnowledge::V1::AnswerQueryRequest.new(query: query) do |response, operation| + c.answer_query ::Google::Developers::DeveloperKnowledge::V1::AnswerQueryRequest.new(query: query, filter: filter) do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end # Use hash object with options - c.answer_query({ query: query }, grpc_options) do |response, operation| + c.answer_query({ query: query, filter: filter }, grpc_options) do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end # Use protobuf object with options - c.answer_query(::Google::Developers::DeveloperKnowledge::V1::AnswerQueryRequest.new(query: query), grpc_options) do |response, operation| + c.answer_query(::Google::Developers::DeveloperKnowledge::V1::AnswerQueryRequest.new(query: query, filter: filter), grpc_options) do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end diff --git a/librarian.yaml b/librarian.yaml index d2cc3ce5c4c8..47acbd5f2857 100644 --- a/librarian.yaml +++ b/librarian.yaml @@ -15,8 +15,8 @@ language: ruby version: v0.40.0 sources: googleapis: - commit: 40c9c54b96bfc48dc7794aa55166c3b560abdbd4 - sha256: 47ae8d43cc86bacf8458ed6eb460347483b56765339600672343741ea7244add + commit: 00ff8fcb95cafbac573cc449b0d1a039244f1b4b + sha256: 4adc70162aadcea34de8e9ec269851bca7486fa8dca31d70dc43cdeb1e7a2617 tools: gem: - name: gapic-generator-cloud