1// Copyright 2020 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Code generated by protoc-gen-go. DO NOT EDIT. 16// versions: 17// protoc-gen-go v1.25.0 18// protoc v3.13.0 19// source: google/privacy/dlp/v2/dlp.proto 20 21package dlp 22 23import ( 24 context "context" 25 reflect "reflect" 26 sync "sync" 27 28 proto "github.com/golang/protobuf/proto" 29 _ "google.golang.org/genproto/googleapis/api/annotations" 30 status "google.golang.org/genproto/googleapis/rpc/status" 31 date "google.golang.org/genproto/googleapis/type/date" 32 dayofweek "google.golang.org/genproto/googleapis/type/dayofweek" 33 timeofday "google.golang.org/genproto/googleapis/type/timeofday" 34 grpc "google.golang.org/grpc" 35 codes "google.golang.org/grpc/codes" 36 status1 "google.golang.org/grpc/status" 37 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 38 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 39 durationpb "google.golang.org/protobuf/types/known/durationpb" 40 emptypb "google.golang.org/protobuf/types/known/emptypb" 41 fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 42 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 43) 44 45const ( 46 // Verify that this generated code is sufficiently up-to-date. 47 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 48 // Verify that runtime/protoimpl is sufficiently up-to-date. 49 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 50) 51 52// This is a compile-time assertion that a sufficiently up-to-date version 53// of the legacy proto package is being used. 54const _ = proto.ProtoPackageIsVersion4 55 56// Operators available for comparing the value of fields. 57type RelationalOperator int32 58 59const ( 60 // Unused 61 RelationalOperator_RELATIONAL_OPERATOR_UNSPECIFIED RelationalOperator = 0 62 // Equal. Attempts to match even with incompatible types. 63 RelationalOperator_EQUAL_TO RelationalOperator = 1 64 // Not equal to. Attempts to match even with incompatible types. 65 RelationalOperator_NOT_EQUAL_TO RelationalOperator = 2 66 // Greater than. 67 RelationalOperator_GREATER_THAN RelationalOperator = 3 68 // Less than. 69 RelationalOperator_LESS_THAN RelationalOperator = 4 70 // Greater than or equals. 71 RelationalOperator_GREATER_THAN_OR_EQUALS RelationalOperator = 5 72 // Less than or equals. 73 RelationalOperator_LESS_THAN_OR_EQUALS RelationalOperator = 6 74 // Exists 75 RelationalOperator_EXISTS RelationalOperator = 7 76) 77 78// Enum value maps for RelationalOperator. 79var ( 80 RelationalOperator_name = map[int32]string{ 81 0: "RELATIONAL_OPERATOR_UNSPECIFIED", 82 1: "EQUAL_TO", 83 2: "NOT_EQUAL_TO", 84 3: "GREATER_THAN", 85 4: "LESS_THAN", 86 5: "GREATER_THAN_OR_EQUALS", 87 6: "LESS_THAN_OR_EQUALS", 88 7: "EXISTS", 89 } 90 RelationalOperator_value = map[string]int32{ 91 "RELATIONAL_OPERATOR_UNSPECIFIED": 0, 92 "EQUAL_TO": 1, 93 "NOT_EQUAL_TO": 2, 94 "GREATER_THAN": 3, 95 "LESS_THAN": 4, 96 "GREATER_THAN_OR_EQUALS": 5, 97 "LESS_THAN_OR_EQUALS": 6, 98 "EXISTS": 7, 99 } 100) 101 102func (x RelationalOperator) Enum() *RelationalOperator { 103 p := new(RelationalOperator) 104 *p = x 105 return p 106} 107 108func (x RelationalOperator) String() string { 109 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 110} 111 112func (RelationalOperator) Descriptor() protoreflect.EnumDescriptor { 113 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[0].Descriptor() 114} 115 116func (RelationalOperator) Type() protoreflect.EnumType { 117 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[0] 118} 119 120func (x RelationalOperator) Number() protoreflect.EnumNumber { 121 return protoreflect.EnumNumber(x) 122} 123 124// Deprecated: Use RelationalOperator.Descriptor instead. 125func (RelationalOperator) EnumDescriptor() ([]byte, []int) { 126 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{0} 127} 128 129// Type of the match which can be applied to different ways of matching, like 130// Dictionary, regular expression and intersecting with findings of another 131// info type. 132type MatchingType int32 133 134const ( 135 // Invalid. 136 MatchingType_MATCHING_TYPE_UNSPECIFIED MatchingType = 0 137 // Full match. 138 // 139 // - Dictionary: join of Dictionary results matched complete finding quote 140 // - Regex: all regex matches fill a finding quote start to end 141 // - Exclude info type: completely inside affecting info types findings 142 MatchingType_MATCHING_TYPE_FULL_MATCH MatchingType = 1 143 // Partial match. 144 // 145 // - Dictionary: at least one of the tokens in the finding matches 146 // - Regex: substring of the finding matches 147 // - Exclude info type: intersects with affecting info types findings 148 MatchingType_MATCHING_TYPE_PARTIAL_MATCH MatchingType = 2 149 // Inverse match. 150 // 151 // - Dictionary: no tokens in the finding match the dictionary 152 // - Regex: finding doesn't match the regex 153 // - Exclude info type: no intersection with affecting info types findings 154 MatchingType_MATCHING_TYPE_INVERSE_MATCH MatchingType = 3 155) 156 157// Enum value maps for MatchingType. 158var ( 159 MatchingType_name = map[int32]string{ 160 0: "MATCHING_TYPE_UNSPECIFIED", 161 1: "MATCHING_TYPE_FULL_MATCH", 162 2: "MATCHING_TYPE_PARTIAL_MATCH", 163 3: "MATCHING_TYPE_INVERSE_MATCH", 164 } 165 MatchingType_value = map[string]int32{ 166 "MATCHING_TYPE_UNSPECIFIED": 0, 167 "MATCHING_TYPE_FULL_MATCH": 1, 168 "MATCHING_TYPE_PARTIAL_MATCH": 2, 169 "MATCHING_TYPE_INVERSE_MATCH": 3, 170 } 171) 172 173func (x MatchingType) Enum() *MatchingType { 174 p := new(MatchingType) 175 *p = x 176 return p 177} 178 179func (x MatchingType) String() string { 180 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 181} 182 183func (MatchingType) Descriptor() protoreflect.EnumDescriptor { 184 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[1].Descriptor() 185} 186 187func (MatchingType) Type() protoreflect.EnumType { 188 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[1] 189} 190 191func (x MatchingType) Number() protoreflect.EnumNumber { 192 return protoreflect.EnumNumber(x) 193} 194 195// Deprecated: Use MatchingType.Descriptor instead. 196func (MatchingType) EnumDescriptor() ([]byte, []int) { 197 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{1} 198} 199 200// Options describing which parts of the provided content should be scanned. 201type ContentOption int32 202 203const ( 204 // Includes entire content of a file or a data stream. 205 ContentOption_CONTENT_UNSPECIFIED ContentOption = 0 206 // Text content within the data, excluding any metadata. 207 ContentOption_CONTENT_TEXT ContentOption = 1 208 // Images found in the data. 209 ContentOption_CONTENT_IMAGE ContentOption = 2 210) 211 212// Enum value maps for ContentOption. 213var ( 214 ContentOption_name = map[int32]string{ 215 0: "CONTENT_UNSPECIFIED", 216 1: "CONTENT_TEXT", 217 2: "CONTENT_IMAGE", 218 } 219 ContentOption_value = map[string]int32{ 220 "CONTENT_UNSPECIFIED": 0, 221 "CONTENT_TEXT": 1, 222 "CONTENT_IMAGE": 2, 223 } 224) 225 226func (x ContentOption) Enum() *ContentOption { 227 p := new(ContentOption) 228 *p = x 229 return p 230} 231 232func (x ContentOption) String() string { 233 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 234} 235 236func (ContentOption) Descriptor() protoreflect.EnumDescriptor { 237 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[2].Descriptor() 238} 239 240func (ContentOption) Type() protoreflect.EnumType { 241 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[2] 242} 243 244func (x ContentOption) Number() protoreflect.EnumNumber { 245 return protoreflect.EnumNumber(x) 246} 247 248// Deprecated: Use ContentOption.Descriptor instead. 249func (ContentOption) EnumDescriptor() ([]byte, []int) { 250 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{2} 251} 252 253// Type of metadata containing the finding. 254type MetadataType int32 255 256const ( 257 // Unused 258 MetadataType_METADATATYPE_UNSPECIFIED MetadataType = 0 259 // General file metadata provided by Cloud Storage. 260 MetadataType_STORAGE_METADATA MetadataType = 2 261) 262 263// Enum value maps for MetadataType. 264var ( 265 MetadataType_name = map[int32]string{ 266 0: "METADATATYPE_UNSPECIFIED", 267 2: "STORAGE_METADATA", 268 } 269 MetadataType_value = map[string]int32{ 270 "METADATATYPE_UNSPECIFIED": 0, 271 "STORAGE_METADATA": 2, 272 } 273) 274 275func (x MetadataType) Enum() *MetadataType { 276 p := new(MetadataType) 277 *p = x 278 return p 279} 280 281func (x MetadataType) String() string { 282 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 283} 284 285func (MetadataType) Descriptor() protoreflect.EnumDescriptor { 286 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[3].Descriptor() 287} 288 289func (MetadataType) Type() protoreflect.EnumType { 290 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[3] 291} 292 293func (x MetadataType) Number() protoreflect.EnumNumber { 294 return protoreflect.EnumNumber(x) 295} 296 297// Deprecated: Use MetadataType.Descriptor instead. 298func (MetadataType) EnumDescriptor() ([]byte, []int) { 299 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{3} 300} 301 302// Parts of the APIs which use certain infoTypes. 303type InfoTypeSupportedBy int32 304 305const ( 306 // Unused. 307 InfoTypeSupportedBy_ENUM_TYPE_UNSPECIFIED InfoTypeSupportedBy = 0 308 // Supported by the inspect operations. 309 InfoTypeSupportedBy_INSPECT InfoTypeSupportedBy = 1 310 // Supported by the risk analysis operations. 311 InfoTypeSupportedBy_RISK_ANALYSIS InfoTypeSupportedBy = 2 312) 313 314// Enum value maps for InfoTypeSupportedBy. 315var ( 316 InfoTypeSupportedBy_name = map[int32]string{ 317 0: "ENUM_TYPE_UNSPECIFIED", 318 1: "INSPECT", 319 2: "RISK_ANALYSIS", 320 } 321 InfoTypeSupportedBy_value = map[string]int32{ 322 "ENUM_TYPE_UNSPECIFIED": 0, 323 "INSPECT": 1, 324 "RISK_ANALYSIS": 2, 325 } 326) 327 328func (x InfoTypeSupportedBy) Enum() *InfoTypeSupportedBy { 329 p := new(InfoTypeSupportedBy) 330 *p = x 331 return p 332} 333 334func (x InfoTypeSupportedBy) String() string { 335 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 336} 337 338func (InfoTypeSupportedBy) Descriptor() protoreflect.EnumDescriptor { 339 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[4].Descriptor() 340} 341 342func (InfoTypeSupportedBy) Type() protoreflect.EnumType { 343 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[4] 344} 345 346func (x InfoTypeSupportedBy) Number() protoreflect.EnumNumber { 347 return protoreflect.EnumNumber(x) 348} 349 350// Deprecated: Use InfoTypeSupportedBy.Descriptor instead. 351func (InfoTypeSupportedBy) EnumDescriptor() ([]byte, []int) { 352 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{4} 353} 354 355// An enum to represent the various types of DLP jobs. 356type DlpJobType int32 357 358const ( 359 // Unused 360 DlpJobType_DLP_JOB_TYPE_UNSPECIFIED DlpJobType = 0 361 // The job inspected Google Cloud for sensitive data. 362 DlpJobType_INSPECT_JOB DlpJobType = 1 363 // The job executed a Risk Analysis computation. 364 DlpJobType_RISK_ANALYSIS_JOB DlpJobType = 2 365) 366 367// Enum value maps for DlpJobType. 368var ( 369 DlpJobType_name = map[int32]string{ 370 0: "DLP_JOB_TYPE_UNSPECIFIED", 371 1: "INSPECT_JOB", 372 2: "RISK_ANALYSIS_JOB", 373 } 374 DlpJobType_value = map[string]int32{ 375 "DLP_JOB_TYPE_UNSPECIFIED": 0, 376 "INSPECT_JOB": 1, 377 "RISK_ANALYSIS_JOB": 2, 378 } 379) 380 381func (x DlpJobType) Enum() *DlpJobType { 382 p := new(DlpJobType) 383 *p = x 384 return p 385} 386 387func (x DlpJobType) String() string { 388 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 389} 390 391func (DlpJobType) Descriptor() protoreflect.EnumDescriptor { 392 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[5].Descriptor() 393} 394 395func (DlpJobType) Type() protoreflect.EnumType { 396 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[5] 397} 398 399func (x DlpJobType) Number() protoreflect.EnumNumber { 400 return protoreflect.EnumNumber(x) 401} 402 403// Deprecated: Use DlpJobType.Descriptor instead. 404func (DlpJobType) EnumDescriptor() ([]byte, []int) { 405 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{5} 406} 407 408// State of a StoredInfoType version. 409type StoredInfoTypeState int32 410 411const ( 412 // Unused 413 StoredInfoTypeState_STORED_INFO_TYPE_STATE_UNSPECIFIED StoredInfoTypeState = 0 414 // StoredInfoType version is being created. 415 StoredInfoTypeState_PENDING StoredInfoTypeState = 1 416 // StoredInfoType version is ready for use. 417 StoredInfoTypeState_READY StoredInfoTypeState = 2 418 // StoredInfoType creation failed. All relevant error messages are returned in 419 // the `StoredInfoTypeVersion` message. 420 StoredInfoTypeState_FAILED StoredInfoTypeState = 3 421 // StoredInfoType is no longer valid because artifacts stored in 422 // user-controlled storage were modified. To fix an invalid StoredInfoType, 423 // use the `UpdateStoredInfoType` method to create a new version. 424 StoredInfoTypeState_INVALID StoredInfoTypeState = 4 425) 426 427// Enum value maps for StoredInfoTypeState. 428var ( 429 StoredInfoTypeState_name = map[int32]string{ 430 0: "STORED_INFO_TYPE_STATE_UNSPECIFIED", 431 1: "PENDING", 432 2: "READY", 433 3: "FAILED", 434 4: "INVALID", 435 } 436 StoredInfoTypeState_value = map[string]int32{ 437 "STORED_INFO_TYPE_STATE_UNSPECIFIED": 0, 438 "PENDING": 1, 439 "READY": 2, 440 "FAILED": 3, 441 "INVALID": 4, 442 } 443) 444 445func (x StoredInfoTypeState) Enum() *StoredInfoTypeState { 446 p := new(StoredInfoTypeState) 447 *p = x 448 return p 449} 450 451func (x StoredInfoTypeState) String() string { 452 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 453} 454 455func (StoredInfoTypeState) Descriptor() protoreflect.EnumDescriptor { 456 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[6].Descriptor() 457} 458 459func (StoredInfoTypeState) Type() protoreflect.EnumType { 460 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[6] 461} 462 463func (x StoredInfoTypeState) Number() protoreflect.EnumNumber { 464 return protoreflect.EnumNumber(x) 465} 466 467// Deprecated: Use StoredInfoTypeState.Descriptor instead. 468func (StoredInfoTypeState) EnumDescriptor() ([]byte, []int) { 469 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{6} 470} 471 472// The type of data being sent for inspection. 473type ByteContentItem_BytesType int32 474 475const ( 476 // Unused 477 ByteContentItem_BYTES_TYPE_UNSPECIFIED ByteContentItem_BytesType = 0 478 // Any image type. 479 ByteContentItem_IMAGE ByteContentItem_BytesType = 6 480 // jpeg 481 ByteContentItem_IMAGE_JPEG ByteContentItem_BytesType = 1 482 // bmp 483 ByteContentItem_IMAGE_BMP ByteContentItem_BytesType = 2 484 // png 485 ByteContentItem_IMAGE_PNG ByteContentItem_BytesType = 3 486 // svg 487 ByteContentItem_IMAGE_SVG ByteContentItem_BytesType = 4 488 // plain text 489 ByteContentItem_TEXT_UTF8 ByteContentItem_BytesType = 5 490 // docx, docm, dotx, dotm 491 ByteContentItem_WORD_DOCUMENT ByteContentItem_BytesType = 7 492 // pdf 493 ByteContentItem_PDF ByteContentItem_BytesType = 8 494 // avro 495 ByteContentItem_AVRO ByteContentItem_BytesType = 11 496 // csv 497 ByteContentItem_CSV ByteContentItem_BytesType = 12 498 // tsv 499 ByteContentItem_TSV ByteContentItem_BytesType = 13 500) 501 502// Enum value maps for ByteContentItem_BytesType. 503var ( 504 ByteContentItem_BytesType_name = map[int32]string{ 505 0: "BYTES_TYPE_UNSPECIFIED", 506 6: "IMAGE", 507 1: "IMAGE_JPEG", 508 2: "IMAGE_BMP", 509 3: "IMAGE_PNG", 510 4: "IMAGE_SVG", 511 5: "TEXT_UTF8", 512 7: "WORD_DOCUMENT", 513 8: "PDF", 514 11: "AVRO", 515 12: "CSV", 516 13: "TSV", 517 } 518 ByteContentItem_BytesType_value = map[string]int32{ 519 "BYTES_TYPE_UNSPECIFIED": 0, 520 "IMAGE": 6, 521 "IMAGE_JPEG": 1, 522 "IMAGE_BMP": 2, 523 "IMAGE_PNG": 3, 524 "IMAGE_SVG": 4, 525 "TEXT_UTF8": 5, 526 "WORD_DOCUMENT": 7, 527 "PDF": 8, 528 "AVRO": 11, 529 "CSV": 12, 530 "TSV": 13, 531 } 532) 533 534func (x ByteContentItem_BytesType) Enum() *ByteContentItem_BytesType { 535 p := new(ByteContentItem_BytesType) 536 *p = x 537 return p 538} 539 540func (x ByteContentItem_BytesType) String() string { 541 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 542} 543 544func (ByteContentItem_BytesType) Descriptor() protoreflect.EnumDescriptor { 545 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[7].Descriptor() 546} 547 548func (ByteContentItem_BytesType) Type() protoreflect.EnumType { 549 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[7] 550} 551 552func (x ByteContentItem_BytesType) Number() protoreflect.EnumNumber { 553 return protoreflect.EnumNumber(x) 554} 555 556// Deprecated: Use ByteContentItem_BytesType.Descriptor instead. 557func (ByteContentItem_BytesType) EnumDescriptor() ([]byte, []int) { 558 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{5, 0} 559} 560 561// Predefined schemas for storing findings. 562// Only for use with external storage. 563type OutputStorageConfig_OutputSchema int32 564 565const ( 566 // Unused. 567 OutputStorageConfig_OUTPUT_SCHEMA_UNSPECIFIED OutputStorageConfig_OutputSchema = 0 568 // Basic schema including only `info_type`, `quote`, `certainty`, and 569 // `timestamp`. 570 OutputStorageConfig_BASIC_COLUMNS OutputStorageConfig_OutputSchema = 1 571 // Schema tailored to findings from scanning Google Cloud Storage. 572 OutputStorageConfig_GCS_COLUMNS OutputStorageConfig_OutputSchema = 2 573 // Schema tailored to findings from scanning Google Datastore. 574 OutputStorageConfig_DATASTORE_COLUMNS OutputStorageConfig_OutputSchema = 3 575 // Schema tailored to findings from scanning Google BigQuery. 576 OutputStorageConfig_BIG_QUERY_COLUMNS OutputStorageConfig_OutputSchema = 4 577 // Schema containing all columns. 578 OutputStorageConfig_ALL_COLUMNS OutputStorageConfig_OutputSchema = 5 579) 580 581// Enum value maps for OutputStorageConfig_OutputSchema. 582var ( 583 OutputStorageConfig_OutputSchema_name = map[int32]string{ 584 0: "OUTPUT_SCHEMA_UNSPECIFIED", 585 1: "BASIC_COLUMNS", 586 2: "GCS_COLUMNS", 587 3: "DATASTORE_COLUMNS", 588 4: "BIG_QUERY_COLUMNS", 589 5: "ALL_COLUMNS", 590 } 591 OutputStorageConfig_OutputSchema_value = map[string]int32{ 592 "OUTPUT_SCHEMA_UNSPECIFIED": 0, 593 "BASIC_COLUMNS": 1, 594 "GCS_COLUMNS": 2, 595 "DATASTORE_COLUMNS": 3, 596 "BIG_QUERY_COLUMNS": 4, 597 "ALL_COLUMNS": 5, 598 } 599) 600 601func (x OutputStorageConfig_OutputSchema) Enum() *OutputStorageConfig_OutputSchema { 602 p := new(OutputStorageConfig_OutputSchema) 603 *p = x 604 return p 605} 606 607func (x OutputStorageConfig_OutputSchema) String() string { 608 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 609} 610 611func (OutputStorageConfig_OutputSchema) Descriptor() protoreflect.EnumDescriptor { 612 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[8].Descriptor() 613} 614 615func (OutputStorageConfig_OutputSchema) Type() protoreflect.EnumType { 616 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[8] 617} 618 619func (x OutputStorageConfig_OutputSchema) Number() protoreflect.EnumNumber { 620 return protoreflect.EnumNumber(x) 621} 622 623// Deprecated: Use OutputStorageConfig_OutputSchema.Descriptor instead. 624func (OutputStorageConfig_OutputSchema) EnumDescriptor() ([]byte, []int) { 625 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{30, 0} 626} 627 628// Components that make up time. 629type TimePartConfig_TimePart int32 630 631const ( 632 // Unused 633 TimePartConfig_TIME_PART_UNSPECIFIED TimePartConfig_TimePart = 0 634 // [0-9999] 635 TimePartConfig_YEAR TimePartConfig_TimePart = 1 636 // [1-12] 637 TimePartConfig_MONTH TimePartConfig_TimePart = 2 638 // [1-31] 639 TimePartConfig_DAY_OF_MONTH TimePartConfig_TimePart = 3 640 // [1-7] 641 TimePartConfig_DAY_OF_WEEK TimePartConfig_TimePart = 4 642 // [1-53] 643 TimePartConfig_WEEK_OF_YEAR TimePartConfig_TimePart = 5 644 // [0-23] 645 TimePartConfig_HOUR_OF_DAY TimePartConfig_TimePart = 6 646) 647 648// Enum value maps for TimePartConfig_TimePart. 649var ( 650 TimePartConfig_TimePart_name = map[int32]string{ 651 0: "TIME_PART_UNSPECIFIED", 652 1: "YEAR", 653 2: "MONTH", 654 3: "DAY_OF_MONTH", 655 4: "DAY_OF_WEEK", 656 5: "WEEK_OF_YEAR", 657 6: "HOUR_OF_DAY", 658 } 659 TimePartConfig_TimePart_value = map[string]int32{ 660 "TIME_PART_UNSPECIFIED": 0, 661 "YEAR": 1, 662 "MONTH": 2, 663 "DAY_OF_MONTH": 3, 664 "DAY_OF_WEEK": 4, 665 "WEEK_OF_YEAR": 5, 666 "HOUR_OF_DAY": 6, 667 } 668) 669 670func (x TimePartConfig_TimePart) Enum() *TimePartConfig_TimePart { 671 p := new(TimePartConfig_TimePart) 672 *p = x 673 return p 674} 675 676func (x TimePartConfig_TimePart) String() string { 677 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 678} 679 680func (TimePartConfig_TimePart) Descriptor() protoreflect.EnumDescriptor { 681 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[9].Descriptor() 682} 683 684func (TimePartConfig_TimePart) Type() protoreflect.EnumType { 685 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[9] 686} 687 688func (x TimePartConfig_TimePart) Number() protoreflect.EnumNumber { 689 return protoreflect.EnumNumber(x) 690} 691 692// Deprecated: Use TimePartConfig_TimePart.Descriptor instead. 693func (TimePartConfig_TimePart) EnumDescriptor() ([]byte, []int) { 694 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{49, 0} 695} 696 697// Convenience enum for indication common characters to not transform. 698type CharsToIgnore_CommonCharsToIgnore int32 699 700const ( 701 // Unused. 702 CharsToIgnore_COMMON_CHARS_TO_IGNORE_UNSPECIFIED CharsToIgnore_CommonCharsToIgnore = 0 703 // 0-9 704 CharsToIgnore_NUMERIC CharsToIgnore_CommonCharsToIgnore = 1 705 // A-Z 706 CharsToIgnore_ALPHA_UPPER_CASE CharsToIgnore_CommonCharsToIgnore = 2 707 // a-z 708 CharsToIgnore_ALPHA_LOWER_CASE CharsToIgnore_CommonCharsToIgnore = 3 709 // US Punctuation, one of !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 710 CharsToIgnore_PUNCTUATION CharsToIgnore_CommonCharsToIgnore = 4 711 // Whitespace character, one of [ \t\n\x0B\f\r] 712 CharsToIgnore_WHITESPACE CharsToIgnore_CommonCharsToIgnore = 5 713) 714 715// Enum value maps for CharsToIgnore_CommonCharsToIgnore. 716var ( 717 CharsToIgnore_CommonCharsToIgnore_name = map[int32]string{ 718 0: "COMMON_CHARS_TO_IGNORE_UNSPECIFIED", 719 1: "NUMERIC", 720 2: "ALPHA_UPPER_CASE", 721 3: "ALPHA_LOWER_CASE", 722 4: "PUNCTUATION", 723 5: "WHITESPACE", 724 } 725 CharsToIgnore_CommonCharsToIgnore_value = map[string]int32{ 726 "COMMON_CHARS_TO_IGNORE_UNSPECIFIED": 0, 727 "NUMERIC": 1, 728 "ALPHA_UPPER_CASE": 2, 729 "ALPHA_LOWER_CASE": 3, 730 "PUNCTUATION": 4, 731 "WHITESPACE": 5, 732 } 733) 734 735func (x CharsToIgnore_CommonCharsToIgnore) Enum() *CharsToIgnore_CommonCharsToIgnore { 736 p := new(CharsToIgnore_CommonCharsToIgnore) 737 *p = x 738 return p 739} 740 741func (x CharsToIgnore_CommonCharsToIgnore) String() string { 742 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 743} 744 745func (CharsToIgnore_CommonCharsToIgnore) Descriptor() protoreflect.EnumDescriptor { 746 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[10].Descriptor() 747} 748 749func (CharsToIgnore_CommonCharsToIgnore) Type() protoreflect.EnumType { 750 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[10] 751} 752 753func (x CharsToIgnore_CommonCharsToIgnore) Number() protoreflect.EnumNumber { 754 return protoreflect.EnumNumber(x) 755} 756 757// Deprecated: Use CharsToIgnore_CommonCharsToIgnore.Descriptor instead. 758func (CharsToIgnore_CommonCharsToIgnore) EnumDescriptor() ([]byte, []int) { 759 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{55, 0} 760} 761 762// These are commonly used subsets of the alphabet that the FFX mode 763// natively supports. In the algorithm, the alphabet is selected using 764// the "radix". Therefore each corresponds to particular radix. 765type CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet int32 766 767const ( 768 // Unused. 769 CryptoReplaceFfxFpeConfig_FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 0 770 // `[0-9]` (radix of 10) 771 CryptoReplaceFfxFpeConfig_NUMERIC CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 1 772 // `[0-9A-F]` (radix of 16) 773 CryptoReplaceFfxFpeConfig_HEXADECIMAL CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 2 774 // `[0-9A-Z]` (radix of 36) 775 CryptoReplaceFfxFpeConfig_UPPER_CASE_ALPHA_NUMERIC CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 3 776 // `[0-9A-Za-z]` (radix of 62) 777 CryptoReplaceFfxFpeConfig_ALPHA_NUMERIC CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 4 778) 779 780// Enum value maps for CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet. 781var ( 782 CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet_name = map[int32]string{ 783 0: "FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED", 784 1: "NUMERIC", 785 2: "HEXADECIMAL", 786 3: "UPPER_CASE_ALPHA_NUMERIC", 787 4: "ALPHA_NUMERIC", 788 } 789 CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet_value = map[string]int32{ 790 "FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED": 0, 791 "NUMERIC": 1, 792 "HEXADECIMAL": 2, 793 "UPPER_CASE_ALPHA_NUMERIC": 3, 794 "ALPHA_NUMERIC": 4, 795 } 796) 797 798func (x CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) Enum() *CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet { 799 p := new(CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) 800 *p = x 801 return p 802} 803 804func (x CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) String() string { 805 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 806} 807 808func (CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) Descriptor() protoreflect.EnumDescriptor { 809 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[11].Descriptor() 810} 811 812func (CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) Type() protoreflect.EnumType { 813 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[11] 814} 815 816func (x CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) Number() protoreflect.EnumNumber { 817 return protoreflect.EnumNumber(x) 818} 819 820// Deprecated: Use CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet.Descriptor instead. 821func (CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) EnumDescriptor() ([]byte, []int) { 822 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{59, 0} 823} 824 825// Logical operators for conditional checks. 826type RecordCondition_Expressions_LogicalOperator int32 827 828const ( 829 // Unused 830 RecordCondition_Expressions_LOGICAL_OPERATOR_UNSPECIFIED RecordCondition_Expressions_LogicalOperator = 0 831 // Conditional AND 832 RecordCondition_Expressions_AND RecordCondition_Expressions_LogicalOperator = 1 833) 834 835// Enum value maps for RecordCondition_Expressions_LogicalOperator. 836var ( 837 RecordCondition_Expressions_LogicalOperator_name = map[int32]string{ 838 0: "LOGICAL_OPERATOR_UNSPECIFIED", 839 1: "AND", 840 } 841 RecordCondition_Expressions_LogicalOperator_value = map[string]int32{ 842 "LOGICAL_OPERATOR_UNSPECIFIED": 0, 843 "AND": 1, 844 } 845) 846 847func (x RecordCondition_Expressions_LogicalOperator) Enum() *RecordCondition_Expressions_LogicalOperator { 848 p := new(RecordCondition_Expressions_LogicalOperator) 849 *p = x 850 return p 851} 852 853func (x RecordCondition_Expressions_LogicalOperator) String() string { 854 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 855} 856 857func (RecordCondition_Expressions_LogicalOperator) Descriptor() protoreflect.EnumDescriptor { 858 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[12].Descriptor() 859} 860 861func (RecordCondition_Expressions_LogicalOperator) Type() protoreflect.EnumType { 862 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[12] 863} 864 865func (x RecordCondition_Expressions_LogicalOperator) Number() protoreflect.EnumNumber { 866 return protoreflect.EnumNumber(x) 867} 868 869// Deprecated: Use RecordCondition_Expressions_LogicalOperator.Descriptor instead. 870func (RecordCondition_Expressions_LogicalOperator) EnumDescriptor() ([]byte, []int) { 871 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{69, 2, 0} 872} 873 874// Possible outcomes of transformations. 875type TransformationSummary_TransformationResultCode int32 876 877const ( 878 // Unused 879 TransformationSummary_TRANSFORMATION_RESULT_CODE_UNSPECIFIED TransformationSummary_TransformationResultCode = 0 880 // Transformation completed without an error. 881 TransformationSummary_SUCCESS TransformationSummary_TransformationResultCode = 1 882 // Transformation had an error. 883 TransformationSummary_ERROR TransformationSummary_TransformationResultCode = 2 884) 885 886// Enum value maps for TransformationSummary_TransformationResultCode. 887var ( 888 TransformationSummary_TransformationResultCode_name = map[int32]string{ 889 0: "TRANSFORMATION_RESULT_CODE_UNSPECIFIED", 890 1: "SUCCESS", 891 2: "ERROR", 892 } 893 TransformationSummary_TransformationResultCode_value = map[string]int32{ 894 "TRANSFORMATION_RESULT_CODE_UNSPECIFIED": 0, 895 "SUCCESS": 1, 896 "ERROR": 2, 897 } 898) 899 900func (x TransformationSummary_TransformationResultCode) Enum() *TransformationSummary_TransformationResultCode { 901 p := new(TransformationSummary_TransformationResultCode) 902 *p = x 903 return p 904} 905 906func (x TransformationSummary_TransformationResultCode) String() string { 907 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 908} 909 910func (TransformationSummary_TransformationResultCode) Descriptor() protoreflect.EnumDescriptor { 911 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[13].Descriptor() 912} 913 914func (TransformationSummary_TransformationResultCode) Type() protoreflect.EnumType { 915 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[13] 916} 917 918func (x TransformationSummary_TransformationResultCode) Number() protoreflect.EnumNumber { 919 return protoreflect.EnumNumber(x) 920} 921 922// Deprecated: Use TransformationSummary_TransformationResultCode.Descriptor instead. 923func (TransformationSummary_TransformationResultCode) EnumDescriptor() ([]byte, []int) { 924 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{71, 0} 925} 926 927// Whether the trigger is currently active. If PAUSED or CANCELLED, no jobs 928// will be created with this configuration. The service may automatically 929// pause triggers experiencing frequent errors. To restart a job, set the 930// status to HEALTHY after correcting user errors. 931type JobTrigger_Status int32 932 933const ( 934 // Unused. 935 JobTrigger_STATUS_UNSPECIFIED JobTrigger_Status = 0 936 // Trigger is healthy. 937 JobTrigger_HEALTHY JobTrigger_Status = 1 938 // Trigger is temporarily paused. 939 JobTrigger_PAUSED JobTrigger_Status = 2 940 // Trigger is cancelled and can not be resumed. 941 JobTrigger_CANCELLED JobTrigger_Status = 3 942) 943 944// Enum value maps for JobTrigger_Status. 945var ( 946 JobTrigger_Status_name = map[int32]string{ 947 0: "STATUS_UNSPECIFIED", 948 1: "HEALTHY", 949 2: "PAUSED", 950 3: "CANCELLED", 951 } 952 JobTrigger_Status_value = map[string]int32{ 953 "STATUS_UNSPECIFIED": 0, 954 "HEALTHY": 1, 955 "PAUSED": 2, 956 "CANCELLED": 3, 957 } 958) 959 960func (x JobTrigger_Status) Enum() *JobTrigger_Status { 961 p := new(JobTrigger_Status) 962 *p = x 963 return p 964} 965 966func (x JobTrigger_Status) String() string { 967 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 968} 969 970func (JobTrigger_Status) Descriptor() protoreflect.EnumDescriptor { 971 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[14].Descriptor() 972} 973 974func (JobTrigger_Status) Type() protoreflect.EnumType { 975 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[14] 976} 977 978func (x JobTrigger_Status) Number() protoreflect.EnumNumber { 979 return protoreflect.EnumNumber(x) 980} 981 982// Deprecated: Use JobTrigger_Status.Descriptor instead. 983func (JobTrigger_Status) EnumDescriptor() ([]byte, []int) { 984 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{77, 0} 985} 986 987// Possible states of a job. New items may be added. 988type DlpJob_JobState int32 989 990const ( 991 // Unused. 992 DlpJob_JOB_STATE_UNSPECIFIED DlpJob_JobState = 0 993 // The job has not yet started. 994 DlpJob_PENDING DlpJob_JobState = 1 995 // The job is currently running. Once a job has finished it will transition 996 // to FAILED or DONE. 997 DlpJob_RUNNING DlpJob_JobState = 2 998 // The job is no longer running. 999 DlpJob_DONE DlpJob_JobState = 3 1000 // The job was canceled before it could complete. 1001 DlpJob_CANCELED DlpJob_JobState = 4 1002 // The job had an error and did not complete. 1003 DlpJob_FAILED DlpJob_JobState = 5 1004 // The job is currently accepting findings via hybridInspect. 1005 // A hybrid job in ACTIVE state may continue to have findings added to it 1006 // through calling of hybridInspect. After the job has finished no more 1007 // calls to hybridInspect may be made. ACTIVE jobs can transition to DONE. 1008 DlpJob_ACTIVE DlpJob_JobState = 6 1009) 1010 1011// Enum value maps for DlpJob_JobState. 1012var ( 1013 DlpJob_JobState_name = map[int32]string{ 1014 0: "JOB_STATE_UNSPECIFIED", 1015 1: "PENDING", 1016 2: "RUNNING", 1017 3: "DONE", 1018 4: "CANCELED", 1019 5: "FAILED", 1020 6: "ACTIVE", 1021 } 1022 DlpJob_JobState_value = map[string]int32{ 1023 "JOB_STATE_UNSPECIFIED": 0, 1024 "PENDING": 1, 1025 "RUNNING": 2, 1026 "DONE": 3, 1027 "CANCELED": 4, 1028 "FAILED": 5, 1029 "ACTIVE": 6, 1030 } 1031) 1032 1033func (x DlpJob_JobState) Enum() *DlpJob_JobState { 1034 p := new(DlpJob_JobState) 1035 *p = x 1036 return p 1037} 1038 1039func (x DlpJob_JobState) String() string { 1040 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 1041} 1042 1043func (DlpJob_JobState) Descriptor() protoreflect.EnumDescriptor { 1044 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[15].Descriptor() 1045} 1046 1047func (DlpJob_JobState) Type() protoreflect.EnumType { 1048 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[15] 1049} 1050 1051func (x DlpJob_JobState) Number() protoreflect.EnumNumber { 1052 return protoreflect.EnumNumber(x) 1053} 1054 1055// Deprecated: Use DlpJob_JobState.Descriptor instead. 1056func (DlpJob_JobState) EnumDescriptor() ([]byte, []int) { 1057 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{94, 0} 1058} 1059 1060// List of exclude infoTypes. 1061type ExcludeInfoTypes struct { 1062 state protoimpl.MessageState 1063 sizeCache protoimpl.SizeCache 1064 unknownFields protoimpl.UnknownFields 1065 1066 // InfoType list in ExclusionRule rule drops a finding when it overlaps or 1067 // contained within with a finding of an infoType from this list. For 1068 // example, for `InspectionRuleSet.info_types` containing "PHONE_NUMBER"` and 1069 // `exclusion_rule` containing `exclude_info_types.info_types` with 1070 // "EMAIL_ADDRESS" the phone number findings are dropped if they overlap 1071 // with EMAIL_ADDRESS finding. 1072 // That leads to "555-222-2222@example.org" to generate only a single 1073 // finding, namely email address. 1074 InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"` 1075} 1076 1077func (x *ExcludeInfoTypes) Reset() { 1078 *x = ExcludeInfoTypes{} 1079 if protoimpl.UnsafeEnabled { 1080 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[0] 1081 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1082 ms.StoreMessageInfo(mi) 1083 } 1084} 1085 1086func (x *ExcludeInfoTypes) String() string { 1087 return protoimpl.X.MessageStringOf(x) 1088} 1089 1090func (*ExcludeInfoTypes) ProtoMessage() {} 1091 1092func (x *ExcludeInfoTypes) ProtoReflect() protoreflect.Message { 1093 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[0] 1094 if protoimpl.UnsafeEnabled && x != nil { 1095 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1096 if ms.LoadMessageInfo() == nil { 1097 ms.StoreMessageInfo(mi) 1098 } 1099 return ms 1100 } 1101 return mi.MessageOf(x) 1102} 1103 1104// Deprecated: Use ExcludeInfoTypes.ProtoReflect.Descriptor instead. 1105func (*ExcludeInfoTypes) Descriptor() ([]byte, []int) { 1106 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{0} 1107} 1108 1109func (x *ExcludeInfoTypes) GetInfoTypes() []*InfoType { 1110 if x != nil { 1111 return x.InfoTypes 1112 } 1113 return nil 1114} 1115 1116// The rule that specifies conditions when findings of infoTypes specified in 1117// `InspectionRuleSet` are removed from results. 1118type ExclusionRule struct { 1119 state protoimpl.MessageState 1120 sizeCache protoimpl.SizeCache 1121 unknownFields protoimpl.UnknownFields 1122 1123 // Exclusion rule types. 1124 // 1125 // Types that are assignable to Type: 1126 // *ExclusionRule_Dictionary 1127 // *ExclusionRule_Regex 1128 // *ExclusionRule_ExcludeInfoTypes 1129 Type isExclusionRule_Type `protobuf_oneof:"type"` 1130 // How the rule is applied, see MatchingType documentation for details. 1131 MatchingType MatchingType `protobuf:"varint,4,opt,name=matching_type,json=matchingType,proto3,enum=google.privacy.dlp.v2.MatchingType" json:"matching_type,omitempty"` 1132} 1133 1134func (x *ExclusionRule) Reset() { 1135 *x = ExclusionRule{} 1136 if protoimpl.UnsafeEnabled { 1137 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[1] 1138 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1139 ms.StoreMessageInfo(mi) 1140 } 1141} 1142 1143func (x *ExclusionRule) String() string { 1144 return protoimpl.X.MessageStringOf(x) 1145} 1146 1147func (*ExclusionRule) ProtoMessage() {} 1148 1149func (x *ExclusionRule) ProtoReflect() protoreflect.Message { 1150 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[1] 1151 if protoimpl.UnsafeEnabled && x != nil { 1152 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1153 if ms.LoadMessageInfo() == nil { 1154 ms.StoreMessageInfo(mi) 1155 } 1156 return ms 1157 } 1158 return mi.MessageOf(x) 1159} 1160 1161// Deprecated: Use ExclusionRule.ProtoReflect.Descriptor instead. 1162func (*ExclusionRule) Descriptor() ([]byte, []int) { 1163 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{1} 1164} 1165 1166func (m *ExclusionRule) GetType() isExclusionRule_Type { 1167 if m != nil { 1168 return m.Type 1169 } 1170 return nil 1171} 1172 1173func (x *ExclusionRule) GetDictionary() *CustomInfoType_Dictionary { 1174 if x, ok := x.GetType().(*ExclusionRule_Dictionary); ok { 1175 return x.Dictionary 1176 } 1177 return nil 1178} 1179 1180func (x *ExclusionRule) GetRegex() *CustomInfoType_Regex { 1181 if x, ok := x.GetType().(*ExclusionRule_Regex); ok { 1182 return x.Regex 1183 } 1184 return nil 1185} 1186 1187func (x *ExclusionRule) GetExcludeInfoTypes() *ExcludeInfoTypes { 1188 if x, ok := x.GetType().(*ExclusionRule_ExcludeInfoTypes); ok { 1189 return x.ExcludeInfoTypes 1190 } 1191 return nil 1192} 1193 1194func (x *ExclusionRule) GetMatchingType() MatchingType { 1195 if x != nil { 1196 return x.MatchingType 1197 } 1198 return MatchingType_MATCHING_TYPE_UNSPECIFIED 1199} 1200 1201type isExclusionRule_Type interface { 1202 isExclusionRule_Type() 1203} 1204 1205type ExclusionRule_Dictionary struct { 1206 // Dictionary which defines the rule. 1207 Dictionary *CustomInfoType_Dictionary `protobuf:"bytes,1,opt,name=dictionary,proto3,oneof"` 1208} 1209 1210type ExclusionRule_Regex struct { 1211 // Regular expression which defines the rule. 1212 Regex *CustomInfoType_Regex `protobuf:"bytes,2,opt,name=regex,proto3,oneof"` 1213} 1214 1215type ExclusionRule_ExcludeInfoTypes struct { 1216 // Set of infoTypes for which findings would affect this rule. 1217 ExcludeInfoTypes *ExcludeInfoTypes `protobuf:"bytes,3,opt,name=exclude_info_types,json=excludeInfoTypes,proto3,oneof"` 1218} 1219 1220func (*ExclusionRule_Dictionary) isExclusionRule_Type() {} 1221 1222func (*ExclusionRule_Regex) isExclusionRule_Type() {} 1223 1224func (*ExclusionRule_ExcludeInfoTypes) isExclusionRule_Type() {} 1225 1226// A single inspection rule to be applied to infoTypes, specified in 1227// `InspectionRuleSet`. 1228type InspectionRule struct { 1229 state protoimpl.MessageState 1230 sizeCache protoimpl.SizeCache 1231 unknownFields protoimpl.UnknownFields 1232 1233 // Inspection rule types. 1234 // 1235 // Types that are assignable to Type: 1236 // *InspectionRule_HotwordRule 1237 // *InspectionRule_ExclusionRule 1238 Type isInspectionRule_Type `protobuf_oneof:"type"` 1239} 1240 1241func (x *InspectionRule) Reset() { 1242 *x = InspectionRule{} 1243 if protoimpl.UnsafeEnabled { 1244 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[2] 1245 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1246 ms.StoreMessageInfo(mi) 1247 } 1248} 1249 1250func (x *InspectionRule) String() string { 1251 return protoimpl.X.MessageStringOf(x) 1252} 1253 1254func (*InspectionRule) ProtoMessage() {} 1255 1256func (x *InspectionRule) ProtoReflect() protoreflect.Message { 1257 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[2] 1258 if protoimpl.UnsafeEnabled && x != nil { 1259 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1260 if ms.LoadMessageInfo() == nil { 1261 ms.StoreMessageInfo(mi) 1262 } 1263 return ms 1264 } 1265 return mi.MessageOf(x) 1266} 1267 1268// Deprecated: Use InspectionRule.ProtoReflect.Descriptor instead. 1269func (*InspectionRule) Descriptor() ([]byte, []int) { 1270 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{2} 1271} 1272 1273func (m *InspectionRule) GetType() isInspectionRule_Type { 1274 if m != nil { 1275 return m.Type 1276 } 1277 return nil 1278} 1279 1280func (x *InspectionRule) GetHotwordRule() *CustomInfoType_DetectionRule_HotwordRule { 1281 if x, ok := x.GetType().(*InspectionRule_HotwordRule); ok { 1282 return x.HotwordRule 1283 } 1284 return nil 1285} 1286 1287func (x *InspectionRule) GetExclusionRule() *ExclusionRule { 1288 if x, ok := x.GetType().(*InspectionRule_ExclusionRule); ok { 1289 return x.ExclusionRule 1290 } 1291 return nil 1292} 1293 1294type isInspectionRule_Type interface { 1295 isInspectionRule_Type() 1296} 1297 1298type InspectionRule_HotwordRule struct { 1299 // Hotword-based detection rule. 1300 HotwordRule *CustomInfoType_DetectionRule_HotwordRule `protobuf:"bytes,1,opt,name=hotword_rule,json=hotwordRule,proto3,oneof"` 1301} 1302 1303type InspectionRule_ExclusionRule struct { 1304 // Exclusion rule. 1305 ExclusionRule *ExclusionRule `protobuf:"bytes,2,opt,name=exclusion_rule,json=exclusionRule,proto3,oneof"` 1306} 1307 1308func (*InspectionRule_HotwordRule) isInspectionRule_Type() {} 1309 1310func (*InspectionRule_ExclusionRule) isInspectionRule_Type() {} 1311 1312// Rule set for modifying a set of infoTypes to alter behavior under certain 1313// circumstances, depending on the specific details of the rules within the set. 1314type InspectionRuleSet struct { 1315 state protoimpl.MessageState 1316 sizeCache protoimpl.SizeCache 1317 unknownFields protoimpl.UnknownFields 1318 1319 // List of infoTypes this rule set is applied to. 1320 InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"` 1321 // Set of rules to be applied to infoTypes. The rules are applied in order. 1322 Rules []*InspectionRule `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules,omitempty"` 1323} 1324 1325func (x *InspectionRuleSet) Reset() { 1326 *x = InspectionRuleSet{} 1327 if protoimpl.UnsafeEnabled { 1328 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[3] 1329 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1330 ms.StoreMessageInfo(mi) 1331 } 1332} 1333 1334func (x *InspectionRuleSet) String() string { 1335 return protoimpl.X.MessageStringOf(x) 1336} 1337 1338func (*InspectionRuleSet) ProtoMessage() {} 1339 1340func (x *InspectionRuleSet) ProtoReflect() protoreflect.Message { 1341 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[3] 1342 if protoimpl.UnsafeEnabled && x != nil { 1343 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1344 if ms.LoadMessageInfo() == nil { 1345 ms.StoreMessageInfo(mi) 1346 } 1347 return ms 1348 } 1349 return mi.MessageOf(x) 1350} 1351 1352// Deprecated: Use InspectionRuleSet.ProtoReflect.Descriptor instead. 1353func (*InspectionRuleSet) Descriptor() ([]byte, []int) { 1354 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{3} 1355} 1356 1357func (x *InspectionRuleSet) GetInfoTypes() []*InfoType { 1358 if x != nil { 1359 return x.InfoTypes 1360 } 1361 return nil 1362} 1363 1364func (x *InspectionRuleSet) GetRules() []*InspectionRule { 1365 if x != nil { 1366 return x.Rules 1367 } 1368 return nil 1369} 1370 1371// Configuration description of the scanning process. 1372// When used with redactContent only info_types and min_likelihood are currently 1373// used. 1374type InspectConfig struct { 1375 state protoimpl.MessageState 1376 sizeCache protoimpl.SizeCache 1377 unknownFields protoimpl.UnknownFields 1378 1379 // Restricts what info_types to look for. The values must correspond to 1380 // InfoType values returned by ListInfoTypes or listed at 1381 // https://cloud.google.com/dlp/docs/infotypes-reference. 1382 // 1383 // When no InfoTypes or CustomInfoTypes are specified in a request, the 1384 // system may automatically choose what detectors to run. By default this may 1385 // be all types, but may change over time as detectors are updated. 1386 // 1387 // If you need precise control and predictability as to what detectors are 1388 // run you should specify specific InfoTypes listed in the reference, 1389 // otherwise a default list will be used, which may change over time. 1390 InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"` 1391 // Only returns findings equal or above this threshold. The default is 1392 // POSSIBLE. 1393 // See https://cloud.google.com/dlp/docs/likelihood to learn more. 1394 MinLikelihood Likelihood `protobuf:"varint,2,opt,name=min_likelihood,json=minLikelihood,proto3,enum=google.privacy.dlp.v2.Likelihood" json:"min_likelihood,omitempty"` 1395 // Configuration to control the number of findings returned. 1396 Limits *InspectConfig_FindingLimits `protobuf:"bytes,3,opt,name=limits,proto3" json:"limits,omitempty"` 1397 // When true, a contextual quote from the data that triggered a finding is 1398 // included in the response; see Finding.quote. 1399 IncludeQuote bool `protobuf:"varint,4,opt,name=include_quote,json=includeQuote,proto3" json:"include_quote,omitempty"` 1400 // When true, excludes type information of the findings. 1401 ExcludeInfoTypes bool `protobuf:"varint,5,opt,name=exclude_info_types,json=excludeInfoTypes,proto3" json:"exclude_info_types,omitempty"` 1402 // CustomInfoTypes provided by the user. See 1403 // https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. 1404 CustomInfoTypes []*CustomInfoType `protobuf:"bytes,6,rep,name=custom_info_types,json=customInfoTypes,proto3" json:"custom_info_types,omitempty"` 1405 // List of options defining data content to scan. 1406 // If empty, text, images, and other content will be included. 1407 ContentOptions []ContentOption `protobuf:"varint,8,rep,packed,name=content_options,json=contentOptions,proto3,enum=google.privacy.dlp.v2.ContentOption" json:"content_options,omitempty"` 1408 // Set of rules to apply to the findings for this InspectConfig. 1409 // Exclusion rules, contained in the set are executed in the end, other 1410 // rules are executed in the order they are specified for each info type. 1411 RuleSet []*InspectionRuleSet `protobuf:"bytes,10,rep,name=rule_set,json=ruleSet,proto3" json:"rule_set,omitempty"` 1412} 1413 1414func (x *InspectConfig) Reset() { 1415 *x = InspectConfig{} 1416 if protoimpl.UnsafeEnabled { 1417 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[4] 1418 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1419 ms.StoreMessageInfo(mi) 1420 } 1421} 1422 1423func (x *InspectConfig) String() string { 1424 return protoimpl.X.MessageStringOf(x) 1425} 1426 1427func (*InspectConfig) ProtoMessage() {} 1428 1429func (x *InspectConfig) ProtoReflect() protoreflect.Message { 1430 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[4] 1431 if protoimpl.UnsafeEnabled && x != nil { 1432 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1433 if ms.LoadMessageInfo() == nil { 1434 ms.StoreMessageInfo(mi) 1435 } 1436 return ms 1437 } 1438 return mi.MessageOf(x) 1439} 1440 1441// Deprecated: Use InspectConfig.ProtoReflect.Descriptor instead. 1442func (*InspectConfig) Descriptor() ([]byte, []int) { 1443 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{4} 1444} 1445 1446func (x *InspectConfig) GetInfoTypes() []*InfoType { 1447 if x != nil { 1448 return x.InfoTypes 1449 } 1450 return nil 1451} 1452 1453func (x *InspectConfig) GetMinLikelihood() Likelihood { 1454 if x != nil { 1455 return x.MinLikelihood 1456 } 1457 return Likelihood_LIKELIHOOD_UNSPECIFIED 1458} 1459 1460func (x *InspectConfig) GetLimits() *InspectConfig_FindingLimits { 1461 if x != nil { 1462 return x.Limits 1463 } 1464 return nil 1465} 1466 1467func (x *InspectConfig) GetIncludeQuote() bool { 1468 if x != nil { 1469 return x.IncludeQuote 1470 } 1471 return false 1472} 1473 1474func (x *InspectConfig) GetExcludeInfoTypes() bool { 1475 if x != nil { 1476 return x.ExcludeInfoTypes 1477 } 1478 return false 1479} 1480 1481func (x *InspectConfig) GetCustomInfoTypes() []*CustomInfoType { 1482 if x != nil { 1483 return x.CustomInfoTypes 1484 } 1485 return nil 1486} 1487 1488func (x *InspectConfig) GetContentOptions() []ContentOption { 1489 if x != nil { 1490 return x.ContentOptions 1491 } 1492 return nil 1493} 1494 1495func (x *InspectConfig) GetRuleSet() []*InspectionRuleSet { 1496 if x != nil { 1497 return x.RuleSet 1498 } 1499 return nil 1500} 1501 1502// Container for bytes to inspect or redact. 1503type ByteContentItem struct { 1504 state protoimpl.MessageState 1505 sizeCache protoimpl.SizeCache 1506 unknownFields protoimpl.UnknownFields 1507 1508 // The type of data stored in the bytes string. Default will be TEXT_UTF8. 1509 Type ByteContentItem_BytesType `protobuf:"varint,1,opt,name=type,proto3,enum=google.privacy.dlp.v2.ByteContentItem_BytesType" json:"type,omitempty"` 1510 // Content data to inspect or redact. 1511 Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` 1512} 1513 1514func (x *ByteContentItem) Reset() { 1515 *x = ByteContentItem{} 1516 if protoimpl.UnsafeEnabled { 1517 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[5] 1518 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1519 ms.StoreMessageInfo(mi) 1520 } 1521} 1522 1523func (x *ByteContentItem) String() string { 1524 return protoimpl.X.MessageStringOf(x) 1525} 1526 1527func (*ByteContentItem) ProtoMessage() {} 1528 1529func (x *ByteContentItem) ProtoReflect() protoreflect.Message { 1530 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[5] 1531 if protoimpl.UnsafeEnabled && x != nil { 1532 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1533 if ms.LoadMessageInfo() == nil { 1534 ms.StoreMessageInfo(mi) 1535 } 1536 return ms 1537 } 1538 return mi.MessageOf(x) 1539} 1540 1541// Deprecated: Use ByteContentItem.ProtoReflect.Descriptor instead. 1542func (*ByteContentItem) Descriptor() ([]byte, []int) { 1543 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{5} 1544} 1545 1546func (x *ByteContentItem) GetType() ByteContentItem_BytesType { 1547 if x != nil { 1548 return x.Type 1549 } 1550 return ByteContentItem_BYTES_TYPE_UNSPECIFIED 1551} 1552 1553func (x *ByteContentItem) GetData() []byte { 1554 if x != nil { 1555 return x.Data 1556 } 1557 return nil 1558} 1559 1560// Container structure for the content to inspect. 1561type ContentItem struct { 1562 state protoimpl.MessageState 1563 sizeCache protoimpl.SizeCache 1564 unknownFields protoimpl.UnknownFields 1565 1566 // Data of the item either in the byte array or UTF-8 string form, or table. 1567 // 1568 // Types that are assignable to DataItem: 1569 // *ContentItem_Value 1570 // *ContentItem_Table 1571 // *ContentItem_ByteItem 1572 DataItem isContentItem_DataItem `protobuf_oneof:"data_item"` 1573} 1574 1575func (x *ContentItem) Reset() { 1576 *x = ContentItem{} 1577 if protoimpl.UnsafeEnabled { 1578 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[6] 1579 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1580 ms.StoreMessageInfo(mi) 1581 } 1582} 1583 1584func (x *ContentItem) String() string { 1585 return protoimpl.X.MessageStringOf(x) 1586} 1587 1588func (*ContentItem) ProtoMessage() {} 1589 1590func (x *ContentItem) ProtoReflect() protoreflect.Message { 1591 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[6] 1592 if protoimpl.UnsafeEnabled && x != nil { 1593 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1594 if ms.LoadMessageInfo() == nil { 1595 ms.StoreMessageInfo(mi) 1596 } 1597 return ms 1598 } 1599 return mi.MessageOf(x) 1600} 1601 1602// Deprecated: Use ContentItem.ProtoReflect.Descriptor instead. 1603func (*ContentItem) Descriptor() ([]byte, []int) { 1604 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{6} 1605} 1606 1607func (m *ContentItem) GetDataItem() isContentItem_DataItem { 1608 if m != nil { 1609 return m.DataItem 1610 } 1611 return nil 1612} 1613 1614func (x *ContentItem) GetValue() string { 1615 if x, ok := x.GetDataItem().(*ContentItem_Value); ok { 1616 return x.Value 1617 } 1618 return "" 1619} 1620 1621func (x *ContentItem) GetTable() *Table { 1622 if x, ok := x.GetDataItem().(*ContentItem_Table); ok { 1623 return x.Table 1624 } 1625 return nil 1626} 1627 1628func (x *ContentItem) GetByteItem() *ByteContentItem { 1629 if x, ok := x.GetDataItem().(*ContentItem_ByteItem); ok { 1630 return x.ByteItem 1631 } 1632 return nil 1633} 1634 1635type isContentItem_DataItem interface { 1636 isContentItem_DataItem() 1637} 1638 1639type ContentItem_Value struct { 1640 // String data to inspect or redact. 1641 Value string `protobuf:"bytes,3,opt,name=value,proto3,oneof"` 1642} 1643 1644type ContentItem_Table struct { 1645 // Structured content for inspection. See 1646 // https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to 1647 // learn more. 1648 Table *Table `protobuf:"bytes,4,opt,name=table,proto3,oneof"` 1649} 1650 1651type ContentItem_ByteItem struct { 1652 // Content data to inspect or redact. Replaces `type` and `data`. 1653 ByteItem *ByteContentItem `protobuf:"bytes,5,opt,name=byte_item,json=byteItem,proto3,oneof"` 1654} 1655 1656func (*ContentItem_Value) isContentItem_DataItem() {} 1657 1658func (*ContentItem_Table) isContentItem_DataItem() {} 1659 1660func (*ContentItem_ByteItem) isContentItem_DataItem() {} 1661 1662// Structured content to inspect. Up to 50,000 `Value`s per request allowed. 1663// See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to 1664// learn more. 1665type Table struct { 1666 state protoimpl.MessageState 1667 sizeCache protoimpl.SizeCache 1668 unknownFields protoimpl.UnknownFields 1669 1670 // Headers of the table. 1671 Headers []*FieldId `protobuf:"bytes,1,rep,name=headers,proto3" json:"headers,omitempty"` 1672 // Rows of the table. 1673 Rows []*Table_Row `protobuf:"bytes,2,rep,name=rows,proto3" json:"rows,omitempty"` 1674} 1675 1676func (x *Table) Reset() { 1677 *x = Table{} 1678 if protoimpl.UnsafeEnabled { 1679 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[7] 1680 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1681 ms.StoreMessageInfo(mi) 1682 } 1683} 1684 1685func (x *Table) String() string { 1686 return protoimpl.X.MessageStringOf(x) 1687} 1688 1689func (*Table) ProtoMessage() {} 1690 1691func (x *Table) ProtoReflect() protoreflect.Message { 1692 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[7] 1693 if protoimpl.UnsafeEnabled && x != nil { 1694 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1695 if ms.LoadMessageInfo() == nil { 1696 ms.StoreMessageInfo(mi) 1697 } 1698 return ms 1699 } 1700 return mi.MessageOf(x) 1701} 1702 1703// Deprecated: Use Table.ProtoReflect.Descriptor instead. 1704func (*Table) Descriptor() ([]byte, []int) { 1705 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{7} 1706} 1707 1708func (x *Table) GetHeaders() []*FieldId { 1709 if x != nil { 1710 return x.Headers 1711 } 1712 return nil 1713} 1714 1715func (x *Table) GetRows() []*Table_Row { 1716 if x != nil { 1717 return x.Rows 1718 } 1719 return nil 1720} 1721 1722// All the findings for a single scanned item. 1723type InspectResult struct { 1724 state protoimpl.MessageState 1725 sizeCache protoimpl.SizeCache 1726 unknownFields protoimpl.UnknownFields 1727 1728 // List of findings for an item. 1729 Findings []*Finding `protobuf:"bytes,1,rep,name=findings,proto3" json:"findings,omitempty"` 1730 // If true, then this item might have more findings than were returned, 1731 // and the findings returned are an arbitrary subset of all findings. 1732 // The findings list might be truncated because the input items were too 1733 // large, or because the server reached the maximum amount of resources 1734 // allowed for a single API call. For best results, divide the input into 1735 // smaller batches. 1736 FindingsTruncated bool `protobuf:"varint,2,opt,name=findings_truncated,json=findingsTruncated,proto3" json:"findings_truncated,omitempty"` 1737} 1738 1739func (x *InspectResult) Reset() { 1740 *x = InspectResult{} 1741 if protoimpl.UnsafeEnabled { 1742 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[8] 1743 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1744 ms.StoreMessageInfo(mi) 1745 } 1746} 1747 1748func (x *InspectResult) String() string { 1749 return protoimpl.X.MessageStringOf(x) 1750} 1751 1752func (*InspectResult) ProtoMessage() {} 1753 1754func (x *InspectResult) ProtoReflect() protoreflect.Message { 1755 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[8] 1756 if protoimpl.UnsafeEnabled && x != nil { 1757 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1758 if ms.LoadMessageInfo() == nil { 1759 ms.StoreMessageInfo(mi) 1760 } 1761 return ms 1762 } 1763 return mi.MessageOf(x) 1764} 1765 1766// Deprecated: Use InspectResult.ProtoReflect.Descriptor instead. 1767func (*InspectResult) Descriptor() ([]byte, []int) { 1768 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{8} 1769} 1770 1771func (x *InspectResult) GetFindings() []*Finding { 1772 if x != nil { 1773 return x.Findings 1774 } 1775 return nil 1776} 1777 1778func (x *InspectResult) GetFindingsTruncated() bool { 1779 if x != nil { 1780 return x.FindingsTruncated 1781 } 1782 return false 1783} 1784 1785// Represents a piece of potentially sensitive content. 1786type Finding struct { 1787 state protoimpl.MessageState 1788 sizeCache protoimpl.SizeCache 1789 unknownFields protoimpl.UnknownFields 1790 1791 // Resource name in format 1792 // projects/{project}/locations/{location}/findings/{finding} Populated only 1793 // when viewing persisted findings. 1794 Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` 1795 // The content that was found. Even if the content is not textual, it 1796 // may be converted to a textual representation here. 1797 // Provided if `include_quote` is true and the finding is 1798 // less than or equal to 4096 bytes long. If the finding exceeds 4096 bytes 1799 // in length, the quote may be omitted. 1800 Quote string `protobuf:"bytes,1,opt,name=quote,proto3" json:"quote,omitempty"` 1801 // The type of content that might have been found. 1802 // Provided if `excluded_types` is false. 1803 InfoType *InfoType `protobuf:"bytes,2,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"` 1804 // Confidence of how likely it is that the `info_type` is correct. 1805 Likelihood Likelihood `protobuf:"varint,3,opt,name=likelihood,proto3,enum=google.privacy.dlp.v2.Likelihood" json:"likelihood,omitempty"` 1806 // Where the content was found. 1807 Location *Location `protobuf:"bytes,4,opt,name=location,proto3" json:"location,omitempty"` 1808 // Timestamp when finding was detected. 1809 CreateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 1810 // Contains data parsed from quotes. Only populated if include_quote was set 1811 // to true and a supported infoType was requested. Currently supported 1812 // infoTypes: DATE, DATE_OF_BIRTH and TIME. 1813 QuoteInfo *QuoteInfo `protobuf:"bytes,7,opt,name=quote_info,json=quoteInfo,proto3" json:"quote_info,omitempty"` 1814 // The job that stored the finding. 1815 ResourceName string `protobuf:"bytes,8,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` 1816 // Job trigger name, if applicable, for this finding. 1817 TriggerName string `protobuf:"bytes,9,opt,name=trigger_name,json=triggerName,proto3" json:"trigger_name,omitempty"` 1818 // The labels associated with this `Finding`. 1819 // 1820 // Label keys must be between 1 and 63 characters long and must conform 1821 // to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. 1822 // 1823 // Label values must be between 0 and 63 characters long and must conform 1824 // to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. 1825 // 1826 // No more than 10 labels can be associated with a given finding. 1827 // 1828 // Examples: 1829 // * `"environment" : "production"` 1830 // * `"pipeline" : "etl"` 1831 Labels map[string]string `protobuf:"bytes,10,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1832 // Time the job started that produced this finding. 1833 JobCreateTime *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=job_create_time,json=jobCreateTime,proto3" json:"job_create_time,omitempty"` 1834 // The job that stored the finding. 1835 JobName string `protobuf:"bytes,13,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty"` 1836} 1837 1838func (x *Finding) Reset() { 1839 *x = Finding{} 1840 if protoimpl.UnsafeEnabled { 1841 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[9] 1842 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1843 ms.StoreMessageInfo(mi) 1844 } 1845} 1846 1847func (x *Finding) String() string { 1848 return protoimpl.X.MessageStringOf(x) 1849} 1850 1851func (*Finding) ProtoMessage() {} 1852 1853func (x *Finding) ProtoReflect() protoreflect.Message { 1854 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[9] 1855 if protoimpl.UnsafeEnabled && x != nil { 1856 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1857 if ms.LoadMessageInfo() == nil { 1858 ms.StoreMessageInfo(mi) 1859 } 1860 return ms 1861 } 1862 return mi.MessageOf(x) 1863} 1864 1865// Deprecated: Use Finding.ProtoReflect.Descriptor instead. 1866func (*Finding) Descriptor() ([]byte, []int) { 1867 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{9} 1868} 1869 1870func (x *Finding) GetName() string { 1871 if x != nil { 1872 return x.Name 1873 } 1874 return "" 1875} 1876 1877func (x *Finding) GetQuote() string { 1878 if x != nil { 1879 return x.Quote 1880 } 1881 return "" 1882} 1883 1884func (x *Finding) GetInfoType() *InfoType { 1885 if x != nil { 1886 return x.InfoType 1887 } 1888 return nil 1889} 1890 1891func (x *Finding) GetLikelihood() Likelihood { 1892 if x != nil { 1893 return x.Likelihood 1894 } 1895 return Likelihood_LIKELIHOOD_UNSPECIFIED 1896} 1897 1898func (x *Finding) GetLocation() *Location { 1899 if x != nil { 1900 return x.Location 1901 } 1902 return nil 1903} 1904 1905func (x *Finding) GetCreateTime() *timestamppb.Timestamp { 1906 if x != nil { 1907 return x.CreateTime 1908 } 1909 return nil 1910} 1911 1912func (x *Finding) GetQuoteInfo() *QuoteInfo { 1913 if x != nil { 1914 return x.QuoteInfo 1915 } 1916 return nil 1917} 1918 1919func (x *Finding) GetResourceName() string { 1920 if x != nil { 1921 return x.ResourceName 1922 } 1923 return "" 1924} 1925 1926func (x *Finding) GetTriggerName() string { 1927 if x != nil { 1928 return x.TriggerName 1929 } 1930 return "" 1931} 1932 1933func (x *Finding) GetLabels() map[string]string { 1934 if x != nil { 1935 return x.Labels 1936 } 1937 return nil 1938} 1939 1940func (x *Finding) GetJobCreateTime() *timestamppb.Timestamp { 1941 if x != nil { 1942 return x.JobCreateTime 1943 } 1944 return nil 1945} 1946 1947func (x *Finding) GetJobName() string { 1948 if x != nil { 1949 return x.JobName 1950 } 1951 return "" 1952} 1953 1954// Specifies the location of the finding. 1955type Location struct { 1956 state protoimpl.MessageState 1957 sizeCache protoimpl.SizeCache 1958 unknownFields protoimpl.UnknownFields 1959 1960 // Zero-based byte offsets delimiting the finding. 1961 // These are relative to the finding's containing element. 1962 // Note that when the content is not textual, this references 1963 // the UTF-8 encoded textual representation of the content. 1964 // Omitted if content is an image. 1965 ByteRange *Range `protobuf:"bytes,1,opt,name=byte_range,json=byteRange,proto3" json:"byte_range,omitempty"` 1966 // Unicode character offsets delimiting the finding. 1967 // These are relative to the finding's containing element. 1968 // Provided when the content is text. 1969 CodepointRange *Range `protobuf:"bytes,2,opt,name=codepoint_range,json=codepointRange,proto3" json:"codepoint_range,omitempty"` 1970 // List of nested objects pointing to the precise location of the finding 1971 // within the file or record. 1972 ContentLocations []*ContentLocation `protobuf:"bytes,7,rep,name=content_locations,json=contentLocations,proto3" json:"content_locations,omitempty"` 1973 // Information about the container where this finding occurred, if available. 1974 Container *Container `protobuf:"bytes,8,opt,name=container,proto3" json:"container,omitempty"` 1975} 1976 1977func (x *Location) Reset() { 1978 *x = Location{} 1979 if protoimpl.UnsafeEnabled { 1980 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[10] 1981 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1982 ms.StoreMessageInfo(mi) 1983 } 1984} 1985 1986func (x *Location) String() string { 1987 return protoimpl.X.MessageStringOf(x) 1988} 1989 1990func (*Location) ProtoMessage() {} 1991 1992func (x *Location) ProtoReflect() protoreflect.Message { 1993 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[10] 1994 if protoimpl.UnsafeEnabled && x != nil { 1995 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1996 if ms.LoadMessageInfo() == nil { 1997 ms.StoreMessageInfo(mi) 1998 } 1999 return ms 2000 } 2001 return mi.MessageOf(x) 2002} 2003 2004// Deprecated: Use Location.ProtoReflect.Descriptor instead. 2005func (*Location) Descriptor() ([]byte, []int) { 2006 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{10} 2007} 2008 2009func (x *Location) GetByteRange() *Range { 2010 if x != nil { 2011 return x.ByteRange 2012 } 2013 return nil 2014} 2015 2016func (x *Location) GetCodepointRange() *Range { 2017 if x != nil { 2018 return x.CodepointRange 2019 } 2020 return nil 2021} 2022 2023func (x *Location) GetContentLocations() []*ContentLocation { 2024 if x != nil { 2025 return x.ContentLocations 2026 } 2027 return nil 2028} 2029 2030func (x *Location) GetContainer() *Container { 2031 if x != nil { 2032 return x.Container 2033 } 2034 return nil 2035} 2036 2037// Precise location of the finding within a document, record, image, or metadata 2038// container. 2039type ContentLocation struct { 2040 state protoimpl.MessageState 2041 sizeCache protoimpl.SizeCache 2042 unknownFields protoimpl.UnknownFields 2043 2044 // Name of the container where the finding is located. 2045 // The top level name is the source file name or table name. Names of some 2046 // common storage containers are formatted as follows: 2047 // 2048 // * BigQuery tables: `{project_id}:{dataset_id}.{table_id}` 2049 // * Cloud Storage files: `gs://{bucket}/{path}` 2050 // * Datastore namespace: {namespace} 2051 // 2052 // Nested names could be absent if the embedded object has no string 2053 // identifier (for an example an image contained within a document). 2054 ContainerName string `protobuf:"bytes,1,opt,name=container_name,json=containerName,proto3" json:"container_name,omitempty"` 2055 // Type of the container within the file with location of the finding. 2056 // 2057 // Types that are assignable to Location: 2058 // *ContentLocation_RecordLocation 2059 // *ContentLocation_ImageLocation 2060 // *ContentLocation_DocumentLocation 2061 // *ContentLocation_MetadataLocation 2062 Location isContentLocation_Location `protobuf_oneof:"location"` 2063 // Findings container modification timestamp, if applicable. 2064 // For Google Cloud Storage contains last file modification timestamp. 2065 // For BigQuery table contains last_modified_time property. 2066 // For Datastore - not populated. 2067 ContainerTimestamp *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=container_timestamp,json=containerTimestamp,proto3" json:"container_timestamp,omitempty"` 2068 // Findings container version, if available 2069 // ("generation" for Google Cloud Storage). 2070 ContainerVersion string `protobuf:"bytes,7,opt,name=container_version,json=containerVersion,proto3" json:"container_version,omitempty"` 2071} 2072 2073func (x *ContentLocation) Reset() { 2074 *x = ContentLocation{} 2075 if protoimpl.UnsafeEnabled { 2076 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[11] 2077 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2078 ms.StoreMessageInfo(mi) 2079 } 2080} 2081 2082func (x *ContentLocation) String() string { 2083 return protoimpl.X.MessageStringOf(x) 2084} 2085 2086func (*ContentLocation) ProtoMessage() {} 2087 2088func (x *ContentLocation) ProtoReflect() protoreflect.Message { 2089 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[11] 2090 if protoimpl.UnsafeEnabled && x != nil { 2091 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2092 if ms.LoadMessageInfo() == nil { 2093 ms.StoreMessageInfo(mi) 2094 } 2095 return ms 2096 } 2097 return mi.MessageOf(x) 2098} 2099 2100// Deprecated: Use ContentLocation.ProtoReflect.Descriptor instead. 2101func (*ContentLocation) Descriptor() ([]byte, []int) { 2102 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{11} 2103} 2104 2105func (x *ContentLocation) GetContainerName() string { 2106 if x != nil { 2107 return x.ContainerName 2108 } 2109 return "" 2110} 2111 2112func (m *ContentLocation) GetLocation() isContentLocation_Location { 2113 if m != nil { 2114 return m.Location 2115 } 2116 return nil 2117} 2118 2119func (x *ContentLocation) GetRecordLocation() *RecordLocation { 2120 if x, ok := x.GetLocation().(*ContentLocation_RecordLocation); ok { 2121 return x.RecordLocation 2122 } 2123 return nil 2124} 2125 2126func (x *ContentLocation) GetImageLocation() *ImageLocation { 2127 if x, ok := x.GetLocation().(*ContentLocation_ImageLocation); ok { 2128 return x.ImageLocation 2129 } 2130 return nil 2131} 2132 2133func (x *ContentLocation) GetDocumentLocation() *DocumentLocation { 2134 if x, ok := x.GetLocation().(*ContentLocation_DocumentLocation); ok { 2135 return x.DocumentLocation 2136 } 2137 return nil 2138} 2139 2140func (x *ContentLocation) GetMetadataLocation() *MetadataLocation { 2141 if x, ok := x.GetLocation().(*ContentLocation_MetadataLocation); ok { 2142 return x.MetadataLocation 2143 } 2144 return nil 2145} 2146 2147func (x *ContentLocation) GetContainerTimestamp() *timestamppb.Timestamp { 2148 if x != nil { 2149 return x.ContainerTimestamp 2150 } 2151 return nil 2152} 2153 2154func (x *ContentLocation) GetContainerVersion() string { 2155 if x != nil { 2156 return x.ContainerVersion 2157 } 2158 return "" 2159} 2160 2161type isContentLocation_Location interface { 2162 isContentLocation_Location() 2163} 2164 2165type ContentLocation_RecordLocation struct { 2166 // Location within a row or record of a database table. 2167 RecordLocation *RecordLocation `protobuf:"bytes,2,opt,name=record_location,json=recordLocation,proto3,oneof"` 2168} 2169 2170type ContentLocation_ImageLocation struct { 2171 // Location within an image's pixels. 2172 ImageLocation *ImageLocation `protobuf:"bytes,3,opt,name=image_location,json=imageLocation,proto3,oneof"` 2173} 2174 2175type ContentLocation_DocumentLocation struct { 2176 // Location data for document files. 2177 DocumentLocation *DocumentLocation `protobuf:"bytes,5,opt,name=document_location,json=documentLocation,proto3,oneof"` 2178} 2179 2180type ContentLocation_MetadataLocation struct { 2181 // Location within the metadata for inspected content. 2182 MetadataLocation *MetadataLocation `protobuf:"bytes,8,opt,name=metadata_location,json=metadataLocation,proto3,oneof"` 2183} 2184 2185func (*ContentLocation_RecordLocation) isContentLocation_Location() {} 2186 2187func (*ContentLocation_ImageLocation) isContentLocation_Location() {} 2188 2189func (*ContentLocation_DocumentLocation) isContentLocation_Location() {} 2190 2191func (*ContentLocation_MetadataLocation) isContentLocation_Location() {} 2192 2193// Metadata Location 2194type MetadataLocation struct { 2195 state protoimpl.MessageState 2196 sizeCache protoimpl.SizeCache 2197 unknownFields protoimpl.UnknownFields 2198 2199 // Type of metadata containing the finding. 2200 Type MetadataType `protobuf:"varint,1,opt,name=type,proto3,enum=google.privacy.dlp.v2.MetadataType" json:"type,omitempty"` 2201 // Label of the piece of metadata containing the finding, for example - 2202 // latitude, author, caption. 2203 // 2204 // Types that are assignable to Label: 2205 // *MetadataLocation_StorageLabel 2206 Label isMetadataLocation_Label `protobuf_oneof:"label"` 2207} 2208 2209func (x *MetadataLocation) Reset() { 2210 *x = MetadataLocation{} 2211 if protoimpl.UnsafeEnabled { 2212 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[12] 2213 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2214 ms.StoreMessageInfo(mi) 2215 } 2216} 2217 2218func (x *MetadataLocation) String() string { 2219 return protoimpl.X.MessageStringOf(x) 2220} 2221 2222func (*MetadataLocation) ProtoMessage() {} 2223 2224func (x *MetadataLocation) ProtoReflect() protoreflect.Message { 2225 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[12] 2226 if protoimpl.UnsafeEnabled && x != nil { 2227 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2228 if ms.LoadMessageInfo() == nil { 2229 ms.StoreMessageInfo(mi) 2230 } 2231 return ms 2232 } 2233 return mi.MessageOf(x) 2234} 2235 2236// Deprecated: Use MetadataLocation.ProtoReflect.Descriptor instead. 2237func (*MetadataLocation) Descriptor() ([]byte, []int) { 2238 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{12} 2239} 2240 2241func (x *MetadataLocation) GetType() MetadataType { 2242 if x != nil { 2243 return x.Type 2244 } 2245 return MetadataType_METADATATYPE_UNSPECIFIED 2246} 2247 2248func (m *MetadataLocation) GetLabel() isMetadataLocation_Label { 2249 if m != nil { 2250 return m.Label 2251 } 2252 return nil 2253} 2254 2255func (x *MetadataLocation) GetStorageLabel() *StorageMetadataLabel { 2256 if x, ok := x.GetLabel().(*MetadataLocation_StorageLabel); ok { 2257 return x.StorageLabel 2258 } 2259 return nil 2260} 2261 2262type isMetadataLocation_Label interface { 2263 isMetadataLocation_Label() 2264} 2265 2266type MetadataLocation_StorageLabel struct { 2267 // Storage metadata. 2268 StorageLabel *StorageMetadataLabel `protobuf:"bytes,3,opt,name=storage_label,json=storageLabel,proto3,oneof"` 2269} 2270 2271func (*MetadataLocation_StorageLabel) isMetadataLocation_Label() {} 2272 2273// Storage metadata label to indicate which metadata entry contains findings. 2274type StorageMetadataLabel struct { 2275 state protoimpl.MessageState 2276 sizeCache protoimpl.SizeCache 2277 unknownFields protoimpl.UnknownFields 2278 2279 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 2280} 2281 2282func (x *StorageMetadataLabel) Reset() { 2283 *x = StorageMetadataLabel{} 2284 if protoimpl.UnsafeEnabled { 2285 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[13] 2286 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2287 ms.StoreMessageInfo(mi) 2288 } 2289} 2290 2291func (x *StorageMetadataLabel) String() string { 2292 return protoimpl.X.MessageStringOf(x) 2293} 2294 2295func (*StorageMetadataLabel) ProtoMessage() {} 2296 2297func (x *StorageMetadataLabel) ProtoReflect() protoreflect.Message { 2298 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[13] 2299 if protoimpl.UnsafeEnabled && x != nil { 2300 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2301 if ms.LoadMessageInfo() == nil { 2302 ms.StoreMessageInfo(mi) 2303 } 2304 return ms 2305 } 2306 return mi.MessageOf(x) 2307} 2308 2309// Deprecated: Use StorageMetadataLabel.ProtoReflect.Descriptor instead. 2310func (*StorageMetadataLabel) Descriptor() ([]byte, []int) { 2311 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{13} 2312} 2313 2314func (x *StorageMetadataLabel) GetKey() string { 2315 if x != nil { 2316 return x.Key 2317 } 2318 return "" 2319} 2320 2321// Location of a finding within a document. 2322type DocumentLocation struct { 2323 state protoimpl.MessageState 2324 sizeCache protoimpl.SizeCache 2325 unknownFields protoimpl.UnknownFields 2326 2327 // Offset of the line, from the beginning of the file, where the finding 2328 // is located. 2329 FileOffset int64 `protobuf:"varint,1,opt,name=file_offset,json=fileOffset,proto3" json:"file_offset,omitempty"` 2330} 2331 2332func (x *DocumentLocation) Reset() { 2333 *x = DocumentLocation{} 2334 if protoimpl.UnsafeEnabled { 2335 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[14] 2336 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2337 ms.StoreMessageInfo(mi) 2338 } 2339} 2340 2341func (x *DocumentLocation) String() string { 2342 return protoimpl.X.MessageStringOf(x) 2343} 2344 2345func (*DocumentLocation) ProtoMessage() {} 2346 2347func (x *DocumentLocation) ProtoReflect() protoreflect.Message { 2348 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[14] 2349 if protoimpl.UnsafeEnabled && x != nil { 2350 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2351 if ms.LoadMessageInfo() == nil { 2352 ms.StoreMessageInfo(mi) 2353 } 2354 return ms 2355 } 2356 return mi.MessageOf(x) 2357} 2358 2359// Deprecated: Use DocumentLocation.ProtoReflect.Descriptor instead. 2360func (*DocumentLocation) Descriptor() ([]byte, []int) { 2361 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{14} 2362} 2363 2364func (x *DocumentLocation) GetFileOffset() int64 { 2365 if x != nil { 2366 return x.FileOffset 2367 } 2368 return 0 2369} 2370 2371// Location of a finding within a row or record. 2372type RecordLocation struct { 2373 state protoimpl.MessageState 2374 sizeCache protoimpl.SizeCache 2375 unknownFields protoimpl.UnknownFields 2376 2377 // Key of the finding. 2378 RecordKey *RecordKey `protobuf:"bytes,1,opt,name=record_key,json=recordKey,proto3" json:"record_key,omitempty"` 2379 // Field id of the field containing the finding. 2380 FieldId *FieldId `protobuf:"bytes,2,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"` 2381 // Location within a `ContentItem.Table`. 2382 TableLocation *TableLocation `protobuf:"bytes,3,opt,name=table_location,json=tableLocation,proto3" json:"table_location,omitempty"` 2383} 2384 2385func (x *RecordLocation) Reset() { 2386 *x = RecordLocation{} 2387 if protoimpl.UnsafeEnabled { 2388 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[15] 2389 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2390 ms.StoreMessageInfo(mi) 2391 } 2392} 2393 2394func (x *RecordLocation) String() string { 2395 return protoimpl.X.MessageStringOf(x) 2396} 2397 2398func (*RecordLocation) ProtoMessage() {} 2399 2400func (x *RecordLocation) ProtoReflect() protoreflect.Message { 2401 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[15] 2402 if protoimpl.UnsafeEnabled && x != nil { 2403 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2404 if ms.LoadMessageInfo() == nil { 2405 ms.StoreMessageInfo(mi) 2406 } 2407 return ms 2408 } 2409 return mi.MessageOf(x) 2410} 2411 2412// Deprecated: Use RecordLocation.ProtoReflect.Descriptor instead. 2413func (*RecordLocation) Descriptor() ([]byte, []int) { 2414 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{15} 2415} 2416 2417func (x *RecordLocation) GetRecordKey() *RecordKey { 2418 if x != nil { 2419 return x.RecordKey 2420 } 2421 return nil 2422} 2423 2424func (x *RecordLocation) GetFieldId() *FieldId { 2425 if x != nil { 2426 return x.FieldId 2427 } 2428 return nil 2429} 2430 2431func (x *RecordLocation) GetTableLocation() *TableLocation { 2432 if x != nil { 2433 return x.TableLocation 2434 } 2435 return nil 2436} 2437 2438// Location of a finding within a table. 2439type TableLocation struct { 2440 state protoimpl.MessageState 2441 sizeCache protoimpl.SizeCache 2442 unknownFields protoimpl.UnknownFields 2443 2444 // The zero-based index of the row where the finding is located. Only 2445 // populated for resources that have a natural ordering, not BigQuery. In 2446 // BigQuery, to identify the row a finding came from, populate 2447 // BigQueryOptions.identifying_fields with your primary key column names and 2448 // when you store the findings the value of those columns will be stored 2449 // inside of Finding. 2450 RowIndex int64 `protobuf:"varint,1,opt,name=row_index,json=rowIndex,proto3" json:"row_index,omitempty"` 2451} 2452 2453func (x *TableLocation) Reset() { 2454 *x = TableLocation{} 2455 if protoimpl.UnsafeEnabled { 2456 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[16] 2457 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2458 ms.StoreMessageInfo(mi) 2459 } 2460} 2461 2462func (x *TableLocation) String() string { 2463 return protoimpl.X.MessageStringOf(x) 2464} 2465 2466func (*TableLocation) ProtoMessage() {} 2467 2468func (x *TableLocation) ProtoReflect() protoreflect.Message { 2469 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[16] 2470 if protoimpl.UnsafeEnabled && x != nil { 2471 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2472 if ms.LoadMessageInfo() == nil { 2473 ms.StoreMessageInfo(mi) 2474 } 2475 return ms 2476 } 2477 return mi.MessageOf(x) 2478} 2479 2480// Deprecated: Use TableLocation.ProtoReflect.Descriptor instead. 2481func (*TableLocation) Descriptor() ([]byte, []int) { 2482 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{16} 2483} 2484 2485func (x *TableLocation) GetRowIndex() int64 { 2486 if x != nil { 2487 return x.RowIndex 2488 } 2489 return 0 2490} 2491 2492// Represents a container that may contain DLP findings. 2493// Examples of a container include a file, table, or database record. 2494type Container struct { 2495 state protoimpl.MessageState 2496 sizeCache protoimpl.SizeCache 2497 unknownFields protoimpl.UnknownFields 2498 2499 // Container type, for example BigQuery or Google Cloud Storage. 2500 Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` 2501 // Project where the finding was found. 2502 // Can be different from the project that owns the finding. 2503 ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` 2504 // A string representation of the full container name. 2505 // Examples: 2506 // - BigQuery: 'Project:DataSetId.TableId' 2507 // - Google Cloud Storage: 'gs://Bucket/folders/filename.txt' 2508 FullPath string `protobuf:"bytes,3,opt,name=full_path,json=fullPath,proto3" json:"full_path,omitempty"` 2509 // The root of the container. 2510 // Examples: 2511 // - For BigQuery table `project_id:dataset_id.table_id`, the root is 2512 // `dataset_id` 2513 // - For Google Cloud Storage file `gs://bucket/folder/filename.txt`, the root 2514 // is `gs://bucket` 2515 RootPath string `protobuf:"bytes,4,opt,name=root_path,json=rootPath,proto3" json:"root_path,omitempty"` 2516 // The rest of the path after the root. 2517 // Examples: 2518 // - For BigQuery table `project_id:dataset_id.table_id`, the relative path is 2519 // `table_id` 2520 // - Google Cloud Storage file `gs://bucket/folder/filename.txt`, the relative 2521 // path is `folder/filename.txt` 2522 RelativePath string `protobuf:"bytes,5,opt,name=relative_path,json=relativePath,proto3" json:"relative_path,omitempty"` 2523 // Findings container modification timestamp, if applicable. 2524 // For Google Cloud Storage contains last file modification timestamp. 2525 // For BigQuery table contains last_modified_time property. 2526 // For Datastore - not populated. 2527 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 2528 // Findings container version, if available 2529 // ("generation" for Google Cloud Storage). 2530 Version string `protobuf:"bytes,7,opt,name=version,proto3" json:"version,omitempty"` 2531} 2532 2533func (x *Container) Reset() { 2534 *x = Container{} 2535 if protoimpl.UnsafeEnabled { 2536 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[17] 2537 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2538 ms.StoreMessageInfo(mi) 2539 } 2540} 2541 2542func (x *Container) String() string { 2543 return protoimpl.X.MessageStringOf(x) 2544} 2545 2546func (*Container) ProtoMessage() {} 2547 2548func (x *Container) ProtoReflect() protoreflect.Message { 2549 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[17] 2550 if protoimpl.UnsafeEnabled && x != nil { 2551 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2552 if ms.LoadMessageInfo() == nil { 2553 ms.StoreMessageInfo(mi) 2554 } 2555 return ms 2556 } 2557 return mi.MessageOf(x) 2558} 2559 2560// Deprecated: Use Container.ProtoReflect.Descriptor instead. 2561func (*Container) Descriptor() ([]byte, []int) { 2562 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{17} 2563} 2564 2565func (x *Container) GetType() string { 2566 if x != nil { 2567 return x.Type 2568 } 2569 return "" 2570} 2571 2572func (x *Container) GetProjectId() string { 2573 if x != nil { 2574 return x.ProjectId 2575 } 2576 return "" 2577} 2578 2579func (x *Container) GetFullPath() string { 2580 if x != nil { 2581 return x.FullPath 2582 } 2583 return "" 2584} 2585 2586func (x *Container) GetRootPath() string { 2587 if x != nil { 2588 return x.RootPath 2589 } 2590 return "" 2591} 2592 2593func (x *Container) GetRelativePath() string { 2594 if x != nil { 2595 return x.RelativePath 2596 } 2597 return "" 2598} 2599 2600func (x *Container) GetUpdateTime() *timestamppb.Timestamp { 2601 if x != nil { 2602 return x.UpdateTime 2603 } 2604 return nil 2605} 2606 2607func (x *Container) GetVersion() string { 2608 if x != nil { 2609 return x.Version 2610 } 2611 return "" 2612} 2613 2614// Generic half-open interval [start, end) 2615type Range struct { 2616 state protoimpl.MessageState 2617 sizeCache protoimpl.SizeCache 2618 unknownFields protoimpl.UnknownFields 2619 2620 // Index of the first character of the range (inclusive). 2621 Start int64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` 2622 // Index of the last character of the range (exclusive). 2623 End int64 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"` 2624} 2625 2626func (x *Range) Reset() { 2627 *x = Range{} 2628 if protoimpl.UnsafeEnabled { 2629 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[18] 2630 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2631 ms.StoreMessageInfo(mi) 2632 } 2633} 2634 2635func (x *Range) String() string { 2636 return protoimpl.X.MessageStringOf(x) 2637} 2638 2639func (*Range) ProtoMessage() {} 2640 2641func (x *Range) ProtoReflect() protoreflect.Message { 2642 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[18] 2643 if protoimpl.UnsafeEnabled && x != nil { 2644 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2645 if ms.LoadMessageInfo() == nil { 2646 ms.StoreMessageInfo(mi) 2647 } 2648 return ms 2649 } 2650 return mi.MessageOf(x) 2651} 2652 2653// Deprecated: Use Range.ProtoReflect.Descriptor instead. 2654func (*Range) Descriptor() ([]byte, []int) { 2655 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{18} 2656} 2657 2658func (x *Range) GetStart() int64 { 2659 if x != nil { 2660 return x.Start 2661 } 2662 return 0 2663} 2664 2665func (x *Range) GetEnd() int64 { 2666 if x != nil { 2667 return x.End 2668 } 2669 return 0 2670} 2671 2672// Location of the finding within an image. 2673type ImageLocation struct { 2674 state protoimpl.MessageState 2675 sizeCache protoimpl.SizeCache 2676 unknownFields protoimpl.UnknownFields 2677 2678 // Bounding boxes locating the pixels within the image containing the finding. 2679 BoundingBoxes []*BoundingBox `protobuf:"bytes,1,rep,name=bounding_boxes,json=boundingBoxes,proto3" json:"bounding_boxes,omitempty"` 2680} 2681 2682func (x *ImageLocation) Reset() { 2683 *x = ImageLocation{} 2684 if protoimpl.UnsafeEnabled { 2685 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[19] 2686 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2687 ms.StoreMessageInfo(mi) 2688 } 2689} 2690 2691func (x *ImageLocation) String() string { 2692 return protoimpl.X.MessageStringOf(x) 2693} 2694 2695func (*ImageLocation) ProtoMessage() {} 2696 2697func (x *ImageLocation) ProtoReflect() protoreflect.Message { 2698 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[19] 2699 if protoimpl.UnsafeEnabled && x != nil { 2700 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2701 if ms.LoadMessageInfo() == nil { 2702 ms.StoreMessageInfo(mi) 2703 } 2704 return ms 2705 } 2706 return mi.MessageOf(x) 2707} 2708 2709// Deprecated: Use ImageLocation.ProtoReflect.Descriptor instead. 2710func (*ImageLocation) Descriptor() ([]byte, []int) { 2711 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{19} 2712} 2713 2714func (x *ImageLocation) GetBoundingBoxes() []*BoundingBox { 2715 if x != nil { 2716 return x.BoundingBoxes 2717 } 2718 return nil 2719} 2720 2721// Bounding box encompassing detected text within an image. 2722type BoundingBox struct { 2723 state protoimpl.MessageState 2724 sizeCache protoimpl.SizeCache 2725 unknownFields protoimpl.UnknownFields 2726 2727 // Top coordinate of the bounding box. (0,0) is upper left. 2728 Top int32 `protobuf:"varint,1,opt,name=top,proto3" json:"top,omitempty"` 2729 // Left coordinate of the bounding box. (0,0) is upper left. 2730 Left int32 `protobuf:"varint,2,opt,name=left,proto3" json:"left,omitempty"` 2731 // Width of the bounding box in pixels. 2732 Width int32 `protobuf:"varint,3,opt,name=width,proto3" json:"width,omitempty"` 2733 // Height of the bounding box in pixels. 2734 Height int32 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"` 2735} 2736 2737func (x *BoundingBox) Reset() { 2738 *x = BoundingBox{} 2739 if protoimpl.UnsafeEnabled { 2740 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[20] 2741 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2742 ms.StoreMessageInfo(mi) 2743 } 2744} 2745 2746func (x *BoundingBox) String() string { 2747 return protoimpl.X.MessageStringOf(x) 2748} 2749 2750func (*BoundingBox) ProtoMessage() {} 2751 2752func (x *BoundingBox) ProtoReflect() protoreflect.Message { 2753 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[20] 2754 if protoimpl.UnsafeEnabled && x != nil { 2755 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2756 if ms.LoadMessageInfo() == nil { 2757 ms.StoreMessageInfo(mi) 2758 } 2759 return ms 2760 } 2761 return mi.MessageOf(x) 2762} 2763 2764// Deprecated: Use BoundingBox.ProtoReflect.Descriptor instead. 2765func (*BoundingBox) Descriptor() ([]byte, []int) { 2766 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{20} 2767} 2768 2769func (x *BoundingBox) GetTop() int32 { 2770 if x != nil { 2771 return x.Top 2772 } 2773 return 0 2774} 2775 2776func (x *BoundingBox) GetLeft() int32 { 2777 if x != nil { 2778 return x.Left 2779 } 2780 return 0 2781} 2782 2783func (x *BoundingBox) GetWidth() int32 { 2784 if x != nil { 2785 return x.Width 2786 } 2787 return 0 2788} 2789 2790func (x *BoundingBox) GetHeight() int32 { 2791 if x != nil { 2792 return x.Height 2793 } 2794 return 0 2795} 2796 2797// Request to search for potentially sensitive info in an image and redact it 2798// by covering it with a colored rectangle. 2799type RedactImageRequest struct { 2800 state protoimpl.MessageState 2801 sizeCache protoimpl.SizeCache 2802 unknownFields protoimpl.UnknownFields 2803 2804 // Parent resource name. 2805 // 2806 // The format of this value varies depending on whether you have [specified a 2807 // processing 2808 // location](https://cloud.google.com/dlp/docs/specifying-location): 2809 // 2810 // + Projects scope, location specified:<br/> 2811 // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> 2812 // + Projects scope, no location specified (defaults to global):<br/> 2813 // `projects/`<var>PROJECT_ID</var> 2814 // 2815 // The following example `parent` string specifies a parent project with the 2816 // identifier `example-project`, and specifies the `europe-west3` location 2817 // for processing data: 2818 // 2819 // parent=projects/example-project/locations/europe-west3 2820 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 2821 // Deprecated. This field has no effect. 2822 LocationId string `protobuf:"bytes,8,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 2823 // Configuration for the inspector. 2824 InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"` 2825 // The configuration for specifying what content to redact from images. 2826 ImageRedactionConfigs []*RedactImageRequest_ImageRedactionConfig `protobuf:"bytes,5,rep,name=image_redaction_configs,json=imageRedactionConfigs,proto3" json:"image_redaction_configs,omitempty"` 2827 // Whether the response should include findings along with the redacted 2828 // image. 2829 IncludeFindings bool `protobuf:"varint,6,opt,name=include_findings,json=includeFindings,proto3" json:"include_findings,omitempty"` 2830 // The content must be PNG, JPEG, SVG or BMP. 2831 ByteItem *ByteContentItem `protobuf:"bytes,7,opt,name=byte_item,json=byteItem,proto3" json:"byte_item,omitempty"` 2832} 2833 2834func (x *RedactImageRequest) Reset() { 2835 *x = RedactImageRequest{} 2836 if protoimpl.UnsafeEnabled { 2837 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[21] 2838 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2839 ms.StoreMessageInfo(mi) 2840 } 2841} 2842 2843func (x *RedactImageRequest) String() string { 2844 return protoimpl.X.MessageStringOf(x) 2845} 2846 2847func (*RedactImageRequest) ProtoMessage() {} 2848 2849func (x *RedactImageRequest) ProtoReflect() protoreflect.Message { 2850 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[21] 2851 if protoimpl.UnsafeEnabled && x != nil { 2852 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2853 if ms.LoadMessageInfo() == nil { 2854 ms.StoreMessageInfo(mi) 2855 } 2856 return ms 2857 } 2858 return mi.MessageOf(x) 2859} 2860 2861// Deprecated: Use RedactImageRequest.ProtoReflect.Descriptor instead. 2862func (*RedactImageRequest) Descriptor() ([]byte, []int) { 2863 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{21} 2864} 2865 2866func (x *RedactImageRequest) GetParent() string { 2867 if x != nil { 2868 return x.Parent 2869 } 2870 return "" 2871} 2872 2873func (x *RedactImageRequest) GetLocationId() string { 2874 if x != nil { 2875 return x.LocationId 2876 } 2877 return "" 2878} 2879 2880func (x *RedactImageRequest) GetInspectConfig() *InspectConfig { 2881 if x != nil { 2882 return x.InspectConfig 2883 } 2884 return nil 2885} 2886 2887func (x *RedactImageRequest) GetImageRedactionConfigs() []*RedactImageRequest_ImageRedactionConfig { 2888 if x != nil { 2889 return x.ImageRedactionConfigs 2890 } 2891 return nil 2892} 2893 2894func (x *RedactImageRequest) GetIncludeFindings() bool { 2895 if x != nil { 2896 return x.IncludeFindings 2897 } 2898 return false 2899} 2900 2901func (x *RedactImageRequest) GetByteItem() *ByteContentItem { 2902 if x != nil { 2903 return x.ByteItem 2904 } 2905 return nil 2906} 2907 2908// Represents a color in the RGB color space. 2909type Color struct { 2910 state protoimpl.MessageState 2911 sizeCache protoimpl.SizeCache 2912 unknownFields protoimpl.UnknownFields 2913 2914 // The amount of red in the color as a value in the interval [0, 1]. 2915 Red float32 `protobuf:"fixed32,1,opt,name=red,proto3" json:"red,omitempty"` 2916 // The amount of green in the color as a value in the interval [0, 1]. 2917 Green float32 `protobuf:"fixed32,2,opt,name=green,proto3" json:"green,omitempty"` 2918 // The amount of blue in the color as a value in the interval [0, 1]. 2919 Blue float32 `protobuf:"fixed32,3,opt,name=blue,proto3" json:"blue,omitempty"` 2920} 2921 2922func (x *Color) Reset() { 2923 *x = Color{} 2924 if protoimpl.UnsafeEnabled { 2925 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[22] 2926 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2927 ms.StoreMessageInfo(mi) 2928 } 2929} 2930 2931func (x *Color) String() string { 2932 return protoimpl.X.MessageStringOf(x) 2933} 2934 2935func (*Color) ProtoMessage() {} 2936 2937func (x *Color) ProtoReflect() protoreflect.Message { 2938 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[22] 2939 if protoimpl.UnsafeEnabled && x != nil { 2940 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2941 if ms.LoadMessageInfo() == nil { 2942 ms.StoreMessageInfo(mi) 2943 } 2944 return ms 2945 } 2946 return mi.MessageOf(x) 2947} 2948 2949// Deprecated: Use Color.ProtoReflect.Descriptor instead. 2950func (*Color) Descriptor() ([]byte, []int) { 2951 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{22} 2952} 2953 2954func (x *Color) GetRed() float32 { 2955 if x != nil { 2956 return x.Red 2957 } 2958 return 0 2959} 2960 2961func (x *Color) GetGreen() float32 { 2962 if x != nil { 2963 return x.Green 2964 } 2965 return 0 2966} 2967 2968func (x *Color) GetBlue() float32 { 2969 if x != nil { 2970 return x.Blue 2971 } 2972 return 0 2973} 2974 2975// Results of redacting an image. 2976type RedactImageResponse struct { 2977 state protoimpl.MessageState 2978 sizeCache protoimpl.SizeCache 2979 unknownFields protoimpl.UnknownFields 2980 2981 // The redacted image. The type will be the same as the original image. 2982 RedactedImage []byte `protobuf:"bytes,1,opt,name=redacted_image,json=redactedImage,proto3" json:"redacted_image,omitempty"` 2983 // If an image was being inspected and the InspectConfig's include_quote was 2984 // set to true, then this field will include all text, if any, that was found 2985 // in the image. 2986 ExtractedText string `protobuf:"bytes,2,opt,name=extracted_text,json=extractedText,proto3" json:"extracted_text,omitempty"` 2987 // The findings. Populated when include_findings in the request is true. 2988 InspectResult *InspectResult `protobuf:"bytes,3,opt,name=inspect_result,json=inspectResult,proto3" json:"inspect_result,omitempty"` 2989} 2990 2991func (x *RedactImageResponse) Reset() { 2992 *x = RedactImageResponse{} 2993 if protoimpl.UnsafeEnabled { 2994 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[23] 2995 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2996 ms.StoreMessageInfo(mi) 2997 } 2998} 2999 3000func (x *RedactImageResponse) String() string { 3001 return protoimpl.X.MessageStringOf(x) 3002} 3003 3004func (*RedactImageResponse) ProtoMessage() {} 3005 3006func (x *RedactImageResponse) ProtoReflect() protoreflect.Message { 3007 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[23] 3008 if protoimpl.UnsafeEnabled && x != nil { 3009 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3010 if ms.LoadMessageInfo() == nil { 3011 ms.StoreMessageInfo(mi) 3012 } 3013 return ms 3014 } 3015 return mi.MessageOf(x) 3016} 3017 3018// Deprecated: Use RedactImageResponse.ProtoReflect.Descriptor instead. 3019func (*RedactImageResponse) Descriptor() ([]byte, []int) { 3020 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{23} 3021} 3022 3023func (x *RedactImageResponse) GetRedactedImage() []byte { 3024 if x != nil { 3025 return x.RedactedImage 3026 } 3027 return nil 3028} 3029 3030func (x *RedactImageResponse) GetExtractedText() string { 3031 if x != nil { 3032 return x.ExtractedText 3033 } 3034 return "" 3035} 3036 3037func (x *RedactImageResponse) GetInspectResult() *InspectResult { 3038 if x != nil { 3039 return x.InspectResult 3040 } 3041 return nil 3042} 3043 3044// Request to de-identify a list of items. 3045type DeidentifyContentRequest struct { 3046 state protoimpl.MessageState 3047 sizeCache protoimpl.SizeCache 3048 unknownFields protoimpl.UnknownFields 3049 3050 // Parent resource name. 3051 // 3052 // The format of this value varies depending on whether you have [specified a 3053 // processing 3054 // location](https://cloud.google.com/dlp/docs/specifying-location): 3055 // 3056 // + Projects scope, location specified:<br/> 3057 // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> 3058 // + Projects scope, no location specified (defaults to global):<br/> 3059 // `projects/`<var>PROJECT_ID</var> 3060 // 3061 // The following example `parent` string specifies a parent project with the 3062 // identifier `example-project`, and specifies the `europe-west3` location 3063 // for processing data: 3064 // 3065 // parent=projects/example-project/locations/europe-west3 3066 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 3067 // Configuration for the de-identification of the content item. 3068 // Items specified here will override the template referenced by the 3069 // deidentify_template_name argument. 3070 DeidentifyConfig *DeidentifyConfig `protobuf:"bytes,2,opt,name=deidentify_config,json=deidentifyConfig,proto3" json:"deidentify_config,omitempty"` 3071 // Configuration for the inspector. 3072 // Items specified here will override the template referenced by the 3073 // inspect_template_name argument. 3074 InspectConfig *InspectConfig `protobuf:"bytes,3,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"` 3075 // The item to de-identify. Will be treated as text. 3076 Item *ContentItem `protobuf:"bytes,4,opt,name=item,proto3" json:"item,omitempty"` 3077 // Template to use. Any configuration directly specified in 3078 // inspect_config will override those set in the template. Singular fields 3079 // that are set in this request will replace their corresponding fields in the 3080 // template. Repeated fields are appended. Singular sub-messages and groups 3081 // are recursively merged. 3082 InspectTemplateName string `protobuf:"bytes,5,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"` 3083 // Template to use. Any configuration directly specified in 3084 // deidentify_config will override those set in the template. Singular fields 3085 // that are set in this request will replace their corresponding fields in the 3086 // template. Repeated fields are appended. Singular sub-messages and groups 3087 // are recursively merged. 3088 DeidentifyTemplateName string `protobuf:"bytes,6,opt,name=deidentify_template_name,json=deidentifyTemplateName,proto3" json:"deidentify_template_name,omitempty"` 3089 // Deprecated. This field has no effect. 3090 LocationId string `protobuf:"bytes,7,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 3091} 3092 3093func (x *DeidentifyContentRequest) Reset() { 3094 *x = DeidentifyContentRequest{} 3095 if protoimpl.UnsafeEnabled { 3096 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[24] 3097 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3098 ms.StoreMessageInfo(mi) 3099 } 3100} 3101 3102func (x *DeidentifyContentRequest) String() string { 3103 return protoimpl.X.MessageStringOf(x) 3104} 3105 3106func (*DeidentifyContentRequest) ProtoMessage() {} 3107 3108func (x *DeidentifyContentRequest) ProtoReflect() protoreflect.Message { 3109 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[24] 3110 if protoimpl.UnsafeEnabled && x != nil { 3111 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3112 if ms.LoadMessageInfo() == nil { 3113 ms.StoreMessageInfo(mi) 3114 } 3115 return ms 3116 } 3117 return mi.MessageOf(x) 3118} 3119 3120// Deprecated: Use DeidentifyContentRequest.ProtoReflect.Descriptor instead. 3121func (*DeidentifyContentRequest) Descriptor() ([]byte, []int) { 3122 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{24} 3123} 3124 3125func (x *DeidentifyContentRequest) GetParent() string { 3126 if x != nil { 3127 return x.Parent 3128 } 3129 return "" 3130} 3131 3132func (x *DeidentifyContentRequest) GetDeidentifyConfig() *DeidentifyConfig { 3133 if x != nil { 3134 return x.DeidentifyConfig 3135 } 3136 return nil 3137} 3138 3139func (x *DeidentifyContentRequest) GetInspectConfig() *InspectConfig { 3140 if x != nil { 3141 return x.InspectConfig 3142 } 3143 return nil 3144} 3145 3146func (x *DeidentifyContentRequest) GetItem() *ContentItem { 3147 if x != nil { 3148 return x.Item 3149 } 3150 return nil 3151} 3152 3153func (x *DeidentifyContentRequest) GetInspectTemplateName() string { 3154 if x != nil { 3155 return x.InspectTemplateName 3156 } 3157 return "" 3158} 3159 3160func (x *DeidentifyContentRequest) GetDeidentifyTemplateName() string { 3161 if x != nil { 3162 return x.DeidentifyTemplateName 3163 } 3164 return "" 3165} 3166 3167func (x *DeidentifyContentRequest) GetLocationId() string { 3168 if x != nil { 3169 return x.LocationId 3170 } 3171 return "" 3172} 3173 3174// Results of de-identifying a ContentItem. 3175type DeidentifyContentResponse struct { 3176 state protoimpl.MessageState 3177 sizeCache protoimpl.SizeCache 3178 unknownFields protoimpl.UnknownFields 3179 3180 // The de-identified item. 3181 Item *ContentItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` 3182 // An overview of the changes that were made on the `item`. 3183 Overview *TransformationOverview `protobuf:"bytes,2,opt,name=overview,proto3" json:"overview,omitempty"` 3184} 3185 3186func (x *DeidentifyContentResponse) Reset() { 3187 *x = DeidentifyContentResponse{} 3188 if protoimpl.UnsafeEnabled { 3189 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[25] 3190 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3191 ms.StoreMessageInfo(mi) 3192 } 3193} 3194 3195func (x *DeidentifyContentResponse) String() string { 3196 return protoimpl.X.MessageStringOf(x) 3197} 3198 3199func (*DeidentifyContentResponse) ProtoMessage() {} 3200 3201func (x *DeidentifyContentResponse) ProtoReflect() protoreflect.Message { 3202 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[25] 3203 if protoimpl.UnsafeEnabled && x != nil { 3204 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3205 if ms.LoadMessageInfo() == nil { 3206 ms.StoreMessageInfo(mi) 3207 } 3208 return ms 3209 } 3210 return mi.MessageOf(x) 3211} 3212 3213// Deprecated: Use DeidentifyContentResponse.ProtoReflect.Descriptor instead. 3214func (*DeidentifyContentResponse) Descriptor() ([]byte, []int) { 3215 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{25} 3216} 3217 3218func (x *DeidentifyContentResponse) GetItem() *ContentItem { 3219 if x != nil { 3220 return x.Item 3221 } 3222 return nil 3223} 3224 3225func (x *DeidentifyContentResponse) GetOverview() *TransformationOverview { 3226 if x != nil { 3227 return x.Overview 3228 } 3229 return nil 3230} 3231 3232// Request to re-identify an item. 3233type ReidentifyContentRequest struct { 3234 state protoimpl.MessageState 3235 sizeCache protoimpl.SizeCache 3236 unknownFields protoimpl.UnknownFields 3237 3238 // Required. Parent resource name. 3239 // 3240 // The format of this value varies depending on whether you have [specified a 3241 // processing 3242 // location](https://cloud.google.com/dlp/docs/specifying-location): 3243 // 3244 // + Projects scope, location specified:<br/> 3245 // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> 3246 // + Projects scope, no location specified (defaults to global):<br/> 3247 // `projects/`<var>PROJECT_ID</var> 3248 // 3249 // The following example `parent` string specifies a parent project with the 3250 // identifier `example-project`, and specifies the `europe-west3` location 3251 // for processing data: 3252 // 3253 // parent=projects/example-project/locations/europe-west3 3254 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 3255 // Configuration for the re-identification of the content item. 3256 // This field shares the same proto message type that is used for 3257 // de-identification, however its usage here is for the reversal of the 3258 // previous de-identification. Re-identification is performed by examining 3259 // the transformations used to de-identify the items and executing the 3260 // reverse. This requires that only reversible transformations 3261 // be provided here. The reversible transformations are: 3262 // 3263 // - `CryptoDeterministicConfig` 3264 // - `CryptoReplaceFfxFpeConfig` 3265 ReidentifyConfig *DeidentifyConfig `protobuf:"bytes,2,opt,name=reidentify_config,json=reidentifyConfig,proto3" json:"reidentify_config,omitempty"` 3266 // Configuration for the inspector. 3267 InspectConfig *InspectConfig `protobuf:"bytes,3,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"` 3268 // The item to re-identify. Will be treated as text. 3269 Item *ContentItem `protobuf:"bytes,4,opt,name=item,proto3" json:"item,omitempty"` 3270 // Template to use. Any configuration directly specified in 3271 // `inspect_config` will override those set in the template. Singular fields 3272 // that are set in this request will replace their corresponding fields in the 3273 // template. Repeated fields are appended. Singular sub-messages and groups 3274 // are recursively merged. 3275 InspectTemplateName string `protobuf:"bytes,5,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"` 3276 // Template to use. References an instance of `DeidentifyTemplate`. 3277 // Any configuration directly specified in `reidentify_config` or 3278 // `inspect_config` will override those set in the template. The 3279 // `DeidentifyTemplate` used must include only reversible transformations. 3280 // Singular fields that are set in this request will replace their 3281 // corresponding fields in the template. Repeated fields are appended. 3282 // Singular sub-messages and groups are recursively merged. 3283 ReidentifyTemplateName string `protobuf:"bytes,6,opt,name=reidentify_template_name,json=reidentifyTemplateName,proto3" json:"reidentify_template_name,omitempty"` 3284 // Deprecated. This field has no effect. 3285 LocationId string `protobuf:"bytes,7,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 3286} 3287 3288func (x *ReidentifyContentRequest) Reset() { 3289 *x = ReidentifyContentRequest{} 3290 if protoimpl.UnsafeEnabled { 3291 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[26] 3292 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3293 ms.StoreMessageInfo(mi) 3294 } 3295} 3296 3297func (x *ReidentifyContentRequest) String() string { 3298 return protoimpl.X.MessageStringOf(x) 3299} 3300 3301func (*ReidentifyContentRequest) ProtoMessage() {} 3302 3303func (x *ReidentifyContentRequest) ProtoReflect() protoreflect.Message { 3304 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[26] 3305 if protoimpl.UnsafeEnabled && x != nil { 3306 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3307 if ms.LoadMessageInfo() == nil { 3308 ms.StoreMessageInfo(mi) 3309 } 3310 return ms 3311 } 3312 return mi.MessageOf(x) 3313} 3314 3315// Deprecated: Use ReidentifyContentRequest.ProtoReflect.Descriptor instead. 3316func (*ReidentifyContentRequest) Descriptor() ([]byte, []int) { 3317 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{26} 3318} 3319 3320func (x *ReidentifyContentRequest) GetParent() string { 3321 if x != nil { 3322 return x.Parent 3323 } 3324 return "" 3325} 3326 3327func (x *ReidentifyContentRequest) GetReidentifyConfig() *DeidentifyConfig { 3328 if x != nil { 3329 return x.ReidentifyConfig 3330 } 3331 return nil 3332} 3333 3334func (x *ReidentifyContentRequest) GetInspectConfig() *InspectConfig { 3335 if x != nil { 3336 return x.InspectConfig 3337 } 3338 return nil 3339} 3340 3341func (x *ReidentifyContentRequest) GetItem() *ContentItem { 3342 if x != nil { 3343 return x.Item 3344 } 3345 return nil 3346} 3347 3348func (x *ReidentifyContentRequest) GetInspectTemplateName() string { 3349 if x != nil { 3350 return x.InspectTemplateName 3351 } 3352 return "" 3353} 3354 3355func (x *ReidentifyContentRequest) GetReidentifyTemplateName() string { 3356 if x != nil { 3357 return x.ReidentifyTemplateName 3358 } 3359 return "" 3360} 3361 3362func (x *ReidentifyContentRequest) GetLocationId() string { 3363 if x != nil { 3364 return x.LocationId 3365 } 3366 return "" 3367} 3368 3369// Results of re-identifying a item. 3370type ReidentifyContentResponse struct { 3371 state protoimpl.MessageState 3372 sizeCache protoimpl.SizeCache 3373 unknownFields protoimpl.UnknownFields 3374 3375 // The re-identified item. 3376 Item *ContentItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` 3377 // An overview of the changes that were made to the `item`. 3378 Overview *TransformationOverview `protobuf:"bytes,2,opt,name=overview,proto3" json:"overview,omitempty"` 3379} 3380 3381func (x *ReidentifyContentResponse) Reset() { 3382 *x = ReidentifyContentResponse{} 3383 if protoimpl.UnsafeEnabled { 3384 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[27] 3385 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3386 ms.StoreMessageInfo(mi) 3387 } 3388} 3389 3390func (x *ReidentifyContentResponse) String() string { 3391 return protoimpl.X.MessageStringOf(x) 3392} 3393 3394func (*ReidentifyContentResponse) ProtoMessage() {} 3395 3396func (x *ReidentifyContentResponse) ProtoReflect() protoreflect.Message { 3397 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[27] 3398 if protoimpl.UnsafeEnabled && x != nil { 3399 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3400 if ms.LoadMessageInfo() == nil { 3401 ms.StoreMessageInfo(mi) 3402 } 3403 return ms 3404 } 3405 return mi.MessageOf(x) 3406} 3407 3408// Deprecated: Use ReidentifyContentResponse.ProtoReflect.Descriptor instead. 3409func (*ReidentifyContentResponse) Descriptor() ([]byte, []int) { 3410 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{27} 3411} 3412 3413func (x *ReidentifyContentResponse) GetItem() *ContentItem { 3414 if x != nil { 3415 return x.Item 3416 } 3417 return nil 3418} 3419 3420func (x *ReidentifyContentResponse) GetOverview() *TransformationOverview { 3421 if x != nil { 3422 return x.Overview 3423 } 3424 return nil 3425} 3426 3427// Request to search for potentially sensitive info in a ContentItem. 3428type InspectContentRequest struct { 3429 state protoimpl.MessageState 3430 sizeCache protoimpl.SizeCache 3431 unknownFields protoimpl.UnknownFields 3432 3433 // Parent resource name. 3434 // 3435 // The format of this value varies depending on whether you have [specified a 3436 // processing 3437 // location](https://cloud.google.com/dlp/docs/specifying-location): 3438 // 3439 // + Projects scope, location specified:<br/> 3440 // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> 3441 // + Projects scope, no location specified (defaults to global):<br/> 3442 // `projects/`<var>PROJECT_ID</var> 3443 // 3444 // The following example `parent` string specifies a parent project with the 3445 // identifier `example-project`, and specifies the `europe-west3` location 3446 // for processing data: 3447 // 3448 // parent=projects/example-project/locations/europe-west3 3449 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 3450 // Configuration for the inspector. What specified here will override 3451 // the template referenced by the inspect_template_name argument. 3452 InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"` 3453 // The item to inspect. 3454 Item *ContentItem `protobuf:"bytes,3,opt,name=item,proto3" json:"item,omitempty"` 3455 // Template to use. Any configuration directly specified in 3456 // inspect_config will override those set in the template. Singular fields 3457 // that are set in this request will replace their corresponding fields in the 3458 // template. Repeated fields are appended. Singular sub-messages and groups 3459 // are recursively merged. 3460 InspectTemplateName string `protobuf:"bytes,4,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"` 3461 // Deprecated. This field has no effect. 3462 LocationId string `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 3463} 3464 3465func (x *InspectContentRequest) Reset() { 3466 *x = InspectContentRequest{} 3467 if protoimpl.UnsafeEnabled { 3468 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[28] 3469 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3470 ms.StoreMessageInfo(mi) 3471 } 3472} 3473 3474func (x *InspectContentRequest) String() string { 3475 return protoimpl.X.MessageStringOf(x) 3476} 3477 3478func (*InspectContentRequest) ProtoMessage() {} 3479 3480func (x *InspectContentRequest) ProtoReflect() protoreflect.Message { 3481 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[28] 3482 if protoimpl.UnsafeEnabled && x != nil { 3483 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3484 if ms.LoadMessageInfo() == nil { 3485 ms.StoreMessageInfo(mi) 3486 } 3487 return ms 3488 } 3489 return mi.MessageOf(x) 3490} 3491 3492// Deprecated: Use InspectContentRequest.ProtoReflect.Descriptor instead. 3493func (*InspectContentRequest) Descriptor() ([]byte, []int) { 3494 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{28} 3495} 3496 3497func (x *InspectContentRequest) GetParent() string { 3498 if x != nil { 3499 return x.Parent 3500 } 3501 return "" 3502} 3503 3504func (x *InspectContentRequest) GetInspectConfig() *InspectConfig { 3505 if x != nil { 3506 return x.InspectConfig 3507 } 3508 return nil 3509} 3510 3511func (x *InspectContentRequest) GetItem() *ContentItem { 3512 if x != nil { 3513 return x.Item 3514 } 3515 return nil 3516} 3517 3518func (x *InspectContentRequest) GetInspectTemplateName() string { 3519 if x != nil { 3520 return x.InspectTemplateName 3521 } 3522 return "" 3523} 3524 3525func (x *InspectContentRequest) GetLocationId() string { 3526 if x != nil { 3527 return x.LocationId 3528 } 3529 return "" 3530} 3531 3532// Results of inspecting an item. 3533type InspectContentResponse struct { 3534 state protoimpl.MessageState 3535 sizeCache protoimpl.SizeCache 3536 unknownFields protoimpl.UnknownFields 3537 3538 // The findings. 3539 Result *InspectResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` 3540} 3541 3542func (x *InspectContentResponse) Reset() { 3543 *x = InspectContentResponse{} 3544 if protoimpl.UnsafeEnabled { 3545 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[29] 3546 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3547 ms.StoreMessageInfo(mi) 3548 } 3549} 3550 3551func (x *InspectContentResponse) String() string { 3552 return protoimpl.X.MessageStringOf(x) 3553} 3554 3555func (*InspectContentResponse) ProtoMessage() {} 3556 3557func (x *InspectContentResponse) ProtoReflect() protoreflect.Message { 3558 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[29] 3559 if protoimpl.UnsafeEnabled && x != nil { 3560 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3561 if ms.LoadMessageInfo() == nil { 3562 ms.StoreMessageInfo(mi) 3563 } 3564 return ms 3565 } 3566 return mi.MessageOf(x) 3567} 3568 3569// Deprecated: Use InspectContentResponse.ProtoReflect.Descriptor instead. 3570func (*InspectContentResponse) Descriptor() ([]byte, []int) { 3571 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{29} 3572} 3573 3574func (x *InspectContentResponse) GetResult() *InspectResult { 3575 if x != nil { 3576 return x.Result 3577 } 3578 return nil 3579} 3580 3581// Cloud repository for storing output. 3582type OutputStorageConfig struct { 3583 state protoimpl.MessageState 3584 sizeCache protoimpl.SizeCache 3585 unknownFields protoimpl.UnknownFields 3586 3587 // Output storage types. 3588 // 3589 // Types that are assignable to Type: 3590 // *OutputStorageConfig_Table 3591 Type isOutputStorageConfig_Type `protobuf_oneof:"type"` 3592 // Schema used for writing the findings for Inspect jobs. This field is only 3593 // used for Inspect and must be unspecified for Risk jobs. Columns are derived 3594 // from the `Finding` object. If appending to an existing table, any columns 3595 // from the predefined schema that are missing will be added. No columns in 3596 // the existing table will be deleted. 3597 // 3598 // If unspecified, then all available columns will be used for a new table or 3599 // an (existing) table with no schema, and no changes will be made to an 3600 // existing table that has a schema. 3601 // Only for use with external storage. 3602 OutputSchema OutputStorageConfig_OutputSchema `protobuf:"varint,3,opt,name=output_schema,json=outputSchema,proto3,enum=google.privacy.dlp.v2.OutputStorageConfig_OutputSchema" json:"output_schema,omitempty"` 3603} 3604 3605func (x *OutputStorageConfig) Reset() { 3606 *x = OutputStorageConfig{} 3607 if protoimpl.UnsafeEnabled { 3608 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[30] 3609 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3610 ms.StoreMessageInfo(mi) 3611 } 3612} 3613 3614func (x *OutputStorageConfig) String() string { 3615 return protoimpl.X.MessageStringOf(x) 3616} 3617 3618func (*OutputStorageConfig) ProtoMessage() {} 3619 3620func (x *OutputStorageConfig) ProtoReflect() protoreflect.Message { 3621 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[30] 3622 if protoimpl.UnsafeEnabled && x != nil { 3623 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3624 if ms.LoadMessageInfo() == nil { 3625 ms.StoreMessageInfo(mi) 3626 } 3627 return ms 3628 } 3629 return mi.MessageOf(x) 3630} 3631 3632// Deprecated: Use OutputStorageConfig.ProtoReflect.Descriptor instead. 3633func (*OutputStorageConfig) Descriptor() ([]byte, []int) { 3634 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{30} 3635} 3636 3637func (m *OutputStorageConfig) GetType() isOutputStorageConfig_Type { 3638 if m != nil { 3639 return m.Type 3640 } 3641 return nil 3642} 3643 3644func (x *OutputStorageConfig) GetTable() *BigQueryTable { 3645 if x, ok := x.GetType().(*OutputStorageConfig_Table); ok { 3646 return x.Table 3647 } 3648 return nil 3649} 3650 3651func (x *OutputStorageConfig) GetOutputSchema() OutputStorageConfig_OutputSchema { 3652 if x != nil { 3653 return x.OutputSchema 3654 } 3655 return OutputStorageConfig_OUTPUT_SCHEMA_UNSPECIFIED 3656} 3657 3658type isOutputStorageConfig_Type interface { 3659 isOutputStorageConfig_Type() 3660} 3661 3662type OutputStorageConfig_Table struct { 3663 // Store findings in an existing table or a new table in an existing 3664 // dataset. If table_id is not set a new one will be generated 3665 // for you with the following format: 3666 // dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for 3667 // generating the date details. 3668 // 3669 // For Inspect, each column in an existing output table must have the same 3670 // name, type, and mode of a field in the `Finding` object. 3671 // 3672 // For Risk, an existing output table should be the output of a previous 3673 // Risk analysis job run on the same source table, with the same privacy 3674 // metric and quasi-identifiers. Risk jobs that analyze the same table but 3675 // compute a different privacy metric, or use different sets of 3676 // quasi-identifiers, cannot store their results in the same table. 3677 Table *BigQueryTable `protobuf:"bytes,1,opt,name=table,proto3,oneof"` 3678} 3679 3680func (*OutputStorageConfig_Table) isOutputStorageConfig_Type() {} 3681 3682// Statistics regarding a specific InfoType. 3683type InfoTypeStats struct { 3684 state protoimpl.MessageState 3685 sizeCache protoimpl.SizeCache 3686 unknownFields protoimpl.UnknownFields 3687 3688 // The type of finding this stat is for. 3689 InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"` 3690 // Number of findings for this infoType. 3691 Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` 3692} 3693 3694func (x *InfoTypeStats) Reset() { 3695 *x = InfoTypeStats{} 3696 if protoimpl.UnsafeEnabled { 3697 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[31] 3698 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3699 ms.StoreMessageInfo(mi) 3700 } 3701} 3702 3703func (x *InfoTypeStats) String() string { 3704 return protoimpl.X.MessageStringOf(x) 3705} 3706 3707func (*InfoTypeStats) ProtoMessage() {} 3708 3709func (x *InfoTypeStats) ProtoReflect() protoreflect.Message { 3710 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[31] 3711 if protoimpl.UnsafeEnabled && x != nil { 3712 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3713 if ms.LoadMessageInfo() == nil { 3714 ms.StoreMessageInfo(mi) 3715 } 3716 return ms 3717 } 3718 return mi.MessageOf(x) 3719} 3720 3721// Deprecated: Use InfoTypeStats.ProtoReflect.Descriptor instead. 3722func (*InfoTypeStats) Descriptor() ([]byte, []int) { 3723 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{31} 3724} 3725 3726func (x *InfoTypeStats) GetInfoType() *InfoType { 3727 if x != nil { 3728 return x.InfoType 3729 } 3730 return nil 3731} 3732 3733func (x *InfoTypeStats) GetCount() int64 { 3734 if x != nil { 3735 return x.Count 3736 } 3737 return 0 3738} 3739 3740// The results of an inspect DataSource job. 3741type InspectDataSourceDetails struct { 3742 state protoimpl.MessageState 3743 sizeCache protoimpl.SizeCache 3744 unknownFields protoimpl.UnknownFields 3745 3746 // The configuration used for this job. 3747 RequestedOptions *InspectDataSourceDetails_RequestedOptions `protobuf:"bytes,2,opt,name=requested_options,json=requestedOptions,proto3" json:"requested_options,omitempty"` 3748 // A summary of the outcome of this inspect job. 3749 Result *InspectDataSourceDetails_Result `protobuf:"bytes,3,opt,name=result,proto3" json:"result,omitempty"` 3750} 3751 3752func (x *InspectDataSourceDetails) Reset() { 3753 *x = InspectDataSourceDetails{} 3754 if protoimpl.UnsafeEnabled { 3755 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[32] 3756 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3757 ms.StoreMessageInfo(mi) 3758 } 3759} 3760 3761func (x *InspectDataSourceDetails) String() string { 3762 return protoimpl.X.MessageStringOf(x) 3763} 3764 3765func (*InspectDataSourceDetails) ProtoMessage() {} 3766 3767func (x *InspectDataSourceDetails) ProtoReflect() protoreflect.Message { 3768 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[32] 3769 if protoimpl.UnsafeEnabled && x != nil { 3770 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3771 if ms.LoadMessageInfo() == nil { 3772 ms.StoreMessageInfo(mi) 3773 } 3774 return ms 3775 } 3776 return mi.MessageOf(x) 3777} 3778 3779// Deprecated: Use InspectDataSourceDetails.ProtoReflect.Descriptor instead. 3780func (*InspectDataSourceDetails) Descriptor() ([]byte, []int) { 3781 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{32} 3782} 3783 3784func (x *InspectDataSourceDetails) GetRequestedOptions() *InspectDataSourceDetails_RequestedOptions { 3785 if x != nil { 3786 return x.RequestedOptions 3787 } 3788 return nil 3789} 3790 3791func (x *InspectDataSourceDetails) GetResult() *InspectDataSourceDetails_Result { 3792 if x != nil { 3793 return x.Result 3794 } 3795 return nil 3796} 3797 3798// Statistics related to processing hybrid inspect requests. 3799type HybridInspectStatistics struct { 3800 state protoimpl.MessageState 3801 sizeCache protoimpl.SizeCache 3802 unknownFields protoimpl.UnknownFields 3803 3804 // The number of hybrid inspection requests processed within this job. 3805 ProcessedCount int64 `protobuf:"varint,1,opt,name=processed_count,json=processedCount,proto3" json:"processed_count,omitempty"` 3806 // The number of hybrid inspection requests aborted because the job ran 3807 // out of quota or was ended before they could be processed. 3808 AbortedCount int64 `protobuf:"varint,2,opt,name=aborted_count,json=abortedCount,proto3" json:"aborted_count,omitempty"` 3809 // The number of hybrid requests currently being processed. Only populated 3810 // when called via method `getDlpJob`. 3811 // A burst of traffic may cause hybrid inspect requests to be enqueued. 3812 // Processing will take place as quickly as possible, but resource limitations 3813 // may impact how long a request is enqueued for. 3814 PendingCount int64 `protobuf:"varint,3,opt,name=pending_count,json=pendingCount,proto3" json:"pending_count,omitempty"` 3815} 3816 3817func (x *HybridInspectStatistics) Reset() { 3818 *x = HybridInspectStatistics{} 3819 if protoimpl.UnsafeEnabled { 3820 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[33] 3821 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3822 ms.StoreMessageInfo(mi) 3823 } 3824} 3825 3826func (x *HybridInspectStatistics) String() string { 3827 return protoimpl.X.MessageStringOf(x) 3828} 3829 3830func (*HybridInspectStatistics) ProtoMessage() {} 3831 3832func (x *HybridInspectStatistics) ProtoReflect() protoreflect.Message { 3833 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[33] 3834 if protoimpl.UnsafeEnabled && x != nil { 3835 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3836 if ms.LoadMessageInfo() == nil { 3837 ms.StoreMessageInfo(mi) 3838 } 3839 return ms 3840 } 3841 return mi.MessageOf(x) 3842} 3843 3844// Deprecated: Use HybridInspectStatistics.ProtoReflect.Descriptor instead. 3845func (*HybridInspectStatistics) Descriptor() ([]byte, []int) { 3846 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{33} 3847} 3848 3849func (x *HybridInspectStatistics) GetProcessedCount() int64 { 3850 if x != nil { 3851 return x.ProcessedCount 3852 } 3853 return 0 3854} 3855 3856func (x *HybridInspectStatistics) GetAbortedCount() int64 { 3857 if x != nil { 3858 return x.AbortedCount 3859 } 3860 return 0 3861} 3862 3863func (x *HybridInspectStatistics) GetPendingCount() int64 { 3864 if x != nil { 3865 return x.PendingCount 3866 } 3867 return 0 3868} 3869 3870// InfoType description. 3871type InfoTypeDescription struct { 3872 state protoimpl.MessageState 3873 sizeCache protoimpl.SizeCache 3874 unknownFields protoimpl.UnknownFields 3875 3876 // Internal name of the infoType. 3877 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 3878 // Human readable form of the infoType name. 3879 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 3880 // Which parts of the API supports this InfoType. 3881 SupportedBy []InfoTypeSupportedBy `protobuf:"varint,3,rep,packed,name=supported_by,json=supportedBy,proto3,enum=google.privacy.dlp.v2.InfoTypeSupportedBy" json:"supported_by,omitempty"` 3882 // Description of the infotype. Translated when language is provided in the 3883 // request. 3884 Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` 3885} 3886 3887func (x *InfoTypeDescription) Reset() { 3888 *x = InfoTypeDescription{} 3889 if protoimpl.UnsafeEnabled { 3890 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[34] 3891 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3892 ms.StoreMessageInfo(mi) 3893 } 3894} 3895 3896func (x *InfoTypeDescription) String() string { 3897 return protoimpl.X.MessageStringOf(x) 3898} 3899 3900func (*InfoTypeDescription) ProtoMessage() {} 3901 3902func (x *InfoTypeDescription) ProtoReflect() protoreflect.Message { 3903 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[34] 3904 if protoimpl.UnsafeEnabled && x != nil { 3905 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3906 if ms.LoadMessageInfo() == nil { 3907 ms.StoreMessageInfo(mi) 3908 } 3909 return ms 3910 } 3911 return mi.MessageOf(x) 3912} 3913 3914// Deprecated: Use InfoTypeDescription.ProtoReflect.Descriptor instead. 3915func (*InfoTypeDescription) Descriptor() ([]byte, []int) { 3916 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{34} 3917} 3918 3919func (x *InfoTypeDescription) GetName() string { 3920 if x != nil { 3921 return x.Name 3922 } 3923 return "" 3924} 3925 3926func (x *InfoTypeDescription) GetDisplayName() string { 3927 if x != nil { 3928 return x.DisplayName 3929 } 3930 return "" 3931} 3932 3933func (x *InfoTypeDescription) GetSupportedBy() []InfoTypeSupportedBy { 3934 if x != nil { 3935 return x.SupportedBy 3936 } 3937 return nil 3938} 3939 3940func (x *InfoTypeDescription) GetDescription() string { 3941 if x != nil { 3942 return x.Description 3943 } 3944 return "" 3945} 3946 3947// Request for the list of infoTypes. 3948type ListInfoTypesRequest struct { 3949 state protoimpl.MessageState 3950 sizeCache protoimpl.SizeCache 3951 unknownFields protoimpl.UnknownFields 3952 3953 // The parent resource name. 3954 // 3955 // The format of this value is as follows: 3956 // 3957 // locations/<var>LOCATION_ID</var> 3958 Parent string `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"` 3959 // BCP-47 language code for localized infoType friendly 3960 // names. If omitted, or if localized strings are not available, 3961 // en-US strings will be returned. 3962 LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` 3963 // filter to only return infoTypes supported by certain parts of the 3964 // API. Defaults to supported_by=INSPECT. 3965 Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` 3966 // Deprecated. This field has no effect. 3967 LocationId string `protobuf:"bytes,3,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 3968} 3969 3970func (x *ListInfoTypesRequest) Reset() { 3971 *x = ListInfoTypesRequest{} 3972 if protoimpl.UnsafeEnabled { 3973 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[35] 3974 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3975 ms.StoreMessageInfo(mi) 3976 } 3977} 3978 3979func (x *ListInfoTypesRequest) String() string { 3980 return protoimpl.X.MessageStringOf(x) 3981} 3982 3983func (*ListInfoTypesRequest) ProtoMessage() {} 3984 3985func (x *ListInfoTypesRequest) ProtoReflect() protoreflect.Message { 3986 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[35] 3987 if protoimpl.UnsafeEnabled && x != nil { 3988 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3989 if ms.LoadMessageInfo() == nil { 3990 ms.StoreMessageInfo(mi) 3991 } 3992 return ms 3993 } 3994 return mi.MessageOf(x) 3995} 3996 3997// Deprecated: Use ListInfoTypesRequest.ProtoReflect.Descriptor instead. 3998func (*ListInfoTypesRequest) Descriptor() ([]byte, []int) { 3999 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{35} 4000} 4001 4002func (x *ListInfoTypesRequest) GetParent() string { 4003 if x != nil { 4004 return x.Parent 4005 } 4006 return "" 4007} 4008 4009func (x *ListInfoTypesRequest) GetLanguageCode() string { 4010 if x != nil { 4011 return x.LanguageCode 4012 } 4013 return "" 4014} 4015 4016func (x *ListInfoTypesRequest) GetFilter() string { 4017 if x != nil { 4018 return x.Filter 4019 } 4020 return "" 4021} 4022 4023func (x *ListInfoTypesRequest) GetLocationId() string { 4024 if x != nil { 4025 return x.LocationId 4026 } 4027 return "" 4028} 4029 4030// Response to the ListInfoTypes request. 4031type ListInfoTypesResponse struct { 4032 state protoimpl.MessageState 4033 sizeCache protoimpl.SizeCache 4034 unknownFields protoimpl.UnknownFields 4035 4036 // Set of sensitive infoTypes. 4037 InfoTypes []*InfoTypeDescription `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"` 4038} 4039 4040func (x *ListInfoTypesResponse) Reset() { 4041 *x = ListInfoTypesResponse{} 4042 if protoimpl.UnsafeEnabled { 4043 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[36] 4044 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4045 ms.StoreMessageInfo(mi) 4046 } 4047} 4048 4049func (x *ListInfoTypesResponse) String() string { 4050 return protoimpl.X.MessageStringOf(x) 4051} 4052 4053func (*ListInfoTypesResponse) ProtoMessage() {} 4054 4055func (x *ListInfoTypesResponse) ProtoReflect() protoreflect.Message { 4056 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[36] 4057 if protoimpl.UnsafeEnabled && x != nil { 4058 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4059 if ms.LoadMessageInfo() == nil { 4060 ms.StoreMessageInfo(mi) 4061 } 4062 return ms 4063 } 4064 return mi.MessageOf(x) 4065} 4066 4067// Deprecated: Use ListInfoTypesResponse.ProtoReflect.Descriptor instead. 4068func (*ListInfoTypesResponse) Descriptor() ([]byte, []int) { 4069 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{36} 4070} 4071 4072func (x *ListInfoTypesResponse) GetInfoTypes() []*InfoTypeDescription { 4073 if x != nil { 4074 return x.InfoTypes 4075 } 4076 return nil 4077} 4078 4079// Configuration for a risk analysis job. See 4080// https://cloud.google.com/dlp/docs/concepts-risk-analysis to learn more. 4081type RiskAnalysisJobConfig struct { 4082 state protoimpl.MessageState 4083 sizeCache protoimpl.SizeCache 4084 unknownFields protoimpl.UnknownFields 4085 4086 // Privacy metric to compute. 4087 PrivacyMetric *PrivacyMetric `protobuf:"bytes,1,opt,name=privacy_metric,json=privacyMetric,proto3" json:"privacy_metric,omitempty"` 4088 // Input dataset to compute metrics over. 4089 SourceTable *BigQueryTable `protobuf:"bytes,2,opt,name=source_table,json=sourceTable,proto3" json:"source_table,omitempty"` 4090 // Actions to execute at the completion of the job. Are executed in the order 4091 // provided. 4092 Actions []*Action `protobuf:"bytes,3,rep,name=actions,proto3" json:"actions,omitempty"` 4093} 4094 4095func (x *RiskAnalysisJobConfig) Reset() { 4096 *x = RiskAnalysisJobConfig{} 4097 if protoimpl.UnsafeEnabled { 4098 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[37] 4099 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4100 ms.StoreMessageInfo(mi) 4101 } 4102} 4103 4104func (x *RiskAnalysisJobConfig) String() string { 4105 return protoimpl.X.MessageStringOf(x) 4106} 4107 4108func (*RiskAnalysisJobConfig) ProtoMessage() {} 4109 4110func (x *RiskAnalysisJobConfig) ProtoReflect() protoreflect.Message { 4111 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[37] 4112 if protoimpl.UnsafeEnabled && x != nil { 4113 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4114 if ms.LoadMessageInfo() == nil { 4115 ms.StoreMessageInfo(mi) 4116 } 4117 return ms 4118 } 4119 return mi.MessageOf(x) 4120} 4121 4122// Deprecated: Use RiskAnalysisJobConfig.ProtoReflect.Descriptor instead. 4123func (*RiskAnalysisJobConfig) Descriptor() ([]byte, []int) { 4124 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{37} 4125} 4126 4127func (x *RiskAnalysisJobConfig) GetPrivacyMetric() *PrivacyMetric { 4128 if x != nil { 4129 return x.PrivacyMetric 4130 } 4131 return nil 4132} 4133 4134func (x *RiskAnalysisJobConfig) GetSourceTable() *BigQueryTable { 4135 if x != nil { 4136 return x.SourceTable 4137 } 4138 return nil 4139} 4140 4141func (x *RiskAnalysisJobConfig) GetActions() []*Action { 4142 if x != nil { 4143 return x.Actions 4144 } 4145 return nil 4146} 4147 4148// A column with a semantic tag attached. 4149type QuasiId struct { 4150 state protoimpl.MessageState 4151 sizeCache protoimpl.SizeCache 4152 unknownFields protoimpl.UnknownFields 4153 4154 // Required. Identifies the column. 4155 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 4156 // Semantic tag that identifies what a column contains, to determine which 4157 // statistical model to use to estimate the reidentifiability of each 4158 // value. [required] 4159 // 4160 // Types that are assignable to Tag: 4161 // *QuasiId_InfoType 4162 // *QuasiId_CustomTag 4163 // *QuasiId_Inferred 4164 Tag isQuasiId_Tag `protobuf_oneof:"tag"` 4165} 4166 4167func (x *QuasiId) Reset() { 4168 *x = QuasiId{} 4169 if protoimpl.UnsafeEnabled { 4170 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[38] 4171 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4172 ms.StoreMessageInfo(mi) 4173 } 4174} 4175 4176func (x *QuasiId) String() string { 4177 return protoimpl.X.MessageStringOf(x) 4178} 4179 4180func (*QuasiId) ProtoMessage() {} 4181 4182func (x *QuasiId) ProtoReflect() protoreflect.Message { 4183 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[38] 4184 if protoimpl.UnsafeEnabled && x != nil { 4185 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4186 if ms.LoadMessageInfo() == nil { 4187 ms.StoreMessageInfo(mi) 4188 } 4189 return ms 4190 } 4191 return mi.MessageOf(x) 4192} 4193 4194// Deprecated: Use QuasiId.ProtoReflect.Descriptor instead. 4195func (*QuasiId) Descriptor() ([]byte, []int) { 4196 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{38} 4197} 4198 4199func (x *QuasiId) GetField() *FieldId { 4200 if x != nil { 4201 return x.Field 4202 } 4203 return nil 4204} 4205 4206func (m *QuasiId) GetTag() isQuasiId_Tag { 4207 if m != nil { 4208 return m.Tag 4209 } 4210 return nil 4211} 4212 4213func (x *QuasiId) GetInfoType() *InfoType { 4214 if x, ok := x.GetTag().(*QuasiId_InfoType); ok { 4215 return x.InfoType 4216 } 4217 return nil 4218} 4219 4220func (x *QuasiId) GetCustomTag() string { 4221 if x, ok := x.GetTag().(*QuasiId_CustomTag); ok { 4222 return x.CustomTag 4223 } 4224 return "" 4225} 4226 4227func (x *QuasiId) GetInferred() *emptypb.Empty { 4228 if x, ok := x.GetTag().(*QuasiId_Inferred); ok { 4229 return x.Inferred 4230 } 4231 return nil 4232} 4233 4234type isQuasiId_Tag interface { 4235 isQuasiId_Tag() 4236} 4237 4238type QuasiId_InfoType struct { 4239 // A column can be tagged with a InfoType to use the relevant public 4240 // dataset as a statistical model of population, if available. We 4241 // currently support US ZIP codes, region codes, ages and genders. 4242 // To programmatically obtain the list of supported InfoTypes, use 4243 // ListInfoTypes with the supported_by=RISK_ANALYSIS filter. 4244 InfoType *InfoType `protobuf:"bytes,2,opt,name=info_type,json=infoType,proto3,oneof"` 4245} 4246 4247type QuasiId_CustomTag struct { 4248 // A column can be tagged with a custom tag. In this case, the user must 4249 // indicate an auxiliary table that contains statistical information on 4250 // the possible values of this column (below). 4251 CustomTag string `protobuf:"bytes,3,opt,name=custom_tag,json=customTag,proto3,oneof"` 4252} 4253 4254type QuasiId_Inferred struct { 4255 // If no semantic tag is indicated, we infer the statistical model from 4256 // the distribution of values in the input data 4257 Inferred *emptypb.Empty `protobuf:"bytes,4,opt,name=inferred,proto3,oneof"` 4258} 4259 4260func (*QuasiId_InfoType) isQuasiId_Tag() {} 4261 4262func (*QuasiId_CustomTag) isQuasiId_Tag() {} 4263 4264func (*QuasiId_Inferred) isQuasiId_Tag() {} 4265 4266// An auxiliary table containing statistical information on the relative 4267// frequency of different quasi-identifiers values. It has one or several 4268// quasi-identifiers columns, and one column that indicates the relative 4269// frequency of each quasi-identifier tuple. 4270// If a tuple is present in the data but not in the auxiliary table, the 4271// corresponding relative frequency is assumed to be zero (and thus, the 4272// tuple is highly reidentifiable). 4273type StatisticalTable struct { 4274 state protoimpl.MessageState 4275 sizeCache protoimpl.SizeCache 4276 unknownFields protoimpl.UnknownFields 4277 4278 // Required. Auxiliary table location. 4279 Table *BigQueryTable `protobuf:"bytes,3,opt,name=table,proto3" json:"table,omitempty"` 4280 // Required. Quasi-identifier columns. 4281 QuasiIds []*StatisticalTable_QuasiIdentifierField `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"` 4282 // Required. The relative frequency column must contain a floating-point number 4283 // between 0 and 1 (inclusive). Null values are assumed to be zero. 4284 RelativeFrequency *FieldId `protobuf:"bytes,2,opt,name=relative_frequency,json=relativeFrequency,proto3" json:"relative_frequency,omitempty"` 4285} 4286 4287func (x *StatisticalTable) Reset() { 4288 *x = StatisticalTable{} 4289 if protoimpl.UnsafeEnabled { 4290 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[39] 4291 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4292 ms.StoreMessageInfo(mi) 4293 } 4294} 4295 4296func (x *StatisticalTable) String() string { 4297 return protoimpl.X.MessageStringOf(x) 4298} 4299 4300func (*StatisticalTable) ProtoMessage() {} 4301 4302func (x *StatisticalTable) ProtoReflect() protoreflect.Message { 4303 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[39] 4304 if protoimpl.UnsafeEnabled && x != nil { 4305 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4306 if ms.LoadMessageInfo() == nil { 4307 ms.StoreMessageInfo(mi) 4308 } 4309 return ms 4310 } 4311 return mi.MessageOf(x) 4312} 4313 4314// Deprecated: Use StatisticalTable.ProtoReflect.Descriptor instead. 4315func (*StatisticalTable) Descriptor() ([]byte, []int) { 4316 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{39} 4317} 4318 4319func (x *StatisticalTable) GetTable() *BigQueryTable { 4320 if x != nil { 4321 return x.Table 4322 } 4323 return nil 4324} 4325 4326func (x *StatisticalTable) GetQuasiIds() []*StatisticalTable_QuasiIdentifierField { 4327 if x != nil { 4328 return x.QuasiIds 4329 } 4330 return nil 4331} 4332 4333func (x *StatisticalTable) GetRelativeFrequency() *FieldId { 4334 if x != nil { 4335 return x.RelativeFrequency 4336 } 4337 return nil 4338} 4339 4340// Privacy metric to compute for reidentification risk analysis. 4341type PrivacyMetric struct { 4342 state protoimpl.MessageState 4343 sizeCache protoimpl.SizeCache 4344 unknownFields protoimpl.UnknownFields 4345 4346 // Types of analysis. 4347 // 4348 // Types that are assignable to Type: 4349 // *PrivacyMetric_NumericalStatsConfig_ 4350 // *PrivacyMetric_CategoricalStatsConfig_ 4351 // *PrivacyMetric_KAnonymityConfig_ 4352 // *PrivacyMetric_LDiversityConfig_ 4353 // *PrivacyMetric_KMapEstimationConfig_ 4354 // *PrivacyMetric_DeltaPresenceEstimationConfig_ 4355 Type isPrivacyMetric_Type `protobuf_oneof:"type"` 4356} 4357 4358func (x *PrivacyMetric) Reset() { 4359 *x = PrivacyMetric{} 4360 if protoimpl.UnsafeEnabled { 4361 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[40] 4362 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4363 ms.StoreMessageInfo(mi) 4364 } 4365} 4366 4367func (x *PrivacyMetric) String() string { 4368 return protoimpl.X.MessageStringOf(x) 4369} 4370 4371func (*PrivacyMetric) ProtoMessage() {} 4372 4373func (x *PrivacyMetric) ProtoReflect() protoreflect.Message { 4374 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[40] 4375 if protoimpl.UnsafeEnabled && x != nil { 4376 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4377 if ms.LoadMessageInfo() == nil { 4378 ms.StoreMessageInfo(mi) 4379 } 4380 return ms 4381 } 4382 return mi.MessageOf(x) 4383} 4384 4385// Deprecated: Use PrivacyMetric.ProtoReflect.Descriptor instead. 4386func (*PrivacyMetric) Descriptor() ([]byte, []int) { 4387 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40} 4388} 4389 4390func (m *PrivacyMetric) GetType() isPrivacyMetric_Type { 4391 if m != nil { 4392 return m.Type 4393 } 4394 return nil 4395} 4396 4397func (x *PrivacyMetric) GetNumericalStatsConfig() *PrivacyMetric_NumericalStatsConfig { 4398 if x, ok := x.GetType().(*PrivacyMetric_NumericalStatsConfig_); ok { 4399 return x.NumericalStatsConfig 4400 } 4401 return nil 4402} 4403 4404func (x *PrivacyMetric) GetCategoricalStatsConfig() *PrivacyMetric_CategoricalStatsConfig { 4405 if x, ok := x.GetType().(*PrivacyMetric_CategoricalStatsConfig_); ok { 4406 return x.CategoricalStatsConfig 4407 } 4408 return nil 4409} 4410 4411func (x *PrivacyMetric) GetKAnonymityConfig() *PrivacyMetric_KAnonymityConfig { 4412 if x, ok := x.GetType().(*PrivacyMetric_KAnonymityConfig_); ok { 4413 return x.KAnonymityConfig 4414 } 4415 return nil 4416} 4417 4418func (x *PrivacyMetric) GetLDiversityConfig() *PrivacyMetric_LDiversityConfig { 4419 if x, ok := x.GetType().(*PrivacyMetric_LDiversityConfig_); ok { 4420 return x.LDiversityConfig 4421 } 4422 return nil 4423} 4424 4425func (x *PrivacyMetric) GetKMapEstimationConfig() *PrivacyMetric_KMapEstimationConfig { 4426 if x, ok := x.GetType().(*PrivacyMetric_KMapEstimationConfig_); ok { 4427 return x.KMapEstimationConfig 4428 } 4429 return nil 4430} 4431 4432func (x *PrivacyMetric) GetDeltaPresenceEstimationConfig() *PrivacyMetric_DeltaPresenceEstimationConfig { 4433 if x, ok := x.GetType().(*PrivacyMetric_DeltaPresenceEstimationConfig_); ok { 4434 return x.DeltaPresenceEstimationConfig 4435 } 4436 return nil 4437} 4438 4439type isPrivacyMetric_Type interface { 4440 isPrivacyMetric_Type() 4441} 4442 4443type PrivacyMetric_NumericalStatsConfig_ struct { 4444 // Numerical stats 4445 NumericalStatsConfig *PrivacyMetric_NumericalStatsConfig `protobuf:"bytes,1,opt,name=numerical_stats_config,json=numericalStatsConfig,proto3,oneof"` 4446} 4447 4448type PrivacyMetric_CategoricalStatsConfig_ struct { 4449 // Categorical stats 4450 CategoricalStatsConfig *PrivacyMetric_CategoricalStatsConfig `protobuf:"bytes,2,opt,name=categorical_stats_config,json=categoricalStatsConfig,proto3,oneof"` 4451} 4452 4453type PrivacyMetric_KAnonymityConfig_ struct { 4454 // K-anonymity 4455 KAnonymityConfig *PrivacyMetric_KAnonymityConfig `protobuf:"bytes,3,opt,name=k_anonymity_config,json=kAnonymityConfig,proto3,oneof"` 4456} 4457 4458type PrivacyMetric_LDiversityConfig_ struct { 4459 // l-diversity 4460 LDiversityConfig *PrivacyMetric_LDiversityConfig `protobuf:"bytes,4,opt,name=l_diversity_config,json=lDiversityConfig,proto3,oneof"` 4461} 4462 4463type PrivacyMetric_KMapEstimationConfig_ struct { 4464 // k-map 4465 KMapEstimationConfig *PrivacyMetric_KMapEstimationConfig `protobuf:"bytes,5,opt,name=k_map_estimation_config,json=kMapEstimationConfig,proto3,oneof"` 4466} 4467 4468type PrivacyMetric_DeltaPresenceEstimationConfig_ struct { 4469 // delta-presence 4470 DeltaPresenceEstimationConfig *PrivacyMetric_DeltaPresenceEstimationConfig `protobuf:"bytes,6,opt,name=delta_presence_estimation_config,json=deltaPresenceEstimationConfig,proto3,oneof"` 4471} 4472 4473func (*PrivacyMetric_NumericalStatsConfig_) isPrivacyMetric_Type() {} 4474 4475func (*PrivacyMetric_CategoricalStatsConfig_) isPrivacyMetric_Type() {} 4476 4477func (*PrivacyMetric_KAnonymityConfig_) isPrivacyMetric_Type() {} 4478 4479func (*PrivacyMetric_LDiversityConfig_) isPrivacyMetric_Type() {} 4480 4481func (*PrivacyMetric_KMapEstimationConfig_) isPrivacyMetric_Type() {} 4482 4483func (*PrivacyMetric_DeltaPresenceEstimationConfig_) isPrivacyMetric_Type() {} 4484 4485// Result of a risk analysis operation request. 4486type AnalyzeDataSourceRiskDetails struct { 4487 state protoimpl.MessageState 4488 sizeCache protoimpl.SizeCache 4489 unknownFields protoimpl.UnknownFields 4490 4491 // Privacy metric to compute. 4492 RequestedPrivacyMetric *PrivacyMetric `protobuf:"bytes,1,opt,name=requested_privacy_metric,json=requestedPrivacyMetric,proto3" json:"requested_privacy_metric,omitempty"` 4493 // Input dataset to compute metrics over. 4494 RequestedSourceTable *BigQueryTable `protobuf:"bytes,2,opt,name=requested_source_table,json=requestedSourceTable,proto3" json:"requested_source_table,omitempty"` 4495 // Values associated with this metric. 4496 // 4497 // Types that are assignable to Result: 4498 // *AnalyzeDataSourceRiskDetails_NumericalStatsResult_ 4499 // *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_ 4500 // *AnalyzeDataSourceRiskDetails_KAnonymityResult_ 4501 // *AnalyzeDataSourceRiskDetails_LDiversityResult_ 4502 // *AnalyzeDataSourceRiskDetails_KMapEstimationResult_ 4503 // *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_ 4504 Result isAnalyzeDataSourceRiskDetails_Result `protobuf_oneof:"result"` 4505 // The configuration used for this job. 4506 RequestedOptions *AnalyzeDataSourceRiskDetails_RequestedRiskAnalysisOptions `protobuf:"bytes,10,opt,name=requested_options,json=requestedOptions,proto3" json:"requested_options,omitempty"` 4507} 4508 4509func (x *AnalyzeDataSourceRiskDetails) Reset() { 4510 *x = AnalyzeDataSourceRiskDetails{} 4511 if protoimpl.UnsafeEnabled { 4512 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[41] 4513 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4514 ms.StoreMessageInfo(mi) 4515 } 4516} 4517 4518func (x *AnalyzeDataSourceRiskDetails) String() string { 4519 return protoimpl.X.MessageStringOf(x) 4520} 4521 4522func (*AnalyzeDataSourceRiskDetails) ProtoMessage() {} 4523 4524func (x *AnalyzeDataSourceRiskDetails) ProtoReflect() protoreflect.Message { 4525 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[41] 4526 if protoimpl.UnsafeEnabled && x != nil { 4527 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4528 if ms.LoadMessageInfo() == nil { 4529 ms.StoreMessageInfo(mi) 4530 } 4531 return ms 4532 } 4533 return mi.MessageOf(x) 4534} 4535 4536// Deprecated: Use AnalyzeDataSourceRiskDetails.ProtoReflect.Descriptor instead. 4537func (*AnalyzeDataSourceRiskDetails) Descriptor() ([]byte, []int) { 4538 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41} 4539} 4540 4541func (x *AnalyzeDataSourceRiskDetails) GetRequestedPrivacyMetric() *PrivacyMetric { 4542 if x != nil { 4543 return x.RequestedPrivacyMetric 4544 } 4545 return nil 4546} 4547 4548func (x *AnalyzeDataSourceRiskDetails) GetRequestedSourceTable() *BigQueryTable { 4549 if x != nil { 4550 return x.RequestedSourceTable 4551 } 4552 return nil 4553} 4554 4555func (m *AnalyzeDataSourceRiskDetails) GetResult() isAnalyzeDataSourceRiskDetails_Result { 4556 if m != nil { 4557 return m.Result 4558 } 4559 return nil 4560} 4561 4562func (x *AnalyzeDataSourceRiskDetails) GetNumericalStatsResult() *AnalyzeDataSourceRiskDetails_NumericalStatsResult { 4563 if x, ok := x.GetResult().(*AnalyzeDataSourceRiskDetails_NumericalStatsResult_); ok { 4564 return x.NumericalStatsResult 4565 } 4566 return nil 4567} 4568 4569func (x *AnalyzeDataSourceRiskDetails) GetCategoricalStatsResult() *AnalyzeDataSourceRiskDetails_CategoricalStatsResult { 4570 if x, ok := x.GetResult().(*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_); ok { 4571 return x.CategoricalStatsResult 4572 } 4573 return nil 4574} 4575 4576func (x *AnalyzeDataSourceRiskDetails) GetKAnonymityResult() *AnalyzeDataSourceRiskDetails_KAnonymityResult { 4577 if x, ok := x.GetResult().(*AnalyzeDataSourceRiskDetails_KAnonymityResult_); ok { 4578 return x.KAnonymityResult 4579 } 4580 return nil 4581} 4582 4583func (x *AnalyzeDataSourceRiskDetails) GetLDiversityResult() *AnalyzeDataSourceRiskDetails_LDiversityResult { 4584 if x, ok := x.GetResult().(*AnalyzeDataSourceRiskDetails_LDiversityResult_); ok { 4585 return x.LDiversityResult 4586 } 4587 return nil 4588} 4589 4590func (x *AnalyzeDataSourceRiskDetails) GetKMapEstimationResult() *AnalyzeDataSourceRiskDetails_KMapEstimationResult { 4591 if x, ok := x.GetResult().(*AnalyzeDataSourceRiskDetails_KMapEstimationResult_); ok { 4592 return x.KMapEstimationResult 4593 } 4594 return nil 4595} 4596 4597func (x *AnalyzeDataSourceRiskDetails) GetDeltaPresenceEstimationResult() *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult { 4598 if x, ok := x.GetResult().(*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_); ok { 4599 return x.DeltaPresenceEstimationResult 4600 } 4601 return nil 4602} 4603 4604func (x *AnalyzeDataSourceRiskDetails) GetRequestedOptions() *AnalyzeDataSourceRiskDetails_RequestedRiskAnalysisOptions { 4605 if x != nil { 4606 return x.RequestedOptions 4607 } 4608 return nil 4609} 4610 4611type isAnalyzeDataSourceRiskDetails_Result interface { 4612 isAnalyzeDataSourceRiskDetails_Result() 4613} 4614 4615type AnalyzeDataSourceRiskDetails_NumericalStatsResult_ struct { 4616 // Numerical stats result 4617 NumericalStatsResult *AnalyzeDataSourceRiskDetails_NumericalStatsResult `protobuf:"bytes,3,opt,name=numerical_stats_result,json=numericalStatsResult,proto3,oneof"` 4618} 4619 4620type AnalyzeDataSourceRiskDetails_CategoricalStatsResult_ struct { 4621 // Categorical stats result 4622 CategoricalStatsResult *AnalyzeDataSourceRiskDetails_CategoricalStatsResult `protobuf:"bytes,4,opt,name=categorical_stats_result,json=categoricalStatsResult,proto3,oneof"` 4623} 4624 4625type AnalyzeDataSourceRiskDetails_KAnonymityResult_ struct { 4626 // K-anonymity result 4627 KAnonymityResult *AnalyzeDataSourceRiskDetails_KAnonymityResult `protobuf:"bytes,5,opt,name=k_anonymity_result,json=kAnonymityResult,proto3,oneof"` 4628} 4629 4630type AnalyzeDataSourceRiskDetails_LDiversityResult_ struct { 4631 // L-divesity result 4632 LDiversityResult *AnalyzeDataSourceRiskDetails_LDiversityResult `protobuf:"bytes,6,opt,name=l_diversity_result,json=lDiversityResult,proto3,oneof"` 4633} 4634 4635type AnalyzeDataSourceRiskDetails_KMapEstimationResult_ struct { 4636 // K-map result 4637 KMapEstimationResult *AnalyzeDataSourceRiskDetails_KMapEstimationResult `protobuf:"bytes,7,opt,name=k_map_estimation_result,json=kMapEstimationResult,proto3,oneof"` 4638} 4639 4640type AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_ struct { 4641 // Delta-presence result 4642 DeltaPresenceEstimationResult *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult `protobuf:"bytes,9,opt,name=delta_presence_estimation_result,json=deltaPresenceEstimationResult,proto3,oneof"` 4643} 4644 4645func (*AnalyzeDataSourceRiskDetails_NumericalStatsResult_) isAnalyzeDataSourceRiskDetails_Result() {} 4646 4647func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_) isAnalyzeDataSourceRiskDetails_Result() { 4648} 4649 4650func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_) isAnalyzeDataSourceRiskDetails_Result() {} 4651 4652func (*AnalyzeDataSourceRiskDetails_LDiversityResult_) isAnalyzeDataSourceRiskDetails_Result() {} 4653 4654func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_) isAnalyzeDataSourceRiskDetails_Result() {} 4655 4656func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_) isAnalyzeDataSourceRiskDetails_Result() { 4657} 4658 4659// A value of a field, including its frequency. 4660type ValueFrequency struct { 4661 state protoimpl.MessageState 4662 sizeCache protoimpl.SizeCache 4663 unknownFields protoimpl.UnknownFields 4664 4665 // A value contained in the field in question. 4666 Value *Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` 4667 // How many times the value is contained in the field. 4668 Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` 4669} 4670 4671func (x *ValueFrequency) Reset() { 4672 *x = ValueFrequency{} 4673 if protoimpl.UnsafeEnabled { 4674 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[42] 4675 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4676 ms.StoreMessageInfo(mi) 4677 } 4678} 4679 4680func (x *ValueFrequency) String() string { 4681 return protoimpl.X.MessageStringOf(x) 4682} 4683 4684func (*ValueFrequency) ProtoMessage() {} 4685 4686func (x *ValueFrequency) ProtoReflect() protoreflect.Message { 4687 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[42] 4688 if protoimpl.UnsafeEnabled && x != nil { 4689 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4690 if ms.LoadMessageInfo() == nil { 4691 ms.StoreMessageInfo(mi) 4692 } 4693 return ms 4694 } 4695 return mi.MessageOf(x) 4696} 4697 4698// Deprecated: Use ValueFrequency.ProtoReflect.Descriptor instead. 4699func (*ValueFrequency) Descriptor() ([]byte, []int) { 4700 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{42} 4701} 4702 4703func (x *ValueFrequency) GetValue() *Value { 4704 if x != nil { 4705 return x.Value 4706 } 4707 return nil 4708} 4709 4710func (x *ValueFrequency) GetCount() int64 { 4711 if x != nil { 4712 return x.Count 4713 } 4714 return 0 4715} 4716 4717// Set of primitive values supported by the system. 4718// Note that for the purposes of inspection or transformation, the number 4719// of bytes considered to comprise a 'Value' is based on its representation 4720// as a UTF-8 encoded string. For example, if 'integer_value' is set to 4721// 123456789, the number of bytes would be counted as 9, even though an 4722// int64 only holds up to 8 bytes of data. 4723type Value struct { 4724 state protoimpl.MessageState 4725 sizeCache protoimpl.SizeCache 4726 unknownFields protoimpl.UnknownFields 4727 4728 // Value types 4729 // 4730 // Types that are assignable to Type: 4731 // *Value_IntegerValue 4732 // *Value_FloatValue 4733 // *Value_StringValue 4734 // *Value_BooleanValue 4735 // *Value_TimestampValue 4736 // *Value_TimeValue 4737 // *Value_DateValue 4738 // *Value_DayOfWeekValue 4739 Type isValue_Type `protobuf_oneof:"type"` 4740} 4741 4742func (x *Value) Reset() { 4743 *x = Value{} 4744 if protoimpl.UnsafeEnabled { 4745 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[43] 4746 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4747 ms.StoreMessageInfo(mi) 4748 } 4749} 4750 4751func (x *Value) String() string { 4752 return protoimpl.X.MessageStringOf(x) 4753} 4754 4755func (*Value) ProtoMessage() {} 4756 4757func (x *Value) ProtoReflect() protoreflect.Message { 4758 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[43] 4759 if protoimpl.UnsafeEnabled && x != nil { 4760 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4761 if ms.LoadMessageInfo() == nil { 4762 ms.StoreMessageInfo(mi) 4763 } 4764 return ms 4765 } 4766 return mi.MessageOf(x) 4767} 4768 4769// Deprecated: Use Value.ProtoReflect.Descriptor instead. 4770func (*Value) Descriptor() ([]byte, []int) { 4771 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{43} 4772} 4773 4774func (m *Value) GetType() isValue_Type { 4775 if m != nil { 4776 return m.Type 4777 } 4778 return nil 4779} 4780 4781func (x *Value) GetIntegerValue() int64 { 4782 if x, ok := x.GetType().(*Value_IntegerValue); ok { 4783 return x.IntegerValue 4784 } 4785 return 0 4786} 4787 4788func (x *Value) GetFloatValue() float64 { 4789 if x, ok := x.GetType().(*Value_FloatValue); ok { 4790 return x.FloatValue 4791 } 4792 return 0 4793} 4794 4795func (x *Value) GetStringValue() string { 4796 if x, ok := x.GetType().(*Value_StringValue); ok { 4797 return x.StringValue 4798 } 4799 return "" 4800} 4801 4802func (x *Value) GetBooleanValue() bool { 4803 if x, ok := x.GetType().(*Value_BooleanValue); ok { 4804 return x.BooleanValue 4805 } 4806 return false 4807} 4808 4809func (x *Value) GetTimestampValue() *timestamppb.Timestamp { 4810 if x, ok := x.GetType().(*Value_TimestampValue); ok { 4811 return x.TimestampValue 4812 } 4813 return nil 4814} 4815 4816func (x *Value) GetTimeValue() *timeofday.TimeOfDay { 4817 if x, ok := x.GetType().(*Value_TimeValue); ok { 4818 return x.TimeValue 4819 } 4820 return nil 4821} 4822 4823func (x *Value) GetDateValue() *date.Date { 4824 if x, ok := x.GetType().(*Value_DateValue); ok { 4825 return x.DateValue 4826 } 4827 return nil 4828} 4829 4830func (x *Value) GetDayOfWeekValue() dayofweek.DayOfWeek { 4831 if x, ok := x.GetType().(*Value_DayOfWeekValue); ok { 4832 return x.DayOfWeekValue 4833 } 4834 return dayofweek.DayOfWeek_DAY_OF_WEEK_UNSPECIFIED 4835} 4836 4837type isValue_Type interface { 4838 isValue_Type() 4839} 4840 4841type Value_IntegerValue struct { 4842 // integer 4843 IntegerValue int64 `protobuf:"varint,1,opt,name=integer_value,json=integerValue,proto3,oneof"` 4844} 4845 4846type Value_FloatValue struct { 4847 // float 4848 FloatValue float64 `protobuf:"fixed64,2,opt,name=float_value,json=floatValue,proto3,oneof"` 4849} 4850 4851type Value_StringValue struct { 4852 // string 4853 StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof"` 4854} 4855 4856type Value_BooleanValue struct { 4857 // boolean 4858 BooleanValue bool `protobuf:"varint,4,opt,name=boolean_value,json=booleanValue,proto3,oneof"` 4859} 4860 4861type Value_TimestampValue struct { 4862 // timestamp 4863 TimestampValue *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=timestamp_value,json=timestampValue,proto3,oneof"` 4864} 4865 4866type Value_TimeValue struct { 4867 // time of day 4868 TimeValue *timeofday.TimeOfDay `protobuf:"bytes,6,opt,name=time_value,json=timeValue,proto3,oneof"` 4869} 4870 4871type Value_DateValue struct { 4872 // date 4873 DateValue *date.Date `protobuf:"bytes,7,opt,name=date_value,json=dateValue,proto3,oneof"` 4874} 4875 4876type Value_DayOfWeekValue struct { 4877 // day of week 4878 DayOfWeekValue dayofweek.DayOfWeek `protobuf:"varint,8,opt,name=day_of_week_value,json=dayOfWeekValue,proto3,enum=google.type.DayOfWeek,oneof"` 4879} 4880 4881func (*Value_IntegerValue) isValue_Type() {} 4882 4883func (*Value_FloatValue) isValue_Type() {} 4884 4885func (*Value_StringValue) isValue_Type() {} 4886 4887func (*Value_BooleanValue) isValue_Type() {} 4888 4889func (*Value_TimestampValue) isValue_Type() {} 4890 4891func (*Value_TimeValue) isValue_Type() {} 4892 4893func (*Value_DateValue) isValue_Type() {} 4894 4895func (*Value_DayOfWeekValue) isValue_Type() {} 4896 4897// Message for infoType-dependent details parsed from quote. 4898type QuoteInfo struct { 4899 state protoimpl.MessageState 4900 sizeCache protoimpl.SizeCache 4901 unknownFields protoimpl.UnknownFields 4902 4903 // Object representation of the quote. 4904 // 4905 // Types that are assignable to ParsedQuote: 4906 // *QuoteInfo_DateTime 4907 ParsedQuote isQuoteInfo_ParsedQuote `protobuf_oneof:"parsed_quote"` 4908} 4909 4910func (x *QuoteInfo) Reset() { 4911 *x = QuoteInfo{} 4912 if protoimpl.UnsafeEnabled { 4913 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[44] 4914 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4915 ms.StoreMessageInfo(mi) 4916 } 4917} 4918 4919func (x *QuoteInfo) String() string { 4920 return protoimpl.X.MessageStringOf(x) 4921} 4922 4923func (*QuoteInfo) ProtoMessage() {} 4924 4925func (x *QuoteInfo) ProtoReflect() protoreflect.Message { 4926 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[44] 4927 if protoimpl.UnsafeEnabled && x != nil { 4928 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4929 if ms.LoadMessageInfo() == nil { 4930 ms.StoreMessageInfo(mi) 4931 } 4932 return ms 4933 } 4934 return mi.MessageOf(x) 4935} 4936 4937// Deprecated: Use QuoteInfo.ProtoReflect.Descriptor instead. 4938func (*QuoteInfo) Descriptor() ([]byte, []int) { 4939 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{44} 4940} 4941 4942func (m *QuoteInfo) GetParsedQuote() isQuoteInfo_ParsedQuote { 4943 if m != nil { 4944 return m.ParsedQuote 4945 } 4946 return nil 4947} 4948 4949func (x *QuoteInfo) GetDateTime() *DateTime { 4950 if x, ok := x.GetParsedQuote().(*QuoteInfo_DateTime); ok { 4951 return x.DateTime 4952 } 4953 return nil 4954} 4955 4956type isQuoteInfo_ParsedQuote interface { 4957 isQuoteInfo_ParsedQuote() 4958} 4959 4960type QuoteInfo_DateTime struct { 4961 // The date time indicated by the quote. 4962 DateTime *DateTime `protobuf:"bytes,2,opt,name=date_time,json=dateTime,proto3,oneof"` 4963} 4964 4965func (*QuoteInfo_DateTime) isQuoteInfo_ParsedQuote() {} 4966 4967// Message for a date time object. 4968// e.g. 2018-01-01, 5th August. 4969type DateTime struct { 4970 state protoimpl.MessageState 4971 sizeCache protoimpl.SizeCache 4972 unknownFields protoimpl.UnknownFields 4973 4974 // One or more of the following must be set. 4975 // Must be a valid date or time value. 4976 Date *date.Date `protobuf:"bytes,1,opt,name=date,proto3" json:"date,omitempty"` 4977 // Day of week 4978 DayOfWeek dayofweek.DayOfWeek `protobuf:"varint,2,opt,name=day_of_week,json=dayOfWeek,proto3,enum=google.type.DayOfWeek" json:"day_of_week,omitempty"` 4979 // Time of day 4980 Time *timeofday.TimeOfDay `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"` 4981 // Time zone 4982 TimeZone *DateTime_TimeZone `protobuf:"bytes,4,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"` 4983} 4984 4985func (x *DateTime) Reset() { 4986 *x = DateTime{} 4987 if protoimpl.UnsafeEnabled { 4988 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[45] 4989 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4990 ms.StoreMessageInfo(mi) 4991 } 4992} 4993 4994func (x *DateTime) String() string { 4995 return protoimpl.X.MessageStringOf(x) 4996} 4997 4998func (*DateTime) ProtoMessage() {} 4999 5000func (x *DateTime) ProtoReflect() protoreflect.Message { 5001 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[45] 5002 if protoimpl.UnsafeEnabled && x != nil { 5003 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5004 if ms.LoadMessageInfo() == nil { 5005 ms.StoreMessageInfo(mi) 5006 } 5007 return ms 5008 } 5009 return mi.MessageOf(x) 5010} 5011 5012// Deprecated: Use DateTime.ProtoReflect.Descriptor instead. 5013func (*DateTime) Descriptor() ([]byte, []int) { 5014 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{45} 5015} 5016 5017func (x *DateTime) GetDate() *date.Date { 5018 if x != nil { 5019 return x.Date 5020 } 5021 return nil 5022} 5023 5024func (x *DateTime) GetDayOfWeek() dayofweek.DayOfWeek { 5025 if x != nil { 5026 return x.DayOfWeek 5027 } 5028 return dayofweek.DayOfWeek_DAY_OF_WEEK_UNSPECIFIED 5029} 5030 5031func (x *DateTime) GetTime() *timeofday.TimeOfDay { 5032 if x != nil { 5033 return x.Time 5034 } 5035 return nil 5036} 5037 5038func (x *DateTime) GetTimeZone() *DateTime_TimeZone { 5039 if x != nil { 5040 return x.TimeZone 5041 } 5042 return nil 5043} 5044 5045// The configuration that controls how the data will change. 5046type DeidentifyConfig struct { 5047 state protoimpl.MessageState 5048 sizeCache protoimpl.SizeCache 5049 unknownFields protoimpl.UnknownFields 5050 5051 // Types that are assignable to Transformation: 5052 // *DeidentifyConfig_InfoTypeTransformations 5053 // *DeidentifyConfig_RecordTransformations 5054 Transformation isDeidentifyConfig_Transformation `protobuf_oneof:"transformation"` 5055 // Mode for handling transformation errors. If left unspecified, the default 5056 // mode is `TransformationErrorHandling.ThrowError`. 5057 TransformationErrorHandling *TransformationErrorHandling `protobuf:"bytes,3,opt,name=transformation_error_handling,json=transformationErrorHandling,proto3" json:"transformation_error_handling,omitempty"` 5058} 5059 5060func (x *DeidentifyConfig) Reset() { 5061 *x = DeidentifyConfig{} 5062 if protoimpl.UnsafeEnabled { 5063 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[46] 5064 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5065 ms.StoreMessageInfo(mi) 5066 } 5067} 5068 5069func (x *DeidentifyConfig) String() string { 5070 return protoimpl.X.MessageStringOf(x) 5071} 5072 5073func (*DeidentifyConfig) ProtoMessage() {} 5074 5075func (x *DeidentifyConfig) ProtoReflect() protoreflect.Message { 5076 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[46] 5077 if protoimpl.UnsafeEnabled && x != nil { 5078 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5079 if ms.LoadMessageInfo() == nil { 5080 ms.StoreMessageInfo(mi) 5081 } 5082 return ms 5083 } 5084 return mi.MessageOf(x) 5085} 5086 5087// Deprecated: Use DeidentifyConfig.ProtoReflect.Descriptor instead. 5088func (*DeidentifyConfig) Descriptor() ([]byte, []int) { 5089 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{46} 5090} 5091 5092func (m *DeidentifyConfig) GetTransformation() isDeidentifyConfig_Transformation { 5093 if m != nil { 5094 return m.Transformation 5095 } 5096 return nil 5097} 5098 5099func (x *DeidentifyConfig) GetInfoTypeTransformations() *InfoTypeTransformations { 5100 if x, ok := x.GetTransformation().(*DeidentifyConfig_InfoTypeTransformations); ok { 5101 return x.InfoTypeTransformations 5102 } 5103 return nil 5104} 5105 5106func (x *DeidentifyConfig) GetRecordTransformations() *RecordTransformations { 5107 if x, ok := x.GetTransformation().(*DeidentifyConfig_RecordTransformations); ok { 5108 return x.RecordTransformations 5109 } 5110 return nil 5111} 5112 5113func (x *DeidentifyConfig) GetTransformationErrorHandling() *TransformationErrorHandling { 5114 if x != nil { 5115 return x.TransformationErrorHandling 5116 } 5117 return nil 5118} 5119 5120type isDeidentifyConfig_Transformation interface { 5121 isDeidentifyConfig_Transformation() 5122} 5123 5124type DeidentifyConfig_InfoTypeTransformations struct { 5125 // Treat the dataset as free-form text and apply the same free text 5126 // transformation everywhere. 5127 InfoTypeTransformations *InfoTypeTransformations `protobuf:"bytes,1,opt,name=info_type_transformations,json=infoTypeTransformations,proto3,oneof"` 5128} 5129 5130type DeidentifyConfig_RecordTransformations struct { 5131 // Treat the dataset as structured. Transformations can be applied to 5132 // specific locations within structured datasets, such as transforming 5133 // a column within a table. 5134 RecordTransformations *RecordTransformations `protobuf:"bytes,2,opt,name=record_transformations,json=recordTransformations,proto3,oneof"` 5135} 5136 5137func (*DeidentifyConfig_InfoTypeTransformations) isDeidentifyConfig_Transformation() {} 5138 5139func (*DeidentifyConfig_RecordTransformations) isDeidentifyConfig_Transformation() {} 5140 5141// How to handle transformation errors during de-identification. A 5142// transformation error occurs when the requested transformation is incompatible 5143// with the data. For example, trying to de-identify an IP address using a 5144// `DateShift` transformation would result in a transformation error, since date 5145// info cannot be extracted from an IP address. 5146// Information about any incompatible transformations, and how they were 5147// handled, is returned in the response as part of the 5148// `TransformationOverviews`. 5149type TransformationErrorHandling struct { 5150 state protoimpl.MessageState 5151 sizeCache protoimpl.SizeCache 5152 unknownFields protoimpl.UnknownFields 5153 5154 // How transformation errors should be handled. 5155 // 5156 // Types that are assignable to Mode: 5157 // *TransformationErrorHandling_ThrowError_ 5158 // *TransformationErrorHandling_LeaveUntransformed_ 5159 Mode isTransformationErrorHandling_Mode `protobuf_oneof:"mode"` 5160} 5161 5162func (x *TransformationErrorHandling) Reset() { 5163 *x = TransformationErrorHandling{} 5164 if protoimpl.UnsafeEnabled { 5165 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[47] 5166 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5167 ms.StoreMessageInfo(mi) 5168 } 5169} 5170 5171func (x *TransformationErrorHandling) String() string { 5172 return protoimpl.X.MessageStringOf(x) 5173} 5174 5175func (*TransformationErrorHandling) ProtoMessage() {} 5176 5177func (x *TransformationErrorHandling) ProtoReflect() protoreflect.Message { 5178 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[47] 5179 if protoimpl.UnsafeEnabled && x != nil { 5180 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5181 if ms.LoadMessageInfo() == nil { 5182 ms.StoreMessageInfo(mi) 5183 } 5184 return ms 5185 } 5186 return mi.MessageOf(x) 5187} 5188 5189// Deprecated: Use TransformationErrorHandling.ProtoReflect.Descriptor instead. 5190func (*TransformationErrorHandling) Descriptor() ([]byte, []int) { 5191 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{47} 5192} 5193 5194func (m *TransformationErrorHandling) GetMode() isTransformationErrorHandling_Mode { 5195 if m != nil { 5196 return m.Mode 5197 } 5198 return nil 5199} 5200 5201func (x *TransformationErrorHandling) GetThrowError() *TransformationErrorHandling_ThrowError { 5202 if x, ok := x.GetMode().(*TransformationErrorHandling_ThrowError_); ok { 5203 return x.ThrowError 5204 } 5205 return nil 5206} 5207 5208func (x *TransformationErrorHandling) GetLeaveUntransformed() *TransformationErrorHandling_LeaveUntransformed { 5209 if x, ok := x.GetMode().(*TransformationErrorHandling_LeaveUntransformed_); ok { 5210 return x.LeaveUntransformed 5211 } 5212 return nil 5213} 5214 5215type isTransformationErrorHandling_Mode interface { 5216 isTransformationErrorHandling_Mode() 5217} 5218 5219type TransformationErrorHandling_ThrowError_ struct { 5220 // Throw an error 5221 ThrowError *TransformationErrorHandling_ThrowError `protobuf:"bytes,1,opt,name=throw_error,json=throwError,proto3,oneof"` 5222} 5223 5224type TransformationErrorHandling_LeaveUntransformed_ struct { 5225 // Ignore errors 5226 LeaveUntransformed *TransformationErrorHandling_LeaveUntransformed `protobuf:"bytes,2,opt,name=leave_untransformed,json=leaveUntransformed,proto3,oneof"` 5227} 5228 5229func (*TransformationErrorHandling_ThrowError_) isTransformationErrorHandling_Mode() {} 5230 5231func (*TransformationErrorHandling_LeaveUntransformed_) isTransformationErrorHandling_Mode() {} 5232 5233// A rule for transforming a value. 5234type PrimitiveTransformation struct { 5235 state protoimpl.MessageState 5236 sizeCache protoimpl.SizeCache 5237 unknownFields protoimpl.UnknownFields 5238 5239 // Types that are assignable to Transformation: 5240 // *PrimitiveTransformation_ReplaceConfig 5241 // *PrimitiveTransformation_RedactConfig 5242 // *PrimitiveTransformation_CharacterMaskConfig 5243 // *PrimitiveTransformation_CryptoReplaceFfxFpeConfig 5244 // *PrimitiveTransformation_FixedSizeBucketingConfig 5245 // *PrimitiveTransformation_BucketingConfig 5246 // *PrimitiveTransformation_ReplaceWithInfoTypeConfig 5247 // *PrimitiveTransformation_TimePartConfig 5248 // *PrimitiveTransformation_CryptoHashConfig 5249 // *PrimitiveTransformation_DateShiftConfig 5250 // *PrimitiveTransformation_CryptoDeterministicConfig 5251 Transformation isPrimitiveTransformation_Transformation `protobuf_oneof:"transformation"` 5252} 5253 5254func (x *PrimitiveTransformation) Reset() { 5255 *x = PrimitiveTransformation{} 5256 if protoimpl.UnsafeEnabled { 5257 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[48] 5258 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5259 ms.StoreMessageInfo(mi) 5260 } 5261} 5262 5263func (x *PrimitiveTransformation) String() string { 5264 return protoimpl.X.MessageStringOf(x) 5265} 5266 5267func (*PrimitiveTransformation) ProtoMessage() {} 5268 5269func (x *PrimitiveTransformation) ProtoReflect() protoreflect.Message { 5270 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[48] 5271 if protoimpl.UnsafeEnabled && x != nil { 5272 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5273 if ms.LoadMessageInfo() == nil { 5274 ms.StoreMessageInfo(mi) 5275 } 5276 return ms 5277 } 5278 return mi.MessageOf(x) 5279} 5280 5281// Deprecated: Use PrimitiveTransformation.ProtoReflect.Descriptor instead. 5282func (*PrimitiveTransformation) Descriptor() ([]byte, []int) { 5283 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{48} 5284} 5285 5286func (m *PrimitiveTransformation) GetTransformation() isPrimitiveTransformation_Transformation { 5287 if m != nil { 5288 return m.Transformation 5289 } 5290 return nil 5291} 5292 5293func (x *PrimitiveTransformation) GetReplaceConfig() *ReplaceValueConfig { 5294 if x, ok := x.GetTransformation().(*PrimitiveTransformation_ReplaceConfig); ok { 5295 return x.ReplaceConfig 5296 } 5297 return nil 5298} 5299 5300func (x *PrimitiveTransformation) GetRedactConfig() *RedactConfig { 5301 if x, ok := x.GetTransformation().(*PrimitiveTransformation_RedactConfig); ok { 5302 return x.RedactConfig 5303 } 5304 return nil 5305} 5306 5307func (x *PrimitiveTransformation) GetCharacterMaskConfig() *CharacterMaskConfig { 5308 if x, ok := x.GetTransformation().(*PrimitiveTransformation_CharacterMaskConfig); ok { 5309 return x.CharacterMaskConfig 5310 } 5311 return nil 5312} 5313 5314func (x *PrimitiveTransformation) GetCryptoReplaceFfxFpeConfig() *CryptoReplaceFfxFpeConfig { 5315 if x, ok := x.GetTransformation().(*PrimitiveTransformation_CryptoReplaceFfxFpeConfig); ok { 5316 return x.CryptoReplaceFfxFpeConfig 5317 } 5318 return nil 5319} 5320 5321func (x *PrimitiveTransformation) GetFixedSizeBucketingConfig() *FixedSizeBucketingConfig { 5322 if x, ok := x.GetTransformation().(*PrimitiveTransformation_FixedSizeBucketingConfig); ok { 5323 return x.FixedSizeBucketingConfig 5324 } 5325 return nil 5326} 5327 5328func (x *PrimitiveTransformation) GetBucketingConfig() *BucketingConfig { 5329 if x, ok := x.GetTransformation().(*PrimitiveTransformation_BucketingConfig); ok { 5330 return x.BucketingConfig 5331 } 5332 return nil 5333} 5334 5335func (x *PrimitiveTransformation) GetReplaceWithInfoTypeConfig() *ReplaceWithInfoTypeConfig { 5336 if x, ok := x.GetTransformation().(*PrimitiveTransformation_ReplaceWithInfoTypeConfig); ok { 5337 return x.ReplaceWithInfoTypeConfig 5338 } 5339 return nil 5340} 5341 5342func (x *PrimitiveTransformation) GetTimePartConfig() *TimePartConfig { 5343 if x, ok := x.GetTransformation().(*PrimitiveTransformation_TimePartConfig); ok { 5344 return x.TimePartConfig 5345 } 5346 return nil 5347} 5348 5349func (x *PrimitiveTransformation) GetCryptoHashConfig() *CryptoHashConfig { 5350 if x, ok := x.GetTransformation().(*PrimitiveTransformation_CryptoHashConfig); ok { 5351 return x.CryptoHashConfig 5352 } 5353 return nil 5354} 5355 5356func (x *PrimitiveTransformation) GetDateShiftConfig() *DateShiftConfig { 5357 if x, ok := x.GetTransformation().(*PrimitiveTransformation_DateShiftConfig); ok { 5358 return x.DateShiftConfig 5359 } 5360 return nil 5361} 5362 5363func (x *PrimitiveTransformation) GetCryptoDeterministicConfig() *CryptoDeterministicConfig { 5364 if x, ok := x.GetTransformation().(*PrimitiveTransformation_CryptoDeterministicConfig); ok { 5365 return x.CryptoDeterministicConfig 5366 } 5367 return nil 5368} 5369 5370type isPrimitiveTransformation_Transformation interface { 5371 isPrimitiveTransformation_Transformation() 5372} 5373 5374type PrimitiveTransformation_ReplaceConfig struct { 5375 // Replace 5376 ReplaceConfig *ReplaceValueConfig `protobuf:"bytes,1,opt,name=replace_config,json=replaceConfig,proto3,oneof"` 5377} 5378 5379type PrimitiveTransformation_RedactConfig struct { 5380 // Redact 5381 RedactConfig *RedactConfig `protobuf:"bytes,2,opt,name=redact_config,json=redactConfig,proto3,oneof"` 5382} 5383 5384type PrimitiveTransformation_CharacterMaskConfig struct { 5385 // Mask 5386 CharacterMaskConfig *CharacterMaskConfig `protobuf:"bytes,3,opt,name=character_mask_config,json=characterMaskConfig,proto3,oneof"` 5387} 5388 5389type PrimitiveTransformation_CryptoReplaceFfxFpeConfig struct { 5390 // Ffx-Fpe 5391 CryptoReplaceFfxFpeConfig *CryptoReplaceFfxFpeConfig `protobuf:"bytes,4,opt,name=crypto_replace_ffx_fpe_config,json=cryptoReplaceFfxFpeConfig,proto3,oneof"` 5392} 5393 5394type PrimitiveTransformation_FixedSizeBucketingConfig struct { 5395 // Fixed size bucketing 5396 FixedSizeBucketingConfig *FixedSizeBucketingConfig `protobuf:"bytes,5,opt,name=fixed_size_bucketing_config,json=fixedSizeBucketingConfig,proto3,oneof"` 5397} 5398 5399type PrimitiveTransformation_BucketingConfig struct { 5400 // Bucketing 5401 BucketingConfig *BucketingConfig `protobuf:"bytes,6,opt,name=bucketing_config,json=bucketingConfig,proto3,oneof"` 5402} 5403 5404type PrimitiveTransformation_ReplaceWithInfoTypeConfig struct { 5405 // Replace with infotype 5406 ReplaceWithInfoTypeConfig *ReplaceWithInfoTypeConfig `protobuf:"bytes,7,opt,name=replace_with_info_type_config,json=replaceWithInfoTypeConfig,proto3,oneof"` 5407} 5408 5409type PrimitiveTransformation_TimePartConfig struct { 5410 // Time extraction 5411 TimePartConfig *TimePartConfig `protobuf:"bytes,8,opt,name=time_part_config,json=timePartConfig,proto3,oneof"` 5412} 5413 5414type PrimitiveTransformation_CryptoHashConfig struct { 5415 // Crypto 5416 CryptoHashConfig *CryptoHashConfig `protobuf:"bytes,9,opt,name=crypto_hash_config,json=cryptoHashConfig,proto3,oneof"` 5417} 5418 5419type PrimitiveTransformation_DateShiftConfig struct { 5420 // Date Shift 5421 DateShiftConfig *DateShiftConfig `protobuf:"bytes,11,opt,name=date_shift_config,json=dateShiftConfig,proto3,oneof"` 5422} 5423 5424type PrimitiveTransformation_CryptoDeterministicConfig struct { 5425 // Deterministic Crypto 5426 CryptoDeterministicConfig *CryptoDeterministicConfig `protobuf:"bytes,12,opt,name=crypto_deterministic_config,json=cryptoDeterministicConfig,proto3,oneof"` 5427} 5428 5429func (*PrimitiveTransformation_ReplaceConfig) isPrimitiveTransformation_Transformation() {} 5430 5431func (*PrimitiveTransformation_RedactConfig) isPrimitiveTransformation_Transformation() {} 5432 5433func (*PrimitiveTransformation_CharacterMaskConfig) isPrimitiveTransformation_Transformation() {} 5434 5435func (*PrimitiveTransformation_CryptoReplaceFfxFpeConfig) isPrimitiveTransformation_Transformation() { 5436} 5437 5438func (*PrimitiveTransformation_FixedSizeBucketingConfig) isPrimitiveTransformation_Transformation() {} 5439 5440func (*PrimitiveTransformation_BucketingConfig) isPrimitiveTransformation_Transformation() {} 5441 5442func (*PrimitiveTransformation_ReplaceWithInfoTypeConfig) isPrimitiveTransformation_Transformation() { 5443} 5444 5445func (*PrimitiveTransformation_TimePartConfig) isPrimitiveTransformation_Transformation() {} 5446 5447func (*PrimitiveTransformation_CryptoHashConfig) isPrimitiveTransformation_Transformation() {} 5448 5449func (*PrimitiveTransformation_DateShiftConfig) isPrimitiveTransformation_Transformation() {} 5450 5451func (*PrimitiveTransformation_CryptoDeterministicConfig) isPrimitiveTransformation_Transformation() { 5452} 5453 5454// For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a 5455// portion of the value. 5456type TimePartConfig struct { 5457 state protoimpl.MessageState 5458 sizeCache protoimpl.SizeCache 5459 unknownFields protoimpl.UnknownFields 5460 5461 // The part of the time to keep. 5462 PartToExtract TimePartConfig_TimePart `protobuf:"varint,1,opt,name=part_to_extract,json=partToExtract,proto3,enum=google.privacy.dlp.v2.TimePartConfig_TimePart" json:"part_to_extract,omitempty"` 5463} 5464 5465func (x *TimePartConfig) Reset() { 5466 *x = TimePartConfig{} 5467 if protoimpl.UnsafeEnabled { 5468 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[49] 5469 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5470 ms.StoreMessageInfo(mi) 5471 } 5472} 5473 5474func (x *TimePartConfig) String() string { 5475 return protoimpl.X.MessageStringOf(x) 5476} 5477 5478func (*TimePartConfig) ProtoMessage() {} 5479 5480func (x *TimePartConfig) ProtoReflect() protoreflect.Message { 5481 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[49] 5482 if protoimpl.UnsafeEnabled && x != nil { 5483 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5484 if ms.LoadMessageInfo() == nil { 5485 ms.StoreMessageInfo(mi) 5486 } 5487 return ms 5488 } 5489 return mi.MessageOf(x) 5490} 5491 5492// Deprecated: Use TimePartConfig.ProtoReflect.Descriptor instead. 5493func (*TimePartConfig) Descriptor() ([]byte, []int) { 5494 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{49} 5495} 5496 5497func (x *TimePartConfig) GetPartToExtract() TimePartConfig_TimePart { 5498 if x != nil { 5499 return x.PartToExtract 5500 } 5501 return TimePartConfig_TIME_PART_UNSPECIFIED 5502} 5503 5504// Pseudonymization method that generates surrogates via cryptographic hashing. 5505// Uses SHA-256. 5506// The key size must be either 32 or 64 bytes. 5507// Outputs a base64 encoded representation of the hashed output 5508// (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). 5509// Currently, only string and integer values can be hashed. 5510// See https://cloud.google.com/dlp/docs/pseudonymization to learn more. 5511type CryptoHashConfig struct { 5512 state protoimpl.MessageState 5513 sizeCache protoimpl.SizeCache 5514 unknownFields protoimpl.UnknownFields 5515 5516 // The key used by the hash function. 5517 CryptoKey *CryptoKey `protobuf:"bytes,1,opt,name=crypto_key,json=cryptoKey,proto3" json:"crypto_key,omitempty"` 5518} 5519 5520func (x *CryptoHashConfig) Reset() { 5521 *x = CryptoHashConfig{} 5522 if protoimpl.UnsafeEnabled { 5523 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[50] 5524 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5525 ms.StoreMessageInfo(mi) 5526 } 5527} 5528 5529func (x *CryptoHashConfig) String() string { 5530 return protoimpl.X.MessageStringOf(x) 5531} 5532 5533func (*CryptoHashConfig) ProtoMessage() {} 5534 5535func (x *CryptoHashConfig) ProtoReflect() protoreflect.Message { 5536 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[50] 5537 if protoimpl.UnsafeEnabled && x != nil { 5538 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5539 if ms.LoadMessageInfo() == nil { 5540 ms.StoreMessageInfo(mi) 5541 } 5542 return ms 5543 } 5544 return mi.MessageOf(x) 5545} 5546 5547// Deprecated: Use CryptoHashConfig.ProtoReflect.Descriptor instead. 5548func (*CryptoHashConfig) Descriptor() ([]byte, []int) { 5549 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{50} 5550} 5551 5552func (x *CryptoHashConfig) GetCryptoKey() *CryptoKey { 5553 if x != nil { 5554 return x.CryptoKey 5555 } 5556 return nil 5557} 5558 5559// Pseudonymization method that generates deterministic encryption for the given 5560// input. Outputs a base64 encoded representation of the encrypted output. 5561// Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. 5562type CryptoDeterministicConfig struct { 5563 state protoimpl.MessageState 5564 sizeCache protoimpl.SizeCache 5565 unknownFields protoimpl.UnknownFields 5566 5567 // The key used by the encryption function. 5568 CryptoKey *CryptoKey `protobuf:"bytes,1,opt,name=crypto_key,json=cryptoKey,proto3" json:"crypto_key,omitempty"` 5569 // The custom info type to annotate the surrogate with. 5570 // This annotation will be applied to the surrogate by prefixing it with 5571 // the name of the custom info type followed by the number of 5572 // characters comprising the surrogate. The following scheme defines the 5573 // format: {info type name}({surrogate character count}):{surrogate} 5574 // 5575 // For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and 5576 // the surrogate is 'abc', the full replacement value 5577 // will be: 'MY_TOKEN_INFO_TYPE(3):abc' 5578 // 5579 // This annotation identifies the surrogate when inspecting content using the 5580 // custom info type 'Surrogate'. This facilitates reversal of the 5581 // surrogate when it occurs in free text. 5582 // 5583 // Note: For record transformations where the entire cell in a table is being 5584 // transformed, surrogates are not mandatory. Surrogates are used to denote 5585 // the location of the token and are necessary for re-identification in free 5586 // form text. 5587 // 5588 // In order for inspection to work properly, the name of this info type must 5589 // not occur naturally anywhere in your data; otherwise, inspection may either 5590 // 5591 // - reverse a surrogate that does not correspond to an actual identifier 5592 // - be unable to parse the surrogate and result in an error 5593 // 5594 // Therefore, choose your custom info type name carefully after considering 5595 // what your data looks like. One way to select a name that has a high chance 5596 // of yielding reliable detection is to include one or more unicode characters 5597 // that are highly improbable to exist in your data. 5598 // For example, assuming your data is entered from a regular ASCII keyboard, 5599 // the symbol with the hex code point 29DD might be used like so: 5600 // ⧝MY_TOKEN_TYPE. 5601 SurrogateInfoType *InfoType `protobuf:"bytes,2,opt,name=surrogate_info_type,json=surrogateInfoType,proto3" json:"surrogate_info_type,omitempty"` 5602 // A context may be used for higher security and maintaining 5603 // referential integrity such that the same identifier in two different 5604 // contexts will be given a distinct surrogate. The context is appended to 5605 // plaintext value being encrypted. On decryption the provided context is 5606 // validated against the value used during encryption. If a context was 5607 // provided during encryption, same context must be provided during decryption 5608 // as well. 5609 // 5610 // If the context is not set, plaintext would be used as is for encryption. 5611 // If the context is set but: 5612 // 5613 // 1. there is no record present when transforming a given value or 5614 // 2. the field is not present when transforming a given value, 5615 // 5616 // plaintext would be used as is for encryption. 5617 // 5618 // Note that case (1) is expected when an `InfoTypeTransformation` is 5619 // applied to both structured and non-structured `ContentItem`s. 5620 Context *FieldId `protobuf:"bytes,3,opt,name=context,proto3" json:"context,omitempty"` 5621} 5622 5623func (x *CryptoDeterministicConfig) Reset() { 5624 *x = CryptoDeterministicConfig{} 5625 if protoimpl.UnsafeEnabled { 5626 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[51] 5627 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5628 ms.StoreMessageInfo(mi) 5629 } 5630} 5631 5632func (x *CryptoDeterministicConfig) String() string { 5633 return protoimpl.X.MessageStringOf(x) 5634} 5635 5636func (*CryptoDeterministicConfig) ProtoMessage() {} 5637 5638func (x *CryptoDeterministicConfig) ProtoReflect() protoreflect.Message { 5639 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[51] 5640 if protoimpl.UnsafeEnabled && x != nil { 5641 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5642 if ms.LoadMessageInfo() == nil { 5643 ms.StoreMessageInfo(mi) 5644 } 5645 return ms 5646 } 5647 return mi.MessageOf(x) 5648} 5649 5650// Deprecated: Use CryptoDeterministicConfig.ProtoReflect.Descriptor instead. 5651func (*CryptoDeterministicConfig) Descriptor() ([]byte, []int) { 5652 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{51} 5653} 5654 5655func (x *CryptoDeterministicConfig) GetCryptoKey() *CryptoKey { 5656 if x != nil { 5657 return x.CryptoKey 5658 } 5659 return nil 5660} 5661 5662func (x *CryptoDeterministicConfig) GetSurrogateInfoType() *InfoType { 5663 if x != nil { 5664 return x.SurrogateInfoType 5665 } 5666 return nil 5667} 5668 5669func (x *CryptoDeterministicConfig) GetContext() *FieldId { 5670 if x != nil { 5671 return x.Context 5672 } 5673 return nil 5674} 5675 5676// Replace each input value with a given `Value`. 5677type ReplaceValueConfig struct { 5678 state protoimpl.MessageState 5679 sizeCache protoimpl.SizeCache 5680 unknownFields protoimpl.UnknownFields 5681 5682 // Value to replace it with. 5683 NewValue *Value `protobuf:"bytes,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` 5684} 5685 5686func (x *ReplaceValueConfig) Reset() { 5687 *x = ReplaceValueConfig{} 5688 if protoimpl.UnsafeEnabled { 5689 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[52] 5690 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5691 ms.StoreMessageInfo(mi) 5692 } 5693} 5694 5695func (x *ReplaceValueConfig) String() string { 5696 return protoimpl.X.MessageStringOf(x) 5697} 5698 5699func (*ReplaceValueConfig) ProtoMessage() {} 5700 5701func (x *ReplaceValueConfig) ProtoReflect() protoreflect.Message { 5702 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[52] 5703 if protoimpl.UnsafeEnabled && x != nil { 5704 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5705 if ms.LoadMessageInfo() == nil { 5706 ms.StoreMessageInfo(mi) 5707 } 5708 return ms 5709 } 5710 return mi.MessageOf(x) 5711} 5712 5713// Deprecated: Use ReplaceValueConfig.ProtoReflect.Descriptor instead. 5714func (*ReplaceValueConfig) Descriptor() ([]byte, []int) { 5715 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{52} 5716} 5717 5718func (x *ReplaceValueConfig) GetNewValue() *Value { 5719 if x != nil { 5720 return x.NewValue 5721 } 5722 return nil 5723} 5724 5725// Replace each matching finding with the name of the info_type. 5726type ReplaceWithInfoTypeConfig struct { 5727 state protoimpl.MessageState 5728 sizeCache protoimpl.SizeCache 5729 unknownFields protoimpl.UnknownFields 5730} 5731 5732func (x *ReplaceWithInfoTypeConfig) Reset() { 5733 *x = ReplaceWithInfoTypeConfig{} 5734 if protoimpl.UnsafeEnabled { 5735 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[53] 5736 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5737 ms.StoreMessageInfo(mi) 5738 } 5739} 5740 5741func (x *ReplaceWithInfoTypeConfig) String() string { 5742 return protoimpl.X.MessageStringOf(x) 5743} 5744 5745func (*ReplaceWithInfoTypeConfig) ProtoMessage() {} 5746 5747func (x *ReplaceWithInfoTypeConfig) ProtoReflect() protoreflect.Message { 5748 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[53] 5749 if protoimpl.UnsafeEnabled && x != nil { 5750 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5751 if ms.LoadMessageInfo() == nil { 5752 ms.StoreMessageInfo(mi) 5753 } 5754 return ms 5755 } 5756 return mi.MessageOf(x) 5757} 5758 5759// Deprecated: Use ReplaceWithInfoTypeConfig.ProtoReflect.Descriptor instead. 5760func (*ReplaceWithInfoTypeConfig) Descriptor() ([]byte, []int) { 5761 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{53} 5762} 5763 5764// Redact a given value. For example, if used with an `InfoTypeTransformation` 5765// transforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the 5766// output would be 'My phone number is '. 5767type RedactConfig struct { 5768 state protoimpl.MessageState 5769 sizeCache protoimpl.SizeCache 5770 unknownFields protoimpl.UnknownFields 5771} 5772 5773func (x *RedactConfig) Reset() { 5774 *x = RedactConfig{} 5775 if protoimpl.UnsafeEnabled { 5776 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[54] 5777 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5778 ms.StoreMessageInfo(mi) 5779 } 5780} 5781 5782func (x *RedactConfig) String() string { 5783 return protoimpl.X.MessageStringOf(x) 5784} 5785 5786func (*RedactConfig) ProtoMessage() {} 5787 5788func (x *RedactConfig) ProtoReflect() protoreflect.Message { 5789 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[54] 5790 if protoimpl.UnsafeEnabled && x != nil { 5791 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5792 if ms.LoadMessageInfo() == nil { 5793 ms.StoreMessageInfo(mi) 5794 } 5795 return ms 5796 } 5797 return mi.MessageOf(x) 5798} 5799 5800// Deprecated: Use RedactConfig.ProtoReflect.Descriptor instead. 5801func (*RedactConfig) Descriptor() ([]byte, []int) { 5802 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{54} 5803} 5804 5805// Characters to skip when doing deidentification of a value. These will be left 5806// alone and skipped. 5807type CharsToIgnore struct { 5808 state protoimpl.MessageState 5809 sizeCache protoimpl.SizeCache 5810 unknownFields protoimpl.UnknownFields 5811 5812 // Types that are assignable to Characters: 5813 // *CharsToIgnore_CharactersToSkip 5814 // *CharsToIgnore_CommonCharactersToIgnore 5815 Characters isCharsToIgnore_Characters `protobuf_oneof:"characters"` 5816} 5817 5818func (x *CharsToIgnore) Reset() { 5819 *x = CharsToIgnore{} 5820 if protoimpl.UnsafeEnabled { 5821 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[55] 5822 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5823 ms.StoreMessageInfo(mi) 5824 } 5825} 5826 5827func (x *CharsToIgnore) String() string { 5828 return protoimpl.X.MessageStringOf(x) 5829} 5830 5831func (*CharsToIgnore) ProtoMessage() {} 5832 5833func (x *CharsToIgnore) ProtoReflect() protoreflect.Message { 5834 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[55] 5835 if protoimpl.UnsafeEnabled && x != nil { 5836 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5837 if ms.LoadMessageInfo() == nil { 5838 ms.StoreMessageInfo(mi) 5839 } 5840 return ms 5841 } 5842 return mi.MessageOf(x) 5843} 5844 5845// Deprecated: Use CharsToIgnore.ProtoReflect.Descriptor instead. 5846func (*CharsToIgnore) Descriptor() ([]byte, []int) { 5847 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{55} 5848} 5849 5850func (m *CharsToIgnore) GetCharacters() isCharsToIgnore_Characters { 5851 if m != nil { 5852 return m.Characters 5853 } 5854 return nil 5855} 5856 5857func (x *CharsToIgnore) GetCharactersToSkip() string { 5858 if x, ok := x.GetCharacters().(*CharsToIgnore_CharactersToSkip); ok { 5859 return x.CharactersToSkip 5860 } 5861 return "" 5862} 5863 5864func (x *CharsToIgnore) GetCommonCharactersToIgnore() CharsToIgnore_CommonCharsToIgnore { 5865 if x, ok := x.GetCharacters().(*CharsToIgnore_CommonCharactersToIgnore); ok { 5866 return x.CommonCharactersToIgnore 5867 } 5868 return CharsToIgnore_COMMON_CHARS_TO_IGNORE_UNSPECIFIED 5869} 5870 5871type isCharsToIgnore_Characters interface { 5872 isCharsToIgnore_Characters() 5873} 5874 5875type CharsToIgnore_CharactersToSkip struct { 5876 // Characters to not transform when masking. 5877 CharactersToSkip string `protobuf:"bytes,1,opt,name=characters_to_skip,json=charactersToSkip,proto3,oneof"` 5878} 5879 5880type CharsToIgnore_CommonCharactersToIgnore struct { 5881 // Common characters to not transform when masking. Useful to avoid removing 5882 // punctuation. 5883 CommonCharactersToIgnore CharsToIgnore_CommonCharsToIgnore `protobuf:"varint,2,opt,name=common_characters_to_ignore,json=commonCharactersToIgnore,proto3,enum=google.privacy.dlp.v2.CharsToIgnore_CommonCharsToIgnore,oneof"` 5884} 5885 5886func (*CharsToIgnore_CharactersToSkip) isCharsToIgnore_Characters() {} 5887 5888func (*CharsToIgnore_CommonCharactersToIgnore) isCharsToIgnore_Characters() {} 5889 5890// Partially mask a string by replacing a given number of characters with a 5891// fixed character. Masking can start from the beginning or end of the string. 5892// This can be used on data of any type (numbers, longs, and so on) and when 5893// de-identifying structured data we'll attempt to preserve the original data's 5894// type. (This allows you to take a long like 123 and modify it to a string like 5895// **3. 5896type CharacterMaskConfig struct { 5897 state protoimpl.MessageState 5898 sizeCache protoimpl.SizeCache 5899 unknownFields protoimpl.UnknownFields 5900 5901 // Character to use to mask the sensitive values—for example, `*` for an 5902 // alphabetic string such as a name, or `0` for a numeric string such as ZIP 5903 // code or credit card number. This string must have a length of 1. If not 5904 // supplied, this value defaults to `*` for strings, and `0` for digits. 5905 MaskingCharacter string `protobuf:"bytes,1,opt,name=masking_character,json=maskingCharacter,proto3" json:"masking_character,omitempty"` 5906 // Number of characters to mask. If not set, all matching chars will be 5907 // masked. Skipped characters do not count towards this tally. 5908 NumberToMask int32 `protobuf:"varint,2,opt,name=number_to_mask,json=numberToMask,proto3" json:"number_to_mask,omitempty"` 5909 // Mask characters in reverse order. For example, if `masking_character` is 5910 // `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the 5911 // input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. 5912 // If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` 5913 // is `true`, then the string `12345` is masked as `12***`. 5914 ReverseOrder bool `protobuf:"varint,3,opt,name=reverse_order,json=reverseOrder,proto3" json:"reverse_order,omitempty"` 5915 // When masking a string, items in this list will be skipped when replacing 5916 // characters. For example, if the input string is `555-555-5555` and you 5917 // instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP 5918 // returns `***-**5-5555`. 5919 CharactersToIgnore []*CharsToIgnore `protobuf:"bytes,4,rep,name=characters_to_ignore,json=charactersToIgnore,proto3" json:"characters_to_ignore,omitempty"` 5920} 5921 5922func (x *CharacterMaskConfig) Reset() { 5923 *x = CharacterMaskConfig{} 5924 if protoimpl.UnsafeEnabled { 5925 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[56] 5926 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5927 ms.StoreMessageInfo(mi) 5928 } 5929} 5930 5931func (x *CharacterMaskConfig) String() string { 5932 return protoimpl.X.MessageStringOf(x) 5933} 5934 5935func (*CharacterMaskConfig) ProtoMessage() {} 5936 5937func (x *CharacterMaskConfig) ProtoReflect() protoreflect.Message { 5938 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[56] 5939 if protoimpl.UnsafeEnabled && x != nil { 5940 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5941 if ms.LoadMessageInfo() == nil { 5942 ms.StoreMessageInfo(mi) 5943 } 5944 return ms 5945 } 5946 return mi.MessageOf(x) 5947} 5948 5949// Deprecated: Use CharacterMaskConfig.ProtoReflect.Descriptor instead. 5950func (*CharacterMaskConfig) Descriptor() ([]byte, []int) { 5951 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{56} 5952} 5953 5954func (x *CharacterMaskConfig) GetMaskingCharacter() string { 5955 if x != nil { 5956 return x.MaskingCharacter 5957 } 5958 return "" 5959} 5960 5961func (x *CharacterMaskConfig) GetNumberToMask() int32 { 5962 if x != nil { 5963 return x.NumberToMask 5964 } 5965 return 0 5966} 5967 5968func (x *CharacterMaskConfig) GetReverseOrder() bool { 5969 if x != nil { 5970 return x.ReverseOrder 5971 } 5972 return false 5973} 5974 5975func (x *CharacterMaskConfig) GetCharactersToIgnore() []*CharsToIgnore { 5976 if x != nil { 5977 return x.CharactersToIgnore 5978 } 5979 return nil 5980} 5981 5982// Buckets values based on fixed size ranges. The 5983// Bucketing transformation can provide all of this functionality, 5984// but requires more configuration. This message is provided as a convenience to 5985// the user for simple bucketing strategies. 5986// 5987// The transformed value will be a hyphenated string of 5988// {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 5989// all values that are within this bucket will be replaced with "10-20". 5990// 5991// This can be used on data of type: double, long. 5992// 5993// If the bound Value type differs from the type of data 5994// being transformed, we will first attempt converting the type of the data to 5995// be transformed to match the type of the bound before comparing. 5996// 5997// See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. 5998type FixedSizeBucketingConfig struct { 5999 state protoimpl.MessageState 6000 sizeCache protoimpl.SizeCache 6001 unknownFields protoimpl.UnknownFields 6002 6003 // Required. Lower bound value of buckets. All values less than `lower_bound` are 6004 // grouped together into a single bucket; for example if `lower_bound` = 10, 6005 // then all values less than 10 are replaced with the value "-10". 6006 LowerBound *Value `protobuf:"bytes,1,opt,name=lower_bound,json=lowerBound,proto3" json:"lower_bound,omitempty"` 6007 // Required. Upper bound value of buckets. All values greater than upper_bound are 6008 // grouped together into a single bucket; for example if `upper_bound` = 89, 6009 // then all values greater than 89 are replaced with the value "89+". 6010 UpperBound *Value `protobuf:"bytes,2,opt,name=upper_bound,json=upperBound,proto3" json:"upper_bound,omitempty"` 6011 // Required. Size of each bucket (except for minimum and maximum buckets). So if 6012 // `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the 6013 // following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 6014 // 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works. 6015 BucketSize float64 `protobuf:"fixed64,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"` 6016} 6017 6018func (x *FixedSizeBucketingConfig) Reset() { 6019 *x = FixedSizeBucketingConfig{} 6020 if protoimpl.UnsafeEnabled { 6021 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[57] 6022 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6023 ms.StoreMessageInfo(mi) 6024 } 6025} 6026 6027func (x *FixedSizeBucketingConfig) String() string { 6028 return protoimpl.X.MessageStringOf(x) 6029} 6030 6031func (*FixedSizeBucketingConfig) ProtoMessage() {} 6032 6033func (x *FixedSizeBucketingConfig) ProtoReflect() protoreflect.Message { 6034 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[57] 6035 if protoimpl.UnsafeEnabled && x != nil { 6036 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6037 if ms.LoadMessageInfo() == nil { 6038 ms.StoreMessageInfo(mi) 6039 } 6040 return ms 6041 } 6042 return mi.MessageOf(x) 6043} 6044 6045// Deprecated: Use FixedSizeBucketingConfig.ProtoReflect.Descriptor instead. 6046func (*FixedSizeBucketingConfig) Descriptor() ([]byte, []int) { 6047 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{57} 6048} 6049 6050func (x *FixedSizeBucketingConfig) GetLowerBound() *Value { 6051 if x != nil { 6052 return x.LowerBound 6053 } 6054 return nil 6055} 6056 6057func (x *FixedSizeBucketingConfig) GetUpperBound() *Value { 6058 if x != nil { 6059 return x.UpperBound 6060 } 6061 return nil 6062} 6063 6064func (x *FixedSizeBucketingConfig) GetBucketSize() float64 { 6065 if x != nil { 6066 return x.BucketSize 6067 } 6068 return 0 6069} 6070 6071// Generalization function that buckets values based on ranges. The ranges and 6072// replacement values are dynamically provided by the user for custom behavior, 6073// such as 1-30 -> LOW 31-65 -> MEDIUM 66-100 -> HIGH 6074// This can be used on 6075// data of type: number, long, string, timestamp. 6076// If the bound `Value` type differs from the type of data being transformed, we 6077// will first attempt converting the type of the data to be transformed to match 6078// the type of the bound before comparing. 6079// See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. 6080type BucketingConfig struct { 6081 state protoimpl.MessageState 6082 sizeCache protoimpl.SizeCache 6083 unknownFields protoimpl.UnknownFields 6084 6085 // Set of buckets. Ranges must be non-overlapping. 6086 Buckets []*BucketingConfig_Bucket `protobuf:"bytes,1,rep,name=buckets,proto3" json:"buckets,omitempty"` 6087} 6088 6089func (x *BucketingConfig) Reset() { 6090 *x = BucketingConfig{} 6091 if protoimpl.UnsafeEnabled { 6092 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[58] 6093 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6094 ms.StoreMessageInfo(mi) 6095 } 6096} 6097 6098func (x *BucketingConfig) String() string { 6099 return protoimpl.X.MessageStringOf(x) 6100} 6101 6102func (*BucketingConfig) ProtoMessage() {} 6103 6104func (x *BucketingConfig) ProtoReflect() protoreflect.Message { 6105 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[58] 6106 if protoimpl.UnsafeEnabled && x != nil { 6107 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6108 if ms.LoadMessageInfo() == nil { 6109 ms.StoreMessageInfo(mi) 6110 } 6111 return ms 6112 } 6113 return mi.MessageOf(x) 6114} 6115 6116// Deprecated: Use BucketingConfig.ProtoReflect.Descriptor instead. 6117func (*BucketingConfig) Descriptor() ([]byte, []int) { 6118 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{58} 6119} 6120 6121func (x *BucketingConfig) GetBuckets() []*BucketingConfig_Bucket { 6122 if x != nil { 6123 return x.Buckets 6124 } 6125 return nil 6126} 6127 6128// Replaces an identifier with a surrogate using Format Preserving Encryption 6129// (FPE) with the FFX mode of operation; however when used in the 6130// `ReidentifyContent` API method, it serves the opposite function by reversing 6131// the surrogate back into the original identifier. The identifier must be 6132// encoded as ASCII. For a given crypto key and context, the same identifier 6133// will be replaced with the same surrogate. Identifiers must be at least two 6134// characters long. In the case that the identifier is the empty string, it will 6135// be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn 6136// more. 6137// 6138// Note: We recommend using CryptoDeterministicConfig for all use cases which 6139// do not require preserving the input alphabet space and size, plus warrant 6140// referential integrity. 6141type CryptoReplaceFfxFpeConfig struct { 6142 state protoimpl.MessageState 6143 sizeCache protoimpl.SizeCache 6144 unknownFields protoimpl.UnknownFields 6145 6146 // Required. The key used by the encryption algorithm. 6147 CryptoKey *CryptoKey `protobuf:"bytes,1,opt,name=crypto_key,json=cryptoKey,proto3" json:"crypto_key,omitempty"` 6148 // The 'tweak', a context may be used for higher security since the same 6149 // identifier in two different contexts won't be given the same surrogate. If 6150 // the context is not set, a default tweak will be used. 6151 // 6152 // If the context is set but: 6153 // 6154 // 1. there is no record present when transforming a given value or 6155 // 1. the field is not present when transforming a given value, 6156 // 6157 // a default tweak will be used. 6158 // 6159 // Note that case (1) is expected when an `InfoTypeTransformation` is 6160 // applied to both structured and non-structured `ContentItem`s. 6161 // Currently, the referenced field may be of value type integer or string. 6162 // 6163 // The tweak is constructed as a sequence of bytes in big endian byte order 6164 // such that: 6165 // 6166 // - a 64 bit integer is encoded followed by a single byte of value 1 6167 // - a string is encoded in UTF-8 format followed by a single byte of value 2 6168 Context *FieldId `protobuf:"bytes,2,opt,name=context,proto3" json:"context,omitempty"` 6169 // Choose an alphabet which the data being transformed will be made up of. 6170 // 6171 // Types that are assignable to Alphabet: 6172 // *CryptoReplaceFfxFpeConfig_CommonAlphabet 6173 // *CryptoReplaceFfxFpeConfig_CustomAlphabet 6174 // *CryptoReplaceFfxFpeConfig_Radix 6175 Alphabet isCryptoReplaceFfxFpeConfig_Alphabet `protobuf_oneof:"alphabet"` 6176 // The custom infoType to annotate the surrogate with. 6177 // This annotation will be applied to the surrogate by prefixing it with 6178 // the name of the custom infoType followed by the number of 6179 // characters comprising the surrogate. The following scheme defines the 6180 // format: info_type_name(surrogate_character_count):surrogate 6181 // 6182 // For example, if the name of custom infoType is 'MY_TOKEN_INFO_TYPE' and 6183 // the surrogate is 'abc', the full replacement value 6184 // will be: 'MY_TOKEN_INFO_TYPE(3):abc' 6185 // 6186 // This annotation identifies the surrogate when inspecting content using the 6187 // custom infoType 6188 // [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). 6189 // This facilitates reversal of the surrogate when it occurs in free text. 6190 // 6191 // In order for inspection to work properly, the name of this infoType must 6192 // not occur naturally anywhere in your data; otherwise, inspection may 6193 // find a surrogate that does not correspond to an actual identifier. 6194 // Therefore, choose your custom infoType name carefully after considering 6195 // what your data looks like. One way to select a name that has a high chance 6196 // of yielding reliable detection is to include one or more unicode characters 6197 // that are highly improbable to exist in your data. 6198 // For example, assuming your data is entered from a regular ASCII keyboard, 6199 // the symbol with the hex code point 29DD might be used like so: 6200 // ⧝MY_TOKEN_TYPE 6201 SurrogateInfoType *InfoType `protobuf:"bytes,8,opt,name=surrogate_info_type,json=surrogateInfoType,proto3" json:"surrogate_info_type,omitempty"` 6202} 6203 6204func (x *CryptoReplaceFfxFpeConfig) Reset() { 6205 *x = CryptoReplaceFfxFpeConfig{} 6206 if protoimpl.UnsafeEnabled { 6207 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[59] 6208 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6209 ms.StoreMessageInfo(mi) 6210 } 6211} 6212 6213func (x *CryptoReplaceFfxFpeConfig) String() string { 6214 return protoimpl.X.MessageStringOf(x) 6215} 6216 6217func (*CryptoReplaceFfxFpeConfig) ProtoMessage() {} 6218 6219func (x *CryptoReplaceFfxFpeConfig) ProtoReflect() protoreflect.Message { 6220 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[59] 6221 if protoimpl.UnsafeEnabled && x != nil { 6222 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6223 if ms.LoadMessageInfo() == nil { 6224 ms.StoreMessageInfo(mi) 6225 } 6226 return ms 6227 } 6228 return mi.MessageOf(x) 6229} 6230 6231// Deprecated: Use CryptoReplaceFfxFpeConfig.ProtoReflect.Descriptor instead. 6232func (*CryptoReplaceFfxFpeConfig) Descriptor() ([]byte, []int) { 6233 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{59} 6234} 6235 6236func (x *CryptoReplaceFfxFpeConfig) GetCryptoKey() *CryptoKey { 6237 if x != nil { 6238 return x.CryptoKey 6239 } 6240 return nil 6241} 6242 6243func (x *CryptoReplaceFfxFpeConfig) GetContext() *FieldId { 6244 if x != nil { 6245 return x.Context 6246 } 6247 return nil 6248} 6249 6250func (m *CryptoReplaceFfxFpeConfig) GetAlphabet() isCryptoReplaceFfxFpeConfig_Alphabet { 6251 if m != nil { 6252 return m.Alphabet 6253 } 6254 return nil 6255} 6256 6257func (x *CryptoReplaceFfxFpeConfig) GetCommonAlphabet() CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet { 6258 if x, ok := x.GetAlphabet().(*CryptoReplaceFfxFpeConfig_CommonAlphabet); ok { 6259 return x.CommonAlphabet 6260 } 6261 return CryptoReplaceFfxFpeConfig_FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED 6262} 6263 6264func (x *CryptoReplaceFfxFpeConfig) GetCustomAlphabet() string { 6265 if x, ok := x.GetAlphabet().(*CryptoReplaceFfxFpeConfig_CustomAlphabet); ok { 6266 return x.CustomAlphabet 6267 } 6268 return "" 6269} 6270 6271func (x *CryptoReplaceFfxFpeConfig) GetRadix() int32 { 6272 if x, ok := x.GetAlphabet().(*CryptoReplaceFfxFpeConfig_Radix); ok { 6273 return x.Radix 6274 } 6275 return 0 6276} 6277 6278func (x *CryptoReplaceFfxFpeConfig) GetSurrogateInfoType() *InfoType { 6279 if x != nil { 6280 return x.SurrogateInfoType 6281 } 6282 return nil 6283} 6284 6285type isCryptoReplaceFfxFpeConfig_Alphabet interface { 6286 isCryptoReplaceFfxFpeConfig_Alphabet() 6287} 6288 6289type CryptoReplaceFfxFpeConfig_CommonAlphabet struct { 6290 // Common alphabets. 6291 CommonAlphabet CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet `protobuf:"varint,4,opt,name=common_alphabet,json=commonAlphabet,proto3,enum=google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet,oneof"` 6292} 6293 6294type CryptoReplaceFfxFpeConfig_CustomAlphabet struct { 6295 // This is supported by mapping these to the alphanumeric characters 6296 // that the FFX mode natively supports. This happens before/after 6297 // encryption/decryption. 6298 // Each character listed must appear only once. 6299 // Number of characters must be in the range [2, 95]. 6300 // This must be encoded as ASCII. 6301 // The order of characters does not matter. 6302 // The full list of allowed characters is: 6303 // <code>0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 6304 // ~`!@#$%^&*()_-+={[}]|\:;"'<,>.?/</code> 6305 CustomAlphabet string `protobuf:"bytes,5,opt,name=custom_alphabet,json=customAlphabet,proto3,oneof"` 6306} 6307 6308type CryptoReplaceFfxFpeConfig_Radix struct { 6309 // The native way to select the alphabet. Must be in the range [2, 95]. 6310 Radix int32 `protobuf:"varint,6,opt,name=radix,proto3,oneof"` 6311} 6312 6313func (*CryptoReplaceFfxFpeConfig_CommonAlphabet) isCryptoReplaceFfxFpeConfig_Alphabet() {} 6314 6315func (*CryptoReplaceFfxFpeConfig_CustomAlphabet) isCryptoReplaceFfxFpeConfig_Alphabet() {} 6316 6317func (*CryptoReplaceFfxFpeConfig_Radix) isCryptoReplaceFfxFpeConfig_Alphabet() {} 6318 6319// This is a data encryption key (DEK) (as opposed to 6320// a key encryption key (KEK) stored by KMS). 6321// When using KMS to wrap/unwrap DEKs, be sure to set an appropriate 6322// IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot 6323// unwrap the data crypto key. 6324type CryptoKey struct { 6325 state protoimpl.MessageState 6326 sizeCache protoimpl.SizeCache 6327 unknownFields protoimpl.UnknownFields 6328 6329 // Sources of crypto keys. 6330 // 6331 // Types that are assignable to Source: 6332 // *CryptoKey_Transient 6333 // *CryptoKey_Unwrapped 6334 // *CryptoKey_KmsWrapped 6335 Source isCryptoKey_Source `protobuf_oneof:"source"` 6336} 6337 6338func (x *CryptoKey) Reset() { 6339 *x = CryptoKey{} 6340 if protoimpl.UnsafeEnabled { 6341 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[60] 6342 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6343 ms.StoreMessageInfo(mi) 6344 } 6345} 6346 6347func (x *CryptoKey) String() string { 6348 return protoimpl.X.MessageStringOf(x) 6349} 6350 6351func (*CryptoKey) ProtoMessage() {} 6352 6353func (x *CryptoKey) ProtoReflect() protoreflect.Message { 6354 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[60] 6355 if protoimpl.UnsafeEnabled && x != nil { 6356 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6357 if ms.LoadMessageInfo() == nil { 6358 ms.StoreMessageInfo(mi) 6359 } 6360 return ms 6361 } 6362 return mi.MessageOf(x) 6363} 6364 6365// Deprecated: Use CryptoKey.ProtoReflect.Descriptor instead. 6366func (*CryptoKey) Descriptor() ([]byte, []int) { 6367 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{60} 6368} 6369 6370func (m *CryptoKey) GetSource() isCryptoKey_Source { 6371 if m != nil { 6372 return m.Source 6373 } 6374 return nil 6375} 6376 6377func (x *CryptoKey) GetTransient() *TransientCryptoKey { 6378 if x, ok := x.GetSource().(*CryptoKey_Transient); ok { 6379 return x.Transient 6380 } 6381 return nil 6382} 6383 6384func (x *CryptoKey) GetUnwrapped() *UnwrappedCryptoKey { 6385 if x, ok := x.GetSource().(*CryptoKey_Unwrapped); ok { 6386 return x.Unwrapped 6387 } 6388 return nil 6389} 6390 6391func (x *CryptoKey) GetKmsWrapped() *KmsWrappedCryptoKey { 6392 if x, ok := x.GetSource().(*CryptoKey_KmsWrapped); ok { 6393 return x.KmsWrapped 6394 } 6395 return nil 6396} 6397 6398type isCryptoKey_Source interface { 6399 isCryptoKey_Source() 6400} 6401 6402type CryptoKey_Transient struct { 6403 // Transient crypto key 6404 Transient *TransientCryptoKey `protobuf:"bytes,1,opt,name=transient,proto3,oneof"` 6405} 6406 6407type CryptoKey_Unwrapped struct { 6408 // Unwrapped crypto key 6409 Unwrapped *UnwrappedCryptoKey `protobuf:"bytes,2,opt,name=unwrapped,proto3,oneof"` 6410} 6411 6412type CryptoKey_KmsWrapped struct { 6413 // Kms wrapped key 6414 KmsWrapped *KmsWrappedCryptoKey `protobuf:"bytes,3,opt,name=kms_wrapped,json=kmsWrapped,proto3,oneof"` 6415} 6416 6417func (*CryptoKey_Transient) isCryptoKey_Source() {} 6418 6419func (*CryptoKey_Unwrapped) isCryptoKey_Source() {} 6420 6421func (*CryptoKey_KmsWrapped) isCryptoKey_Source() {} 6422 6423// Use this to have a random data crypto key generated. 6424// It will be discarded after the request finishes. 6425type TransientCryptoKey struct { 6426 state protoimpl.MessageState 6427 sizeCache protoimpl.SizeCache 6428 unknownFields protoimpl.UnknownFields 6429 6430 // Required. Name of the key. 6431 // This is an arbitrary string used to differentiate different keys. 6432 // A unique key is generated per name: two separate `TransientCryptoKey` 6433 // protos share the same generated key if their names are the same. 6434 // When the data crypto key is generated, this name is not used in any way 6435 // (repeating the api call will result in a different key being generated). 6436 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 6437} 6438 6439func (x *TransientCryptoKey) Reset() { 6440 *x = TransientCryptoKey{} 6441 if protoimpl.UnsafeEnabled { 6442 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[61] 6443 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6444 ms.StoreMessageInfo(mi) 6445 } 6446} 6447 6448func (x *TransientCryptoKey) String() string { 6449 return protoimpl.X.MessageStringOf(x) 6450} 6451 6452func (*TransientCryptoKey) ProtoMessage() {} 6453 6454func (x *TransientCryptoKey) ProtoReflect() protoreflect.Message { 6455 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[61] 6456 if protoimpl.UnsafeEnabled && x != nil { 6457 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6458 if ms.LoadMessageInfo() == nil { 6459 ms.StoreMessageInfo(mi) 6460 } 6461 return ms 6462 } 6463 return mi.MessageOf(x) 6464} 6465 6466// Deprecated: Use TransientCryptoKey.ProtoReflect.Descriptor instead. 6467func (*TransientCryptoKey) Descriptor() ([]byte, []int) { 6468 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{61} 6469} 6470 6471func (x *TransientCryptoKey) GetName() string { 6472 if x != nil { 6473 return x.Name 6474 } 6475 return "" 6476} 6477 6478// Using raw keys is prone to security risks due to accidentally 6479// leaking the key. Choose another type of key if possible. 6480type UnwrappedCryptoKey struct { 6481 state protoimpl.MessageState 6482 sizeCache protoimpl.SizeCache 6483 unknownFields protoimpl.UnknownFields 6484 6485 // Required. A 128/192/256 bit key. 6486 Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 6487} 6488 6489func (x *UnwrappedCryptoKey) Reset() { 6490 *x = UnwrappedCryptoKey{} 6491 if protoimpl.UnsafeEnabled { 6492 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[62] 6493 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6494 ms.StoreMessageInfo(mi) 6495 } 6496} 6497 6498func (x *UnwrappedCryptoKey) String() string { 6499 return protoimpl.X.MessageStringOf(x) 6500} 6501 6502func (*UnwrappedCryptoKey) ProtoMessage() {} 6503 6504func (x *UnwrappedCryptoKey) ProtoReflect() protoreflect.Message { 6505 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[62] 6506 if protoimpl.UnsafeEnabled && x != nil { 6507 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6508 if ms.LoadMessageInfo() == nil { 6509 ms.StoreMessageInfo(mi) 6510 } 6511 return ms 6512 } 6513 return mi.MessageOf(x) 6514} 6515 6516// Deprecated: Use UnwrappedCryptoKey.ProtoReflect.Descriptor instead. 6517func (*UnwrappedCryptoKey) Descriptor() ([]byte, []int) { 6518 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{62} 6519} 6520 6521func (x *UnwrappedCryptoKey) GetKey() []byte { 6522 if x != nil { 6523 return x.Key 6524 } 6525 return nil 6526} 6527 6528// Include to use an existing data crypto key wrapped by KMS. 6529// The wrapped key must be a 128/192/256 bit key. 6530// Authorization requires the following IAM permissions when sending a request 6531// to perform a crypto transformation using a kms-wrapped crypto key: 6532// dlp.kms.encrypt 6533type KmsWrappedCryptoKey struct { 6534 state protoimpl.MessageState 6535 sizeCache protoimpl.SizeCache 6536 unknownFields protoimpl.UnknownFields 6537 6538 // Required. The wrapped data crypto key. 6539 WrappedKey []byte `protobuf:"bytes,1,opt,name=wrapped_key,json=wrappedKey,proto3" json:"wrapped_key,omitempty"` 6540 // Required. The resource name of the KMS CryptoKey to use for unwrapping. 6541 CryptoKeyName string `protobuf:"bytes,2,opt,name=crypto_key_name,json=cryptoKeyName,proto3" json:"crypto_key_name,omitempty"` 6542} 6543 6544func (x *KmsWrappedCryptoKey) Reset() { 6545 *x = KmsWrappedCryptoKey{} 6546 if protoimpl.UnsafeEnabled { 6547 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[63] 6548 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6549 ms.StoreMessageInfo(mi) 6550 } 6551} 6552 6553func (x *KmsWrappedCryptoKey) String() string { 6554 return protoimpl.X.MessageStringOf(x) 6555} 6556 6557func (*KmsWrappedCryptoKey) ProtoMessage() {} 6558 6559func (x *KmsWrappedCryptoKey) ProtoReflect() protoreflect.Message { 6560 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[63] 6561 if protoimpl.UnsafeEnabled && x != nil { 6562 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6563 if ms.LoadMessageInfo() == nil { 6564 ms.StoreMessageInfo(mi) 6565 } 6566 return ms 6567 } 6568 return mi.MessageOf(x) 6569} 6570 6571// Deprecated: Use KmsWrappedCryptoKey.ProtoReflect.Descriptor instead. 6572func (*KmsWrappedCryptoKey) Descriptor() ([]byte, []int) { 6573 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{63} 6574} 6575 6576func (x *KmsWrappedCryptoKey) GetWrappedKey() []byte { 6577 if x != nil { 6578 return x.WrappedKey 6579 } 6580 return nil 6581} 6582 6583func (x *KmsWrappedCryptoKey) GetCryptoKeyName() string { 6584 if x != nil { 6585 return x.CryptoKeyName 6586 } 6587 return "" 6588} 6589 6590// Shifts dates by random number of days, with option to be consistent for the 6591// same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting 6592// to learn more. 6593type DateShiftConfig struct { 6594 state protoimpl.MessageState 6595 sizeCache protoimpl.SizeCache 6596 unknownFields protoimpl.UnknownFields 6597 6598 // Required. Range of shift in days. Actual shift will be selected at random within this 6599 // range (inclusive ends). Negative means shift to earlier in time. Must not 6600 // be more than 365250 days (1000 years) each direction. 6601 // 6602 // For example, 3 means shift date to at most 3 days into the future. 6603 UpperBoundDays int32 `protobuf:"varint,1,opt,name=upper_bound_days,json=upperBoundDays,proto3" json:"upper_bound_days,omitempty"` 6604 // Required. For example, -5 means shift date to at most 5 days back in the past. 6605 LowerBoundDays int32 `protobuf:"varint,2,opt,name=lower_bound_days,json=lowerBoundDays,proto3" json:"lower_bound_days,omitempty"` 6606 // Points to the field that contains the context, for example, an entity id. 6607 // If set, must also set cryptoKey. If set, shift will be consistent for the 6608 // given context. 6609 Context *FieldId `protobuf:"bytes,3,opt,name=context,proto3" json:"context,omitempty"` 6610 // Method for calculating shift that takes context into consideration. If 6611 // set, must also set context. Can only be applied to table items. 6612 // 6613 // Types that are assignable to Method: 6614 // *DateShiftConfig_CryptoKey 6615 Method isDateShiftConfig_Method `protobuf_oneof:"method"` 6616} 6617 6618func (x *DateShiftConfig) Reset() { 6619 *x = DateShiftConfig{} 6620 if protoimpl.UnsafeEnabled { 6621 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[64] 6622 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6623 ms.StoreMessageInfo(mi) 6624 } 6625} 6626 6627func (x *DateShiftConfig) String() string { 6628 return protoimpl.X.MessageStringOf(x) 6629} 6630 6631func (*DateShiftConfig) ProtoMessage() {} 6632 6633func (x *DateShiftConfig) ProtoReflect() protoreflect.Message { 6634 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[64] 6635 if protoimpl.UnsafeEnabled && x != nil { 6636 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6637 if ms.LoadMessageInfo() == nil { 6638 ms.StoreMessageInfo(mi) 6639 } 6640 return ms 6641 } 6642 return mi.MessageOf(x) 6643} 6644 6645// Deprecated: Use DateShiftConfig.ProtoReflect.Descriptor instead. 6646func (*DateShiftConfig) Descriptor() ([]byte, []int) { 6647 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{64} 6648} 6649 6650func (x *DateShiftConfig) GetUpperBoundDays() int32 { 6651 if x != nil { 6652 return x.UpperBoundDays 6653 } 6654 return 0 6655} 6656 6657func (x *DateShiftConfig) GetLowerBoundDays() int32 { 6658 if x != nil { 6659 return x.LowerBoundDays 6660 } 6661 return 0 6662} 6663 6664func (x *DateShiftConfig) GetContext() *FieldId { 6665 if x != nil { 6666 return x.Context 6667 } 6668 return nil 6669} 6670 6671func (m *DateShiftConfig) GetMethod() isDateShiftConfig_Method { 6672 if m != nil { 6673 return m.Method 6674 } 6675 return nil 6676} 6677 6678func (x *DateShiftConfig) GetCryptoKey() *CryptoKey { 6679 if x, ok := x.GetMethod().(*DateShiftConfig_CryptoKey); ok { 6680 return x.CryptoKey 6681 } 6682 return nil 6683} 6684 6685type isDateShiftConfig_Method interface { 6686 isDateShiftConfig_Method() 6687} 6688 6689type DateShiftConfig_CryptoKey struct { 6690 // Causes the shift to be computed based on this key and the context. This 6691 // results in the same shift for the same context and crypto_key. If 6692 // set, must also set context. Can only be applied to table items. 6693 CryptoKey *CryptoKey `protobuf:"bytes,4,opt,name=crypto_key,json=cryptoKey,proto3,oneof"` 6694} 6695 6696func (*DateShiftConfig_CryptoKey) isDateShiftConfig_Method() {} 6697 6698// A type of transformation that will scan unstructured text and 6699// apply various `PrimitiveTransformation`s to each finding, where the 6700// transformation is applied to only values that were identified as a specific 6701// info_type. 6702type InfoTypeTransformations struct { 6703 state protoimpl.MessageState 6704 sizeCache protoimpl.SizeCache 6705 unknownFields protoimpl.UnknownFields 6706 6707 // Required. Transformation for each infoType. Cannot specify more than one 6708 // for a given infoType. 6709 Transformations []*InfoTypeTransformations_InfoTypeTransformation `protobuf:"bytes,1,rep,name=transformations,proto3" json:"transformations,omitempty"` 6710} 6711 6712func (x *InfoTypeTransformations) Reset() { 6713 *x = InfoTypeTransformations{} 6714 if protoimpl.UnsafeEnabled { 6715 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[65] 6716 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6717 ms.StoreMessageInfo(mi) 6718 } 6719} 6720 6721func (x *InfoTypeTransformations) String() string { 6722 return protoimpl.X.MessageStringOf(x) 6723} 6724 6725func (*InfoTypeTransformations) ProtoMessage() {} 6726 6727func (x *InfoTypeTransformations) ProtoReflect() protoreflect.Message { 6728 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[65] 6729 if protoimpl.UnsafeEnabled && x != nil { 6730 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6731 if ms.LoadMessageInfo() == nil { 6732 ms.StoreMessageInfo(mi) 6733 } 6734 return ms 6735 } 6736 return mi.MessageOf(x) 6737} 6738 6739// Deprecated: Use InfoTypeTransformations.ProtoReflect.Descriptor instead. 6740func (*InfoTypeTransformations) Descriptor() ([]byte, []int) { 6741 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{65} 6742} 6743 6744func (x *InfoTypeTransformations) GetTransformations() []*InfoTypeTransformations_InfoTypeTransformation { 6745 if x != nil { 6746 return x.Transformations 6747 } 6748 return nil 6749} 6750 6751// The transformation to apply to the field. 6752type FieldTransformation struct { 6753 state protoimpl.MessageState 6754 sizeCache protoimpl.SizeCache 6755 unknownFields protoimpl.UnknownFields 6756 6757 // Required. Input field(s) to apply the transformation to. 6758 Fields []*FieldId `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"` 6759 // Only apply the transformation if the condition evaluates to true for the 6760 // given `RecordCondition`. The conditions are allowed to reference fields 6761 // that are not used in the actual transformation. 6762 // 6763 // Example Use Cases: 6764 // 6765 // - Apply a different bucket transformation to an age column if the zip code 6766 // column for the same record is within a specific range. 6767 // - Redact a field if the date of birth field is greater than 85. 6768 Condition *RecordCondition `protobuf:"bytes,3,opt,name=condition,proto3" json:"condition,omitempty"` 6769 // Transformation to apply. [required] 6770 // 6771 // Types that are assignable to Transformation: 6772 // *FieldTransformation_PrimitiveTransformation 6773 // *FieldTransformation_InfoTypeTransformations 6774 Transformation isFieldTransformation_Transformation `protobuf_oneof:"transformation"` 6775} 6776 6777func (x *FieldTransformation) Reset() { 6778 *x = FieldTransformation{} 6779 if protoimpl.UnsafeEnabled { 6780 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[66] 6781 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6782 ms.StoreMessageInfo(mi) 6783 } 6784} 6785 6786func (x *FieldTransformation) String() string { 6787 return protoimpl.X.MessageStringOf(x) 6788} 6789 6790func (*FieldTransformation) ProtoMessage() {} 6791 6792func (x *FieldTransformation) ProtoReflect() protoreflect.Message { 6793 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[66] 6794 if protoimpl.UnsafeEnabled && x != nil { 6795 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6796 if ms.LoadMessageInfo() == nil { 6797 ms.StoreMessageInfo(mi) 6798 } 6799 return ms 6800 } 6801 return mi.MessageOf(x) 6802} 6803 6804// Deprecated: Use FieldTransformation.ProtoReflect.Descriptor instead. 6805func (*FieldTransformation) Descriptor() ([]byte, []int) { 6806 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{66} 6807} 6808 6809func (x *FieldTransformation) GetFields() []*FieldId { 6810 if x != nil { 6811 return x.Fields 6812 } 6813 return nil 6814} 6815 6816func (x *FieldTransformation) GetCondition() *RecordCondition { 6817 if x != nil { 6818 return x.Condition 6819 } 6820 return nil 6821} 6822 6823func (m *FieldTransformation) GetTransformation() isFieldTransformation_Transformation { 6824 if m != nil { 6825 return m.Transformation 6826 } 6827 return nil 6828} 6829 6830func (x *FieldTransformation) GetPrimitiveTransformation() *PrimitiveTransformation { 6831 if x, ok := x.GetTransformation().(*FieldTransformation_PrimitiveTransformation); ok { 6832 return x.PrimitiveTransformation 6833 } 6834 return nil 6835} 6836 6837func (x *FieldTransformation) GetInfoTypeTransformations() *InfoTypeTransformations { 6838 if x, ok := x.GetTransformation().(*FieldTransformation_InfoTypeTransformations); ok { 6839 return x.InfoTypeTransformations 6840 } 6841 return nil 6842} 6843 6844type isFieldTransformation_Transformation interface { 6845 isFieldTransformation_Transformation() 6846} 6847 6848type FieldTransformation_PrimitiveTransformation struct { 6849 // Apply the transformation to the entire field. 6850 PrimitiveTransformation *PrimitiveTransformation `protobuf:"bytes,4,opt,name=primitive_transformation,json=primitiveTransformation,proto3,oneof"` 6851} 6852 6853type FieldTransformation_InfoTypeTransformations struct { 6854 // Treat the contents of the field as free text, and selectively 6855 // transform content that matches an `InfoType`. 6856 InfoTypeTransformations *InfoTypeTransformations `protobuf:"bytes,5,opt,name=info_type_transformations,json=infoTypeTransformations,proto3,oneof"` 6857} 6858 6859func (*FieldTransformation_PrimitiveTransformation) isFieldTransformation_Transformation() {} 6860 6861func (*FieldTransformation_InfoTypeTransformations) isFieldTransformation_Transformation() {} 6862 6863// A type of transformation that is applied over structured data such as a 6864// table. 6865type RecordTransformations struct { 6866 state protoimpl.MessageState 6867 sizeCache protoimpl.SizeCache 6868 unknownFields protoimpl.UnknownFields 6869 6870 // Transform the record by applying various field transformations. 6871 FieldTransformations []*FieldTransformation `protobuf:"bytes,1,rep,name=field_transformations,json=fieldTransformations,proto3" json:"field_transformations,omitempty"` 6872 // Configuration defining which records get suppressed entirely. Records that 6873 // match any suppression rule are omitted from the output. 6874 RecordSuppressions []*RecordSuppression `protobuf:"bytes,2,rep,name=record_suppressions,json=recordSuppressions,proto3" json:"record_suppressions,omitempty"` 6875} 6876 6877func (x *RecordTransformations) Reset() { 6878 *x = RecordTransformations{} 6879 if protoimpl.UnsafeEnabled { 6880 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[67] 6881 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6882 ms.StoreMessageInfo(mi) 6883 } 6884} 6885 6886func (x *RecordTransformations) String() string { 6887 return protoimpl.X.MessageStringOf(x) 6888} 6889 6890func (*RecordTransformations) ProtoMessage() {} 6891 6892func (x *RecordTransformations) ProtoReflect() protoreflect.Message { 6893 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[67] 6894 if protoimpl.UnsafeEnabled && x != nil { 6895 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6896 if ms.LoadMessageInfo() == nil { 6897 ms.StoreMessageInfo(mi) 6898 } 6899 return ms 6900 } 6901 return mi.MessageOf(x) 6902} 6903 6904// Deprecated: Use RecordTransformations.ProtoReflect.Descriptor instead. 6905func (*RecordTransformations) Descriptor() ([]byte, []int) { 6906 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{67} 6907} 6908 6909func (x *RecordTransformations) GetFieldTransformations() []*FieldTransformation { 6910 if x != nil { 6911 return x.FieldTransformations 6912 } 6913 return nil 6914} 6915 6916func (x *RecordTransformations) GetRecordSuppressions() []*RecordSuppression { 6917 if x != nil { 6918 return x.RecordSuppressions 6919 } 6920 return nil 6921} 6922 6923// Configuration to suppress records whose suppression conditions evaluate to 6924// true. 6925type RecordSuppression struct { 6926 state protoimpl.MessageState 6927 sizeCache protoimpl.SizeCache 6928 unknownFields protoimpl.UnknownFields 6929 6930 // A condition that when it evaluates to true will result in the record being 6931 // evaluated to be suppressed from the transformed content. 6932 Condition *RecordCondition `protobuf:"bytes,1,opt,name=condition,proto3" json:"condition,omitempty"` 6933} 6934 6935func (x *RecordSuppression) Reset() { 6936 *x = RecordSuppression{} 6937 if protoimpl.UnsafeEnabled { 6938 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[68] 6939 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6940 ms.StoreMessageInfo(mi) 6941 } 6942} 6943 6944func (x *RecordSuppression) String() string { 6945 return protoimpl.X.MessageStringOf(x) 6946} 6947 6948func (*RecordSuppression) ProtoMessage() {} 6949 6950func (x *RecordSuppression) ProtoReflect() protoreflect.Message { 6951 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[68] 6952 if protoimpl.UnsafeEnabled && x != nil { 6953 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6954 if ms.LoadMessageInfo() == nil { 6955 ms.StoreMessageInfo(mi) 6956 } 6957 return ms 6958 } 6959 return mi.MessageOf(x) 6960} 6961 6962// Deprecated: Use RecordSuppression.ProtoReflect.Descriptor instead. 6963func (*RecordSuppression) Descriptor() ([]byte, []int) { 6964 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{68} 6965} 6966 6967func (x *RecordSuppression) GetCondition() *RecordCondition { 6968 if x != nil { 6969 return x.Condition 6970 } 6971 return nil 6972} 6973 6974// A condition for determining whether a transformation should be applied to 6975// a field. 6976type RecordCondition struct { 6977 state protoimpl.MessageState 6978 sizeCache protoimpl.SizeCache 6979 unknownFields protoimpl.UnknownFields 6980 6981 // An expression. 6982 Expressions *RecordCondition_Expressions `protobuf:"bytes,3,opt,name=expressions,proto3" json:"expressions,omitempty"` 6983} 6984 6985func (x *RecordCondition) Reset() { 6986 *x = RecordCondition{} 6987 if protoimpl.UnsafeEnabled { 6988 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[69] 6989 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6990 ms.StoreMessageInfo(mi) 6991 } 6992} 6993 6994func (x *RecordCondition) String() string { 6995 return protoimpl.X.MessageStringOf(x) 6996} 6997 6998func (*RecordCondition) ProtoMessage() {} 6999 7000func (x *RecordCondition) ProtoReflect() protoreflect.Message { 7001 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[69] 7002 if protoimpl.UnsafeEnabled && x != nil { 7003 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7004 if ms.LoadMessageInfo() == nil { 7005 ms.StoreMessageInfo(mi) 7006 } 7007 return ms 7008 } 7009 return mi.MessageOf(x) 7010} 7011 7012// Deprecated: Use RecordCondition.ProtoReflect.Descriptor instead. 7013func (*RecordCondition) Descriptor() ([]byte, []int) { 7014 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{69} 7015} 7016 7017func (x *RecordCondition) GetExpressions() *RecordCondition_Expressions { 7018 if x != nil { 7019 return x.Expressions 7020 } 7021 return nil 7022} 7023 7024// Overview of the modifications that occurred. 7025type TransformationOverview struct { 7026 state protoimpl.MessageState 7027 sizeCache protoimpl.SizeCache 7028 unknownFields protoimpl.UnknownFields 7029 7030 // Total size in bytes that were transformed in some way. 7031 TransformedBytes int64 `protobuf:"varint,2,opt,name=transformed_bytes,json=transformedBytes,proto3" json:"transformed_bytes,omitempty"` 7032 // Transformations applied to the dataset. 7033 TransformationSummaries []*TransformationSummary `protobuf:"bytes,3,rep,name=transformation_summaries,json=transformationSummaries,proto3" json:"transformation_summaries,omitempty"` 7034} 7035 7036func (x *TransformationOverview) Reset() { 7037 *x = TransformationOverview{} 7038 if protoimpl.UnsafeEnabled { 7039 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[70] 7040 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7041 ms.StoreMessageInfo(mi) 7042 } 7043} 7044 7045func (x *TransformationOverview) String() string { 7046 return protoimpl.X.MessageStringOf(x) 7047} 7048 7049func (*TransformationOverview) ProtoMessage() {} 7050 7051func (x *TransformationOverview) ProtoReflect() protoreflect.Message { 7052 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[70] 7053 if protoimpl.UnsafeEnabled && x != nil { 7054 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7055 if ms.LoadMessageInfo() == nil { 7056 ms.StoreMessageInfo(mi) 7057 } 7058 return ms 7059 } 7060 return mi.MessageOf(x) 7061} 7062 7063// Deprecated: Use TransformationOverview.ProtoReflect.Descriptor instead. 7064func (*TransformationOverview) Descriptor() ([]byte, []int) { 7065 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{70} 7066} 7067 7068func (x *TransformationOverview) GetTransformedBytes() int64 { 7069 if x != nil { 7070 return x.TransformedBytes 7071 } 7072 return 0 7073} 7074 7075func (x *TransformationOverview) GetTransformationSummaries() []*TransformationSummary { 7076 if x != nil { 7077 return x.TransformationSummaries 7078 } 7079 return nil 7080} 7081 7082// Summary of a single transformation. 7083// Only one of 'transformation', 'field_transformation', or 'record_suppress' 7084// will be set. 7085type TransformationSummary struct { 7086 state protoimpl.MessageState 7087 sizeCache protoimpl.SizeCache 7088 unknownFields protoimpl.UnknownFields 7089 7090 // Set if the transformation was limited to a specific InfoType. 7091 InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"` 7092 // Set if the transformation was limited to a specific FieldId. 7093 Field *FieldId `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"` 7094 // The specific transformation these stats apply to. 7095 Transformation *PrimitiveTransformation `protobuf:"bytes,3,opt,name=transformation,proto3" json:"transformation,omitempty"` 7096 // The field transformation that was applied. 7097 // If multiple field transformations are requested for a single field, 7098 // this list will contain all of them; otherwise, only one is supplied. 7099 FieldTransformations []*FieldTransformation `protobuf:"bytes,5,rep,name=field_transformations,json=fieldTransformations,proto3" json:"field_transformations,omitempty"` 7100 // The specific suppression option these stats apply to. 7101 RecordSuppress *RecordSuppression `protobuf:"bytes,6,opt,name=record_suppress,json=recordSuppress,proto3" json:"record_suppress,omitempty"` 7102 // Collection of all transformations that took place or had an error. 7103 Results []*TransformationSummary_SummaryResult `protobuf:"bytes,4,rep,name=results,proto3" json:"results,omitempty"` 7104 // Total size in bytes that were transformed in some way. 7105 TransformedBytes int64 `protobuf:"varint,7,opt,name=transformed_bytes,json=transformedBytes,proto3" json:"transformed_bytes,omitempty"` 7106} 7107 7108func (x *TransformationSummary) Reset() { 7109 *x = TransformationSummary{} 7110 if protoimpl.UnsafeEnabled { 7111 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[71] 7112 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7113 ms.StoreMessageInfo(mi) 7114 } 7115} 7116 7117func (x *TransformationSummary) String() string { 7118 return protoimpl.X.MessageStringOf(x) 7119} 7120 7121func (*TransformationSummary) ProtoMessage() {} 7122 7123func (x *TransformationSummary) ProtoReflect() protoreflect.Message { 7124 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[71] 7125 if protoimpl.UnsafeEnabled && x != nil { 7126 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7127 if ms.LoadMessageInfo() == nil { 7128 ms.StoreMessageInfo(mi) 7129 } 7130 return ms 7131 } 7132 return mi.MessageOf(x) 7133} 7134 7135// Deprecated: Use TransformationSummary.ProtoReflect.Descriptor instead. 7136func (*TransformationSummary) Descriptor() ([]byte, []int) { 7137 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{71} 7138} 7139 7140func (x *TransformationSummary) GetInfoType() *InfoType { 7141 if x != nil { 7142 return x.InfoType 7143 } 7144 return nil 7145} 7146 7147func (x *TransformationSummary) GetField() *FieldId { 7148 if x != nil { 7149 return x.Field 7150 } 7151 return nil 7152} 7153 7154func (x *TransformationSummary) GetTransformation() *PrimitiveTransformation { 7155 if x != nil { 7156 return x.Transformation 7157 } 7158 return nil 7159} 7160 7161func (x *TransformationSummary) GetFieldTransformations() []*FieldTransformation { 7162 if x != nil { 7163 return x.FieldTransformations 7164 } 7165 return nil 7166} 7167 7168func (x *TransformationSummary) GetRecordSuppress() *RecordSuppression { 7169 if x != nil { 7170 return x.RecordSuppress 7171 } 7172 return nil 7173} 7174 7175func (x *TransformationSummary) GetResults() []*TransformationSummary_SummaryResult { 7176 if x != nil { 7177 return x.Results 7178 } 7179 return nil 7180} 7181 7182func (x *TransformationSummary) GetTransformedBytes() int64 { 7183 if x != nil { 7184 return x.TransformedBytes 7185 } 7186 return 0 7187} 7188 7189// Schedule for triggeredJobs. 7190type Schedule struct { 7191 state protoimpl.MessageState 7192 sizeCache protoimpl.SizeCache 7193 unknownFields protoimpl.UnknownFields 7194 7195 // Types that are assignable to Option: 7196 // *Schedule_RecurrencePeriodDuration 7197 Option isSchedule_Option `protobuf_oneof:"option"` 7198} 7199 7200func (x *Schedule) Reset() { 7201 *x = Schedule{} 7202 if protoimpl.UnsafeEnabled { 7203 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[72] 7204 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7205 ms.StoreMessageInfo(mi) 7206 } 7207} 7208 7209func (x *Schedule) String() string { 7210 return protoimpl.X.MessageStringOf(x) 7211} 7212 7213func (*Schedule) ProtoMessage() {} 7214 7215func (x *Schedule) ProtoReflect() protoreflect.Message { 7216 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[72] 7217 if protoimpl.UnsafeEnabled && x != nil { 7218 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7219 if ms.LoadMessageInfo() == nil { 7220 ms.StoreMessageInfo(mi) 7221 } 7222 return ms 7223 } 7224 return mi.MessageOf(x) 7225} 7226 7227// Deprecated: Use Schedule.ProtoReflect.Descriptor instead. 7228func (*Schedule) Descriptor() ([]byte, []int) { 7229 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{72} 7230} 7231 7232func (m *Schedule) GetOption() isSchedule_Option { 7233 if m != nil { 7234 return m.Option 7235 } 7236 return nil 7237} 7238 7239func (x *Schedule) GetRecurrencePeriodDuration() *durationpb.Duration { 7240 if x, ok := x.GetOption().(*Schedule_RecurrencePeriodDuration); ok { 7241 return x.RecurrencePeriodDuration 7242 } 7243 return nil 7244} 7245 7246type isSchedule_Option interface { 7247 isSchedule_Option() 7248} 7249 7250type Schedule_RecurrencePeriodDuration struct { 7251 // With this option a job is started a regular periodic basis. For 7252 // example: every day (86400 seconds). 7253 // 7254 // A scheduled start time will be skipped if the previous 7255 // execution has not ended when its scheduled time occurs. 7256 // 7257 // This value must be set to a time duration greater than or equal 7258 // to 1 day and can be no longer than 60 days. 7259 RecurrencePeriodDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=recurrence_period_duration,json=recurrencePeriodDuration,proto3,oneof"` 7260} 7261 7262func (*Schedule_RecurrencePeriodDuration) isSchedule_Option() {} 7263 7264// Job trigger option for hybrid jobs. Jobs must be manually created 7265// and finished. 7266type Manual struct { 7267 state protoimpl.MessageState 7268 sizeCache protoimpl.SizeCache 7269 unknownFields protoimpl.UnknownFields 7270} 7271 7272func (x *Manual) Reset() { 7273 *x = Manual{} 7274 if protoimpl.UnsafeEnabled { 7275 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[73] 7276 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7277 ms.StoreMessageInfo(mi) 7278 } 7279} 7280 7281func (x *Manual) String() string { 7282 return protoimpl.X.MessageStringOf(x) 7283} 7284 7285func (*Manual) ProtoMessage() {} 7286 7287func (x *Manual) ProtoReflect() protoreflect.Message { 7288 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[73] 7289 if protoimpl.UnsafeEnabled && x != nil { 7290 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7291 if ms.LoadMessageInfo() == nil { 7292 ms.StoreMessageInfo(mi) 7293 } 7294 return ms 7295 } 7296 return mi.MessageOf(x) 7297} 7298 7299// Deprecated: Use Manual.ProtoReflect.Descriptor instead. 7300func (*Manual) Descriptor() ([]byte, []int) { 7301 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{73} 7302} 7303 7304// The inspectTemplate contains a configuration (set of types of sensitive data 7305// to be detected) to be used anywhere you otherwise would normally specify 7306// InspectConfig. See https://cloud.google.com/dlp/docs/concepts-templates 7307// to learn more. 7308type InspectTemplate struct { 7309 state protoimpl.MessageState 7310 sizeCache protoimpl.SizeCache 7311 unknownFields protoimpl.UnknownFields 7312 7313 // Output only. The template name. 7314 // 7315 // The template will have one of the following formats: 7316 // `projects/PROJECT_ID/inspectTemplates/TEMPLATE_ID` OR 7317 // `organizations/ORGANIZATION_ID/inspectTemplates/TEMPLATE_ID`; 7318 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 7319 // Display name (max 256 chars). 7320 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 7321 // Short description (max 256 chars). 7322 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 7323 // Output only. The creation timestamp of an inspectTemplate. 7324 CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 7325 // Output only. The last update timestamp of an inspectTemplate. 7326 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 7327 // The core content of the template. Configuration of the scanning process. 7328 InspectConfig *InspectConfig `protobuf:"bytes,6,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"` 7329} 7330 7331func (x *InspectTemplate) Reset() { 7332 *x = InspectTemplate{} 7333 if protoimpl.UnsafeEnabled { 7334 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[74] 7335 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7336 ms.StoreMessageInfo(mi) 7337 } 7338} 7339 7340func (x *InspectTemplate) String() string { 7341 return protoimpl.X.MessageStringOf(x) 7342} 7343 7344func (*InspectTemplate) ProtoMessage() {} 7345 7346func (x *InspectTemplate) ProtoReflect() protoreflect.Message { 7347 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[74] 7348 if protoimpl.UnsafeEnabled && x != nil { 7349 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7350 if ms.LoadMessageInfo() == nil { 7351 ms.StoreMessageInfo(mi) 7352 } 7353 return ms 7354 } 7355 return mi.MessageOf(x) 7356} 7357 7358// Deprecated: Use InspectTemplate.ProtoReflect.Descriptor instead. 7359func (*InspectTemplate) Descriptor() ([]byte, []int) { 7360 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{74} 7361} 7362 7363func (x *InspectTemplate) GetName() string { 7364 if x != nil { 7365 return x.Name 7366 } 7367 return "" 7368} 7369 7370func (x *InspectTemplate) GetDisplayName() string { 7371 if x != nil { 7372 return x.DisplayName 7373 } 7374 return "" 7375} 7376 7377func (x *InspectTemplate) GetDescription() string { 7378 if x != nil { 7379 return x.Description 7380 } 7381 return "" 7382} 7383 7384func (x *InspectTemplate) GetCreateTime() *timestamppb.Timestamp { 7385 if x != nil { 7386 return x.CreateTime 7387 } 7388 return nil 7389} 7390 7391func (x *InspectTemplate) GetUpdateTime() *timestamppb.Timestamp { 7392 if x != nil { 7393 return x.UpdateTime 7394 } 7395 return nil 7396} 7397 7398func (x *InspectTemplate) GetInspectConfig() *InspectConfig { 7399 if x != nil { 7400 return x.InspectConfig 7401 } 7402 return nil 7403} 7404 7405// DeidentifyTemplates contains instructions on how to de-identify content. 7406// See https://cloud.google.com/dlp/docs/concepts-templates to learn more. 7407type DeidentifyTemplate struct { 7408 state protoimpl.MessageState 7409 sizeCache protoimpl.SizeCache 7410 unknownFields protoimpl.UnknownFields 7411 7412 // Output only. The template name. 7413 // 7414 // The template will have one of the following formats: 7415 // `projects/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID` OR 7416 // `organizations/ORGANIZATION_ID/deidentifyTemplates/TEMPLATE_ID` 7417 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 7418 // Display name (max 256 chars). 7419 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 7420 // Short description (max 256 chars). 7421 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 7422 // Output only. The creation timestamp of an inspectTemplate. 7423 CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 7424 // Output only. The last update timestamp of an inspectTemplate. 7425 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 7426 // ///////////// // The core content of the template // /////////////// 7427 DeidentifyConfig *DeidentifyConfig `protobuf:"bytes,6,opt,name=deidentify_config,json=deidentifyConfig,proto3" json:"deidentify_config,omitempty"` 7428} 7429 7430func (x *DeidentifyTemplate) Reset() { 7431 *x = DeidentifyTemplate{} 7432 if protoimpl.UnsafeEnabled { 7433 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[75] 7434 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7435 ms.StoreMessageInfo(mi) 7436 } 7437} 7438 7439func (x *DeidentifyTemplate) String() string { 7440 return protoimpl.X.MessageStringOf(x) 7441} 7442 7443func (*DeidentifyTemplate) ProtoMessage() {} 7444 7445func (x *DeidentifyTemplate) ProtoReflect() protoreflect.Message { 7446 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[75] 7447 if protoimpl.UnsafeEnabled && x != nil { 7448 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7449 if ms.LoadMessageInfo() == nil { 7450 ms.StoreMessageInfo(mi) 7451 } 7452 return ms 7453 } 7454 return mi.MessageOf(x) 7455} 7456 7457// Deprecated: Use DeidentifyTemplate.ProtoReflect.Descriptor instead. 7458func (*DeidentifyTemplate) Descriptor() ([]byte, []int) { 7459 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{75} 7460} 7461 7462func (x *DeidentifyTemplate) GetName() string { 7463 if x != nil { 7464 return x.Name 7465 } 7466 return "" 7467} 7468 7469func (x *DeidentifyTemplate) GetDisplayName() string { 7470 if x != nil { 7471 return x.DisplayName 7472 } 7473 return "" 7474} 7475 7476func (x *DeidentifyTemplate) GetDescription() string { 7477 if x != nil { 7478 return x.Description 7479 } 7480 return "" 7481} 7482 7483func (x *DeidentifyTemplate) GetCreateTime() *timestamppb.Timestamp { 7484 if x != nil { 7485 return x.CreateTime 7486 } 7487 return nil 7488} 7489 7490func (x *DeidentifyTemplate) GetUpdateTime() *timestamppb.Timestamp { 7491 if x != nil { 7492 return x.UpdateTime 7493 } 7494 return nil 7495} 7496 7497func (x *DeidentifyTemplate) GetDeidentifyConfig() *DeidentifyConfig { 7498 if x != nil { 7499 return x.DeidentifyConfig 7500 } 7501 return nil 7502} 7503 7504// Details information about an error encountered during job execution or 7505// the results of an unsuccessful activation of the JobTrigger. 7506type Error struct { 7507 state protoimpl.MessageState 7508 sizeCache protoimpl.SizeCache 7509 unknownFields protoimpl.UnknownFields 7510 7511 // Detailed error codes and messages. 7512 Details *status.Status `protobuf:"bytes,1,opt,name=details,proto3" json:"details,omitempty"` 7513 // The times the error occurred. 7514 Timestamps []*timestamppb.Timestamp `protobuf:"bytes,2,rep,name=timestamps,proto3" json:"timestamps,omitempty"` 7515} 7516 7517func (x *Error) Reset() { 7518 *x = Error{} 7519 if protoimpl.UnsafeEnabled { 7520 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[76] 7521 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7522 ms.StoreMessageInfo(mi) 7523 } 7524} 7525 7526func (x *Error) String() string { 7527 return protoimpl.X.MessageStringOf(x) 7528} 7529 7530func (*Error) ProtoMessage() {} 7531 7532func (x *Error) ProtoReflect() protoreflect.Message { 7533 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[76] 7534 if protoimpl.UnsafeEnabled && x != nil { 7535 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7536 if ms.LoadMessageInfo() == nil { 7537 ms.StoreMessageInfo(mi) 7538 } 7539 return ms 7540 } 7541 return mi.MessageOf(x) 7542} 7543 7544// Deprecated: Use Error.ProtoReflect.Descriptor instead. 7545func (*Error) Descriptor() ([]byte, []int) { 7546 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{76} 7547} 7548 7549func (x *Error) GetDetails() *status.Status { 7550 if x != nil { 7551 return x.Details 7552 } 7553 return nil 7554} 7555 7556func (x *Error) GetTimestamps() []*timestamppb.Timestamp { 7557 if x != nil { 7558 return x.Timestamps 7559 } 7560 return nil 7561} 7562 7563// Contains a configuration to make dlp api calls on a repeating basis. 7564// See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more. 7565type JobTrigger struct { 7566 state protoimpl.MessageState 7567 sizeCache protoimpl.SizeCache 7568 unknownFields protoimpl.UnknownFields 7569 7570 // Unique resource name for the triggeredJob, assigned by the service when the 7571 // triggeredJob is created, for example 7572 // `projects/dlp-test-project/jobTriggers/53234423`. 7573 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 7574 // Display name (max 100 chars) 7575 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 7576 // User provided description (max 256 chars) 7577 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 7578 // The configuration details for the specific type of job to run. 7579 // 7580 // Types that are assignable to Job: 7581 // *JobTrigger_InspectJob 7582 Job isJobTrigger_Job `protobuf_oneof:"job"` 7583 // A list of triggers which will be OR'ed together. Only one in the list 7584 // needs to trigger for a job to be started. The list may contain only 7585 // a single Schedule trigger and must have at least one object. 7586 Triggers []*JobTrigger_Trigger `protobuf:"bytes,5,rep,name=triggers,proto3" json:"triggers,omitempty"` 7587 // Output only. A stream of errors encountered when the trigger was activated. Repeated 7588 // errors may result in the JobTrigger automatically being paused. 7589 // Will return the last 100 errors. Whenever the JobTrigger is modified 7590 // this list will be cleared. 7591 Errors []*Error `protobuf:"bytes,6,rep,name=errors,proto3" json:"errors,omitempty"` 7592 // Output only. The creation timestamp of a triggeredJob. 7593 CreateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 7594 // Output only. The last update timestamp of a triggeredJob. 7595 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 7596 // Output only. The timestamp of the last time this trigger executed. 7597 LastRunTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=last_run_time,json=lastRunTime,proto3" json:"last_run_time,omitempty"` 7598 // Required. A status for this trigger. 7599 Status JobTrigger_Status `protobuf:"varint,10,opt,name=status,proto3,enum=google.privacy.dlp.v2.JobTrigger_Status" json:"status,omitempty"` 7600} 7601 7602func (x *JobTrigger) Reset() { 7603 *x = JobTrigger{} 7604 if protoimpl.UnsafeEnabled { 7605 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[77] 7606 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7607 ms.StoreMessageInfo(mi) 7608 } 7609} 7610 7611func (x *JobTrigger) String() string { 7612 return protoimpl.X.MessageStringOf(x) 7613} 7614 7615func (*JobTrigger) ProtoMessage() {} 7616 7617func (x *JobTrigger) ProtoReflect() protoreflect.Message { 7618 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[77] 7619 if protoimpl.UnsafeEnabled && x != nil { 7620 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7621 if ms.LoadMessageInfo() == nil { 7622 ms.StoreMessageInfo(mi) 7623 } 7624 return ms 7625 } 7626 return mi.MessageOf(x) 7627} 7628 7629// Deprecated: Use JobTrigger.ProtoReflect.Descriptor instead. 7630func (*JobTrigger) Descriptor() ([]byte, []int) { 7631 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{77} 7632} 7633 7634func (x *JobTrigger) GetName() string { 7635 if x != nil { 7636 return x.Name 7637 } 7638 return "" 7639} 7640 7641func (x *JobTrigger) GetDisplayName() string { 7642 if x != nil { 7643 return x.DisplayName 7644 } 7645 return "" 7646} 7647 7648func (x *JobTrigger) GetDescription() string { 7649 if x != nil { 7650 return x.Description 7651 } 7652 return "" 7653} 7654 7655func (m *JobTrigger) GetJob() isJobTrigger_Job { 7656 if m != nil { 7657 return m.Job 7658 } 7659 return nil 7660} 7661 7662func (x *JobTrigger) GetInspectJob() *InspectJobConfig { 7663 if x, ok := x.GetJob().(*JobTrigger_InspectJob); ok { 7664 return x.InspectJob 7665 } 7666 return nil 7667} 7668 7669func (x *JobTrigger) GetTriggers() []*JobTrigger_Trigger { 7670 if x != nil { 7671 return x.Triggers 7672 } 7673 return nil 7674} 7675 7676func (x *JobTrigger) GetErrors() []*Error { 7677 if x != nil { 7678 return x.Errors 7679 } 7680 return nil 7681} 7682 7683func (x *JobTrigger) GetCreateTime() *timestamppb.Timestamp { 7684 if x != nil { 7685 return x.CreateTime 7686 } 7687 return nil 7688} 7689 7690func (x *JobTrigger) GetUpdateTime() *timestamppb.Timestamp { 7691 if x != nil { 7692 return x.UpdateTime 7693 } 7694 return nil 7695} 7696 7697func (x *JobTrigger) GetLastRunTime() *timestamppb.Timestamp { 7698 if x != nil { 7699 return x.LastRunTime 7700 } 7701 return nil 7702} 7703 7704func (x *JobTrigger) GetStatus() JobTrigger_Status { 7705 if x != nil { 7706 return x.Status 7707 } 7708 return JobTrigger_STATUS_UNSPECIFIED 7709} 7710 7711type isJobTrigger_Job interface { 7712 isJobTrigger_Job() 7713} 7714 7715type JobTrigger_InspectJob struct { 7716 // For inspect jobs, a snapshot of the configuration. 7717 InspectJob *InspectJobConfig `protobuf:"bytes,4,opt,name=inspect_job,json=inspectJob,proto3,oneof"` 7718} 7719 7720func (*JobTrigger_InspectJob) isJobTrigger_Job() {} 7721 7722// A task to execute on the completion of a job. 7723// See https://cloud.google.com/dlp/docs/concepts-actions to learn more. 7724type Action struct { 7725 state protoimpl.MessageState 7726 sizeCache protoimpl.SizeCache 7727 unknownFields protoimpl.UnknownFields 7728 7729 // Types that are assignable to Action: 7730 // *Action_SaveFindings_ 7731 // *Action_PubSub 7732 // *Action_PublishSummaryToCscc_ 7733 // *Action_PublishFindingsToCloudDataCatalog_ 7734 // *Action_JobNotificationEmails_ 7735 // *Action_PublishToStackdriver_ 7736 Action isAction_Action `protobuf_oneof:"action"` 7737} 7738 7739func (x *Action) Reset() { 7740 *x = Action{} 7741 if protoimpl.UnsafeEnabled { 7742 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[78] 7743 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7744 ms.StoreMessageInfo(mi) 7745 } 7746} 7747 7748func (x *Action) String() string { 7749 return protoimpl.X.MessageStringOf(x) 7750} 7751 7752func (*Action) ProtoMessage() {} 7753 7754func (x *Action) ProtoReflect() protoreflect.Message { 7755 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[78] 7756 if protoimpl.UnsafeEnabled && x != nil { 7757 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7758 if ms.LoadMessageInfo() == nil { 7759 ms.StoreMessageInfo(mi) 7760 } 7761 return ms 7762 } 7763 return mi.MessageOf(x) 7764} 7765 7766// Deprecated: Use Action.ProtoReflect.Descriptor instead. 7767func (*Action) Descriptor() ([]byte, []int) { 7768 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{78} 7769} 7770 7771func (m *Action) GetAction() isAction_Action { 7772 if m != nil { 7773 return m.Action 7774 } 7775 return nil 7776} 7777 7778func (x *Action) GetSaveFindings() *Action_SaveFindings { 7779 if x, ok := x.GetAction().(*Action_SaveFindings_); ok { 7780 return x.SaveFindings 7781 } 7782 return nil 7783} 7784 7785func (x *Action) GetPubSub() *Action_PublishToPubSub { 7786 if x, ok := x.GetAction().(*Action_PubSub); ok { 7787 return x.PubSub 7788 } 7789 return nil 7790} 7791 7792func (x *Action) GetPublishSummaryToCscc() *Action_PublishSummaryToCscc { 7793 if x, ok := x.GetAction().(*Action_PublishSummaryToCscc_); ok { 7794 return x.PublishSummaryToCscc 7795 } 7796 return nil 7797} 7798 7799func (x *Action) GetPublishFindingsToCloudDataCatalog() *Action_PublishFindingsToCloudDataCatalog { 7800 if x, ok := x.GetAction().(*Action_PublishFindingsToCloudDataCatalog_); ok { 7801 return x.PublishFindingsToCloudDataCatalog 7802 } 7803 return nil 7804} 7805 7806func (x *Action) GetJobNotificationEmails() *Action_JobNotificationEmails { 7807 if x, ok := x.GetAction().(*Action_JobNotificationEmails_); ok { 7808 return x.JobNotificationEmails 7809 } 7810 return nil 7811} 7812 7813func (x *Action) GetPublishToStackdriver() *Action_PublishToStackdriver { 7814 if x, ok := x.GetAction().(*Action_PublishToStackdriver_); ok { 7815 return x.PublishToStackdriver 7816 } 7817 return nil 7818} 7819 7820type isAction_Action interface { 7821 isAction_Action() 7822} 7823 7824type Action_SaveFindings_ struct { 7825 // Save resulting findings in a provided location. 7826 SaveFindings *Action_SaveFindings `protobuf:"bytes,1,opt,name=save_findings,json=saveFindings,proto3,oneof"` 7827} 7828 7829type Action_PubSub struct { 7830 // Publish a notification to a pubsub topic. 7831 PubSub *Action_PublishToPubSub `protobuf:"bytes,2,opt,name=pub_sub,json=pubSub,proto3,oneof"` 7832} 7833 7834type Action_PublishSummaryToCscc_ struct { 7835 // Publish summary to Cloud Security Command Center (Alpha). 7836 PublishSummaryToCscc *Action_PublishSummaryToCscc `protobuf:"bytes,3,opt,name=publish_summary_to_cscc,json=publishSummaryToCscc,proto3,oneof"` 7837} 7838 7839type Action_PublishFindingsToCloudDataCatalog_ struct { 7840 // Publish findings to Cloud Datahub. 7841 PublishFindingsToCloudDataCatalog *Action_PublishFindingsToCloudDataCatalog `protobuf:"bytes,5,opt,name=publish_findings_to_cloud_data_catalog,json=publishFindingsToCloudDataCatalog,proto3,oneof"` 7842} 7843 7844type Action_JobNotificationEmails_ struct { 7845 // Enable email notification for project owners and editors on job's 7846 // completion/failure. 7847 JobNotificationEmails *Action_JobNotificationEmails `protobuf:"bytes,8,opt,name=job_notification_emails,json=jobNotificationEmails,proto3,oneof"` 7848} 7849 7850type Action_PublishToStackdriver_ struct { 7851 // Enable Stackdriver metric dlp.googleapis.com/finding_count. 7852 PublishToStackdriver *Action_PublishToStackdriver `protobuf:"bytes,9,opt,name=publish_to_stackdriver,json=publishToStackdriver,proto3,oneof"` 7853} 7854 7855func (*Action_SaveFindings_) isAction_Action() {} 7856 7857func (*Action_PubSub) isAction_Action() {} 7858 7859func (*Action_PublishSummaryToCscc_) isAction_Action() {} 7860 7861func (*Action_PublishFindingsToCloudDataCatalog_) isAction_Action() {} 7862 7863func (*Action_JobNotificationEmails_) isAction_Action() {} 7864 7865func (*Action_PublishToStackdriver_) isAction_Action() {} 7866 7867// Request message for CreateInspectTemplate. 7868type CreateInspectTemplateRequest struct { 7869 state protoimpl.MessageState 7870 sizeCache protoimpl.SizeCache 7871 unknownFields protoimpl.UnknownFields 7872 7873 // Required. Parent resource name. 7874 // 7875 // The format of this value varies depending on the scope of the request 7876 // (project or organization) and whether you have [specified a processing 7877 // location](https://cloud.google.com/dlp/docs/specifying-location): 7878 // 7879 // + Projects scope, location specified:<br/> 7880 // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> 7881 // + Projects scope, no location specified (defaults to global):<br/> 7882 // `projects/`<var>PROJECT_ID</var> 7883 // + Organizations scope, location specified:<br/> 7884 // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var> 7885 // + Organizations scope, no location specified (defaults to global):<br/> 7886 // `organizations/`<var>ORG_ID</var> 7887 // 7888 // The following example `parent` string specifies a parent project with the 7889 // identifier `example-project`, and specifies the `europe-west3` location 7890 // for processing data: 7891 // 7892 // parent=projects/example-project/locations/europe-west3 7893 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 7894 // Required. The InspectTemplate to create. 7895 InspectTemplate *InspectTemplate `protobuf:"bytes,2,opt,name=inspect_template,json=inspectTemplate,proto3" json:"inspect_template,omitempty"` 7896 // The template id can contain uppercase and lowercase letters, 7897 // numbers, and hyphens; that is, it must match the regular 7898 // expression: `[a-zA-Z\d-_]+`. The maximum length is 100 7899 // characters. Can be empty to allow the system to generate one. 7900 TemplateId string `protobuf:"bytes,3,opt,name=template_id,json=templateId,proto3" json:"template_id,omitempty"` 7901 // Deprecated. This field has no effect. 7902 LocationId string `protobuf:"bytes,4,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 7903} 7904 7905func (x *CreateInspectTemplateRequest) Reset() { 7906 *x = CreateInspectTemplateRequest{} 7907 if protoimpl.UnsafeEnabled { 7908 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[79] 7909 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7910 ms.StoreMessageInfo(mi) 7911 } 7912} 7913 7914func (x *CreateInspectTemplateRequest) String() string { 7915 return protoimpl.X.MessageStringOf(x) 7916} 7917 7918func (*CreateInspectTemplateRequest) ProtoMessage() {} 7919 7920func (x *CreateInspectTemplateRequest) ProtoReflect() protoreflect.Message { 7921 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[79] 7922 if protoimpl.UnsafeEnabled && x != nil { 7923 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7924 if ms.LoadMessageInfo() == nil { 7925 ms.StoreMessageInfo(mi) 7926 } 7927 return ms 7928 } 7929 return mi.MessageOf(x) 7930} 7931 7932// Deprecated: Use CreateInspectTemplateRequest.ProtoReflect.Descriptor instead. 7933func (*CreateInspectTemplateRequest) Descriptor() ([]byte, []int) { 7934 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{79} 7935} 7936 7937func (x *CreateInspectTemplateRequest) GetParent() string { 7938 if x != nil { 7939 return x.Parent 7940 } 7941 return "" 7942} 7943 7944func (x *CreateInspectTemplateRequest) GetInspectTemplate() *InspectTemplate { 7945 if x != nil { 7946 return x.InspectTemplate 7947 } 7948 return nil 7949} 7950 7951func (x *CreateInspectTemplateRequest) GetTemplateId() string { 7952 if x != nil { 7953 return x.TemplateId 7954 } 7955 return "" 7956} 7957 7958func (x *CreateInspectTemplateRequest) GetLocationId() string { 7959 if x != nil { 7960 return x.LocationId 7961 } 7962 return "" 7963} 7964 7965// Request message for UpdateInspectTemplate. 7966type UpdateInspectTemplateRequest struct { 7967 state protoimpl.MessageState 7968 sizeCache protoimpl.SizeCache 7969 unknownFields protoimpl.UnknownFields 7970 7971 // Required. Resource name of organization and inspectTemplate to be updated, for 7972 // example `organizations/433245324/inspectTemplates/432452342` or 7973 // projects/project-id/inspectTemplates/432452342. 7974 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 7975 // New InspectTemplate value. 7976 InspectTemplate *InspectTemplate `protobuf:"bytes,2,opt,name=inspect_template,json=inspectTemplate,proto3" json:"inspect_template,omitempty"` 7977 // Mask to control which fields get updated. 7978 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 7979} 7980 7981func (x *UpdateInspectTemplateRequest) Reset() { 7982 *x = UpdateInspectTemplateRequest{} 7983 if protoimpl.UnsafeEnabled { 7984 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[80] 7985 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7986 ms.StoreMessageInfo(mi) 7987 } 7988} 7989 7990func (x *UpdateInspectTemplateRequest) String() string { 7991 return protoimpl.X.MessageStringOf(x) 7992} 7993 7994func (*UpdateInspectTemplateRequest) ProtoMessage() {} 7995 7996func (x *UpdateInspectTemplateRequest) ProtoReflect() protoreflect.Message { 7997 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[80] 7998 if protoimpl.UnsafeEnabled && x != nil { 7999 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8000 if ms.LoadMessageInfo() == nil { 8001 ms.StoreMessageInfo(mi) 8002 } 8003 return ms 8004 } 8005 return mi.MessageOf(x) 8006} 8007 8008// Deprecated: Use UpdateInspectTemplateRequest.ProtoReflect.Descriptor instead. 8009func (*UpdateInspectTemplateRequest) Descriptor() ([]byte, []int) { 8010 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{80} 8011} 8012 8013func (x *UpdateInspectTemplateRequest) GetName() string { 8014 if x != nil { 8015 return x.Name 8016 } 8017 return "" 8018} 8019 8020func (x *UpdateInspectTemplateRequest) GetInspectTemplate() *InspectTemplate { 8021 if x != nil { 8022 return x.InspectTemplate 8023 } 8024 return nil 8025} 8026 8027func (x *UpdateInspectTemplateRequest) GetUpdateMask() *fieldmaskpb.FieldMask { 8028 if x != nil { 8029 return x.UpdateMask 8030 } 8031 return nil 8032} 8033 8034// Request message for GetInspectTemplate. 8035type GetInspectTemplateRequest struct { 8036 state protoimpl.MessageState 8037 sizeCache protoimpl.SizeCache 8038 unknownFields protoimpl.UnknownFields 8039 8040 // Required. Resource name of the organization and inspectTemplate to be read, for 8041 // example `organizations/433245324/inspectTemplates/432452342` or 8042 // projects/project-id/inspectTemplates/432452342. 8043 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 8044} 8045 8046func (x *GetInspectTemplateRequest) Reset() { 8047 *x = GetInspectTemplateRequest{} 8048 if protoimpl.UnsafeEnabled { 8049 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[81] 8050 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8051 ms.StoreMessageInfo(mi) 8052 } 8053} 8054 8055func (x *GetInspectTemplateRequest) String() string { 8056 return protoimpl.X.MessageStringOf(x) 8057} 8058 8059func (*GetInspectTemplateRequest) ProtoMessage() {} 8060 8061func (x *GetInspectTemplateRequest) ProtoReflect() protoreflect.Message { 8062 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[81] 8063 if protoimpl.UnsafeEnabled && x != nil { 8064 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8065 if ms.LoadMessageInfo() == nil { 8066 ms.StoreMessageInfo(mi) 8067 } 8068 return ms 8069 } 8070 return mi.MessageOf(x) 8071} 8072 8073// Deprecated: Use GetInspectTemplateRequest.ProtoReflect.Descriptor instead. 8074func (*GetInspectTemplateRequest) Descriptor() ([]byte, []int) { 8075 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{81} 8076} 8077 8078func (x *GetInspectTemplateRequest) GetName() string { 8079 if x != nil { 8080 return x.Name 8081 } 8082 return "" 8083} 8084 8085// Request message for ListInspectTemplates. 8086type ListInspectTemplatesRequest struct { 8087 state protoimpl.MessageState 8088 sizeCache protoimpl.SizeCache 8089 unknownFields protoimpl.UnknownFields 8090 8091 // Required. Parent resource name. 8092 // 8093 // The format of this value varies depending on the scope of the request 8094 // (project or organization) and whether you have [specified a processing 8095 // location](https://cloud.google.com/dlp/docs/specifying-location): 8096 // 8097 // + Projects scope, location specified:<br/> 8098 // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> 8099 // + Projects scope, no location specified (defaults to global):<br/> 8100 // `projects/`<var>PROJECT_ID</var> 8101 // + Organizations scope, location specified:<br/> 8102 // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var> 8103 // + Organizations scope, no location specified (defaults to global):<br/> 8104 // `organizations/`<var>ORG_ID</var> 8105 // 8106 // The following example `parent` string specifies a parent project with the 8107 // identifier `example-project`, and specifies the `europe-west3` location 8108 // for processing data: 8109 // 8110 // parent=projects/example-project/locations/europe-west3 8111 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 8112 // Page token to continue retrieval. Comes from previous call 8113 // to `ListInspectTemplates`. 8114 PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 8115 // Size of the page, can be limited by server. If zero server returns 8116 // a page of max size 100. 8117 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 8118 // Comma separated list of fields to order by, 8119 // followed by `asc` or `desc` postfix. This list is case-insensitive, 8120 // default sorting order is ascending, redundant space characters are 8121 // insignificant. 8122 // 8123 // Example: `name asc,update_time, create_time desc` 8124 // 8125 // Supported fields are: 8126 // 8127 // - `create_time`: corresponds to time the template was created. 8128 // - `update_time`: corresponds to time the template was last updated. 8129 // - `name`: corresponds to template's name. 8130 // - `display_name`: corresponds to template's display name. 8131 OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 8132 // Deprecated. This field has no effect. 8133 LocationId string `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 8134} 8135 8136func (x *ListInspectTemplatesRequest) Reset() { 8137 *x = ListInspectTemplatesRequest{} 8138 if protoimpl.UnsafeEnabled { 8139 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[82] 8140 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8141 ms.StoreMessageInfo(mi) 8142 } 8143} 8144 8145func (x *ListInspectTemplatesRequest) String() string { 8146 return protoimpl.X.MessageStringOf(x) 8147} 8148 8149func (*ListInspectTemplatesRequest) ProtoMessage() {} 8150 8151func (x *ListInspectTemplatesRequest) ProtoReflect() protoreflect.Message { 8152 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[82] 8153 if protoimpl.UnsafeEnabled && x != nil { 8154 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8155 if ms.LoadMessageInfo() == nil { 8156 ms.StoreMessageInfo(mi) 8157 } 8158 return ms 8159 } 8160 return mi.MessageOf(x) 8161} 8162 8163// Deprecated: Use ListInspectTemplatesRequest.ProtoReflect.Descriptor instead. 8164func (*ListInspectTemplatesRequest) Descriptor() ([]byte, []int) { 8165 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{82} 8166} 8167 8168func (x *ListInspectTemplatesRequest) GetParent() string { 8169 if x != nil { 8170 return x.Parent 8171 } 8172 return "" 8173} 8174 8175func (x *ListInspectTemplatesRequest) GetPageToken() string { 8176 if x != nil { 8177 return x.PageToken 8178 } 8179 return "" 8180} 8181 8182func (x *ListInspectTemplatesRequest) GetPageSize() int32 { 8183 if x != nil { 8184 return x.PageSize 8185 } 8186 return 0 8187} 8188 8189func (x *ListInspectTemplatesRequest) GetOrderBy() string { 8190 if x != nil { 8191 return x.OrderBy 8192 } 8193 return "" 8194} 8195 8196func (x *ListInspectTemplatesRequest) GetLocationId() string { 8197 if x != nil { 8198 return x.LocationId 8199 } 8200 return "" 8201} 8202 8203// Response message for ListInspectTemplates. 8204type ListInspectTemplatesResponse struct { 8205 state protoimpl.MessageState 8206 sizeCache protoimpl.SizeCache 8207 unknownFields protoimpl.UnknownFields 8208 8209 // List of inspectTemplates, up to page_size in ListInspectTemplatesRequest. 8210 InspectTemplates []*InspectTemplate `protobuf:"bytes,1,rep,name=inspect_templates,json=inspectTemplates,proto3" json:"inspect_templates,omitempty"` 8211 // If the next page is available then the next page token to be used 8212 // in following ListInspectTemplates request. 8213 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 8214} 8215 8216func (x *ListInspectTemplatesResponse) Reset() { 8217 *x = ListInspectTemplatesResponse{} 8218 if protoimpl.UnsafeEnabled { 8219 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[83] 8220 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8221 ms.StoreMessageInfo(mi) 8222 } 8223} 8224 8225func (x *ListInspectTemplatesResponse) String() string { 8226 return protoimpl.X.MessageStringOf(x) 8227} 8228 8229func (*ListInspectTemplatesResponse) ProtoMessage() {} 8230 8231func (x *ListInspectTemplatesResponse) ProtoReflect() protoreflect.Message { 8232 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[83] 8233 if protoimpl.UnsafeEnabled && x != nil { 8234 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8235 if ms.LoadMessageInfo() == nil { 8236 ms.StoreMessageInfo(mi) 8237 } 8238 return ms 8239 } 8240 return mi.MessageOf(x) 8241} 8242 8243// Deprecated: Use ListInspectTemplatesResponse.ProtoReflect.Descriptor instead. 8244func (*ListInspectTemplatesResponse) Descriptor() ([]byte, []int) { 8245 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{83} 8246} 8247 8248func (x *ListInspectTemplatesResponse) GetInspectTemplates() []*InspectTemplate { 8249 if x != nil { 8250 return x.InspectTemplates 8251 } 8252 return nil 8253} 8254 8255func (x *ListInspectTemplatesResponse) GetNextPageToken() string { 8256 if x != nil { 8257 return x.NextPageToken 8258 } 8259 return "" 8260} 8261 8262// Request message for DeleteInspectTemplate. 8263type DeleteInspectTemplateRequest struct { 8264 state protoimpl.MessageState 8265 sizeCache protoimpl.SizeCache 8266 unknownFields protoimpl.UnknownFields 8267 8268 // Required. Resource name of the organization and inspectTemplate to be deleted, for 8269 // example `organizations/433245324/inspectTemplates/432452342` or 8270 // projects/project-id/inspectTemplates/432452342. 8271 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 8272} 8273 8274func (x *DeleteInspectTemplateRequest) Reset() { 8275 *x = DeleteInspectTemplateRequest{} 8276 if protoimpl.UnsafeEnabled { 8277 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[84] 8278 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8279 ms.StoreMessageInfo(mi) 8280 } 8281} 8282 8283func (x *DeleteInspectTemplateRequest) String() string { 8284 return protoimpl.X.MessageStringOf(x) 8285} 8286 8287func (*DeleteInspectTemplateRequest) ProtoMessage() {} 8288 8289func (x *DeleteInspectTemplateRequest) ProtoReflect() protoreflect.Message { 8290 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[84] 8291 if protoimpl.UnsafeEnabled && x != nil { 8292 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8293 if ms.LoadMessageInfo() == nil { 8294 ms.StoreMessageInfo(mi) 8295 } 8296 return ms 8297 } 8298 return mi.MessageOf(x) 8299} 8300 8301// Deprecated: Use DeleteInspectTemplateRequest.ProtoReflect.Descriptor instead. 8302func (*DeleteInspectTemplateRequest) Descriptor() ([]byte, []int) { 8303 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{84} 8304} 8305 8306func (x *DeleteInspectTemplateRequest) GetName() string { 8307 if x != nil { 8308 return x.Name 8309 } 8310 return "" 8311} 8312 8313// Request message for CreateJobTrigger. 8314type CreateJobTriggerRequest struct { 8315 state protoimpl.MessageState 8316 sizeCache protoimpl.SizeCache 8317 unknownFields protoimpl.UnknownFields 8318 8319 // Required. Parent resource name. 8320 // 8321 // The format of this value varies depending on whether you have [specified a 8322 // processing 8323 // location](https://cloud.google.com/dlp/docs/specifying-location): 8324 // 8325 // + Projects scope, location specified:<br/> 8326 // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> 8327 // + Projects scope, no location specified (defaults to global):<br/> 8328 // `projects/`<var>PROJECT_ID</var> 8329 // 8330 // The following example `parent` string specifies a parent project with the 8331 // identifier `example-project`, and specifies the `europe-west3` location 8332 // for processing data: 8333 // 8334 // parent=projects/example-project/locations/europe-west3 8335 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 8336 // Required. The JobTrigger to create. 8337 JobTrigger *JobTrigger `protobuf:"bytes,2,opt,name=job_trigger,json=jobTrigger,proto3" json:"job_trigger,omitempty"` 8338 // The trigger id can contain uppercase and lowercase letters, 8339 // numbers, and hyphens; that is, it must match the regular 8340 // expression: `[a-zA-Z\d-_]+`. The maximum length is 100 8341 // characters. Can be empty to allow the system to generate one. 8342 TriggerId string `protobuf:"bytes,3,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"` 8343 // Deprecated. This field has no effect. 8344 LocationId string `protobuf:"bytes,4,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 8345} 8346 8347func (x *CreateJobTriggerRequest) Reset() { 8348 *x = CreateJobTriggerRequest{} 8349 if protoimpl.UnsafeEnabled { 8350 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[85] 8351 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8352 ms.StoreMessageInfo(mi) 8353 } 8354} 8355 8356func (x *CreateJobTriggerRequest) String() string { 8357 return protoimpl.X.MessageStringOf(x) 8358} 8359 8360func (*CreateJobTriggerRequest) ProtoMessage() {} 8361 8362func (x *CreateJobTriggerRequest) ProtoReflect() protoreflect.Message { 8363 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[85] 8364 if protoimpl.UnsafeEnabled && x != nil { 8365 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8366 if ms.LoadMessageInfo() == nil { 8367 ms.StoreMessageInfo(mi) 8368 } 8369 return ms 8370 } 8371 return mi.MessageOf(x) 8372} 8373 8374// Deprecated: Use CreateJobTriggerRequest.ProtoReflect.Descriptor instead. 8375func (*CreateJobTriggerRequest) Descriptor() ([]byte, []int) { 8376 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{85} 8377} 8378 8379func (x *CreateJobTriggerRequest) GetParent() string { 8380 if x != nil { 8381 return x.Parent 8382 } 8383 return "" 8384} 8385 8386func (x *CreateJobTriggerRequest) GetJobTrigger() *JobTrigger { 8387 if x != nil { 8388 return x.JobTrigger 8389 } 8390 return nil 8391} 8392 8393func (x *CreateJobTriggerRequest) GetTriggerId() string { 8394 if x != nil { 8395 return x.TriggerId 8396 } 8397 return "" 8398} 8399 8400func (x *CreateJobTriggerRequest) GetLocationId() string { 8401 if x != nil { 8402 return x.LocationId 8403 } 8404 return "" 8405} 8406 8407// Request message for ActivateJobTrigger. 8408type ActivateJobTriggerRequest struct { 8409 state protoimpl.MessageState 8410 sizeCache protoimpl.SizeCache 8411 unknownFields protoimpl.UnknownFields 8412 8413 // Required. Resource name of the trigger to activate, for example 8414 // `projects/dlp-test-project/jobTriggers/53234423`. 8415 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 8416} 8417 8418func (x *ActivateJobTriggerRequest) Reset() { 8419 *x = ActivateJobTriggerRequest{} 8420 if protoimpl.UnsafeEnabled { 8421 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[86] 8422 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8423 ms.StoreMessageInfo(mi) 8424 } 8425} 8426 8427func (x *ActivateJobTriggerRequest) String() string { 8428 return protoimpl.X.MessageStringOf(x) 8429} 8430 8431func (*ActivateJobTriggerRequest) ProtoMessage() {} 8432 8433func (x *ActivateJobTriggerRequest) ProtoReflect() protoreflect.Message { 8434 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[86] 8435 if protoimpl.UnsafeEnabled && x != nil { 8436 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8437 if ms.LoadMessageInfo() == nil { 8438 ms.StoreMessageInfo(mi) 8439 } 8440 return ms 8441 } 8442 return mi.MessageOf(x) 8443} 8444 8445// Deprecated: Use ActivateJobTriggerRequest.ProtoReflect.Descriptor instead. 8446func (*ActivateJobTriggerRequest) Descriptor() ([]byte, []int) { 8447 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{86} 8448} 8449 8450func (x *ActivateJobTriggerRequest) GetName() string { 8451 if x != nil { 8452 return x.Name 8453 } 8454 return "" 8455} 8456 8457// Request message for UpdateJobTrigger. 8458type UpdateJobTriggerRequest struct { 8459 state protoimpl.MessageState 8460 sizeCache protoimpl.SizeCache 8461 unknownFields protoimpl.UnknownFields 8462 8463 // Required. Resource name of the project and the triggeredJob, for example 8464 // `projects/dlp-test-project/jobTriggers/53234423`. 8465 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 8466 // New JobTrigger value. 8467 JobTrigger *JobTrigger `protobuf:"bytes,2,opt,name=job_trigger,json=jobTrigger,proto3" json:"job_trigger,omitempty"` 8468 // Mask to control which fields get updated. 8469 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 8470} 8471 8472func (x *UpdateJobTriggerRequest) Reset() { 8473 *x = UpdateJobTriggerRequest{} 8474 if protoimpl.UnsafeEnabled { 8475 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[87] 8476 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8477 ms.StoreMessageInfo(mi) 8478 } 8479} 8480 8481func (x *UpdateJobTriggerRequest) String() string { 8482 return protoimpl.X.MessageStringOf(x) 8483} 8484 8485func (*UpdateJobTriggerRequest) ProtoMessage() {} 8486 8487func (x *UpdateJobTriggerRequest) ProtoReflect() protoreflect.Message { 8488 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[87] 8489 if protoimpl.UnsafeEnabled && x != nil { 8490 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8491 if ms.LoadMessageInfo() == nil { 8492 ms.StoreMessageInfo(mi) 8493 } 8494 return ms 8495 } 8496 return mi.MessageOf(x) 8497} 8498 8499// Deprecated: Use UpdateJobTriggerRequest.ProtoReflect.Descriptor instead. 8500func (*UpdateJobTriggerRequest) Descriptor() ([]byte, []int) { 8501 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{87} 8502} 8503 8504func (x *UpdateJobTriggerRequest) GetName() string { 8505 if x != nil { 8506 return x.Name 8507 } 8508 return "" 8509} 8510 8511func (x *UpdateJobTriggerRequest) GetJobTrigger() *JobTrigger { 8512 if x != nil { 8513 return x.JobTrigger 8514 } 8515 return nil 8516} 8517 8518func (x *UpdateJobTriggerRequest) GetUpdateMask() *fieldmaskpb.FieldMask { 8519 if x != nil { 8520 return x.UpdateMask 8521 } 8522 return nil 8523} 8524 8525// Request message for GetJobTrigger. 8526type GetJobTriggerRequest struct { 8527 state protoimpl.MessageState 8528 sizeCache protoimpl.SizeCache 8529 unknownFields protoimpl.UnknownFields 8530 8531 // Required. Resource name of the project and the triggeredJob, for example 8532 // `projects/dlp-test-project/jobTriggers/53234423`. 8533 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 8534} 8535 8536func (x *GetJobTriggerRequest) Reset() { 8537 *x = GetJobTriggerRequest{} 8538 if protoimpl.UnsafeEnabled { 8539 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[88] 8540 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8541 ms.StoreMessageInfo(mi) 8542 } 8543} 8544 8545func (x *GetJobTriggerRequest) String() string { 8546 return protoimpl.X.MessageStringOf(x) 8547} 8548 8549func (*GetJobTriggerRequest) ProtoMessage() {} 8550 8551func (x *GetJobTriggerRequest) ProtoReflect() protoreflect.Message { 8552 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[88] 8553 if protoimpl.UnsafeEnabled && x != nil { 8554 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8555 if ms.LoadMessageInfo() == nil { 8556 ms.StoreMessageInfo(mi) 8557 } 8558 return ms 8559 } 8560 return mi.MessageOf(x) 8561} 8562 8563// Deprecated: Use GetJobTriggerRequest.ProtoReflect.Descriptor instead. 8564func (*GetJobTriggerRequest) Descriptor() ([]byte, []int) { 8565 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{88} 8566} 8567 8568func (x *GetJobTriggerRequest) GetName() string { 8569 if x != nil { 8570 return x.Name 8571 } 8572 return "" 8573} 8574 8575// Request message for CreateDlpJobRequest. Used to initiate long running 8576// jobs such as calculating risk metrics or inspecting Google Cloud 8577// Storage. 8578type CreateDlpJobRequest struct { 8579 state protoimpl.MessageState 8580 sizeCache protoimpl.SizeCache 8581 unknownFields protoimpl.UnknownFields 8582 8583 // Required. Parent resource name. 8584 // 8585 // The format of this value varies depending on whether you have [specified a 8586 // processing 8587 // location](https://cloud.google.com/dlp/docs/specifying-location): 8588 // 8589 // + Projects scope, location specified:<br/> 8590 // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> 8591 // + Projects scope, no location specified (defaults to global):<br/> 8592 // `projects/`<var>PROJECT_ID</var> 8593 // 8594 // The following example `parent` string specifies a parent project with the 8595 // identifier `example-project`, and specifies the `europe-west3` location 8596 // for processing data: 8597 // 8598 // parent=projects/example-project/locations/europe-west3 8599 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 8600 // The configuration details for the specific type of job to run. 8601 // 8602 // Types that are assignable to Job: 8603 // *CreateDlpJobRequest_InspectJob 8604 // *CreateDlpJobRequest_RiskJob 8605 Job isCreateDlpJobRequest_Job `protobuf_oneof:"job"` 8606 // The job id can contain uppercase and lowercase letters, 8607 // numbers, and hyphens; that is, it must match the regular 8608 // expression: `[a-zA-Z\d-_]+`. The maximum length is 100 8609 // characters. Can be empty to allow the system to generate one. 8610 JobId string `protobuf:"bytes,4,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` 8611 // Deprecated. This field has no effect. 8612 LocationId string `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 8613} 8614 8615func (x *CreateDlpJobRequest) Reset() { 8616 *x = CreateDlpJobRequest{} 8617 if protoimpl.UnsafeEnabled { 8618 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[89] 8619 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8620 ms.StoreMessageInfo(mi) 8621 } 8622} 8623 8624func (x *CreateDlpJobRequest) String() string { 8625 return protoimpl.X.MessageStringOf(x) 8626} 8627 8628func (*CreateDlpJobRequest) ProtoMessage() {} 8629 8630func (x *CreateDlpJobRequest) ProtoReflect() protoreflect.Message { 8631 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[89] 8632 if protoimpl.UnsafeEnabled && x != nil { 8633 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8634 if ms.LoadMessageInfo() == nil { 8635 ms.StoreMessageInfo(mi) 8636 } 8637 return ms 8638 } 8639 return mi.MessageOf(x) 8640} 8641 8642// Deprecated: Use CreateDlpJobRequest.ProtoReflect.Descriptor instead. 8643func (*CreateDlpJobRequest) Descriptor() ([]byte, []int) { 8644 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{89} 8645} 8646 8647func (x *CreateDlpJobRequest) GetParent() string { 8648 if x != nil { 8649 return x.Parent 8650 } 8651 return "" 8652} 8653 8654func (m *CreateDlpJobRequest) GetJob() isCreateDlpJobRequest_Job { 8655 if m != nil { 8656 return m.Job 8657 } 8658 return nil 8659} 8660 8661func (x *CreateDlpJobRequest) GetInspectJob() *InspectJobConfig { 8662 if x, ok := x.GetJob().(*CreateDlpJobRequest_InspectJob); ok { 8663 return x.InspectJob 8664 } 8665 return nil 8666} 8667 8668func (x *CreateDlpJobRequest) GetRiskJob() *RiskAnalysisJobConfig { 8669 if x, ok := x.GetJob().(*CreateDlpJobRequest_RiskJob); ok { 8670 return x.RiskJob 8671 } 8672 return nil 8673} 8674 8675func (x *CreateDlpJobRequest) GetJobId() string { 8676 if x != nil { 8677 return x.JobId 8678 } 8679 return "" 8680} 8681 8682func (x *CreateDlpJobRequest) GetLocationId() string { 8683 if x != nil { 8684 return x.LocationId 8685 } 8686 return "" 8687} 8688 8689type isCreateDlpJobRequest_Job interface { 8690 isCreateDlpJobRequest_Job() 8691} 8692 8693type CreateDlpJobRequest_InspectJob struct { 8694 // Set to control what and how to inspect. 8695 InspectJob *InspectJobConfig `protobuf:"bytes,2,opt,name=inspect_job,json=inspectJob,proto3,oneof"` 8696} 8697 8698type CreateDlpJobRequest_RiskJob struct { 8699 // Set to choose what metric to calculate. 8700 RiskJob *RiskAnalysisJobConfig `protobuf:"bytes,3,opt,name=risk_job,json=riskJob,proto3,oneof"` 8701} 8702 8703func (*CreateDlpJobRequest_InspectJob) isCreateDlpJobRequest_Job() {} 8704 8705func (*CreateDlpJobRequest_RiskJob) isCreateDlpJobRequest_Job() {} 8706 8707// Request message for ListJobTriggers. 8708type ListJobTriggersRequest struct { 8709 state protoimpl.MessageState 8710 sizeCache protoimpl.SizeCache 8711 unknownFields protoimpl.UnknownFields 8712 8713 // Required. Parent resource name. 8714 // 8715 // The format of this value varies depending on whether you have [specified a 8716 // processing 8717 // location](https://cloud.google.com/dlp/docs/specifying-location): 8718 // 8719 // + Projects scope, location specified:<br/> 8720 // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> 8721 // + Projects scope, no location specified (defaults to global):<br/> 8722 // `projects/`<var>PROJECT_ID</var> 8723 // 8724 // The following example `parent` string specifies a parent project with the 8725 // identifier `example-project`, and specifies the `europe-west3` location 8726 // for processing data: 8727 // 8728 // parent=projects/example-project/locations/europe-west3 8729 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 8730 // Page token to continue retrieval. Comes from previous call 8731 // to ListJobTriggers. `order_by` field must not 8732 // change for subsequent calls. 8733 PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 8734 // Size of the page, can be limited by a server. 8735 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 8736 // Comma separated list of triggeredJob fields to order by, 8737 // followed by `asc` or `desc` postfix. This list is case-insensitive, 8738 // default sorting order is ascending, redundant space characters are 8739 // insignificant. 8740 // 8741 // Example: `name asc,update_time, create_time desc` 8742 // 8743 // Supported fields are: 8744 // 8745 // - `create_time`: corresponds to time the JobTrigger was created. 8746 // - `update_time`: corresponds to time the JobTrigger was last updated. 8747 // - `last_run_time`: corresponds to the last time the JobTrigger ran. 8748 // - `name`: corresponds to JobTrigger's name. 8749 // - `display_name`: corresponds to JobTrigger's display name. 8750 // - `status`: corresponds to JobTrigger's status. 8751 OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 8752 // Allows filtering. 8753 // 8754 // Supported syntax: 8755 // 8756 // * Filter expressions are made up of one or more restrictions. 8757 // * Restrictions can be combined by `AND` or `OR` logical operators. A 8758 // sequence of restrictions implicitly uses `AND`. 8759 // * A restriction has the form of `{field} {operator} {value}`. 8760 // * Supported fields/values for inspect jobs: 8761 // - `status` - HEALTHY|PAUSED|CANCELLED 8762 // - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY 8763 // - 'last_run_time` - RFC 3339 formatted timestamp, surrounded by 8764 // quotation marks. Nanoseconds are ignored. 8765 // - 'error_count' - Number of errors that have occurred while running. 8766 // * The operator must be `=` or `!=` for status and inspected_storage. 8767 // 8768 // Examples: 8769 // 8770 // * inspected_storage = cloud_storage AND status = HEALTHY 8771 // * inspected_storage = cloud_storage OR inspected_storage = bigquery 8772 // * inspected_storage = cloud_storage AND (state = PAUSED OR state = HEALTHY) 8773 // * last_run_time > \"2017-12-12T00:00:00+00:00\" 8774 // 8775 // The length of this field should be no more than 500 characters. 8776 Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` 8777 // Deprecated. This field has no effect. 8778 LocationId string `protobuf:"bytes,7,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 8779} 8780 8781func (x *ListJobTriggersRequest) Reset() { 8782 *x = ListJobTriggersRequest{} 8783 if protoimpl.UnsafeEnabled { 8784 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[90] 8785 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8786 ms.StoreMessageInfo(mi) 8787 } 8788} 8789 8790func (x *ListJobTriggersRequest) String() string { 8791 return protoimpl.X.MessageStringOf(x) 8792} 8793 8794func (*ListJobTriggersRequest) ProtoMessage() {} 8795 8796func (x *ListJobTriggersRequest) ProtoReflect() protoreflect.Message { 8797 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[90] 8798 if protoimpl.UnsafeEnabled && x != nil { 8799 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8800 if ms.LoadMessageInfo() == nil { 8801 ms.StoreMessageInfo(mi) 8802 } 8803 return ms 8804 } 8805 return mi.MessageOf(x) 8806} 8807 8808// Deprecated: Use ListJobTriggersRequest.ProtoReflect.Descriptor instead. 8809func (*ListJobTriggersRequest) Descriptor() ([]byte, []int) { 8810 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{90} 8811} 8812 8813func (x *ListJobTriggersRequest) GetParent() string { 8814 if x != nil { 8815 return x.Parent 8816 } 8817 return "" 8818} 8819 8820func (x *ListJobTriggersRequest) GetPageToken() string { 8821 if x != nil { 8822 return x.PageToken 8823 } 8824 return "" 8825} 8826 8827func (x *ListJobTriggersRequest) GetPageSize() int32 { 8828 if x != nil { 8829 return x.PageSize 8830 } 8831 return 0 8832} 8833 8834func (x *ListJobTriggersRequest) GetOrderBy() string { 8835 if x != nil { 8836 return x.OrderBy 8837 } 8838 return "" 8839} 8840 8841func (x *ListJobTriggersRequest) GetFilter() string { 8842 if x != nil { 8843 return x.Filter 8844 } 8845 return "" 8846} 8847 8848func (x *ListJobTriggersRequest) GetLocationId() string { 8849 if x != nil { 8850 return x.LocationId 8851 } 8852 return "" 8853} 8854 8855// Response message for ListJobTriggers. 8856type ListJobTriggersResponse struct { 8857 state protoimpl.MessageState 8858 sizeCache protoimpl.SizeCache 8859 unknownFields protoimpl.UnknownFields 8860 8861 // List of triggeredJobs, up to page_size in ListJobTriggersRequest. 8862 JobTriggers []*JobTrigger `protobuf:"bytes,1,rep,name=job_triggers,json=jobTriggers,proto3" json:"job_triggers,omitempty"` 8863 // If the next page is available then the next page token to be used 8864 // in following ListJobTriggers request. 8865 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 8866} 8867 8868func (x *ListJobTriggersResponse) Reset() { 8869 *x = ListJobTriggersResponse{} 8870 if protoimpl.UnsafeEnabled { 8871 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[91] 8872 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8873 ms.StoreMessageInfo(mi) 8874 } 8875} 8876 8877func (x *ListJobTriggersResponse) String() string { 8878 return protoimpl.X.MessageStringOf(x) 8879} 8880 8881func (*ListJobTriggersResponse) ProtoMessage() {} 8882 8883func (x *ListJobTriggersResponse) ProtoReflect() protoreflect.Message { 8884 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[91] 8885 if protoimpl.UnsafeEnabled && x != nil { 8886 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8887 if ms.LoadMessageInfo() == nil { 8888 ms.StoreMessageInfo(mi) 8889 } 8890 return ms 8891 } 8892 return mi.MessageOf(x) 8893} 8894 8895// Deprecated: Use ListJobTriggersResponse.ProtoReflect.Descriptor instead. 8896func (*ListJobTriggersResponse) Descriptor() ([]byte, []int) { 8897 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{91} 8898} 8899 8900func (x *ListJobTriggersResponse) GetJobTriggers() []*JobTrigger { 8901 if x != nil { 8902 return x.JobTriggers 8903 } 8904 return nil 8905} 8906 8907func (x *ListJobTriggersResponse) GetNextPageToken() string { 8908 if x != nil { 8909 return x.NextPageToken 8910 } 8911 return "" 8912} 8913 8914// Request message for DeleteJobTrigger. 8915type DeleteJobTriggerRequest struct { 8916 state protoimpl.MessageState 8917 sizeCache protoimpl.SizeCache 8918 unknownFields protoimpl.UnknownFields 8919 8920 // Required. Resource name of the project and the triggeredJob, for example 8921 // `projects/dlp-test-project/jobTriggers/53234423`. 8922 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 8923} 8924 8925func (x *DeleteJobTriggerRequest) Reset() { 8926 *x = DeleteJobTriggerRequest{} 8927 if protoimpl.UnsafeEnabled { 8928 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[92] 8929 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8930 ms.StoreMessageInfo(mi) 8931 } 8932} 8933 8934func (x *DeleteJobTriggerRequest) String() string { 8935 return protoimpl.X.MessageStringOf(x) 8936} 8937 8938func (*DeleteJobTriggerRequest) ProtoMessage() {} 8939 8940func (x *DeleteJobTriggerRequest) ProtoReflect() protoreflect.Message { 8941 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[92] 8942 if protoimpl.UnsafeEnabled && x != nil { 8943 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8944 if ms.LoadMessageInfo() == nil { 8945 ms.StoreMessageInfo(mi) 8946 } 8947 return ms 8948 } 8949 return mi.MessageOf(x) 8950} 8951 8952// Deprecated: Use DeleteJobTriggerRequest.ProtoReflect.Descriptor instead. 8953func (*DeleteJobTriggerRequest) Descriptor() ([]byte, []int) { 8954 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{92} 8955} 8956 8957func (x *DeleteJobTriggerRequest) GetName() string { 8958 if x != nil { 8959 return x.Name 8960 } 8961 return "" 8962} 8963 8964// Controls what and how to inspect for findings. 8965type InspectJobConfig struct { 8966 state protoimpl.MessageState 8967 sizeCache protoimpl.SizeCache 8968 unknownFields protoimpl.UnknownFields 8969 8970 // The data to scan. 8971 StorageConfig *StorageConfig `protobuf:"bytes,1,opt,name=storage_config,json=storageConfig,proto3" json:"storage_config,omitempty"` 8972 // How and what to scan for. 8973 InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"` 8974 // If provided, will be used as the default for all values in InspectConfig. 8975 // `inspect_config` will be merged into the values persisted as part of the 8976 // template. 8977 InspectTemplateName string `protobuf:"bytes,3,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"` 8978 // Actions to execute at the completion of the job. 8979 Actions []*Action `protobuf:"bytes,4,rep,name=actions,proto3" json:"actions,omitempty"` 8980} 8981 8982func (x *InspectJobConfig) Reset() { 8983 *x = InspectJobConfig{} 8984 if protoimpl.UnsafeEnabled { 8985 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[93] 8986 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8987 ms.StoreMessageInfo(mi) 8988 } 8989} 8990 8991func (x *InspectJobConfig) String() string { 8992 return protoimpl.X.MessageStringOf(x) 8993} 8994 8995func (*InspectJobConfig) ProtoMessage() {} 8996 8997func (x *InspectJobConfig) ProtoReflect() protoreflect.Message { 8998 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[93] 8999 if protoimpl.UnsafeEnabled && x != nil { 9000 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9001 if ms.LoadMessageInfo() == nil { 9002 ms.StoreMessageInfo(mi) 9003 } 9004 return ms 9005 } 9006 return mi.MessageOf(x) 9007} 9008 9009// Deprecated: Use InspectJobConfig.ProtoReflect.Descriptor instead. 9010func (*InspectJobConfig) Descriptor() ([]byte, []int) { 9011 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{93} 9012} 9013 9014func (x *InspectJobConfig) GetStorageConfig() *StorageConfig { 9015 if x != nil { 9016 return x.StorageConfig 9017 } 9018 return nil 9019} 9020 9021func (x *InspectJobConfig) GetInspectConfig() *InspectConfig { 9022 if x != nil { 9023 return x.InspectConfig 9024 } 9025 return nil 9026} 9027 9028func (x *InspectJobConfig) GetInspectTemplateName() string { 9029 if x != nil { 9030 return x.InspectTemplateName 9031 } 9032 return "" 9033} 9034 9035func (x *InspectJobConfig) GetActions() []*Action { 9036 if x != nil { 9037 return x.Actions 9038 } 9039 return nil 9040} 9041 9042// Combines all of the information about a DLP job. 9043type DlpJob struct { 9044 state protoimpl.MessageState 9045 sizeCache protoimpl.SizeCache 9046 unknownFields protoimpl.UnknownFields 9047 9048 // The server-assigned name. 9049 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 9050 // The type of job. 9051 Type DlpJobType `protobuf:"varint,2,opt,name=type,proto3,enum=google.privacy.dlp.v2.DlpJobType" json:"type,omitempty"` 9052 // State of a job. 9053 State DlpJob_JobState `protobuf:"varint,3,opt,name=state,proto3,enum=google.privacy.dlp.v2.DlpJob_JobState" json:"state,omitempty"` 9054 // Types that are assignable to Details: 9055 // *DlpJob_RiskDetails 9056 // *DlpJob_InspectDetails 9057 Details isDlpJob_Details `protobuf_oneof:"details"` 9058 // Time when the job was created. 9059 CreateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 9060 // Time when the job started. 9061 StartTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 9062 // Time when the job finished. 9063 EndTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` 9064 // If created by a job trigger, the resource name of the trigger that 9065 // instantiated the job. 9066 JobTriggerName string `protobuf:"bytes,10,opt,name=job_trigger_name,json=jobTriggerName,proto3" json:"job_trigger_name,omitempty"` 9067 // A stream of errors encountered running the job. 9068 Errors []*Error `protobuf:"bytes,11,rep,name=errors,proto3" json:"errors,omitempty"` 9069} 9070 9071func (x *DlpJob) Reset() { 9072 *x = DlpJob{} 9073 if protoimpl.UnsafeEnabled { 9074 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[94] 9075 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9076 ms.StoreMessageInfo(mi) 9077 } 9078} 9079 9080func (x *DlpJob) String() string { 9081 return protoimpl.X.MessageStringOf(x) 9082} 9083 9084func (*DlpJob) ProtoMessage() {} 9085 9086func (x *DlpJob) ProtoReflect() protoreflect.Message { 9087 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[94] 9088 if protoimpl.UnsafeEnabled && x != nil { 9089 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9090 if ms.LoadMessageInfo() == nil { 9091 ms.StoreMessageInfo(mi) 9092 } 9093 return ms 9094 } 9095 return mi.MessageOf(x) 9096} 9097 9098// Deprecated: Use DlpJob.ProtoReflect.Descriptor instead. 9099func (*DlpJob) Descriptor() ([]byte, []int) { 9100 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{94} 9101} 9102 9103func (x *DlpJob) GetName() string { 9104 if x != nil { 9105 return x.Name 9106 } 9107 return "" 9108} 9109 9110func (x *DlpJob) GetType() DlpJobType { 9111 if x != nil { 9112 return x.Type 9113 } 9114 return DlpJobType_DLP_JOB_TYPE_UNSPECIFIED 9115} 9116 9117func (x *DlpJob) GetState() DlpJob_JobState { 9118 if x != nil { 9119 return x.State 9120 } 9121 return DlpJob_JOB_STATE_UNSPECIFIED 9122} 9123 9124func (m *DlpJob) GetDetails() isDlpJob_Details { 9125 if m != nil { 9126 return m.Details 9127 } 9128 return nil 9129} 9130 9131func (x *DlpJob) GetRiskDetails() *AnalyzeDataSourceRiskDetails { 9132 if x, ok := x.GetDetails().(*DlpJob_RiskDetails); ok { 9133 return x.RiskDetails 9134 } 9135 return nil 9136} 9137 9138func (x *DlpJob) GetInspectDetails() *InspectDataSourceDetails { 9139 if x, ok := x.GetDetails().(*DlpJob_InspectDetails); ok { 9140 return x.InspectDetails 9141 } 9142 return nil 9143} 9144 9145func (x *DlpJob) GetCreateTime() *timestamppb.Timestamp { 9146 if x != nil { 9147 return x.CreateTime 9148 } 9149 return nil 9150} 9151 9152func (x *DlpJob) GetStartTime() *timestamppb.Timestamp { 9153 if x != nil { 9154 return x.StartTime 9155 } 9156 return nil 9157} 9158 9159func (x *DlpJob) GetEndTime() *timestamppb.Timestamp { 9160 if x != nil { 9161 return x.EndTime 9162 } 9163 return nil 9164} 9165 9166func (x *DlpJob) GetJobTriggerName() string { 9167 if x != nil { 9168 return x.JobTriggerName 9169 } 9170 return "" 9171} 9172 9173func (x *DlpJob) GetErrors() []*Error { 9174 if x != nil { 9175 return x.Errors 9176 } 9177 return nil 9178} 9179 9180type isDlpJob_Details interface { 9181 isDlpJob_Details() 9182} 9183 9184type DlpJob_RiskDetails struct { 9185 // Results from analyzing risk of a data source. 9186 RiskDetails *AnalyzeDataSourceRiskDetails `protobuf:"bytes,4,opt,name=risk_details,json=riskDetails,proto3,oneof"` 9187} 9188 9189type DlpJob_InspectDetails struct { 9190 // Results from inspecting a data source. 9191 InspectDetails *InspectDataSourceDetails `protobuf:"bytes,5,opt,name=inspect_details,json=inspectDetails,proto3,oneof"` 9192} 9193 9194func (*DlpJob_RiskDetails) isDlpJob_Details() {} 9195 9196func (*DlpJob_InspectDetails) isDlpJob_Details() {} 9197 9198// The request message for [DlpJobs.GetDlpJob][]. 9199type GetDlpJobRequest struct { 9200 state protoimpl.MessageState 9201 sizeCache protoimpl.SizeCache 9202 unknownFields protoimpl.UnknownFields 9203 9204 // Required. The name of the DlpJob resource. 9205 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 9206} 9207 9208func (x *GetDlpJobRequest) Reset() { 9209 *x = GetDlpJobRequest{} 9210 if protoimpl.UnsafeEnabled { 9211 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[95] 9212 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9213 ms.StoreMessageInfo(mi) 9214 } 9215} 9216 9217func (x *GetDlpJobRequest) String() string { 9218 return protoimpl.X.MessageStringOf(x) 9219} 9220 9221func (*GetDlpJobRequest) ProtoMessage() {} 9222 9223func (x *GetDlpJobRequest) ProtoReflect() protoreflect.Message { 9224 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[95] 9225 if protoimpl.UnsafeEnabled && x != nil { 9226 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9227 if ms.LoadMessageInfo() == nil { 9228 ms.StoreMessageInfo(mi) 9229 } 9230 return ms 9231 } 9232 return mi.MessageOf(x) 9233} 9234 9235// Deprecated: Use GetDlpJobRequest.ProtoReflect.Descriptor instead. 9236func (*GetDlpJobRequest) Descriptor() ([]byte, []int) { 9237 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{95} 9238} 9239 9240func (x *GetDlpJobRequest) GetName() string { 9241 if x != nil { 9242 return x.Name 9243 } 9244 return "" 9245} 9246 9247// The request message for listing DLP jobs. 9248type ListDlpJobsRequest struct { 9249 state protoimpl.MessageState 9250 sizeCache protoimpl.SizeCache 9251 unknownFields protoimpl.UnknownFields 9252 9253 // Required. Parent resource name. 9254 // 9255 // The format of this value varies depending on whether you have [specified a 9256 // processing 9257 // location](https://cloud.google.com/dlp/docs/specifying-location): 9258 // 9259 // + Projects scope, location specified:<br/> 9260 // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> 9261 // + Projects scope, no location specified (defaults to global):<br/> 9262 // `projects/`<var>PROJECT_ID</var> 9263 // 9264 // The following example `parent` string specifies a parent project with the 9265 // identifier `example-project`, and specifies the `europe-west3` location 9266 // for processing data: 9267 // 9268 // parent=projects/example-project/locations/europe-west3 9269 Parent string `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"` 9270 // Allows filtering. 9271 // 9272 // Supported syntax: 9273 // 9274 // * Filter expressions are made up of one or more restrictions. 9275 // * Restrictions can be combined by `AND` or `OR` logical operators. A 9276 // sequence of restrictions implicitly uses `AND`. 9277 // * A restriction has the form of `{field} {operator} {value}`. 9278 // * Supported fields/values for inspect jobs: 9279 // - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED 9280 // - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY 9281 // - `trigger_name` - The resource name of the trigger that created job. 9282 // - 'end_time` - Corresponds to time the job finished. 9283 // - 'start_time` - Corresponds to time the job finished. 9284 // * Supported fields for risk analysis jobs: 9285 // - `state` - RUNNING|CANCELED|FINISHED|FAILED 9286 // - 'end_time` - Corresponds to time the job finished. 9287 // - 'start_time` - Corresponds to time the job finished. 9288 // * The operator must be `=` or `!=`. 9289 // 9290 // Examples: 9291 // 9292 // * inspected_storage = cloud_storage AND state = done 9293 // * inspected_storage = cloud_storage OR inspected_storage = bigquery 9294 // * inspected_storage = cloud_storage AND (state = done OR state = canceled) 9295 // * end_time > \"2017-12-12T00:00:00+00:00\" 9296 // 9297 // The length of this field should be no more than 500 characters. 9298 Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"` 9299 // The standard list page size. 9300 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 9301 // The standard list page token. 9302 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 9303 // The type of job. Defaults to `DlpJobType.INSPECT` 9304 Type DlpJobType `protobuf:"varint,5,opt,name=type,proto3,enum=google.privacy.dlp.v2.DlpJobType" json:"type,omitempty"` 9305 // Comma separated list of fields to order by, 9306 // followed by `asc` or `desc` postfix. This list is case-insensitive, 9307 // default sorting order is ascending, redundant space characters are 9308 // insignificant. 9309 // 9310 // Example: `name asc, end_time asc, create_time desc` 9311 // 9312 // Supported fields are: 9313 // 9314 // - `create_time`: corresponds to time the job was created. 9315 // - `end_time`: corresponds to time the job ended. 9316 // - `name`: corresponds to job's name. 9317 // - `state`: corresponds to `state` 9318 OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 9319 // Deprecated. This field has no effect. 9320 LocationId string `protobuf:"bytes,7,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 9321} 9322 9323func (x *ListDlpJobsRequest) Reset() { 9324 *x = ListDlpJobsRequest{} 9325 if protoimpl.UnsafeEnabled { 9326 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[96] 9327 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9328 ms.StoreMessageInfo(mi) 9329 } 9330} 9331 9332func (x *ListDlpJobsRequest) String() string { 9333 return protoimpl.X.MessageStringOf(x) 9334} 9335 9336func (*ListDlpJobsRequest) ProtoMessage() {} 9337 9338func (x *ListDlpJobsRequest) ProtoReflect() protoreflect.Message { 9339 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[96] 9340 if protoimpl.UnsafeEnabled && x != nil { 9341 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9342 if ms.LoadMessageInfo() == nil { 9343 ms.StoreMessageInfo(mi) 9344 } 9345 return ms 9346 } 9347 return mi.MessageOf(x) 9348} 9349 9350// Deprecated: Use ListDlpJobsRequest.ProtoReflect.Descriptor instead. 9351func (*ListDlpJobsRequest) Descriptor() ([]byte, []int) { 9352 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{96} 9353} 9354 9355func (x *ListDlpJobsRequest) GetParent() string { 9356 if x != nil { 9357 return x.Parent 9358 } 9359 return "" 9360} 9361 9362func (x *ListDlpJobsRequest) GetFilter() string { 9363 if x != nil { 9364 return x.Filter 9365 } 9366 return "" 9367} 9368 9369func (x *ListDlpJobsRequest) GetPageSize() int32 { 9370 if x != nil { 9371 return x.PageSize 9372 } 9373 return 0 9374} 9375 9376func (x *ListDlpJobsRequest) GetPageToken() string { 9377 if x != nil { 9378 return x.PageToken 9379 } 9380 return "" 9381} 9382 9383func (x *ListDlpJobsRequest) GetType() DlpJobType { 9384 if x != nil { 9385 return x.Type 9386 } 9387 return DlpJobType_DLP_JOB_TYPE_UNSPECIFIED 9388} 9389 9390func (x *ListDlpJobsRequest) GetOrderBy() string { 9391 if x != nil { 9392 return x.OrderBy 9393 } 9394 return "" 9395} 9396 9397func (x *ListDlpJobsRequest) GetLocationId() string { 9398 if x != nil { 9399 return x.LocationId 9400 } 9401 return "" 9402} 9403 9404// The response message for listing DLP jobs. 9405type ListDlpJobsResponse struct { 9406 state protoimpl.MessageState 9407 sizeCache protoimpl.SizeCache 9408 unknownFields protoimpl.UnknownFields 9409 9410 // A list of DlpJobs that matches the specified filter in the request. 9411 Jobs []*DlpJob `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty"` 9412 // The standard List next-page token. 9413 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 9414} 9415 9416func (x *ListDlpJobsResponse) Reset() { 9417 *x = ListDlpJobsResponse{} 9418 if protoimpl.UnsafeEnabled { 9419 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[97] 9420 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9421 ms.StoreMessageInfo(mi) 9422 } 9423} 9424 9425func (x *ListDlpJobsResponse) String() string { 9426 return protoimpl.X.MessageStringOf(x) 9427} 9428 9429func (*ListDlpJobsResponse) ProtoMessage() {} 9430 9431func (x *ListDlpJobsResponse) ProtoReflect() protoreflect.Message { 9432 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[97] 9433 if protoimpl.UnsafeEnabled && x != nil { 9434 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9435 if ms.LoadMessageInfo() == nil { 9436 ms.StoreMessageInfo(mi) 9437 } 9438 return ms 9439 } 9440 return mi.MessageOf(x) 9441} 9442 9443// Deprecated: Use ListDlpJobsResponse.ProtoReflect.Descriptor instead. 9444func (*ListDlpJobsResponse) Descriptor() ([]byte, []int) { 9445 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{97} 9446} 9447 9448func (x *ListDlpJobsResponse) GetJobs() []*DlpJob { 9449 if x != nil { 9450 return x.Jobs 9451 } 9452 return nil 9453} 9454 9455func (x *ListDlpJobsResponse) GetNextPageToken() string { 9456 if x != nil { 9457 return x.NextPageToken 9458 } 9459 return "" 9460} 9461 9462// The request message for canceling a DLP job. 9463type CancelDlpJobRequest struct { 9464 state protoimpl.MessageState 9465 sizeCache protoimpl.SizeCache 9466 unknownFields protoimpl.UnknownFields 9467 9468 // Required. The name of the DlpJob resource to be cancelled. 9469 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 9470} 9471 9472func (x *CancelDlpJobRequest) Reset() { 9473 *x = CancelDlpJobRequest{} 9474 if protoimpl.UnsafeEnabled { 9475 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[98] 9476 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9477 ms.StoreMessageInfo(mi) 9478 } 9479} 9480 9481func (x *CancelDlpJobRequest) String() string { 9482 return protoimpl.X.MessageStringOf(x) 9483} 9484 9485func (*CancelDlpJobRequest) ProtoMessage() {} 9486 9487func (x *CancelDlpJobRequest) ProtoReflect() protoreflect.Message { 9488 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[98] 9489 if protoimpl.UnsafeEnabled && x != nil { 9490 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9491 if ms.LoadMessageInfo() == nil { 9492 ms.StoreMessageInfo(mi) 9493 } 9494 return ms 9495 } 9496 return mi.MessageOf(x) 9497} 9498 9499// Deprecated: Use CancelDlpJobRequest.ProtoReflect.Descriptor instead. 9500func (*CancelDlpJobRequest) Descriptor() ([]byte, []int) { 9501 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{98} 9502} 9503 9504func (x *CancelDlpJobRequest) GetName() string { 9505 if x != nil { 9506 return x.Name 9507 } 9508 return "" 9509} 9510 9511// The request message for finishing a DLP hybrid job. 9512type FinishDlpJobRequest struct { 9513 state protoimpl.MessageState 9514 sizeCache protoimpl.SizeCache 9515 unknownFields protoimpl.UnknownFields 9516 9517 // Required. The name of the DlpJob resource to be cancelled. 9518 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 9519} 9520 9521func (x *FinishDlpJobRequest) Reset() { 9522 *x = FinishDlpJobRequest{} 9523 if protoimpl.UnsafeEnabled { 9524 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[99] 9525 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9526 ms.StoreMessageInfo(mi) 9527 } 9528} 9529 9530func (x *FinishDlpJobRequest) String() string { 9531 return protoimpl.X.MessageStringOf(x) 9532} 9533 9534func (*FinishDlpJobRequest) ProtoMessage() {} 9535 9536func (x *FinishDlpJobRequest) ProtoReflect() protoreflect.Message { 9537 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[99] 9538 if protoimpl.UnsafeEnabled && x != nil { 9539 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9540 if ms.LoadMessageInfo() == nil { 9541 ms.StoreMessageInfo(mi) 9542 } 9543 return ms 9544 } 9545 return mi.MessageOf(x) 9546} 9547 9548// Deprecated: Use FinishDlpJobRequest.ProtoReflect.Descriptor instead. 9549func (*FinishDlpJobRequest) Descriptor() ([]byte, []int) { 9550 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{99} 9551} 9552 9553func (x *FinishDlpJobRequest) GetName() string { 9554 if x != nil { 9555 return x.Name 9556 } 9557 return "" 9558} 9559 9560// The request message for deleting a DLP job. 9561type DeleteDlpJobRequest struct { 9562 state protoimpl.MessageState 9563 sizeCache protoimpl.SizeCache 9564 unknownFields protoimpl.UnknownFields 9565 9566 // Required. The name of the DlpJob resource to be deleted. 9567 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 9568} 9569 9570func (x *DeleteDlpJobRequest) Reset() { 9571 *x = DeleteDlpJobRequest{} 9572 if protoimpl.UnsafeEnabled { 9573 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[100] 9574 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9575 ms.StoreMessageInfo(mi) 9576 } 9577} 9578 9579func (x *DeleteDlpJobRequest) String() string { 9580 return protoimpl.X.MessageStringOf(x) 9581} 9582 9583func (*DeleteDlpJobRequest) ProtoMessage() {} 9584 9585func (x *DeleteDlpJobRequest) ProtoReflect() protoreflect.Message { 9586 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[100] 9587 if protoimpl.UnsafeEnabled && x != nil { 9588 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9589 if ms.LoadMessageInfo() == nil { 9590 ms.StoreMessageInfo(mi) 9591 } 9592 return ms 9593 } 9594 return mi.MessageOf(x) 9595} 9596 9597// Deprecated: Use DeleteDlpJobRequest.ProtoReflect.Descriptor instead. 9598func (*DeleteDlpJobRequest) Descriptor() ([]byte, []int) { 9599 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{100} 9600} 9601 9602func (x *DeleteDlpJobRequest) GetName() string { 9603 if x != nil { 9604 return x.Name 9605 } 9606 return "" 9607} 9608 9609// Request message for CreateDeidentifyTemplate. 9610type CreateDeidentifyTemplateRequest struct { 9611 state protoimpl.MessageState 9612 sizeCache protoimpl.SizeCache 9613 unknownFields protoimpl.UnknownFields 9614 9615 // Required. Parent resource name. 9616 // 9617 // The format of this value varies depending on the scope of the request 9618 // (project or organization) and whether you have [specified a processing 9619 // location](https://cloud.google.com/dlp/docs/specifying-location): 9620 // 9621 // + Projects scope, location specified:<br/> 9622 // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> 9623 // + Projects scope, no location specified (defaults to global):<br/> 9624 // `projects/`<var>PROJECT_ID</var> 9625 // + Organizations scope, location specified:<br/> 9626 // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var> 9627 // + Organizations scope, no location specified (defaults to global):<br/> 9628 // `organizations/`<var>ORG_ID</var> 9629 // 9630 // The following example `parent` string specifies a parent project with the 9631 // identifier `example-project`, and specifies the `europe-west3` location 9632 // for processing data: 9633 // 9634 // parent=projects/example-project/locations/europe-west3 9635 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 9636 // Required. The DeidentifyTemplate to create. 9637 DeidentifyTemplate *DeidentifyTemplate `protobuf:"bytes,2,opt,name=deidentify_template,json=deidentifyTemplate,proto3" json:"deidentify_template,omitempty"` 9638 // The template id can contain uppercase and lowercase letters, 9639 // numbers, and hyphens; that is, it must match the regular 9640 // expression: `[a-zA-Z\d-_]+`. The maximum length is 100 9641 // characters. Can be empty to allow the system to generate one. 9642 TemplateId string `protobuf:"bytes,3,opt,name=template_id,json=templateId,proto3" json:"template_id,omitempty"` 9643 // Deprecated. This field has no effect. 9644 LocationId string `protobuf:"bytes,4,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 9645} 9646 9647func (x *CreateDeidentifyTemplateRequest) Reset() { 9648 *x = CreateDeidentifyTemplateRequest{} 9649 if protoimpl.UnsafeEnabled { 9650 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[101] 9651 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9652 ms.StoreMessageInfo(mi) 9653 } 9654} 9655 9656func (x *CreateDeidentifyTemplateRequest) String() string { 9657 return protoimpl.X.MessageStringOf(x) 9658} 9659 9660func (*CreateDeidentifyTemplateRequest) ProtoMessage() {} 9661 9662func (x *CreateDeidentifyTemplateRequest) ProtoReflect() protoreflect.Message { 9663 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[101] 9664 if protoimpl.UnsafeEnabled && x != nil { 9665 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9666 if ms.LoadMessageInfo() == nil { 9667 ms.StoreMessageInfo(mi) 9668 } 9669 return ms 9670 } 9671 return mi.MessageOf(x) 9672} 9673 9674// Deprecated: Use CreateDeidentifyTemplateRequest.ProtoReflect.Descriptor instead. 9675func (*CreateDeidentifyTemplateRequest) Descriptor() ([]byte, []int) { 9676 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{101} 9677} 9678 9679func (x *CreateDeidentifyTemplateRequest) GetParent() string { 9680 if x != nil { 9681 return x.Parent 9682 } 9683 return "" 9684} 9685 9686func (x *CreateDeidentifyTemplateRequest) GetDeidentifyTemplate() *DeidentifyTemplate { 9687 if x != nil { 9688 return x.DeidentifyTemplate 9689 } 9690 return nil 9691} 9692 9693func (x *CreateDeidentifyTemplateRequest) GetTemplateId() string { 9694 if x != nil { 9695 return x.TemplateId 9696 } 9697 return "" 9698} 9699 9700func (x *CreateDeidentifyTemplateRequest) GetLocationId() string { 9701 if x != nil { 9702 return x.LocationId 9703 } 9704 return "" 9705} 9706 9707// Request message for UpdateDeidentifyTemplate. 9708type UpdateDeidentifyTemplateRequest struct { 9709 state protoimpl.MessageState 9710 sizeCache protoimpl.SizeCache 9711 unknownFields protoimpl.UnknownFields 9712 9713 // Required. Resource name of organization and deidentify template to be updated, for 9714 // example `organizations/433245324/deidentifyTemplates/432452342` or 9715 // projects/project-id/deidentifyTemplates/432452342. 9716 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 9717 // New DeidentifyTemplate value. 9718 DeidentifyTemplate *DeidentifyTemplate `protobuf:"bytes,2,opt,name=deidentify_template,json=deidentifyTemplate,proto3" json:"deidentify_template,omitempty"` 9719 // Mask to control which fields get updated. 9720 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 9721} 9722 9723func (x *UpdateDeidentifyTemplateRequest) Reset() { 9724 *x = UpdateDeidentifyTemplateRequest{} 9725 if protoimpl.UnsafeEnabled { 9726 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[102] 9727 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9728 ms.StoreMessageInfo(mi) 9729 } 9730} 9731 9732func (x *UpdateDeidentifyTemplateRequest) String() string { 9733 return protoimpl.X.MessageStringOf(x) 9734} 9735 9736func (*UpdateDeidentifyTemplateRequest) ProtoMessage() {} 9737 9738func (x *UpdateDeidentifyTemplateRequest) ProtoReflect() protoreflect.Message { 9739 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[102] 9740 if protoimpl.UnsafeEnabled && x != nil { 9741 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9742 if ms.LoadMessageInfo() == nil { 9743 ms.StoreMessageInfo(mi) 9744 } 9745 return ms 9746 } 9747 return mi.MessageOf(x) 9748} 9749 9750// Deprecated: Use UpdateDeidentifyTemplateRequest.ProtoReflect.Descriptor instead. 9751func (*UpdateDeidentifyTemplateRequest) Descriptor() ([]byte, []int) { 9752 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{102} 9753} 9754 9755func (x *UpdateDeidentifyTemplateRequest) GetName() string { 9756 if x != nil { 9757 return x.Name 9758 } 9759 return "" 9760} 9761 9762func (x *UpdateDeidentifyTemplateRequest) GetDeidentifyTemplate() *DeidentifyTemplate { 9763 if x != nil { 9764 return x.DeidentifyTemplate 9765 } 9766 return nil 9767} 9768 9769func (x *UpdateDeidentifyTemplateRequest) GetUpdateMask() *fieldmaskpb.FieldMask { 9770 if x != nil { 9771 return x.UpdateMask 9772 } 9773 return nil 9774} 9775 9776// Request message for GetDeidentifyTemplate. 9777type GetDeidentifyTemplateRequest struct { 9778 state protoimpl.MessageState 9779 sizeCache protoimpl.SizeCache 9780 unknownFields protoimpl.UnknownFields 9781 9782 // Required. Resource name of the organization and deidentify template to be read, for 9783 // example `organizations/433245324/deidentifyTemplates/432452342` or 9784 // projects/project-id/deidentifyTemplates/432452342. 9785 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 9786} 9787 9788func (x *GetDeidentifyTemplateRequest) Reset() { 9789 *x = GetDeidentifyTemplateRequest{} 9790 if protoimpl.UnsafeEnabled { 9791 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[103] 9792 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9793 ms.StoreMessageInfo(mi) 9794 } 9795} 9796 9797func (x *GetDeidentifyTemplateRequest) String() string { 9798 return protoimpl.X.MessageStringOf(x) 9799} 9800 9801func (*GetDeidentifyTemplateRequest) ProtoMessage() {} 9802 9803func (x *GetDeidentifyTemplateRequest) ProtoReflect() protoreflect.Message { 9804 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[103] 9805 if protoimpl.UnsafeEnabled && x != nil { 9806 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9807 if ms.LoadMessageInfo() == nil { 9808 ms.StoreMessageInfo(mi) 9809 } 9810 return ms 9811 } 9812 return mi.MessageOf(x) 9813} 9814 9815// Deprecated: Use GetDeidentifyTemplateRequest.ProtoReflect.Descriptor instead. 9816func (*GetDeidentifyTemplateRequest) Descriptor() ([]byte, []int) { 9817 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{103} 9818} 9819 9820func (x *GetDeidentifyTemplateRequest) GetName() string { 9821 if x != nil { 9822 return x.Name 9823 } 9824 return "" 9825} 9826 9827// Request message for ListDeidentifyTemplates. 9828type ListDeidentifyTemplatesRequest struct { 9829 state protoimpl.MessageState 9830 sizeCache protoimpl.SizeCache 9831 unknownFields protoimpl.UnknownFields 9832 9833 // Required. Parent resource name. 9834 // 9835 // The format of this value varies depending on the scope of the request 9836 // (project or organization) and whether you have [specified a processing 9837 // location](https://cloud.google.com/dlp/docs/specifying-location): 9838 // 9839 // + Projects scope, location specified:<br/> 9840 // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> 9841 // + Projects scope, no location specified (defaults to global):<br/> 9842 // `projects/`<var>PROJECT_ID</var> 9843 // + Organizations scope, location specified:<br/> 9844 // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var> 9845 // + Organizations scope, no location specified (defaults to global):<br/> 9846 // `organizations/`<var>ORG_ID</var> 9847 // 9848 // The following example `parent` string specifies a parent project with the 9849 // identifier `example-project`, and specifies the `europe-west3` location 9850 // for processing data: 9851 // 9852 // parent=projects/example-project/locations/europe-west3 9853 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 9854 // Page token to continue retrieval. Comes from previous call 9855 // to `ListDeidentifyTemplates`. 9856 PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 9857 // Size of the page, can be limited by server. If zero server returns 9858 // a page of max size 100. 9859 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 9860 // Comma separated list of fields to order by, 9861 // followed by `asc` or `desc` postfix. This list is case-insensitive, 9862 // default sorting order is ascending, redundant space characters are 9863 // insignificant. 9864 // 9865 // Example: `name asc,update_time, create_time desc` 9866 // 9867 // Supported fields are: 9868 // 9869 // - `create_time`: corresponds to time the template was created. 9870 // - `update_time`: corresponds to time the template was last updated. 9871 // - `name`: corresponds to template's name. 9872 // - `display_name`: corresponds to template's display name. 9873 OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 9874 // Deprecated. This field has no effect. 9875 LocationId string `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 9876} 9877 9878func (x *ListDeidentifyTemplatesRequest) Reset() { 9879 *x = ListDeidentifyTemplatesRequest{} 9880 if protoimpl.UnsafeEnabled { 9881 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[104] 9882 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9883 ms.StoreMessageInfo(mi) 9884 } 9885} 9886 9887func (x *ListDeidentifyTemplatesRequest) String() string { 9888 return protoimpl.X.MessageStringOf(x) 9889} 9890 9891func (*ListDeidentifyTemplatesRequest) ProtoMessage() {} 9892 9893func (x *ListDeidentifyTemplatesRequest) ProtoReflect() protoreflect.Message { 9894 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[104] 9895 if protoimpl.UnsafeEnabled && x != nil { 9896 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9897 if ms.LoadMessageInfo() == nil { 9898 ms.StoreMessageInfo(mi) 9899 } 9900 return ms 9901 } 9902 return mi.MessageOf(x) 9903} 9904 9905// Deprecated: Use ListDeidentifyTemplatesRequest.ProtoReflect.Descriptor instead. 9906func (*ListDeidentifyTemplatesRequest) Descriptor() ([]byte, []int) { 9907 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{104} 9908} 9909 9910func (x *ListDeidentifyTemplatesRequest) GetParent() string { 9911 if x != nil { 9912 return x.Parent 9913 } 9914 return "" 9915} 9916 9917func (x *ListDeidentifyTemplatesRequest) GetPageToken() string { 9918 if x != nil { 9919 return x.PageToken 9920 } 9921 return "" 9922} 9923 9924func (x *ListDeidentifyTemplatesRequest) GetPageSize() int32 { 9925 if x != nil { 9926 return x.PageSize 9927 } 9928 return 0 9929} 9930 9931func (x *ListDeidentifyTemplatesRequest) GetOrderBy() string { 9932 if x != nil { 9933 return x.OrderBy 9934 } 9935 return "" 9936} 9937 9938func (x *ListDeidentifyTemplatesRequest) GetLocationId() string { 9939 if x != nil { 9940 return x.LocationId 9941 } 9942 return "" 9943} 9944 9945// Response message for ListDeidentifyTemplates. 9946type ListDeidentifyTemplatesResponse struct { 9947 state protoimpl.MessageState 9948 sizeCache protoimpl.SizeCache 9949 unknownFields protoimpl.UnknownFields 9950 9951 // List of deidentify templates, up to page_size in 9952 // ListDeidentifyTemplatesRequest. 9953 DeidentifyTemplates []*DeidentifyTemplate `protobuf:"bytes,1,rep,name=deidentify_templates,json=deidentifyTemplates,proto3" json:"deidentify_templates,omitempty"` 9954 // If the next page is available then the next page token to be used 9955 // in following ListDeidentifyTemplates request. 9956 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 9957} 9958 9959func (x *ListDeidentifyTemplatesResponse) Reset() { 9960 *x = ListDeidentifyTemplatesResponse{} 9961 if protoimpl.UnsafeEnabled { 9962 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[105] 9963 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9964 ms.StoreMessageInfo(mi) 9965 } 9966} 9967 9968func (x *ListDeidentifyTemplatesResponse) String() string { 9969 return protoimpl.X.MessageStringOf(x) 9970} 9971 9972func (*ListDeidentifyTemplatesResponse) ProtoMessage() {} 9973 9974func (x *ListDeidentifyTemplatesResponse) ProtoReflect() protoreflect.Message { 9975 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[105] 9976 if protoimpl.UnsafeEnabled && x != nil { 9977 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9978 if ms.LoadMessageInfo() == nil { 9979 ms.StoreMessageInfo(mi) 9980 } 9981 return ms 9982 } 9983 return mi.MessageOf(x) 9984} 9985 9986// Deprecated: Use ListDeidentifyTemplatesResponse.ProtoReflect.Descriptor instead. 9987func (*ListDeidentifyTemplatesResponse) Descriptor() ([]byte, []int) { 9988 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{105} 9989} 9990 9991func (x *ListDeidentifyTemplatesResponse) GetDeidentifyTemplates() []*DeidentifyTemplate { 9992 if x != nil { 9993 return x.DeidentifyTemplates 9994 } 9995 return nil 9996} 9997 9998func (x *ListDeidentifyTemplatesResponse) GetNextPageToken() string { 9999 if x != nil { 10000 return x.NextPageToken 10001 } 10002 return "" 10003} 10004 10005// Request message for DeleteDeidentifyTemplate. 10006type DeleteDeidentifyTemplateRequest struct { 10007 state protoimpl.MessageState 10008 sizeCache protoimpl.SizeCache 10009 unknownFields protoimpl.UnknownFields 10010 10011 // Required. Resource name of the organization and deidentify template to be deleted, 10012 // for example `organizations/433245324/deidentifyTemplates/432452342` or 10013 // projects/project-id/deidentifyTemplates/432452342. 10014 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 10015} 10016 10017func (x *DeleteDeidentifyTemplateRequest) Reset() { 10018 *x = DeleteDeidentifyTemplateRequest{} 10019 if protoimpl.UnsafeEnabled { 10020 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[106] 10021 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10022 ms.StoreMessageInfo(mi) 10023 } 10024} 10025 10026func (x *DeleteDeidentifyTemplateRequest) String() string { 10027 return protoimpl.X.MessageStringOf(x) 10028} 10029 10030func (*DeleteDeidentifyTemplateRequest) ProtoMessage() {} 10031 10032func (x *DeleteDeidentifyTemplateRequest) ProtoReflect() protoreflect.Message { 10033 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[106] 10034 if protoimpl.UnsafeEnabled && x != nil { 10035 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10036 if ms.LoadMessageInfo() == nil { 10037 ms.StoreMessageInfo(mi) 10038 } 10039 return ms 10040 } 10041 return mi.MessageOf(x) 10042} 10043 10044// Deprecated: Use DeleteDeidentifyTemplateRequest.ProtoReflect.Descriptor instead. 10045func (*DeleteDeidentifyTemplateRequest) Descriptor() ([]byte, []int) { 10046 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{106} 10047} 10048 10049func (x *DeleteDeidentifyTemplateRequest) GetName() string { 10050 if x != nil { 10051 return x.Name 10052 } 10053 return "" 10054} 10055 10056// Configuration for a custom dictionary created from a data source of any size 10057// up to the maximum size defined in the 10058// [limits](https://cloud.google.com/dlp/limits) page. The artifacts of 10059// dictionary creation are stored in the specified Google Cloud Storage 10060// location. Consider using `CustomInfoType.Dictionary` for smaller dictionaries 10061// that satisfy the size requirements. 10062type LargeCustomDictionaryConfig struct { 10063 state protoimpl.MessageState 10064 sizeCache protoimpl.SizeCache 10065 unknownFields protoimpl.UnknownFields 10066 10067 // Location to store dictionary artifacts in Google Cloud Storage. These files 10068 // will only be accessible by project owners and the DLP API. If any of these 10069 // artifacts are modified, the dictionary is considered invalid and can no 10070 // longer be used. 10071 OutputPath *CloudStoragePath `protobuf:"bytes,1,opt,name=output_path,json=outputPath,proto3" json:"output_path,omitempty"` 10072 // Types that are assignable to Source: 10073 // *LargeCustomDictionaryConfig_CloudStorageFileSet 10074 // *LargeCustomDictionaryConfig_BigQueryField 10075 Source isLargeCustomDictionaryConfig_Source `protobuf_oneof:"source"` 10076} 10077 10078func (x *LargeCustomDictionaryConfig) Reset() { 10079 *x = LargeCustomDictionaryConfig{} 10080 if protoimpl.UnsafeEnabled { 10081 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[107] 10082 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10083 ms.StoreMessageInfo(mi) 10084 } 10085} 10086 10087func (x *LargeCustomDictionaryConfig) String() string { 10088 return protoimpl.X.MessageStringOf(x) 10089} 10090 10091func (*LargeCustomDictionaryConfig) ProtoMessage() {} 10092 10093func (x *LargeCustomDictionaryConfig) ProtoReflect() protoreflect.Message { 10094 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[107] 10095 if protoimpl.UnsafeEnabled && x != nil { 10096 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10097 if ms.LoadMessageInfo() == nil { 10098 ms.StoreMessageInfo(mi) 10099 } 10100 return ms 10101 } 10102 return mi.MessageOf(x) 10103} 10104 10105// Deprecated: Use LargeCustomDictionaryConfig.ProtoReflect.Descriptor instead. 10106func (*LargeCustomDictionaryConfig) Descriptor() ([]byte, []int) { 10107 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{107} 10108} 10109 10110func (x *LargeCustomDictionaryConfig) GetOutputPath() *CloudStoragePath { 10111 if x != nil { 10112 return x.OutputPath 10113 } 10114 return nil 10115} 10116 10117func (m *LargeCustomDictionaryConfig) GetSource() isLargeCustomDictionaryConfig_Source { 10118 if m != nil { 10119 return m.Source 10120 } 10121 return nil 10122} 10123 10124func (x *LargeCustomDictionaryConfig) GetCloudStorageFileSet() *CloudStorageFileSet { 10125 if x, ok := x.GetSource().(*LargeCustomDictionaryConfig_CloudStorageFileSet); ok { 10126 return x.CloudStorageFileSet 10127 } 10128 return nil 10129} 10130 10131func (x *LargeCustomDictionaryConfig) GetBigQueryField() *BigQueryField { 10132 if x, ok := x.GetSource().(*LargeCustomDictionaryConfig_BigQueryField); ok { 10133 return x.BigQueryField 10134 } 10135 return nil 10136} 10137 10138type isLargeCustomDictionaryConfig_Source interface { 10139 isLargeCustomDictionaryConfig_Source() 10140} 10141 10142type LargeCustomDictionaryConfig_CloudStorageFileSet struct { 10143 // Set of files containing newline-delimited lists of dictionary phrases. 10144 CloudStorageFileSet *CloudStorageFileSet `protobuf:"bytes,2,opt,name=cloud_storage_file_set,json=cloudStorageFileSet,proto3,oneof"` 10145} 10146 10147type LargeCustomDictionaryConfig_BigQueryField struct { 10148 // Field in a BigQuery table where each cell represents a dictionary phrase. 10149 BigQueryField *BigQueryField `protobuf:"bytes,3,opt,name=big_query_field,json=bigQueryField,proto3,oneof"` 10150} 10151 10152func (*LargeCustomDictionaryConfig_CloudStorageFileSet) isLargeCustomDictionaryConfig_Source() {} 10153 10154func (*LargeCustomDictionaryConfig_BigQueryField) isLargeCustomDictionaryConfig_Source() {} 10155 10156// Summary statistics of a custom dictionary. 10157type LargeCustomDictionaryStats struct { 10158 state protoimpl.MessageState 10159 sizeCache protoimpl.SizeCache 10160 unknownFields protoimpl.UnknownFields 10161 10162 // Approximate number of distinct phrases in the dictionary. 10163 ApproxNumPhrases int64 `protobuf:"varint,1,opt,name=approx_num_phrases,json=approxNumPhrases,proto3" json:"approx_num_phrases,omitempty"` 10164} 10165 10166func (x *LargeCustomDictionaryStats) Reset() { 10167 *x = LargeCustomDictionaryStats{} 10168 if protoimpl.UnsafeEnabled { 10169 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[108] 10170 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10171 ms.StoreMessageInfo(mi) 10172 } 10173} 10174 10175func (x *LargeCustomDictionaryStats) String() string { 10176 return protoimpl.X.MessageStringOf(x) 10177} 10178 10179func (*LargeCustomDictionaryStats) ProtoMessage() {} 10180 10181func (x *LargeCustomDictionaryStats) ProtoReflect() protoreflect.Message { 10182 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[108] 10183 if protoimpl.UnsafeEnabled && x != nil { 10184 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10185 if ms.LoadMessageInfo() == nil { 10186 ms.StoreMessageInfo(mi) 10187 } 10188 return ms 10189 } 10190 return mi.MessageOf(x) 10191} 10192 10193// Deprecated: Use LargeCustomDictionaryStats.ProtoReflect.Descriptor instead. 10194func (*LargeCustomDictionaryStats) Descriptor() ([]byte, []int) { 10195 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{108} 10196} 10197 10198func (x *LargeCustomDictionaryStats) GetApproxNumPhrases() int64 { 10199 if x != nil { 10200 return x.ApproxNumPhrases 10201 } 10202 return 0 10203} 10204 10205// Configuration for stored infoTypes. All fields and subfield are provided 10206// by the user. For more information, see 10207// https://cloud.google.com/dlp/docs/creating-custom-infotypes. 10208type StoredInfoTypeConfig struct { 10209 state protoimpl.MessageState 10210 sizeCache protoimpl.SizeCache 10211 unknownFields protoimpl.UnknownFields 10212 10213 // Display name of the StoredInfoType (max 256 characters). 10214 DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 10215 // Description of the StoredInfoType (max 256 characters). 10216 Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` 10217 // Stored infotype types. 10218 // 10219 // Types that are assignable to Type: 10220 // *StoredInfoTypeConfig_LargeCustomDictionary 10221 // *StoredInfoTypeConfig_Dictionary 10222 // *StoredInfoTypeConfig_Regex 10223 Type isStoredInfoTypeConfig_Type `protobuf_oneof:"type"` 10224} 10225 10226func (x *StoredInfoTypeConfig) Reset() { 10227 *x = StoredInfoTypeConfig{} 10228 if protoimpl.UnsafeEnabled { 10229 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[109] 10230 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10231 ms.StoreMessageInfo(mi) 10232 } 10233} 10234 10235func (x *StoredInfoTypeConfig) String() string { 10236 return protoimpl.X.MessageStringOf(x) 10237} 10238 10239func (*StoredInfoTypeConfig) ProtoMessage() {} 10240 10241func (x *StoredInfoTypeConfig) ProtoReflect() protoreflect.Message { 10242 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[109] 10243 if protoimpl.UnsafeEnabled && x != nil { 10244 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10245 if ms.LoadMessageInfo() == nil { 10246 ms.StoreMessageInfo(mi) 10247 } 10248 return ms 10249 } 10250 return mi.MessageOf(x) 10251} 10252 10253// Deprecated: Use StoredInfoTypeConfig.ProtoReflect.Descriptor instead. 10254func (*StoredInfoTypeConfig) Descriptor() ([]byte, []int) { 10255 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{109} 10256} 10257 10258func (x *StoredInfoTypeConfig) GetDisplayName() string { 10259 if x != nil { 10260 return x.DisplayName 10261 } 10262 return "" 10263} 10264 10265func (x *StoredInfoTypeConfig) GetDescription() string { 10266 if x != nil { 10267 return x.Description 10268 } 10269 return "" 10270} 10271 10272func (m *StoredInfoTypeConfig) GetType() isStoredInfoTypeConfig_Type { 10273 if m != nil { 10274 return m.Type 10275 } 10276 return nil 10277} 10278 10279func (x *StoredInfoTypeConfig) GetLargeCustomDictionary() *LargeCustomDictionaryConfig { 10280 if x, ok := x.GetType().(*StoredInfoTypeConfig_LargeCustomDictionary); ok { 10281 return x.LargeCustomDictionary 10282 } 10283 return nil 10284} 10285 10286func (x *StoredInfoTypeConfig) GetDictionary() *CustomInfoType_Dictionary { 10287 if x, ok := x.GetType().(*StoredInfoTypeConfig_Dictionary); ok { 10288 return x.Dictionary 10289 } 10290 return nil 10291} 10292 10293func (x *StoredInfoTypeConfig) GetRegex() *CustomInfoType_Regex { 10294 if x, ok := x.GetType().(*StoredInfoTypeConfig_Regex); ok { 10295 return x.Regex 10296 } 10297 return nil 10298} 10299 10300type isStoredInfoTypeConfig_Type interface { 10301 isStoredInfoTypeConfig_Type() 10302} 10303 10304type StoredInfoTypeConfig_LargeCustomDictionary struct { 10305 // StoredInfoType where findings are defined by a dictionary of phrases. 10306 LargeCustomDictionary *LargeCustomDictionaryConfig `protobuf:"bytes,3,opt,name=large_custom_dictionary,json=largeCustomDictionary,proto3,oneof"` 10307} 10308 10309type StoredInfoTypeConfig_Dictionary struct { 10310 // Store dictionary-based CustomInfoType. 10311 Dictionary *CustomInfoType_Dictionary `protobuf:"bytes,4,opt,name=dictionary,proto3,oneof"` 10312} 10313 10314type StoredInfoTypeConfig_Regex struct { 10315 // Store regular expression-based StoredInfoType. 10316 Regex *CustomInfoType_Regex `protobuf:"bytes,5,opt,name=regex,proto3,oneof"` 10317} 10318 10319func (*StoredInfoTypeConfig_LargeCustomDictionary) isStoredInfoTypeConfig_Type() {} 10320 10321func (*StoredInfoTypeConfig_Dictionary) isStoredInfoTypeConfig_Type() {} 10322 10323func (*StoredInfoTypeConfig_Regex) isStoredInfoTypeConfig_Type() {} 10324 10325// Statistics for a StoredInfoType. 10326type StoredInfoTypeStats struct { 10327 state protoimpl.MessageState 10328 sizeCache protoimpl.SizeCache 10329 unknownFields protoimpl.UnknownFields 10330 10331 // Stat types 10332 // 10333 // Types that are assignable to Type: 10334 // *StoredInfoTypeStats_LargeCustomDictionary 10335 Type isStoredInfoTypeStats_Type `protobuf_oneof:"type"` 10336} 10337 10338func (x *StoredInfoTypeStats) Reset() { 10339 *x = StoredInfoTypeStats{} 10340 if protoimpl.UnsafeEnabled { 10341 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[110] 10342 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10343 ms.StoreMessageInfo(mi) 10344 } 10345} 10346 10347func (x *StoredInfoTypeStats) String() string { 10348 return protoimpl.X.MessageStringOf(x) 10349} 10350 10351func (*StoredInfoTypeStats) ProtoMessage() {} 10352 10353func (x *StoredInfoTypeStats) ProtoReflect() protoreflect.Message { 10354 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[110] 10355 if protoimpl.UnsafeEnabled && x != nil { 10356 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10357 if ms.LoadMessageInfo() == nil { 10358 ms.StoreMessageInfo(mi) 10359 } 10360 return ms 10361 } 10362 return mi.MessageOf(x) 10363} 10364 10365// Deprecated: Use StoredInfoTypeStats.ProtoReflect.Descriptor instead. 10366func (*StoredInfoTypeStats) Descriptor() ([]byte, []int) { 10367 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{110} 10368} 10369 10370func (m *StoredInfoTypeStats) GetType() isStoredInfoTypeStats_Type { 10371 if m != nil { 10372 return m.Type 10373 } 10374 return nil 10375} 10376 10377func (x *StoredInfoTypeStats) GetLargeCustomDictionary() *LargeCustomDictionaryStats { 10378 if x, ok := x.GetType().(*StoredInfoTypeStats_LargeCustomDictionary); ok { 10379 return x.LargeCustomDictionary 10380 } 10381 return nil 10382} 10383 10384type isStoredInfoTypeStats_Type interface { 10385 isStoredInfoTypeStats_Type() 10386} 10387 10388type StoredInfoTypeStats_LargeCustomDictionary struct { 10389 // StoredInfoType where findings are defined by a dictionary of phrases. 10390 LargeCustomDictionary *LargeCustomDictionaryStats `protobuf:"bytes,1,opt,name=large_custom_dictionary,json=largeCustomDictionary,proto3,oneof"` 10391} 10392 10393func (*StoredInfoTypeStats_LargeCustomDictionary) isStoredInfoTypeStats_Type() {} 10394 10395// Version of a StoredInfoType, including the configuration used to build it, 10396// create timestamp, and current state. 10397type StoredInfoTypeVersion struct { 10398 state protoimpl.MessageState 10399 sizeCache protoimpl.SizeCache 10400 unknownFields protoimpl.UnknownFields 10401 10402 // StoredInfoType configuration. 10403 Config *StoredInfoTypeConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` 10404 // Create timestamp of the version. Read-only, determined by the system 10405 // when the version is created. 10406 CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 10407 // Stored info type version state. Read-only, updated by the system 10408 // during dictionary creation. 10409 State StoredInfoTypeState `protobuf:"varint,3,opt,name=state,proto3,enum=google.privacy.dlp.v2.StoredInfoTypeState" json:"state,omitempty"` 10410 // Errors that occurred when creating this storedInfoType version, or 10411 // anomalies detected in the storedInfoType data that render it unusable. Only 10412 // the five most recent errors will be displayed, with the most recent error 10413 // appearing first. 10414 // 10415 // For example, some of the data for stored custom dictionaries is put in 10416 // the user's Google Cloud Storage bucket, and if this data is modified or 10417 // deleted by the user or another system, the dictionary becomes invalid. 10418 // 10419 // If any errors occur, fix the problem indicated by the error message and 10420 // use the UpdateStoredInfoType API method to create another version of the 10421 // storedInfoType to continue using it, reusing the same `config` if it was 10422 // not the source of the error. 10423 Errors []*Error `protobuf:"bytes,4,rep,name=errors,proto3" json:"errors,omitempty"` 10424 // Statistics about this storedInfoType version. 10425 Stats *StoredInfoTypeStats `protobuf:"bytes,5,opt,name=stats,proto3" json:"stats,omitempty"` 10426} 10427 10428func (x *StoredInfoTypeVersion) Reset() { 10429 *x = StoredInfoTypeVersion{} 10430 if protoimpl.UnsafeEnabled { 10431 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[111] 10432 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10433 ms.StoreMessageInfo(mi) 10434 } 10435} 10436 10437func (x *StoredInfoTypeVersion) String() string { 10438 return protoimpl.X.MessageStringOf(x) 10439} 10440 10441func (*StoredInfoTypeVersion) ProtoMessage() {} 10442 10443func (x *StoredInfoTypeVersion) ProtoReflect() protoreflect.Message { 10444 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[111] 10445 if protoimpl.UnsafeEnabled && x != nil { 10446 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10447 if ms.LoadMessageInfo() == nil { 10448 ms.StoreMessageInfo(mi) 10449 } 10450 return ms 10451 } 10452 return mi.MessageOf(x) 10453} 10454 10455// Deprecated: Use StoredInfoTypeVersion.ProtoReflect.Descriptor instead. 10456func (*StoredInfoTypeVersion) Descriptor() ([]byte, []int) { 10457 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{111} 10458} 10459 10460func (x *StoredInfoTypeVersion) GetConfig() *StoredInfoTypeConfig { 10461 if x != nil { 10462 return x.Config 10463 } 10464 return nil 10465} 10466 10467func (x *StoredInfoTypeVersion) GetCreateTime() *timestamppb.Timestamp { 10468 if x != nil { 10469 return x.CreateTime 10470 } 10471 return nil 10472} 10473 10474func (x *StoredInfoTypeVersion) GetState() StoredInfoTypeState { 10475 if x != nil { 10476 return x.State 10477 } 10478 return StoredInfoTypeState_STORED_INFO_TYPE_STATE_UNSPECIFIED 10479} 10480 10481func (x *StoredInfoTypeVersion) GetErrors() []*Error { 10482 if x != nil { 10483 return x.Errors 10484 } 10485 return nil 10486} 10487 10488func (x *StoredInfoTypeVersion) GetStats() *StoredInfoTypeStats { 10489 if x != nil { 10490 return x.Stats 10491 } 10492 return nil 10493} 10494 10495// StoredInfoType resource message that contains information about the current 10496// version and any pending updates. 10497type StoredInfoType struct { 10498 state protoimpl.MessageState 10499 sizeCache protoimpl.SizeCache 10500 unknownFields protoimpl.UnknownFields 10501 10502 // Resource name. 10503 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 10504 // Current version of the stored info type. 10505 CurrentVersion *StoredInfoTypeVersion `protobuf:"bytes,2,opt,name=current_version,json=currentVersion,proto3" json:"current_version,omitempty"` 10506 // Pending versions of the stored info type. Empty if no versions are 10507 // pending. 10508 PendingVersions []*StoredInfoTypeVersion `protobuf:"bytes,3,rep,name=pending_versions,json=pendingVersions,proto3" json:"pending_versions,omitempty"` 10509} 10510 10511func (x *StoredInfoType) Reset() { 10512 *x = StoredInfoType{} 10513 if protoimpl.UnsafeEnabled { 10514 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[112] 10515 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10516 ms.StoreMessageInfo(mi) 10517 } 10518} 10519 10520func (x *StoredInfoType) String() string { 10521 return protoimpl.X.MessageStringOf(x) 10522} 10523 10524func (*StoredInfoType) ProtoMessage() {} 10525 10526func (x *StoredInfoType) ProtoReflect() protoreflect.Message { 10527 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[112] 10528 if protoimpl.UnsafeEnabled && x != nil { 10529 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10530 if ms.LoadMessageInfo() == nil { 10531 ms.StoreMessageInfo(mi) 10532 } 10533 return ms 10534 } 10535 return mi.MessageOf(x) 10536} 10537 10538// Deprecated: Use StoredInfoType.ProtoReflect.Descriptor instead. 10539func (*StoredInfoType) Descriptor() ([]byte, []int) { 10540 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{112} 10541} 10542 10543func (x *StoredInfoType) GetName() string { 10544 if x != nil { 10545 return x.Name 10546 } 10547 return "" 10548} 10549 10550func (x *StoredInfoType) GetCurrentVersion() *StoredInfoTypeVersion { 10551 if x != nil { 10552 return x.CurrentVersion 10553 } 10554 return nil 10555} 10556 10557func (x *StoredInfoType) GetPendingVersions() []*StoredInfoTypeVersion { 10558 if x != nil { 10559 return x.PendingVersions 10560 } 10561 return nil 10562} 10563 10564// Request message for CreateStoredInfoType. 10565type CreateStoredInfoTypeRequest struct { 10566 state protoimpl.MessageState 10567 sizeCache protoimpl.SizeCache 10568 unknownFields protoimpl.UnknownFields 10569 10570 // Required. Parent resource name. 10571 // 10572 // The format of this value varies depending on the scope of the request 10573 // (project or organization) and whether you have [specified a processing 10574 // location](https://cloud.google.com/dlp/docs/specifying-location): 10575 // 10576 // + Projects scope, location specified:<br/> 10577 // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> 10578 // + Projects scope, no location specified (defaults to global):<br/> 10579 // `projects/`<var>PROJECT_ID</var> 10580 // + Organizations scope, location specified:<br/> 10581 // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var> 10582 // + Organizations scope, no location specified (defaults to global):<br/> 10583 // `organizations/`<var>ORG_ID</var> 10584 // 10585 // The following example `parent` string specifies a parent project with the 10586 // identifier `example-project`, and specifies the `europe-west3` location 10587 // for processing data: 10588 // 10589 // parent=projects/example-project/locations/europe-west3 10590 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 10591 // Required. Configuration of the storedInfoType to create. 10592 Config *StoredInfoTypeConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` 10593 // The storedInfoType ID can contain uppercase and lowercase letters, 10594 // numbers, and hyphens; that is, it must match the regular 10595 // expression: `[a-zA-Z\d-_]+`. The maximum length is 100 10596 // characters. Can be empty to allow the system to generate one. 10597 StoredInfoTypeId string `protobuf:"bytes,3,opt,name=stored_info_type_id,json=storedInfoTypeId,proto3" json:"stored_info_type_id,omitempty"` 10598 // Deprecated. This field has no effect. 10599 LocationId string `protobuf:"bytes,4,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 10600} 10601 10602func (x *CreateStoredInfoTypeRequest) Reset() { 10603 *x = CreateStoredInfoTypeRequest{} 10604 if protoimpl.UnsafeEnabled { 10605 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[113] 10606 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10607 ms.StoreMessageInfo(mi) 10608 } 10609} 10610 10611func (x *CreateStoredInfoTypeRequest) String() string { 10612 return protoimpl.X.MessageStringOf(x) 10613} 10614 10615func (*CreateStoredInfoTypeRequest) ProtoMessage() {} 10616 10617func (x *CreateStoredInfoTypeRequest) ProtoReflect() protoreflect.Message { 10618 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[113] 10619 if protoimpl.UnsafeEnabled && x != nil { 10620 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10621 if ms.LoadMessageInfo() == nil { 10622 ms.StoreMessageInfo(mi) 10623 } 10624 return ms 10625 } 10626 return mi.MessageOf(x) 10627} 10628 10629// Deprecated: Use CreateStoredInfoTypeRequest.ProtoReflect.Descriptor instead. 10630func (*CreateStoredInfoTypeRequest) Descriptor() ([]byte, []int) { 10631 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{113} 10632} 10633 10634func (x *CreateStoredInfoTypeRequest) GetParent() string { 10635 if x != nil { 10636 return x.Parent 10637 } 10638 return "" 10639} 10640 10641func (x *CreateStoredInfoTypeRequest) GetConfig() *StoredInfoTypeConfig { 10642 if x != nil { 10643 return x.Config 10644 } 10645 return nil 10646} 10647 10648func (x *CreateStoredInfoTypeRequest) GetStoredInfoTypeId() string { 10649 if x != nil { 10650 return x.StoredInfoTypeId 10651 } 10652 return "" 10653} 10654 10655func (x *CreateStoredInfoTypeRequest) GetLocationId() string { 10656 if x != nil { 10657 return x.LocationId 10658 } 10659 return "" 10660} 10661 10662// Request message for UpdateStoredInfoType. 10663type UpdateStoredInfoTypeRequest struct { 10664 state protoimpl.MessageState 10665 sizeCache protoimpl.SizeCache 10666 unknownFields protoimpl.UnknownFields 10667 10668 // Required. Resource name of organization and storedInfoType to be updated, for 10669 // example `organizations/433245324/storedInfoTypes/432452342` or 10670 // projects/project-id/storedInfoTypes/432452342. 10671 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 10672 // Updated configuration for the storedInfoType. If not provided, a new 10673 // version of the storedInfoType will be created with the existing 10674 // configuration. 10675 Config *StoredInfoTypeConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` 10676 // Mask to control which fields get updated. 10677 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 10678} 10679 10680func (x *UpdateStoredInfoTypeRequest) Reset() { 10681 *x = UpdateStoredInfoTypeRequest{} 10682 if protoimpl.UnsafeEnabled { 10683 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[114] 10684 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10685 ms.StoreMessageInfo(mi) 10686 } 10687} 10688 10689func (x *UpdateStoredInfoTypeRequest) String() string { 10690 return protoimpl.X.MessageStringOf(x) 10691} 10692 10693func (*UpdateStoredInfoTypeRequest) ProtoMessage() {} 10694 10695func (x *UpdateStoredInfoTypeRequest) ProtoReflect() protoreflect.Message { 10696 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[114] 10697 if protoimpl.UnsafeEnabled && x != nil { 10698 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10699 if ms.LoadMessageInfo() == nil { 10700 ms.StoreMessageInfo(mi) 10701 } 10702 return ms 10703 } 10704 return mi.MessageOf(x) 10705} 10706 10707// Deprecated: Use UpdateStoredInfoTypeRequest.ProtoReflect.Descriptor instead. 10708func (*UpdateStoredInfoTypeRequest) Descriptor() ([]byte, []int) { 10709 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{114} 10710} 10711 10712func (x *UpdateStoredInfoTypeRequest) GetName() string { 10713 if x != nil { 10714 return x.Name 10715 } 10716 return "" 10717} 10718 10719func (x *UpdateStoredInfoTypeRequest) GetConfig() *StoredInfoTypeConfig { 10720 if x != nil { 10721 return x.Config 10722 } 10723 return nil 10724} 10725 10726func (x *UpdateStoredInfoTypeRequest) GetUpdateMask() *fieldmaskpb.FieldMask { 10727 if x != nil { 10728 return x.UpdateMask 10729 } 10730 return nil 10731} 10732 10733// Request message for GetStoredInfoType. 10734type GetStoredInfoTypeRequest struct { 10735 state protoimpl.MessageState 10736 sizeCache protoimpl.SizeCache 10737 unknownFields protoimpl.UnknownFields 10738 10739 // Required. Resource name of the organization and storedInfoType to be read, for 10740 // example `organizations/433245324/storedInfoTypes/432452342` or 10741 // projects/project-id/storedInfoTypes/432452342. 10742 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 10743} 10744 10745func (x *GetStoredInfoTypeRequest) Reset() { 10746 *x = GetStoredInfoTypeRequest{} 10747 if protoimpl.UnsafeEnabled { 10748 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[115] 10749 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10750 ms.StoreMessageInfo(mi) 10751 } 10752} 10753 10754func (x *GetStoredInfoTypeRequest) String() string { 10755 return protoimpl.X.MessageStringOf(x) 10756} 10757 10758func (*GetStoredInfoTypeRequest) ProtoMessage() {} 10759 10760func (x *GetStoredInfoTypeRequest) ProtoReflect() protoreflect.Message { 10761 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[115] 10762 if protoimpl.UnsafeEnabled && x != nil { 10763 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10764 if ms.LoadMessageInfo() == nil { 10765 ms.StoreMessageInfo(mi) 10766 } 10767 return ms 10768 } 10769 return mi.MessageOf(x) 10770} 10771 10772// Deprecated: Use GetStoredInfoTypeRequest.ProtoReflect.Descriptor instead. 10773func (*GetStoredInfoTypeRequest) Descriptor() ([]byte, []int) { 10774 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{115} 10775} 10776 10777func (x *GetStoredInfoTypeRequest) GetName() string { 10778 if x != nil { 10779 return x.Name 10780 } 10781 return "" 10782} 10783 10784// Request message for ListStoredInfoTypes. 10785type ListStoredInfoTypesRequest struct { 10786 state protoimpl.MessageState 10787 sizeCache protoimpl.SizeCache 10788 unknownFields protoimpl.UnknownFields 10789 10790 // Required. Parent resource name. 10791 // 10792 // The format of this value varies depending on the scope of the request 10793 // (project or organization) and whether you have [specified a processing 10794 // location](https://cloud.google.com/dlp/docs/specifying-location): 10795 // 10796 // + Projects scope, location specified:<br/> 10797 // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> 10798 // + Projects scope, no location specified (defaults to global):<br/> 10799 // `projects/`<var>PROJECT_ID</var> 10800 // + Organizations scope, location specified:<br/> 10801 // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var> 10802 // + Organizations scope, no location specified (defaults to global):<br/> 10803 // `organizations/`<var>ORG_ID</var> 10804 // 10805 // The following example `parent` string specifies a parent project with the 10806 // identifier `example-project`, and specifies the `europe-west3` location 10807 // for processing data: 10808 // 10809 // parent=projects/example-project/locations/europe-west3 10810 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 10811 // Page token to continue retrieval. Comes from previous call 10812 // to `ListStoredInfoTypes`. 10813 PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 10814 // Size of the page, can be limited by server. If zero server returns 10815 // a page of max size 100. 10816 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 10817 // Comma separated list of fields to order by, 10818 // followed by `asc` or `desc` postfix. This list is case-insensitive, 10819 // default sorting order is ascending, redundant space characters are 10820 // insignificant. 10821 // 10822 // Example: `name asc, display_name, create_time desc` 10823 // 10824 // Supported fields are: 10825 // 10826 // - `create_time`: corresponds to time the most recent version of the 10827 // resource was created. 10828 // - `state`: corresponds to the state of the resource. 10829 // - `name`: corresponds to resource name. 10830 // - `display_name`: corresponds to info type's display name. 10831 OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 10832 // Deprecated. This field has no effect. 10833 LocationId string `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 10834} 10835 10836func (x *ListStoredInfoTypesRequest) Reset() { 10837 *x = ListStoredInfoTypesRequest{} 10838 if protoimpl.UnsafeEnabled { 10839 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[116] 10840 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10841 ms.StoreMessageInfo(mi) 10842 } 10843} 10844 10845func (x *ListStoredInfoTypesRequest) String() string { 10846 return protoimpl.X.MessageStringOf(x) 10847} 10848 10849func (*ListStoredInfoTypesRequest) ProtoMessage() {} 10850 10851func (x *ListStoredInfoTypesRequest) ProtoReflect() protoreflect.Message { 10852 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[116] 10853 if protoimpl.UnsafeEnabled && x != nil { 10854 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10855 if ms.LoadMessageInfo() == nil { 10856 ms.StoreMessageInfo(mi) 10857 } 10858 return ms 10859 } 10860 return mi.MessageOf(x) 10861} 10862 10863// Deprecated: Use ListStoredInfoTypesRequest.ProtoReflect.Descriptor instead. 10864func (*ListStoredInfoTypesRequest) Descriptor() ([]byte, []int) { 10865 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{116} 10866} 10867 10868func (x *ListStoredInfoTypesRequest) GetParent() string { 10869 if x != nil { 10870 return x.Parent 10871 } 10872 return "" 10873} 10874 10875func (x *ListStoredInfoTypesRequest) GetPageToken() string { 10876 if x != nil { 10877 return x.PageToken 10878 } 10879 return "" 10880} 10881 10882func (x *ListStoredInfoTypesRequest) GetPageSize() int32 { 10883 if x != nil { 10884 return x.PageSize 10885 } 10886 return 0 10887} 10888 10889func (x *ListStoredInfoTypesRequest) GetOrderBy() string { 10890 if x != nil { 10891 return x.OrderBy 10892 } 10893 return "" 10894} 10895 10896func (x *ListStoredInfoTypesRequest) GetLocationId() string { 10897 if x != nil { 10898 return x.LocationId 10899 } 10900 return "" 10901} 10902 10903// Response message for ListStoredInfoTypes. 10904type ListStoredInfoTypesResponse struct { 10905 state protoimpl.MessageState 10906 sizeCache protoimpl.SizeCache 10907 unknownFields protoimpl.UnknownFields 10908 10909 // List of storedInfoTypes, up to page_size in ListStoredInfoTypesRequest. 10910 StoredInfoTypes []*StoredInfoType `protobuf:"bytes,1,rep,name=stored_info_types,json=storedInfoTypes,proto3" json:"stored_info_types,omitempty"` 10911 // If the next page is available then the next page token to be used 10912 // in following ListStoredInfoTypes request. 10913 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 10914} 10915 10916func (x *ListStoredInfoTypesResponse) Reset() { 10917 *x = ListStoredInfoTypesResponse{} 10918 if protoimpl.UnsafeEnabled { 10919 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[117] 10920 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10921 ms.StoreMessageInfo(mi) 10922 } 10923} 10924 10925func (x *ListStoredInfoTypesResponse) String() string { 10926 return protoimpl.X.MessageStringOf(x) 10927} 10928 10929func (*ListStoredInfoTypesResponse) ProtoMessage() {} 10930 10931func (x *ListStoredInfoTypesResponse) ProtoReflect() protoreflect.Message { 10932 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[117] 10933 if protoimpl.UnsafeEnabled && x != nil { 10934 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10935 if ms.LoadMessageInfo() == nil { 10936 ms.StoreMessageInfo(mi) 10937 } 10938 return ms 10939 } 10940 return mi.MessageOf(x) 10941} 10942 10943// Deprecated: Use ListStoredInfoTypesResponse.ProtoReflect.Descriptor instead. 10944func (*ListStoredInfoTypesResponse) Descriptor() ([]byte, []int) { 10945 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{117} 10946} 10947 10948func (x *ListStoredInfoTypesResponse) GetStoredInfoTypes() []*StoredInfoType { 10949 if x != nil { 10950 return x.StoredInfoTypes 10951 } 10952 return nil 10953} 10954 10955func (x *ListStoredInfoTypesResponse) GetNextPageToken() string { 10956 if x != nil { 10957 return x.NextPageToken 10958 } 10959 return "" 10960} 10961 10962// Request message for DeleteStoredInfoType. 10963type DeleteStoredInfoTypeRequest struct { 10964 state protoimpl.MessageState 10965 sizeCache protoimpl.SizeCache 10966 unknownFields protoimpl.UnknownFields 10967 10968 // Required. Resource name of the organization and storedInfoType to be deleted, for 10969 // example `organizations/433245324/storedInfoTypes/432452342` or 10970 // projects/project-id/storedInfoTypes/432452342. 10971 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 10972} 10973 10974func (x *DeleteStoredInfoTypeRequest) Reset() { 10975 *x = DeleteStoredInfoTypeRequest{} 10976 if protoimpl.UnsafeEnabled { 10977 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[118] 10978 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10979 ms.StoreMessageInfo(mi) 10980 } 10981} 10982 10983func (x *DeleteStoredInfoTypeRequest) String() string { 10984 return protoimpl.X.MessageStringOf(x) 10985} 10986 10987func (*DeleteStoredInfoTypeRequest) ProtoMessage() {} 10988 10989func (x *DeleteStoredInfoTypeRequest) ProtoReflect() protoreflect.Message { 10990 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[118] 10991 if protoimpl.UnsafeEnabled && x != nil { 10992 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10993 if ms.LoadMessageInfo() == nil { 10994 ms.StoreMessageInfo(mi) 10995 } 10996 return ms 10997 } 10998 return mi.MessageOf(x) 10999} 11000 11001// Deprecated: Use DeleteStoredInfoTypeRequest.ProtoReflect.Descriptor instead. 11002func (*DeleteStoredInfoTypeRequest) Descriptor() ([]byte, []int) { 11003 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{118} 11004} 11005 11006func (x *DeleteStoredInfoTypeRequest) GetName() string { 11007 if x != nil { 11008 return x.Name 11009 } 11010 return "" 11011} 11012 11013// Request to search for potentially sensitive info in a custom location. 11014type HybridInspectJobTriggerRequest struct { 11015 state protoimpl.MessageState 11016 sizeCache protoimpl.SizeCache 11017 unknownFields protoimpl.UnknownFields 11018 11019 // Required. Resource name of the trigger to execute a hybrid inspect on, for example 11020 // `projects/dlp-test-project/jobTriggers/53234423`. 11021 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 11022 // The item to inspect. 11023 HybridItem *HybridContentItem `protobuf:"bytes,3,opt,name=hybrid_item,json=hybridItem,proto3" json:"hybrid_item,omitempty"` 11024} 11025 11026func (x *HybridInspectJobTriggerRequest) Reset() { 11027 *x = HybridInspectJobTriggerRequest{} 11028 if protoimpl.UnsafeEnabled { 11029 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[119] 11030 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11031 ms.StoreMessageInfo(mi) 11032 } 11033} 11034 11035func (x *HybridInspectJobTriggerRequest) String() string { 11036 return protoimpl.X.MessageStringOf(x) 11037} 11038 11039func (*HybridInspectJobTriggerRequest) ProtoMessage() {} 11040 11041func (x *HybridInspectJobTriggerRequest) ProtoReflect() protoreflect.Message { 11042 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[119] 11043 if protoimpl.UnsafeEnabled && x != nil { 11044 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11045 if ms.LoadMessageInfo() == nil { 11046 ms.StoreMessageInfo(mi) 11047 } 11048 return ms 11049 } 11050 return mi.MessageOf(x) 11051} 11052 11053// Deprecated: Use HybridInspectJobTriggerRequest.ProtoReflect.Descriptor instead. 11054func (*HybridInspectJobTriggerRequest) Descriptor() ([]byte, []int) { 11055 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{119} 11056} 11057 11058func (x *HybridInspectJobTriggerRequest) GetName() string { 11059 if x != nil { 11060 return x.Name 11061 } 11062 return "" 11063} 11064 11065func (x *HybridInspectJobTriggerRequest) GetHybridItem() *HybridContentItem { 11066 if x != nil { 11067 return x.HybridItem 11068 } 11069 return nil 11070} 11071 11072// Request to search for potentially sensitive info in a custom location. 11073type HybridInspectDlpJobRequest struct { 11074 state protoimpl.MessageState 11075 sizeCache protoimpl.SizeCache 11076 unknownFields protoimpl.UnknownFields 11077 11078 // Required. Resource name of the job to execute a hybrid inspect on, for example 11079 // `projects/dlp-test-project/dlpJob/53234423`. 11080 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 11081 // The item to inspect. 11082 HybridItem *HybridContentItem `protobuf:"bytes,3,opt,name=hybrid_item,json=hybridItem,proto3" json:"hybrid_item,omitempty"` 11083} 11084 11085func (x *HybridInspectDlpJobRequest) Reset() { 11086 *x = HybridInspectDlpJobRequest{} 11087 if protoimpl.UnsafeEnabled { 11088 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[120] 11089 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11090 ms.StoreMessageInfo(mi) 11091 } 11092} 11093 11094func (x *HybridInspectDlpJobRequest) String() string { 11095 return protoimpl.X.MessageStringOf(x) 11096} 11097 11098func (*HybridInspectDlpJobRequest) ProtoMessage() {} 11099 11100func (x *HybridInspectDlpJobRequest) ProtoReflect() protoreflect.Message { 11101 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[120] 11102 if protoimpl.UnsafeEnabled && x != nil { 11103 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11104 if ms.LoadMessageInfo() == nil { 11105 ms.StoreMessageInfo(mi) 11106 } 11107 return ms 11108 } 11109 return mi.MessageOf(x) 11110} 11111 11112// Deprecated: Use HybridInspectDlpJobRequest.ProtoReflect.Descriptor instead. 11113func (*HybridInspectDlpJobRequest) Descriptor() ([]byte, []int) { 11114 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{120} 11115} 11116 11117func (x *HybridInspectDlpJobRequest) GetName() string { 11118 if x != nil { 11119 return x.Name 11120 } 11121 return "" 11122} 11123 11124func (x *HybridInspectDlpJobRequest) GetHybridItem() *HybridContentItem { 11125 if x != nil { 11126 return x.HybridItem 11127 } 11128 return nil 11129} 11130 11131// An individual hybrid item to inspect. Will be stored temporarily during 11132// processing. 11133type HybridContentItem struct { 11134 state protoimpl.MessageState 11135 sizeCache protoimpl.SizeCache 11136 unknownFields protoimpl.UnknownFields 11137 11138 // The item to inspect. 11139 Item *ContentItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` 11140 // Supplementary information that will be added to each finding. 11141 FindingDetails *HybridFindingDetails `protobuf:"bytes,2,opt,name=finding_details,json=findingDetails,proto3" json:"finding_details,omitempty"` 11142} 11143 11144func (x *HybridContentItem) Reset() { 11145 *x = HybridContentItem{} 11146 if protoimpl.UnsafeEnabled { 11147 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[121] 11148 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11149 ms.StoreMessageInfo(mi) 11150 } 11151} 11152 11153func (x *HybridContentItem) String() string { 11154 return protoimpl.X.MessageStringOf(x) 11155} 11156 11157func (*HybridContentItem) ProtoMessage() {} 11158 11159func (x *HybridContentItem) ProtoReflect() protoreflect.Message { 11160 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[121] 11161 if protoimpl.UnsafeEnabled && x != nil { 11162 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11163 if ms.LoadMessageInfo() == nil { 11164 ms.StoreMessageInfo(mi) 11165 } 11166 return ms 11167 } 11168 return mi.MessageOf(x) 11169} 11170 11171// Deprecated: Use HybridContentItem.ProtoReflect.Descriptor instead. 11172func (*HybridContentItem) Descriptor() ([]byte, []int) { 11173 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{121} 11174} 11175 11176func (x *HybridContentItem) GetItem() *ContentItem { 11177 if x != nil { 11178 return x.Item 11179 } 11180 return nil 11181} 11182 11183func (x *HybridContentItem) GetFindingDetails() *HybridFindingDetails { 11184 if x != nil { 11185 return x.FindingDetails 11186 } 11187 return nil 11188} 11189 11190// Populate to associate additional data with each finding. 11191type HybridFindingDetails struct { 11192 state protoimpl.MessageState 11193 sizeCache protoimpl.SizeCache 11194 unknownFields protoimpl.UnknownFields 11195 11196 // Details about the container where the content being inspected is from. 11197 ContainerDetails *Container `protobuf:"bytes,1,opt,name=container_details,json=containerDetails,proto3" json:"container_details,omitempty"` 11198 // Offset in bytes of the line, from the beginning of the file, where the 11199 // finding is located. Populate if the item being scanned is only part of a 11200 // bigger item, such as a shard of a file and you want to track the absolute 11201 // position of the finding. 11202 FileOffset int64 `protobuf:"varint,2,opt,name=file_offset,json=fileOffset,proto3" json:"file_offset,omitempty"` 11203 // Offset of the row for tables. Populate if the row(s) being scanned are 11204 // part of a bigger dataset and you want to keep track of their absolute 11205 // position. 11206 RowOffset int64 `protobuf:"varint,3,opt,name=row_offset,json=rowOffset,proto3" json:"row_offset,omitempty"` 11207 // If the container is a table, additional information to make findings 11208 // meaningful such as the columns that are primary keys. If not known ahead 11209 // of time, can also be set within each inspect hybrid call and the two 11210 // will be merged. Note that identifying_fields will only be stored to 11211 // BigQuery, and only if the BigQuery action has been included. 11212 TableOptions *TableOptions `protobuf:"bytes,4,opt,name=table_options,json=tableOptions,proto3" json:"table_options,omitempty"` 11213 // Labels to represent user provided metadata about the data being inspected. 11214 // If configured by the job, some key values may be required. 11215 // The labels associated with `Finding`'s produced by hybrid 11216 // inspection. 11217 // 11218 // Label keys must be between 1 and 63 characters long and must conform 11219 // to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. 11220 // 11221 // Label values must be between 0 and 63 characters long and must conform 11222 // to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. 11223 // 11224 // No more than 10 labels can be associated with a given finding. 11225 // 11226 // Examples: 11227 // * `"environment" : "production"` 11228 // * `"pipeline" : "etl"` 11229 Labels map[string]string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 11230} 11231 11232func (x *HybridFindingDetails) Reset() { 11233 *x = HybridFindingDetails{} 11234 if protoimpl.UnsafeEnabled { 11235 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[122] 11236 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11237 ms.StoreMessageInfo(mi) 11238 } 11239} 11240 11241func (x *HybridFindingDetails) String() string { 11242 return protoimpl.X.MessageStringOf(x) 11243} 11244 11245func (*HybridFindingDetails) ProtoMessage() {} 11246 11247func (x *HybridFindingDetails) ProtoReflect() protoreflect.Message { 11248 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[122] 11249 if protoimpl.UnsafeEnabled && x != nil { 11250 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11251 if ms.LoadMessageInfo() == nil { 11252 ms.StoreMessageInfo(mi) 11253 } 11254 return ms 11255 } 11256 return mi.MessageOf(x) 11257} 11258 11259// Deprecated: Use HybridFindingDetails.ProtoReflect.Descriptor instead. 11260func (*HybridFindingDetails) Descriptor() ([]byte, []int) { 11261 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{122} 11262} 11263 11264func (x *HybridFindingDetails) GetContainerDetails() *Container { 11265 if x != nil { 11266 return x.ContainerDetails 11267 } 11268 return nil 11269} 11270 11271func (x *HybridFindingDetails) GetFileOffset() int64 { 11272 if x != nil { 11273 return x.FileOffset 11274 } 11275 return 0 11276} 11277 11278func (x *HybridFindingDetails) GetRowOffset() int64 { 11279 if x != nil { 11280 return x.RowOffset 11281 } 11282 return 0 11283} 11284 11285func (x *HybridFindingDetails) GetTableOptions() *TableOptions { 11286 if x != nil { 11287 return x.TableOptions 11288 } 11289 return nil 11290} 11291 11292func (x *HybridFindingDetails) GetLabels() map[string]string { 11293 if x != nil { 11294 return x.Labels 11295 } 11296 return nil 11297} 11298 11299// Quota exceeded errors will be thrown once quota has been met. 11300type HybridInspectResponse struct { 11301 state protoimpl.MessageState 11302 sizeCache protoimpl.SizeCache 11303 unknownFields protoimpl.UnknownFields 11304} 11305 11306func (x *HybridInspectResponse) Reset() { 11307 *x = HybridInspectResponse{} 11308 if protoimpl.UnsafeEnabled { 11309 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[123] 11310 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11311 ms.StoreMessageInfo(mi) 11312 } 11313} 11314 11315func (x *HybridInspectResponse) String() string { 11316 return protoimpl.X.MessageStringOf(x) 11317} 11318 11319func (*HybridInspectResponse) ProtoMessage() {} 11320 11321func (x *HybridInspectResponse) ProtoReflect() protoreflect.Message { 11322 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[123] 11323 if protoimpl.UnsafeEnabled && x != nil { 11324 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11325 if ms.LoadMessageInfo() == nil { 11326 ms.StoreMessageInfo(mi) 11327 } 11328 return ms 11329 } 11330 return mi.MessageOf(x) 11331} 11332 11333// Deprecated: Use HybridInspectResponse.ProtoReflect.Descriptor instead. 11334func (*HybridInspectResponse) Descriptor() ([]byte, []int) { 11335 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{123} 11336} 11337 11338// Configuration to control the number of findings returned. 11339type InspectConfig_FindingLimits struct { 11340 state protoimpl.MessageState 11341 sizeCache protoimpl.SizeCache 11342 unknownFields protoimpl.UnknownFields 11343 11344 // Max number of findings that will be returned for each item scanned. 11345 // When set within `InspectJobConfig`, 11346 // the maximum returned is 2000 regardless if this is set higher. 11347 // When set within `InspectContentRequest`, this field is ignored. 11348 MaxFindingsPerItem int32 `protobuf:"varint,1,opt,name=max_findings_per_item,json=maxFindingsPerItem,proto3" json:"max_findings_per_item,omitempty"` 11349 // Max number of findings that will be returned per request/job. 11350 // When set within `InspectContentRequest`, the maximum returned is 2000 11351 // regardless if this is set higher. 11352 MaxFindingsPerRequest int32 `protobuf:"varint,2,opt,name=max_findings_per_request,json=maxFindingsPerRequest,proto3" json:"max_findings_per_request,omitempty"` 11353 // Configuration of findings limit given for specified infoTypes. 11354 MaxFindingsPerInfoType []*InspectConfig_FindingLimits_InfoTypeLimit `protobuf:"bytes,3,rep,name=max_findings_per_info_type,json=maxFindingsPerInfoType,proto3" json:"max_findings_per_info_type,omitempty"` 11355} 11356 11357func (x *InspectConfig_FindingLimits) Reset() { 11358 *x = InspectConfig_FindingLimits{} 11359 if protoimpl.UnsafeEnabled { 11360 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[124] 11361 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11362 ms.StoreMessageInfo(mi) 11363 } 11364} 11365 11366func (x *InspectConfig_FindingLimits) String() string { 11367 return protoimpl.X.MessageStringOf(x) 11368} 11369 11370func (*InspectConfig_FindingLimits) ProtoMessage() {} 11371 11372func (x *InspectConfig_FindingLimits) ProtoReflect() protoreflect.Message { 11373 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[124] 11374 if protoimpl.UnsafeEnabled && x != nil { 11375 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11376 if ms.LoadMessageInfo() == nil { 11377 ms.StoreMessageInfo(mi) 11378 } 11379 return ms 11380 } 11381 return mi.MessageOf(x) 11382} 11383 11384// Deprecated: Use InspectConfig_FindingLimits.ProtoReflect.Descriptor instead. 11385func (*InspectConfig_FindingLimits) Descriptor() ([]byte, []int) { 11386 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{4, 0} 11387} 11388 11389func (x *InspectConfig_FindingLimits) GetMaxFindingsPerItem() int32 { 11390 if x != nil { 11391 return x.MaxFindingsPerItem 11392 } 11393 return 0 11394} 11395 11396func (x *InspectConfig_FindingLimits) GetMaxFindingsPerRequest() int32 { 11397 if x != nil { 11398 return x.MaxFindingsPerRequest 11399 } 11400 return 0 11401} 11402 11403func (x *InspectConfig_FindingLimits) GetMaxFindingsPerInfoType() []*InspectConfig_FindingLimits_InfoTypeLimit { 11404 if x != nil { 11405 return x.MaxFindingsPerInfoType 11406 } 11407 return nil 11408} 11409 11410// Max findings configuration per infoType, per content item or long 11411// running DlpJob. 11412type InspectConfig_FindingLimits_InfoTypeLimit struct { 11413 state protoimpl.MessageState 11414 sizeCache protoimpl.SizeCache 11415 unknownFields protoimpl.UnknownFields 11416 11417 // Type of information the findings limit applies to. Only one limit per 11418 // info_type should be provided. If InfoTypeLimit does not have an 11419 // info_type, the DLP API applies the limit against all info_types that 11420 // are found but not specified in another InfoTypeLimit. 11421 InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"` 11422 // Max findings limit for the given infoType. 11423 MaxFindings int32 `protobuf:"varint,2,opt,name=max_findings,json=maxFindings,proto3" json:"max_findings,omitempty"` 11424} 11425 11426func (x *InspectConfig_FindingLimits_InfoTypeLimit) Reset() { 11427 *x = InspectConfig_FindingLimits_InfoTypeLimit{} 11428 if protoimpl.UnsafeEnabled { 11429 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[125] 11430 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11431 ms.StoreMessageInfo(mi) 11432 } 11433} 11434 11435func (x *InspectConfig_FindingLimits_InfoTypeLimit) String() string { 11436 return protoimpl.X.MessageStringOf(x) 11437} 11438 11439func (*InspectConfig_FindingLimits_InfoTypeLimit) ProtoMessage() {} 11440 11441func (x *InspectConfig_FindingLimits_InfoTypeLimit) ProtoReflect() protoreflect.Message { 11442 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[125] 11443 if protoimpl.UnsafeEnabled && x != nil { 11444 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11445 if ms.LoadMessageInfo() == nil { 11446 ms.StoreMessageInfo(mi) 11447 } 11448 return ms 11449 } 11450 return mi.MessageOf(x) 11451} 11452 11453// Deprecated: Use InspectConfig_FindingLimits_InfoTypeLimit.ProtoReflect.Descriptor instead. 11454func (*InspectConfig_FindingLimits_InfoTypeLimit) Descriptor() ([]byte, []int) { 11455 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{4, 0, 0} 11456} 11457 11458func (x *InspectConfig_FindingLimits_InfoTypeLimit) GetInfoType() *InfoType { 11459 if x != nil { 11460 return x.InfoType 11461 } 11462 return nil 11463} 11464 11465func (x *InspectConfig_FindingLimits_InfoTypeLimit) GetMaxFindings() int32 { 11466 if x != nil { 11467 return x.MaxFindings 11468 } 11469 return 0 11470} 11471 11472// Values of the row. 11473type Table_Row struct { 11474 state protoimpl.MessageState 11475 sizeCache protoimpl.SizeCache 11476 unknownFields protoimpl.UnknownFields 11477 11478 // Individual cells. 11479 Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` 11480} 11481 11482func (x *Table_Row) Reset() { 11483 *x = Table_Row{} 11484 if protoimpl.UnsafeEnabled { 11485 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[126] 11486 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11487 ms.StoreMessageInfo(mi) 11488 } 11489} 11490 11491func (x *Table_Row) String() string { 11492 return protoimpl.X.MessageStringOf(x) 11493} 11494 11495func (*Table_Row) ProtoMessage() {} 11496 11497func (x *Table_Row) ProtoReflect() protoreflect.Message { 11498 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[126] 11499 if protoimpl.UnsafeEnabled && x != nil { 11500 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11501 if ms.LoadMessageInfo() == nil { 11502 ms.StoreMessageInfo(mi) 11503 } 11504 return ms 11505 } 11506 return mi.MessageOf(x) 11507} 11508 11509// Deprecated: Use Table_Row.ProtoReflect.Descriptor instead. 11510func (*Table_Row) Descriptor() ([]byte, []int) { 11511 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{7, 0} 11512} 11513 11514func (x *Table_Row) GetValues() []*Value { 11515 if x != nil { 11516 return x.Values 11517 } 11518 return nil 11519} 11520 11521// Configuration for determining how redaction of images should occur. 11522type RedactImageRequest_ImageRedactionConfig struct { 11523 state protoimpl.MessageState 11524 sizeCache protoimpl.SizeCache 11525 unknownFields protoimpl.UnknownFields 11526 11527 // Type of information to redact from images. 11528 // 11529 // Types that are assignable to Target: 11530 // *RedactImageRequest_ImageRedactionConfig_InfoType 11531 // *RedactImageRequest_ImageRedactionConfig_RedactAllText 11532 Target isRedactImageRequest_ImageRedactionConfig_Target `protobuf_oneof:"target"` 11533 // The color to use when redacting content from an image. If not specified, 11534 // the default is black. 11535 RedactionColor *Color `protobuf:"bytes,3,opt,name=redaction_color,json=redactionColor,proto3" json:"redaction_color,omitempty"` 11536} 11537 11538func (x *RedactImageRequest_ImageRedactionConfig) Reset() { 11539 *x = RedactImageRequest_ImageRedactionConfig{} 11540 if protoimpl.UnsafeEnabled { 11541 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[128] 11542 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11543 ms.StoreMessageInfo(mi) 11544 } 11545} 11546 11547func (x *RedactImageRequest_ImageRedactionConfig) String() string { 11548 return protoimpl.X.MessageStringOf(x) 11549} 11550 11551func (*RedactImageRequest_ImageRedactionConfig) ProtoMessage() {} 11552 11553func (x *RedactImageRequest_ImageRedactionConfig) ProtoReflect() protoreflect.Message { 11554 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[128] 11555 if protoimpl.UnsafeEnabled && x != nil { 11556 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11557 if ms.LoadMessageInfo() == nil { 11558 ms.StoreMessageInfo(mi) 11559 } 11560 return ms 11561 } 11562 return mi.MessageOf(x) 11563} 11564 11565// Deprecated: Use RedactImageRequest_ImageRedactionConfig.ProtoReflect.Descriptor instead. 11566func (*RedactImageRequest_ImageRedactionConfig) Descriptor() ([]byte, []int) { 11567 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{21, 0} 11568} 11569 11570func (m *RedactImageRequest_ImageRedactionConfig) GetTarget() isRedactImageRequest_ImageRedactionConfig_Target { 11571 if m != nil { 11572 return m.Target 11573 } 11574 return nil 11575} 11576 11577func (x *RedactImageRequest_ImageRedactionConfig) GetInfoType() *InfoType { 11578 if x, ok := x.GetTarget().(*RedactImageRequest_ImageRedactionConfig_InfoType); ok { 11579 return x.InfoType 11580 } 11581 return nil 11582} 11583 11584func (x *RedactImageRequest_ImageRedactionConfig) GetRedactAllText() bool { 11585 if x, ok := x.GetTarget().(*RedactImageRequest_ImageRedactionConfig_RedactAllText); ok { 11586 return x.RedactAllText 11587 } 11588 return false 11589} 11590 11591func (x *RedactImageRequest_ImageRedactionConfig) GetRedactionColor() *Color { 11592 if x != nil { 11593 return x.RedactionColor 11594 } 11595 return nil 11596} 11597 11598type isRedactImageRequest_ImageRedactionConfig_Target interface { 11599 isRedactImageRequest_ImageRedactionConfig_Target() 11600} 11601 11602type RedactImageRequest_ImageRedactionConfig_InfoType struct { 11603 // Only one per info_type should be provided per request. If not 11604 // specified, and redact_all_text is false, the DLP API will redact all 11605 // text that it matches against all info_types that are found, but not 11606 // specified in another ImageRedactionConfig. 11607 InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3,oneof"` 11608} 11609 11610type RedactImageRequest_ImageRedactionConfig_RedactAllText struct { 11611 // If true, all text found in the image, regardless whether it matches an 11612 // info_type, is redacted. Only one should be provided. 11613 RedactAllText bool `protobuf:"varint,2,opt,name=redact_all_text,json=redactAllText,proto3,oneof"` 11614} 11615 11616func (*RedactImageRequest_ImageRedactionConfig_InfoType) isRedactImageRequest_ImageRedactionConfig_Target() { 11617} 11618 11619func (*RedactImageRequest_ImageRedactionConfig_RedactAllText) isRedactImageRequest_ImageRedactionConfig_Target() { 11620} 11621 11622// Snapshot of the inspection configuration. 11623type InspectDataSourceDetails_RequestedOptions struct { 11624 state protoimpl.MessageState 11625 sizeCache protoimpl.SizeCache 11626 unknownFields protoimpl.UnknownFields 11627 11628 // If run with an InspectTemplate, a snapshot of its state at the time of 11629 // this run. 11630 SnapshotInspectTemplate *InspectTemplate `protobuf:"bytes,1,opt,name=snapshot_inspect_template,json=snapshotInspectTemplate,proto3" json:"snapshot_inspect_template,omitempty"` 11631 // Inspect config. 11632 JobConfig *InspectJobConfig `protobuf:"bytes,3,opt,name=job_config,json=jobConfig,proto3" json:"job_config,omitempty"` 11633} 11634 11635func (x *InspectDataSourceDetails_RequestedOptions) Reset() { 11636 *x = InspectDataSourceDetails_RequestedOptions{} 11637 if protoimpl.UnsafeEnabled { 11638 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[129] 11639 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11640 ms.StoreMessageInfo(mi) 11641 } 11642} 11643 11644func (x *InspectDataSourceDetails_RequestedOptions) String() string { 11645 return protoimpl.X.MessageStringOf(x) 11646} 11647 11648func (*InspectDataSourceDetails_RequestedOptions) ProtoMessage() {} 11649 11650func (x *InspectDataSourceDetails_RequestedOptions) ProtoReflect() protoreflect.Message { 11651 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[129] 11652 if protoimpl.UnsafeEnabled && x != nil { 11653 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11654 if ms.LoadMessageInfo() == nil { 11655 ms.StoreMessageInfo(mi) 11656 } 11657 return ms 11658 } 11659 return mi.MessageOf(x) 11660} 11661 11662// Deprecated: Use InspectDataSourceDetails_RequestedOptions.ProtoReflect.Descriptor instead. 11663func (*InspectDataSourceDetails_RequestedOptions) Descriptor() ([]byte, []int) { 11664 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{32, 0} 11665} 11666 11667func (x *InspectDataSourceDetails_RequestedOptions) GetSnapshotInspectTemplate() *InspectTemplate { 11668 if x != nil { 11669 return x.SnapshotInspectTemplate 11670 } 11671 return nil 11672} 11673 11674func (x *InspectDataSourceDetails_RequestedOptions) GetJobConfig() *InspectJobConfig { 11675 if x != nil { 11676 return x.JobConfig 11677 } 11678 return nil 11679} 11680 11681// All result fields mentioned below are updated while the job is processing. 11682type InspectDataSourceDetails_Result struct { 11683 state protoimpl.MessageState 11684 sizeCache protoimpl.SizeCache 11685 unknownFields protoimpl.UnknownFields 11686 11687 // Total size in bytes that were processed. 11688 ProcessedBytes int64 `protobuf:"varint,1,opt,name=processed_bytes,json=processedBytes,proto3" json:"processed_bytes,omitempty"` 11689 // Estimate of the number of bytes to process. 11690 TotalEstimatedBytes int64 `protobuf:"varint,2,opt,name=total_estimated_bytes,json=totalEstimatedBytes,proto3" json:"total_estimated_bytes,omitempty"` 11691 // Statistics of how many instances of each info type were found during 11692 // inspect job. 11693 InfoTypeStats []*InfoTypeStats `protobuf:"bytes,3,rep,name=info_type_stats,json=infoTypeStats,proto3" json:"info_type_stats,omitempty"` 11694 // Statistics related to the processing of hybrid inspect. 11695 // Early access feature is in a pre-release state and might change or have 11696 // limited support. For more information, see 11697 // https://cloud.google.com/products#product-launch-stages. 11698 HybridStats *HybridInspectStatistics `protobuf:"bytes,7,opt,name=hybrid_stats,json=hybridStats,proto3" json:"hybrid_stats,omitempty"` 11699} 11700 11701func (x *InspectDataSourceDetails_Result) Reset() { 11702 *x = InspectDataSourceDetails_Result{} 11703 if protoimpl.UnsafeEnabled { 11704 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[130] 11705 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11706 ms.StoreMessageInfo(mi) 11707 } 11708} 11709 11710func (x *InspectDataSourceDetails_Result) String() string { 11711 return protoimpl.X.MessageStringOf(x) 11712} 11713 11714func (*InspectDataSourceDetails_Result) ProtoMessage() {} 11715 11716func (x *InspectDataSourceDetails_Result) ProtoReflect() protoreflect.Message { 11717 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[130] 11718 if protoimpl.UnsafeEnabled && x != nil { 11719 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11720 if ms.LoadMessageInfo() == nil { 11721 ms.StoreMessageInfo(mi) 11722 } 11723 return ms 11724 } 11725 return mi.MessageOf(x) 11726} 11727 11728// Deprecated: Use InspectDataSourceDetails_Result.ProtoReflect.Descriptor instead. 11729func (*InspectDataSourceDetails_Result) Descriptor() ([]byte, []int) { 11730 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{32, 1} 11731} 11732 11733func (x *InspectDataSourceDetails_Result) GetProcessedBytes() int64 { 11734 if x != nil { 11735 return x.ProcessedBytes 11736 } 11737 return 0 11738} 11739 11740func (x *InspectDataSourceDetails_Result) GetTotalEstimatedBytes() int64 { 11741 if x != nil { 11742 return x.TotalEstimatedBytes 11743 } 11744 return 0 11745} 11746 11747func (x *InspectDataSourceDetails_Result) GetInfoTypeStats() []*InfoTypeStats { 11748 if x != nil { 11749 return x.InfoTypeStats 11750 } 11751 return nil 11752} 11753 11754func (x *InspectDataSourceDetails_Result) GetHybridStats() *HybridInspectStatistics { 11755 if x != nil { 11756 return x.HybridStats 11757 } 11758 return nil 11759} 11760 11761// A quasi-identifier column has a custom_tag, used to know which column 11762// in the data corresponds to which column in the statistical model. 11763type StatisticalTable_QuasiIdentifierField struct { 11764 state protoimpl.MessageState 11765 sizeCache protoimpl.SizeCache 11766 unknownFields protoimpl.UnknownFields 11767 11768 // Identifies the column. 11769 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 11770 // A column can be tagged with a custom tag. In this case, the user must 11771 // indicate an auxiliary table that contains statistical information on 11772 // the possible values of this column (below). 11773 CustomTag string `protobuf:"bytes,2,opt,name=custom_tag,json=customTag,proto3" json:"custom_tag,omitempty"` 11774} 11775 11776func (x *StatisticalTable_QuasiIdentifierField) Reset() { 11777 *x = StatisticalTable_QuasiIdentifierField{} 11778 if protoimpl.UnsafeEnabled { 11779 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[131] 11780 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11781 ms.StoreMessageInfo(mi) 11782 } 11783} 11784 11785func (x *StatisticalTable_QuasiIdentifierField) String() string { 11786 return protoimpl.X.MessageStringOf(x) 11787} 11788 11789func (*StatisticalTable_QuasiIdentifierField) ProtoMessage() {} 11790 11791func (x *StatisticalTable_QuasiIdentifierField) ProtoReflect() protoreflect.Message { 11792 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[131] 11793 if protoimpl.UnsafeEnabled && x != nil { 11794 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11795 if ms.LoadMessageInfo() == nil { 11796 ms.StoreMessageInfo(mi) 11797 } 11798 return ms 11799 } 11800 return mi.MessageOf(x) 11801} 11802 11803// Deprecated: Use StatisticalTable_QuasiIdentifierField.ProtoReflect.Descriptor instead. 11804func (*StatisticalTable_QuasiIdentifierField) Descriptor() ([]byte, []int) { 11805 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{39, 0} 11806} 11807 11808func (x *StatisticalTable_QuasiIdentifierField) GetField() *FieldId { 11809 if x != nil { 11810 return x.Field 11811 } 11812 return nil 11813} 11814 11815func (x *StatisticalTable_QuasiIdentifierField) GetCustomTag() string { 11816 if x != nil { 11817 return x.CustomTag 11818 } 11819 return "" 11820} 11821 11822// Compute numerical stats over an individual column, including 11823// min, max, and quantiles. 11824type PrivacyMetric_NumericalStatsConfig struct { 11825 state protoimpl.MessageState 11826 sizeCache protoimpl.SizeCache 11827 unknownFields protoimpl.UnknownFields 11828 11829 // Field to compute numerical stats on. Supported types are 11830 // integer, float, date, datetime, timestamp, time. 11831 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 11832} 11833 11834func (x *PrivacyMetric_NumericalStatsConfig) Reset() { 11835 *x = PrivacyMetric_NumericalStatsConfig{} 11836 if protoimpl.UnsafeEnabled { 11837 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[132] 11838 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11839 ms.StoreMessageInfo(mi) 11840 } 11841} 11842 11843func (x *PrivacyMetric_NumericalStatsConfig) String() string { 11844 return protoimpl.X.MessageStringOf(x) 11845} 11846 11847func (*PrivacyMetric_NumericalStatsConfig) ProtoMessage() {} 11848 11849func (x *PrivacyMetric_NumericalStatsConfig) ProtoReflect() protoreflect.Message { 11850 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[132] 11851 if protoimpl.UnsafeEnabled && x != nil { 11852 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11853 if ms.LoadMessageInfo() == nil { 11854 ms.StoreMessageInfo(mi) 11855 } 11856 return ms 11857 } 11858 return mi.MessageOf(x) 11859} 11860 11861// Deprecated: Use PrivacyMetric_NumericalStatsConfig.ProtoReflect.Descriptor instead. 11862func (*PrivacyMetric_NumericalStatsConfig) Descriptor() ([]byte, []int) { 11863 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 0} 11864} 11865 11866func (x *PrivacyMetric_NumericalStatsConfig) GetField() *FieldId { 11867 if x != nil { 11868 return x.Field 11869 } 11870 return nil 11871} 11872 11873// Compute numerical stats over an individual column, including 11874// number of distinct values and value count distribution. 11875type PrivacyMetric_CategoricalStatsConfig struct { 11876 state protoimpl.MessageState 11877 sizeCache protoimpl.SizeCache 11878 unknownFields protoimpl.UnknownFields 11879 11880 // Field to compute categorical stats on. All column types are 11881 // supported except for arrays and structs. However, it may be more 11882 // informative to use NumericalStats when the field type is supported, 11883 // depending on the data. 11884 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 11885} 11886 11887func (x *PrivacyMetric_CategoricalStatsConfig) Reset() { 11888 *x = PrivacyMetric_CategoricalStatsConfig{} 11889 if protoimpl.UnsafeEnabled { 11890 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[133] 11891 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11892 ms.StoreMessageInfo(mi) 11893 } 11894} 11895 11896func (x *PrivacyMetric_CategoricalStatsConfig) String() string { 11897 return protoimpl.X.MessageStringOf(x) 11898} 11899 11900func (*PrivacyMetric_CategoricalStatsConfig) ProtoMessage() {} 11901 11902func (x *PrivacyMetric_CategoricalStatsConfig) ProtoReflect() protoreflect.Message { 11903 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[133] 11904 if protoimpl.UnsafeEnabled && x != nil { 11905 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11906 if ms.LoadMessageInfo() == nil { 11907 ms.StoreMessageInfo(mi) 11908 } 11909 return ms 11910 } 11911 return mi.MessageOf(x) 11912} 11913 11914// Deprecated: Use PrivacyMetric_CategoricalStatsConfig.ProtoReflect.Descriptor instead. 11915func (*PrivacyMetric_CategoricalStatsConfig) Descriptor() ([]byte, []int) { 11916 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 1} 11917} 11918 11919func (x *PrivacyMetric_CategoricalStatsConfig) GetField() *FieldId { 11920 if x != nil { 11921 return x.Field 11922 } 11923 return nil 11924} 11925 11926// k-anonymity metric, used for analysis of reidentification risk. 11927type PrivacyMetric_KAnonymityConfig struct { 11928 state protoimpl.MessageState 11929 sizeCache protoimpl.SizeCache 11930 unknownFields protoimpl.UnknownFields 11931 11932 // Set of fields to compute k-anonymity over. When multiple fields are 11933 // specified, they are considered a single composite key. Structs and 11934 // repeated data types are not supported; however, nested fields are 11935 // supported so long as they are not structs themselves or nested within 11936 // a repeated field. 11937 QuasiIds []*FieldId `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"` 11938 // Message indicating that multiple rows might be associated to a 11939 // single individual. If the same entity_id is associated to multiple 11940 // quasi-identifier tuples over distinct rows, we consider the entire 11941 // collection of tuples as the composite quasi-identifier. This collection 11942 // is a multiset: the order in which the different tuples appear in the 11943 // dataset is ignored, but their frequency is taken into account. 11944 // 11945 // Important note: a maximum of 1000 rows can be associated to a single 11946 // entity ID. If more rows are associated with the same entity ID, some 11947 // might be ignored. 11948 EntityId *EntityId `protobuf:"bytes,2,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"` 11949} 11950 11951func (x *PrivacyMetric_KAnonymityConfig) Reset() { 11952 *x = PrivacyMetric_KAnonymityConfig{} 11953 if protoimpl.UnsafeEnabled { 11954 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[134] 11955 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11956 ms.StoreMessageInfo(mi) 11957 } 11958} 11959 11960func (x *PrivacyMetric_KAnonymityConfig) String() string { 11961 return protoimpl.X.MessageStringOf(x) 11962} 11963 11964func (*PrivacyMetric_KAnonymityConfig) ProtoMessage() {} 11965 11966func (x *PrivacyMetric_KAnonymityConfig) ProtoReflect() protoreflect.Message { 11967 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[134] 11968 if protoimpl.UnsafeEnabled && x != nil { 11969 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11970 if ms.LoadMessageInfo() == nil { 11971 ms.StoreMessageInfo(mi) 11972 } 11973 return ms 11974 } 11975 return mi.MessageOf(x) 11976} 11977 11978// Deprecated: Use PrivacyMetric_KAnonymityConfig.ProtoReflect.Descriptor instead. 11979func (*PrivacyMetric_KAnonymityConfig) Descriptor() ([]byte, []int) { 11980 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 2} 11981} 11982 11983func (x *PrivacyMetric_KAnonymityConfig) GetQuasiIds() []*FieldId { 11984 if x != nil { 11985 return x.QuasiIds 11986 } 11987 return nil 11988} 11989 11990func (x *PrivacyMetric_KAnonymityConfig) GetEntityId() *EntityId { 11991 if x != nil { 11992 return x.EntityId 11993 } 11994 return nil 11995} 11996 11997// l-diversity metric, used for analysis of reidentification risk. 11998type PrivacyMetric_LDiversityConfig struct { 11999 state protoimpl.MessageState 12000 sizeCache protoimpl.SizeCache 12001 unknownFields protoimpl.UnknownFields 12002 12003 // Set of quasi-identifiers indicating how equivalence classes are 12004 // defined for the l-diversity computation. When multiple fields are 12005 // specified, they are considered a single composite key. 12006 QuasiIds []*FieldId `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"` 12007 // Sensitive field for computing the l-value. 12008 SensitiveAttribute *FieldId `protobuf:"bytes,2,opt,name=sensitive_attribute,json=sensitiveAttribute,proto3" json:"sensitive_attribute,omitempty"` 12009} 12010 12011func (x *PrivacyMetric_LDiversityConfig) Reset() { 12012 *x = PrivacyMetric_LDiversityConfig{} 12013 if protoimpl.UnsafeEnabled { 12014 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[135] 12015 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12016 ms.StoreMessageInfo(mi) 12017 } 12018} 12019 12020func (x *PrivacyMetric_LDiversityConfig) String() string { 12021 return protoimpl.X.MessageStringOf(x) 12022} 12023 12024func (*PrivacyMetric_LDiversityConfig) ProtoMessage() {} 12025 12026func (x *PrivacyMetric_LDiversityConfig) ProtoReflect() protoreflect.Message { 12027 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[135] 12028 if protoimpl.UnsafeEnabled && x != nil { 12029 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12030 if ms.LoadMessageInfo() == nil { 12031 ms.StoreMessageInfo(mi) 12032 } 12033 return ms 12034 } 12035 return mi.MessageOf(x) 12036} 12037 12038// Deprecated: Use PrivacyMetric_LDiversityConfig.ProtoReflect.Descriptor instead. 12039func (*PrivacyMetric_LDiversityConfig) Descriptor() ([]byte, []int) { 12040 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 3} 12041} 12042 12043func (x *PrivacyMetric_LDiversityConfig) GetQuasiIds() []*FieldId { 12044 if x != nil { 12045 return x.QuasiIds 12046 } 12047 return nil 12048} 12049 12050func (x *PrivacyMetric_LDiversityConfig) GetSensitiveAttribute() *FieldId { 12051 if x != nil { 12052 return x.SensitiveAttribute 12053 } 12054 return nil 12055} 12056 12057// Reidentifiability metric. This corresponds to a risk model similar to what 12058// is called "journalist risk" in the literature, except the attack dataset is 12059// statistically modeled instead of being perfectly known. This can be done 12060// using publicly available data (like the US Census), or using a custom 12061// statistical model (indicated as one or several BigQuery tables), or by 12062// extrapolating from the distribution of values in the input dataset. 12063type PrivacyMetric_KMapEstimationConfig struct { 12064 state protoimpl.MessageState 12065 sizeCache protoimpl.SizeCache 12066 unknownFields protoimpl.UnknownFields 12067 12068 // Required. Fields considered to be quasi-identifiers. No two columns can have the 12069 // same tag. 12070 QuasiIds []*PrivacyMetric_KMapEstimationConfig_TaggedField `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"` 12071 // ISO 3166-1 alpha-2 region code to use in the statistical modeling. 12072 // Set if no column is tagged with a region-specific InfoType (like 12073 // US_ZIP_5) or a region code. 12074 RegionCode string `protobuf:"bytes,2,opt,name=region_code,json=regionCode,proto3" json:"region_code,omitempty"` 12075 // Several auxiliary tables can be used in the analysis. Each custom_tag 12076 // used to tag a quasi-identifiers column must appear in exactly one column 12077 // of one auxiliary table. 12078 AuxiliaryTables []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable `protobuf:"bytes,3,rep,name=auxiliary_tables,json=auxiliaryTables,proto3" json:"auxiliary_tables,omitempty"` 12079} 12080 12081func (x *PrivacyMetric_KMapEstimationConfig) Reset() { 12082 *x = PrivacyMetric_KMapEstimationConfig{} 12083 if protoimpl.UnsafeEnabled { 12084 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[136] 12085 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12086 ms.StoreMessageInfo(mi) 12087 } 12088} 12089 12090func (x *PrivacyMetric_KMapEstimationConfig) String() string { 12091 return protoimpl.X.MessageStringOf(x) 12092} 12093 12094func (*PrivacyMetric_KMapEstimationConfig) ProtoMessage() {} 12095 12096func (x *PrivacyMetric_KMapEstimationConfig) ProtoReflect() protoreflect.Message { 12097 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[136] 12098 if protoimpl.UnsafeEnabled && x != nil { 12099 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12100 if ms.LoadMessageInfo() == nil { 12101 ms.StoreMessageInfo(mi) 12102 } 12103 return ms 12104 } 12105 return mi.MessageOf(x) 12106} 12107 12108// Deprecated: Use PrivacyMetric_KMapEstimationConfig.ProtoReflect.Descriptor instead. 12109func (*PrivacyMetric_KMapEstimationConfig) Descriptor() ([]byte, []int) { 12110 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 4} 12111} 12112 12113func (x *PrivacyMetric_KMapEstimationConfig) GetQuasiIds() []*PrivacyMetric_KMapEstimationConfig_TaggedField { 12114 if x != nil { 12115 return x.QuasiIds 12116 } 12117 return nil 12118} 12119 12120func (x *PrivacyMetric_KMapEstimationConfig) GetRegionCode() string { 12121 if x != nil { 12122 return x.RegionCode 12123 } 12124 return "" 12125} 12126 12127func (x *PrivacyMetric_KMapEstimationConfig) GetAuxiliaryTables() []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable { 12128 if x != nil { 12129 return x.AuxiliaryTables 12130 } 12131 return nil 12132} 12133 12134// δ-presence metric, used to estimate how likely it is for an attacker to 12135// figure out that one given individual appears in a de-identified dataset. 12136// Similarly to the k-map metric, we cannot compute δ-presence exactly without 12137// knowing the attack dataset, so we use a statistical model instead. 12138type PrivacyMetric_DeltaPresenceEstimationConfig struct { 12139 state protoimpl.MessageState 12140 sizeCache protoimpl.SizeCache 12141 unknownFields protoimpl.UnknownFields 12142 12143 // Required. Fields considered to be quasi-identifiers. No two fields can have the 12144 // same tag. 12145 QuasiIds []*QuasiId `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"` 12146 // ISO 3166-1 alpha-2 region code to use in the statistical modeling. 12147 // Set if no column is tagged with a region-specific InfoType (like 12148 // US_ZIP_5) or a region code. 12149 RegionCode string `protobuf:"bytes,2,opt,name=region_code,json=regionCode,proto3" json:"region_code,omitempty"` 12150 // Several auxiliary tables can be used in the analysis. Each custom_tag 12151 // used to tag a quasi-identifiers field must appear in exactly one 12152 // field of one auxiliary table. 12153 AuxiliaryTables []*StatisticalTable `protobuf:"bytes,3,rep,name=auxiliary_tables,json=auxiliaryTables,proto3" json:"auxiliary_tables,omitempty"` 12154} 12155 12156func (x *PrivacyMetric_DeltaPresenceEstimationConfig) Reset() { 12157 *x = PrivacyMetric_DeltaPresenceEstimationConfig{} 12158 if protoimpl.UnsafeEnabled { 12159 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[137] 12160 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12161 ms.StoreMessageInfo(mi) 12162 } 12163} 12164 12165func (x *PrivacyMetric_DeltaPresenceEstimationConfig) String() string { 12166 return protoimpl.X.MessageStringOf(x) 12167} 12168 12169func (*PrivacyMetric_DeltaPresenceEstimationConfig) ProtoMessage() {} 12170 12171func (x *PrivacyMetric_DeltaPresenceEstimationConfig) ProtoReflect() protoreflect.Message { 12172 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[137] 12173 if protoimpl.UnsafeEnabled && x != nil { 12174 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12175 if ms.LoadMessageInfo() == nil { 12176 ms.StoreMessageInfo(mi) 12177 } 12178 return ms 12179 } 12180 return mi.MessageOf(x) 12181} 12182 12183// Deprecated: Use PrivacyMetric_DeltaPresenceEstimationConfig.ProtoReflect.Descriptor instead. 12184func (*PrivacyMetric_DeltaPresenceEstimationConfig) Descriptor() ([]byte, []int) { 12185 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 5} 12186} 12187 12188func (x *PrivacyMetric_DeltaPresenceEstimationConfig) GetQuasiIds() []*QuasiId { 12189 if x != nil { 12190 return x.QuasiIds 12191 } 12192 return nil 12193} 12194 12195func (x *PrivacyMetric_DeltaPresenceEstimationConfig) GetRegionCode() string { 12196 if x != nil { 12197 return x.RegionCode 12198 } 12199 return "" 12200} 12201 12202func (x *PrivacyMetric_DeltaPresenceEstimationConfig) GetAuxiliaryTables() []*StatisticalTable { 12203 if x != nil { 12204 return x.AuxiliaryTables 12205 } 12206 return nil 12207} 12208 12209// A column with a semantic tag attached. 12210type PrivacyMetric_KMapEstimationConfig_TaggedField struct { 12211 state protoimpl.MessageState 12212 sizeCache protoimpl.SizeCache 12213 unknownFields protoimpl.UnknownFields 12214 12215 // Required. Identifies the column. 12216 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 12217 // Semantic tag that identifies what a column contains, to determine which 12218 // statistical model to use to estimate the reidentifiability of each 12219 // value. [required] 12220 // 12221 // Types that are assignable to Tag: 12222 // *PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType 12223 // *PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag 12224 // *PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred 12225 Tag isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag `protobuf_oneof:"tag"` 12226} 12227 12228func (x *PrivacyMetric_KMapEstimationConfig_TaggedField) Reset() { 12229 *x = PrivacyMetric_KMapEstimationConfig_TaggedField{} 12230 if protoimpl.UnsafeEnabled { 12231 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[138] 12232 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12233 ms.StoreMessageInfo(mi) 12234 } 12235} 12236 12237func (x *PrivacyMetric_KMapEstimationConfig_TaggedField) String() string { 12238 return protoimpl.X.MessageStringOf(x) 12239} 12240 12241func (*PrivacyMetric_KMapEstimationConfig_TaggedField) ProtoMessage() {} 12242 12243func (x *PrivacyMetric_KMapEstimationConfig_TaggedField) ProtoReflect() protoreflect.Message { 12244 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[138] 12245 if protoimpl.UnsafeEnabled && x != nil { 12246 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12247 if ms.LoadMessageInfo() == nil { 12248 ms.StoreMessageInfo(mi) 12249 } 12250 return ms 12251 } 12252 return mi.MessageOf(x) 12253} 12254 12255// Deprecated: Use PrivacyMetric_KMapEstimationConfig_TaggedField.ProtoReflect.Descriptor instead. 12256func (*PrivacyMetric_KMapEstimationConfig_TaggedField) Descriptor() ([]byte, []int) { 12257 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 4, 0} 12258} 12259 12260func (x *PrivacyMetric_KMapEstimationConfig_TaggedField) GetField() *FieldId { 12261 if x != nil { 12262 return x.Field 12263 } 12264 return nil 12265} 12266 12267func (m *PrivacyMetric_KMapEstimationConfig_TaggedField) GetTag() isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag { 12268 if m != nil { 12269 return m.Tag 12270 } 12271 return nil 12272} 12273 12274func (x *PrivacyMetric_KMapEstimationConfig_TaggedField) GetInfoType() *InfoType { 12275 if x, ok := x.GetTag().(*PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType); ok { 12276 return x.InfoType 12277 } 12278 return nil 12279} 12280 12281func (x *PrivacyMetric_KMapEstimationConfig_TaggedField) GetCustomTag() string { 12282 if x, ok := x.GetTag().(*PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag); ok { 12283 return x.CustomTag 12284 } 12285 return "" 12286} 12287 12288func (x *PrivacyMetric_KMapEstimationConfig_TaggedField) GetInferred() *emptypb.Empty { 12289 if x, ok := x.GetTag().(*PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred); ok { 12290 return x.Inferred 12291 } 12292 return nil 12293} 12294 12295type isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag interface { 12296 isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag() 12297} 12298 12299type PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType struct { 12300 // A column can be tagged with a InfoType to use the relevant public 12301 // dataset as a statistical model of population, if available. We 12302 // currently support US ZIP codes, region codes, ages and genders. 12303 // To programmatically obtain the list of supported InfoTypes, use 12304 // ListInfoTypes with the supported_by=RISK_ANALYSIS filter. 12305 InfoType *InfoType `protobuf:"bytes,2,opt,name=info_type,json=infoType,proto3,oneof"` 12306} 12307 12308type PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag struct { 12309 // A column can be tagged with a custom tag. In this case, the user must 12310 // indicate an auxiliary table that contains statistical information on 12311 // the possible values of this column (below). 12312 CustomTag string `protobuf:"bytes,3,opt,name=custom_tag,json=customTag,proto3,oneof"` 12313} 12314 12315type PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred struct { 12316 // If no semantic tag is indicated, we infer the statistical model from 12317 // the distribution of values in the input data 12318 Inferred *emptypb.Empty `protobuf:"bytes,4,opt,name=inferred,proto3,oneof"` 12319} 12320 12321func (*PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType) isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag() { 12322} 12323 12324func (*PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag) isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag() { 12325} 12326 12327func (*PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred) isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag() { 12328} 12329 12330// An auxiliary table contains statistical information on the relative 12331// frequency of different quasi-identifiers values. It has one or several 12332// quasi-identifiers columns, and one column that indicates the relative 12333// frequency of each quasi-identifier tuple. 12334// If a tuple is present in the data but not in the auxiliary table, the 12335// corresponding relative frequency is assumed to be zero (and thus, the 12336// tuple is highly reidentifiable). 12337type PrivacyMetric_KMapEstimationConfig_AuxiliaryTable struct { 12338 state protoimpl.MessageState 12339 sizeCache protoimpl.SizeCache 12340 unknownFields protoimpl.UnknownFields 12341 12342 // Required. Auxiliary table location. 12343 Table *BigQueryTable `protobuf:"bytes,3,opt,name=table,proto3" json:"table,omitempty"` 12344 // Required. Quasi-identifier columns. 12345 QuasiIds []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"` 12346 // Required. The relative frequency column must contain a floating-point number 12347 // between 0 and 1 (inclusive). Null values are assumed to be zero. 12348 RelativeFrequency *FieldId `protobuf:"bytes,2,opt,name=relative_frequency,json=relativeFrequency,proto3" json:"relative_frequency,omitempty"` 12349} 12350 12351func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) Reset() { 12352 *x = PrivacyMetric_KMapEstimationConfig_AuxiliaryTable{} 12353 if protoimpl.UnsafeEnabled { 12354 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[139] 12355 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12356 ms.StoreMessageInfo(mi) 12357 } 12358} 12359 12360func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) String() string { 12361 return protoimpl.X.MessageStringOf(x) 12362} 12363 12364func (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) ProtoMessage() {} 12365 12366func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) ProtoReflect() protoreflect.Message { 12367 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[139] 12368 if protoimpl.UnsafeEnabled && x != nil { 12369 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12370 if ms.LoadMessageInfo() == nil { 12371 ms.StoreMessageInfo(mi) 12372 } 12373 return ms 12374 } 12375 return mi.MessageOf(x) 12376} 12377 12378// Deprecated: Use PrivacyMetric_KMapEstimationConfig_AuxiliaryTable.ProtoReflect.Descriptor instead. 12379func (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) Descriptor() ([]byte, []int) { 12380 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 4, 1} 12381} 12382 12383func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) GetTable() *BigQueryTable { 12384 if x != nil { 12385 return x.Table 12386 } 12387 return nil 12388} 12389 12390func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) GetQuasiIds() []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField { 12391 if x != nil { 12392 return x.QuasiIds 12393 } 12394 return nil 12395} 12396 12397func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) GetRelativeFrequency() *FieldId { 12398 if x != nil { 12399 return x.RelativeFrequency 12400 } 12401 return nil 12402} 12403 12404// A quasi-identifier column has a custom_tag, used to know which column 12405// in the data corresponds to which column in the statistical model. 12406type PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField struct { 12407 state protoimpl.MessageState 12408 sizeCache protoimpl.SizeCache 12409 unknownFields protoimpl.UnknownFields 12410 12411 // Identifies the column. 12412 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 12413 // A auxiliary field. 12414 CustomTag string `protobuf:"bytes,2,opt,name=custom_tag,json=customTag,proto3" json:"custom_tag,omitempty"` 12415} 12416 12417func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) Reset() { 12418 *x = PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField{} 12419 if protoimpl.UnsafeEnabled { 12420 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[140] 12421 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12422 ms.StoreMessageInfo(mi) 12423 } 12424} 12425 12426func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) String() string { 12427 return protoimpl.X.MessageStringOf(x) 12428} 12429 12430func (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) ProtoMessage() {} 12431 12432func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) ProtoReflect() protoreflect.Message { 12433 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[140] 12434 if protoimpl.UnsafeEnabled && x != nil { 12435 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12436 if ms.LoadMessageInfo() == nil { 12437 ms.StoreMessageInfo(mi) 12438 } 12439 return ms 12440 } 12441 return mi.MessageOf(x) 12442} 12443 12444// Deprecated: Use PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField.ProtoReflect.Descriptor instead. 12445func (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) Descriptor() ([]byte, []int) { 12446 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 4, 1, 0} 12447} 12448 12449func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) GetField() *FieldId { 12450 if x != nil { 12451 return x.Field 12452 } 12453 return nil 12454} 12455 12456func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) GetCustomTag() string { 12457 if x != nil { 12458 return x.CustomTag 12459 } 12460 return "" 12461} 12462 12463// Result of the numerical stats computation. 12464type AnalyzeDataSourceRiskDetails_NumericalStatsResult struct { 12465 state protoimpl.MessageState 12466 sizeCache protoimpl.SizeCache 12467 unknownFields protoimpl.UnknownFields 12468 12469 // Minimum value appearing in the column. 12470 MinValue *Value `protobuf:"bytes,1,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"` 12471 // Maximum value appearing in the column. 12472 MaxValue *Value `protobuf:"bytes,2,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"` 12473 // List of 99 values that partition the set of field values into 100 equal 12474 // sized buckets. 12475 QuantileValues []*Value `protobuf:"bytes,4,rep,name=quantile_values,json=quantileValues,proto3" json:"quantile_values,omitempty"` 12476} 12477 12478func (x *AnalyzeDataSourceRiskDetails_NumericalStatsResult) Reset() { 12479 *x = AnalyzeDataSourceRiskDetails_NumericalStatsResult{} 12480 if protoimpl.UnsafeEnabled { 12481 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[141] 12482 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12483 ms.StoreMessageInfo(mi) 12484 } 12485} 12486 12487func (x *AnalyzeDataSourceRiskDetails_NumericalStatsResult) String() string { 12488 return protoimpl.X.MessageStringOf(x) 12489} 12490 12491func (*AnalyzeDataSourceRiskDetails_NumericalStatsResult) ProtoMessage() {} 12492 12493func (x *AnalyzeDataSourceRiskDetails_NumericalStatsResult) ProtoReflect() protoreflect.Message { 12494 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[141] 12495 if protoimpl.UnsafeEnabled && x != nil { 12496 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12497 if ms.LoadMessageInfo() == nil { 12498 ms.StoreMessageInfo(mi) 12499 } 12500 return ms 12501 } 12502 return mi.MessageOf(x) 12503} 12504 12505// Deprecated: Use AnalyzeDataSourceRiskDetails_NumericalStatsResult.ProtoReflect.Descriptor instead. 12506func (*AnalyzeDataSourceRiskDetails_NumericalStatsResult) Descriptor() ([]byte, []int) { 12507 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 0} 12508} 12509 12510func (x *AnalyzeDataSourceRiskDetails_NumericalStatsResult) GetMinValue() *Value { 12511 if x != nil { 12512 return x.MinValue 12513 } 12514 return nil 12515} 12516 12517func (x *AnalyzeDataSourceRiskDetails_NumericalStatsResult) GetMaxValue() *Value { 12518 if x != nil { 12519 return x.MaxValue 12520 } 12521 return nil 12522} 12523 12524func (x *AnalyzeDataSourceRiskDetails_NumericalStatsResult) GetQuantileValues() []*Value { 12525 if x != nil { 12526 return x.QuantileValues 12527 } 12528 return nil 12529} 12530 12531// Result of the categorical stats computation. 12532type AnalyzeDataSourceRiskDetails_CategoricalStatsResult struct { 12533 state protoimpl.MessageState 12534 sizeCache protoimpl.SizeCache 12535 unknownFields protoimpl.UnknownFields 12536 12537 // Histogram of value frequencies in the column. 12538 ValueFrequencyHistogramBuckets []*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket `protobuf:"bytes,5,rep,name=value_frequency_histogram_buckets,json=valueFrequencyHistogramBuckets,proto3" json:"value_frequency_histogram_buckets,omitempty"` 12539} 12540 12541func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) Reset() { 12542 *x = AnalyzeDataSourceRiskDetails_CategoricalStatsResult{} 12543 if protoimpl.UnsafeEnabled { 12544 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[142] 12545 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12546 ms.StoreMessageInfo(mi) 12547 } 12548} 12549 12550func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) String() string { 12551 return protoimpl.X.MessageStringOf(x) 12552} 12553 12554func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult) ProtoMessage() {} 12555 12556func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) ProtoReflect() protoreflect.Message { 12557 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[142] 12558 if protoimpl.UnsafeEnabled && x != nil { 12559 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12560 if ms.LoadMessageInfo() == nil { 12561 ms.StoreMessageInfo(mi) 12562 } 12563 return ms 12564 } 12565 return mi.MessageOf(x) 12566} 12567 12568// Deprecated: Use AnalyzeDataSourceRiskDetails_CategoricalStatsResult.ProtoReflect.Descriptor instead. 12569func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult) Descriptor() ([]byte, []int) { 12570 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 1} 12571} 12572 12573func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) GetValueFrequencyHistogramBuckets() []*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket { 12574 if x != nil { 12575 return x.ValueFrequencyHistogramBuckets 12576 } 12577 return nil 12578} 12579 12580// Result of the k-anonymity computation. 12581type AnalyzeDataSourceRiskDetails_KAnonymityResult struct { 12582 state protoimpl.MessageState 12583 sizeCache protoimpl.SizeCache 12584 unknownFields protoimpl.UnknownFields 12585 12586 // Histogram of k-anonymity equivalence classes. 12587 EquivalenceClassHistogramBuckets []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket `protobuf:"bytes,5,rep,name=equivalence_class_histogram_buckets,json=equivalenceClassHistogramBuckets,proto3" json:"equivalence_class_histogram_buckets,omitempty"` 12588} 12589 12590func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult) Reset() { 12591 *x = AnalyzeDataSourceRiskDetails_KAnonymityResult{} 12592 if protoimpl.UnsafeEnabled { 12593 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[143] 12594 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12595 ms.StoreMessageInfo(mi) 12596 } 12597} 12598 12599func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult) String() string { 12600 return protoimpl.X.MessageStringOf(x) 12601} 12602 12603func (*AnalyzeDataSourceRiskDetails_KAnonymityResult) ProtoMessage() {} 12604 12605func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult) ProtoReflect() protoreflect.Message { 12606 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[143] 12607 if protoimpl.UnsafeEnabled && x != nil { 12608 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12609 if ms.LoadMessageInfo() == nil { 12610 ms.StoreMessageInfo(mi) 12611 } 12612 return ms 12613 } 12614 return mi.MessageOf(x) 12615} 12616 12617// Deprecated: Use AnalyzeDataSourceRiskDetails_KAnonymityResult.ProtoReflect.Descriptor instead. 12618func (*AnalyzeDataSourceRiskDetails_KAnonymityResult) Descriptor() ([]byte, []int) { 12619 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 2} 12620} 12621 12622func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult) GetEquivalenceClassHistogramBuckets() []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket { 12623 if x != nil { 12624 return x.EquivalenceClassHistogramBuckets 12625 } 12626 return nil 12627} 12628 12629// Result of the l-diversity computation. 12630type AnalyzeDataSourceRiskDetails_LDiversityResult struct { 12631 state protoimpl.MessageState 12632 sizeCache protoimpl.SizeCache 12633 unknownFields protoimpl.UnknownFields 12634 12635 // Histogram of l-diversity equivalence class sensitive value frequencies. 12636 SensitiveValueFrequencyHistogramBuckets []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket `protobuf:"bytes,5,rep,name=sensitive_value_frequency_histogram_buckets,json=sensitiveValueFrequencyHistogramBuckets,proto3" json:"sensitive_value_frequency_histogram_buckets,omitempty"` 12637} 12638 12639func (x *AnalyzeDataSourceRiskDetails_LDiversityResult) Reset() { 12640 *x = AnalyzeDataSourceRiskDetails_LDiversityResult{} 12641 if protoimpl.UnsafeEnabled { 12642 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[144] 12643 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12644 ms.StoreMessageInfo(mi) 12645 } 12646} 12647 12648func (x *AnalyzeDataSourceRiskDetails_LDiversityResult) String() string { 12649 return protoimpl.X.MessageStringOf(x) 12650} 12651 12652func (*AnalyzeDataSourceRiskDetails_LDiversityResult) ProtoMessage() {} 12653 12654func (x *AnalyzeDataSourceRiskDetails_LDiversityResult) ProtoReflect() protoreflect.Message { 12655 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[144] 12656 if protoimpl.UnsafeEnabled && x != nil { 12657 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12658 if ms.LoadMessageInfo() == nil { 12659 ms.StoreMessageInfo(mi) 12660 } 12661 return ms 12662 } 12663 return mi.MessageOf(x) 12664} 12665 12666// Deprecated: Use AnalyzeDataSourceRiskDetails_LDiversityResult.ProtoReflect.Descriptor instead. 12667func (*AnalyzeDataSourceRiskDetails_LDiversityResult) Descriptor() ([]byte, []int) { 12668 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 3} 12669} 12670 12671func (x *AnalyzeDataSourceRiskDetails_LDiversityResult) GetSensitiveValueFrequencyHistogramBuckets() []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket { 12672 if x != nil { 12673 return x.SensitiveValueFrequencyHistogramBuckets 12674 } 12675 return nil 12676} 12677 12678// Result of the reidentifiability analysis. Note that these results are an 12679// estimation, not exact values. 12680type AnalyzeDataSourceRiskDetails_KMapEstimationResult struct { 12681 state protoimpl.MessageState 12682 sizeCache protoimpl.SizeCache 12683 unknownFields protoimpl.UnknownFields 12684 12685 // The intervals [min_anonymity, max_anonymity] do not overlap. If a value 12686 // doesn't correspond to any such interval, the associated frequency is 12687 // zero. For example, the following records: 12688 // {min_anonymity: 1, max_anonymity: 1, frequency: 17} 12689 // {min_anonymity: 2, max_anonymity: 3, frequency: 42} 12690 // {min_anonymity: 5, max_anonymity: 10, frequency: 99} 12691 // mean that there are no record with an estimated anonymity of 4, 5, or 12692 // larger than 10. 12693 KMapEstimationHistogram []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket `protobuf:"bytes,1,rep,name=k_map_estimation_histogram,json=kMapEstimationHistogram,proto3" json:"k_map_estimation_histogram,omitempty"` 12694} 12695 12696func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult) Reset() { 12697 *x = AnalyzeDataSourceRiskDetails_KMapEstimationResult{} 12698 if protoimpl.UnsafeEnabled { 12699 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[145] 12700 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12701 ms.StoreMessageInfo(mi) 12702 } 12703} 12704 12705func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult) String() string { 12706 return protoimpl.X.MessageStringOf(x) 12707} 12708 12709func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult) ProtoMessage() {} 12710 12711func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult) ProtoReflect() protoreflect.Message { 12712 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[145] 12713 if protoimpl.UnsafeEnabled && x != nil { 12714 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12715 if ms.LoadMessageInfo() == nil { 12716 ms.StoreMessageInfo(mi) 12717 } 12718 return ms 12719 } 12720 return mi.MessageOf(x) 12721} 12722 12723// Deprecated: Use AnalyzeDataSourceRiskDetails_KMapEstimationResult.ProtoReflect.Descriptor instead. 12724func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult) Descriptor() ([]byte, []int) { 12725 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 4} 12726} 12727 12728func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult) GetKMapEstimationHistogram() []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket { 12729 if x != nil { 12730 return x.KMapEstimationHistogram 12731 } 12732 return nil 12733} 12734 12735// Result of the δ-presence computation. Note that these results are an 12736// estimation, not exact values. 12737type AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult struct { 12738 state protoimpl.MessageState 12739 sizeCache protoimpl.SizeCache 12740 unknownFields protoimpl.UnknownFields 12741 12742 // The intervals [min_probability, max_probability) do not overlap. If a 12743 // value doesn't correspond to any such interval, the associated frequency 12744 // is zero. For example, the following records: 12745 // {min_probability: 0, max_probability: 0.1, frequency: 17} 12746 // {min_probability: 0.2, max_probability: 0.3, frequency: 42} 12747 // {min_probability: 0.3, max_probability: 0.4, frequency: 99} 12748 // mean that there are no record with an estimated probability in [0.1, 0.2) 12749 // nor larger or equal to 0.4. 12750 DeltaPresenceEstimationHistogram []*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket `protobuf:"bytes,1,rep,name=delta_presence_estimation_histogram,json=deltaPresenceEstimationHistogram,proto3" json:"delta_presence_estimation_histogram,omitempty"` 12751} 12752 12753func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) Reset() { 12754 *x = AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult{} 12755 if protoimpl.UnsafeEnabled { 12756 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[146] 12757 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12758 ms.StoreMessageInfo(mi) 12759 } 12760} 12761 12762func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) String() string { 12763 return protoimpl.X.MessageStringOf(x) 12764} 12765 12766func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) ProtoMessage() {} 12767 12768func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) ProtoReflect() protoreflect.Message { 12769 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[146] 12770 if protoimpl.UnsafeEnabled && x != nil { 12771 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12772 if ms.LoadMessageInfo() == nil { 12773 ms.StoreMessageInfo(mi) 12774 } 12775 return ms 12776 } 12777 return mi.MessageOf(x) 12778} 12779 12780// Deprecated: Use AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult.ProtoReflect.Descriptor instead. 12781func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) Descriptor() ([]byte, []int) { 12782 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 5} 12783} 12784 12785func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) GetDeltaPresenceEstimationHistogram() []*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket { 12786 if x != nil { 12787 return x.DeltaPresenceEstimationHistogram 12788 } 12789 return nil 12790} 12791 12792// Risk analysis options. 12793type AnalyzeDataSourceRiskDetails_RequestedRiskAnalysisOptions struct { 12794 state protoimpl.MessageState 12795 sizeCache protoimpl.SizeCache 12796 unknownFields protoimpl.UnknownFields 12797 12798 // The job config for the risk job. 12799 JobConfig *RiskAnalysisJobConfig `protobuf:"bytes,1,opt,name=job_config,json=jobConfig,proto3" json:"job_config,omitempty"` 12800} 12801 12802func (x *AnalyzeDataSourceRiskDetails_RequestedRiskAnalysisOptions) Reset() { 12803 *x = AnalyzeDataSourceRiskDetails_RequestedRiskAnalysisOptions{} 12804 if protoimpl.UnsafeEnabled { 12805 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[147] 12806 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12807 ms.StoreMessageInfo(mi) 12808 } 12809} 12810 12811func (x *AnalyzeDataSourceRiskDetails_RequestedRiskAnalysisOptions) String() string { 12812 return protoimpl.X.MessageStringOf(x) 12813} 12814 12815func (*AnalyzeDataSourceRiskDetails_RequestedRiskAnalysisOptions) ProtoMessage() {} 12816 12817func (x *AnalyzeDataSourceRiskDetails_RequestedRiskAnalysisOptions) ProtoReflect() protoreflect.Message { 12818 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[147] 12819 if protoimpl.UnsafeEnabled && x != nil { 12820 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12821 if ms.LoadMessageInfo() == nil { 12822 ms.StoreMessageInfo(mi) 12823 } 12824 return ms 12825 } 12826 return mi.MessageOf(x) 12827} 12828 12829// Deprecated: Use AnalyzeDataSourceRiskDetails_RequestedRiskAnalysisOptions.ProtoReflect.Descriptor instead. 12830func (*AnalyzeDataSourceRiskDetails_RequestedRiskAnalysisOptions) Descriptor() ([]byte, []int) { 12831 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 6} 12832} 12833 12834func (x *AnalyzeDataSourceRiskDetails_RequestedRiskAnalysisOptions) GetJobConfig() *RiskAnalysisJobConfig { 12835 if x != nil { 12836 return x.JobConfig 12837 } 12838 return nil 12839} 12840 12841// Histogram of value frequencies in the column. 12842type AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket struct { 12843 state protoimpl.MessageState 12844 sizeCache protoimpl.SizeCache 12845 unknownFields protoimpl.UnknownFields 12846 12847 // Lower bound on the value frequency of the values in this bucket. 12848 ValueFrequencyLowerBound int64 `protobuf:"varint,1,opt,name=value_frequency_lower_bound,json=valueFrequencyLowerBound,proto3" json:"value_frequency_lower_bound,omitempty"` 12849 // Upper bound on the value frequency of the values in this bucket. 12850 ValueFrequencyUpperBound int64 `protobuf:"varint,2,opt,name=value_frequency_upper_bound,json=valueFrequencyUpperBound,proto3" json:"value_frequency_upper_bound,omitempty"` 12851 // Total number of values in this bucket. 12852 BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"` 12853 // Sample of value frequencies in this bucket. The total number of 12854 // values returned per bucket is capped at 20. 12855 BucketValues []*ValueFrequency `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"` 12856 // Total number of distinct values in this bucket. 12857 BucketValueCount int64 `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"` 12858} 12859 12860func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) Reset() { 12861 *x = AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket{} 12862 if protoimpl.UnsafeEnabled { 12863 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[148] 12864 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12865 ms.StoreMessageInfo(mi) 12866 } 12867} 12868 12869func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) String() string { 12870 return protoimpl.X.MessageStringOf(x) 12871} 12872 12873func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) ProtoMessage() { 12874} 12875 12876func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) ProtoReflect() protoreflect.Message { 12877 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[148] 12878 if protoimpl.UnsafeEnabled && x != nil { 12879 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12880 if ms.LoadMessageInfo() == nil { 12881 ms.StoreMessageInfo(mi) 12882 } 12883 return ms 12884 } 12885 return mi.MessageOf(x) 12886} 12887 12888// Deprecated: Use AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket.ProtoReflect.Descriptor instead. 12889func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) Descriptor() ([]byte, []int) { 12890 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 1, 0} 12891} 12892 12893func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetValueFrequencyLowerBound() int64 { 12894 if x != nil { 12895 return x.ValueFrequencyLowerBound 12896 } 12897 return 0 12898} 12899 12900func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetValueFrequencyUpperBound() int64 { 12901 if x != nil { 12902 return x.ValueFrequencyUpperBound 12903 } 12904 return 0 12905} 12906 12907func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetBucketSize() int64 { 12908 if x != nil { 12909 return x.BucketSize 12910 } 12911 return 0 12912} 12913 12914func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetBucketValues() []*ValueFrequency { 12915 if x != nil { 12916 return x.BucketValues 12917 } 12918 return nil 12919} 12920 12921func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetBucketValueCount() int64 { 12922 if x != nil { 12923 return x.BucketValueCount 12924 } 12925 return 0 12926} 12927 12928// The set of columns' values that share the same ldiversity value 12929type AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass struct { 12930 state protoimpl.MessageState 12931 sizeCache protoimpl.SizeCache 12932 unknownFields protoimpl.UnknownFields 12933 12934 // Set of values defining the equivalence class. One value per 12935 // quasi-identifier column in the original KAnonymity metric message. 12936 // The order is always the same as the original request. 12937 QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"` 12938 // Size of the equivalence class, for example number of rows with the 12939 // above set of values. 12940 EquivalenceClassSize int64 `protobuf:"varint,2,opt,name=equivalence_class_size,json=equivalenceClassSize,proto3" json:"equivalence_class_size,omitempty"` 12941} 12942 12943func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) Reset() { 12944 *x = AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass{} 12945 if protoimpl.UnsafeEnabled { 12946 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[149] 12947 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12948 ms.StoreMessageInfo(mi) 12949 } 12950} 12951 12952func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) String() string { 12953 return protoimpl.X.MessageStringOf(x) 12954} 12955 12956func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) ProtoMessage() {} 12957 12958func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) ProtoReflect() protoreflect.Message { 12959 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[149] 12960 if protoimpl.UnsafeEnabled && x != nil { 12961 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12962 if ms.LoadMessageInfo() == nil { 12963 ms.StoreMessageInfo(mi) 12964 } 12965 return ms 12966 } 12967 return mi.MessageOf(x) 12968} 12969 12970// Deprecated: Use AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass.ProtoReflect.Descriptor instead. 12971func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) Descriptor() ([]byte, []int) { 12972 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 2, 0} 12973} 12974 12975func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) GetQuasiIdsValues() []*Value { 12976 if x != nil { 12977 return x.QuasiIdsValues 12978 } 12979 return nil 12980} 12981 12982func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) GetEquivalenceClassSize() int64 { 12983 if x != nil { 12984 return x.EquivalenceClassSize 12985 } 12986 return 0 12987} 12988 12989// Histogram of k-anonymity equivalence classes. 12990type AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket struct { 12991 state protoimpl.MessageState 12992 sizeCache protoimpl.SizeCache 12993 unknownFields protoimpl.UnknownFields 12994 12995 // Lower bound on the size of the equivalence classes in this bucket. 12996 EquivalenceClassSizeLowerBound int64 `protobuf:"varint,1,opt,name=equivalence_class_size_lower_bound,json=equivalenceClassSizeLowerBound,proto3" json:"equivalence_class_size_lower_bound,omitempty"` 12997 // Upper bound on the size of the equivalence classes in this bucket. 12998 EquivalenceClassSizeUpperBound int64 `protobuf:"varint,2,opt,name=equivalence_class_size_upper_bound,json=equivalenceClassSizeUpperBound,proto3" json:"equivalence_class_size_upper_bound,omitempty"` 12999 // Total number of equivalence classes in this bucket. 13000 BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"` 13001 // Sample of equivalence classes in this bucket. The total number of 13002 // classes returned per bucket is capped at 20. 13003 BucketValues []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"` 13004 // Total number of distinct equivalence classes in this bucket. 13005 BucketValueCount int64 `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"` 13006} 13007 13008func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) Reset() { 13009 *x = AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket{} 13010 if protoimpl.UnsafeEnabled { 13011 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[150] 13012 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13013 ms.StoreMessageInfo(mi) 13014 } 13015} 13016 13017func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) String() string { 13018 return protoimpl.X.MessageStringOf(x) 13019} 13020 13021func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) ProtoMessage() {} 13022 13023func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) ProtoReflect() protoreflect.Message { 13024 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[150] 13025 if protoimpl.UnsafeEnabled && x != nil { 13026 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13027 if ms.LoadMessageInfo() == nil { 13028 ms.StoreMessageInfo(mi) 13029 } 13030 return ms 13031 } 13032 return mi.MessageOf(x) 13033} 13034 13035// Deprecated: Use AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket.ProtoReflect.Descriptor instead. 13036func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) Descriptor() ([]byte, []int) { 13037 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 2, 1} 13038} 13039 13040func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetEquivalenceClassSizeLowerBound() int64 { 13041 if x != nil { 13042 return x.EquivalenceClassSizeLowerBound 13043 } 13044 return 0 13045} 13046 13047func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetEquivalenceClassSizeUpperBound() int64 { 13048 if x != nil { 13049 return x.EquivalenceClassSizeUpperBound 13050 } 13051 return 0 13052} 13053 13054func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetBucketSize() int64 { 13055 if x != nil { 13056 return x.BucketSize 13057 } 13058 return 0 13059} 13060 13061func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetBucketValues() []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass { 13062 if x != nil { 13063 return x.BucketValues 13064 } 13065 return nil 13066} 13067 13068func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetBucketValueCount() int64 { 13069 if x != nil { 13070 return x.BucketValueCount 13071 } 13072 return 0 13073} 13074 13075// The set of columns' values that share the same ldiversity value. 13076type AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass struct { 13077 state protoimpl.MessageState 13078 sizeCache protoimpl.SizeCache 13079 unknownFields protoimpl.UnknownFields 13080 13081 // Quasi-identifier values defining the k-anonymity equivalence 13082 // class. The order is always the same as the original request. 13083 QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"` 13084 // Size of the k-anonymity equivalence class. 13085 EquivalenceClassSize int64 `protobuf:"varint,2,opt,name=equivalence_class_size,json=equivalenceClassSize,proto3" json:"equivalence_class_size,omitempty"` 13086 // Number of distinct sensitive values in this equivalence class. 13087 NumDistinctSensitiveValues int64 `protobuf:"varint,3,opt,name=num_distinct_sensitive_values,json=numDistinctSensitiveValues,proto3" json:"num_distinct_sensitive_values,omitempty"` 13088 // Estimated frequencies of top sensitive values. 13089 TopSensitiveValues []*ValueFrequency `protobuf:"bytes,4,rep,name=top_sensitive_values,json=topSensitiveValues,proto3" json:"top_sensitive_values,omitempty"` 13090} 13091 13092func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) Reset() { 13093 *x = AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass{} 13094 if protoimpl.UnsafeEnabled { 13095 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[151] 13096 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13097 ms.StoreMessageInfo(mi) 13098 } 13099} 13100 13101func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) String() string { 13102 return protoimpl.X.MessageStringOf(x) 13103} 13104 13105func (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) ProtoMessage() {} 13106 13107func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) ProtoReflect() protoreflect.Message { 13108 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[151] 13109 if protoimpl.UnsafeEnabled && x != nil { 13110 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13111 if ms.LoadMessageInfo() == nil { 13112 ms.StoreMessageInfo(mi) 13113 } 13114 return ms 13115 } 13116 return mi.MessageOf(x) 13117} 13118 13119// Deprecated: Use AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass.ProtoReflect.Descriptor instead. 13120func (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) Descriptor() ([]byte, []int) { 13121 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 3, 0} 13122} 13123 13124func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) GetQuasiIdsValues() []*Value { 13125 if x != nil { 13126 return x.QuasiIdsValues 13127 } 13128 return nil 13129} 13130 13131func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) GetEquivalenceClassSize() int64 { 13132 if x != nil { 13133 return x.EquivalenceClassSize 13134 } 13135 return 0 13136} 13137 13138func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) GetNumDistinctSensitiveValues() int64 { 13139 if x != nil { 13140 return x.NumDistinctSensitiveValues 13141 } 13142 return 0 13143} 13144 13145func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) GetTopSensitiveValues() []*ValueFrequency { 13146 if x != nil { 13147 return x.TopSensitiveValues 13148 } 13149 return nil 13150} 13151 13152// Histogram of l-diversity equivalence class sensitive value frequencies. 13153type AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket struct { 13154 state protoimpl.MessageState 13155 sizeCache protoimpl.SizeCache 13156 unknownFields protoimpl.UnknownFields 13157 13158 // Lower bound on the sensitive value frequencies of the equivalence 13159 // classes in this bucket. 13160 SensitiveValueFrequencyLowerBound int64 `protobuf:"varint,1,opt,name=sensitive_value_frequency_lower_bound,json=sensitiveValueFrequencyLowerBound,proto3" json:"sensitive_value_frequency_lower_bound,omitempty"` 13161 // Upper bound on the sensitive value frequencies of the equivalence 13162 // classes in this bucket. 13163 SensitiveValueFrequencyUpperBound int64 `protobuf:"varint,2,opt,name=sensitive_value_frequency_upper_bound,json=sensitiveValueFrequencyUpperBound,proto3" json:"sensitive_value_frequency_upper_bound,omitempty"` 13164 // Total number of equivalence classes in this bucket. 13165 BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"` 13166 // Sample of equivalence classes in this bucket. The total number of 13167 // classes returned per bucket is capped at 20. 13168 BucketValues []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"` 13169 // Total number of distinct equivalence classes in this bucket. 13170 BucketValueCount int64 `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"` 13171} 13172 13173func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) Reset() { 13174 *x = AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket{} 13175 if protoimpl.UnsafeEnabled { 13176 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[152] 13177 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13178 ms.StoreMessageInfo(mi) 13179 } 13180} 13181 13182func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) String() string { 13183 return protoimpl.X.MessageStringOf(x) 13184} 13185 13186func (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) ProtoMessage() {} 13187 13188func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) ProtoReflect() protoreflect.Message { 13189 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[152] 13190 if protoimpl.UnsafeEnabled && x != nil { 13191 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13192 if ms.LoadMessageInfo() == nil { 13193 ms.StoreMessageInfo(mi) 13194 } 13195 return ms 13196 } 13197 return mi.MessageOf(x) 13198} 13199 13200// Deprecated: Use AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket.ProtoReflect.Descriptor instead. 13201func (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) Descriptor() ([]byte, []int) { 13202 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 3, 1} 13203} 13204 13205func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetSensitiveValueFrequencyLowerBound() int64 { 13206 if x != nil { 13207 return x.SensitiveValueFrequencyLowerBound 13208 } 13209 return 0 13210} 13211 13212func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetSensitiveValueFrequencyUpperBound() int64 { 13213 if x != nil { 13214 return x.SensitiveValueFrequencyUpperBound 13215 } 13216 return 0 13217} 13218 13219func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetBucketSize() int64 { 13220 if x != nil { 13221 return x.BucketSize 13222 } 13223 return 0 13224} 13225 13226func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetBucketValues() []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass { 13227 if x != nil { 13228 return x.BucketValues 13229 } 13230 return nil 13231} 13232 13233func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetBucketValueCount() int64 { 13234 if x != nil { 13235 return x.BucketValueCount 13236 } 13237 return 0 13238} 13239 13240// A tuple of values for the quasi-identifier columns. 13241type AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues struct { 13242 state protoimpl.MessageState 13243 sizeCache protoimpl.SizeCache 13244 unknownFields protoimpl.UnknownFields 13245 13246 // The quasi-identifier values. 13247 QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"` 13248 // The estimated anonymity for these quasi-identifier values. 13249 EstimatedAnonymity int64 `protobuf:"varint,2,opt,name=estimated_anonymity,json=estimatedAnonymity,proto3" json:"estimated_anonymity,omitempty"` 13250} 13251 13252func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) Reset() { 13253 *x = AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues{} 13254 if protoimpl.UnsafeEnabled { 13255 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[153] 13256 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13257 ms.StoreMessageInfo(mi) 13258 } 13259} 13260 13261func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) String() string { 13262 return protoimpl.X.MessageStringOf(x) 13263} 13264 13265func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) ProtoMessage() { 13266} 13267 13268func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) ProtoReflect() protoreflect.Message { 13269 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[153] 13270 if protoimpl.UnsafeEnabled && x != nil { 13271 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13272 if ms.LoadMessageInfo() == nil { 13273 ms.StoreMessageInfo(mi) 13274 } 13275 return ms 13276 } 13277 return mi.MessageOf(x) 13278} 13279 13280// Deprecated: Use AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues.ProtoReflect.Descriptor instead. 13281func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) Descriptor() ([]byte, []int) { 13282 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 4, 0} 13283} 13284 13285func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) GetQuasiIdsValues() []*Value { 13286 if x != nil { 13287 return x.QuasiIdsValues 13288 } 13289 return nil 13290} 13291 13292func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) GetEstimatedAnonymity() int64 { 13293 if x != nil { 13294 return x.EstimatedAnonymity 13295 } 13296 return 0 13297} 13298 13299// A KMapEstimationHistogramBucket message with the following values: 13300// min_anonymity: 3 13301// max_anonymity: 5 13302// frequency: 42 13303// means that there are 42 records whose quasi-identifier values correspond 13304// to 3, 4 or 5 people in the overlying population. An important particular 13305// case is when min_anonymity = max_anonymity = 1: the frequency field then 13306// corresponds to the number of uniquely identifiable records. 13307type AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket struct { 13308 state protoimpl.MessageState 13309 sizeCache protoimpl.SizeCache 13310 unknownFields protoimpl.UnknownFields 13311 13312 // Always positive. 13313 MinAnonymity int64 `protobuf:"varint,1,opt,name=min_anonymity,json=minAnonymity,proto3" json:"min_anonymity,omitempty"` 13314 // Always greater than or equal to min_anonymity. 13315 MaxAnonymity int64 `protobuf:"varint,2,opt,name=max_anonymity,json=maxAnonymity,proto3" json:"max_anonymity,omitempty"` 13316 // Number of records within these anonymity bounds. 13317 BucketSize int64 `protobuf:"varint,5,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"` 13318 // Sample of quasi-identifier tuple values in this bucket. The total 13319 // number of classes returned per bucket is capped at 20. 13320 BucketValues []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues `protobuf:"bytes,6,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"` 13321 // Total number of distinct quasi-identifier tuple values in this bucket. 13322 BucketValueCount int64 `protobuf:"varint,7,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"` 13323} 13324 13325func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) Reset() { 13326 *x = AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket{} 13327 if protoimpl.UnsafeEnabled { 13328 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[154] 13329 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13330 ms.StoreMessageInfo(mi) 13331 } 13332} 13333 13334func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) String() string { 13335 return protoimpl.X.MessageStringOf(x) 13336} 13337 13338func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) ProtoMessage() { 13339} 13340 13341func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) ProtoReflect() protoreflect.Message { 13342 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[154] 13343 if protoimpl.UnsafeEnabled && x != nil { 13344 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13345 if ms.LoadMessageInfo() == nil { 13346 ms.StoreMessageInfo(mi) 13347 } 13348 return ms 13349 } 13350 return mi.MessageOf(x) 13351} 13352 13353// Deprecated: Use AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket.ProtoReflect.Descriptor instead. 13354func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) Descriptor() ([]byte, []int) { 13355 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 4, 1} 13356} 13357 13358func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetMinAnonymity() int64 { 13359 if x != nil { 13360 return x.MinAnonymity 13361 } 13362 return 0 13363} 13364 13365func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetMaxAnonymity() int64 { 13366 if x != nil { 13367 return x.MaxAnonymity 13368 } 13369 return 0 13370} 13371 13372func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetBucketSize() int64 { 13373 if x != nil { 13374 return x.BucketSize 13375 } 13376 return 0 13377} 13378 13379func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetBucketValues() []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues { 13380 if x != nil { 13381 return x.BucketValues 13382 } 13383 return nil 13384} 13385 13386func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetBucketValueCount() int64 { 13387 if x != nil { 13388 return x.BucketValueCount 13389 } 13390 return 0 13391} 13392 13393// A tuple of values for the quasi-identifier columns. 13394type AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues struct { 13395 state protoimpl.MessageState 13396 sizeCache protoimpl.SizeCache 13397 unknownFields protoimpl.UnknownFields 13398 13399 // The quasi-identifier values. 13400 QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"` 13401 // The estimated probability that a given individual sharing these 13402 // quasi-identifier values is in the dataset. This value, typically called 13403 // δ, is the ratio between the number of records in the dataset with these 13404 // quasi-identifier values, and the total number of individuals (inside 13405 // *and* outside the dataset) with these quasi-identifier values. 13406 // For example, if there are 15 individuals in the dataset who share the 13407 // same quasi-identifier values, and an estimated 100 people in the entire 13408 // population with these values, then δ is 0.15. 13409 EstimatedProbability float64 `protobuf:"fixed64,2,opt,name=estimated_probability,json=estimatedProbability,proto3" json:"estimated_probability,omitempty"` 13410} 13411 13412func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) Reset() { 13413 *x = AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues{} 13414 if protoimpl.UnsafeEnabled { 13415 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[155] 13416 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13417 ms.StoreMessageInfo(mi) 13418 } 13419} 13420 13421func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) String() string { 13422 return protoimpl.X.MessageStringOf(x) 13423} 13424 13425func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) ProtoMessage() { 13426} 13427 13428func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) ProtoReflect() protoreflect.Message { 13429 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[155] 13430 if protoimpl.UnsafeEnabled && x != nil { 13431 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13432 if ms.LoadMessageInfo() == nil { 13433 ms.StoreMessageInfo(mi) 13434 } 13435 return ms 13436 } 13437 return mi.MessageOf(x) 13438} 13439 13440// Deprecated: Use AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues.ProtoReflect.Descriptor instead. 13441func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) Descriptor() ([]byte, []int) { 13442 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 5, 0} 13443} 13444 13445func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) GetQuasiIdsValues() []*Value { 13446 if x != nil { 13447 return x.QuasiIdsValues 13448 } 13449 return nil 13450} 13451 13452func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) GetEstimatedProbability() float64 { 13453 if x != nil { 13454 return x.EstimatedProbability 13455 } 13456 return 0 13457} 13458 13459// A DeltaPresenceEstimationHistogramBucket message with the following 13460// values: 13461// min_probability: 0.1 13462// max_probability: 0.2 13463// frequency: 42 13464// means that there are 42 records for which δ is in [0.1, 0.2). An 13465// important particular case is when min_probability = max_probability = 1: 13466// then, every individual who shares this quasi-identifier combination is in 13467// the dataset. 13468type AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket struct { 13469 state protoimpl.MessageState 13470 sizeCache protoimpl.SizeCache 13471 unknownFields protoimpl.UnknownFields 13472 13473 // Between 0 and 1. 13474 MinProbability float64 `protobuf:"fixed64,1,opt,name=min_probability,json=minProbability,proto3" json:"min_probability,omitempty"` 13475 // Always greater than or equal to min_probability. 13476 MaxProbability float64 `protobuf:"fixed64,2,opt,name=max_probability,json=maxProbability,proto3" json:"max_probability,omitempty"` 13477 // Number of records within these probability bounds. 13478 BucketSize int64 `protobuf:"varint,5,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"` 13479 // Sample of quasi-identifier tuple values in this bucket. The total 13480 // number of classes returned per bucket is capped at 20. 13481 BucketValues []*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues `protobuf:"bytes,6,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"` 13482 // Total number of distinct quasi-identifier tuple values in this bucket. 13483 BucketValueCount int64 `protobuf:"varint,7,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"` 13484} 13485 13486func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) Reset() { 13487 *x = AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket{} 13488 if protoimpl.UnsafeEnabled { 13489 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[156] 13490 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13491 ms.StoreMessageInfo(mi) 13492 } 13493} 13494 13495func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) String() string { 13496 return protoimpl.X.MessageStringOf(x) 13497} 13498 13499func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) ProtoMessage() { 13500} 13501 13502func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) ProtoReflect() protoreflect.Message { 13503 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[156] 13504 if protoimpl.UnsafeEnabled && x != nil { 13505 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13506 if ms.LoadMessageInfo() == nil { 13507 ms.StoreMessageInfo(mi) 13508 } 13509 return ms 13510 } 13511 return mi.MessageOf(x) 13512} 13513 13514// Deprecated: Use AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket.ProtoReflect.Descriptor instead. 13515func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) Descriptor() ([]byte, []int) { 13516 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 5, 1} 13517} 13518 13519func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetMinProbability() float64 { 13520 if x != nil { 13521 return x.MinProbability 13522 } 13523 return 0 13524} 13525 13526func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetMaxProbability() float64 { 13527 if x != nil { 13528 return x.MaxProbability 13529 } 13530 return 0 13531} 13532 13533func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetBucketSize() int64 { 13534 if x != nil { 13535 return x.BucketSize 13536 } 13537 return 0 13538} 13539 13540func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetBucketValues() []*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues { 13541 if x != nil { 13542 return x.BucketValues 13543 } 13544 return nil 13545} 13546 13547func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetBucketValueCount() int64 { 13548 if x != nil { 13549 return x.BucketValueCount 13550 } 13551 return 0 13552} 13553 13554// Time zone of the date time object. 13555type DateTime_TimeZone struct { 13556 state protoimpl.MessageState 13557 sizeCache protoimpl.SizeCache 13558 unknownFields protoimpl.UnknownFields 13559 13560 // Set only if the offset can be determined. Positive for time ahead of UTC. 13561 // E.g. For "UTC-9", this value is -540. 13562 OffsetMinutes int32 `protobuf:"varint,1,opt,name=offset_minutes,json=offsetMinutes,proto3" json:"offset_minutes,omitempty"` 13563} 13564 13565func (x *DateTime_TimeZone) Reset() { 13566 *x = DateTime_TimeZone{} 13567 if protoimpl.UnsafeEnabled { 13568 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[157] 13569 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13570 ms.StoreMessageInfo(mi) 13571 } 13572} 13573 13574func (x *DateTime_TimeZone) String() string { 13575 return protoimpl.X.MessageStringOf(x) 13576} 13577 13578func (*DateTime_TimeZone) ProtoMessage() {} 13579 13580func (x *DateTime_TimeZone) ProtoReflect() protoreflect.Message { 13581 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[157] 13582 if protoimpl.UnsafeEnabled && x != nil { 13583 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13584 if ms.LoadMessageInfo() == nil { 13585 ms.StoreMessageInfo(mi) 13586 } 13587 return ms 13588 } 13589 return mi.MessageOf(x) 13590} 13591 13592// Deprecated: Use DateTime_TimeZone.ProtoReflect.Descriptor instead. 13593func (*DateTime_TimeZone) Descriptor() ([]byte, []int) { 13594 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{45, 0} 13595} 13596 13597func (x *DateTime_TimeZone) GetOffsetMinutes() int32 { 13598 if x != nil { 13599 return x.OffsetMinutes 13600 } 13601 return 0 13602} 13603 13604// Throw an error and fail the request when a transformation error occurs. 13605type TransformationErrorHandling_ThrowError struct { 13606 state protoimpl.MessageState 13607 sizeCache protoimpl.SizeCache 13608 unknownFields protoimpl.UnknownFields 13609} 13610 13611func (x *TransformationErrorHandling_ThrowError) Reset() { 13612 *x = TransformationErrorHandling_ThrowError{} 13613 if protoimpl.UnsafeEnabled { 13614 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[158] 13615 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13616 ms.StoreMessageInfo(mi) 13617 } 13618} 13619 13620func (x *TransformationErrorHandling_ThrowError) String() string { 13621 return protoimpl.X.MessageStringOf(x) 13622} 13623 13624func (*TransformationErrorHandling_ThrowError) ProtoMessage() {} 13625 13626func (x *TransformationErrorHandling_ThrowError) ProtoReflect() protoreflect.Message { 13627 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[158] 13628 if protoimpl.UnsafeEnabled && x != nil { 13629 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13630 if ms.LoadMessageInfo() == nil { 13631 ms.StoreMessageInfo(mi) 13632 } 13633 return ms 13634 } 13635 return mi.MessageOf(x) 13636} 13637 13638// Deprecated: Use TransformationErrorHandling_ThrowError.ProtoReflect.Descriptor instead. 13639func (*TransformationErrorHandling_ThrowError) Descriptor() ([]byte, []int) { 13640 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{47, 0} 13641} 13642 13643// Skips the data without modifying it if the requested transformation would 13644// cause an error. For example, if a `DateShift` transformation were applied 13645// an an IP address, this mode would leave the IP address unchanged in the 13646// response. 13647type TransformationErrorHandling_LeaveUntransformed struct { 13648 state protoimpl.MessageState 13649 sizeCache protoimpl.SizeCache 13650 unknownFields protoimpl.UnknownFields 13651} 13652 13653func (x *TransformationErrorHandling_LeaveUntransformed) Reset() { 13654 *x = TransformationErrorHandling_LeaveUntransformed{} 13655 if protoimpl.UnsafeEnabled { 13656 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[159] 13657 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13658 ms.StoreMessageInfo(mi) 13659 } 13660} 13661 13662func (x *TransformationErrorHandling_LeaveUntransformed) String() string { 13663 return protoimpl.X.MessageStringOf(x) 13664} 13665 13666func (*TransformationErrorHandling_LeaveUntransformed) ProtoMessage() {} 13667 13668func (x *TransformationErrorHandling_LeaveUntransformed) ProtoReflect() protoreflect.Message { 13669 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[159] 13670 if protoimpl.UnsafeEnabled && x != nil { 13671 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13672 if ms.LoadMessageInfo() == nil { 13673 ms.StoreMessageInfo(mi) 13674 } 13675 return ms 13676 } 13677 return mi.MessageOf(x) 13678} 13679 13680// Deprecated: Use TransformationErrorHandling_LeaveUntransformed.ProtoReflect.Descriptor instead. 13681func (*TransformationErrorHandling_LeaveUntransformed) Descriptor() ([]byte, []int) { 13682 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{47, 1} 13683} 13684 13685// Bucket is represented as a range, along with replacement values. 13686type BucketingConfig_Bucket struct { 13687 state protoimpl.MessageState 13688 sizeCache protoimpl.SizeCache 13689 unknownFields protoimpl.UnknownFields 13690 13691 // Lower bound of the range, inclusive. Type should be the same as max if 13692 // used. 13693 Min *Value `protobuf:"bytes,1,opt,name=min,proto3" json:"min,omitempty"` 13694 // Upper bound of the range, exclusive; type must match min. 13695 Max *Value `protobuf:"bytes,2,opt,name=max,proto3" json:"max,omitempty"` 13696 // Required. Replacement value for this bucket. 13697 ReplacementValue *Value `protobuf:"bytes,3,opt,name=replacement_value,json=replacementValue,proto3" json:"replacement_value,omitempty"` 13698} 13699 13700func (x *BucketingConfig_Bucket) Reset() { 13701 *x = BucketingConfig_Bucket{} 13702 if protoimpl.UnsafeEnabled { 13703 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[160] 13704 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13705 ms.StoreMessageInfo(mi) 13706 } 13707} 13708 13709func (x *BucketingConfig_Bucket) String() string { 13710 return protoimpl.X.MessageStringOf(x) 13711} 13712 13713func (*BucketingConfig_Bucket) ProtoMessage() {} 13714 13715func (x *BucketingConfig_Bucket) ProtoReflect() protoreflect.Message { 13716 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[160] 13717 if protoimpl.UnsafeEnabled && x != nil { 13718 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13719 if ms.LoadMessageInfo() == nil { 13720 ms.StoreMessageInfo(mi) 13721 } 13722 return ms 13723 } 13724 return mi.MessageOf(x) 13725} 13726 13727// Deprecated: Use BucketingConfig_Bucket.ProtoReflect.Descriptor instead. 13728func (*BucketingConfig_Bucket) Descriptor() ([]byte, []int) { 13729 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{58, 0} 13730} 13731 13732func (x *BucketingConfig_Bucket) GetMin() *Value { 13733 if x != nil { 13734 return x.Min 13735 } 13736 return nil 13737} 13738 13739func (x *BucketingConfig_Bucket) GetMax() *Value { 13740 if x != nil { 13741 return x.Max 13742 } 13743 return nil 13744} 13745 13746func (x *BucketingConfig_Bucket) GetReplacementValue() *Value { 13747 if x != nil { 13748 return x.ReplacementValue 13749 } 13750 return nil 13751} 13752 13753// A transformation to apply to text that is identified as a specific 13754// info_type. 13755type InfoTypeTransformations_InfoTypeTransformation struct { 13756 state protoimpl.MessageState 13757 sizeCache protoimpl.SizeCache 13758 unknownFields protoimpl.UnknownFields 13759 13760 // InfoTypes to apply the transformation to. An empty list will cause 13761 // this transformation to apply to all findings that correspond to 13762 // infoTypes that were requested in `InspectConfig`. 13763 InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"` 13764 // Required. Primitive transformation to apply to the infoType. 13765 PrimitiveTransformation *PrimitiveTransformation `protobuf:"bytes,2,opt,name=primitive_transformation,json=primitiveTransformation,proto3" json:"primitive_transformation,omitempty"` 13766} 13767 13768func (x *InfoTypeTransformations_InfoTypeTransformation) Reset() { 13769 *x = InfoTypeTransformations_InfoTypeTransformation{} 13770 if protoimpl.UnsafeEnabled { 13771 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[161] 13772 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13773 ms.StoreMessageInfo(mi) 13774 } 13775} 13776 13777func (x *InfoTypeTransformations_InfoTypeTransformation) String() string { 13778 return protoimpl.X.MessageStringOf(x) 13779} 13780 13781func (*InfoTypeTransformations_InfoTypeTransformation) ProtoMessage() {} 13782 13783func (x *InfoTypeTransformations_InfoTypeTransformation) ProtoReflect() protoreflect.Message { 13784 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[161] 13785 if protoimpl.UnsafeEnabled && x != nil { 13786 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13787 if ms.LoadMessageInfo() == nil { 13788 ms.StoreMessageInfo(mi) 13789 } 13790 return ms 13791 } 13792 return mi.MessageOf(x) 13793} 13794 13795// Deprecated: Use InfoTypeTransformations_InfoTypeTransformation.ProtoReflect.Descriptor instead. 13796func (*InfoTypeTransformations_InfoTypeTransformation) Descriptor() ([]byte, []int) { 13797 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{65, 0} 13798} 13799 13800func (x *InfoTypeTransformations_InfoTypeTransformation) GetInfoTypes() []*InfoType { 13801 if x != nil { 13802 return x.InfoTypes 13803 } 13804 return nil 13805} 13806 13807func (x *InfoTypeTransformations_InfoTypeTransformation) GetPrimitiveTransformation() *PrimitiveTransformation { 13808 if x != nil { 13809 return x.PrimitiveTransformation 13810 } 13811 return nil 13812} 13813 13814// The field type of `value` and `field` do not need to match to be 13815// considered equal, but not all comparisons are possible. 13816// EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, 13817// but all other comparisons are invalid with incompatible types. 13818// A `value` of type: 13819// 13820// - `string` can be compared against all other types 13821// - `boolean` can only be compared against other booleans 13822// - `integer` can be compared against doubles or a string if the string value 13823// can be parsed as an integer. 13824// - `double` can be compared against integers or a string if the string can 13825// be parsed as a double. 13826// - `Timestamp` can be compared against strings in RFC 3339 date string 13827// format. 13828// - `TimeOfDay` can be compared against timestamps and strings in the format 13829// of 'HH:mm:ss'. 13830// 13831// If we fail to compare do to type mismatch, a warning will be given and 13832// the condition will evaluate to false. 13833type RecordCondition_Condition struct { 13834 state protoimpl.MessageState 13835 sizeCache protoimpl.SizeCache 13836 unknownFields protoimpl.UnknownFields 13837 13838 // Required. Field within the record this condition is evaluated against. 13839 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 13840 // Required. Operator used to compare the field or infoType to the value. 13841 Operator RelationalOperator `protobuf:"varint,3,opt,name=operator,proto3,enum=google.privacy.dlp.v2.RelationalOperator" json:"operator,omitempty"` 13842 // Value to compare against. [Mandatory, except for `EXISTS` tests.] 13843 Value *Value `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` 13844} 13845 13846func (x *RecordCondition_Condition) Reset() { 13847 *x = RecordCondition_Condition{} 13848 if protoimpl.UnsafeEnabled { 13849 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[162] 13850 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13851 ms.StoreMessageInfo(mi) 13852 } 13853} 13854 13855func (x *RecordCondition_Condition) String() string { 13856 return protoimpl.X.MessageStringOf(x) 13857} 13858 13859func (*RecordCondition_Condition) ProtoMessage() {} 13860 13861func (x *RecordCondition_Condition) ProtoReflect() protoreflect.Message { 13862 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[162] 13863 if protoimpl.UnsafeEnabled && x != nil { 13864 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13865 if ms.LoadMessageInfo() == nil { 13866 ms.StoreMessageInfo(mi) 13867 } 13868 return ms 13869 } 13870 return mi.MessageOf(x) 13871} 13872 13873// Deprecated: Use RecordCondition_Condition.ProtoReflect.Descriptor instead. 13874func (*RecordCondition_Condition) Descriptor() ([]byte, []int) { 13875 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{69, 0} 13876} 13877 13878func (x *RecordCondition_Condition) GetField() *FieldId { 13879 if x != nil { 13880 return x.Field 13881 } 13882 return nil 13883} 13884 13885func (x *RecordCondition_Condition) GetOperator() RelationalOperator { 13886 if x != nil { 13887 return x.Operator 13888 } 13889 return RelationalOperator_RELATIONAL_OPERATOR_UNSPECIFIED 13890} 13891 13892func (x *RecordCondition_Condition) GetValue() *Value { 13893 if x != nil { 13894 return x.Value 13895 } 13896 return nil 13897} 13898 13899// A collection of conditions. 13900type RecordCondition_Conditions struct { 13901 state protoimpl.MessageState 13902 sizeCache protoimpl.SizeCache 13903 unknownFields protoimpl.UnknownFields 13904 13905 // A collection of conditions. 13906 Conditions []*RecordCondition_Condition `protobuf:"bytes,1,rep,name=conditions,proto3" json:"conditions,omitempty"` 13907} 13908 13909func (x *RecordCondition_Conditions) Reset() { 13910 *x = RecordCondition_Conditions{} 13911 if protoimpl.UnsafeEnabled { 13912 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[163] 13913 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13914 ms.StoreMessageInfo(mi) 13915 } 13916} 13917 13918func (x *RecordCondition_Conditions) String() string { 13919 return protoimpl.X.MessageStringOf(x) 13920} 13921 13922func (*RecordCondition_Conditions) ProtoMessage() {} 13923 13924func (x *RecordCondition_Conditions) ProtoReflect() protoreflect.Message { 13925 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[163] 13926 if protoimpl.UnsafeEnabled && x != nil { 13927 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13928 if ms.LoadMessageInfo() == nil { 13929 ms.StoreMessageInfo(mi) 13930 } 13931 return ms 13932 } 13933 return mi.MessageOf(x) 13934} 13935 13936// Deprecated: Use RecordCondition_Conditions.ProtoReflect.Descriptor instead. 13937func (*RecordCondition_Conditions) Descriptor() ([]byte, []int) { 13938 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{69, 1} 13939} 13940 13941func (x *RecordCondition_Conditions) GetConditions() []*RecordCondition_Condition { 13942 if x != nil { 13943 return x.Conditions 13944 } 13945 return nil 13946} 13947 13948// An expression, consisting or an operator and conditions. 13949type RecordCondition_Expressions struct { 13950 state protoimpl.MessageState 13951 sizeCache protoimpl.SizeCache 13952 unknownFields protoimpl.UnknownFields 13953 13954 // The operator to apply to the result of conditions. Default and currently 13955 // only supported value is `AND`. 13956 LogicalOperator RecordCondition_Expressions_LogicalOperator `protobuf:"varint,1,opt,name=logical_operator,json=logicalOperator,proto3,enum=google.privacy.dlp.v2.RecordCondition_Expressions_LogicalOperator" json:"logical_operator,omitempty"` 13957 // Expression types. 13958 // 13959 // Types that are assignable to Type: 13960 // *RecordCondition_Expressions_Conditions 13961 Type isRecordCondition_Expressions_Type `protobuf_oneof:"type"` 13962} 13963 13964func (x *RecordCondition_Expressions) Reset() { 13965 *x = RecordCondition_Expressions{} 13966 if protoimpl.UnsafeEnabled { 13967 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[164] 13968 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13969 ms.StoreMessageInfo(mi) 13970 } 13971} 13972 13973func (x *RecordCondition_Expressions) String() string { 13974 return protoimpl.X.MessageStringOf(x) 13975} 13976 13977func (*RecordCondition_Expressions) ProtoMessage() {} 13978 13979func (x *RecordCondition_Expressions) ProtoReflect() protoreflect.Message { 13980 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[164] 13981 if protoimpl.UnsafeEnabled && x != nil { 13982 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13983 if ms.LoadMessageInfo() == nil { 13984 ms.StoreMessageInfo(mi) 13985 } 13986 return ms 13987 } 13988 return mi.MessageOf(x) 13989} 13990 13991// Deprecated: Use RecordCondition_Expressions.ProtoReflect.Descriptor instead. 13992func (*RecordCondition_Expressions) Descriptor() ([]byte, []int) { 13993 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{69, 2} 13994} 13995 13996func (x *RecordCondition_Expressions) GetLogicalOperator() RecordCondition_Expressions_LogicalOperator { 13997 if x != nil { 13998 return x.LogicalOperator 13999 } 14000 return RecordCondition_Expressions_LOGICAL_OPERATOR_UNSPECIFIED 14001} 14002 14003func (m *RecordCondition_Expressions) GetType() isRecordCondition_Expressions_Type { 14004 if m != nil { 14005 return m.Type 14006 } 14007 return nil 14008} 14009 14010func (x *RecordCondition_Expressions) GetConditions() *RecordCondition_Conditions { 14011 if x, ok := x.GetType().(*RecordCondition_Expressions_Conditions); ok { 14012 return x.Conditions 14013 } 14014 return nil 14015} 14016 14017type isRecordCondition_Expressions_Type interface { 14018 isRecordCondition_Expressions_Type() 14019} 14020 14021type RecordCondition_Expressions_Conditions struct { 14022 // Conditions to apply to the expression. 14023 Conditions *RecordCondition_Conditions `protobuf:"bytes,3,opt,name=conditions,proto3,oneof"` 14024} 14025 14026func (*RecordCondition_Expressions_Conditions) isRecordCondition_Expressions_Type() {} 14027 14028// A collection that informs the user the number of times a particular 14029// `TransformationResultCode` and error details occurred. 14030type TransformationSummary_SummaryResult struct { 14031 state protoimpl.MessageState 14032 sizeCache protoimpl.SizeCache 14033 unknownFields protoimpl.UnknownFields 14034 14035 // Number of transformations counted by this result. 14036 Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` 14037 // Outcome of the transformation. 14038 Code TransformationSummary_TransformationResultCode `protobuf:"varint,2,opt,name=code,proto3,enum=google.privacy.dlp.v2.TransformationSummary_TransformationResultCode" json:"code,omitempty"` 14039 // A place for warnings or errors to show up if a transformation didn't 14040 // work as expected. 14041 Details string `protobuf:"bytes,3,opt,name=details,proto3" json:"details,omitempty"` 14042} 14043 14044func (x *TransformationSummary_SummaryResult) Reset() { 14045 *x = TransformationSummary_SummaryResult{} 14046 if protoimpl.UnsafeEnabled { 14047 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[165] 14048 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14049 ms.StoreMessageInfo(mi) 14050 } 14051} 14052 14053func (x *TransformationSummary_SummaryResult) String() string { 14054 return protoimpl.X.MessageStringOf(x) 14055} 14056 14057func (*TransformationSummary_SummaryResult) ProtoMessage() {} 14058 14059func (x *TransformationSummary_SummaryResult) ProtoReflect() protoreflect.Message { 14060 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[165] 14061 if protoimpl.UnsafeEnabled && x != nil { 14062 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14063 if ms.LoadMessageInfo() == nil { 14064 ms.StoreMessageInfo(mi) 14065 } 14066 return ms 14067 } 14068 return mi.MessageOf(x) 14069} 14070 14071// Deprecated: Use TransformationSummary_SummaryResult.ProtoReflect.Descriptor instead. 14072func (*TransformationSummary_SummaryResult) Descriptor() ([]byte, []int) { 14073 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{71, 0} 14074} 14075 14076func (x *TransformationSummary_SummaryResult) GetCount() int64 { 14077 if x != nil { 14078 return x.Count 14079 } 14080 return 0 14081} 14082 14083func (x *TransformationSummary_SummaryResult) GetCode() TransformationSummary_TransformationResultCode { 14084 if x != nil { 14085 return x.Code 14086 } 14087 return TransformationSummary_TRANSFORMATION_RESULT_CODE_UNSPECIFIED 14088} 14089 14090func (x *TransformationSummary_SummaryResult) GetDetails() string { 14091 if x != nil { 14092 return x.Details 14093 } 14094 return "" 14095} 14096 14097// What event needs to occur for a new job to be started. 14098type JobTrigger_Trigger struct { 14099 state protoimpl.MessageState 14100 sizeCache protoimpl.SizeCache 14101 unknownFields protoimpl.UnknownFields 14102 14103 // Types that are assignable to Trigger: 14104 // *JobTrigger_Trigger_Schedule 14105 // *JobTrigger_Trigger_Manual 14106 Trigger isJobTrigger_Trigger_Trigger `protobuf_oneof:"trigger"` 14107} 14108 14109func (x *JobTrigger_Trigger) Reset() { 14110 *x = JobTrigger_Trigger{} 14111 if protoimpl.UnsafeEnabled { 14112 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[166] 14113 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14114 ms.StoreMessageInfo(mi) 14115 } 14116} 14117 14118func (x *JobTrigger_Trigger) String() string { 14119 return protoimpl.X.MessageStringOf(x) 14120} 14121 14122func (*JobTrigger_Trigger) ProtoMessage() {} 14123 14124func (x *JobTrigger_Trigger) ProtoReflect() protoreflect.Message { 14125 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[166] 14126 if protoimpl.UnsafeEnabled && x != nil { 14127 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14128 if ms.LoadMessageInfo() == nil { 14129 ms.StoreMessageInfo(mi) 14130 } 14131 return ms 14132 } 14133 return mi.MessageOf(x) 14134} 14135 14136// Deprecated: Use JobTrigger_Trigger.ProtoReflect.Descriptor instead. 14137func (*JobTrigger_Trigger) Descriptor() ([]byte, []int) { 14138 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{77, 0} 14139} 14140 14141func (m *JobTrigger_Trigger) GetTrigger() isJobTrigger_Trigger_Trigger { 14142 if m != nil { 14143 return m.Trigger 14144 } 14145 return nil 14146} 14147 14148func (x *JobTrigger_Trigger) GetSchedule() *Schedule { 14149 if x, ok := x.GetTrigger().(*JobTrigger_Trigger_Schedule); ok { 14150 return x.Schedule 14151 } 14152 return nil 14153} 14154 14155func (x *JobTrigger_Trigger) GetManual() *Manual { 14156 if x, ok := x.GetTrigger().(*JobTrigger_Trigger_Manual); ok { 14157 return x.Manual 14158 } 14159 return nil 14160} 14161 14162type isJobTrigger_Trigger_Trigger interface { 14163 isJobTrigger_Trigger_Trigger() 14164} 14165 14166type JobTrigger_Trigger_Schedule struct { 14167 // Create a job on a repeating basis based on the elapse of time. 14168 Schedule *Schedule `protobuf:"bytes,1,opt,name=schedule,proto3,oneof"` 14169} 14170 14171type JobTrigger_Trigger_Manual struct { 14172 // For use with hybrid jobs. Jobs must be manually created and finished. 14173 // Early access feature is in a pre-release state and might change or have 14174 // limited support. For more information, see 14175 // https://cloud.google.com/products#product-launch-stages. 14176 Manual *Manual `protobuf:"bytes,2,opt,name=manual,proto3,oneof"` 14177} 14178 14179func (*JobTrigger_Trigger_Schedule) isJobTrigger_Trigger_Trigger() {} 14180 14181func (*JobTrigger_Trigger_Manual) isJobTrigger_Trigger_Trigger() {} 14182 14183// If set, the detailed findings will be persisted to the specified 14184// OutputStorageConfig. Only a single instance of this action can be 14185// specified. 14186// Compatible with: Inspect, Risk 14187type Action_SaveFindings struct { 14188 state protoimpl.MessageState 14189 sizeCache protoimpl.SizeCache 14190 unknownFields protoimpl.UnknownFields 14191 14192 // Location to store findings outside of DLP. 14193 OutputConfig *OutputStorageConfig `protobuf:"bytes,1,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 14194} 14195 14196func (x *Action_SaveFindings) Reset() { 14197 *x = Action_SaveFindings{} 14198 if protoimpl.UnsafeEnabled { 14199 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[167] 14200 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14201 ms.StoreMessageInfo(mi) 14202 } 14203} 14204 14205func (x *Action_SaveFindings) String() string { 14206 return protoimpl.X.MessageStringOf(x) 14207} 14208 14209func (*Action_SaveFindings) ProtoMessage() {} 14210 14211func (x *Action_SaveFindings) ProtoReflect() protoreflect.Message { 14212 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[167] 14213 if protoimpl.UnsafeEnabled && x != nil { 14214 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14215 if ms.LoadMessageInfo() == nil { 14216 ms.StoreMessageInfo(mi) 14217 } 14218 return ms 14219 } 14220 return mi.MessageOf(x) 14221} 14222 14223// Deprecated: Use Action_SaveFindings.ProtoReflect.Descriptor instead. 14224func (*Action_SaveFindings) Descriptor() ([]byte, []int) { 14225 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{78, 0} 14226} 14227 14228func (x *Action_SaveFindings) GetOutputConfig() *OutputStorageConfig { 14229 if x != nil { 14230 return x.OutputConfig 14231 } 14232 return nil 14233} 14234 14235// Publish a message into given Pub/Sub topic when DlpJob has completed. The 14236// message contains a single field, `DlpJobName`, which is equal to the 14237// finished job's 14238// [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob). 14239// Compatible with: Inspect, Risk 14240type Action_PublishToPubSub struct { 14241 state protoimpl.MessageState 14242 sizeCache protoimpl.SizeCache 14243 unknownFields protoimpl.UnknownFields 14244 14245 // Cloud Pub/Sub topic to send notifications to. The topic must have given 14246 // publishing access rights to the DLP API service account executing 14247 // the long running DlpJob sending the notifications. 14248 // Format is projects/{project}/topics/{topic}. 14249 Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` 14250} 14251 14252func (x *Action_PublishToPubSub) Reset() { 14253 *x = Action_PublishToPubSub{} 14254 if protoimpl.UnsafeEnabled { 14255 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[168] 14256 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14257 ms.StoreMessageInfo(mi) 14258 } 14259} 14260 14261func (x *Action_PublishToPubSub) String() string { 14262 return protoimpl.X.MessageStringOf(x) 14263} 14264 14265func (*Action_PublishToPubSub) ProtoMessage() {} 14266 14267func (x *Action_PublishToPubSub) ProtoReflect() protoreflect.Message { 14268 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[168] 14269 if protoimpl.UnsafeEnabled && x != nil { 14270 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14271 if ms.LoadMessageInfo() == nil { 14272 ms.StoreMessageInfo(mi) 14273 } 14274 return ms 14275 } 14276 return mi.MessageOf(x) 14277} 14278 14279// Deprecated: Use Action_PublishToPubSub.ProtoReflect.Descriptor instead. 14280func (*Action_PublishToPubSub) Descriptor() ([]byte, []int) { 14281 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{78, 1} 14282} 14283 14284func (x *Action_PublishToPubSub) GetTopic() string { 14285 if x != nil { 14286 return x.Topic 14287 } 14288 return "" 14289} 14290 14291// Publish the result summary of a DlpJob to the Cloud Security 14292// Command Center (CSCC Alpha). 14293// This action is only available for projects which are parts of 14294// an organization and whitelisted for the alpha Cloud Security Command 14295// Center. 14296// The action will publish count of finding instances and their info types. 14297// The summary of findings will be persisted in CSCC and are governed by CSCC 14298// service-specific policy, see https://cloud.google.com/terms/service-terms 14299// Only a single instance of this action can be specified. 14300// Compatible with: Inspect 14301type Action_PublishSummaryToCscc struct { 14302 state protoimpl.MessageState 14303 sizeCache protoimpl.SizeCache 14304 unknownFields protoimpl.UnknownFields 14305} 14306 14307func (x *Action_PublishSummaryToCscc) Reset() { 14308 *x = Action_PublishSummaryToCscc{} 14309 if protoimpl.UnsafeEnabled { 14310 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[169] 14311 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14312 ms.StoreMessageInfo(mi) 14313 } 14314} 14315 14316func (x *Action_PublishSummaryToCscc) String() string { 14317 return protoimpl.X.MessageStringOf(x) 14318} 14319 14320func (*Action_PublishSummaryToCscc) ProtoMessage() {} 14321 14322func (x *Action_PublishSummaryToCscc) ProtoReflect() protoreflect.Message { 14323 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[169] 14324 if protoimpl.UnsafeEnabled && x != nil { 14325 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14326 if ms.LoadMessageInfo() == nil { 14327 ms.StoreMessageInfo(mi) 14328 } 14329 return ms 14330 } 14331 return mi.MessageOf(x) 14332} 14333 14334// Deprecated: Use Action_PublishSummaryToCscc.ProtoReflect.Descriptor instead. 14335func (*Action_PublishSummaryToCscc) Descriptor() ([]byte, []int) { 14336 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{78, 2} 14337} 14338 14339// Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the 14340// results of the DlpJob will be applied to the entry for the resource scanned 14341// in Cloud Data Catalog. Any labels previously written by another DlpJob will 14342// be deleted. InfoType naming patterns are strictly enforced when using this 14343// feature. Note that the findings will be persisted in Cloud Data Catalog 14344// storage and are governed by Data Catalog service-specific policy, see 14345// https://cloud.google.com/terms/service-terms 14346// Only a single instance of this action can be specified and only allowed if 14347// all resources being scanned are BigQuery tables. 14348// Compatible with: Inspect 14349type Action_PublishFindingsToCloudDataCatalog struct { 14350 state protoimpl.MessageState 14351 sizeCache protoimpl.SizeCache 14352 unknownFields protoimpl.UnknownFields 14353} 14354 14355func (x *Action_PublishFindingsToCloudDataCatalog) Reset() { 14356 *x = Action_PublishFindingsToCloudDataCatalog{} 14357 if protoimpl.UnsafeEnabled { 14358 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[170] 14359 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14360 ms.StoreMessageInfo(mi) 14361 } 14362} 14363 14364func (x *Action_PublishFindingsToCloudDataCatalog) String() string { 14365 return protoimpl.X.MessageStringOf(x) 14366} 14367 14368func (*Action_PublishFindingsToCloudDataCatalog) ProtoMessage() {} 14369 14370func (x *Action_PublishFindingsToCloudDataCatalog) ProtoReflect() protoreflect.Message { 14371 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[170] 14372 if protoimpl.UnsafeEnabled && x != nil { 14373 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14374 if ms.LoadMessageInfo() == nil { 14375 ms.StoreMessageInfo(mi) 14376 } 14377 return ms 14378 } 14379 return mi.MessageOf(x) 14380} 14381 14382// Deprecated: Use Action_PublishFindingsToCloudDataCatalog.ProtoReflect.Descriptor instead. 14383func (*Action_PublishFindingsToCloudDataCatalog) Descriptor() ([]byte, []int) { 14384 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{78, 3} 14385} 14386 14387// Enable email notification to project owners and editors on jobs's 14388// completion/failure. 14389type Action_JobNotificationEmails struct { 14390 state protoimpl.MessageState 14391 sizeCache protoimpl.SizeCache 14392 unknownFields protoimpl.UnknownFields 14393} 14394 14395func (x *Action_JobNotificationEmails) Reset() { 14396 *x = Action_JobNotificationEmails{} 14397 if protoimpl.UnsafeEnabled { 14398 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[171] 14399 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14400 ms.StoreMessageInfo(mi) 14401 } 14402} 14403 14404func (x *Action_JobNotificationEmails) String() string { 14405 return protoimpl.X.MessageStringOf(x) 14406} 14407 14408func (*Action_JobNotificationEmails) ProtoMessage() {} 14409 14410func (x *Action_JobNotificationEmails) ProtoReflect() protoreflect.Message { 14411 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[171] 14412 if protoimpl.UnsafeEnabled && x != nil { 14413 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14414 if ms.LoadMessageInfo() == nil { 14415 ms.StoreMessageInfo(mi) 14416 } 14417 return ms 14418 } 14419 return mi.MessageOf(x) 14420} 14421 14422// Deprecated: Use Action_JobNotificationEmails.ProtoReflect.Descriptor instead. 14423func (*Action_JobNotificationEmails) Descriptor() ([]byte, []int) { 14424 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{78, 4} 14425} 14426 14427// Enable Stackdriver metric dlp.googleapis.com/finding_count. This 14428// will publish a metric to stack driver on each infotype requested and 14429// how many findings were found for it. CustomDetectors will be bucketed 14430// as 'Custom' under the Stackdriver label 'info_type'. 14431type Action_PublishToStackdriver struct { 14432 state protoimpl.MessageState 14433 sizeCache protoimpl.SizeCache 14434 unknownFields protoimpl.UnknownFields 14435} 14436 14437func (x *Action_PublishToStackdriver) Reset() { 14438 *x = Action_PublishToStackdriver{} 14439 if protoimpl.UnsafeEnabled { 14440 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[172] 14441 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14442 ms.StoreMessageInfo(mi) 14443 } 14444} 14445 14446func (x *Action_PublishToStackdriver) String() string { 14447 return protoimpl.X.MessageStringOf(x) 14448} 14449 14450func (*Action_PublishToStackdriver) ProtoMessage() {} 14451 14452func (x *Action_PublishToStackdriver) ProtoReflect() protoreflect.Message { 14453 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[172] 14454 if protoimpl.UnsafeEnabled && x != nil { 14455 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14456 if ms.LoadMessageInfo() == nil { 14457 ms.StoreMessageInfo(mi) 14458 } 14459 return ms 14460 } 14461 return mi.MessageOf(x) 14462} 14463 14464// Deprecated: Use Action_PublishToStackdriver.ProtoReflect.Descriptor instead. 14465func (*Action_PublishToStackdriver) Descriptor() ([]byte, []int) { 14466 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{78, 5} 14467} 14468 14469var File_google_privacy_dlp_v2_dlp_proto protoreflect.FileDescriptor 14470 14471var file_google_privacy_dlp_v2_dlp_proto_rawDesc = []byte{ 14472 0x0a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 14473 0x2f, 0x64, 0x6c, 0x70, 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x6c, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 14474 0x6f, 0x12, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 14475 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 14476 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 14477 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 14478 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 14479 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 14480 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 14481 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2f, 0x64, 0x6c, 14482 0x70, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 14483 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 14484 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 14485 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 14486 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 14487 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 14488 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 14489 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 14490 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 14491 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 14492 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x67, 0x6f, 0x6f, 14493 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 14494 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 14495 0x2f, 0x64, 0x61, 0x79, 0x6f, 0x66, 0x77, 0x65, 0x65, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 14496 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x74, 0x69, 14497 0x6d, 0x65, 0x6f, 0x66, 0x64, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 14498 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 14499 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x52, 0x0a, 0x10, 0x45, 14500 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 14501 0x3e, 0x0a, 0x0a, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 14502 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 14503 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 14504 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 14505 0xd3, 0x02, 0x0a, 0x0d, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 14506 0x65, 0x12, 0x52, 0x0a, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x18, 14507 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 14508 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 14509 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x69, 0x63, 14510 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, 14511 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x43, 0x0a, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x02, 14512 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 14513 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 14514 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x52, 0x65, 0x67, 0x65, 14515 0x78, 0x48, 0x00, 0x52, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x12, 0x57, 0x0a, 0x12, 0x65, 0x78, 14516 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 14517 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14518 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x45, 14519 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x48, 14520 0x00, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 14521 0x70, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 14522 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 14523 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14524 0x76, 0x32, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 14525 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 14526 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 14527 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x64, 0x0a, 0x0c, 0x68, 0x6f, 0x74, 0x77, 14528 0x6f, 0x72, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 14529 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14530 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 14531 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 14532 0x75, 0x6c, 0x65, 0x2e, 0x48, 0x6f, 0x74, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x48, 14533 0x00, 0x52, 0x0b, 0x68, 0x6f, 0x74, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x4d, 14534 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x75, 0x6c, 0x65, 14535 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14536 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x45, 14537 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x0d, 14538 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x06, 0x0a, 14539 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x11, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 14540 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 0x3e, 0x0a, 0x0a, 0x69, 14541 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 14542 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 14543 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 14544 0x52, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x72, 14545 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 14546 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14547 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 14548 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x8d, 0x07, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 14549 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3e, 0x0a, 0x0a, 0x69, 0x6e, 14550 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 14551 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14552 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 14553 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0e, 0x6d, 0x69, 14554 0x6e, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 14555 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 14556 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 14557 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 14558 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x4a, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x03, 14559 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 14560 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 14561 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x69, 14562 0x6e, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 14563 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x71, 0x75, 0x6f, 0x74, 14564 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 14565 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 14566 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 14567 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 14568 0x70, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x69, 0x6e, 14569 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 14570 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14571 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 14572 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 14573 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 14574 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0e, 0x32, 14575 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 14576 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4f, 14577 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4f, 0x70, 14578 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x73, 0x65, 14579 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 14580 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 14581 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x65, 14582 0x74, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x1a, 0xeb, 0x02, 0x0a, 0x0d, 0x46, 14583 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x15, 14584 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x70, 0x65, 0x72, 14585 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x6d, 0x61, 0x78, 14586 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x50, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x12, 14587 0x37, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x5f, 14588 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 14589 0x05, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x50, 0x65, 14590 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x7c, 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x5f, 14591 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 14592 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 14593 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14594 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 14595 0x69, 0x67, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 14596 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x16, 14597 0x6d, 0x61, 0x78, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x50, 0x65, 0x72, 0x49, 0x6e, 14598 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x70, 0x0a, 0x0d, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 14599 0x70, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 14600 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 14601 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14602 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x66, 14603 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x69, 0x6e, 14604 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 14605 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xa4, 0x02, 0x0a, 0x0f, 0x42, 0x79, 0x74, 14606 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x44, 0x0a, 0x04, 14607 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 14608 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14609 0x76, 0x32, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 14610 0x65, 0x6d, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 14611 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 14612 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb6, 0x01, 0x0a, 0x09, 0x42, 0x79, 0x74, 0x65, 0x73, 14613 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x59, 0x54, 0x45, 0x53, 0x5f, 0x54, 0x59, 14614 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 14615 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 14616 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x4a, 0x50, 0x45, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x49, 14617 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x42, 0x4d, 0x50, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4d, 14618 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4d, 0x41, 14619 0x47, 0x45, 0x5f, 0x53, 0x56, 0x47, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x45, 0x58, 0x54, 14620 0x5f, 0x55, 0x54, 0x46, 0x38, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x57, 0x4f, 0x52, 0x44, 0x5f, 14621 0x44, 0x4f, 0x43, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x44, 14622 0x46, 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x56, 0x52, 0x4f, 0x10, 0x0b, 0x12, 0x07, 0x0a, 14623 0x03, 0x43, 0x53, 0x56, 0x10, 0x0c, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x53, 0x56, 0x10, 0x0d, 0x22, 14624 0xaf, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 14625 0x16, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 14626 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 14627 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14628 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 14629 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x45, 0x0a, 14630 0x09, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 14631 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 14632 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x6e, 14633 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65, 14634 0x49, 0x74, 0x65, 0x6d, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x74, 0x65, 14635 0x6d, 0x22, 0xb4, 0x01, 0x0a, 0x05, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x68, 14636 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 14637 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14638 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x07, 0x68, 0x65, 14639 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 14640 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 14641 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x62, 0x6c, 14642 0x65, 0x2e, 0x52, 0x6f, 0x77, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x1a, 0x3b, 0x0a, 0x03, 0x52, 14643 0x6f, 0x77, 0x12, 0x34, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 14644 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 14645 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 14646 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x7a, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x70, 14647 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3a, 0x0a, 0x08, 0x66, 0x69, 0x6e, 14648 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 14649 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 14650 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x66, 0x69, 0x6e, 14651 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 14652 0x73, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 14653 0x08, 0x52, 0x11, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x54, 0x72, 0x75, 0x6e, 0x63, 14654 0x61, 0x74, 0x65, 0x64, 0x22, 0xd6, 0x06, 0x0a, 0x07, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 14655 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 14656 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 14657 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 14658 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 14659 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 14660 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 14661 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x6c, 0x69, 0x6b, 0x65, 14662 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 14663 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14664 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 14665 0x0a, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x6c, 14666 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 14667 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 14668 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 14669 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 14670 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 14671 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 14672 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 14673 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x69, 14674 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 14675 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 14676 0x32, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x71, 0x75, 0x6f, 14677 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x43, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 14678 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xfa, 14679 0x41, 0x1b, 0x0a, 0x19, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 14680 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x0c, 0x72, 14681 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x74, 14682 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 14683 0x09, 0x42, 0x22, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 14684 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x72, 14685 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x4e, 0x61, 14686 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 14687 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 14688 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x69, 14689 0x6e, 0x67, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 14690 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x72, 14691 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 14692 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 14693 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 14694 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x6a, 0x6f, 14695 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xfa, 0x41, 14696 0x1b, 0x0a, 0x19, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 14697 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x07, 0x6a, 0x6f, 14698 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 14699 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 14700 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 14701 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 14702 0x3a, 0x5b, 0xea, 0x41, 0x58, 0x0a, 0x1a, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 14703 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 14704 0x67, 0x12, 0x3a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 14705 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 14706 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x69, 14707 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x7d, 0x22, 0xa3, 0x02, 14708 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0a, 0x62, 0x79, 14709 0x74, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 14710 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14711 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x62, 0x79, 14712 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x63, 0x6f, 0x64, 0x65, 0x70, 14713 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 14714 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 14715 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 14716 0x63, 0x6f, 0x64, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x53, 14717 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 14718 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 14719 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 14720 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 14721 0x6e, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 14722 0x6f, 0x6e, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 14723 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14724 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 14725 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 14726 0x6e, 0x65, 0x72, 0x22, 0x8f, 0x04, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 14727 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 14728 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 14729 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x50, 14730 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 14731 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 14732 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 14733 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 14734 0x52, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 14735 0x12, 0x4d, 0x0a, 0x0e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 14736 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 14737 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 14738 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 14739 0x52, 0x0d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 14740 0x56, 0x0a, 0x11, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 14741 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 14742 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14743 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 14744 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 14745 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x61, 0x64, 14746 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 14747 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 14748 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 14749 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x6d, 14750 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 14751 0x4b, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 14752 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 14753 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 14754 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 14755 0x6e, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2b, 0x0a, 0x11, 14756 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 14757 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 14758 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 14759 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 14760 0x74, 0x61, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 14761 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 14762 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 14763 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 14764 0x79, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 14765 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 14766 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14767 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 14768 0x74, 0x61, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 14769 0x67, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 14770 0x22, 0x28, 0x0a, 0x14, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 14771 0x61, 0x74, 0x61, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 14772 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x33, 0x0a, 0x10, 0x44, 0x6f, 14773 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 14774 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 14775 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 14776 0xd9, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 14777 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 14778 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14779 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 14780 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 14781 0x4b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 14782 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 14783 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 14784 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x4b, 14785 0x0a, 0x0e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 14786 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14787 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 14788 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x74, 0x61, 14789 0x62, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x0d, 0x54, 14790 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 14791 0x72, 0x6f, 0x77, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 14792 0x08, 0x72, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xf4, 0x01, 0x0a, 0x09, 0x43, 0x6f, 14793 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 14794 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 14795 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 14796 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 14797 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 14798 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 14799 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 14800 0x50, 0x61, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 14801 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6c, 14802 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 14803 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 14804 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 14805 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 14806 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 14807 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 14808 0x22, 0x2f, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 14809 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 14810 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 14811 0x64, 0x22, 0x5a, 0x0a, 0x0d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 14812 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x0e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 14813 0x6f, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 14814 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14815 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, 0x0d, 14816 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x65, 0x73, 0x22, 0x61, 0x0a, 14817 0x0b, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x10, 0x0a, 0x03, 14818 0x74, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74, 0x6f, 0x70, 0x12, 0x12, 14819 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x65, 14820 0x66, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 14821 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 14822 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 14823 0x22, 0xfa, 0x04, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 14824 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 14825 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xfa, 0x41, 0x1f, 0x12, 0x1d, 0x64, 0x6c, 14826 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 14827 0x2f, 0x44, 0x6c, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 14828 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 14829 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 14830 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 14831 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 14832 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14833 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 14834 0x69, 0x67, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 14835 0x67, 0x12, 0x76, 0x0a, 0x17, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 14836 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 14837 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 14838 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x64, 0x61, 0x63, 14839 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 14840 0x61, 0x67, 0x65, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 14841 0x69, 0x67, 0x52, 0x15, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 14842 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x63, 14843 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, 14844 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x46, 0x69, 0x6e, 0x64, 14845 0x69, 0x6e, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x69, 0x74, 0x65, 14846 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 14847 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 14848 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 14849 0x08, 0x62, 0x79, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0xd1, 0x01, 0x0a, 0x14, 0x49, 0x6d, 14850 0x61, 0x67, 0x65, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 14851 0x69, 0x67, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 14852 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 14853 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 14854 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 14855 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 14856 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x72, 14857 0x65, 0x64, 0x61, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x65, 0x78, 0x74, 0x12, 0x45, 0x0a, 0x0f, 14858 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 14859 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 14860 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 14861 0x6c, 0x6f, 0x72, 0x52, 0x0e, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 14862 0x6c, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x43, 0x0a, 14863 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 14864 0x01, 0x28, 0x02, 0x52, 0x03, 0x72, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x65, 0x65, 14865 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x12, 14866 0x0a, 0x04, 0x62, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x62, 0x6c, 14867 0x75, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x49, 0x6d, 0x61, 14868 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 14869 0x64, 0x61, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 14870 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 14871 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 14872 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x72, 0x61, 14873 0x63, 0x74, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x70, 14874 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 14875 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 14876 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 14877 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 14878 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xc0, 0x03, 0x0a, 0x18, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 14879 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 14880 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 14881 0x28, 0x09, 0x42, 0x22, 0xfa, 0x41, 0x1f, 0x12, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 14882 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x43, 14883 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x54, 14884 0x0a, 0x11, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 14885 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 14886 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 14887 0x32, 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x66, 14888 0x69, 0x67, 0x52, 0x10, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 14889 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 14890 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 14891 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14892 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 14893 0x69, 0x67, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 14894 0x67, 0x12, 0x36, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 14895 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 14896 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 14897 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x73, 14898 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 14899 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 14900 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 14901 0x18, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 14902 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 14903 0x16, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 14904 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 14905 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 14906 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x9e, 0x01, 0x0a, 0x19, 0x44, 0x65, 0x69, 14907 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 14908 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 14909 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 14910 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 14911 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x49, 14912 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 14913 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 14914 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 14915 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x52, 14916 0x08, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x22, 0xc3, 0x03, 0x0a, 0x18, 0x52, 0x65, 14917 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 14918 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 14919 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x12, 0x1d, 14920 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 14921 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 14922 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x11, 0x72, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 14923 0x69, 0x66, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 14924 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 14925 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 14926 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x72, 0x65, 0x69, 0x64, 0x65, 14927 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4b, 0x0a, 0x0e, 0x69, 14928 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 14929 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 14930 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 14931 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x70, 0x65, 14932 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 14933 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14934 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 14935 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 14936 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 14937 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 14938 0x13, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 14939 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x72, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 14940 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 14941 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x72, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 14942 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 14943 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 14944 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 14945 0x9e, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 14946 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 14947 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 14948 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 14949 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 14950 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x49, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 14951 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 14952 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 14953 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 14954 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 14955 0x22, 0xad, 0x02, 0x0a, 0x15, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 14956 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x70, 0x61, 14957 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xfa, 0x41, 0x1f, 0x12, 14958 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 14959 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x06, 14960 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 14961 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 14962 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14963 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 14964 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 14965 0x66, 0x69, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 14966 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 14967 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 14968 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x32, 0x0a, 0x15, 0x69, 14969 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 14970 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x69, 0x6e, 0x73, 0x70, 14971 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 14972 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 14973 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 14974 0x22, 0x56, 0x0a, 0x16, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 14975 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x72, 0x65, 14976 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 14977 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14978 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 14979 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xcc, 0x02, 0x0a, 0x13, 0x4f, 0x75, 0x74, 14980 0x70, 0x75, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 14981 0x12, 0x3c, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 14982 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 14983 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 14984 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x5c, 14985 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 14986 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 14987 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x75, 14988 0x74, 0x70, 0x75, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 14989 0x67, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0c, 14990 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x90, 0x01, 0x0a, 14991 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1d, 0x0a, 14992 0x19, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x55, 14993 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 14994 0x42, 0x41, 0x53, 0x49, 0x43, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x53, 0x10, 0x01, 0x12, 14995 0x0f, 0x0a, 0x0b, 0x47, 0x43, 0x53, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x53, 0x10, 0x02, 14996 0x12, 0x15, 0x0a, 0x11, 0x44, 0x41, 0x54, 0x41, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x4f, 14997 0x4c, 0x55, 0x4d, 0x4e, 0x53, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x49, 0x47, 0x5f, 0x51, 14998 0x55, 0x45, 0x52, 0x59, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x53, 0x10, 0x04, 0x12, 0x0f, 14999 0x0a, 0x0b, 0x41, 0x4c, 0x4c, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x53, 0x10, 0x05, 0x42, 15000 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x63, 0x0a, 0x0d, 0x49, 0x6e, 0x66, 0x6f, 0x54, 15001 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x66, 0x6f, 15002 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 15003 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15004 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x69, 0x6e, 15005 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 15006 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa3, 0x05, 0x0a, 15007 0x18, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 15008 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x6d, 0x0a, 0x11, 0x72, 0x65, 0x71, 15009 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 15010 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 15011 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 15012 0x70, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 15013 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4f, 15014 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 15015 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 15016 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 15017 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 15018 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 15019 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 15020 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0xbe, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71, 15021 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x62, 0x0a, 15022 0x19, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 15023 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 15024 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15025 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 15026 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x17, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 15027 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 15028 0x65, 0x12, 0x46, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 15029 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15030 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 15031 0x73, 0x70, 0x65, 0x63, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 15032 0x6a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x86, 0x02, 0x0a, 0x06, 0x52, 0x65, 15033 0x73, 0x75, 0x6c, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 15034 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 15035 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 15036 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 15037 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x74, 0x6f, 15038 0x74, 0x61, 0x6c, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 15039 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 15040 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 15041 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 15042 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 15043 0x52, 0x0d, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 15044 0x51, 0x0a, 0x0c, 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 15045 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15046 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x79, 15047 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 15048 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x0b, 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 0x53, 0x74, 0x61, 15049 0x74, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x17, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 15050 0x70, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x27, 15051 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 15052 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 15053 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x62, 0x6f, 0x72, 0x74, 15054 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 15055 0x61, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 15056 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 15057 0x01, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 15058 0x74, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 15059 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 15060 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 15061 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 15062 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 15063 0x12, 0x4d, 0x0a, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 15064 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15065 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 15066 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 15067 0x42, 0x79, 0x52, 0x0b, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 15068 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 15069 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 15070 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 15071 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 15072 0x72, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 15073 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 15074 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 15075 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 15076 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 15077 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 15078 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 15079 0x22, 0x62, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 15080 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x69, 0x6e, 0x66, 15081 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 15082 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15083 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 15084 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x54, 15085 0x79, 0x70, 0x65, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x15, 0x52, 0x69, 0x73, 0x6b, 0x41, 0x6e, 0x61, 15086 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4b, 15087 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 15088 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15089 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 15090 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0d, 0x70, 0x72, 15091 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x47, 0x0a, 0x0c, 0x73, 15092 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 15093 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 15094 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 15095 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 15096 0x61, 0x62, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 15097 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15098 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 15099 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe2, 0x01, 15100 0x0a, 0x07, 0x51, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x05, 0x66, 0x69, 0x65, 15101 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 15102 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 15103 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x66, 15104 0x69, 0x65, 0x6c, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 15105 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15106 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15107 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6f, 15108 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 15109 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 15110 0x6f, 0x6d, 0x54, 0x61, 0x67, 0x12, 0x34, 0x0a, 0x08, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, 15111 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15112 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 15113 0x00, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x42, 0x05, 0x0a, 0x03, 0x74, 15114 0x61, 0x67, 0x22, 0xf4, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 15115 0x61, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 15116 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15117 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 15118 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 15119 0x02, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x5e, 0x0a, 0x09, 0x71, 0x75, 0x61, 0x73, 15120 0x69, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 15121 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15122 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x54, 15123 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x51, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 15124 0x66, 0x69, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 15125 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x12, 0x52, 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x61, 15126 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 15127 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 15128 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 15129 0x6c, 0x64, 0x49, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 15130 0x69, 0x76, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x6b, 0x0a, 0x14, 15131 0x51, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 15132 0x69, 0x65, 0x6c, 0x64, 0x12, 0x34, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 15133 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15134 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 15135 0x64, 0x49, 0x64, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x75, 15136 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 15137 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x61, 0x67, 0x22, 0x86, 0x12, 0x0a, 0x0d, 0x50, 0x72, 15138 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x71, 0x0a, 0x16, 0x6e, 15139 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 15140 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 15141 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15142 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 15143 0x63, 0x2e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 15144 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x14, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 15145 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x77, 15146 0x0a, 0x18, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x74, 15147 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 15148 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15149 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 15150 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 15151 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 15152 0x16, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 15153 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x65, 0x0a, 0x12, 0x6b, 0x5f, 0x61, 0x6e, 0x6f, 15154 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 15155 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15156 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x76, 15157 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 15158 0x6d, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x10, 0x6b, 0x41, 15159 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x65, 15160 0x0a, 0x12, 0x6c, 0x5f, 0x64, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 15161 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 15162 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 15163 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 15164 0x2e, 0x4c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 15165 0x67, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x43, 15166 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x72, 0x0a, 0x17, 0x6b, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x65, 15167 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 15168 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15169 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 15170 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4b, 0x4d, 0x61, 15171 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 15172 0x67, 0x48, 0x00, 0x52, 0x14, 0x6b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 15173 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x8d, 0x01, 0x0a, 0x20, 0x64, 0x65, 15174 0x6c, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x65, 0x73, 0x74, 15175 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 15176 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 15177 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 15178 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x44, 0x65, 0x6c, 0x74, 0x61, 15179 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 15180 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x1d, 0x64, 0x65, 0x6c, 0x74, 15181 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 15182 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x4c, 0x0a, 0x14, 0x4e, 0x75, 0x6d, 15183 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 15184 0x67, 0x12, 0x34, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 15185 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15186 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 15187 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x1a, 0x4e, 0x0a, 0x16, 0x43, 0x61, 0x74, 0x65, 0x67, 15188 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 15189 0x67, 0x12, 0x34, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 15190 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15191 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 15192 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x1a, 0x8d, 0x01, 0x0a, 0x10, 0x4b, 0x41, 0x6e, 0x6f, 15193 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x0a, 0x09, 15194 0x71, 0x75, 0x61, 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 15195 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 15196 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 15197 0x08, 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x65, 0x6e, 0x74, 15198 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 15199 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 15200 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x52, 0x08, 0x65, 15201 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x1a, 0xa0, 0x01, 0x0a, 0x10, 0x4c, 0x44, 0x69, 0x76, 15202 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x0a, 0x09, 15203 0x71, 0x75, 0x61, 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 15204 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 15205 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 15206 0x08, 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x12, 0x4f, 0x0a, 0x13, 0x73, 0x65, 0x6e, 15207 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 15208 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15209 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 15210 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 15211 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x1a, 0x84, 0x07, 0x0a, 0x14, 0x4b, 15212 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 15213 0x66, 0x69, 0x67, 0x12, 0x67, 0x0a, 0x09, 0x71, 0x75, 0x61, 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 15214 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15215 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 15216 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4b, 0x4d, 0x61, 15217 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 15218 0x67, 0x2e, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x03, 0xe0, 15219 0x41, 0x02, 0x52, 0x08, 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 15220 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 15221 0x09, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x73, 0x0a, 15222 0x10, 0x61, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 15223 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15224 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15225 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4b, 0x4d, 15226 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 15227 0x69, 0x67, 0x2e, 0x41, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 15228 0x65, 0x52, 0x0f, 0x61, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 15229 0x65, 0x73, 0x1a, 0xe6, 0x01, 0x0a, 0x0b, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x46, 0x69, 0x65, 15230 0x6c, 0x64, 0x12, 0x39, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 15231 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 15232 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 15233 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x3e, 0x0a, 15234 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 15235 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15236 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 15237 0x65, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 15238 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 15239 0x09, 0x48, 0x00, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x61, 0x67, 0x12, 0x34, 15240 0x0a, 0x08, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 15241 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 15242 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x65, 15243 0x72, 0x72, 0x65, 0x64, 0x42, 0x05, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x1a, 0x83, 0x03, 0x0a, 0x0e, 15244 0x41, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 15245 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 15246 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15247 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 15248 0x62, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 15249 0x77, 0x0a, 0x09, 0x71, 0x75, 0x61, 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 15250 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 15251 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 15252 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 15253 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 15254 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x51, 0x75, 0x61, 15255 0x73, 0x69, 0x49, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 15256 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x12, 0x52, 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x61, 15257 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 15258 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 15259 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 15260 0x6c, 0x64, 0x49, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 15261 0x69, 0x76, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x63, 0x0a, 0x0c, 15262 0x51, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x34, 0x0a, 0x05, 15263 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 15264 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15265 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x05, 0x66, 0x69, 0x65, 15266 0x6c, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x61, 0x67, 15267 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x61, 15268 0x67, 0x1a, 0xd6, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 15269 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 15270 0x66, 0x69, 0x67, 0x12, 0x40, 0x0a, 0x09, 0x71, 0x75, 0x61, 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 15271 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15272 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x51, 15273 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x71, 0x75, 0x61, 15274 0x73, 0x69, 0x49, 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 15275 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 15276 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x52, 0x0a, 0x10, 0x61, 0x75, 0x78, 0x69, 0x6c, 0x69, 15277 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 15278 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15279 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 15280 0x69, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x0f, 0x61, 0x75, 0x78, 0x69, 0x6c, 15281 0x69, 0x61, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 15282 0x70, 0x65, 0x22, 0xff, 0x27, 0x0a, 0x1c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 15283 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 15284 0x69, 0x6c, 0x73, 0x12, 0x5e, 0x0a, 0x18, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 15285 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 15286 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15287 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 15288 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x16, 0x72, 0x65, 0x71, 15289 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 15290 0x72, 0x69, 0x63, 0x12, 0x5a, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 15291 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 15292 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15293 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x67, 0x51, 15294 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x14, 0x72, 0x65, 0x71, 0x75, 0x65, 15295 0x73, 0x74, 0x65, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 15296 0x80, 0x01, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x74, 15297 0x61, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 15298 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15299 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 15300 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 15301 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 15302 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x14, 0x6e, 0x75, 15303 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 15304 0x6c, 0x74, 0x12, 0x86, 0x01, 0x0a, 0x18, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 15305 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 15306 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15307 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 15308 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 15309 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 15310 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 15311 0x74, 0x48, 0x00, 0x52, 0x16, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 15312 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x74, 0x0a, 0x12, 0x6b, 15313 0x5f, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 15314 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15315 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15316 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 15317 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4b, 0x41, 0x6e, 15318 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 15319 0x10, 0x6b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 15320 0x74, 0x12, 0x74, 0x0a, 0x12, 0x6c, 0x5f, 0x64, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 15321 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 15322 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15323 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 15324 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 15325 0x6c, 0x73, 0x2e, 0x4c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 15326 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 15327 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x81, 0x01, 0x0a, 0x17, 0x6b, 0x5f, 0x6d, 0x61, 15328 0x70, 0x5f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 15329 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 15330 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 15331 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 15332 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4b, 15333 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 15334 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x14, 0x6b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 15335 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x9c, 0x01, 0x0a, 0x20, 15336 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x65, 15337 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 15338 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15339 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 15340 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 15341 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x74, 15342 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 15343 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x1d, 0x64, 0x65, 0x6c, 15344 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 15345 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x7d, 0x0a, 0x11, 0x72, 0x65, 15346 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 15347 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15348 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 15349 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 15350 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 15351 0x73, 0x74, 0x65, 0x64, 0x52, 0x69, 0x73, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 15352 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 15353 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xd3, 0x01, 0x0a, 0x14, 0x4e, 0x75, 15354 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 15355 0x6c, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 15356 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15357 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 15358 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 15359 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 15360 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15361 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 15362 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 15363 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 15364 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 15365 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 15366 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 15367 0x8d, 0x04, 0x0a, 0x16, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 15368 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0xb5, 0x01, 0x0a, 0x21, 0x76, 15369 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x68, 15370 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 15371 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x6a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15372 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 15373 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 15374 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x74, 0x65, 15375 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 15376 0x6c, 0x74, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 15377 0x61, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 15378 0x65, 0x74, 0x52, 0x1e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 15379 0x63, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 15380 0x74, 0x73, 0x1a, 0xba, 0x02, 0x0a, 0x1f, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 15381 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 15382 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x3d, 0x0a, 0x1b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 15383 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 15384 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x76, 0x61, 0x6c, 15385 0x75, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 15386 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x1b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 15387 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 15388 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x76, 0x61, 0x6c, 0x75, 15389 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x42, 15390 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 15391 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 15392 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x4a, 0x0a, 0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 15393 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 15394 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 15395 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 15396 0x6e, 0x63, 0x79, 0x52, 0x0c, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 15397 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 15398 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x62, 15399 0x75, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 15400 0xeb, 0x05, 0x0a, 0x10, 0x4b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, 0x65, 15401 0x73, 0x75, 0x6c, 0x74, 0x12, 0xad, 0x01, 0x0a, 0x23, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 15402 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 15403 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 15404 0x28, 0x0b, 0x32, 0x5e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 15405 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 15406 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 15407 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 15408 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 15409 0x69, 0x74, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 15410 0x65, 0x74, 0x52, 0x20, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x43, 15411 0x6c, 0x61, 0x73, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 15412 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x9a, 0x01, 0x0a, 0x1a, 0x4b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 15413 0x69, 0x74, 0x79, 0x45, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 15414 0x61, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x10, 0x71, 0x75, 0x61, 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 15415 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 15416 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15417 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x71, 0x75, 0x61, 15418 0x73, 0x69, 0x49, 0x64, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x65, 15419 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 15420 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x65, 0x71, 0x75, 15421 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x69, 0x7a, 15422 0x65, 0x1a, 0x89, 0x03, 0x0a, 0x19, 0x4b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 15423 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 15424 0x4a, 0x0a, 0x22, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 15425 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 15426 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x65, 0x71, 0x75, 15427 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x69, 0x7a, 15428 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x4a, 0x0a, 0x22, 0x65, 15429 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 15430 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 15431 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 15432 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x55, 0x70, 0x70, 15433 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 15434 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x75, 15435 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x0d, 0x62, 0x75, 0x63, 15436 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 15437 0x32, 0x5f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15438 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 15439 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 15440 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 15441 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 15442 0x79, 0x45, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 15443 0x73, 0x52, 0x0c, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 15444 0x2c, 0x0a, 0x12, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 15445 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x62, 0x75, 0x63, 15446 0x6b, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xa2, 0x07, 15447 0x0a, 0x10, 0x4c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 15448 0x6c, 0x74, 0x12, 0xbc, 0x01, 0x0a, 0x2b, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 15449 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 15450 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 15451 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 15452 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 15453 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 15454 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4c, 0x44, 15455 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4c, 15456 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 15457 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x27, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 15458 0x69, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 15459 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 15460 0x73, 0x1a, 0xb6, 0x02, 0x0a, 0x1a, 0x4c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 15461 0x45, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 15462 0x12, 0x46, 0x0a, 0x10, 0x71, 0x75, 0x61, 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 0x5f, 0x76, 0x61, 15463 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 15464 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 15465 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 15466 0x64, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x71, 0x75, 0x69, 15467 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x73, 0x69, 15468 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 15469 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x41, 15470 0x0a, 0x1d, 0x6e, 0x75, 0x6d, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x5f, 0x73, 15471 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 15472 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x6e, 0x75, 0x6d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 15473 0x63, 0x74, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 15474 0x73, 0x12, 0x57, 0x0a, 0x14, 0x74, 0x6f, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 15475 0x76, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 15476 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 15477 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x65, 15478 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x12, 0x74, 0x6f, 0x70, 0x53, 0x65, 0x6e, 0x73, 0x69, 15479 0x74, 0x69, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x95, 0x03, 0x0a, 0x19, 0x4c, 15480 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 15481 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x50, 0x0a, 0x25, 0x73, 0x65, 0x6e, 0x73, 15482 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 15483 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 15484 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x21, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 15485 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 15486 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x50, 0x0a, 0x25, 0x73, 0x65, 15487 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x72, 15488 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 15489 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x21, 0x73, 0x65, 0x6e, 0x73, 0x69, 15490 0x74, 0x69, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 15491 0x63, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 15492 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 15493 0x03, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x84, 0x01, 15494 0x0a, 0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 15495 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15496 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 15497 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 15498 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4c, 0x44, 0x69, 0x76, 0x65, 15499 0x72, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4c, 0x44, 0x69, 0x76, 15500 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x45, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 15501 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0c, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x61, 15502 0x6c, 0x75, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 15503 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 15504 0x52, 0x10, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 15505 0x6e, 0x74, 0x1a, 0x9c, 0x05, 0x0a, 0x14, 0x4b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 15506 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0xa3, 0x01, 0x0a, 0x1a, 15507 0x6b, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 15508 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 15509 0x32, 0x66, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15510 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 15511 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 15512 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 15513 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4b, 0x4d, 0x61, 0x70, 0x45, 15514 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 15515 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x17, 0x6b, 0x4d, 0x61, 0x70, 0x45, 0x73, 15516 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 15517 0x6d, 0x1a, 0x96, 0x01, 0x0a, 0x1b, 0x4b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 15518 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 15519 0x73, 0x12, 0x46, 0x0a, 0x10, 0x71, 0x75, 0x61, 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 0x5f, 0x76, 15520 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 15521 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15522 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x71, 0x75, 0x61, 0x73, 0x69, 15523 0x49, 0x64, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x65, 0x73, 0x74, 15524 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 15525 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 15526 0x64, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x1a, 0xc4, 0x02, 0x0a, 0x1d, 0x4b, 15527 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x73, 15528 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 15529 0x6d, 0x69, 0x6e, 0x5f, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 15530 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 15531 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 15532 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x41, 0x6e, 0x6f, 15533 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 15534 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x75, 0x63, 15535 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x0d, 0x62, 0x75, 0x63, 0x6b, 15536 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 15537 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 15538 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 15539 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 15540 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 15541 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4b, 0x4d, 0x61, 0x70, 0x45, 0x73, 15542 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x56, 15543 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x0c, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x61, 0x6c, 15544 0x75, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 15545 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 15546 0x10, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 15547 0x74, 0x1a, 0xf9, 0x05, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 15548 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 15549 0x75, 0x6c, 0x74, 0x12, 0xc7, 0x01, 0x0a, 0x23, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x70, 0x72, 15550 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 15551 0x6e, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 15552 0x0b, 0x32, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 15553 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 15554 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 15555 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 15556 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 15557 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 15558 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x73, 0x74, 15559 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x20, 0x64, 0x65, 0x6c, 15560 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 15561 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x1a, 0xa3, 0x01, 15562 0x0a, 0x24, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 15563 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 15564 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x10, 0x71, 0x75, 0x61, 0x73, 0x69, 0x5f, 15565 0x69, 0x64, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 15566 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15567 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 15568 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x33, 15569 0x0a, 0x15, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x62, 15570 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 15571 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 15572 0x69, 0x74, 0x79, 0x1a, 0xe7, 0x02, 0x0a, 0x26, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 15573 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 15574 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x27, 15575 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 15576 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x62, 15577 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x70, 15578 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 15579 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 15580 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 15581 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 15582 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 15583 0x75, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x76, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 15584 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 15585 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 15586 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x44, 15587 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 15588 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x44, 0x65, 0x6c, 15589 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 15590 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 15591 0x73, 0x52, 0x0c, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 15592 0x2c, 0x0a, 0x12, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 15593 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x62, 0x75, 0x63, 15594 0x6b, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x6b, 0x0a, 15595 0x1c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x69, 0x73, 0x6b, 0x41, 0x6e, 15596 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4b, 0x0a, 15597 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 15598 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 15599 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x69, 0x73, 0x6b, 0x41, 0x6e, 15600 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 15601 0x09, 0x6a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 15602 0x73, 0x75, 0x6c, 0x74, 0x22, 0x5a, 0x0a, 0x0e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x65, 15603 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 15604 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15605 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 15606 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 15607 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 15608 0x22, 0x9e, 0x03, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x69, 0x6e, 15609 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 15610 0x03, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 15611 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 15612 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x56, 15613 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 15614 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 15615 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 15616 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 15617 0x48, 0x00, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 15618 0x12, 0x45, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x76, 0x61, 15619 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 15620 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 15621 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 15622 0x6d, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 15623 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 15624 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 15625 0x44, 0x61, 0x79, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 15626 0x12, 0x32, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 15627 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 15628 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, 0x56, 15629 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x11, 0x64, 0x61, 0x79, 0x5f, 0x6f, 0x66, 0x5f, 0x77, 15630 0x65, 0x65, 0x6b, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 15631 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 15632 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x61, 0x79, 0x4f, 0x66, 15633 0x57, 0x65, 0x65, 0x6b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 15634 0x65, 0x22, 0x5b, 0x0a, 0x09, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 15635 0x0a, 0x09, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 15636 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 15637 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 15638 0x6d, 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0e, 15639 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x22, 0x8f, 15640 0x02, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x64, 15641 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 15642 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, 15643 0x74, 0x65, 0x12, 0x36, 0x0a, 0x0b, 0x64, 0x61, 0x79, 0x5f, 0x6f, 0x66, 0x5f, 0x77, 0x65, 0x65, 15644 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15645 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x52, 15646 0x09, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x69, 15647 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 15648 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x44, 0x61, 0x79, 15649 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 15650 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 15651 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 15652 0x32, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x5a, 15653 0x6f, 0x6e, 0x65, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x1a, 0x31, 0x0a, 15654 0x08, 0x54, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x66, 0x66, 15655 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 15656 0x05, 0x52, 0x0d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 15657 0x22, 0xf1, 0x02, 0x0a, 0x10, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 15658 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x6c, 0x0a, 0x19, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 15659 0x70, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 15660 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 15661 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 15662 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 15663 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x17, 0x69, 0x6e, 0x66, 0x6f, 15664 0x54, 0x79, 0x70, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 15665 0x6f, 0x6e, 0x73, 0x12, 0x65, 0x0a, 0x16, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x72, 15666 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 15667 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15668 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x6f, 15669 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 15670 0x73, 0x48, 0x00, 0x52, 0x15, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 15671 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x76, 0x0a, 0x1d, 0x74, 0x72, 15672 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 15673 0x6f, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 15674 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 15675 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 15676 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x61, 0x6e, 15677 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x1b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 15678 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x69, 15679 0x6e, 0x67, 0x42, 0x10, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 15680 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa5, 0x02, 0x0a, 0x1b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 15681 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x61, 0x6e, 0x64, 15682 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x60, 0x0a, 0x0b, 0x74, 0x68, 0x72, 0x6f, 0x77, 0x5f, 0x65, 0x72, 15683 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 15684 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 15685 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 15686 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x54, 0x68, 15687 0x72, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x6f, 15688 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x78, 0x0a, 0x13, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x5f, 15689 0x75, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x18, 0x02, 0x20, 15690 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15691 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 15692 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 15693 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x55, 0x6e, 0x74, 15694 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x65, 15695 0x61, 0x76, 0x65, 0x55, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 15696 0x1a, 0x0c, 0x0a, 0x0a, 0x54, 0x68, 0x72, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x14, 15697 0x0a, 0x12, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x55, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 15698 0x72, 0x6d, 0x65, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd6, 0x08, 0x0a, 15699 0x17, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 15700 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 15701 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 15702 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15703 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 15704 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0d, 0x72, 15705 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4a, 0x0a, 0x0d, 15706 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 15707 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15708 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x64, 0x61, 15709 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x61, 15710 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x60, 0x0a, 0x15, 0x63, 0x68, 0x61, 0x72, 15711 0x61, 0x63, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 15712 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15713 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15714 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 15715 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x13, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 15716 0x4d, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x74, 0x0a, 0x1d, 0x63, 0x72, 15717 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x66, 0x66, 0x78, 15718 0x5f, 0x66, 0x70, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 15719 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 15720 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 15721 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x46, 0x66, 0x78, 0x46, 0x70, 0x65, 0x43, 0x6f, 0x6e, 15722 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x19, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x52, 0x65, 0x70, 15723 0x6c, 0x61, 0x63, 0x65, 0x46, 0x66, 0x78, 0x46, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 15724 0x12, 0x70, 0x0a, 0x1b, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 15725 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 15726 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15727 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 15728 0x78, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 15729 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x18, 0x66, 0x69, 0x78, 0x65, 0x64, 0x53, 15730 0x69, 0x7a, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 15731 0x69, 0x67, 0x12, 0x53, 0x0a, 0x10, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 15732 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 15733 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 15734 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 15735 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x6e, 15736 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x74, 0x0a, 0x1d, 0x72, 0x65, 0x70, 0x6c, 0x61, 15737 0x63, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 15738 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 15739 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 15740 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x57, 0x69, 15741 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 15742 0x48, 0x00, 0x52, 0x19, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x57, 0x69, 0x74, 0x68, 0x49, 15743 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x51, 0x0a, 15744 0x10, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 15745 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15746 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15747 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 15748 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 15749 0x12, 0x57, 0x0a, 0x12, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 15750 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 15751 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 15752 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x43, 15753 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x10, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x48, 15754 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x54, 0x0a, 0x11, 0x64, 0x61, 0x74, 15755 0x65, 0x5f, 0x73, 0x68, 0x69, 0x66, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 15756 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 15757 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x61, 0x74, 15758 0x65, 0x53, 0x68, 0x69, 0x66, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0f, 15759 0x64, 0x61, 0x74, 0x65, 0x53, 0x68, 0x69, 0x66, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 15760 0x72, 0x0a, 0x1b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 15761 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0c, 15762 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 15763 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x79, 15764 0x70, 0x74, 0x6f, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 15765 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x19, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 15766 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 15767 0x66, 0x69, 0x67, 0x42, 0x10, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 15768 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xeb, 0x01, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 15769 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x56, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 15770 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 15771 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 15772 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 15773 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 15774 0x74, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x54, 0x6f, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 15775 0x22, 0x80, 0x01, 0x0a, 0x08, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x19, 0x0a, 15776 0x15, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 15777 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x59, 0x45, 0x41, 0x52, 15778 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x10, 0x02, 0x12, 0x10, 0x0a, 15779 0x0c, 0x44, 0x41, 0x59, 0x5f, 0x4f, 0x46, 0x5f, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x10, 0x03, 0x12, 15780 0x0f, 0x0a, 0x0b, 0x44, 0x41, 0x59, 0x5f, 0x4f, 0x46, 0x5f, 0x57, 0x45, 0x45, 0x4b, 0x10, 0x04, 15781 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x45, 0x45, 0x4b, 0x5f, 0x4f, 0x46, 0x5f, 0x59, 0x45, 0x41, 0x52, 15782 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x4f, 0x55, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x44, 0x41, 15783 0x59, 0x10, 0x06, 0x22, 0x53, 0x0a, 0x10, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x48, 0x61, 0x73, 15784 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3f, 0x0a, 0x0a, 0x63, 0x72, 0x79, 0x70, 0x74, 15785 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 15786 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15787 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x63, 15788 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x22, 0xe7, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x79, 15789 0x70, 0x74, 0x6f, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 15790 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3f, 0x0a, 0x0a, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 15791 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 15792 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 15793 0x76, 0x32, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x63, 0x72, 15794 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x4f, 0x0a, 0x13, 0x73, 0x75, 0x72, 0x72, 0x6f, 15795 0x67, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 15796 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 15797 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 15798 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x65, 15799 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 15800 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 15801 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 15802 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 15803 0x78, 0x74, 0x22, 0x4f, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x56, 0x61, 0x6c, 15804 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 15805 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 15806 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15807 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x56, 0x61, 15808 0x6c, 0x75, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x57, 0x69, 15809 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 15810 0x22, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 15811 0x22, 0xe2, 0x02, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x72, 0x73, 0x54, 0x6f, 0x49, 0x67, 0x6e, 0x6f, 15812 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 15813 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 15814 0x52, 0x10, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x53, 0x6b, 15815 0x69, 0x70, 0x12, 0x79, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 15816 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 15817 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15818 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15819 0x43, 0x68, 0x61, 0x72, 0x73, 0x54, 0x6f, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x2e, 0x43, 0x6f, 15820 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x73, 0x54, 0x6f, 0x49, 0x67, 0x6e, 0x6f, 0x72, 15821 0x65, 0x48, 0x00, 0x52, 0x18, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x61, 15822 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x22, 0x97, 0x01, 15823 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x73, 0x54, 0x6f, 0x49, 15824 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x22, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 15825 0x43, 0x48, 0x41, 0x52, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 15826 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 15827 0x07, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x4c, 15828 0x50, 0x48, 0x41, 0x5f, 0x55, 0x50, 0x50, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x02, 15829 0x12, 0x14, 0x0a, 0x10, 0x41, 0x4c, 0x50, 0x48, 0x41, 0x5f, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x5f, 15830 0x43, 0x41, 0x53, 0x45, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x55, 0x4e, 0x43, 0x54, 0x55, 15831 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x48, 0x49, 0x54, 0x45, 15832 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x05, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x61, 15833 0x63, 0x74, 0x65, 0x72, 0x73, 0x22, 0xe5, 0x01, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 15834 0x74, 0x65, 0x72, 0x4d, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2b, 0x0a, 15835 0x11, 0x6d, 0x61, 0x73, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 15836 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x61, 0x73, 0x6b, 0x69, 0x6e, 15837 0x67, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x75, 15838 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 15839 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x6f, 0x4d, 0x61, 0x73, 0x6b, 15840 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 15841 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 15842 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x14, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 15843 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 15844 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15845 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, 0x72, 15846 0x73, 0x54, 0x6f, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x12, 0x63, 0x68, 0x61, 0x72, 0x61, 15847 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x22, 0xc8, 0x01, 15848 0x0a, 0x18, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 15849 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x42, 0x0a, 0x0b, 0x6c, 0x6f, 15850 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 15851 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 15852 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 15853 0x41, 0x02, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x42, 15854 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 15855 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15856 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 15857 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 15858 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 15859 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x62, 0x75, 15860 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x95, 0x02, 0x0a, 0x0f, 0x42, 0x75, 0x63, 15861 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x47, 0x0a, 0x07, 15862 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 15863 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15864 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x43, 15865 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x07, 0x62, 0x75, 15866 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0xb8, 0x01, 0x0a, 0x06, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 15867 0x12, 0x2e, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 15868 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15869 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6d, 0x69, 0x6e, 15870 0x12, 0x2e, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 15871 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15872 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6d, 0x61, 0x78, 15873 0x12, 0x4e, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 15874 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 15875 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15876 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 15877 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 15878 0x22, 0xc7, 0x04, 0x0a, 0x19, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x61, 15879 0x63, 0x65, 0x46, 0x66, 0x78, 0x46, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x44, 15880 0x0a, 0x0a, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 15881 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 15882 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 15883 0x6f, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x72, 0x79, 0x70, 0x74, 15884 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 15885 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15886 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 15887 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x73, 15888 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 15889 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15890 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15891 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x46, 0x66, 0x78, 15892 0x46, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x46, 0x66, 0x78, 0x43, 0x6f, 0x6d, 15893 0x6d, 0x6f, 0x6e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 15894 0x74, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x6c, 0x70, 0x68, 0x61, 15895 0x62, 0x65, 0x74, 0x12, 0x29, 0x0a, 0x0f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x61, 0x6c, 15896 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 15897 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x12, 0x16, 15898 0x0a, 0x05, 0x72, 0x61, 0x64, 0x69, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 15899 0x05, 0x72, 0x61, 0x64, 0x69, 0x78, 0x12, 0x4f, 0x0a, 0x13, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x67, 15900 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 15901 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15902 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 15903 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x49, 15904 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x17, 0x46, 0x66, 0x78, 0x43, 15905 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6c, 0x70, 0x68, 0x61, 15906 0x62, 0x65, 0x74, 0x12, 0x2a, 0x0a, 0x26, 0x46, 0x46, 0x58, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 15907 0x4e, 0x5f, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x41, 0x4c, 0x50, 0x48, 0x41, 0x42, 0x45, 15908 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 15909 0x0b, 0x0a, 0x07, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 15910 0x48, 0x45, 0x58, 0x41, 0x44, 0x45, 0x43, 0x49, 0x4d, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x1c, 0x0a, 15911 0x18, 0x55, 0x50, 0x50, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x41, 0x4c, 0x50, 0x48, 15912 0x41, 0x5f, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x41, 15913 0x4c, 0x50, 0x48, 0x41, 0x5f, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 0x04, 0x42, 0x0a, 15914 0x0a, 0x08, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x22, 0xfa, 0x01, 0x0a, 0x09, 0x43, 15915 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x49, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 15916 0x73, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 15917 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15918 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x79, 15919 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 15920 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x75, 0x6e, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 15921 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15922 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x55, 15923 0x6e, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 15924 0x79, 0x48, 0x00, 0x52, 0x09, 0x75, 0x6e, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x12, 0x4d, 15925 0x0a, 0x0b, 0x6b, 0x6d, 0x73, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x18, 0x03, 0x20, 15926 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15927 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4b, 0x6d, 0x73, 0x57, 15928 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x48, 15929 0x00, 0x52, 0x0a, 0x6b, 0x6d, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x42, 0x08, 0x0a, 15930 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x2d, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 15931 0x69, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 15932 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 15933 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2b, 0x0a, 0x12, 0x55, 0x6e, 0x77, 0x72, 0x61, 0x70, 15934 0x70, 0x65, 0x64, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x15, 0x0a, 0x03, 15935 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 15936 0x6b, 0x65, 0x79, 0x22, 0x68, 0x0a, 0x13, 0x4b, 0x6d, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 15937 0x64, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x77, 0x72, 15938 0x61, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 15939 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x4b, 0x65, 0x79, 15940 0x12, 0x2b, 0x0a, 0x0f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 15941 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 15942 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xf6, 0x01, 15943 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x65, 0x53, 0x68, 0x69, 0x66, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 15944 0x67, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 15945 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 15946 0x52, 0x0e, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x79, 0x73, 15947 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 15948 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 15949 0x0e, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x79, 0x73, 0x12, 15950 0x38, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 15951 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15952 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 15953 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x41, 0x0a, 0x0a, 0x63, 0x72, 0x79, 15954 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 15955 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15956 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x48, 15957 0x00, 0x52, 0x09, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x42, 0x08, 0x0a, 0x06, 15958 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0xda, 0x02, 0x0a, 0x17, 0x49, 0x6e, 0x66, 0x6f, 0x54, 15959 0x79, 0x70, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 15960 0x6e, 0x73, 0x12, 0x74, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 15961 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 15962 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15963 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x54, 0x72, 0x61, 0x6e, 15964 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 15965 0x54, 0x79, 0x70, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 15966 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 15967 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xc8, 0x01, 0x0a, 0x16, 0x49, 0x6e, 0x66, 15968 0x6f, 0x54, 0x79, 0x70, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 15969 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0a, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 15970 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15971 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15972 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 15973 0x70, 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x18, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 15974 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 15975 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15976 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 15977 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 15978 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x17, 0x70, 0x72, 0x69, 0x6d, 15979 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 15980 0x69, 0x6f, 0x6e, 0x22, 0x85, 0x03, 0x0a, 0x13, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 15981 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x06, 0x66, 15982 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 15983 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15984 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 15985 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 15986 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 15987 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15988 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 15989 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 15990 0x0a, 0x18, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 15991 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 15992 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15993 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 15994 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 15995 0x48, 0x00, 0x52, 0x17, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 15996 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6c, 0x0a, 0x19, 0x69, 15997 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 15998 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 15999 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 16000 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x54, 16001 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 16002 0x52, 0x17, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 16003 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x74, 0x72, 0x61, 16004 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd3, 0x01, 0x0a, 0x15, 16005 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 16006 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5f, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 16007 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 16008 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 16009 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 16010 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16011 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 16012 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x59, 0x0a, 0x13, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 16013 0x5f, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 16014 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 16015 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x6f, 16016 0x72, 0x64, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x72, 16017 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 16018 0x73, 0x22, 0x59, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x70, 0x70, 0x72, 16019 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 16020 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16021 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 16022 0x32, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 16023 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xaa, 0x05, 0x0a, 16024 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 16025 0x12, 0x54, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 16026 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16027 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 16028 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 16029 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 16030 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xc6, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69, 16031 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 16032 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 16033 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 16034 0x64, 0x49, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 16035 0x4a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 16036 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 16037 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 16038 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 16039 0x02, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x76, 16040 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 16041 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 16042 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 16043 0x5e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x50, 0x0a, 16044 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 16045 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 16046 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 16047 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 16048 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 16049 0x97, 0x02, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 16050 0x6d, 0x0a, 0x10, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 16051 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16052 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 16053 0x32, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 16054 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x6f, 16055 0x67, 0x69, 0x63, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0f, 0x6c, 16056 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x53, 16057 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 16058 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 16059 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 16060 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 16061 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 16062 0x6f, 0x6e, 0x73, 0x22, 0x3c, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x4f, 0x70, 16063 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x41, 16064 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 16065 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x44, 0x10, 16066 0x01, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x16, 0x54, 0x72, 16067 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 16068 0x76, 0x69, 0x65, 0x77, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 16069 0x6d, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 16070 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 16071 0x73, 0x12, 0x67, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 16072 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 16073 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 16074 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 16075 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 16076 0x79, 0x52, 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 16077 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x22, 0x97, 0x06, 0x0a, 0x15, 0x54, 16078 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 16079 0x6d, 0x61, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 16080 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16081 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 16082 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 16083 0x70, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 16084 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 16085 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 16086 0x64, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x56, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 16087 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 16088 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16089 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 16090 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16091 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16092 0x12, 0x5f, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 16093 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 16094 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 16095 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 16096 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x66, 0x69, 0x65, 16097 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16098 0x73, 0x12, 0x51, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x75, 0x70, 0x70, 16099 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 16100 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 16101 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 16102 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x70, 0x70, 16103 0x72, 0x65, 0x73, 0x73, 0x12, 0x54, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 16104 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16105 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 16106 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 16107 0x61, 0x72, 0x79, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 16108 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 16109 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 16110 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 16111 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x9a, 0x01, 0x0a, 0x0d, 0x53, 0x75, 0x6d, 0x6d, 16112 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 16113 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 16114 0x59, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 16115 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 16116 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 16117 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x54, 0x72, 0x61, 0x6e, 16118 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 16119 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 16120 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 16121 0x61, 0x69, 0x6c, 0x73, 0x22, 0x5e, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 16122 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 16123 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x49, 16124 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 16125 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 16126 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 16127 0x4f, 0x52, 0x10, 0x02, 0x22, 0x6f, 0x0a, 0x08, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 16128 0x12, 0x59, 0x0a, 0x1a, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x70, 16129 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 16130 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 16131 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 16132 0x00, 0x52, 0x18, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 16133 0x69, 0x6f, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x6f, 16134 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x08, 0x0a, 0x06, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x22, 16135 0x89, 0x05, 0x0a, 0x0f, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 16136 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 16137 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 16138 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 16139 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 16140 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 16141 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 16142 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 16143 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 16144 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 16145 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 16146 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 16147 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16148 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 16149 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 16150 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 16151 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 16152 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 16153 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 16154 0x66, 0x69, 0x67, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 16155 0x69, 0x67, 0x3a, 0xc6, 0x02, 0xea, 0x41, 0xc2, 0x02, 0x0a, 0x22, 0x64, 0x6c, 0x70, 0x2e, 0x67, 16156 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 16157 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x40, 0x6f, 16158 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 16159 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 16160 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 16161 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 0x12, 16162 0x36, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 16163 0x63, 0x74, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 16164 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 16165 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 0x12, 0x55, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 16166 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 16167 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 16168 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 16169 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 16170 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 0x12, 0x4b, 16171 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 16172 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 16173 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 16174 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 16175 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 0x22, 0xb0, 0x05, 0x0a, 0x12, 16176 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 16177 0x74, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 16178 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 16179 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 16180 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 16181 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 16182 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 16183 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 16184 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16185 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 16186 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 16187 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 16188 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16189 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 16190 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 16191 0x54, 0x69, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x11, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 16192 0x66, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 16193 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 16194 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 16195 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 16196 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0xe1, 0x02, 0xea, 0x41, 0xdd, 16197 0x02, 0x0a, 0x25, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 16198 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 16199 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x46, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 16200 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 16201 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 16202 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x69, 0x64, 16203 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 16204 0x12, 0x3c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 16205 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 16206 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 16207 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 0x12, 0x5b, 16208 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 16209 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 16210 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16211 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 16212 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 16213 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 0x12, 0x51, 0x70, 0x72, 0x6f, 16214 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 16215 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 16216 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 16217 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 16218 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 0x22, 0x71, 16219 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2c, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 16220 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16221 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x07, 0x64, 0x65, 16222 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3a, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 16223 0x6d, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16224 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 16225 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 16226 0x73, 0x22, 0xba, 0x07, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 16227 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 16228 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 16229 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 16230 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 16231 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 16232 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 16233 0x70, 0x65, 0x63, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 16234 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 16235 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4a, 0x6f, 16236 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x70, 0x65, 16237 0x63, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x45, 0x0a, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 16238 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16239 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 16240 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 16241 0x65, 0x72, 0x52, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x06, 16242 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 16243 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 16244 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 16245 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 16246 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 16247 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 16248 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 16249 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 16250 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 16251 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 16252 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 16253 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x6c, 16254 0x61, 0x73, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 16255 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 16256 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 16257 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 16258 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 16259 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16260 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 16261 0x67, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 16262 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x8c, 0x01, 0x0a, 0x07, 0x54, 0x72, 0x69, 0x67, 16263 0x67, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 16264 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16265 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 16266 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 16267 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 16268 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 16269 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x61, 0x6e, 0x75, 0x61, 16270 0x6c, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x74, 16271 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x22, 0x48, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 16272 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 16273 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x48, 0x45, 0x41, 0x4c, 16274 0x54, 0x48, 0x59, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 16275 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x03, 16276 0x3a, 0x94, 0x01, 0xea, 0x41, 0x90, 0x01, 0x0a, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 16277 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x54, 16278 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x2c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 16279 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 16280 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x72, 0x69, 0x67, 16281 0x67, 0x65, 0x72, 0x7d, 0x12, 0x41, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 16282 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 16283 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6a, 0x6f, 16284 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 16285 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x7d, 0x42, 0x05, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0x86, 16286 0x07, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x0d, 0x73, 0x61, 0x76, 16287 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 16288 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16289 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 16290 0x53, 0x61, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x00, 0x52, 0x0c, 16291 0x73, 0x61, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x07, 16292 0x70, 0x75, 0x62, 0x5f, 0x73, 0x75, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 16293 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 16294 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x75, 0x62, 16295 0x6c, 0x69, 0x73, 0x68, 0x54, 0x6f, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, 0x48, 0x00, 0x52, 0x06, 16296 0x70, 0x75, 0x62, 0x53, 0x75, 0x62, 0x12, 0x6b, 0x0a, 0x17, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 16297 0x68, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x73, 0x63, 16298 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16299 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 16300 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x53, 0x75, 16301 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x6f, 0x43, 0x73, 0x63, 0x63, 0x48, 0x00, 0x52, 0x14, 0x70, 16302 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x6f, 0x43, 16303 0x73, 0x63, 0x63, 0x12, 0x94, 0x01, 0x0a, 0x26, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 16304 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 16305 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x05, 16306 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 16307 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 16308 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x46, 0x69, 0x6e, 0x64, 0x69, 16309 0x6e, 0x67, 0x73, 0x54, 0x6f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x43, 0x61, 16310 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x21, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 16311 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x54, 0x6f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x44, 16312 0x61, 0x74, 0x61, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x6d, 0x0a, 0x17, 0x6a, 0x6f, 16313 0x62, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 16314 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 16315 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 16316 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4a, 0x6f, 0x62, 0x4e, 0x6f, 16317 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x73, 16318 0x48, 0x00, 0x52, 0x15, 0x6a, 0x6f, 0x62, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 16319 0x69, 0x6f, 0x6e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x6a, 0x0a, 0x16, 0x70, 0x75, 0x62, 16320 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 16321 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16322 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 16323 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 16324 0x54, 0x6f, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x48, 0x00, 0x52, 16325 0x14, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x64, 16326 0x72, 0x69, 0x76, 0x65, 0x72, 0x1a, 0x5f, 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x46, 0x69, 0x6e, 16327 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 16328 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 16329 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 16330 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 16331 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 16332 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x27, 0x0a, 0x0f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 16333 0x68, 0x54, 0x6f, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 16334 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x1a, 16335 0x16, 0x0a, 0x14, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 16336 0x79, 0x54, 0x6f, 0x43, 0x73, 0x63, 0x63, 0x1a, 0x23, 0x0a, 0x21, 0x50, 0x75, 0x62, 0x6c, 0x69, 16337 0x73, 0x68, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x54, 0x6f, 0x43, 0x6c, 0x6f, 0x75, 16338 0x64, 0x44, 0x61, 0x74, 0x61, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x1a, 0x17, 0x0a, 0x15, 16339 0x4a, 0x6f, 0x62, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 16340 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x16, 0x0a, 0x14, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 16341 0x54, 0x6f, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x42, 0x08, 0x0a, 16342 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xfc, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 16343 0x74, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 16344 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 16345 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 16346 0x12, 0x22, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 16347 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 16348 0x6c, 0x61, 0x74, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x10, 16349 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 16350 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 16351 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 16352 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x03, 16353 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 16354 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 16355 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 16356 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 16357 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 16358 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xee, 0x01, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 16359 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 16360 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 16361 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 16362 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 16363 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 16364 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x70, 0x65, 16365 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 16366 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 16367 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 16368 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x69, 0x6e, 0x73, 0x70, 0x65, 16369 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 16370 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 16371 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 16372 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 16373 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x5b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x6e, 16374 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 16375 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 16376 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x6c, 0x70, 0x2e, 16377 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 16378 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 16379 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 16380 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 16381 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 16382 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x6c, 16383 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 16384 0x2f, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 16385 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 16386 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 16387 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 16388 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 16389 0x53, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 16390 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 16391 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 16392 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 16393 0x22, 0x9b, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 16394 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 16395 0x65, 0x12, 0x53, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 16396 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 16397 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 16398 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 16399 0x6c, 0x61, 0x74, 0x65, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 16400 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 16401 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 16402 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x5e, 16403 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 16404 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 16405 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 16406 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16407 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 16408 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe1, 16409 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 16410 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x61, 16411 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 16412 0x41, 0x1f, 0x12, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 16413 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 16414 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 16415 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 16416 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 16417 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 16418 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 16419 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 16420 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x49, 16421 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 16422 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16423 0x49, 0x64, 0x22, 0x56, 0x0a, 0x19, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4a, 0x6f, 16424 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 16425 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 16426 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16427 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 16428 0x67, 0x67, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd5, 0x01, 0x0a, 0x17, 0x55, 16429 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 16430 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 16431 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x64, 0x6c, 16432 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 16433 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 16434 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 16435 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 16436 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 16437 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x54, 0x72, 16438 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 16439 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 16440 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 16441 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 16442 0x73, 0x6b, 0x22, 0x51, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 16443 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 16444 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 16445 0x0a, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 16446 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 16447 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa6, 0x02, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 16448 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 16449 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xe0, 16450 0x41, 0x02, 0xfa, 0x41, 0x1b, 0x12, 0x19, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16451 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 16452 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x70, 16453 0x65, 0x63, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 16454 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 16455 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4a, 0x6f, 0x62, 16456 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 16457 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x49, 0x0a, 0x08, 0x72, 0x69, 0x73, 0x6b, 0x5f, 0x6a, 0x6f, 0x62, 16458 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 16459 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 16460 0x69, 0x73, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 16461 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x07, 0x72, 0x69, 0x73, 0x6b, 0x4a, 0x6f, 0x62, 0x12, 16462 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 16463 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 16464 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 16465 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x42, 0x05, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0xe7, 16466 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 16467 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x61, 0x72, 16468 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 16469 0x1f, 0x12, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 16470 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 16471 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 16472 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 16473 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 16474 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 16475 0x53, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 16476 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 16477 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 16478 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 16479 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 16480 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x87, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 16481 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 16482 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x72, 0x69, 0x67, 16483 0x67, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 16484 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 16485 0x76, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x0b, 0x6a, 16486 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 16487 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 16488 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 16489 0x65, 0x6e, 0x22, 0x54, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x54, 16490 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 16491 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 16492 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 16493 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 16494 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x99, 0x02, 0x0a, 0x10, 0x49, 0x6e, 0x73, 16495 0x70, 0x65, 0x63, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4b, 0x0a, 16496 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 16497 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16498 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 16499 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x73, 0x74, 0x6f, 16500 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x6e, 16501 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 16502 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 16503 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 16504 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 16505 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x73, 0x70, 0x65, 16506 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 16507 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 16508 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x61, 16509 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 16510 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 16511 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, 0x63, 0x74, 16512 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xd3, 0x06, 0x0a, 0x06, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x12, 16513 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 16514 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 16515 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 16516 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 16517 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x73, 0x74, 16518 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16519 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 16520 0x32, 0x2e, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 16521 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x58, 0x0a, 0x0c, 0x72, 0x69, 0x73, 0x6b, 16522 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 16523 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 16524 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 16525 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 16526 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 16527 0x6c, 0x73, 0x12, 0x5a, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x65, 16528 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 16529 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 16530 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 16531 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0e, 16532 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3b, 16533 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 16534 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 16535 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 16536 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 16537 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 16538 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 16539 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 16540 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 16541 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16542 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 16543 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 16544 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 16545 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 16546 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 16547 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16548 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 16549 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x6f, 0x0a, 16550 0x08, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x42, 16551 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 16552 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 16553 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x08, 16554 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x41, 0x4e, 0x43, 16555 0x45, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 16556 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x06, 0x3a, 0x7f, 16557 0xea, 0x41, 0x7c, 0x0a, 0x19, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 16558 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x12, 0x24, 16559 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 16560 0x74, 0x7d, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x64, 0x6c, 0x70, 0x5f, 16561 0x6a, 0x6f, 0x62, 0x7d, 0x12, 0x39, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 16562 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 16563 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x6c, 16564 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x64, 0x6c, 0x70, 0x5f, 0x6a, 0x6f, 0x62, 0x7d, 0x42, 16565 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x49, 0x0a, 0x10, 0x47, 0x65, 16566 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 16567 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xe0, 0x41, 16568 0x02, 0xfa, 0x41, 0x1b, 0x0a, 0x19, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16569 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 16570 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x96, 0x02, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6c, 16571 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x06, 16572 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xe0, 0x41, 16573 0x02, 0xfa, 0x41, 0x1b, 0x12, 0x19, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16574 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 16575 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 16576 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 16577 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 16578 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 16579 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 16580 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x35, 0x0a, 0x04, 0x74, 16581 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16582 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 16583 0x32, 0x2e, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 16584 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x06, 16585 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x1f, 0x0a, 16586 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 16587 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x70, 16588 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 16589 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 16590 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 16591 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6c, 0x70, 0x4a, 16592 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 16593 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 16594 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 16595 0x22, 0x4c, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 16596 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 16597 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1b, 0x0a, 0x19, 0x64, 16598 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 16599 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4c, 16600 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 16601 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 16602 0x01, 0x28, 0x09, 0x42, 0x21, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1b, 0x0a, 0x19, 0x64, 0x6c, 0x70, 16603 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 16604 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4c, 0x0a, 0x13, 16605 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 16606 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 16607 0x09, 0x42, 0x21, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1b, 0x0a, 0x19, 0x64, 0x6c, 0x70, 0x2e, 0x67, 16608 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 16609 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8b, 0x02, 0x0a, 0x1f, 0x43, 16610 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 16611 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 16612 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 16613 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x12, 0x25, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16614 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x69, 0x64, 0x65, 16615 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x06, 0x70, 16616 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x5f, 0x0a, 0x13, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 16617 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 16618 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 16619 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 16620 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 16621 0x41, 0x02, 0x52, 0x12, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 16622 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 16623 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x65, 0x6d, 16624 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 16625 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 16626 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xfd, 0x01, 0x0a, 0x1f, 0x55, 0x70, 0x64, 16627 0x61, 0x74, 0x65, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 16628 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 16629 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 16630 0x41, 0x27, 0x0a, 0x25, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 16631 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 16632 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 16633 0x5a, 0x0a, 0x13, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 16634 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 16635 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 16636 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 16637 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x12, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 16638 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 16639 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 16640 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 16641 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 16642 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x61, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x44, 16643 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 16644 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 16645 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 16646 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 16647 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 16648 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x1e, 16649 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 16650 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 16651 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 16652 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x12, 0x25, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16653 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x69, 0x64, 0x65, 16654 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x06, 0x70, 16655 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 16656 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 16657 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 16658 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 16659 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 16660 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 16661 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 16662 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xa7, 0x01, 16663 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 16664 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 16665 0x65, 0x12, 0x5c, 0x0a, 0x14, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 16666 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 16667 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 16668 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 16669 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x13, 0x64, 0x65, 0x69, 0x64, 16670 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 16671 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 16672 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 16673 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x64, 0x0a, 0x1f, 0x44, 0x65, 0x6c, 0x65, 0x74, 16674 0x65, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 16675 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 16676 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 16677 0x0a, 0x25, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 16678 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 16679 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa4, 0x02, 16680 0x0a, 0x1b, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x63, 16681 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x48, 0x0a, 16682 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 16683 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 16684 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 16685 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0a, 0x6f, 0x75, 0x74, 16686 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x61, 0x0a, 0x16, 0x63, 0x6c, 0x6f, 0x75, 0x64, 16687 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x65, 16688 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16689 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 16690 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, 16691 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x13, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x74, 0x6f, 0x72, 16692 0x61, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 0x4e, 0x0a, 0x0f, 0x62, 0x69, 16693 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x03, 0x20, 16694 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 16695 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x67, 0x51, 16696 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x62, 0x69, 0x67, 16697 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 16698 0x75, 0x72, 0x63, 0x65, 0x22, 0x4a, 0x0a, 0x1a, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x43, 0x75, 0x73, 16699 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 16700 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 16701 0x5f, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 16702 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x4e, 0x75, 0x6d, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x73, 16703 0x22, 0xea, 0x02, 0x0a, 0x14, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 16704 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 16705 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 16706 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 16707 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 16708 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6c, 16709 0x0a, 0x17, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x64, 16710 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 16711 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 16712 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x43, 0x75, 0x73, 16713 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 16714 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x15, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x43, 0x75, 0x73, 0x74, 16715 0x6f, 0x6d, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x52, 0x0a, 0x0a, 16716 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 16717 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16718 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 16719 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 16720 0x72, 0x79, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 16721 0x12, 0x43, 0x0a, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 16722 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 16723 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x6e, 16724 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x48, 0x00, 0x52, 0x05, 16725 0x72, 0x65, 0x67, 0x65, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x8a, 0x01, 16726 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 16727 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x6b, 0x0a, 0x17, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x63, 16728 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 16729 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 16730 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 16731 0x61, 0x72, 0x67, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 16732 0x6e, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x00, 0x52, 0x15, 0x6c, 0x61, 0x72, 16733 0x67, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 16734 0x72, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xd3, 0x02, 0x0a, 0x15, 0x53, 16735 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x56, 0x65, 0x72, 16736 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 16737 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 16738 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 16739 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 16740 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 16741 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 16742 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 16743 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 16744 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 16745 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16746 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 16747 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 16748 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 16749 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16750 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 16751 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x40, 16752 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 16753 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 16754 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 16755 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 16756 0x22, 0x98, 0x04, 0x0a, 0x0e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 16757 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 16758 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x55, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 16759 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 16760 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16761 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 16762 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 16763 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x57, 16764 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 16765 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16766 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 16767 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x56, 16768 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 16769 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0xc1, 0x02, 0xea, 0x41, 0xbd, 0x02, 0x0a, 0x21, 16770 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 16771 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 16772 0x65, 0x12, 0x3f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 16773 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 16774 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 16775 0x7b, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 16776 0x65, 0x7d, 0x12, 0x35, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 16777 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 16778 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x69, 16779 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x12, 0x54, 0x6f, 0x72, 0x67, 0x61, 0x6e, 16780 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 16781 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16782 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 16783 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x74, 16784 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x12, 16785 0x4a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 16786 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 16787 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 16788 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 16789 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x22, 0xfa, 0x01, 0x0a, 0x1b, 16790 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 16791 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 16792 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 16793 0xfa, 0x41, 0x23, 0x12, 0x21, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 16794 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 16795 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x48, 16796 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 16797 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 16798 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 16799 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 16800 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x74, 0x6f, 0x72, 16801 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 16802 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 16803 0x6f, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 16804 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 16805 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xde, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 16806 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 16807 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 16808 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 16809 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 16810 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 16811 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 16812 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16813 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 16814 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 16815 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x0a, 0x0b, 16816 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 16817 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 16818 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 16819 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x59, 0x0a, 0x18, 0x47, 0x65, 0x74, 16820 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 16821 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 16822 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x64, 0x6c, 0x70, 16823 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 16824 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 16825 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd7, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 16826 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 16827 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 16828 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x12, 0x21, 0x64, 0x6c, 0x70, 16829 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 16830 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 16831 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 16832 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 16833 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 16834 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 16835 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 16836 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x1f, 0x0a, 16837 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 16838 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x98, 16839 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 16840 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 16841 0x0a, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 16842 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16843 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 16844 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 16845 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 16846 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 16847 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 16848 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x5c, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 16849 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 16850 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 16851 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 16852 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 16853 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 16854 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x1e, 0x48, 0x79, 0x62, 0x72, 16855 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 16856 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 16857 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 16858 0x0a, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 16859 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 16860 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x0b, 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 0x5f, 16861 0x69, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 16862 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 16863 0x76, 0x32, 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 16864 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0a, 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x74, 0x65, 0x6d, 16865 0x22, 0x9e, 0x01, 0x0a, 0x1a, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 16866 0x63, 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 16867 0x35, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xe0, 16868 0x41, 0x02, 0xfa, 0x41, 0x1b, 0x0a, 0x19, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16869 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 16870 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x0b, 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 16871 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 16872 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 16873 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 16874 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0a, 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x74, 0x65, 16875 0x6d, 0x22, 0xa1, 0x01, 0x0a, 0x11, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x43, 0x6f, 0x6e, 0x74, 16876 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x36, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 16877 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16878 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 16879 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 16880 0x54, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 16881 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16882 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 16883 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 16884 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 16885 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xfb, 0x02, 0x0a, 0x14, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 16886 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4d, 16887 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x74, 0x61, 16888 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16889 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 16890 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x10, 0x63, 0x6f, 0x6e, 16891 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 16892 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 16893 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1d, 16894 0x0a, 0x0a, 0x72, 0x6f, 0x77, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 16895 0x28, 0x03, 0x52, 0x09, 0x72, 0x6f, 0x77, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x48, 0x0a, 16896 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 16897 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 16898 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x62, 16899 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 16900 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 16901 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16902 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 16903 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 16904 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 16905 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 16906 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 16907 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 16908 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 16909 0x02, 0x38, 0x01, 0x22, 0x17, 0x0a, 0x15, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 16910 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0xbb, 0x01, 0x0a, 16911 0x12, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 16912 0x74, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 16913 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 16914 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x51, 0x55, 0x41, 16915 0x4c, 0x5f, 0x54, 0x4f, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 16916 0x55, 0x41, 0x4c, 0x5f, 0x54, 0x4f, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x52, 0x45, 0x41, 16917 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x45, 16918 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x47, 0x52, 0x45, 16919 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 16920 0x41, 0x4c, 0x53, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 16921 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, 0x06, 0x12, 0x0a, 16922 0x0a, 0x06, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x07, 0x2a, 0x8d, 0x01, 0x0a, 0x0c, 0x4d, 16923 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x4d, 16924 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 16925 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x41, 16926 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 16927 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x41, 0x54, 0x43, 16928 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 16929 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x41, 0x54, 16930 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x45, 0x52, 16931 0x53, 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x03, 0x2a, 0x4d, 0x0a, 0x0d, 0x43, 0x6f, 16932 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x13, 0x43, 16933 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 16934 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 16935 0x54, 0x45, 0x58, 0x54, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 16936 0x54, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x02, 0x2a, 0x42, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 16937 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x54, 16938 0x41, 0x44, 0x41, 0x54, 0x41, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 16939 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x4f, 0x52, 0x41, 16940 0x47, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, 0x02, 0x2a, 0x50, 0x0a, 16941 0x13, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 16942 0x65, 0x64, 0x42, 0x79, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x54, 0x59, 0x50, 16943 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 16944 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x54, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 16945 0x52, 0x49, 0x53, 0x4b, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x10, 0x02, 0x2a, 16946 0x52, 0x0a, 0x0a, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 16947 0x18, 0x44, 0x4c, 0x50, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 16948 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 16949 0x4e, 0x53, 0x50, 0x45, 0x43, 0x54, 0x5f, 0x4a, 0x4f, 0x42, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 16950 0x52, 0x49, 0x53, 0x4b, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x4a, 0x4f, 16951 0x42, 0x10, 0x02, 0x2a, 0x6e, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 16952 0x6f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x54, 16953 0x4f, 0x52, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 16954 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 16955 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 16956 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 16957 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 16958 0x44, 0x10, 0x04, 0x32, 0xc3, 0x49, 0x0a, 0x0a, 0x44, 0x6c, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 16959 0x63, 0x65, 0x12, 0xdb, 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 16960 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16961 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 16962 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 16963 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 16964 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 16965 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 16966 0x73, 0x65, 0x22, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x66, 0x22, 0x27, 0x2f, 0x76, 0x32, 0x2f, 16967 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 16968 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x69, 0x6e, 0x73, 0x70, 16969 0x65, 0x63, 0x74, 0x3a, 0x01, 0x2a, 0x5a, 0x38, 0x22, 0x33, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 16970 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 16971 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 16972 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x3a, 0x01, 0x2a, 16973 0x12, 0xcc, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 16974 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16975 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x49, 16976 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x6f, 16977 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 16978 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 16979 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x22, 16980 0x24, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 16981 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x72, 16982 0x65, 0x64, 0x61, 0x63, 0x74, 0x3a, 0x01, 0x2a, 0x5a, 0x35, 0x22, 0x30, 0x2f, 0x76, 0x32, 0x2f, 16983 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 16984 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 16985 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x3a, 0x01, 0x2a, 0x12, 16986 0xea, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 16987 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16988 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 16989 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 16990 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 16991 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 16992 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 16993 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x72, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 16994 0x22, 0x2a, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 16995 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 16996 0x74, 0x3a, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x5a, 16997 0x3b, 0x22, 0x36, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 16998 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 16999 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x64, 17000 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0xea, 0x01, 0x0a, 17001 0x11, 0x52, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 17002 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 17003 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x69, 0x64, 0x65, 17004 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 17005 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 17006 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x69, 0x64, 17007 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 17008 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x72, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x22, 0x2a, 0x2f, 17009 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 17010 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x72, 17011 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x5a, 0x3b, 0x22, 0x36, 17012 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 17013 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 17014 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x72, 0x65, 0x69, 0x64, 17015 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0xb0, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 17016 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 17017 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 17018 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 17019 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 17020 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 17021 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 17022 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x0d, 17023 0x2f, 0x76, 0x32, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x5a, 0x24, 0x12, 17024 0x22, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6c, 0x6f, 0x63, 17025 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 17026 0x70, 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xf4, 0x02, 0x0a, 17027 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 17028 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 17029 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 17030 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 17031 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 17032 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 17033 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 17034 0x61, 0x74, 0x65, 0x22, 0xfd, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xdc, 0x01, 0x22, 0x2d, 0x2f, 17035 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 17036 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 17037 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 17038 0x3e, 0x22, 0x39, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 17039 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 17040 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 17041 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 17042 0x2d, 0x22, 0x28, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 17043 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 17044 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x39, 17045 0x22, 0x34, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 17046 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 17047 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 17048 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x17, 0x70, 0x61, 0x72, 0x65, 17049 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 17050 0x61, 0x74, 0x65, 0x12, 0xfe, 0x02, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 17051 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x33, 0x2e, 17052 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 17053 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x70, 17054 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 17055 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 17056 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 17057 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x87, 0x02, 0x82, 0xd3, 0xe4, 17058 0x93, 0x02, 0xdc, 0x01, 0x32, 0x2d, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 17059 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 17060 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 17061 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x3e, 0x32, 0x39, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 17062 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 17063 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 17064 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 17065 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x2d, 0x32, 0x28, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 17066 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 17067 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 17068 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x39, 0x32, 0x34, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 17069 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 17070 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 17071 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 17072 0xda, 0x41, 0x21, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 17073 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 17074 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xcf, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x70, 17075 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x67, 0x6f, 17076 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 17077 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 17078 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 17079 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 17080 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 17081 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xde, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xd0, 0x01, 0x12, 17082 0x2d, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 17083 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 17084 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x3b, 17085 0x12, 0x39, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 17086 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 17087 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 17088 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x2a, 0x12, 0x28, 0x2f, 17089 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 17090 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 17091 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x36, 0x12, 0x34, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 17092 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 17093 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x70, 17094 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 17095 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe2, 0x02, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x49, 17096 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 17097 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 17098 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x70, 17099 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 17100 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 17101 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 17102 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 17103 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe0, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 17104 0xd0, 0x01, 0x12, 0x2d, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 17105 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 17106 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 17107 0x73, 0x5a, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 17108 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 17109 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 17110 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x5a, 0x2a, 17111 0x12, 0x28, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 17112 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 17113 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x5a, 0x36, 0x12, 0x34, 0x2f, 0x76, 17114 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 17115 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 17116 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 17117 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xc5, 0x02, 0x0a, 0x15, 17118 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 17119 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 17120 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 17121 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 17122 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 17123 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 17124 0x74, 0x79, 0x22, 0xde, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xd0, 0x01, 0x2a, 0x2d, 0x2f, 0x76, 17125 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 17126 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 17127 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x3b, 0x2a, 0x39, 0x2f, 17128 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 17129 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 17130 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 17131 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x2a, 0x2a, 0x28, 0x2f, 0x76, 0x32, 0x2f, 17132 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 17133 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 17134 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x36, 0x2a, 0x34, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 17135 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 17136 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 17137 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 17138 0x61, 0x6d, 0x65, 0x12, 0x8c, 0x03, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 17139 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 17140 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 17141 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 17142 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 17143 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 17144 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 17145 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 17146 0x61, 0x74, 0x65, 0x22, 0x8c, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xe8, 0x01, 0x22, 0x30, 0x2f, 17147 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 17148 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 17149 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x3a, 17150 0x01, 0x2a, 0x5a, 0x41, 0x22, 0x3c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 17151 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 17152 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 17153 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 17154 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x30, 0x22, 0x2b, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 17155 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 17156 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 17157 0x61, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x3c, 0x22, 0x37, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 17158 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 17159 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 17160 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 17161 0x65, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x1a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, 17162 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 17163 0x74, 0x65, 0x12, 0x96, 0x03, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x69, 17164 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 17165 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 17166 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 17167 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 17168 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 17169 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 17170 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 17171 0x74, 0x65, 0x22, 0x96, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xe8, 0x01, 0x32, 0x30, 0x2f, 0x76, 17172 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 17173 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 17174 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 17175 0x2a, 0x5a, 0x41, 0x32, 0x3c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 17176 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 17177 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 17178 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 17179 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x30, 0x32, 0x2b, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 17180 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x69, 17181 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 17182 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x3c, 0x32, 0x37, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 17183 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 17184 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 17185 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 17186 0x7d, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x24, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x64, 0x65, 0x69, 0x64, 17187 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2c, 17188 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xe4, 0x02, 0x0a, 0x15, 17189 0x47, 0x65, 0x74, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 17190 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 17191 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 17192 0x74, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 17193 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 17194 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 17195 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 17196 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xea, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xdc, 0x01, 0x12, 17197 0x30, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 17198 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 17199 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 17200 0x7d, 0x5a, 0x3e, 0x12, 0x3c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 17201 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 17202 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 17203 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 17204 0x7d, 0x5a, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 17205 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 17206 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 17207 0x5a, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 17208 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 17209 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 17210 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 17211 0x6d, 0x65, 0x12, 0xf7, 0x02, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x69, 0x64, 0x65, 17212 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x35, 17213 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 17214 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x69, 0x64, 0x65, 17215 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 17216 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 17217 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 17218 0x73, 0x74, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 17219 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xec, 0x01, 17220 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xdc, 0x01, 0x12, 0x30, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 17221 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 17222 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 17223 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x5a, 0x3e, 0x12, 0x3c, 0x2f, 0x76, 0x32, 17224 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 17225 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 17226 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 17227 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x5a, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x32, 17228 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 17229 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 17230 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x5a, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x32, 0x2f, 17231 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 17232 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 17233 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 17234 0x74, 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xd7, 0x02, 0x0a, 17235 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 17236 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 17237 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 17238 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 17239 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 17240 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 17241 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xea, 0x01, 0x82, 0xd3, 0xe4, 0x93, 17242 0x02, 0xdc, 0x01, 0x2a, 0x30, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 17243 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 17244 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 17245 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x3e, 0x2a, 0x3c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 17246 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 17247 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 17248 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 17249 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x2d, 0x2a, 0x2b, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 17250 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 17251 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 17252 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x39, 0x2a, 0x37, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 17253 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 17254 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 17255 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 17256 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe0, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 17257 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 17258 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 17259 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 17260 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6f, 17261 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 17262 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x22, 0x79, 17263 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x22, 0x23, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 17264 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 17265 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x34, 17266 0x22, 0x2f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 17267 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 17268 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 17269 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x12, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6a, 0x6f, 17270 0x62, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0xeb, 0x01, 0x0a, 0x10, 0x55, 0x70, 17271 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x2e, 17272 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 17273 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 17274 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 17275 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 17276 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 17277 0x72, 0x22, 0x83, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x32, 0x23, 0x2f, 0x76, 0x32, 0x2f, 17278 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 17279 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 17280 0x01, 0x2a, 0x5a, 0x34, 0x32, 0x2f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 17281 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 17282 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 17283 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x1c, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 17284 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2c, 0x75, 0x70, 0x64, 0x61, 17285 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xcf, 0x01, 0x0a, 0x17, 0x48, 0x79, 0x62, 0x72, 17286 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 17287 0x67, 0x65, 0x72, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 17288 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x79, 0x62, 0x72, 17289 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 17290 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 17291 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 17292 0x76, 0x32, 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 17293 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 17294 0x22, 0x3d, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 17295 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 17296 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x2a, 17297 0x7d, 0x3a, 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x3a, 17298 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xc6, 0x01, 0x0a, 0x0d, 0x47, 0x65, 17299 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 17300 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 17301 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 17302 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 17303 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 17304 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x22, 0x65, 0x82, 0xd3, 0xe4, 17305 0x93, 0x02, 0x58, 0x12, 0x23, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 17306 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 17307 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x32, 0x2f, 17308 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 17309 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 17310 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 17311 0x6d, 0x65, 0x12, 0xd9, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 17312 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 17313 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 17314 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 17315 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 17316 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 17317 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 17318 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x58, 0x12, 0x23, 0x2f, 17319 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 17320 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 17321 0x72, 0x73, 0x5a, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 17322 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 17323 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 17324 0x67, 0x67, 0x65, 0x72, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xc1, 17325 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 17326 0x67, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 17327 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 17328 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 17329 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 17330 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x65, 0x82, 0xd3, 0xe4, 17331 0x93, 0x02, 0x58, 0x2a, 0x23, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 17332 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 17333 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x31, 0x2a, 0x2f, 0x2f, 0x76, 0x32, 0x2f, 17334 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 17335 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 17336 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 17337 0x6d, 0x65, 0x12, 0xdd, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4a, 17338 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 17339 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 17340 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 17341 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 17342 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 17343 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x22, 0x76, 0x82, 0xd3, 0xe4, 0x93, 17344 0x02, 0x70, 0x22, 0x2c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 17345 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 17346 0x67, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 17347 0x3a, 0x01, 0x2a, 0x5a, 0x3d, 0x22, 0x38, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 17348 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 17349 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 17350 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 17351 0x01, 0x2a, 0x12, 0xdf, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6c, 0x70, 17352 0x4a, 0x6f, 0x62, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 17353 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 17354 0x74, 0x65, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 17355 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 17356 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x22, 0x83, 17357 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x22, 0x1f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 17358 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 17359 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x30, 0x22, 0x2b, 0x2f, 17360 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 17361 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 17362 0x2a, 0x7d, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x12, 17363 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x6a, 17364 0x6f, 0x62, 0xda, 0x41, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x72, 0x69, 0x73, 0x6b, 17365 0x5f, 0x6a, 0x6f, 0x62, 0x12, 0xc5, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6c, 0x70, 17366 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 17367 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 17368 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 17369 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 17370 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6c, 0x70, 0x4a, 17371 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5f, 0x82, 0xd3, 0xe4, 17372 0x93, 0x02, 0x50, 0x12, 0x1f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 17373 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6c, 0x70, 17374 0x4a, 0x6f, 0x62, 0x73, 0x5a, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 17375 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 17376 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 17377 0x6f, 0x62, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xb2, 0x01, 0x0a, 17378 0x09, 0x47, 0x65, 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 17379 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 17380 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 17381 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 17382 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6c, 0x70, 0x4a, 17383 0x6f, 0x62, 0x22, 0x5d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x12, 0x1f, 0x2f, 0x76, 0x32, 0x2f, 17384 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 17385 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x2d, 0x12, 0x2b, 0x2f, 17386 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 17387 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 17388 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 17389 0x65, 0x12, 0xb1, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6c, 0x70, 0x4a, 17390 0x6f, 0x62, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 17391 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 17392 0x65, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 17393 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 17394 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x5d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x2a, 0x1f, 17395 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 17396 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 17397 0x2d, 0x2a, 0x2b, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 17398 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 17399 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 17400 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xbe, 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 17401 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 17402 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 17403 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 17404 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 17405 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x6a, 0x82, 0xd3, 0xe4, 0x93, 17406 0x02, 0x64, 0x22, 0x26, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 17407 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 17408 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x3a, 0x01, 0x2a, 0x5a, 0x37, 0x22, 17409 0x32, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 17410 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 17411 0x2a, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 17412 0x63, 0x65, 0x6c, 0x3a, 0x01, 0x2a, 0x12, 0xe3, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 17413 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 17414 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 17415 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 17416 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 17417 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 17418 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 17419 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x22, 0xef, 0x01, 0x82, 0xd3, 0xe4, 17420 0x93, 0x02, 0xd8, 0x01, 0x22, 0x2c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 17421 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 17422 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 17423 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x3d, 0x22, 0x38, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 17424 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 17425 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 17426 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 17427 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x2c, 0x22, 0x27, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 17428 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 17429 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x3a, 17430 0x01, 0x2a, 0x5a, 0x38, 0x22, 0x33, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 17431 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 17432 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 17433 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x0d, 0x70, 17434 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0xed, 0x02, 0x0a, 17435 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 17436 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 17437 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 17438 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 17439 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 17440 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 17441 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 17442 0x22, 0xf9, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xd8, 0x01, 0x32, 0x2c, 0x2f, 0x76, 0x32, 0x2f, 17443 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 17444 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 17445 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x3d, 0x32, 0x38, 0x2f, 17446 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 17447 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 17448 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 17449 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x2c, 0x32, 0x27, 0x2f, 0x76, 17450 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 17451 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 17452 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x38, 0x32, 0x33, 0x2f, 0x76, 0x32, 0x2f, 17453 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 17454 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 17455 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 17456 0x01, 0x2a, 0xda, 0x41, 0x17, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 17457 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xc8, 0x02, 0x0a, 17458 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 17459 0x70, 0x65, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 17460 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 17461 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 17462 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 17463 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 17464 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x22, 0xda, 0x01, 0x82, 0xd3, 0xe4, 17465 0x93, 0x02, 0xcc, 0x01, 0x12, 0x2c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 17466 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 17467 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 17468 0x2a, 0x7d, 0x5a, 0x3a, 0x12, 0x38, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 17469 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 17470 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 17471 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x29, 17472 0x12, 0x27, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 17473 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 17474 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x35, 0x12, 0x33, 0x2f, 0x76, 0x32, 17475 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 17476 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 17477 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 17478 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xdb, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 17479 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 17480 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 17481 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 17482 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 17483 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 17484 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 17485 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 17486 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdc, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xcc, 0x01, 17487 0x12, 0x2c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 17488 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 17489 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x5a, 0x3a, 17490 0x12, 0x38, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 17491 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 17492 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 17493 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x5a, 0x29, 0x12, 0x27, 0x2f, 0x76, 17494 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 17495 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 17496 0x54, 0x79, 0x70, 0x65, 0x73, 0x5a, 0x35, 0x12, 0x33, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 17497 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 17498 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 17499 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, 17500 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xbf, 0x02, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 17501 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 17502 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 17503 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 17504 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 17505 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 17506 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xda, 0x01, 0x82, 0xd3, 0xe4, 17507 0x93, 0x02, 0xcc, 0x01, 0x2a, 0x2c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 17508 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 17509 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 17510 0x2a, 0x7d, 0x5a, 0x3a, 0x2a, 0x38, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 17511 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 17512 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 17513 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x29, 17514 0x2a, 0x27, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 17515 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 17516 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x35, 0x2a, 0x33, 0x2f, 0x76, 0x32, 17517 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 17518 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 17519 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 17520 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xc3, 0x01, 0x0a, 0x13, 0x48, 0x79, 0x62, 0x72, 17521 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x12, 17522 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 17523 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 17524 0x73, 0x70, 0x65, 0x63, 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 17525 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 17526 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 17527 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 17528 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x22, 0x39, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 17529 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 17530 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 17531 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 17532 0x65, 0x63, 0x74, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x91, 0x01, 17533 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x12, 0x2a, 17534 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 17535 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x44, 0x6c, 0x70, 17536 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 17537 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 17538 0x74, 0x79, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x22, 0x32, 0x2f, 0x76, 0x32, 0x2f, 17539 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 17540 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6c, 0x70, 17541 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x3a, 0x01, 17542 0x2a, 0x1a, 0x46, 0xca, 0x41, 0x12, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 17543 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 17544 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 17545 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 17546 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xfa, 0x02, 0x0a, 0x19, 0x63, 0x6f, 17547 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 17548 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x42, 0x08, 0x44, 0x6c, 0x70, 0x50, 0x72, 0x6f, 0x74, 17549 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 17550 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 17551 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 17552 0x63, 0x79, 0x2f, 0x64, 0x6c, 0x70, 0x2f, 0x76, 0x32, 0x3b, 0x64, 0x6c, 0x70, 0xaa, 0x02, 0x13, 17553 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x44, 0x6c, 0x70, 17554 0x2e, 0x56, 0x32, 0xca, 0x02, 0x13, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 17555 0x75, 0x64, 0x5c, 0x44, 0x6c, 0x70, 0x5c, 0x56, 0x32, 0xea, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 17556 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x44, 0x6c, 0x70, 0x3a, 0x3a, 17557 0x56, 0x32, 0xea, 0x41, 0x72, 0x0a, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 17558 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x43, 0x6f, 0x6e, 17559 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 17560 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x64, 0x6c, 0x70, 0x43, 0x6f, 0x6e, 0x74, 17561 0x65, 0x6e, 0x74, 0x12, 0x32, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 17562 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 17563 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x6c, 0x70, 17564 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0xea, 0x41, 0x5c, 0x0a, 0x27, 0x64, 0x6c, 0x70, 0x2e, 17565 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4f, 17566 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 17567 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 17568 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 17569 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 17570 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 17571} 17572 17573var ( 17574 file_google_privacy_dlp_v2_dlp_proto_rawDescOnce sync.Once 17575 file_google_privacy_dlp_v2_dlp_proto_rawDescData = file_google_privacy_dlp_v2_dlp_proto_rawDesc 17576) 17577 17578func file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP() []byte { 17579 file_google_privacy_dlp_v2_dlp_proto_rawDescOnce.Do(func() { 17580 file_google_privacy_dlp_v2_dlp_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_privacy_dlp_v2_dlp_proto_rawDescData) 17581 }) 17582 return file_google_privacy_dlp_v2_dlp_proto_rawDescData 17583} 17584 17585var file_google_privacy_dlp_v2_dlp_proto_enumTypes = make([]protoimpl.EnumInfo, 16) 17586var file_google_privacy_dlp_v2_dlp_proto_msgTypes = make([]protoimpl.MessageInfo, 174) 17587var file_google_privacy_dlp_v2_dlp_proto_goTypes = []interface{}{ 17588 (RelationalOperator)(0), // 0: google.privacy.dlp.v2.RelationalOperator 17589 (MatchingType)(0), // 1: google.privacy.dlp.v2.MatchingType 17590 (ContentOption)(0), // 2: google.privacy.dlp.v2.ContentOption 17591 (MetadataType)(0), // 3: google.privacy.dlp.v2.MetadataType 17592 (InfoTypeSupportedBy)(0), // 4: google.privacy.dlp.v2.InfoTypeSupportedBy 17593 (DlpJobType)(0), // 5: google.privacy.dlp.v2.DlpJobType 17594 (StoredInfoTypeState)(0), // 6: google.privacy.dlp.v2.StoredInfoTypeState 17595 (ByteContentItem_BytesType)(0), // 7: google.privacy.dlp.v2.ByteContentItem.BytesType 17596 (OutputStorageConfig_OutputSchema)(0), // 8: google.privacy.dlp.v2.OutputStorageConfig.OutputSchema 17597 (TimePartConfig_TimePart)(0), // 9: google.privacy.dlp.v2.TimePartConfig.TimePart 17598 (CharsToIgnore_CommonCharsToIgnore)(0), // 10: google.privacy.dlp.v2.CharsToIgnore.CommonCharsToIgnore 17599 (CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet)(0), // 11: google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet 17600 (RecordCondition_Expressions_LogicalOperator)(0), // 12: google.privacy.dlp.v2.RecordCondition.Expressions.LogicalOperator 17601 (TransformationSummary_TransformationResultCode)(0), // 13: google.privacy.dlp.v2.TransformationSummary.TransformationResultCode 17602 (JobTrigger_Status)(0), // 14: google.privacy.dlp.v2.JobTrigger.Status 17603 (DlpJob_JobState)(0), // 15: google.privacy.dlp.v2.DlpJob.JobState 17604 (*ExcludeInfoTypes)(nil), // 16: google.privacy.dlp.v2.ExcludeInfoTypes 17605 (*ExclusionRule)(nil), // 17: google.privacy.dlp.v2.ExclusionRule 17606 (*InspectionRule)(nil), // 18: google.privacy.dlp.v2.InspectionRule 17607 (*InspectionRuleSet)(nil), // 19: google.privacy.dlp.v2.InspectionRuleSet 17608 (*InspectConfig)(nil), // 20: google.privacy.dlp.v2.InspectConfig 17609 (*ByteContentItem)(nil), // 21: google.privacy.dlp.v2.ByteContentItem 17610 (*ContentItem)(nil), // 22: google.privacy.dlp.v2.ContentItem 17611 (*Table)(nil), // 23: google.privacy.dlp.v2.Table 17612 (*InspectResult)(nil), // 24: google.privacy.dlp.v2.InspectResult 17613 (*Finding)(nil), // 25: google.privacy.dlp.v2.Finding 17614 (*Location)(nil), // 26: google.privacy.dlp.v2.Location 17615 (*ContentLocation)(nil), // 27: google.privacy.dlp.v2.ContentLocation 17616 (*MetadataLocation)(nil), // 28: google.privacy.dlp.v2.MetadataLocation 17617 (*StorageMetadataLabel)(nil), // 29: google.privacy.dlp.v2.StorageMetadataLabel 17618 (*DocumentLocation)(nil), // 30: google.privacy.dlp.v2.DocumentLocation 17619 (*RecordLocation)(nil), // 31: google.privacy.dlp.v2.RecordLocation 17620 (*TableLocation)(nil), // 32: google.privacy.dlp.v2.TableLocation 17621 (*Container)(nil), // 33: google.privacy.dlp.v2.Container 17622 (*Range)(nil), // 34: google.privacy.dlp.v2.Range 17623 (*ImageLocation)(nil), // 35: google.privacy.dlp.v2.ImageLocation 17624 (*BoundingBox)(nil), // 36: google.privacy.dlp.v2.BoundingBox 17625 (*RedactImageRequest)(nil), // 37: google.privacy.dlp.v2.RedactImageRequest 17626 (*Color)(nil), // 38: google.privacy.dlp.v2.Color 17627 (*RedactImageResponse)(nil), // 39: google.privacy.dlp.v2.RedactImageResponse 17628 (*DeidentifyContentRequest)(nil), // 40: google.privacy.dlp.v2.DeidentifyContentRequest 17629 (*DeidentifyContentResponse)(nil), // 41: google.privacy.dlp.v2.DeidentifyContentResponse 17630 (*ReidentifyContentRequest)(nil), // 42: google.privacy.dlp.v2.ReidentifyContentRequest 17631 (*ReidentifyContentResponse)(nil), // 43: google.privacy.dlp.v2.ReidentifyContentResponse 17632 (*InspectContentRequest)(nil), // 44: google.privacy.dlp.v2.InspectContentRequest 17633 (*InspectContentResponse)(nil), // 45: google.privacy.dlp.v2.InspectContentResponse 17634 (*OutputStorageConfig)(nil), // 46: google.privacy.dlp.v2.OutputStorageConfig 17635 (*InfoTypeStats)(nil), // 47: google.privacy.dlp.v2.InfoTypeStats 17636 (*InspectDataSourceDetails)(nil), // 48: google.privacy.dlp.v2.InspectDataSourceDetails 17637 (*HybridInspectStatistics)(nil), // 49: google.privacy.dlp.v2.HybridInspectStatistics 17638 (*InfoTypeDescription)(nil), // 50: google.privacy.dlp.v2.InfoTypeDescription 17639 (*ListInfoTypesRequest)(nil), // 51: google.privacy.dlp.v2.ListInfoTypesRequest 17640 (*ListInfoTypesResponse)(nil), // 52: google.privacy.dlp.v2.ListInfoTypesResponse 17641 (*RiskAnalysisJobConfig)(nil), // 53: google.privacy.dlp.v2.RiskAnalysisJobConfig 17642 (*QuasiId)(nil), // 54: google.privacy.dlp.v2.QuasiId 17643 (*StatisticalTable)(nil), // 55: google.privacy.dlp.v2.StatisticalTable 17644 (*PrivacyMetric)(nil), // 56: google.privacy.dlp.v2.PrivacyMetric 17645 (*AnalyzeDataSourceRiskDetails)(nil), // 57: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails 17646 (*ValueFrequency)(nil), // 58: google.privacy.dlp.v2.ValueFrequency 17647 (*Value)(nil), // 59: google.privacy.dlp.v2.Value 17648 (*QuoteInfo)(nil), // 60: google.privacy.dlp.v2.QuoteInfo 17649 (*DateTime)(nil), // 61: google.privacy.dlp.v2.DateTime 17650 (*DeidentifyConfig)(nil), // 62: google.privacy.dlp.v2.DeidentifyConfig 17651 (*TransformationErrorHandling)(nil), // 63: google.privacy.dlp.v2.TransformationErrorHandling 17652 (*PrimitiveTransformation)(nil), // 64: google.privacy.dlp.v2.PrimitiveTransformation 17653 (*TimePartConfig)(nil), // 65: google.privacy.dlp.v2.TimePartConfig 17654 (*CryptoHashConfig)(nil), // 66: google.privacy.dlp.v2.CryptoHashConfig 17655 (*CryptoDeterministicConfig)(nil), // 67: google.privacy.dlp.v2.CryptoDeterministicConfig 17656 (*ReplaceValueConfig)(nil), // 68: google.privacy.dlp.v2.ReplaceValueConfig 17657 (*ReplaceWithInfoTypeConfig)(nil), // 69: google.privacy.dlp.v2.ReplaceWithInfoTypeConfig 17658 (*RedactConfig)(nil), // 70: google.privacy.dlp.v2.RedactConfig 17659 (*CharsToIgnore)(nil), // 71: google.privacy.dlp.v2.CharsToIgnore 17660 (*CharacterMaskConfig)(nil), // 72: google.privacy.dlp.v2.CharacterMaskConfig 17661 (*FixedSizeBucketingConfig)(nil), // 73: google.privacy.dlp.v2.FixedSizeBucketingConfig 17662 (*BucketingConfig)(nil), // 74: google.privacy.dlp.v2.BucketingConfig 17663 (*CryptoReplaceFfxFpeConfig)(nil), // 75: google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig 17664 (*CryptoKey)(nil), // 76: google.privacy.dlp.v2.CryptoKey 17665 (*TransientCryptoKey)(nil), // 77: google.privacy.dlp.v2.TransientCryptoKey 17666 (*UnwrappedCryptoKey)(nil), // 78: google.privacy.dlp.v2.UnwrappedCryptoKey 17667 (*KmsWrappedCryptoKey)(nil), // 79: google.privacy.dlp.v2.KmsWrappedCryptoKey 17668 (*DateShiftConfig)(nil), // 80: google.privacy.dlp.v2.DateShiftConfig 17669 (*InfoTypeTransformations)(nil), // 81: google.privacy.dlp.v2.InfoTypeTransformations 17670 (*FieldTransformation)(nil), // 82: google.privacy.dlp.v2.FieldTransformation 17671 (*RecordTransformations)(nil), // 83: google.privacy.dlp.v2.RecordTransformations 17672 (*RecordSuppression)(nil), // 84: google.privacy.dlp.v2.RecordSuppression 17673 (*RecordCondition)(nil), // 85: google.privacy.dlp.v2.RecordCondition 17674 (*TransformationOverview)(nil), // 86: google.privacy.dlp.v2.TransformationOverview 17675 (*TransformationSummary)(nil), // 87: google.privacy.dlp.v2.TransformationSummary 17676 (*Schedule)(nil), // 88: google.privacy.dlp.v2.Schedule 17677 (*Manual)(nil), // 89: google.privacy.dlp.v2.Manual 17678 (*InspectTemplate)(nil), // 90: google.privacy.dlp.v2.InspectTemplate 17679 (*DeidentifyTemplate)(nil), // 91: google.privacy.dlp.v2.DeidentifyTemplate 17680 (*Error)(nil), // 92: google.privacy.dlp.v2.Error 17681 (*JobTrigger)(nil), // 93: google.privacy.dlp.v2.JobTrigger 17682 (*Action)(nil), // 94: google.privacy.dlp.v2.Action 17683 (*CreateInspectTemplateRequest)(nil), // 95: google.privacy.dlp.v2.CreateInspectTemplateRequest 17684 (*UpdateInspectTemplateRequest)(nil), // 96: google.privacy.dlp.v2.UpdateInspectTemplateRequest 17685 (*GetInspectTemplateRequest)(nil), // 97: google.privacy.dlp.v2.GetInspectTemplateRequest 17686 (*ListInspectTemplatesRequest)(nil), // 98: google.privacy.dlp.v2.ListInspectTemplatesRequest 17687 (*ListInspectTemplatesResponse)(nil), // 99: google.privacy.dlp.v2.ListInspectTemplatesResponse 17688 (*DeleteInspectTemplateRequest)(nil), // 100: google.privacy.dlp.v2.DeleteInspectTemplateRequest 17689 (*CreateJobTriggerRequest)(nil), // 101: google.privacy.dlp.v2.CreateJobTriggerRequest 17690 (*ActivateJobTriggerRequest)(nil), // 102: google.privacy.dlp.v2.ActivateJobTriggerRequest 17691 (*UpdateJobTriggerRequest)(nil), // 103: google.privacy.dlp.v2.UpdateJobTriggerRequest 17692 (*GetJobTriggerRequest)(nil), // 104: google.privacy.dlp.v2.GetJobTriggerRequest 17693 (*CreateDlpJobRequest)(nil), // 105: google.privacy.dlp.v2.CreateDlpJobRequest 17694 (*ListJobTriggersRequest)(nil), // 106: google.privacy.dlp.v2.ListJobTriggersRequest 17695 (*ListJobTriggersResponse)(nil), // 107: google.privacy.dlp.v2.ListJobTriggersResponse 17696 (*DeleteJobTriggerRequest)(nil), // 108: google.privacy.dlp.v2.DeleteJobTriggerRequest 17697 (*InspectJobConfig)(nil), // 109: google.privacy.dlp.v2.InspectJobConfig 17698 (*DlpJob)(nil), // 110: google.privacy.dlp.v2.DlpJob 17699 (*GetDlpJobRequest)(nil), // 111: google.privacy.dlp.v2.GetDlpJobRequest 17700 (*ListDlpJobsRequest)(nil), // 112: google.privacy.dlp.v2.ListDlpJobsRequest 17701 (*ListDlpJobsResponse)(nil), // 113: google.privacy.dlp.v2.ListDlpJobsResponse 17702 (*CancelDlpJobRequest)(nil), // 114: google.privacy.dlp.v2.CancelDlpJobRequest 17703 (*FinishDlpJobRequest)(nil), // 115: google.privacy.dlp.v2.FinishDlpJobRequest 17704 (*DeleteDlpJobRequest)(nil), // 116: google.privacy.dlp.v2.DeleteDlpJobRequest 17705 (*CreateDeidentifyTemplateRequest)(nil), // 117: google.privacy.dlp.v2.CreateDeidentifyTemplateRequest 17706 (*UpdateDeidentifyTemplateRequest)(nil), // 118: google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest 17707 (*GetDeidentifyTemplateRequest)(nil), // 119: google.privacy.dlp.v2.GetDeidentifyTemplateRequest 17708 (*ListDeidentifyTemplatesRequest)(nil), // 120: google.privacy.dlp.v2.ListDeidentifyTemplatesRequest 17709 (*ListDeidentifyTemplatesResponse)(nil), // 121: google.privacy.dlp.v2.ListDeidentifyTemplatesResponse 17710 (*DeleteDeidentifyTemplateRequest)(nil), // 122: google.privacy.dlp.v2.DeleteDeidentifyTemplateRequest 17711 (*LargeCustomDictionaryConfig)(nil), // 123: google.privacy.dlp.v2.LargeCustomDictionaryConfig 17712 (*LargeCustomDictionaryStats)(nil), // 124: google.privacy.dlp.v2.LargeCustomDictionaryStats 17713 (*StoredInfoTypeConfig)(nil), // 125: google.privacy.dlp.v2.StoredInfoTypeConfig 17714 (*StoredInfoTypeStats)(nil), // 126: google.privacy.dlp.v2.StoredInfoTypeStats 17715 (*StoredInfoTypeVersion)(nil), // 127: google.privacy.dlp.v2.StoredInfoTypeVersion 17716 (*StoredInfoType)(nil), // 128: google.privacy.dlp.v2.StoredInfoType 17717 (*CreateStoredInfoTypeRequest)(nil), // 129: google.privacy.dlp.v2.CreateStoredInfoTypeRequest 17718 (*UpdateStoredInfoTypeRequest)(nil), // 130: google.privacy.dlp.v2.UpdateStoredInfoTypeRequest 17719 (*GetStoredInfoTypeRequest)(nil), // 131: google.privacy.dlp.v2.GetStoredInfoTypeRequest 17720 (*ListStoredInfoTypesRequest)(nil), // 132: google.privacy.dlp.v2.ListStoredInfoTypesRequest 17721 (*ListStoredInfoTypesResponse)(nil), // 133: google.privacy.dlp.v2.ListStoredInfoTypesResponse 17722 (*DeleteStoredInfoTypeRequest)(nil), // 134: google.privacy.dlp.v2.DeleteStoredInfoTypeRequest 17723 (*HybridInspectJobTriggerRequest)(nil), // 135: google.privacy.dlp.v2.HybridInspectJobTriggerRequest 17724 (*HybridInspectDlpJobRequest)(nil), // 136: google.privacy.dlp.v2.HybridInspectDlpJobRequest 17725 (*HybridContentItem)(nil), // 137: google.privacy.dlp.v2.HybridContentItem 17726 (*HybridFindingDetails)(nil), // 138: google.privacy.dlp.v2.HybridFindingDetails 17727 (*HybridInspectResponse)(nil), // 139: google.privacy.dlp.v2.HybridInspectResponse 17728 (*InspectConfig_FindingLimits)(nil), // 140: google.privacy.dlp.v2.InspectConfig.FindingLimits 17729 (*InspectConfig_FindingLimits_InfoTypeLimit)(nil), // 141: google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit 17730 (*Table_Row)(nil), // 142: google.privacy.dlp.v2.Table.Row 17731 nil, // 143: google.privacy.dlp.v2.Finding.LabelsEntry 17732 (*RedactImageRequest_ImageRedactionConfig)(nil), // 144: google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig 17733 (*InspectDataSourceDetails_RequestedOptions)(nil), // 145: google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions 17734 (*InspectDataSourceDetails_Result)(nil), // 146: google.privacy.dlp.v2.InspectDataSourceDetails.Result 17735 (*StatisticalTable_QuasiIdentifierField)(nil), // 147: google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField 17736 (*PrivacyMetric_NumericalStatsConfig)(nil), // 148: google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig 17737 (*PrivacyMetric_CategoricalStatsConfig)(nil), // 149: google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig 17738 (*PrivacyMetric_KAnonymityConfig)(nil), // 150: google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig 17739 (*PrivacyMetric_LDiversityConfig)(nil), // 151: google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig 17740 (*PrivacyMetric_KMapEstimationConfig)(nil), // 152: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig 17741 (*PrivacyMetric_DeltaPresenceEstimationConfig)(nil), // 153: google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig 17742 (*PrivacyMetric_KMapEstimationConfig_TaggedField)(nil), // 154: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField 17743 (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable)(nil), // 155: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable 17744 (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField)(nil), // 156: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField 17745 (*AnalyzeDataSourceRiskDetails_NumericalStatsResult)(nil), // 157: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult 17746 (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult)(nil), // 158: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult 17747 (*AnalyzeDataSourceRiskDetails_KAnonymityResult)(nil), // 159: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult 17748 (*AnalyzeDataSourceRiskDetails_LDiversityResult)(nil), // 160: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult 17749 (*AnalyzeDataSourceRiskDetails_KMapEstimationResult)(nil), // 161: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult 17750 (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult)(nil), // 162: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult 17751 (*AnalyzeDataSourceRiskDetails_RequestedRiskAnalysisOptions)(nil), // 163: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.RequestedRiskAnalysisOptions 17752 (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket)(nil), // 164: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket 17753 (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass)(nil), // 165: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass 17754 (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket)(nil), // 166: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket 17755 (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass)(nil), // 167: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass 17756 (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket)(nil), // 168: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket 17757 (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues)(nil), // 169: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues 17758 (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket)(nil), // 170: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket 17759 (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues)(nil), // 171: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues 17760 (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket)(nil), // 172: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket 17761 (*DateTime_TimeZone)(nil), // 173: google.privacy.dlp.v2.DateTime.TimeZone 17762 (*TransformationErrorHandling_ThrowError)(nil), // 174: google.privacy.dlp.v2.TransformationErrorHandling.ThrowError 17763 (*TransformationErrorHandling_LeaveUntransformed)(nil), // 175: google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformed 17764 (*BucketingConfig_Bucket)(nil), // 176: google.privacy.dlp.v2.BucketingConfig.Bucket 17765 (*InfoTypeTransformations_InfoTypeTransformation)(nil), // 177: google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation 17766 (*RecordCondition_Condition)(nil), // 178: google.privacy.dlp.v2.RecordCondition.Condition 17767 (*RecordCondition_Conditions)(nil), // 179: google.privacy.dlp.v2.RecordCondition.Conditions 17768 (*RecordCondition_Expressions)(nil), // 180: google.privacy.dlp.v2.RecordCondition.Expressions 17769 (*TransformationSummary_SummaryResult)(nil), // 181: google.privacy.dlp.v2.TransformationSummary.SummaryResult 17770 (*JobTrigger_Trigger)(nil), // 182: google.privacy.dlp.v2.JobTrigger.Trigger 17771 (*Action_SaveFindings)(nil), // 183: google.privacy.dlp.v2.Action.SaveFindings 17772 (*Action_PublishToPubSub)(nil), // 184: google.privacy.dlp.v2.Action.PublishToPubSub 17773 (*Action_PublishSummaryToCscc)(nil), // 185: google.privacy.dlp.v2.Action.PublishSummaryToCscc 17774 (*Action_PublishFindingsToCloudDataCatalog)(nil), // 186: google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalog 17775 (*Action_JobNotificationEmails)(nil), // 187: google.privacy.dlp.v2.Action.JobNotificationEmails 17776 (*Action_PublishToStackdriver)(nil), // 188: google.privacy.dlp.v2.Action.PublishToStackdriver 17777 nil, // 189: google.privacy.dlp.v2.HybridFindingDetails.LabelsEntry 17778 (*InfoType)(nil), // 190: google.privacy.dlp.v2.InfoType 17779 (*CustomInfoType_Dictionary)(nil), // 191: google.privacy.dlp.v2.CustomInfoType.Dictionary 17780 (*CustomInfoType_Regex)(nil), // 192: google.privacy.dlp.v2.CustomInfoType.Regex 17781 (*CustomInfoType_DetectionRule_HotwordRule)(nil), // 193: google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule 17782 (Likelihood)(0), // 194: google.privacy.dlp.v2.Likelihood 17783 (*CustomInfoType)(nil), // 195: google.privacy.dlp.v2.CustomInfoType 17784 (*FieldId)(nil), // 196: google.privacy.dlp.v2.FieldId 17785 (*timestamppb.Timestamp)(nil), // 197: google.protobuf.Timestamp 17786 (*RecordKey)(nil), // 198: google.privacy.dlp.v2.RecordKey 17787 (*BigQueryTable)(nil), // 199: google.privacy.dlp.v2.BigQueryTable 17788 (*emptypb.Empty)(nil), // 200: google.protobuf.Empty 17789 (*timeofday.TimeOfDay)(nil), // 201: google.type.TimeOfDay 17790 (*date.Date)(nil), // 202: google.type.Date 17791 (dayofweek.DayOfWeek)(0), // 203: google.type.DayOfWeek 17792 (*durationpb.Duration)(nil), // 204: google.protobuf.Duration 17793 (*status.Status)(nil), // 205: google.rpc.Status 17794 (*fieldmaskpb.FieldMask)(nil), // 206: google.protobuf.FieldMask 17795 (*StorageConfig)(nil), // 207: google.privacy.dlp.v2.StorageConfig 17796 (*CloudStoragePath)(nil), // 208: google.privacy.dlp.v2.CloudStoragePath 17797 (*CloudStorageFileSet)(nil), // 209: google.privacy.dlp.v2.CloudStorageFileSet 17798 (*BigQueryField)(nil), // 210: google.privacy.dlp.v2.BigQueryField 17799 (*TableOptions)(nil), // 211: google.privacy.dlp.v2.TableOptions 17800 (*EntityId)(nil), // 212: google.privacy.dlp.v2.EntityId 17801} 17802var file_google_privacy_dlp_v2_dlp_proto_depIdxs = []int32{ 17803 190, // 0: google.privacy.dlp.v2.ExcludeInfoTypes.info_types:type_name -> google.privacy.dlp.v2.InfoType 17804 191, // 1: google.privacy.dlp.v2.ExclusionRule.dictionary:type_name -> google.privacy.dlp.v2.CustomInfoType.Dictionary 17805 192, // 2: google.privacy.dlp.v2.ExclusionRule.regex:type_name -> google.privacy.dlp.v2.CustomInfoType.Regex 17806 16, // 3: google.privacy.dlp.v2.ExclusionRule.exclude_info_types:type_name -> google.privacy.dlp.v2.ExcludeInfoTypes 17807 1, // 4: google.privacy.dlp.v2.ExclusionRule.matching_type:type_name -> google.privacy.dlp.v2.MatchingType 17808 193, // 5: google.privacy.dlp.v2.InspectionRule.hotword_rule:type_name -> google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule 17809 17, // 6: google.privacy.dlp.v2.InspectionRule.exclusion_rule:type_name -> google.privacy.dlp.v2.ExclusionRule 17810 190, // 7: google.privacy.dlp.v2.InspectionRuleSet.info_types:type_name -> google.privacy.dlp.v2.InfoType 17811 18, // 8: google.privacy.dlp.v2.InspectionRuleSet.rules:type_name -> google.privacy.dlp.v2.InspectionRule 17812 190, // 9: google.privacy.dlp.v2.InspectConfig.info_types:type_name -> google.privacy.dlp.v2.InfoType 17813 194, // 10: google.privacy.dlp.v2.InspectConfig.min_likelihood:type_name -> google.privacy.dlp.v2.Likelihood 17814 140, // 11: google.privacy.dlp.v2.InspectConfig.limits:type_name -> google.privacy.dlp.v2.InspectConfig.FindingLimits 17815 195, // 12: google.privacy.dlp.v2.InspectConfig.custom_info_types:type_name -> google.privacy.dlp.v2.CustomInfoType 17816 2, // 13: google.privacy.dlp.v2.InspectConfig.content_options:type_name -> google.privacy.dlp.v2.ContentOption 17817 19, // 14: google.privacy.dlp.v2.InspectConfig.rule_set:type_name -> google.privacy.dlp.v2.InspectionRuleSet 17818 7, // 15: google.privacy.dlp.v2.ByteContentItem.type:type_name -> google.privacy.dlp.v2.ByteContentItem.BytesType 17819 23, // 16: google.privacy.dlp.v2.ContentItem.table:type_name -> google.privacy.dlp.v2.Table 17820 21, // 17: google.privacy.dlp.v2.ContentItem.byte_item:type_name -> google.privacy.dlp.v2.ByteContentItem 17821 196, // 18: google.privacy.dlp.v2.Table.headers:type_name -> google.privacy.dlp.v2.FieldId 17822 142, // 19: google.privacy.dlp.v2.Table.rows:type_name -> google.privacy.dlp.v2.Table.Row 17823 25, // 20: google.privacy.dlp.v2.InspectResult.findings:type_name -> google.privacy.dlp.v2.Finding 17824 190, // 21: google.privacy.dlp.v2.Finding.info_type:type_name -> google.privacy.dlp.v2.InfoType 17825 194, // 22: google.privacy.dlp.v2.Finding.likelihood:type_name -> google.privacy.dlp.v2.Likelihood 17826 26, // 23: google.privacy.dlp.v2.Finding.location:type_name -> google.privacy.dlp.v2.Location 17827 197, // 24: google.privacy.dlp.v2.Finding.create_time:type_name -> google.protobuf.Timestamp 17828 60, // 25: google.privacy.dlp.v2.Finding.quote_info:type_name -> google.privacy.dlp.v2.QuoteInfo 17829 143, // 26: google.privacy.dlp.v2.Finding.labels:type_name -> google.privacy.dlp.v2.Finding.LabelsEntry 17830 197, // 27: google.privacy.dlp.v2.Finding.job_create_time:type_name -> google.protobuf.Timestamp 17831 34, // 28: google.privacy.dlp.v2.Location.byte_range:type_name -> google.privacy.dlp.v2.Range 17832 34, // 29: google.privacy.dlp.v2.Location.codepoint_range:type_name -> google.privacy.dlp.v2.Range 17833 27, // 30: google.privacy.dlp.v2.Location.content_locations:type_name -> google.privacy.dlp.v2.ContentLocation 17834 33, // 31: google.privacy.dlp.v2.Location.container:type_name -> google.privacy.dlp.v2.Container 17835 31, // 32: google.privacy.dlp.v2.ContentLocation.record_location:type_name -> google.privacy.dlp.v2.RecordLocation 17836 35, // 33: google.privacy.dlp.v2.ContentLocation.image_location:type_name -> google.privacy.dlp.v2.ImageLocation 17837 30, // 34: google.privacy.dlp.v2.ContentLocation.document_location:type_name -> google.privacy.dlp.v2.DocumentLocation 17838 28, // 35: google.privacy.dlp.v2.ContentLocation.metadata_location:type_name -> google.privacy.dlp.v2.MetadataLocation 17839 197, // 36: google.privacy.dlp.v2.ContentLocation.container_timestamp:type_name -> google.protobuf.Timestamp 17840 3, // 37: google.privacy.dlp.v2.MetadataLocation.type:type_name -> google.privacy.dlp.v2.MetadataType 17841 29, // 38: google.privacy.dlp.v2.MetadataLocation.storage_label:type_name -> google.privacy.dlp.v2.StorageMetadataLabel 17842 198, // 39: google.privacy.dlp.v2.RecordLocation.record_key:type_name -> google.privacy.dlp.v2.RecordKey 17843 196, // 40: google.privacy.dlp.v2.RecordLocation.field_id:type_name -> google.privacy.dlp.v2.FieldId 17844 32, // 41: google.privacy.dlp.v2.RecordLocation.table_location:type_name -> google.privacy.dlp.v2.TableLocation 17845 197, // 42: google.privacy.dlp.v2.Container.update_time:type_name -> google.protobuf.Timestamp 17846 36, // 43: google.privacy.dlp.v2.ImageLocation.bounding_boxes:type_name -> google.privacy.dlp.v2.BoundingBox 17847 20, // 44: google.privacy.dlp.v2.RedactImageRequest.inspect_config:type_name -> google.privacy.dlp.v2.InspectConfig 17848 144, // 45: google.privacy.dlp.v2.RedactImageRequest.image_redaction_configs:type_name -> google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig 17849 21, // 46: google.privacy.dlp.v2.RedactImageRequest.byte_item:type_name -> google.privacy.dlp.v2.ByteContentItem 17850 24, // 47: google.privacy.dlp.v2.RedactImageResponse.inspect_result:type_name -> google.privacy.dlp.v2.InspectResult 17851 62, // 48: google.privacy.dlp.v2.DeidentifyContentRequest.deidentify_config:type_name -> google.privacy.dlp.v2.DeidentifyConfig 17852 20, // 49: google.privacy.dlp.v2.DeidentifyContentRequest.inspect_config:type_name -> google.privacy.dlp.v2.InspectConfig 17853 22, // 50: google.privacy.dlp.v2.DeidentifyContentRequest.item:type_name -> google.privacy.dlp.v2.ContentItem 17854 22, // 51: google.privacy.dlp.v2.DeidentifyContentResponse.item:type_name -> google.privacy.dlp.v2.ContentItem 17855 86, // 52: google.privacy.dlp.v2.DeidentifyContentResponse.overview:type_name -> google.privacy.dlp.v2.TransformationOverview 17856 62, // 53: google.privacy.dlp.v2.ReidentifyContentRequest.reidentify_config:type_name -> google.privacy.dlp.v2.DeidentifyConfig 17857 20, // 54: google.privacy.dlp.v2.ReidentifyContentRequest.inspect_config:type_name -> google.privacy.dlp.v2.InspectConfig 17858 22, // 55: google.privacy.dlp.v2.ReidentifyContentRequest.item:type_name -> google.privacy.dlp.v2.ContentItem 17859 22, // 56: google.privacy.dlp.v2.ReidentifyContentResponse.item:type_name -> google.privacy.dlp.v2.ContentItem 17860 86, // 57: google.privacy.dlp.v2.ReidentifyContentResponse.overview:type_name -> google.privacy.dlp.v2.TransformationOverview 17861 20, // 58: google.privacy.dlp.v2.InspectContentRequest.inspect_config:type_name -> google.privacy.dlp.v2.InspectConfig 17862 22, // 59: google.privacy.dlp.v2.InspectContentRequest.item:type_name -> google.privacy.dlp.v2.ContentItem 17863 24, // 60: google.privacy.dlp.v2.InspectContentResponse.result:type_name -> google.privacy.dlp.v2.InspectResult 17864 199, // 61: google.privacy.dlp.v2.OutputStorageConfig.table:type_name -> google.privacy.dlp.v2.BigQueryTable 17865 8, // 62: google.privacy.dlp.v2.OutputStorageConfig.output_schema:type_name -> google.privacy.dlp.v2.OutputStorageConfig.OutputSchema 17866 190, // 63: google.privacy.dlp.v2.InfoTypeStats.info_type:type_name -> google.privacy.dlp.v2.InfoType 17867 145, // 64: google.privacy.dlp.v2.InspectDataSourceDetails.requested_options:type_name -> google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions 17868 146, // 65: google.privacy.dlp.v2.InspectDataSourceDetails.result:type_name -> google.privacy.dlp.v2.InspectDataSourceDetails.Result 17869 4, // 66: google.privacy.dlp.v2.InfoTypeDescription.supported_by:type_name -> google.privacy.dlp.v2.InfoTypeSupportedBy 17870 50, // 67: google.privacy.dlp.v2.ListInfoTypesResponse.info_types:type_name -> google.privacy.dlp.v2.InfoTypeDescription 17871 56, // 68: google.privacy.dlp.v2.RiskAnalysisJobConfig.privacy_metric:type_name -> google.privacy.dlp.v2.PrivacyMetric 17872 199, // 69: google.privacy.dlp.v2.RiskAnalysisJobConfig.source_table:type_name -> google.privacy.dlp.v2.BigQueryTable 17873 94, // 70: google.privacy.dlp.v2.RiskAnalysisJobConfig.actions:type_name -> google.privacy.dlp.v2.Action 17874 196, // 71: google.privacy.dlp.v2.QuasiId.field:type_name -> google.privacy.dlp.v2.FieldId 17875 190, // 72: google.privacy.dlp.v2.QuasiId.info_type:type_name -> google.privacy.dlp.v2.InfoType 17876 200, // 73: google.privacy.dlp.v2.QuasiId.inferred:type_name -> google.protobuf.Empty 17877 199, // 74: google.privacy.dlp.v2.StatisticalTable.table:type_name -> google.privacy.dlp.v2.BigQueryTable 17878 147, // 75: google.privacy.dlp.v2.StatisticalTable.quasi_ids:type_name -> google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField 17879 196, // 76: google.privacy.dlp.v2.StatisticalTable.relative_frequency:type_name -> google.privacy.dlp.v2.FieldId 17880 148, // 77: google.privacy.dlp.v2.PrivacyMetric.numerical_stats_config:type_name -> google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig 17881 149, // 78: google.privacy.dlp.v2.PrivacyMetric.categorical_stats_config:type_name -> google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig 17882 150, // 79: google.privacy.dlp.v2.PrivacyMetric.k_anonymity_config:type_name -> google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig 17883 151, // 80: google.privacy.dlp.v2.PrivacyMetric.l_diversity_config:type_name -> google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig 17884 152, // 81: google.privacy.dlp.v2.PrivacyMetric.k_map_estimation_config:type_name -> google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig 17885 153, // 82: google.privacy.dlp.v2.PrivacyMetric.delta_presence_estimation_config:type_name -> google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig 17886 56, // 83: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.requested_privacy_metric:type_name -> google.privacy.dlp.v2.PrivacyMetric 17887 199, // 84: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.requested_source_table:type_name -> google.privacy.dlp.v2.BigQueryTable 17888 157, // 85: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.numerical_stats_result:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult 17889 158, // 86: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.categorical_stats_result:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult 17890 159, // 87: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.k_anonymity_result:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult 17891 160, // 88: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.l_diversity_result:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult 17892 161, // 89: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.k_map_estimation_result:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult 17893 162, // 90: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.delta_presence_estimation_result:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult 17894 163, // 91: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.requested_options:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.RequestedRiskAnalysisOptions 17895 59, // 92: google.privacy.dlp.v2.ValueFrequency.value:type_name -> google.privacy.dlp.v2.Value 17896 197, // 93: google.privacy.dlp.v2.Value.timestamp_value:type_name -> google.protobuf.Timestamp 17897 201, // 94: google.privacy.dlp.v2.Value.time_value:type_name -> google.type.TimeOfDay 17898 202, // 95: google.privacy.dlp.v2.Value.date_value:type_name -> google.type.Date 17899 203, // 96: google.privacy.dlp.v2.Value.day_of_week_value:type_name -> google.type.DayOfWeek 17900 61, // 97: google.privacy.dlp.v2.QuoteInfo.date_time:type_name -> google.privacy.dlp.v2.DateTime 17901 202, // 98: google.privacy.dlp.v2.DateTime.date:type_name -> google.type.Date 17902 203, // 99: google.privacy.dlp.v2.DateTime.day_of_week:type_name -> google.type.DayOfWeek 17903 201, // 100: google.privacy.dlp.v2.DateTime.time:type_name -> google.type.TimeOfDay 17904 173, // 101: google.privacy.dlp.v2.DateTime.time_zone:type_name -> google.privacy.dlp.v2.DateTime.TimeZone 17905 81, // 102: google.privacy.dlp.v2.DeidentifyConfig.info_type_transformations:type_name -> google.privacy.dlp.v2.InfoTypeTransformations 17906 83, // 103: google.privacy.dlp.v2.DeidentifyConfig.record_transformations:type_name -> google.privacy.dlp.v2.RecordTransformations 17907 63, // 104: google.privacy.dlp.v2.DeidentifyConfig.transformation_error_handling:type_name -> google.privacy.dlp.v2.TransformationErrorHandling 17908 174, // 105: google.privacy.dlp.v2.TransformationErrorHandling.throw_error:type_name -> google.privacy.dlp.v2.TransformationErrorHandling.ThrowError 17909 175, // 106: google.privacy.dlp.v2.TransformationErrorHandling.leave_untransformed:type_name -> google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformed 17910 68, // 107: google.privacy.dlp.v2.PrimitiveTransformation.replace_config:type_name -> google.privacy.dlp.v2.ReplaceValueConfig 17911 70, // 108: google.privacy.dlp.v2.PrimitiveTransformation.redact_config:type_name -> google.privacy.dlp.v2.RedactConfig 17912 72, // 109: google.privacy.dlp.v2.PrimitiveTransformation.character_mask_config:type_name -> google.privacy.dlp.v2.CharacterMaskConfig 17913 75, // 110: google.privacy.dlp.v2.PrimitiveTransformation.crypto_replace_ffx_fpe_config:type_name -> google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig 17914 73, // 111: google.privacy.dlp.v2.PrimitiveTransformation.fixed_size_bucketing_config:type_name -> google.privacy.dlp.v2.FixedSizeBucketingConfig 17915 74, // 112: google.privacy.dlp.v2.PrimitiveTransformation.bucketing_config:type_name -> google.privacy.dlp.v2.BucketingConfig 17916 69, // 113: google.privacy.dlp.v2.PrimitiveTransformation.replace_with_info_type_config:type_name -> google.privacy.dlp.v2.ReplaceWithInfoTypeConfig 17917 65, // 114: google.privacy.dlp.v2.PrimitiveTransformation.time_part_config:type_name -> google.privacy.dlp.v2.TimePartConfig 17918 66, // 115: google.privacy.dlp.v2.PrimitiveTransformation.crypto_hash_config:type_name -> google.privacy.dlp.v2.CryptoHashConfig 17919 80, // 116: google.privacy.dlp.v2.PrimitiveTransformation.date_shift_config:type_name -> google.privacy.dlp.v2.DateShiftConfig 17920 67, // 117: google.privacy.dlp.v2.PrimitiveTransformation.crypto_deterministic_config:type_name -> google.privacy.dlp.v2.CryptoDeterministicConfig 17921 9, // 118: google.privacy.dlp.v2.TimePartConfig.part_to_extract:type_name -> google.privacy.dlp.v2.TimePartConfig.TimePart 17922 76, // 119: google.privacy.dlp.v2.CryptoHashConfig.crypto_key:type_name -> google.privacy.dlp.v2.CryptoKey 17923 76, // 120: google.privacy.dlp.v2.CryptoDeterministicConfig.crypto_key:type_name -> google.privacy.dlp.v2.CryptoKey 17924 190, // 121: google.privacy.dlp.v2.CryptoDeterministicConfig.surrogate_info_type:type_name -> google.privacy.dlp.v2.InfoType 17925 196, // 122: google.privacy.dlp.v2.CryptoDeterministicConfig.context:type_name -> google.privacy.dlp.v2.FieldId 17926 59, // 123: google.privacy.dlp.v2.ReplaceValueConfig.new_value:type_name -> google.privacy.dlp.v2.Value 17927 10, // 124: google.privacy.dlp.v2.CharsToIgnore.common_characters_to_ignore:type_name -> google.privacy.dlp.v2.CharsToIgnore.CommonCharsToIgnore 17928 71, // 125: google.privacy.dlp.v2.CharacterMaskConfig.characters_to_ignore:type_name -> google.privacy.dlp.v2.CharsToIgnore 17929 59, // 126: google.privacy.dlp.v2.FixedSizeBucketingConfig.lower_bound:type_name -> google.privacy.dlp.v2.Value 17930 59, // 127: google.privacy.dlp.v2.FixedSizeBucketingConfig.upper_bound:type_name -> google.privacy.dlp.v2.Value 17931 176, // 128: google.privacy.dlp.v2.BucketingConfig.buckets:type_name -> google.privacy.dlp.v2.BucketingConfig.Bucket 17932 76, // 129: google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.crypto_key:type_name -> google.privacy.dlp.v2.CryptoKey 17933 196, // 130: google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.context:type_name -> google.privacy.dlp.v2.FieldId 17934 11, // 131: google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.common_alphabet:type_name -> google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet 17935 190, // 132: google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.surrogate_info_type:type_name -> google.privacy.dlp.v2.InfoType 17936 77, // 133: google.privacy.dlp.v2.CryptoKey.transient:type_name -> google.privacy.dlp.v2.TransientCryptoKey 17937 78, // 134: google.privacy.dlp.v2.CryptoKey.unwrapped:type_name -> google.privacy.dlp.v2.UnwrappedCryptoKey 17938 79, // 135: google.privacy.dlp.v2.CryptoKey.kms_wrapped:type_name -> google.privacy.dlp.v2.KmsWrappedCryptoKey 17939 196, // 136: google.privacy.dlp.v2.DateShiftConfig.context:type_name -> google.privacy.dlp.v2.FieldId 17940 76, // 137: google.privacy.dlp.v2.DateShiftConfig.crypto_key:type_name -> google.privacy.dlp.v2.CryptoKey 17941 177, // 138: google.privacy.dlp.v2.InfoTypeTransformations.transformations:type_name -> google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation 17942 196, // 139: google.privacy.dlp.v2.FieldTransformation.fields:type_name -> google.privacy.dlp.v2.FieldId 17943 85, // 140: google.privacy.dlp.v2.FieldTransformation.condition:type_name -> google.privacy.dlp.v2.RecordCondition 17944 64, // 141: google.privacy.dlp.v2.FieldTransformation.primitive_transformation:type_name -> google.privacy.dlp.v2.PrimitiveTransformation 17945 81, // 142: google.privacy.dlp.v2.FieldTransformation.info_type_transformations:type_name -> google.privacy.dlp.v2.InfoTypeTransformations 17946 82, // 143: google.privacy.dlp.v2.RecordTransformations.field_transformations:type_name -> google.privacy.dlp.v2.FieldTransformation 17947 84, // 144: google.privacy.dlp.v2.RecordTransformations.record_suppressions:type_name -> google.privacy.dlp.v2.RecordSuppression 17948 85, // 145: google.privacy.dlp.v2.RecordSuppression.condition:type_name -> google.privacy.dlp.v2.RecordCondition 17949 180, // 146: google.privacy.dlp.v2.RecordCondition.expressions:type_name -> google.privacy.dlp.v2.RecordCondition.Expressions 17950 87, // 147: google.privacy.dlp.v2.TransformationOverview.transformation_summaries:type_name -> google.privacy.dlp.v2.TransformationSummary 17951 190, // 148: google.privacy.dlp.v2.TransformationSummary.info_type:type_name -> google.privacy.dlp.v2.InfoType 17952 196, // 149: google.privacy.dlp.v2.TransformationSummary.field:type_name -> google.privacy.dlp.v2.FieldId 17953 64, // 150: google.privacy.dlp.v2.TransformationSummary.transformation:type_name -> google.privacy.dlp.v2.PrimitiveTransformation 17954 82, // 151: google.privacy.dlp.v2.TransformationSummary.field_transformations:type_name -> google.privacy.dlp.v2.FieldTransformation 17955 84, // 152: google.privacy.dlp.v2.TransformationSummary.record_suppress:type_name -> google.privacy.dlp.v2.RecordSuppression 17956 181, // 153: google.privacy.dlp.v2.TransformationSummary.results:type_name -> google.privacy.dlp.v2.TransformationSummary.SummaryResult 17957 204, // 154: google.privacy.dlp.v2.Schedule.recurrence_period_duration:type_name -> google.protobuf.Duration 17958 197, // 155: google.privacy.dlp.v2.InspectTemplate.create_time:type_name -> google.protobuf.Timestamp 17959 197, // 156: google.privacy.dlp.v2.InspectTemplate.update_time:type_name -> google.protobuf.Timestamp 17960 20, // 157: google.privacy.dlp.v2.InspectTemplate.inspect_config:type_name -> google.privacy.dlp.v2.InspectConfig 17961 197, // 158: google.privacy.dlp.v2.DeidentifyTemplate.create_time:type_name -> google.protobuf.Timestamp 17962 197, // 159: google.privacy.dlp.v2.DeidentifyTemplate.update_time:type_name -> google.protobuf.Timestamp 17963 62, // 160: google.privacy.dlp.v2.DeidentifyTemplate.deidentify_config:type_name -> google.privacy.dlp.v2.DeidentifyConfig 17964 205, // 161: google.privacy.dlp.v2.Error.details:type_name -> google.rpc.Status 17965 197, // 162: google.privacy.dlp.v2.Error.timestamps:type_name -> google.protobuf.Timestamp 17966 109, // 163: google.privacy.dlp.v2.JobTrigger.inspect_job:type_name -> google.privacy.dlp.v2.InspectJobConfig 17967 182, // 164: google.privacy.dlp.v2.JobTrigger.triggers:type_name -> google.privacy.dlp.v2.JobTrigger.Trigger 17968 92, // 165: google.privacy.dlp.v2.JobTrigger.errors:type_name -> google.privacy.dlp.v2.Error 17969 197, // 166: google.privacy.dlp.v2.JobTrigger.create_time:type_name -> google.protobuf.Timestamp 17970 197, // 167: google.privacy.dlp.v2.JobTrigger.update_time:type_name -> google.protobuf.Timestamp 17971 197, // 168: google.privacy.dlp.v2.JobTrigger.last_run_time:type_name -> google.protobuf.Timestamp 17972 14, // 169: google.privacy.dlp.v2.JobTrigger.status:type_name -> google.privacy.dlp.v2.JobTrigger.Status 17973 183, // 170: google.privacy.dlp.v2.Action.save_findings:type_name -> google.privacy.dlp.v2.Action.SaveFindings 17974 184, // 171: google.privacy.dlp.v2.Action.pub_sub:type_name -> google.privacy.dlp.v2.Action.PublishToPubSub 17975 185, // 172: google.privacy.dlp.v2.Action.publish_summary_to_cscc:type_name -> google.privacy.dlp.v2.Action.PublishSummaryToCscc 17976 186, // 173: google.privacy.dlp.v2.Action.publish_findings_to_cloud_data_catalog:type_name -> google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalog 17977 187, // 174: google.privacy.dlp.v2.Action.job_notification_emails:type_name -> google.privacy.dlp.v2.Action.JobNotificationEmails 17978 188, // 175: google.privacy.dlp.v2.Action.publish_to_stackdriver:type_name -> google.privacy.dlp.v2.Action.PublishToStackdriver 17979 90, // 176: google.privacy.dlp.v2.CreateInspectTemplateRequest.inspect_template:type_name -> google.privacy.dlp.v2.InspectTemplate 17980 90, // 177: google.privacy.dlp.v2.UpdateInspectTemplateRequest.inspect_template:type_name -> google.privacy.dlp.v2.InspectTemplate 17981 206, // 178: google.privacy.dlp.v2.UpdateInspectTemplateRequest.update_mask:type_name -> google.protobuf.FieldMask 17982 90, // 179: google.privacy.dlp.v2.ListInspectTemplatesResponse.inspect_templates:type_name -> google.privacy.dlp.v2.InspectTemplate 17983 93, // 180: google.privacy.dlp.v2.CreateJobTriggerRequest.job_trigger:type_name -> google.privacy.dlp.v2.JobTrigger 17984 93, // 181: google.privacy.dlp.v2.UpdateJobTriggerRequest.job_trigger:type_name -> google.privacy.dlp.v2.JobTrigger 17985 206, // 182: google.privacy.dlp.v2.UpdateJobTriggerRequest.update_mask:type_name -> google.protobuf.FieldMask 17986 109, // 183: google.privacy.dlp.v2.CreateDlpJobRequest.inspect_job:type_name -> google.privacy.dlp.v2.InspectJobConfig 17987 53, // 184: google.privacy.dlp.v2.CreateDlpJobRequest.risk_job:type_name -> google.privacy.dlp.v2.RiskAnalysisJobConfig 17988 93, // 185: google.privacy.dlp.v2.ListJobTriggersResponse.job_triggers:type_name -> google.privacy.dlp.v2.JobTrigger 17989 207, // 186: google.privacy.dlp.v2.InspectJobConfig.storage_config:type_name -> google.privacy.dlp.v2.StorageConfig 17990 20, // 187: google.privacy.dlp.v2.InspectJobConfig.inspect_config:type_name -> google.privacy.dlp.v2.InspectConfig 17991 94, // 188: google.privacy.dlp.v2.InspectJobConfig.actions:type_name -> google.privacy.dlp.v2.Action 17992 5, // 189: google.privacy.dlp.v2.DlpJob.type:type_name -> google.privacy.dlp.v2.DlpJobType 17993 15, // 190: google.privacy.dlp.v2.DlpJob.state:type_name -> google.privacy.dlp.v2.DlpJob.JobState 17994 57, // 191: google.privacy.dlp.v2.DlpJob.risk_details:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails 17995 48, // 192: google.privacy.dlp.v2.DlpJob.inspect_details:type_name -> google.privacy.dlp.v2.InspectDataSourceDetails 17996 197, // 193: google.privacy.dlp.v2.DlpJob.create_time:type_name -> google.protobuf.Timestamp 17997 197, // 194: google.privacy.dlp.v2.DlpJob.start_time:type_name -> google.protobuf.Timestamp 17998 197, // 195: google.privacy.dlp.v2.DlpJob.end_time:type_name -> google.protobuf.Timestamp 17999 92, // 196: google.privacy.dlp.v2.DlpJob.errors:type_name -> google.privacy.dlp.v2.Error 18000 5, // 197: google.privacy.dlp.v2.ListDlpJobsRequest.type:type_name -> google.privacy.dlp.v2.DlpJobType 18001 110, // 198: google.privacy.dlp.v2.ListDlpJobsResponse.jobs:type_name -> google.privacy.dlp.v2.DlpJob 18002 91, // 199: google.privacy.dlp.v2.CreateDeidentifyTemplateRequest.deidentify_template:type_name -> google.privacy.dlp.v2.DeidentifyTemplate 18003 91, // 200: google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest.deidentify_template:type_name -> google.privacy.dlp.v2.DeidentifyTemplate 18004 206, // 201: google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest.update_mask:type_name -> google.protobuf.FieldMask 18005 91, // 202: google.privacy.dlp.v2.ListDeidentifyTemplatesResponse.deidentify_templates:type_name -> google.privacy.dlp.v2.DeidentifyTemplate 18006 208, // 203: google.privacy.dlp.v2.LargeCustomDictionaryConfig.output_path:type_name -> google.privacy.dlp.v2.CloudStoragePath 18007 209, // 204: google.privacy.dlp.v2.LargeCustomDictionaryConfig.cloud_storage_file_set:type_name -> google.privacy.dlp.v2.CloudStorageFileSet 18008 210, // 205: google.privacy.dlp.v2.LargeCustomDictionaryConfig.big_query_field:type_name -> google.privacy.dlp.v2.BigQueryField 18009 123, // 206: google.privacy.dlp.v2.StoredInfoTypeConfig.large_custom_dictionary:type_name -> google.privacy.dlp.v2.LargeCustomDictionaryConfig 18010 191, // 207: google.privacy.dlp.v2.StoredInfoTypeConfig.dictionary:type_name -> google.privacy.dlp.v2.CustomInfoType.Dictionary 18011 192, // 208: google.privacy.dlp.v2.StoredInfoTypeConfig.regex:type_name -> google.privacy.dlp.v2.CustomInfoType.Regex 18012 124, // 209: google.privacy.dlp.v2.StoredInfoTypeStats.large_custom_dictionary:type_name -> google.privacy.dlp.v2.LargeCustomDictionaryStats 18013 125, // 210: google.privacy.dlp.v2.StoredInfoTypeVersion.config:type_name -> google.privacy.dlp.v2.StoredInfoTypeConfig 18014 197, // 211: google.privacy.dlp.v2.StoredInfoTypeVersion.create_time:type_name -> google.protobuf.Timestamp 18015 6, // 212: google.privacy.dlp.v2.StoredInfoTypeVersion.state:type_name -> google.privacy.dlp.v2.StoredInfoTypeState 18016 92, // 213: google.privacy.dlp.v2.StoredInfoTypeVersion.errors:type_name -> google.privacy.dlp.v2.Error 18017 126, // 214: google.privacy.dlp.v2.StoredInfoTypeVersion.stats:type_name -> google.privacy.dlp.v2.StoredInfoTypeStats 18018 127, // 215: google.privacy.dlp.v2.StoredInfoType.current_version:type_name -> google.privacy.dlp.v2.StoredInfoTypeVersion 18019 127, // 216: google.privacy.dlp.v2.StoredInfoType.pending_versions:type_name -> google.privacy.dlp.v2.StoredInfoTypeVersion 18020 125, // 217: google.privacy.dlp.v2.CreateStoredInfoTypeRequest.config:type_name -> google.privacy.dlp.v2.StoredInfoTypeConfig 18021 125, // 218: google.privacy.dlp.v2.UpdateStoredInfoTypeRequest.config:type_name -> google.privacy.dlp.v2.StoredInfoTypeConfig 18022 206, // 219: google.privacy.dlp.v2.UpdateStoredInfoTypeRequest.update_mask:type_name -> google.protobuf.FieldMask 18023 128, // 220: google.privacy.dlp.v2.ListStoredInfoTypesResponse.stored_info_types:type_name -> google.privacy.dlp.v2.StoredInfoType 18024 137, // 221: google.privacy.dlp.v2.HybridInspectJobTriggerRequest.hybrid_item:type_name -> google.privacy.dlp.v2.HybridContentItem 18025 137, // 222: google.privacy.dlp.v2.HybridInspectDlpJobRequest.hybrid_item:type_name -> google.privacy.dlp.v2.HybridContentItem 18026 22, // 223: google.privacy.dlp.v2.HybridContentItem.item:type_name -> google.privacy.dlp.v2.ContentItem 18027 138, // 224: google.privacy.dlp.v2.HybridContentItem.finding_details:type_name -> google.privacy.dlp.v2.HybridFindingDetails 18028 33, // 225: google.privacy.dlp.v2.HybridFindingDetails.container_details:type_name -> google.privacy.dlp.v2.Container 18029 211, // 226: google.privacy.dlp.v2.HybridFindingDetails.table_options:type_name -> google.privacy.dlp.v2.TableOptions 18030 189, // 227: google.privacy.dlp.v2.HybridFindingDetails.labels:type_name -> google.privacy.dlp.v2.HybridFindingDetails.LabelsEntry 18031 141, // 228: google.privacy.dlp.v2.InspectConfig.FindingLimits.max_findings_per_info_type:type_name -> google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit 18032 190, // 229: google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit.info_type:type_name -> google.privacy.dlp.v2.InfoType 18033 59, // 230: google.privacy.dlp.v2.Table.Row.values:type_name -> google.privacy.dlp.v2.Value 18034 190, // 231: google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig.info_type:type_name -> google.privacy.dlp.v2.InfoType 18035 38, // 232: google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig.redaction_color:type_name -> google.privacy.dlp.v2.Color 18036 90, // 233: google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions.snapshot_inspect_template:type_name -> google.privacy.dlp.v2.InspectTemplate 18037 109, // 234: google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions.job_config:type_name -> google.privacy.dlp.v2.InspectJobConfig 18038 47, // 235: google.privacy.dlp.v2.InspectDataSourceDetails.Result.info_type_stats:type_name -> google.privacy.dlp.v2.InfoTypeStats 18039 49, // 236: google.privacy.dlp.v2.InspectDataSourceDetails.Result.hybrid_stats:type_name -> google.privacy.dlp.v2.HybridInspectStatistics 18040 196, // 237: google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField.field:type_name -> google.privacy.dlp.v2.FieldId 18041 196, // 238: google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig.field:type_name -> google.privacy.dlp.v2.FieldId 18042 196, // 239: google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig.field:type_name -> google.privacy.dlp.v2.FieldId 18043 196, // 240: google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig.quasi_ids:type_name -> google.privacy.dlp.v2.FieldId 18044 212, // 241: google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig.entity_id:type_name -> google.privacy.dlp.v2.EntityId 18045 196, // 242: google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig.quasi_ids:type_name -> google.privacy.dlp.v2.FieldId 18046 196, // 243: google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig.sensitive_attribute:type_name -> google.privacy.dlp.v2.FieldId 18047 154, // 244: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.quasi_ids:type_name -> google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField 18048 155, // 245: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.auxiliary_tables:type_name -> google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable 18049 54, // 246: google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig.quasi_ids:type_name -> google.privacy.dlp.v2.QuasiId 18050 55, // 247: google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig.auxiliary_tables:type_name -> google.privacy.dlp.v2.StatisticalTable 18051 196, // 248: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField.field:type_name -> google.privacy.dlp.v2.FieldId 18052 190, // 249: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField.info_type:type_name -> google.privacy.dlp.v2.InfoType 18053 200, // 250: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField.inferred:type_name -> google.protobuf.Empty 18054 199, // 251: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.table:type_name -> google.privacy.dlp.v2.BigQueryTable 18055 156, // 252: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.quasi_ids:type_name -> google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField 18056 196, // 253: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.relative_frequency:type_name -> google.privacy.dlp.v2.FieldId 18057 196, // 254: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField.field:type_name -> google.privacy.dlp.v2.FieldId 18058 59, // 255: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult.min_value:type_name -> google.privacy.dlp.v2.Value 18059 59, // 256: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult.max_value:type_name -> google.privacy.dlp.v2.Value 18060 59, // 257: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult.quantile_values:type_name -> google.privacy.dlp.v2.Value 18061 164, // 258: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.value_frequency_histogram_buckets:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket 18062 166, // 259: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.equivalence_class_histogram_buckets:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket 18063 168, // 260: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.sensitive_value_frequency_histogram_buckets:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket 18064 170, // 261: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.k_map_estimation_histogram:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket 18065 172, // 262: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.delta_presence_estimation_histogram:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket 18066 53, // 263: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.RequestedRiskAnalysisOptions.job_config:type_name -> google.privacy.dlp.v2.RiskAnalysisJobConfig 18067 58, // 264: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket.bucket_values:type_name -> google.privacy.dlp.v2.ValueFrequency 18068 59, // 265: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass.quasi_ids_values:type_name -> google.privacy.dlp.v2.Value 18069 165, // 266: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket.bucket_values:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass 18070 59, // 267: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass.quasi_ids_values:type_name -> google.privacy.dlp.v2.Value 18071 58, // 268: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass.top_sensitive_values:type_name -> google.privacy.dlp.v2.ValueFrequency 18072 167, // 269: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket.bucket_values:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass 18073 59, // 270: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues.quasi_ids_values:type_name -> google.privacy.dlp.v2.Value 18074 169, // 271: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket.bucket_values:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues 18075 59, // 272: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues.quasi_ids_values:type_name -> google.privacy.dlp.v2.Value 18076 171, // 273: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket.bucket_values:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues 18077 59, // 274: google.privacy.dlp.v2.BucketingConfig.Bucket.min:type_name -> google.privacy.dlp.v2.Value 18078 59, // 275: google.privacy.dlp.v2.BucketingConfig.Bucket.max:type_name -> google.privacy.dlp.v2.Value 18079 59, // 276: google.privacy.dlp.v2.BucketingConfig.Bucket.replacement_value:type_name -> google.privacy.dlp.v2.Value 18080 190, // 277: google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation.info_types:type_name -> google.privacy.dlp.v2.InfoType 18081 64, // 278: google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation.primitive_transformation:type_name -> google.privacy.dlp.v2.PrimitiveTransformation 18082 196, // 279: google.privacy.dlp.v2.RecordCondition.Condition.field:type_name -> google.privacy.dlp.v2.FieldId 18083 0, // 280: google.privacy.dlp.v2.RecordCondition.Condition.operator:type_name -> google.privacy.dlp.v2.RelationalOperator 18084 59, // 281: google.privacy.dlp.v2.RecordCondition.Condition.value:type_name -> google.privacy.dlp.v2.Value 18085 178, // 282: google.privacy.dlp.v2.RecordCondition.Conditions.conditions:type_name -> google.privacy.dlp.v2.RecordCondition.Condition 18086 12, // 283: google.privacy.dlp.v2.RecordCondition.Expressions.logical_operator:type_name -> google.privacy.dlp.v2.RecordCondition.Expressions.LogicalOperator 18087 179, // 284: google.privacy.dlp.v2.RecordCondition.Expressions.conditions:type_name -> google.privacy.dlp.v2.RecordCondition.Conditions 18088 13, // 285: google.privacy.dlp.v2.TransformationSummary.SummaryResult.code:type_name -> google.privacy.dlp.v2.TransformationSummary.TransformationResultCode 18089 88, // 286: google.privacy.dlp.v2.JobTrigger.Trigger.schedule:type_name -> google.privacy.dlp.v2.Schedule 18090 89, // 287: google.privacy.dlp.v2.JobTrigger.Trigger.manual:type_name -> google.privacy.dlp.v2.Manual 18091 46, // 288: google.privacy.dlp.v2.Action.SaveFindings.output_config:type_name -> google.privacy.dlp.v2.OutputStorageConfig 18092 44, // 289: google.privacy.dlp.v2.DlpService.InspectContent:input_type -> google.privacy.dlp.v2.InspectContentRequest 18093 37, // 290: google.privacy.dlp.v2.DlpService.RedactImage:input_type -> google.privacy.dlp.v2.RedactImageRequest 18094 40, // 291: google.privacy.dlp.v2.DlpService.DeidentifyContent:input_type -> google.privacy.dlp.v2.DeidentifyContentRequest 18095 42, // 292: google.privacy.dlp.v2.DlpService.ReidentifyContent:input_type -> google.privacy.dlp.v2.ReidentifyContentRequest 18096 51, // 293: google.privacy.dlp.v2.DlpService.ListInfoTypes:input_type -> google.privacy.dlp.v2.ListInfoTypesRequest 18097 95, // 294: google.privacy.dlp.v2.DlpService.CreateInspectTemplate:input_type -> google.privacy.dlp.v2.CreateInspectTemplateRequest 18098 96, // 295: google.privacy.dlp.v2.DlpService.UpdateInspectTemplate:input_type -> google.privacy.dlp.v2.UpdateInspectTemplateRequest 18099 97, // 296: google.privacy.dlp.v2.DlpService.GetInspectTemplate:input_type -> google.privacy.dlp.v2.GetInspectTemplateRequest 18100 98, // 297: google.privacy.dlp.v2.DlpService.ListInspectTemplates:input_type -> google.privacy.dlp.v2.ListInspectTemplatesRequest 18101 100, // 298: google.privacy.dlp.v2.DlpService.DeleteInspectTemplate:input_type -> google.privacy.dlp.v2.DeleteInspectTemplateRequest 18102 117, // 299: google.privacy.dlp.v2.DlpService.CreateDeidentifyTemplate:input_type -> google.privacy.dlp.v2.CreateDeidentifyTemplateRequest 18103 118, // 300: google.privacy.dlp.v2.DlpService.UpdateDeidentifyTemplate:input_type -> google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest 18104 119, // 301: google.privacy.dlp.v2.DlpService.GetDeidentifyTemplate:input_type -> google.privacy.dlp.v2.GetDeidentifyTemplateRequest 18105 120, // 302: google.privacy.dlp.v2.DlpService.ListDeidentifyTemplates:input_type -> google.privacy.dlp.v2.ListDeidentifyTemplatesRequest 18106 122, // 303: google.privacy.dlp.v2.DlpService.DeleteDeidentifyTemplate:input_type -> google.privacy.dlp.v2.DeleteDeidentifyTemplateRequest 18107 101, // 304: google.privacy.dlp.v2.DlpService.CreateJobTrigger:input_type -> google.privacy.dlp.v2.CreateJobTriggerRequest 18108 103, // 305: google.privacy.dlp.v2.DlpService.UpdateJobTrigger:input_type -> google.privacy.dlp.v2.UpdateJobTriggerRequest 18109 135, // 306: google.privacy.dlp.v2.DlpService.HybridInspectJobTrigger:input_type -> google.privacy.dlp.v2.HybridInspectJobTriggerRequest 18110 104, // 307: google.privacy.dlp.v2.DlpService.GetJobTrigger:input_type -> google.privacy.dlp.v2.GetJobTriggerRequest 18111 106, // 308: google.privacy.dlp.v2.DlpService.ListJobTriggers:input_type -> google.privacy.dlp.v2.ListJobTriggersRequest 18112 108, // 309: google.privacy.dlp.v2.DlpService.DeleteJobTrigger:input_type -> google.privacy.dlp.v2.DeleteJobTriggerRequest 18113 102, // 310: google.privacy.dlp.v2.DlpService.ActivateJobTrigger:input_type -> google.privacy.dlp.v2.ActivateJobTriggerRequest 18114 105, // 311: google.privacy.dlp.v2.DlpService.CreateDlpJob:input_type -> google.privacy.dlp.v2.CreateDlpJobRequest 18115 112, // 312: google.privacy.dlp.v2.DlpService.ListDlpJobs:input_type -> google.privacy.dlp.v2.ListDlpJobsRequest 18116 111, // 313: google.privacy.dlp.v2.DlpService.GetDlpJob:input_type -> google.privacy.dlp.v2.GetDlpJobRequest 18117 116, // 314: google.privacy.dlp.v2.DlpService.DeleteDlpJob:input_type -> google.privacy.dlp.v2.DeleteDlpJobRequest 18118 114, // 315: google.privacy.dlp.v2.DlpService.CancelDlpJob:input_type -> google.privacy.dlp.v2.CancelDlpJobRequest 18119 129, // 316: google.privacy.dlp.v2.DlpService.CreateStoredInfoType:input_type -> google.privacy.dlp.v2.CreateStoredInfoTypeRequest 18120 130, // 317: google.privacy.dlp.v2.DlpService.UpdateStoredInfoType:input_type -> google.privacy.dlp.v2.UpdateStoredInfoTypeRequest 18121 131, // 318: google.privacy.dlp.v2.DlpService.GetStoredInfoType:input_type -> google.privacy.dlp.v2.GetStoredInfoTypeRequest 18122 132, // 319: google.privacy.dlp.v2.DlpService.ListStoredInfoTypes:input_type -> google.privacy.dlp.v2.ListStoredInfoTypesRequest 18123 134, // 320: google.privacy.dlp.v2.DlpService.DeleteStoredInfoType:input_type -> google.privacy.dlp.v2.DeleteStoredInfoTypeRequest 18124 136, // 321: google.privacy.dlp.v2.DlpService.HybridInspectDlpJob:input_type -> google.privacy.dlp.v2.HybridInspectDlpJobRequest 18125 115, // 322: google.privacy.dlp.v2.DlpService.FinishDlpJob:input_type -> google.privacy.dlp.v2.FinishDlpJobRequest 18126 45, // 323: google.privacy.dlp.v2.DlpService.InspectContent:output_type -> google.privacy.dlp.v2.InspectContentResponse 18127 39, // 324: google.privacy.dlp.v2.DlpService.RedactImage:output_type -> google.privacy.dlp.v2.RedactImageResponse 18128 41, // 325: google.privacy.dlp.v2.DlpService.DeidentifyContent:output_type -> google.privacy.dlp.v2.DeidentifyContentResponse 18129 43, // 326: google.privacy.dlp.v2.DlpService.ReidentifyContent:output_type -> google.privacy.dlp.v2.ReidentifyContentResponse 18130 52, // 327: google.privacy.dlp.v2.DlpService.ListInfoTypes:output_type -> google.privacy.dlp.v2.ListInfoTypesResponse 18131 90, // 328: google.privacy.dlp.v2.DlpService.CreateInspectTemplate:output_type -> google.privacy.dlp.v2.InspectTemplate 18132 90, // 329: google.privacy.dlp.v2.DlpService.UpdateInspectTemplate:output_type -> google.privacy.dlp.v2.InspectTemplate 18133 90, // 330: google.privacy.dlp.v2.DlpService.GetInspectTemplate:output_type -> google.privacy.dlp.v2.InspectTemplate 18134 99, // 331: google.privacy.dlp.v2.DlpService.ListInspectTemplates:output_type -> google.privacy.dlp.v2.ListInspectTemplatesResponse 18135 200, // 332: google.privacy.dlp.v2.DlpService.DeleteInspectTemplate:output_type -> google.protobuf.Empty 18136 91, // 333: google.privacy.dlp.v2.DlpService.CreateDeidentifyTemplate:output_type -> google.privacy.dlp.v2.DeidentifyTemplate 18137 91, // 334: google.privacy.dlp.v2.DlpService.UpdateDeidentifyTemplate:output_type -> google.privacy.dlp.v2.DeidentifyTemplate 18138 91, // 335: google.privacy.dlp.v2.DlpService.GetDeidentifyTemplate:output_type -> google.privacy.dlp.v2.DeidentifyTemplate 18139 121, // 336: google.privacy.dlp.v2.DlpService.ListDeidentifyTemplates:output_type -> google.privacy.dlp.v2.ListDeidentifyTemplatesResponse 18140 200, // 337: google.privacy.dlp.v2.DlpService.DeleteDeidentifyTemplate:output_type -> google.protobuf.Empty 18141 93, // 338: google.privacy.dlp.v2.DlpService.CreateJobTrigger:output_type -> google.privacy.dlp.v2.JobTrigger 18142 93, // 339: google.privacy.dlp.v2.DlpService.UpdateJobTrigger:output_type -> google.privacy.dlp.v2.JobTrigger 18143 139, // 340: google.privacy.dlp.v2.DlpService.HybridInspectJobTrigger:output_type -> google.privacy.dlp.v2.HybridInspectResponse 18144 93, // 341: google.privacy.dlp.v2.DlpService.GetJobTrigger:output_type -> google.privacy.dlp.v2.JobTrigger 18145 107, // 342: google.privacy.dlp.v2.DlpService.ListJobTriggers:output_type -> google.privacy.dlp.v2.ListJobTriggersResponse 18146 200, // 343: google.privacy.dlp.v2.DlpService.DeleteJobTrigger:output_type -> google.protobuf.Empty 18147 110, // 344: google.privacy.dlp.v2.DlpService.ActivateJobTrigger:output_type -> google.privacy.dlp.v2.DlpJob 18148 110, // 345: google.privacy.dlp.v2.DlpService.CreateDlpJob:output_type -> google.privacy.dlp.v2.DlpJob 18149 113, // 346: google.privacy.dlp.v2.DlpService.ListDlpJobs:output_type -> google.privacy.dlp.v2.ListDlpJobsResponse 18150 110, // 347: google.privacy.dlp.v2.DlpService.GetDlpJob:output_type -> google.privacy.dlp.v2.DlpJob 18151 200, // 348: google.privacy.dlp.v2.DlpService.DeleteDlpJob:output_type -> google.protobuf.Empty 18152 200, // 349: google.privacy.dlp.v2.DlpService.CancelDlpJob:output_type -> google.protobuf.Empty 18153 128, // 350: google.privacy.dlp.v2.DlpService.CreateStoredInfoType:output_type -> google.privacy.dlp.v2.StoredInfoType 18154 128, // 351: google.privacy.dlp.v2.DlpService.UpdateStoredInfoType:output_type -> google.privacy.dlp.v2.StoredInfoType 18155 128, // 352: google.privacy.dlp.v2.DlpService.GetStoredInfoType:output_type -> google.privacy.dlp.v2.StoredInfoType 18156 133, // 353: google.privacy.dlp.v2.DlpService.ListStoredInfoTypes:output_type -> google.privacy.dlp.v2.ListStoredInfoTypesResponse 18157 200, // 354: google.privacy.dlp.v2.DlpService.DeleteStoredInfoType:output_type -> google.protobuf.Empty 18158 139, // 355: google.privacy.dlp.v2.DlpService.HybridInspectDlpJob:output_type -> google.privacy.dlp.v2.HybridInspectResponse 18159 200, // 356: google.privacy.dlp.v2.DlpService.FinishDlpJob:output_type -> google.protobuf.Empty 18160 323, // [323:357] is the sub-list for method output_type 18161 289, // [289:323] is the sub-list for method input_type 18162 289, // [289:289] is the sub-list for extension type_name 18163 289, // [289:289] is the sub-list for extension extendee 18164 0, // [0:289] is the sub-list for field type_name 18165} 18166 18167func init() { file_google_privacy_dlp_v2_dlp_proto_init() } 18168func file_google_privacy_dlp_v2_dlp_proto_init() { 18169 if File_google_privacy_dlp_v2_dlp_proto != nil { 18170 return 18171 } 18172 file_google_privacy_dlp_v2_storage_proto_init() 18173 if !protoimpl.UnsafeEnabled { 18174 file_google_privacy_dlp_v2_dlp_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 18175 switch v := v.(*ExcludeInfoTypes); i { 18176 case 0: 18177 return &v.state 18178 case 1: 18179 return &v.sizeCache 18180 case 2: 18181 return &v.unknownFields 18182 default: 18183 return nil 18184 } 18185 } 18186 file_google_privacy_dlp_v2_dlp_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 18187 switch v := v.(*ExclusionRule); i { 18188 case 0: 18189 return &v.state 18190 case 1: 18191 return &v.sizeCache 18192 case 2: 18193 return &v.unknownFields 18194 default: 18195 return nil 18196 } 18197 } 18198 file_google_privacy_dlp_v2_dlp_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 18199 switch v := v.(*InspectionRule); i { 18200 case 0: 18201 return &v.state 18202 case 1: 18203 return &v.sizeCache 18204 case 2: 18205 return &v.unknownFields 18206 default: 18207 return nil 18208 } 18209 } 18210 file_google_privacy_dlp_v2_dlp_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 18211 switch v := v.(*InspectionRuleSet); i { 18212 case 0: 18213 return &v.state 18214 case 1: 18215 return &v.sizeCache 18216 case 2: 18217 return &v.unknownFields 18218 default: 18219 return nil 18220 } 18221 } 18222 file_google_privacy_dlp_v2_dlp_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 18223 switch v := v.(*InspectConfig); i { 18224 case 0: 18225 return &v.state 18226 case 1: 18227 return &v.sizeCache 18228 case 2: 18229 return &v.unknownFields 18230 default: 18231 return nil 18232 } 18233 } 18234 file_google_privacy_dlp_v2_dlp_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 18235 switch v := v.(*ByteContentItem); i { 18236 case 0: 18237 return &v.state 18238 case 1: 18239 return &v.sizeCache 18240 case 2: 18241 return &v.unknownFields 18242 default: 18243 return nil 18244 } 18245 } 18246 file_google_privacy_dlp_v2_dlp_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 18247 switch v := v.(*ContentItem); i { 18248 case 0: 18249 return &v.state 18250 case 1: 18251 return &v.sizeCache 18252 case 2: 18253 return &v.unknownFields 18254 default: 18255 return nil 18256 } 18257 } 18258 file_google_privacy_dlp_v2_dlp_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 18259 switch v := v.(*Table); i { 18260 case 0: 18261 return &v.state 18262 case 1: 18263 return &v.sizeCache 18264 case 2: 18265 return &v.unknownFields 18266 default: 18267 return nil 18268 } 18269 } 18270 file_google_privacy_dlp_v2_dlp_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 18271 switch v := v.(*InspectResult); i { 18272 case 0: 18273 return &v.state 18274 case 1: 18275 return &v.sizeCache 18276 case 2: 18277 return &v.unknownFields 18278 default: 18279 return nil 18280 } 18281 } 18282 file_google_privacy_dlp_v2_dlp_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 18283 switch v := v.(*Finding); i { 18284 case 0: 18285 return &v.state 18286 case 1: 18287 return &v.sizeCache 18288 case 2: 18289 return &v.unknownFields 18290 default: 18291 return nil 18292 } 18293 } 18294 file_google_privacy_dlp_v2_dlp_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 18295 switch v := v.(*Location); i { 18296 case 0: 18297 return &v.state 18298 case 1: 18299 return &v.sizeCache 18300 case 2: 18301 return &v.unknownFields 18302 default: 18303 return nil 18304 } 18305 } 18306 file_google_privacy_dlp_v2_dlp_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 18307 switch v := v.(*ContentLocation); i { 18308 case 0: 18309 return &v.state 18310 case 1: 18311 return &v.sizeCache 18312 case 2: 18313 return &v.unknownFields 18314 default: 18315 return nil 18316 } 18317 } 18318 file_google_privacy_dlp_v2_dlp_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 18319 switch v := v.(*MetadataLocation); i { 18320 case 0: 18321 return &v.state 18322 case 1: 18323 return &v.sizeCache 18324 case 2: 18325 return &v.unknownFields 18326 default: 18327 return nil 18328 } 18329 } 18330 file_google_privacy_dlp_v2_dlp_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 18331 switch v := v.(*StorageMetadataLabel); i { 18332 case 0: 18333 return &v.state 18334 case 1: 18335 return &v.sizeCache 18336 case 2: 18337 return &v.unknownFields 18338 default: 18339 return nil 18340 } 18341 } 18342 file_google_privacy_dlp_v2_dlp_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 18343 switch v := v.(*DocumentLocation); i { 18344 case 0: 18345 return &v.state 18346 case 1: 18347 return &v.sizeCache 18348 case 2: 18349 return &v.unknownFields 18350 default: 18351 return nil 18352 } 18353 } 18354 file_google_privacy_dlp_v2_dlp_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 18355 switch v := v.(*RecordLocation); i { 18356 case 0: 18357 return &v.state 18358 case 1: 18359 return &v.sizeCache 18360 case 2: 18361 return &v.unknownFields 18362 default: 18363 return nil 18364 } 18365 } 18366 file_google_privacy_dlp_v2_dlp_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 18367 switch v := v.(*TableLocation); i { 18368 case 0: 18369 return &v.state 18370 case 1: 18371 return &v.sizeCache 18372 case 2: 18373 return &v.unknownFields 18374 default: 18375 return nil 18376 } 18377 } 18378 file_google_privacy_dlp_v2_dlp_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 18379 switch v := v.(*Container); i { 18380 case 0: 18381 return &v.state 18382 case 1: 18383 return &v.sizeCache 18384 case 2: 18385 return &v.unknownFields 18386 default: 18387 return nil 18388 } 18389 } 18390 file_google_privacy_dlp_v2_dlp_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 18391 switch v := v.(*Range); i { 18392 case 0: 18393 return &v.state 18394 case 1: 18395 return &v.sizeCache 18396 case 2: 18397 return &v.unknownFields 18398 default: 18399 return nil 18400 } 18401 } 18402 file_google_privacy_dlp_v2_dlp_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 18403 switch v := v.(*ImageLocation); i { 18404 case 0: 18405 return &v.state 18406 case 1: 18407 return &v.sizeCache 18408 case 2: 18409 return &v.unknownFields 18410 default: 18411 return nil 18412 } 18413 } 18414 file_google_privacy_dlp_v2_dlp_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 18415 switch v := v.(*BoundingBox); i { 18416 case 0: 18417 return &v.state 18418 case 1: 18419 return &v.sizeCache 18420 case 2: 18421 return &v.unknownFields 18422 default: 18423 return nil 18424 } 18425 } 18426 file_google_privacy_dlp_v2_dlp_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 18427 switch v := v.(*RedactImageRequest); i { 18428 case 0: 18429 return &v.state 18430 case 1: 18431 return &v.sizeCache 18432 case 2: 18433 return &v.unknownFields 18434 default: 18435 return nil 18436 } 18437 } 18438 file_google_privacy_dlp_v2_dlp_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 18439 switch v := v.(*Color); i { 18440 case 0: 18441 return &v.state 18442 case 1: 18443 return &v.sizeCache 18444 case 2: 18445 return &v.unknownFields 18446 default: 18447 return nil 18448 } 18449 } 18450 file_google_privacy_dlp_v2_dlp_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 18451 switch v := v.(*RedactImageResponse); i { 18452 case 0: 18453 return &v.state 18454 case 1: 18455 return &v.sizeCache 18456 case 2: 18457 return &v.unknownFields 18458 default: 18459 return nil 18460 } 18461 } 18462 file_google_privacy_dlp_v2_dlp_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 18463 switch v := v.(*DeidentifyContentRequest); i { 18464 case 0: 18465 return &v.state 18466 case 1: 18467 return &v.sizeCache 18468 case 2: 18469 return &v.unknownFields 18470 default: 18471 return nil 18472 } 18473 } 18474 file_google_privacy_dlp_v2_dlp_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 18475 switch v := v.(*DeidentifyContentResponse); i { 18476 case 0: 18477 return &v.state 18478 case 1: 18479 return &v.sizeCache 18480 case 2: 18481 return &v.unknownFields 18482 default: 18483 return nil 18484 } 18485 } 18486 file_google_privacy_dlp_v2_dlp_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 18487 switch v := v.(*ReidentifyContentRequest); i { 18488 case 0: 18489 return &v.state 18490 case 1: 18491 return &v.sizeCache 18492 case 2: 18493 return &v.unknownFields 18494 default: 18495 return nil 18496 } 18497 } 18498 file_google_privacy_dlp_v2_dlp_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 18499 switch v := v.(*ReidentifyContentResponse); i { 18500 case 0: 18501 return &v.state 18502 case 1: 18503 return &v.sizeCache 18504 case 2: 18505 return &v.unknownFields 18506 default: 18507 return nil 18508 } 18509 } 18510 file_google_privacy_dlp_v2_dlp_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 18511 switch v := v.(*InspectContentRequest); i { 18512 case 0: 18513 return &v.state 18514 case 1: 18515 return &v.sizeCache 18516 case 2: 18517 return &v.unknownFields 18518 default: 18519 return nil 18520 } 18521 } 18522 file_google_privacy_dlp_v2_dlp_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 18523 switch v := v.(*InspectContentResponse); i { 18524 case 0: 18525 return &v.state 18526 case 1: 18527 return &v.sizeCache 18528 case 2: 18529 return &v.unknownFields 18530 default: 18531 return nil 18532 } 18533 } 18534 file_google_privacy_dlp_v2_dlp_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 18535 switch v := v.(*OutputStorageConfig); i { 18536 case 0: 18537 return &v.state 18538 case 1: 18539 return &v.sizeCache 18540 case 2: 18541 return &v.unknownFields 18542 default: 18543 return nil 18544 } 18545 } 18546 file_google_privacy_dlp_v2_dlp_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 18547 switch v := v.(*InfoTypeStats); i { 18548 case 0: 18549 return &v.state 18550 case 1: 18551 return &v.sizeCache 18552 case 2: 18553 return &v.unknownFields 18554 default: 18555 return nil 18556 } 18557 } 18558 file_google_privacy_dlp_v2_dlp_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 18559 switch v := v.(*InspectDataSourceDetails); i { 18560 case 0: 18561 return &v.state 18562 case 1: 18563 return &v.sizeCache 18564 case 2: 18565 return &v.unknownFields 18566 default: 18567 return nil 18568 } 18569 } 18570 file_google_privacy_dlp_v2_dlp_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 18571 switch v := v.(*HybridInspectStatistics); i { 18572 case 0: 18573 return &v.state 18574 case 1: 18575 return &v.sizeCache 18576 case 2: 18577 return &v.unknownFields 18578 default: 18579 return nil 18580 } 18581 } 18582 file_google_privacy_dlp_v2_dlp_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 18583 switch v := v.(*InfoTypeDescription); i { 18584 case 0: 18585 return &v.state 18586 case 1: 18587 return &v.sizeCache 18588 case 2: 18589 return &v.unknownFields 18590 default: 18591 return nil 18592 } 18593 } 18594 file_google_privacy_dlp_v2_dlp_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 18595 switch v := v.(*ListInfoTypesRequest); i { 18596 case 0: 18597 return &v.state 18598 case 1: 18599 return &v.sizeCache 18600 case 2: 18601 return &v.unknownFields 18602 default: 18603 return nil 18604 } 18605 } 18606 file_google_privacy_dlp_v2_dlp_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { 18607 switch v := v.(*ListInfoTypesResponse); i { 18608 case 0: 18609 return &v.state 18610 case 1: 18611 return &v.sizeCache 18612 case 2: 18613 return &v.unknownFields 18614 default: 18615 return nil 18616 } 18617 } 18618 file_google_privacy_dlp_v2_dlp_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { 18619 switch v := v.(*RiskAnalysisJobConfig); i { 18620 case 0: 18621 return &v.state 18622 case 1: 18623 return &v.sizeCache 18624 case 2: 18625 return &v.unknownFields 18626 default: 18627 return nil 18628 } 18629 } 18630 file_google_privacy_dlp_v2_dlp_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { 18631 switch v := v.(*QuasiId); i { 18632 case 0: 18633 return &v.state 18634 case 1: 18635 return &v.sizeCache 18636 case 2: 18637 return &v.unknownFields 18638 default: 18639 return nil 18640 } 18641 } 18642 file_google_privacy_dlp_v2_dlp_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { 18643 switch v := v.(*StatisticalTable); i { 18644 case 0: 18645 return &v.state 18646 case 1: 18647 return &v.sizeCache 18648 case 2: 18649 return &v.unknownFields 18650 default: 18651 return nil 18652 } 18653 } 18654 file_google_privacy_dlp_v2_dlp_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { 18655 switch v := v.(*PrivacyMetric); i { 18656 case 0: 18657 return &v.state 18658 case 1: 18659 return &v.sizeCache 18660 case 2: 18661 return &v.unknownFields 18662 default: 18663 return nil 18664 } 18665 } 18666 file_google_privacy_dlp_v2_dlp_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { 18667 switch v := v.(*AnalyzeDataSourceRiskDetails); i { 18668 case 0: 18669 return &v.state 18670 case 1: 18671 return &v.sizeCache 18672 case 2: 18673 return &v.unknownFields 18674 default: 18675 return nil 18676 } 18677 } 18678 file_google_privacy_dlp_v2_dlp_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { 18679 switch v := v.(*ValueFrequency); i { 18680 case 0: 18681 return &v.state 18682 case 1: 18683 return &v.sizeCache 18684 case 2: 18685 return &v.unknownFields 18686 default: 18687 return nil 18688 } 18689 } 18690 file_google_privacy_dlp_v2_dlp_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { 18691 switch v := v.(*Value); i { 18692 case 0: 18693 return &v.state 18694 case 1: 18695 return &v.sizeCache 18696 case 2: 18697 return &v.unknownFields 18698 default: 18699 return nil 18700 } 18701 } 18702 file_google_privacy_dlp_v2_dlp_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { 18703 switch v := v.(*QuoteInfo); i { 18704 case 0: 18705 return &v.state 18706 case 1: 18707 return &v.sizeCache 18708 case 2: 18709 return &v.unknownFields 18710 default: 18711 return nil 18712 } 18713 } 18714 file_google_privacy_dlp_v2_dlp_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { 18715 switch v := v.(*DateTime); i { 18716 case 0: 18717 return &v.state 18718 case 1: 18719 return &v.sizeCache 18720 case 2: 18721 return &v.unknownFields 18722 default: 18723 return nil 18724 } 18725 } 18726 file_google_privacy_dlp_v2_dlp_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { 18727 switch v := v.(*DeidentifyConfig); i { 18728 case 0: 18729 return &v.state 18730 case 1: 18731 return &v.sizeCache 18732 case 2: 18733 return &v.unknownFields 18734 default: 18735 return nil 18736 } 18737 } 18738 file_google_privacy_dlp_v2_dlp_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { 18739 switch v := v.(*TransformationErrorHandling); i { 18740 case 0: 18741 return &v.state 18742 case 1: 18743 return &v.sizeCache 18744 case 2: 18745 return &v.unknownFields 18746 default: 18747 return nil 18748 } 18749 } 18750 file_google_privacy_dlp_v2_dlp_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { 18751 switch v := v.(*PrimitiveTransformation); i { 18752 case 0: 18753 return &v.state 18754 case 1: 18755 return &v.sizeCache 18756 case 2: 18757 return &v.unknownFields 18758 default: 18759 return nil 18760 } 18761 } 18762 file_google_privacy_dlp_v2_dlp_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { 18763 switch v := v.(*TimePartConfig); i { 18764 case 0: 18765 return &v.state 18766 case 1: 18767 return &v.sizeCache 18768 case 2: 18769 return &v.unknownFields 18770 default: 18771 return nil 18772 } 18773 } 18774 file_google_privacy_dlp_v2_dlp_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { 18775 switch v := v.(*CryptoHashConfig); i { 18776 case 0: 18777 return &v.state 18778 case 1: 18779 return &v.sizeCache 18780 case 2: 18781 return &v.unknownFields 18782 default: 18783 return nil 18784 } 18785 } 18786 file_google_privacy_dlp_v2_dlp_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { 18787 switch v := v.(*CryptoDeterministicConfig); i { 18788 case 0: 18789 return &v.state 18790 case 1: 18791 return &v.sizeCache 18792 case 2: 18793 return &v.unknownFields 18794 default: 18795 return nil 18796 } 18797 } 18798 file_google_privacy_dlp_v2_dlp_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { 18799 switch v := v.(*ReplaceValueConfig); i { 18800 case 0: 18801 return &v.state 18802 case 1: 18803 return &v.sizeCache 18804 case 2: 18805 return &v.unknownFields 18806 default: 18807 return nil 18808 } 18809 } 18810 file_google_privacy_dlp_v2_dlp_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { 18811 switch v := v.(*ReplaceWithInfoTypeConfig); i { 18812 case 0: 18813 return &v.state 18814 case 1: 18815 return &v.sizeCache 18816 case 2: 18817 return &v.unknownFields 18818 default: 18819 return nil 18820 } 18821 } 18822 file_google_privacy_dlp_v2_dlp_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { 18823 switch v := v.(*RedactConfig); i { 18824 case 0: 18825 return &v.state 18826 case 1: 18827 return &v.sizeCache 18828 case 2: 18829 return &v.unknownFields 18830 default: 18831 return nil 18832 } 18833 } 18834 file_google_privacy_dlp_v2_dlp_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { 18835 switch v := v.(*CharsToIgnore); i { 18836 case 0: 18837 return &v.state 18838 case 1: 18839 return &v.sizeCache 18840 case 2: 18841 return &v.unknownFields 18842 default: 18843 return nil 18844 } 18845 } 18846 file_google_privacy_dlp_v2_dlp_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { 18847 switch v := v.(*CharacterMaskConfig); i { 18848 case 0: 18849 return &v.state 18850 case 1: 18851 return &v.sizeCache 18852 case 2: 18853 return &v.unknownFields 18854 default: 18855 return nil 18856 } 18857 } 18858 file_google_privacy_dlp_v2_dlp_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { 18859 switch v := v.(*FixedSizeBucketingConfig); i { 18860 case 0: 18861 return &v.state 18862 case 1: 18863 return &v.sizeCache 18864 case 2: 18865 return &v.unknownFields 18866 default: 18867 return nil 18868 } 18869 } 18870 file_google_privacy_dlp_v2_dlp_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { 18871 switch v := v.(*BucketingConfig); i { 18872 case 0: 18873 return &v.state 18874 case 1: 18875 return &v.sizeCache 18876 case 2: 18877 return &v.unknownFields 18878 default: 18879 return nil 18880 } 18881 } 18882 file_google_privacy_dlp_v2_dlp_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { 18883 switch v := v.(*CryptoReplaceFfxFpeConfig); i { 18884 case 0: 18885 return &v.state 18886 case 1: 18887 return &v.sizeCache 18888 case 2: 18889 return &v.unknownFields 18890 default: 18891 return nil 18892 } 18893 } 18894 file_google_privacy_dlp_v2_dlp_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { 18895 switch v := v.(*CryptoKey); i { 18896 case 0: 18897 return &v.state 18898 case 1: 18899 return &v.sizeCache 18900 case 2: 18901 return &v.unknownFields 18902 default: 18903 return nil 18904 } 18905 } 18906 file_google_privacy_dlp_v2_dlp_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { 18907 switch v := v.(*TransientCryptoKey); i { 18908 case 0: 18909 return &v.state 18910 case 1: 18911 return &v.sizeCache 18912 case 2: 18913 return &v.unknownFields 18914 default: 18915 return nil 18916 } 18917 } 18918 file_google_privacy_dlp_v2_dlp_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { 18919 switch v := v.(*UnwrappedCryptoKey); i { 18920 case 0: 18921 return &v.state 18922 case 1: 18923 return &v.sizeCache 18924 case 2: 18925 return &v.unknownFields 18926 default: 18927 return nil 18928 } 18929 } 18930 file_google_privacy_dlp_v2_dlp_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { 18931 switch v := v.(*KmsWrappedCryptoKey); i { 18932 case 0: 18933 return &v.state 18934 case 1: 18935 return &v.sizeCache 18936 case 2: 18937 return &v.unknownFields 18938 default: 18939 return nil 18940 } 18941 } 18942 file_google_privacy_dlp_v2_dlp_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { 18943 switch v := v.(*DateShiftConfig); i { 18944 case 0: 18945 return &v.state 18946 case 1: 18947 return &v.sizeCache 18948 case 2: 18949 return &v.unknownFields 18950 default: 18951 return nil 18952 } 18953 } 18954 file_google_privacy_dlp_v2_dlp_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { 18955 switch v := v.(*InfoTypeTransformations); i { 18956 case 0: 18957 return &v.state 18958 case 1: 18959 return &v.sizeCache 18960 case 2: 18961 return &v.unknownFields 18962 default: 18963 return nil 18964 } 18965 } 18966 file_google_privacy_dlp_v2_dlp_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { 18967 switch v := v.(*FieldTransformation); i { 18968 case 0: 18969 return &v.state 18970 case 1: 18971 return &v.sizeCache 18972 case 2: 18973 return &v.unknownFields 18974 default: 18975 return nil 18976 } 18977 } 18978 file_google_privacy_dlp_v2_dlp_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { 18979 switch v := v.(*RecordTransformations); i { 18980 case 0: 18981 return &v.state 18982 case 1: 18983 return &v.sizeCache 18984 case 2: 18985 return &v.unknownFields 18986 default: 18987 return nil 18988 } 18989 } 18990 file_google_privacy_dlp_v2_dlp_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { 18991 switch v := v.(*RecordSuppression); i { 18992 case 0: 18993 return &v.state 18994 case 1: 18995 return &v.sizeCache 18996 case 2: 18997 return &v.unknownFields 18998 default: 18999 return nil 19000 } 19001 } 19002 file_google_privacy_dlp_v2_dlp_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { 19003 switch v := v.(*RecordCondition); i { 19004 case 0: 19005 return &v.state 19006 case 1: 19007 return &v.sizeCache 19008 case 2: 19009 return &v.unknownFields 19010 default: 19011 return nil 19012 } 19013 } 19014 file_google_privacy_dlp_v2_dlp_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { 19015 switch v := v.(*TransformationOverview); i { 19016 case 0: 19017 return &v.state 19018 case 1: 19019 return &v.sizeCache 19020 case 2: 19021 return &v.unknownFields 19022 default: 19023 return nil 19024 } 19025 } 19026 file_google_privacy_dlp_v2_dlp_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { 19027 switch v := v.(*TransformationSummary); i { 19028 case 0: 19029 return &v.state 19030 case 1: 19031 return &v.sizeCache 19032 case 2: 19033 return &v.unknownFields 19034 default: 19035 return nil 19036 } 19037 } 19038 file_google_privacy_dlp_v2_dlp_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { 19039 switch v := v.(*Schedule); i { 19040 case 0: 19041 return &v.state 19042 case 1: 19043 return &v.sizeCache 19044 case 2: 19045 return &v.unknownFields 19046 default: 19047 return nil 19048 } 19049 } 19050 file_google_privacy_dlp_v2_dlp_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { 19051 switch v := v.(*Manual); i { 19052 case 0: 19053 return &v.state 19054 case 1: 19055 return &v.sizeCache 19056 case 2: 19057 return &v.unknownFields 19058 default: 19059 return nil 19060 } 19061 } 19062 file_google_privacy_dlp_v2_dlp_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { 19063 switch v := v.(*InspectTemplate); i { 19064 case 0: 19065 return &v.state 19066 case 1: 19067 return &v.sizeCache 19068 case 2: 19069 return &v.unknownFields 19070 default: 19071 return nil 19072 } 19073 } 19074 file_google_privacy_dlp_v2_dlp_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { 19075 switch v := v.(*DeidentifyTemplate); i { 19076 case 0: 19077 return &v.state 19078 case 1: 19079 return &v.sizeCache 19080 case 2: 19081 return &v.unknownFields 19082 default: 19083 return nil 19084 } 19085 } 19086 file_google_privacy_dlp_v2_dlp_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { 19087 switch v := v.(*Error); i { 19088 case 0: 19089 return &v.state 19090 case 1: 19091 return &v.sizeCache 19092 case 2: 19093 return &v.unknownFields 19094 default: 19095 return nil 19096 } 19097 } 19098 file_google_privacy_dlp_v2_dlp_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { 19099 switch v := v.(*JobTrigger); i { 19100 case 0: 19101 return &v.state 19102 case 1: 19103 return &v.sizeCache 19104 case 2: 19105 return &v.unknownFields 19106 default: 19107 return nil 19108 } 19109 } 19110 file_google_privacy_dlp_v2_dlp_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { 19111 switch v := v.(*Action); i { 19112 case 0: 19113 return &v.state 19114 case 1: 19115 return &v.sizeCache 19116 case 2: 19117 return &v.unknownFields 19118 default: 19119 return nil 19120 } 19121 } 19122 file_google_privacy_dlp_v2_dlp_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { 19123 switch v := v.(*CreateInspectTemplateRequest); i { 19124 case 0: 19125 return &v.state 19126 case 1: 19127 return &v.sizeCache 19128 case 2: 19129 return &v.unknownFields 19130 default: 19131 return nil 19132 } 19133 } 19134 file_google_privacy_dlp_v2_dlp_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { 19135 switch v := v.(*UpdateInspectTemplateRequest); i { 19136 case 0: 19137 return &v.state 19138 case 1: 19139 return &v.sizeCache 19140 case 2: 19141 return &v.unknownFields 19142 default: 19143 return nil 19144 } 19145 } 19146 file_google_privacy_dlp_v2_dlp_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { 19147 switch v := v.(*GetInspectTemplateRequest); i { 19148 case 0: 19149 return &v.state 19150 case 1: 19151 return &v.sizeCache 19152 case 2: 19153 return &v.unknownFields 19154 default: 19155 return nil 19156 } 19157 } 19158 file_google_privacy_dlp_v2_dlp_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { 19159 switch v := v.(*ListInspectTemplatesRequest); i { 19160 case 0: 19161 return &v.state 19162 case 1: 19163 return &v.sizeCache 19164 case 2: 19165 return &v.unknownFields 19166 default: 19167 return nil 19168 } 19169 } 19170 file_google_privacy_dlp_v2_dlp_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { 19171 switch v := v.(*ListInspectTemplatesResponse); i { 19172 case 0: 19173 return &v.state 19174 case 1: 19175 return &v.sizeCache 19176 case 2: 19177 return &v.unknownFields 19178 default: 19179 return nil 19180 } 19181 } 19182 file_google_privacy_dlp_v2_dlp_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { 19183 switch v := v.(*DeleteInspectTemplateRequest); i { 19184 case 0: 19185 return &v.state 19186 case 1: 19187 return &v.sizeCache 19188 case 2: 19189 return &v.unknownFields 19190 default: 19191 return nil 19192 } 19193 } 19194 file_google_privacy_dlp_v2_dlp_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { 19195 switch v := v.(*CreateJobTriggerRequest); i { 19196 case 0: 19197 return &v.state 19198 case 1: 19199 return &v.sizeCache 19200 case 2: 19201 return &v.unknownFields 19202 default: 19203 return nil 19204 } 19205 } 19206 file_google_privacy_dlp_v2_dlp_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { 19207 switch v := v.(*ActivateJobTriggerRequest); i { 19208 case 0: 19209 return &v.state 19210 case 1: 19211 return &v.sizeCache 19212 case 2: 19213 return &v.unknownFields 19214 default: 19215 return nil 19216 } 19217 } 19218 file_google_privacy_dlp_v2_dlp_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { 19219 switch v := v.(*UpdateJobTriggerRequest); i { 19220 case 0: 19221 return &v.state 19222 case 1: 19223 return &v.sizeCache 19224 case 2: 19225 return &v.unknownFields 19226 default: 19227 return nil 19228 } 19229 } 19230 file_google_privacy_dlp_v2_dlp_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { 19231 switch v := v.(*GetJobTriggerRequest); i { 19232 case 0: 19233 return &v.state 19234 case 1: 19235 return &v.sizeCache 19236 case 2: 19237 return &v.unknownFields 19238 default: 19239 return nil 19240 } 19241 } 19242 file_google_privacy_dlp_v2_dlp_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { 19243 switch v := v.(*CreateDlpJobRequest); i { 19244 case 0: 19245 return &v.state 19246 case 1: 19247 return &v.sizeCache 19248 case 2: 19249 return &v.unknownFields 19250 default: 19251 return nil 19252 } 19253 } 19254 file_google_privacy_dlp_v2_dlp_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { 19255 switch v := v.(*ListJobTriggersRequest); i { 19256 case 0: 19257 return &v.state 19258 case 1: 19259 return &v.sizeCache 19260 case 2: 19261 return &v.unknownFields 19262 default: 19263 return nil 19264 } 19265 } 19266 file_google_privacy_dlp_v2_dlp_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { 19267 switch v := v.(*ListJobTriggersResponse); i { 19268 case 0: 19269 return &v.state 19270 case 1: 19271 return &v.sizeCache 19272 case 2: 19273 return &v.unknownFields 19274 default: 19275 return nil 19276 } 19277 } 19278 file_google_privacy_dlp_v2_dlp_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { 19279 switch v := v.(*DeleteJobTriggerRequest); i { 19280 case 0: 19281 return &v.state 19282 case 1: 19283 return &v.sizeCache 19284 case 2: 19285 return &v.unknownFields 19286 default: 19287 return nil 19288 } 19289 } 19290 file_google_privacy_dlp_v2_dlp_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { 19291 switch v := v.(*InspectJobConfig); i { 19292 case 0: 19293 return &v.state 19294 case 1: 19295 return &v.sizeCache 19296 case 2: 19297 return &v.unknownFields 19298 default: 19299 return nil 19300 } 19301 } 19302 file_google_privacy_dlp_v2_dlp_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { 19303 switch v := v.(*DlpJob); i { 19304 case 0: 19305 return &v.state 19306 case 1: 19307 return &v.sizeCache 19308 case 2: 19309 return &v.unknownFields 19310 default: 19311 return nil 19312 } 19313 } 19314 file_google_privacy_dlp_v2_dlp_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { 19315 switch v := v.(*GetDlpJobRequest); i { 19316 case 0: 19317 return &v.state 19318 case 1: 19319 return &v.sizeCache 19320 case 2: 19321 return &v.unknownFields 19322 default: 19323 return nil 19324 } 19325 } 19326 file_google_privacy_dlp_v2_dlp_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { 19327 switch v := v.(*ListDlpJobsRequest); i { 19328 case 0: 19329 return &v.state 19330 case 1: 19331 return &v.sizeCache 19332 case 2: 19333 return &v.unknownFields 19334 default: 19335 return nil 19336 } 19337 } 19338 file_google_privacy_dlp_v2_dlp_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { 19339 switch v := v.(*ListDlpJobsResponse); i { 19340 case 0: 19341 return &v.state 19342 case 1: 19343 return &v.sizeCache 19344 case 2: 19345 return &v.unknownFields 19346 default: 19347 return nil 19348 } 19349 } 19350 file_google_privacy_dlp_v2_dlp_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { 19351 switch v := v.(*CancelDlpJobRequest); i { 19352 case 0: 19353 return &v.state 19354 case 1: 19355 return &v.sizeCache 19356 case 2: 19357 return &v.unknownFields 19358 default: 19359 return nil 19360 } 19361 } 19362 file_google_privacy_dlp_v2_dlp_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { 19363 switch v := v.(*FinishDlpJobRequest); i { 19364 case 0: 19365 return &v.state 19366 case 1: 19367 return &v.sizeCache 19368 case 2: 19369 return &v.unknownFields 19370 default: 19371 return nil 19372 } 19373 } 19374 file_google_privacy_dlp_v2_dlp_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { 19375 switch v := v.(*DeleteDlpJobRequest); i { 19376 case 0: 19377 return &v.state 19378 case 1: 19379 return &v.sizeCache 19380 case 2: 19381 return &v.unknownFields 19382 default: 19383 return nil 19384 } 19385 } 19386 file_google_privacy_dlp_v2_dlp_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { 19387 switch v := v.(*CreateDeidentifyTemplateRequest); i { 19388 case 0: 19389 return &v.state 19390 case 1: 19391 return &v.sizeCache 19392 case 2: 19393 return &v.unknownFields 19394 default: 19395 return nil 19396 } 19397 } 19398 file_google_privacy_dlp_v2_dlp_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { 19399 switch v := v.(*UpdateDeidentifyTemplateRequest); i { 19400 case 0: 19401 return &v.state 19402 case 1: 19403 return &v.sizeCache 19404 case 2: 19405 return &v.unknownFields 19406 default: 19407 return nil 19408 } 19409 } 19410 file_google_privacy_dlp_v2_dlp_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { 19411 switch v := v.(*GetDeidentifyTemplateRequest); i { 19412 case 0: 19413 return &v.state 19414 case 1: 19415 return &v.sizeCache 19416 case 2: 19417 return &v.unknownFields 19418 default: 19419 return nil 19420 } 19421 } 19422 file_google_privacy_dlp_v2_dlp_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { 19423 switch v := v.(*ListDeidentifyTemplatesRequest); i { 19424 case 0: 19425 return &v.state 19426 case 1: 19427 return &v.sizeCache 19428 case 2: 19429 return &v.unknownFields 19430 default: 19431 return nil 19432 } 19433 } 19434 file_google_privacy_dlp_v2_dlp_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { 19435 switch v := v.(*ListDeidentifyTemplatesResponse); i { 19436 case 0: 19437 return &v.state 19438 case 1: 19439 return &v.sizeCache 19440 case 2: 19441 return &v.unknownFields 19442 default: 19443 return nil 19444 } 19445 } 19446 file_google_privacy_dlp_v2_dlp_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { 19447 switch v := v.(*DeleteDeidentifyTemplateRequest); i { 19448 case 0: 19449 return &v.state 19450 case 1: 19451 return &v.sizeCache 19452 case 2: 19453 return &v.unknownFields 19454 default: 19455 return nil 19456 } 19457 } 19458 file_google_privacy_dlp_v2_dlp_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { 19459 switch v := v.(*LargeCustomDictionaryConfig); i { 19460 case 0: 19461 return &v.state 19462 case 1: 19463 return &v.sizeCache 19464 case 2: 19465 return &v.unknownFields 19466 default: 19467 return nil 19468 } 19469 } 19470 file_google_privacy_dlp_v2_dlp_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { 19471 switch v := v.(*LargeCustomDictionaryStats); i { 19472 case 0: 19473 return &v.state 19474 case 1: 19475 return &v.sizeCache 19476 case 2: 19477 return &v.unknownFields 19478 default: 19479 return nil 19480 } 19481 } 19482 file_google_privacy_dlp_v2_dlp_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { 19483 switch v := v.(*StoredInfoTypeConfig); i { 19484 case 0: 19485 return &v.state 19486 case 1: 19487 return &v.sizeCache 19488 case 2: 19489 return &v.unknownFields 19490 default: 19491 return nil 19492 } 19493 } 19494 file_google_privacy_dlp_v2_dlp_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { 19495 switch v := v.(*StoredInfoTypeStats); i { 19496 case 0: 19497 return &v.state 19498 case 1: 19499 return &v.sizeCache 19500 case 2: 19501 return &v.unknownFields 19502 default: 19503 return nil 19504 } 19505 } 19506 file_google_privacy_dlp_v2_dlp_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { 19507 switch v := v.(*StoredInfoTypeVersion); i { 19508 case 0: 19509 return &v.state 19510 case 1: 19511 return &v.sizeCache 19512 case 2: 19513 return &v.unknownFields 19514 default: 19515 return nil 19516 } 19517 } 19518 file_google_privacy_dlp_v2_dlp_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { 19519 switch v := v.(*StoredInfoType); i { 19520 case 0: 19521 return &v.state 19522 case 1: 19523 return &v.sizeCache 19524 case 2: 19525 return &v.unknownFields 19526 default: 19527 return nil 19528 } 19529 } 19530 file_google_privacy_dlp_v2_dlp_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { 19531 switch v := v.(*CreateStoredInfoTypeRequest); i { 19532 case 0: 19533 return &v.state 19534 case 1: 19535 return &v.sizeCache 19536 case 2: 19537 return &v.unknownFields 19538 default: 19539 return nil 19540 } 19541 } 19542 file_google_privacy_dlp_v2_dlp_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { 19543 switch v := v.(*UpdateStoredInfoTypeRequest); i { 19544 case 0: 19545 return &v.state 19546 case 1: 19547 return &v.sizeCache 19548 case 2: 19549 return &v.unknownFields 19550 default: 19551 return nil 19552 } 19553 } 19554 file_google_privacy_dlp_v2_dlp_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { 19555 switch v := v.(*GetStoredInfoTypeRequest); i { 19556 case 0: 19557 return &v.state 19558 case 1: 19559 return &v.sizeCache 19560 case 2: 19561 return &v.unknownFields 19562 default: 19563 return nil 19564 } 19565 } 19566 file_google_privacy_dlp_v2_dlp_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { 19567 switch v := v.(*ListStoredInfoTypesRequest); i { 19568 case 0: 19569 return &v.state 19570 case 1: 19571 return &v.sizeCache 19572 case 2: 19573 return &v.unknownFields 19574 default: 19575 return nil 19576 } 19577 } 19578 file_google_privacy_dlp_v2_dlp_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { 19579 switch v := v.(*ListStoredInfoTypesResponse); i { 19580 case 0: 19581 return &v.state 19582 case 1: 19583 return &v.sizeCache 19584 case 2: 19585 return &v.unknownFields 19586 default: 19587 return nil 19588 } 19589 } 19590 file_google_privacy_dlp_v2_dlp_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { 19591 switch v := v.(*DeleteStoredInfoTypeRequest); i { 19592 case 0: 19593 return &v.state 19594 case 1: 19595 return &v.sizeCache 19596 case 2: 19597 return &v.unknownFields 19598 default: 19599 return nil 19600 } 19601 } 19602 file_google_privacy_dlp_v2_dlp_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { 19603 switch v := v.(*HybridInspectJobTriggerRequest); i { 19604 case 0: 19605 return &v.state 19606 case 1: 19607 return &v.sizeCache 19608 case 2: 19609 return &v.unknownFields 19610 default: 19611 return nil 19612 } 19613 } 19614 file_google_privacy_dlp_v2_dlp_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { 19615 switch v := v.(*HybridInspectDlpJobRequest); i { 19616 case 0: 19617 return &v.state 19618 case 1: 19619 return &v.sizeCache 19620 case 2: 19621 return &v.unknownFields 19622 default: 19623 return nil 19624 } 19625 } 19626 file_google_privacy_dlp_v2_dlp_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { 19627 switch v := v.(*HybridContentItem); i { 19628 case 0: 19629 return &v.state 19630 case 1: 19631 return &v.sizeCache 19632 case 2: 19633 return &v.unknownFields 19634 default: 19635 return nil 19636 } 19637 } 19638 file_google_privacy_dlp_v2_dlp_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { 19639 switch v := v.(*HybridFindingDetails); i { 19640 case 0: 19641 return &v.state 19642 case 1: 19643 return &v.sizeCache 19644 case 2: 19645 return &v.unknownFields 19646 default: 19647 return nil 19648 } 19649 } 19650 file_google_privacy_dlp_v2_dlp_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { 19651 switch v := v.(*HybridInspectResponse); i { 19652 case 0: 19653 return &v.state 19654 case 1: 19655 return &v.sizeCache 19656 case 2: 19657 return &v.unknownFields 19658 default: 19659 return nil 19660 } 19661 } 19662 file_google_privacy_dlp_v2_dlp_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { 19663 switch v := v.(*InspectConfig_FindingLimits); i { 19664 case 0: 19665 return &v.state 19666 case 1: 19667 return &v.sizeCache 19668 case 2: 19669 return &v.unknownFields 19670 default: 19671 return nil 19672 } 19673 } 19674 file_google_privacy_dlp_v2_dlp_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { 19675 switch v := v.(*InspectConfig_FindingLimits_InfoTypeLimit); i { 19676 case 0: 19677 return &v.state 19678 case 1: 19679 return &v.sizeCache 19680 case 2: 19681 return &v.unknownFields 19682 default: 19683 return nil 19684 } 19685 } 19686 file_google_privacy_dlp_v2_dlp_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { 19687 switch v := v.(*Table_Row); i { 19688 case 0: 19689 return &v.state 19690 case 1: 19691 return &v.sizeCache 19692 case 2: 19693 return &v.unknownFields 19694 default: 19695 return nil 19696 } 19697 } 19698 file_google_privacy_dlp_v2_dlp_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { 19699 switch v := v.(*RedactImageRequest_ImageRedactionConfig); i { 19700 case 0: 19701 return &v.state 19702 case 1: 19703 return &v.sizeCache 19704 case 2: 19705 return &v.unknownFields 19706 default: 19707 return nil 19708 } 19709 } 19710 file_google_privacy_dlp_v2_dlp_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { 19711 switch v := v.(*InspectDataSourceDetails_RequestedOptions); i { 19712 case 0: 19713 return &v.state 19714 case 1: 19715 return &v.sizeCache 19716 case 2: 19717 return &v.unknownFields 19718 default: 19719 return nil 19720 } 19721 } 19722 file_google_privacy_dlp_v2_dlp_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { 19723 switch v := v.(*InspectDataSourceDetails_Result); i { 19724 case 0: 19725 return &v.state 19726 case 1: 19727 return &v.sizeCache 19728 case 2: 19729 return &v.unknownFields 19730 default: 19731 return nil 19732 } 19733 } 19734 file_google_privacy_dlp_v2_dlp_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { 19735 switch v := v.(*StatisticalTable_QuasiIdentifierField); i { 19736 case 0: 19737 return &v.state 19738 case 1: 19739 return &v.sizeCache 19740 case 2: 19741 return &v.unknownFields 19742 default: 19743 return nil 19744 } 19745 } 19746 file_google_privacy_dlp_v2_dlp_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { 19747 switch v := v.(*PrivacyMetric_NumericalStatsConfig); i { 19748 case 0: 19749 return &v.state 19750 case 1: 19751 return &v.sizeCache 19752 case 2: 19753 return &v.unknownFields 19754 default: 19755 return nil 19756 } 19757 } 19758 file_google_privacy_dlp_v2_dlp_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { 19759 switch v := v.(*PrivacyMetric_CategoricalStatsConfig); i { 19760 case 0: 19761 return &v.state 19762 case 1: 19763 return &v.sizeCache 19764 case 2: 19765 return &v.unknownFields 19766 default: 19767 return nil 19768 } 19769 } 19770 file_google_privacy_dlp_v2_dlp_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { 19771 switch v := v.(*PrivacyMetric_KAnonymityConfig); i { 19772 case 0: 19773 return &v.state 19774 case 1: 19775 return &v.sizeCache 19776 case 2: 19777 return &v.unknownFields 19778 default: 19779 return nil 19780 } 19781 } 19782 file_google_privacy_dlp_v2_dlp_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { 19783 switch v := v.(*PrivacyMetric_LDiversityConfig); i { 19784 case 0: 19785 return &v.state 19786 case 1: 19787 return &v.sizeCache 19788 case 2: 19789 return &v.unknownFields 19790 default: 19791 return nil 19792 } 19793 } 19794 file_google_privacy_dlp_v2_dlp_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { 19795 switch v := v.(*PrivacyMetric_KMapEstimationConfig); i { 19796 case 0: 19797 return &v.state 19798 case 1: 19799 return &v.sizeCache 19800 case 2: 19801 return &v.unknownFields 19802 default: 19803 return nil 19804 } 19805 } 19806 file_google_privacy_dlp_v2_dlp_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { 19807 switch v := v.(*PrivacyMetric_DeltaPresenceEstimationConfig); i { 19808 case 0: 19809 return &v.state 19810 case 1: 19811 return &v.sizeCache 19812 case 2: 19813 return &v.unknownFields 19814 default: 19815 return nil 19816 } 19817 } 19818 file_google_privacy_dlp_v2_dlp_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { 19819 switch v := v.(*PrivacyMetric_KMapEstimationConfig_TaggedField); i { 19820 case 0: 19821 return &v.state 19822 case 1: 19823 return &v.sizeCache 19824 case 2: 19825 return &v.unknownFields 19826 default: 19827 return nil 19828 } 19829 } 19830 file_google_privacy_dlp_v2_dlp_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { 19831 switch v := v.(*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable); i { 19832 case 0: 19833 return &v.state 19834 case 1: 19835 return &v.sizeCache 19836 case 2: 19837 return &v.unknownFields 19838 default: 19839 return nil 19840 } 19841 } 19842 file_google_privacy_dlp_v2_dlp_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { 19843 switch v := v.(*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField); i { 19844 case 0: 19845 return &v.state 19846 case 1: 19847 return &v.sizeCache 19848 case 2: 19849 return &v.unknownFields 19850 default: 19851 return nil 19852 } 19853 } 19854 file_google_privacy_dlp_v2_dlp_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { 19855 switch v := v.(*AnalyzeDataSourceRiskDetails_NumericalStatsResult); i { 19856 case 0: 19857 return &v.state 19858 case 1: 19859 return &v.sizeCache 19860 case 2: 19861 return &v.unknownFields 19862 default: 19863 return nil 19864 } 19865 } 19866 file_google_privacy_dlp_v2_dlp_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { 19867 switch v := v.(*AnalyzeDataSourceRiskDetails_CategoricalStatsResult); i { 19868 case 0: 19869 return &v.state 19870 case 1: 19871 return &v.sizeCache 19872 case 2: 19873 return &v.unknownFields 19874 default: 19875 return nil 19876 } 19877 } 19878 file_google_privacy_dlp_v2_dlp_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { 19879 switch v := v.(*AnalyzeDataSourceRiskDetails_KAnonymityResult); i { 19880 case 0: 19881 return &v.state 19882 case 1: 19883 return &v.sizeCache 19884 case 2: 19885 return &v.unknownFields 19886 default: 19887 return nil 19888 } 19889 } 19890 file_google_privacy_dlp_v2_dlp_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { 19891 switch v := v.(*AnalyzeDataSourceRiskDetails_LDiversityResult); i { 19892 case 0: 19893 return &v.state 19894 case 1: 19895 return &v.sizeCache 19896 case 2: 19897 return &v.unknownFields 19898 default: 19899 return nil 19900 } 19901 } 19902 file_google_privacy_dlp_v2_dlp_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { 19903 switch v := v.(*AnalyzeDataSourceRiskDetails_KMapEstimationResult); i { 19904 case 0: 19905 return &v.state 19906 case 1: 19907 return &v.sizeCache 19908 case 2: 19909 return &v.unknownFields 19910 default: 19911 return nil 19912 } 19913 } 19914 file_google_privacy_dlp_v2_dlp_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { 19915 switch v := v.(*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult); i { 19916 case 0: 19917 return &v.state 19918 case 1: 19919 return &v.sizeCache 19920 case 2: 19921 return &v.unknownFields 19922 default: 19923 return nil 19924 } 19925 } 19926 file_google_privacy_dlp_v2_dlp_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { 19927 switch v := v.(*AnalyzeDataSourceRiskDetails_RequestedRiskAnalysisOptions); i { 19928 case 0: 19929 return &v.state 19930 case 1: 19931 return &v.sizeCache 19932 case 2: 19933 return &v.unknownFields 19934 default: 19935 return nil 19936 } 19937 } 19938 file_google_privacy_dlp_v2_dlp_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { 19939 switch v := v.(*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket); i { 19940 case 0: 19941 return &v.state 19942 case 1: 19943 return &v.sizeCache 19944 case 2: 19945 return &v.unknownFields 19946 default: 19947 return nil 19948 } 19949 } 19950 file_google_privacy_dlp_v2_dlp_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { 19951 switch v := v.(*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass); i { 19952 case 0: 19953 return &v.state 19954 case 1: 19955 return &v.sizeCache 19956 case 2: 19957 return &v.unknownFields 19958 default: 19959 return nil 19960 } 19961 } 19962 file_google_privacy_dlp_v2_dlp_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { 19963 switch v := v.(*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket); i { 19964 case 0: 19965 return &v.state 19966 case 1: 19967 return &v.sizeCache 19968 case 2: 19969 return &v.unknownFields 19970 default: 19971 return nil 19972 } 19973 } 19974 file_google_privacy_dlp_v2_dlp_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { 19975 switch v := v.(*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass); i { 19976 case 0: 19977 return &v.state 19978 case 1: 19979 return &v.sizeCache 19980 case 2: 19981 return &v.unknownFields 19982 default: 19983 return nil 19984 } 19985 } 19986 file_google_privacy_dlp_v2_dlp_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { 19987 switch v := v.(*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket); i { 19988 case 0: 19989 return &v.state 19990 case 1: 19991 return &v.sizeCache 19992 case 2: 19993 return &v.unknownFields 19994 default: 19995 return nil 19996 } 19997 } 19998 file_google_privacy_dlp_v2_dlp_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { 19999 switch v := v.(*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues); i { 20000 case 0: 20001 return &v.state 20002 case 1: 20003 return &v.sizeCache 20004 case 2: 20005 return &v.unknownFields 20006 default: 20007 return nil 20008 } 20009 } 20010 file_google_privacy_dlp_v2_dlp_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { 20011 switch v := v.(*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket); i { 20012 case 0: 20013 return &v.state 20014 case 1: 20015 return &v.sizeCache 20016 case 2: 20017 return &v.unknownFields 20018 default: 20019 return nil 20020 } 20021 } 20022 file_google_privacy_dlp_v2_dlp_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { 20023 switch v := v.(*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues); i { 20024 case 0: 20025 return &v.state 20026 case 1: 20027 return &v.sizeCache 20028 case 2: 20029 return &v.unknownFields 20030 default: 20031 return nil 20032 } 20033 } 20034 file_google_privacy_dlp_v2_dlp_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { 20035 switch v := v.(*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket); i { 20036 case 0: 20037 return &v.state 20038 case 1: 20039 return &v.sizeCache 20040 case 2: 20041 return &v.unknownFields 20042 default: 20043 return nil 20044 } 20045 } 20046 file_google_privacy_dlp_v2_dlp_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { 20047 switch v := v.(*DateTime_TimeZone); i { 20048 case 0: 20049 return &v.state 20050 case 1: 20051 return &v.sizeCache 20052 case 2: 20053 return &v.unknownFields 20054 default: 20055 return nil 20056 } 20057 } 20058 file_google_privacy_dlp_v2_dlp_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { 20059 switch v := v.(*TransformationErrorHandling_ThrowError); i { 20060 case 0: 20061 return &v.state 20062 case 1: 20063 return &v.sizeCache 20064 case 2: 20065 return &v.unknownFields 20066 default: 20067 return nil 20068 } 20069 } 20070 file_google_privacy_dlp_v2_dlp_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { 20071 switch v := v.(*TransformationErrorHandling_LeaveUntransformed); i { 20072 case 0: 20073 return &v.state 20074 case 1: 20075 return &v.sizeCache 20076 case 2: 20077 return &v.unknownFields 20078 default: 20079 return nil 20080 } 20081 } 20082 file_google_privacy_dlp_v2_dlp_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { 20083 switch v := v.(*BucketingConfig_Bucket); i { 20084 case 0: 20085 return &v.state 20086 case 1: 20087 return &v.sizeCache 20088 case 2: 20089 return &v.unknownFields 20090 default: 20091 return nil 20092 } 20093 } 20094 file_google_privacy_dlp_v2_dlp_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { 20095 switch v := v.(*InfoTypeTransformations_InfoTypeTransformation); i { 20096 case 0: 20097 return &v.state 20098 case 1: 20099 return &v.sizeCache 20100 case 2: 20101 return &v.unknownFields 20102 default: 20103 return nil 20104 } 20105 } 20106 file_google_privacy_dlp_v2_dlp_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { 20107 switch v := v.(*RecordCondition_Condition); i { 20108 case 0: 20109 return &v.state 20110 case 1: 20111 return &v.sizeCache 20112 case 2: 20113 return &v.unknownFields 20114 default: 20115 return nil 20116 } 20117 } 20118 file_google_privacy_dlp_v2_dlp_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { 20119 switch v := v.(*RecordCondition_Conditions); i { 20120 case 0: 20121 return &v.state 20122 case 1: 20123 return &v.sizeCache 20124 case 2: 20125 return &v.unknownFields 20126 default: 20127 return nil 20128 } 20129 } 20130 file_google_privacy_dlp_v2_dlp_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { 20131 switch v := v.(*RecordCondition_Expressions); i { 20132 case 0: 20133 return &v.state 20134 case 1: 20135 return &v.sizeCache 20136 case 2: 20137 return &v.unknownFields 20138 default: 20139 return nil 20140 } 20141 } 20142 file_google_privacy_dlp_v2_dlp_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { 20143 switch v := v.(*TransformationSummary_SummaryResult); i { 20144 case 0: 20145 return &v.state 20146 case 1: 20147 return &v.sizeCache 20148 case 2: 20149 return &v.unknownFields 20150 default: 20151 return nil 20152 } 20153 } 20154 file_google_privacy_dlp_v2_dlp_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { 20155 switch v := v.(*JobTrigger_Trigger); i { 20156 case 0: 20157 return &v.state 20158 case 1: 20159 return &v.sizeCache 20160 case 2: 20161 return &v.unknownFields 20162 default: 20163 return nil 20164 } 20165 } 20166 file_google_privacy_dlp_v2_dlp_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { 20167 switch v := v.(*Action_SaveFindings); i { 20168 case 0: 20169 return &v.state 20170 case 1: 20171 return &v.sizeCache 20172 case 2: 20173 return &v.unknownFields 20174 default: 20175 return nil 20176 } 20177 } 20178 file_google_privacy_dlp_v2_dlp_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { 20179 switch v := v.(*Action_PublishToPubSub); i { 20180 case 0: 20181 return &v.state 20182 case 1: 20183 return &v.sizeCache 20184 case 2: 20185 return &v.unknownFields 20186 default: 20187 return nil 20188 } 20189 } 20190 file_google_privacy_dlp_v2_dlp_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { 20191 switch v := v.(*Action_PublishSummaryToCscc); i { 20192 case 0: 20193 return &v.state 20194 case 1: 20195 return &v.sizeCache 20196 case 2: 20197 return &v.unknownFields 20198 default: 20199 return nil 20200 } 20201 } 20202 file_google_privacy_dlp_v2_dlp_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { 20203 switch v := v.(*Action_PublishFindingsToCloudDataCatalog); i { 20204 case 0: 20205 return &v.state 20206 case 1: 20207 return &v.sizeCache 20208 case 2: 20209 return &v.unknownFields 20210 default: 20211 return nil 20212 } 20213 } 20214 file_google_privacy_dlp_v2_dlp_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { 20215 switch v := v.(*Action_JobNotificationEmails); i { 20216 case 0: 20217 return &v.state 20218 case 1: 20219 return &v.sizeCache 20220 case 2: 20221 return &v.unknownFields 20222 default: 20223 return nil 20224 } 20225 } 20226 file_google_privacy_dlp_v2_dlp_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { 20227 switch v := v.(*Action_PublishToStackdriver); i { 20228 case 0: 20229 return &v.state 20230 case 1: 20231 return &v.sizeCache 20232 case 2: 20233 return &v.unknownFields 20234 default: 20235 return nil 20236 } 20237 } 20238 } 20239 file_google_privacy_dlp_v2_dlp_proto_msgTypes[1].OneofWrappers = []interface{}{ 20240 (*ExclusionRule_Dictionary)(nil), 20241 (*ExclusionRule_Regex)(nil), 20242 (*ExclusionRule_ExcludeInfoTypes)(nil), 20243 } 20244 file_google_privacy_dlp_v2_dlp_proto_msgTypes[2].OneofWrappers = []interface{}{ 20245 (*InspectionRule_HotwordRule)(nil), 20246 (*InspectionRule_ExclusionRule)(nil), 20247 } 20248 file_google_privacy_dlp_v2_dlp_proto_msgTypes[6].OneofWrappers = []interface{}{ 20249 (*ContentItem_Value)(nil), 20250 (*ContentItem_Table)(nil), 20251 (*ContentItem_ByteItem)(nil), 20252 } 20253 file_google_privacy_dlp_v2_dlp_proto_msgTypes[11].OneofWrappers = []interface{}{ 20254 (*ContentLocation_RecordLocation)(nil), 20255 (*ContentLocation_ImageLocation)(nil), 20256 (*ContentLocation_DocumentLocation)(nil), 20257 (*ContentLocation_MetadataLocation)(nil), 20258 } 20259 file_google_privacy_dlp_v2_dlp_proto_msgTypes[12].OneofWrappers = []interface{}{ 20260 (*MetadataLocation_StorageLabel)(nil), 20261 } 20262 file_google_privacy_dlp_v2_dlp_proto_msgTypes[30].OneofWrappers = []interface{}{ 20263 (*OutputStorageConfig_Table)(nil), 20264 } 20265 file_google_privacy_dlp_v2_dlp_proto_msgTypes[38].OneofWrappers = []interface{}{ 20266 (*QuasiId_InfoType)(nil), 20267 (*QuasiId_CustomTag)(nil), 20268 (*QuasiId_Inferred)(nil), 20269 } 20270 file_google_privacy_dlp_v2_dlp_proto_msgTypes[40].OneofWrappers = []interface{}{ 20271 (*PrivacyMetric_NumericalStatsConfig_)(nil), 20272 (*PrivacyMetric_CategoricalStatsConfig_)(nil), 20273 (*PrivacyMetric_KAnonymityConfig_)(nil), 20274 (*PrivacyMetric_LDiversityConfig_)(nil), 20275 (*PrivacyMetric_KMapEstimationConfig_)(nil), 20276 (*PrivacyMetric_DeltaPresenceEstimationConfig_)(nil), 20277 } 20278 file_google_privacy_dlp_v2_dlp_proto_msgTypes[41].OneofWrappers = []interface{}{ 20279 (*AnalyzeDataSourceRiskDetails_NumericalStatsResult_)(nil), 20280 (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_)(nil), 20281 (*AnalyzeDataSourceRiskDetails_KAnonymityResult_)(nil), 20282 (*AnalyzeDataSourceRiskDetails_LDiversityResult_)(nil), 20283 (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_)(nil), 20284 (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_)(nil), 20285 } 20286 file_google_privacy_dlp_v2_dlp_proto_msgTypes[43].OneofWrappers = []interface{}{ 20287 (*Value_IntegerValue)(nil), 20288 (*Value_FloatValue)(nil), 20289 (*Value_StringValue)(nil), 20290 (*Value_BooleanValue)(nil), 20291 (*Value_TimestampValue)(nil), 20292 (*Value_TimeValue)(nil), 20293 (*Value_DateValue)(nil), 20294 (*Value_DayOfWeekValue)(nil), 20295 } 20296 file_google_privacy_dlp_v2_dlp_proto_msgTypes[44].OneofWrappers = []interface{}{ 20297 (*QuoteInfo_DateTime)(nil), 20298 } 20299 file_google_privacy_dlp_v2_dlp_proto_msgTypes[46].OneofWrappers = []interface{}{ 20300 (*DeidentifyConfig_InfoTypeTransformations)(nil), 20301 (*DeidentifyConfig_RecordTransformations)(nil), 20302 } 20303 file_google_privacy_dlp_v2_dlp_proto_msgTypes[47].OneofWrappers = []interface{}{ 20304 (*TransformationErrorHandling_ThrowError_)(nil), 20305 (*TransformationErrorHandling_LeaveUntransformed_)(nil), 20306 } 20307 file_google_privacy_dlp_v2_dlp_proto_msgTypes[48].OneofWrappers = []interface{}{ 20308 (*PrimitiveTransformation_ReplaceConfig)(nil), 20309 (*PrimitiveTransformation_RedactConfig)(nil), 20310 (*PrimitiveTransformation_CharacterMaskConfig)(nil), 20311 (*PrimitiveTransformation_CryptoReplaceFfxFpeConfig)(nil), 20312 (*PrimitiveTransformation_FixedSizeBucketingConfig)(nil), 20313 (*PrimitiveTransformation_BucketingConfig)(nil), 20314 (*PrimitiveTransformation_ReplaceWithInfoTypeConfig)(nil), 20315 (*PrimitiveTransformation_TimePartConfig)(nil), 20316 (*PrimitiveTransformation_CryptoHashConfig)(nil), 20317 (*PrimitiveTransformation_DateShiftConfig)(nil), 20318 (*PrimitiveTransformation_CryptoDeterministicConfig)(nil), 20319 } 20320 file_google_privacy_dlp_v2_dlp_proto_msgTypes[55].OneofWrappers = []interface{}{ 20321 (*CharsToIgnore_CharactersToSkip)(nil), 20322 (*CharsToIgnore_CommonCharactersToIgnore)(nil), 20323 } 20324 file_google_privacy_dlp_v2_dlp_proto_msgTypes[59].OneofWrappers = []interface{}{ 20325 (*CryptoReplaceFfxFpeConfig_CommonAlphabet)(nil), 20326 (*CryptoReplaceFfxFpeConfig_CustomAlphabet)(nil), 20327 (*CryptoReplaceFfxFpeConfig_Radix)(nil), 20328 } 20329 file_google_privacy_dlp_v2_dlp_proto_msgTypes[60].OneofWrappers = []interface{}{ 20330 (*CryptoKey_Transient)(nil), 20331 (*CryptoKey_Unwrapped)(nil), 20332 (*CryptoKey_KmsWrapped)(nil), 20333 } 20334 file_google_privacy_dlp_v2_dlp_proto_msgTypes[64].OneofWrappers = []interface{}{ 20335 (*DateShiftConfig_CryptoKey)(nil), 20336 } 20337 file_google_privacy_dlp_v2_dlp_proto_msgTypes[66].OneofWrappers = []interface{}{ 20338 (*FieldTransformation_PrimitiveTransformation)(nil), 20339 (*FieldTransformation_InfoTypeTransformations)(nil), 20340 } 20341 file_google_privacy_dlp_v2_dlp_proto_msgTypes[72].OneofWrappers = []interface{}{ 20342 (*Schedule_RecurrencePeriodDuration)(nil), 20343 } 20344 file_google_privacy_dlp_v2_dlp_proto_msgTypes[77].OneofWrappers = []interface{}{ 20345 (*JobTrigger_InspectJob)(nil), 20346 } 20347 file_google_privacy_dlp_v2_dlp_proto_msgTypes[78].OneofWrappers = []interface{}{ 20348 (*Action_SaveFindings_)(nil), 20349 (*Action_PubSub)(nil), 20350 (*Action_PublishSummaryToCscc_)(nil), 20351 (*Action_PublishFindingsToCloudDataCatalog_)(nil), 20352 (*Action_JobNotificationEmails_)(nil), 20353 (*Action_PublishToStackdriver_)(nil), 20354 } 20355 file_google_privacy_dlp_v2_dlp_proto_msgTypes[89].OneofWrappers = []interface{}{ 20356 (*CreateDlpJobRequest_InspectJob)(nil), 20357 (*CreateDlpJobRequest_RiskJob)(nil), 20358 } 20359 file_google_privacy_dlp_v2_dlp_proto_msgTypes[94].OneofWrappers = []interface{}{ 20360 (*DlpJob_RiskDetails)(nil), 20361 (*DlpJob_InspectDetails)(nil), 20362 } 20363 file_google_privacy_dlp_v2_dlp_proto_msgTypes[107].OneofWrappers = []interface{}{ 20364 (*LargeCustomDictionaryConfig_CloudStorageFileSet)(nil), 20365 (*LargeCustomDictionaryConfig_BigQueryField)(nil), 20366 } 20367 file_google_privacy_dlp_v2_dlp_proto_msgTypes[109].OneofWrappers = []interface{}{ 20368 (*StoredInfoTypeConfig_LargeCustomDictionary)(nil), 20369 (*StoredInfoTypeConfig_Dictionary)(nil), 20370 (*StoredInfoTypeConfig_Regex)(nil), 20371 } 20372 file_google_privacy_dlp_v2_dlp_proto_msgTypes[110].OneofWrappers = []interface{}{ 20373 (*StoredInfoTypeStats_LargeCustomDictionary)(nil), 20374 } 20375 file_google_privacy_dlp_v2_dlp_proto_msgTypes[128].OneofWrappers = []interface{}{ 20376 (*RedactImageRequest_ImageRedactionConfig_InfoType)(nil), 20377 (*RedactImageRequest_ImageRedactionConfig_RedactAllText)(nil), 20378 } 20379 file_google_privacy_dlp_v2_dlp_proto_msgTypes[138].OneofWrappers = []interface{}{ 20380 (*PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType)(nil), 20381 (*PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag)(nil), 20382 (*PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred)(nil), 20383 } 20384 file_google_privacy_dlp_v2_dlp_proto_msgTypes[164].OneofWrappers = []interface{}{ 20385 (*RecordCondition_Expressions_Conditions)(nil), 20386 } 20387 file_google_privacy_dlp_v2_dlp_proto_msgTypes[166].OneofWrappers = []interface{}{ 20388 (*JobTrigger_Trigger_Schedule)(nil), 20389 (*JobTrigger_Trigger_Manual)(nil), 20390 } 20391 type x struct{} 20392 out := protoimpl.TypeBuilder{ 20393 File: protoimpl.DescBuilder{ 20394 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 20395 RawDescriptor: file_google_privacy_dlp_v2_dlp_proto_rawDesc, 20396 NumEnums: 16, 20397 NumMessages: 174, 20398 NumExtensions: 0, 20399 NumServices: 1, 20400 }, 20401 GoTypes: file_google_privacy_dlp_v2_dlp_proto_goTypes, 20402 DependencyIndexes: file_google_privacy_dlp_v2_dlp_proto_depIdxs, 20403 EnumInfos: file_google_privacy_dlp_v2_dlp_proto_enumTypes, 20404 MessageInfos: file_google_privacy_dlp_v2_dlp_proto_msgTypes, 20405 }.Build() 20406 File_google_privacy_dlp_v2_dlp_proto = out.File 20407 file_google_privacy_dlp_v2_dlp_proto_rawDesc = nil 20408 file_google_privacy_dlp_v2_dlp_proto_goTypes = nil 20409 file_google_privacy_dlp_v2_dlp_proto_depIdxs = nil 20410} 20411 20412// Reference imports to suppress errors if they are not otherwise used. 20413var _ context.Context 20414var _ grpc.ClientConnInterface 20415 20416// This is a compile-time assertion to ensure that this generated file 20417// is compatible with the grpc package it is being compiled against. 20418const _ = grpc.SupportPackageIsVersion6 20419 20420// DlpServiceClient is the client API for DlpService service. 20421// 20422// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 20423type DlpServiceClient interface { 20424 // Finds potentially sensitive info in content. 20425 // This method has limits on input size, processing time, and output size. 20426 // 20427 // When no InfoTypes or CustomInfoTypes are specified in this request, the 20428 // system will automatically choose what detectors to run. By default this may 20429 // be all types, but may change over time as detectors are updated. 20430 // 20431 // For how to guides, see https://cloud.google.com/dlp/docs/inspecting-images 20432 // and https://cloud.google.com/dlp/docs/inspecting-text, 20433 InspectContent(ctx context.Context, in *InspectContentRequest, opts ...grpc.CallOption) (*InspectContentResponse, error) 20434 // Redacts potentially sensitive info from an image. 20435 // This method has limits on input size, processing time, and output size. 20436 // See https://cloud.google.com/dlp/docs/redacting-sensitive-data-images to 20437 // learn more. 20438 // 20439 // When no InfoTypes or CustomInfoTypes are specified in this request, the 20440 // system will automatically choose what detectors to run. By default this may 20441 // be all types, but may change over time as detectors are updated. 20442 RedactImage(ctx context.Context, in *RedactImageRequest, opts ...grpc.CallOption) (*RedactImageResponse, error) 20443 // De-identifies potentially sensitive info from a ContentItem. 20444 // This method has limits on input size and output size. 20445 // See https://cloud.google.com/dlp/docs/deidentify-sensitive-data to 20446 // learn more. 20447 // 20448 // When no InfoTypes or CustomInfoTypes are specified in this request, the 20449 // system will automatically choose what detectors to run. By default this may 20450 // be all types, but may change over time as detectors are updated. 20451 DeidentifyContent(ctx context.Context, in *DeidentifyContentRequest, opts ...grpc.CallOption) (*DeidentifyContentResponse, error) 20452 // Re-identifies content that has been de-identified. 20453 // See 20454 // https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example 20455 // to learn more. 20456 ReidentifyContent(ctx context.Context, in *ReidentifyContentRequest, opts ...grpc.CallOption) (*ReidentifyContentResponse, error) 20457 // Returns a list of the sensitive information types that the DLP API 20458 // supports. See https://cloud.google.com/dlp/docs/infotypes-reference to 20459 // learn more. 20460 ListInfoTypes(ctx context.Context, in *ListInfoTypesRequest, opts ...grpc.CallOption) (*ListInfoTypesResponse, error) 20461 // Creates an InspectTemplate for re-using frequently used configuration 20462 // for inspecting content, images, and storage. 20463 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20464 CreateInspectTemplate(ctx context.Context, in *CreateInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) 20465 // Updates the InspectTemplate. 20466 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20467 UpdateInspectTemplate(ctx context.Context, in *UpdateInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) 20468 // Gets an InspectTemplate. 20469 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20470 GetInspectTemplate(ctx context.Context, in *GetInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) 20471 // Lists InspectTemplates. 20472 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20473 ListInspectTemplates(ctx context.Context, in *ListInspectTemplatesRequest, opts ...grpc.CallOption) (*ListInspectTemplatesResponse, error) 20474 // Deletes an InspectTemplate. 20475 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20476 DeleteInspectTemplate(ctx context.Context, in *DeleteInspectTemplateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 20477 // Creates a DeidentifyTemplate for re-using frequently used configuration 20478 // for de-identifying content, images, and storage. 20479 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20480 // more. 20481 CreateDeidentifyTemplate(ctx context.Context, in *CreateDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) 20482 // Updates the DeidentifyTemplate. 20483 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20484 // more. 20485 UpdateDeidentifyTemplate(ctx context.Context, in *UpdateDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) 20486 // Gets a DeidentifyTemplate. 20487 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20488 // more. 20489 GetDeidentifyTemplate(ctx context.Context, in *GetDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) 20490 // Lists DeidentifyTemplates. 20491 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20492 // more. 20493 ListDeidentifyTemplates(ctx context.Context, in *ListDeidentifyTemplatesRequest, opts ...grpc.CallOption) (*ListDeidentifyTemplatesResponse, error) 20494 // Deletes a DeidentifyTemplate. 20495 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20496 // more. 20497 DeleteDeidentifyTemplate(ctx context.Context, in *DeleteDeidentifyTemplateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 20498 // Creates a job trigger to run DLP actions such as scanning storage for 20499 // sensitive information on a set schedule. 20500 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20501 CreateJobTrigger(ctx context.Context, in *CreateJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) 20502 // Updates a job trigger. 20503 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20504 UpdateJobTrigger(ctx context.Context, in *UpdateJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) 20505 // Inspect hybrid content and store findings to a trigger. The inspection 20506 // will be processed asynchronously. To review the findings monitor the 20507 // jobs within the trigger. 20508 // Early access feature is in a pre-release state and might change or have 20509 // limited support. For more information, see 20510 // https://cloud.google.com/products#product-launch-stages. 20511 HybridInspectJobTrigger(ctx context.Context, in *HybridInspectJobTriggerRequest, opts ...grpc.CallOption) (*HybridInspectResponse, error) 20512 // Gets a job trigger. 20513 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20514 GetJobTrigger(ctx context.Context, in *GetJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) 20515 // Lists job triggers. 20516 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20517 ListJobTriggers(ctx context.Context, in *ListJobTriggersRequest, opts ...grpc.CallOption) (*ListJobTriggersResponse, error) 20518 // Deletes a job trigger. 20519 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20520 DeleteJobTrigger(ctx context.Context, in *DeleteJobTriggerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 20521 // Activate a job trigger. Causes the immediate execute of a trigger 20522 // instead of waiting on the trigger event to occur. 20523 ActivateJobTrigger(ctx context.Context, in *ActivateJobTriggerRequest, opts ...grpc.CallOption) (*DlpJob, error) 20524 // Creates a new job to inspect storage or calculate risk metrics. 20525 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20526 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20527 // 20528 // When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the 20529 // system will automatically choose what detectors to run. By default this may 20530 // be all types, but may change over time as detectors are updated. 20531 CreateDlpJob(ctx context.Context, in *CreateDlpJobRequest, opts ...grpc.CallOption) (*DlpJob, error) 20532 // Lists DlpJobs that match the specified filter in the request. 20533 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20534 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20535 ListDlpJobs(ctx context.Context, in *ListDlpJobsRequest, opts ...grpc.CallOption) (*ListDlpJobsResponse, error) 20536 // Gets the latest state of a long-running DlpJob. 20537 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20538 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20539 GetDlpJob(ctx context.Context, in *GetDlpJobRequest, opts ...grpc.CallOption) (*DlpJob, error) 20540 // Deletes a long-running DlpJob. This method indicates that the client is 20541 // no longer interested in the DlpJob result. The job will be cancelled if 20542 // possible. 20543 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20544 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20545 DeleteDlpJob(ctx context.Context, in *DeleteDlpJobRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 20546 // Starts asynchronous cancellation on a long-running DlpJob. The server 20547 // makes a best effort to cancel the DlpJob, but success is not 20548 // guaranteed. 20549 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20550 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20551 CancelDlpJob(ctx context.Context, in *CancelDlpJobRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 20552 // Creates a pre-built stored infoType to be used for inspection. 20553 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20554 // learn more. 20555 CreateStoredInfoType(ctx context.Context, in *CreateStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) 20556 // Updates the stored infoType by creating a new version. The existing version 20557 // will continue to be used until the new version is ready. 20558 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20559 // learn more. 20560 UpdateStoredInfoType(ctx context.Context, in *UpdateStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) 20561 // Gets a stored infoType. 20562 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20563 // learn more. 20564 GetStoredInfoType(ctx context.Context, in *GetStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) 20565 // Lists stored infoTypes. 20566 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20567 // learn more. 20568 ListStoredInfoTypes(ctx context.Context, in *ListStoredInfoTypesRequest, opts ...grpc.CallOption) (*ListStoredInfoTypesResponse, error) 20569 // Deletes a stored infoType. 20570 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20571 // learn more. 20572 DeleteStoredInfoType(ctx context.Context, in *DeleteStoredInfoTypeRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 20573 // Inspect hybrid content and store findings to a job. 20574 // To review the findings inspect the job. Inspection will occur 20575 // asynchronously. 20576 // Early access feature is in a pre-release state and might change or have 20577 // limited support. For more information, see 20578 // https://cloud.google.com/products#product-launch-stages. 20579 HybridInspectDlpJob(ctx context.Context, in *HybridInspectDlpJobRequest, opts ...grpc.CallOption) (*HybridInspectResponse, error) 20580 // Finish a running hybrid DlpJob. Triggers the finalization steps and running 20581 // of any enabled actions that have not yet run. 20582 // Early access feature is in a pre-release state and might change or have 20583 // limited support. For more information, see 20584 // https://cloud.google.com/products#product-launch-stages. 20585 FinishDlpJob(ctx context.Context, in *FinishDlpJobRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 20586} 20587 20588type dlpServiceClient struct { 20589 cc grpc.ClientConnInterface 20590} 20591 20592func NewDlpServiceClient(cc grpc.ClientConnInterface) DlpServiceClient { 20593 return &dlpServiceClient{cc} 20594} 20595 20596func (c *dlpServiceClient) InspectContent(ctx context.Context, in *InspectContentRequest, opts ...grpc.CallOption) (*InspectContentResponse, error) { 20597 out := new(InspectContentResponse) 20598 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/InspectContent", in, out, opts...) 20599 if err != nil { 20600 return nil, err 20601 } 20602 return out, nil 20603} 20604 20605func (c *dlpServiceClient) RedactImage(ctx context.Context, in *RedactImageRequest, opts ...grpc.CallOption) (*RedactImageResponse, error) { 20606 out := new(RedactImageResponse) 20607 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/RedactImage", in, out, opts...) 20608 if err != nil { 20609 return nil, err 20610 } 20611 return out, nil 20612} 20613 20614func (c *dlpServiceClient) DeidentifyContent(ctx context.Context, in *DeidentifyContentRequest, opts ...grpc.CallOption) (*DeidentifyContentResponse, error) { 20615 out := new(DeidentifyContentResponse) 20616 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeidentifyContent", in, out, opts...) 20617 if err != nil { 20618 return nil, err 20619 } 20620 return out, nil 20621} 20622 20623func (c *dlpServiceClient) ReidentifyContent(ctx context.Context, in *ReidentifyContentRequest, opts ...grpc.CallOption) (*ReidentifyContentResponse, error) { 20624 out := new(ReidentifyContentResponse) 20625 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ReidentifyContent", in, out, opts...) 20626 if err != nil { 20627 return nil, err 20628 } 20629 return out, nil 20630} 20631 20632func (c *dlpServiceClient) ListInfoTypes(ctx context.Context, in *ListInfoTypesRequest, opts ...grpc.CallOption) (*ListInfoTypesResponse, error) { 20633 out := new(ListInfoTypesResponse) 20634 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListInfoTypes", in, out, opts...) 20635 if err != nil { 20636 return nil, err 20637 } 20638 return out, nil 20639} 20640 20641func (c *dlpServiceClient) CreateInspectTemplate(ctx context.Context, in *CreateInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) { 20642 out := new(InspectTemplate) 20643 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateInspectTemplate", in, out, opts...) 20644 if err != nil { 20645 return nil, err 20646 } 20647 return out, nil 20648} 20649 20650func (c *dlpServiceClient) UpdateInspectTemplate(ctx context.Context, in *UpdateInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) { 20651 out := new(InspectTemplate) 20652 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/UpdateInspectTemplate", in, out, opts...) 20653 if err != nil { 20654 return nil, err 20655 } 20656 return out, nil 20657} 20658 20659func (c *dlpServiceClient) GetInspectTemplate(ctx context.Context, in *GetInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) { 20660 out := new(InspectTemplate) 20661 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetInspectTemplate", in, out, opts...) 20662 if err != nil { 20663 return nil, err 20664 } 20665 return out, nil 20666} 20667 20668func (c *dlpServiceClient) ListInspectTemplates(ctx context.Context, in *ListInspectTemplatesRequest, opts ...grpc.CallOption) (*ListInspectTemplatesResponse, error) { 20669 out := new(ListInspectTemplatesResponse) 20670 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListInspectTemplates", in, out, opts...) 20671 if err != nil { 20672 return nil, err 20673 } 20674 return out, nil 20675} 20676 20677func (c *dlpServiceClient) DeleteInspectTemplate(ctx context.Context, in *DeleteInspectTemplateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 20678 out := new(emptypb.Empty) 20679 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteInspectTemplate", in, out, opts...) 20680 if err != nil { 20681 return nil, err 20682 } 20683 return out, nil 20684} 20685 20686func (c *dlpServiceClient) CreateDeidentifyTemplate(ctx context.Context, in *CreateDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) { 20687 out := new(DeidentifyTemplate) 20688 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateDeidentifyTemplate", in, out, opts...) 20689 if err != nil { 20690 return nil, err 20691 } 20692 return out, nil 20693} 20694 20695func (c *dlpServiceClient) UpdateDeidentifyTemplate(ctx context.Context, in *UpdateDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) { 20696 out := new(DeidentifyTemplate) 20697 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/UpdateDeidentifyTemplate", in, out, opts...) 20698 if err != nil { 20699 return nil, err 20700 } 20701 return out, nil 20702} 20703 20704func (c *dlpServiceClient) GetDeidentifyTemplate(ctx context.Context, in *GetDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) { 20705 out := new(DeidentifyTemplate) 20706 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetDeidentifyTemplate", in, out, opts...) 20707 if err != nil { 20708 return nil, err 20709 } 20710 return out, nil 20711} 20712 20713func (c *dlpServiceClient) ListDeidentifyTemplates(ctx context.Context, in *ListDeidentifyTemplatesRequest, opts ...grpc.CallOption) (*ListDeidentifyTemplatesResponse, error) { 20714 out := new(ListDeidentifyTemplatesResponse) 20715 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListDeidentifyTemplates", in, out, opts...) 20716 if err != nil { 20717 return nil, err 20718 } 20719 return out, nil 20720} 20721 20722func (c *dlpServiceClient) DeleteDeidentifyTemplate(ctx context.Context, in *DeleteDeidentifyTemplateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 20723 out := new(emptypb.Empty) 20724 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteDeidentifyTemplate", in, out, opts...) 20725 if err != nil { 20726 return nil, err 20727 } 20728 return out, nil 20729} 20730 20731func (c *dlpServiceClient) CreateJobTrigger(ctx context.Context, in *CreateJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) { 20732 out := new(JobTrigger) 20733 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateJobTrigger", in, out, opts...) 20734 if err != nil { 20735 return nil, err 20736 } 20737 return out, nil 20738} 20739 20740func (c *dlpServiceClient) UpdateJobTrigger(ctx context.Context, in *UpdateJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) { 20741 out := new(JobTrigger) 20742 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/UpdateJobTrigger", in, out, opts...) 20743 if err != nil { 20744 return nil, err 20745 } 20746 return out, nil 20747} 20748 20749func (c *dlpServiceClient) HybridInspectJobTrigger(ctx context.Context, in *HybridInspectJobTriggerRequest, opts ...grpc.CallOption) (*HybridInspectResponse, error) { 20750 out := new(HybridInspectResponse) 20751 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/HybridInspectJobTrigger", in, out, opts...) 20752 if err != nil { 20753 return nil, err 20754 } 20755 return out, nil 20756} 20757 20758func (c *dlpServiceClient) GetJobTrigger(ctx context.Context, in *GetJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) { 20759 out := new(JobTrigger) 20760 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetJobTrigger", in, out, opts...) 20761 if err != nil { 20762 return nil, err 20763 } 20764 return out, nil 20765} 20766 20767func (c *dlpServiceClient) ListJobTriggers(ctx context.Context, in *ListJobTriggersRequest, opts ...grpc.CallOption) (*ListJobTriggersResponse, error) { 20768 out := new(ListJobTriggersResponse) 20769 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListJobTriggers", in, out, opts...) 20770 if err != nil { 20771 return nil, err 20772 } 20773 return out, nil 20774} 20775 20776func (c *dlpServiceClient) DeleteJobTrigger(ctx context.Context, in *DeleteJobTriggerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 20777 out := new(emptypb.Empty) 20778 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteJobTrigger", in, out, opts...) 20779 if err != nil { 20780 return nil, err 20781 } 20782 return out, nil 20783} 20784 20785func (c *dlpServiceClient) ActivateJobTrigger(ctx context.Context, in *ActivateJobTriggerRequest, opts ...grpc.CallOption) (*DlpJob, error) { 20786 out := new(DlpJob) 20787 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ActivateJobTrigger", in, out, opts...) 20788 if err != nil { 20789 return nil, err 20790 } 20791 return out, nil 20792} 20793 20794func (c *dlpServiceClient) CreateDlpJob(ctx context.Context, in *CreateDlpJobRequest, opts ...grpc.CallOption) (*DlpJob, error) { 20795 out := new(DlpJob) 20796 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateDlpJob", in, out, opts...) 20797 if err != nil { 20798 return nil, err 20799 } 20800 return out, nil 20801} 20802 20803func (c *dlpServiceClient) ListDlpJobs(ctx context.Context, in *ListDlpJobsRequest, opts ...grpc.CallOption) (*ListDlpJobsResponse, error) { 20804 out := new(ListDlpJobsResponse) 20805 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListDlpJobs", in, out, opts...) 20806 if err != nil { 20807 return nil, err 20808 } 20809 return out, nil 20810} 20811 20812func (c *dlpServiceClient) GetDlpJob(ctx context.Context, in *GetDlpJobRequest, opts ...grpc.CallOption) (*DlpJob, error) { 20813 out := new(DlpJob) 20814 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetDlpJob", in, out, opts...) 20815 if err != nil { 20816 return nil, err 20817 } 20818 return out, nil 20819} 20820 20821func (c *dlpServiceClient) DeleteDlpJob(ctx context.Context, in *DeleteDlpJobRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 20822 out := new(emptypb.Empty) 20823 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteDlpJob", in, out, opts...) 20824 if err != nil { 20825 return nil, err 20826 } 20827 return out, nil 20828} 20829 20830func (c *dlpServiceClient) CancelDlpJob(ctx context.Context, in *CancelDlpJobRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 20831 out := new(emptypb.Empty) 20832 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CancelDlpJob", in, out, opts...) 20833 if err != nil { 20834 return nil, err 20835 } 20836 return out, nil 20837} 20838 20839func (c *dlpServiceClient) CreateStoredInfoType(ctx context.Context, in *CreateStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) { 20840 out := new(StoredInfoType) 20841 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateStoredInfoType", in, out, opts...) 20842 if err != nil { 20843 return nil, err 20844 } 20845 return out, nil 20846} 20847 20848func (c *dlpServiceClient) UpdateStoredInfoType(ctx context.Context, in *UpdateStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) { 20849 out := new(StoredInfoType) 20850 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/UpdateStoredInfoType", in, out, opts...) 20851 if err != nil { 20852 return nil, err 20853 } 20854 return out, nil 20855} 20856 20857func (c *dlpServiceClient) GetStoredInfoType(ctx context.Context, in *GetStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) { 20858 out := new(StoredInfoType) 20859 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetStoredInfoType", in, out, opts...) 20860 if err != nil { 20861 return nil, err 20862 } 20863 return out, nil 20864} 20865 20866func (c *dlpServiceClient) ListStoredInfoTypes(ctx context.Context, in *ListStoredInfoTypesRequest, opts ...grpc.CallOption) (*ListStoredInfoTypesResponse, error) { 20867 out := new(ListStoredInfoTypesResponse) 20868 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListStoredInfoTypes", in, out, opts...) 20869 if err != nil { 20870 return nil, err 20871 } 20872 return out, nil 20873} 20874 20875func (c *dlpServiceClient) DeleteStoredInfoType(ctx context.Context, in *DeleteStoredInfoTypeRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 20876 out := new(emptypb.Empty) 20877 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteStoredInfoType", in, out, opts...) 20878 if err != nil { 20879 return nil, err 20880 } 20881 return out, nil 20882} 20883 20884func (c *dlpServiceClient) HybridInspectDlpJob(ctx context.Context, in *HybridInspectDlpJobRequest, opts ...grpc.CallOption) (*HybridInspectResponse, error) { 20885 out := new(HybridInspectResponse) 20886 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/HybridInspectDlpJob", in, out, opts...) 20887 if err != nil { 20888 return nil, err 20889 } 20890 return out, nil 20891} 20892 20893func (c *dlpServiceClient) FinishDlpJob(ctx context.Context, in *FinishDlpJobRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 20894 out := new(emptypb.Empty) 20895 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/FinishDlpJob", in, out, opts...) 20896 if err != nil { 20897 return nil, err 20898 } 20899 return out, nil 20900} 20901 20902// DlpServiceServer is the server API for DlpService service. 20903type DlpServiceServer interface { 20904 // Finds potentially sensitive info in content. 20905 // This method has limits on input size, processing time, and output size. 20906 // 20907 // When no InfoTypes or CustomInfoTypes are specified in this request, the 20908 // system will automatically choose what detectors to run. By default this may 20909 // be all types, but may change over time as detectors are updated. 20910 // 20911 // For how to guides, see https://cloud.google.com/dlp/docs/inspecting-images 20912 // and https://cloud.google.com/dlp/docs/inspecting-text, 20913 InspectContent(context.Context, *InspectContentRequest) (*InspectContentResponse, error) 20914 // Redacts potentially sensitive info from an image. 20915 // This method has limits on input size, processing time, and output size. 20916 // See https://cloud.google.com/dlp/docs/redacting-sensitive-data-images to 20917 // learn more. 20918 // 20919 // When no InfoTypes or CustomInfoTypes are specified in this request, the 20920 // system will automatically choose what detectors to run. By default this may 20921 // be all types, but may change over time as detectors are updated. 20922 RedactImage(context.Context, *RedactImageRequest) (*RedactImageResponse, error) 20923 // De-identifies potentially sensitive info from a ContentItem. 20924 // This method has limits on input size and output size. 20925 // See https://cloud.google.com/dlp/docs/deidentify-sensitive-data to 20926 // learn more. 20927 // 20928 // When no InfoTypes or CustomInfoTypes are specified in this request, the 20929 // system will automatically choose what detectors to run. By default this may 20930 // be all types, but may change over time as detectors are updated. 20931 DeidentifyContent(context.Context, *DeidentifyContentRequest) (*DeidentifyContentResponse, error) 20932 // Re-identifies content that has been de-identified. 20933 // See 20934 // https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example 20935 // to learn more. 20936 ReidentifyContent(context.Context, *ReidentifyContentRequest) (*ReidentifyContentResponse, error) 20937 // Returns a list of the sensitive information types that the DLP API 20938 // supports. See https://cloud.google.com/dlp/docs/infotypes-reference to 20939 // learn more. 20940 ListInfoTypes(context.Context, *ListInfoTypesRequest) (*ListInfoTypesResponse, error) 20941 // Creates an InspectTemplate for re-using frequently used configuration 20942 // for inspecting content, images, and storage. 20943 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20944 CreateInspectTemplate(context.Context, *CreateInspectTemplateRequest) (*InspectTemplate, error) 20945 // Updates the InspectTemplate. 20946 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20947 UpdateInspectTemplate(context.Context, *UpdateInspectTemplateRequest) (*InspectTemplate, error) 20948 // Gets an InspectTemplate. 20949 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20950 GetInspectTemplate(context.Context, *GetInspectTemplateRequest) (*InspectTemplate, error) 20951 // Lists InspectTemplates. 20952 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20953 ListInspectTemplates(context.Context, *ListInspectTemplatesRequest) (*ListInspectTemplatesResponse, error) 20954 // Deletes an InspectTemplate. 20955 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20956 DeleteInspectTemplate(context.Context, *DeleteInspectTemplateRequest) (*emptypb.Empty, error) 20957 // Creates a DeidentifyTemplate for re-using frequently used configuration 20958 // for de-identifying content, images, and storage. 20959 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20960 // more. 20961 CreateDeidentifyTemplate(context.Context, *CreateDeidentifyTemplateRequest) (*DeidentifyTemplate, error) 20962 // Updates the DeidentifyTemplate. 20963 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20964 // more. 20965 UpdateDeidentifyTemplate(context.Context, *UpdateDeidentifyTemplateRequest) (*DeidentifyTemplate, error) 20966 // Gets a DeidentifyTemplate. 20967 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20968 // more. 20969 GetDeidentifyTemplate(context.Context, *GetDeidentifyTemplateRequest) (*DeidentifyTemplate, error) 20970 // Lists DeidentifyTemplates. 20971 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20972 // more. 20973 ListDeidentifyTemplates(context.Context, *ListDeidentifyTemplatesRequest) (*ListDeidentifyTemplatesResponse, error) 20974 // Deletes a DeidentifyTemplate. 20975 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20976 // more. 20977 DeleteDeidentifyTemplate(context.Context, *DeleteDeidentifyTemplateRequest) (*emptypb.Empty, error) 20978 // Creates a job trigger to run DLP actions such as scanning storage for 20979 // sensitive information on a set schedule. 20980 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20981 CreateJobTrigger(context.Context, *CreateJobTriggerRequest) (*JobTrigger, error) 20982 // Updates a job trigger. 20983 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20984 UpdateJobTrigger(context.Context, *UpdateJobTriggerRequest) (*JobTrigger, error) 20985 // Inspect hybrid content and store findings to a trigger. The inspection 20986 // will be processed asynchronously. To review the findings monitor the 20987 // jobs within the trigger. 20988 // Early access feature is in a pre-release state and might change or have 20989 // limited support. For more information, see 20990 // https://cloud.google.com/products#product-launch-stages. 20991 HybridInspectJobTrigger(context.Context, *HybridInspectJobTriggerRequest) (*HybridInspectResponse, error) 20992 // Gets a job trigger. 20993 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20994 GetJobTrigger(context.Context, *GetJobTriggerRequest) (*JobTrigger, error) 20995 // Lists job triggers. 20996 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20997 ListJobTriggers(context.Context, *ListJobTriggersRequest) (*ListJobTriggersResponse, error) 20998 // Deletes a job trigger. 20999 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 21000 DeleteJobTrigger(context.Context, *DeleteJobTriggerRequest) (*emptypb.Empty, error) 21001 // Activate a job trigger. Causes the immediate execute of a trigger 21002 // instead of waiting on the trigger event to occur. 21003 ActivateJobTrigger(context.Context, *ActivateJobTriggerRequest) (*DlpJob, error) 21004 // Creates a new job to inspect storage or calculate risk metrics. 21005 // See https://cloud.google.com/dlp/docs/inspecting-storage and 21006 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 21007 // 21008 // When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the 21009 // system will automatically choose what detectors to run. By default this may 21010 // be all types, but may change over time as detectors are updated. 21011 CreateDlpJob(context.Context, *CreateDlpJobRequest) (*DlpJob, error) 21012 // Lists DlpJobs that match the specified filter in the request. 21013 // See https://cloud.google.com/dlp/docs/inspecting-storage and 21014 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 21015 ListDlpJobs(context.Context, *ListDlpJobsRequest) (*ListDlpJobsResponse, error) 21016 // Gets the latest state of a long-running DlpJob. 21017 // See https://cloud.google.com/dlp/docs/inspecting-storage and 21018 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 21019 GetDlpJob(context.Context, *GetDlpJobRequest) (*DlpJob, error) 21020 // Deletes a long-running DlpJob. This method indicates that the client is 21021 // no longer interested in the DlpJob result. The job will be cancelled if 21022 // possible. 21023 // See https://cloud.google.com/dlp/docs/inspecting-storage and 21024 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 21025 DeleteDlpJob(context.Context, *DeleteDlpJobRequest) (*emptypb.Empty, error) 21026 // Starts asynchronous cancellation on a long-running DlpJob. The server 21027 // makes a best effort to cancel the DlpJob, but success is not 21028 // guaranteed. 21029 // See https://cloud.google.com/dlp/docs/inspecting-storage and 21030 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 21031 CancelDlpJob(context.Context, *CancelDlpJobRequest) (*emptypb.Empty, error) 21032 // Creates a pre-built stored infoType to be used for inspection. 21033 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 21034 // learn more. 21035 CreateStoredInfoType(context.Context, *CreateStoredInfoTypeRequest) (*StoredInfoType, error) 21036 // Updates the stored infoType by creating a new version. The existing version 21037 // will continue to be used until the new version is ready. 21038 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 21039 // learn more. 21040 UpdateStoredInfoType(context.Context, *UpdateStoredInfoTypeRequest) (*StoredInfoType, error) 21041 // Gets a stored infoType. 21042 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 21043 // learn more. 21044 GetStoredInfoType(context.Context, *GetStoredInfoTypeRequest) (*StoredInfoType, error) 21045 // Lists stored infoTypes. 21046 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 21047 // learn more. 21048 ListStoredInfoTypes(context.Context, *ListStoredInfoTypesRequest) (*ListStoredInfoTypesResponse, error) 21049 // Deletes a stored infoType. 21050 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 21051 // learn more. 21052 DeleteStoredInfoType(context.Context, *DeleteStoredInfoTypeRequest) (*emptypb.Empty, error) 21053 // Inspect hybrid content and store findings to a job. 21054 // To review the findings inspect the job. Inspection will occur 21055 // asynchronously. 21056 // Early access feature is in a pre-release state and might change or have 21057 // limited support. For more information, see 21058 // https://cloud.google.com/products#product-launch-stages. 21059 HybridInspectDlpJob(context.Context, *HybridInspectDlpJobRequest) (*HybridInspectResponse, error) 21060 // Finish a running hybrid DlpJob. Triggers the finalization steps and running 21061 // of any enabled actions that have not yet run. 21062 // Early access feature is in a pre-release state and might change or have 21063 // limited support. For more information, see 21064 // https://cloud.google.com/products#product-launch-stages. 21065 FinishDlpJob(context.Context, *FinishDlpJobRequest) (*emptypb.Empty, error) 21066} 21067 21068// UnimplementedDlpServiceServer can be embedded to have forward compatible implementations. 21069type UnimplementedDlpServiceServer struct { 21070} 21071 21072func (*UnimplementedDlpServiceServer) InspectContent(context.Context, *InspectContentRequest) (*InspectContentResponse, error) { 21073 return nil, status1.Errorf(codes.Unimplemented, "method InspectContent not implemented") 21074} 21075func (*UnimplementedDlpServiceServer) RedactImage(context.Context, *RedactImageRequest) (*RedactImageResponse, error) { 21076 return nil, status1.Errorf(codes.Unimplemented, "method RedactImage not implemented") 21077} 21078func (*UnimplementedDlpServiceServer) DeidentifyContent(context.Context, *DeidentifyContentRequest) (*DeidentifyContentResponse, error) { 21079 return nil, status1.Errorf(codes.Unimplemented, "method DeidentifyContent not implemented") 21080} 21081func (*UnimplementedDlpServiceServer) ReidentifyContent(context.Context, *ReidentifyContentRequest) (*ReidentifyContentResponse, error) { 21082 return nil, status1.Errorf(codes.Unimplemented, "method ReidentifyContent not implemented") 21083} 21084func (*UnimplementedDlpServiceServer) ListInfoTypes(context.Context, *ListInfoTypesRequest) (*ListInfoTypesResponse, error) { 21085 return nil, status1.Errorf(codes.Unimplemented, "method ListInfoTypes not implemented") 21086} 21087func (*UnimplementedDlpServiceServer) CreateInspectTemplate(context.Context, *CreateInspectTemplateRequest) (*InspectTemplate, error) { 21088 return nil, status1.Errorf(codes.Unimplemented, "method CreateInspectTemplate not implemented") 21089} 21090func (*UnimplementedDlpServiceServer) UpdateInspectTemplate(context.Context, *UpdateInspectTemplateRequest) (*InspectTemplate, error) { 21091 return nil, status1.Errorf(codes.Unimplemented, "method UpdateInspectTemplate not implemented") 21092} 21093func (*UnimplementedDlpServiceServer) GetInspectTemplate(context.Context, *GetInspectTemplateRequest) (*InspectTemplate, error) { 21094 return nil, status1.Errorf(codes.Unimplemented, "method GetInspectTemplate not implemented") 21095} 21096func (*UnimplementedDlpServiceServer) ListInspectTemplates(context.Context, *ListInspectTemplatesRequest) (*ListInspectTemplatesResponse, error) { 21097 return nil, status1.Errorf(codes.Unimplemented, "method ListInspectTemplates not implemented") 21098} 21099func (*UnimplementedDlpServiceServer) DeleteInspectTemplate(context.Context, *DeleteInspectTemplateRequest) (*emptypb.Empty, error) { 21100 return nil, status1.Errorf(codes.Unimplemented, "method DeleteInspectTemplate not implemented") 21101} 21102func (*UnimplementedDlpServiceServer) CreateDeidentifyTemplate(context.Context, *CreateDeidentifyTemplateRequest) (*DeidentifyTemplate, error) { 21103 return nil, status1.Errorf(codes.Unimplemented, "method CreateDeidentifyTemplate not implemented") 21104} 21105func (*UnimplementedDlpServiceServer) UpdateDeidentifyTemplate(context.Context, *UpdateDeidentifyTemplateRequest) (*DeidentifyTemplate, error) { 21106 return nil, status1.Errorf(codes.Unimplemented, "method UpdateDeidentifyTemplate not implemented") 21107} 21108func (*UnimplementedDlpServiceServer) GetDeidentifyTemplate(context.Context, *GetDeidentifyTemplateRequest) (*DeidentifyTemplate, error) { 21109 return nil, status1.Errorf(codes.Unimplemented, "method GetDeidentifyTemplate not implemented") 21110} 21111func (*UnimplementedDlpServiceServer) ListDeidentifyTemplates(context.Context, *ListDeidentifyTemplatesRequest) (*ListDeidentifyTemplatesResponse, error) { 21112 return nil, status1.Errorf(codes.Unimplemented, "method ListDeidentifyTemplates not implemented") 21113} 21114func (*UnimplementedDlpServiceServer) DeleteDeidentifyTemplate(context.Context, *DeleteDeidentifyTemplateRequest) (*emptypb.Empty, error) { 21115 return nil, status1.Errorf(codes.Unimplemented, "method DeleteDeidentifyTemplate not implemented") 21116} 21117func (*UnimplementedDlpServiceServer) CreateJobTrigger(context.Context, *CreateJobTriggerRequest) (*JobTrigger, error) { 21118 return nil, status1.Errorf(codes.Unimplemented, "method CreateJobTrigger not implemented") 21119} 21120func (*UnimplementedDlpServiceServer) UpdateJobTrigger(context.Context, *UpdateJobTriggerRequest) (*JobTrigger, error) { 21121 return nil, status1.Errorf(codes.Unimplemented, "method UpdateJobTrigger not implemented") 21122} 21123func (*UnimplementedDlpServiceServer) HybridInspectJobTrigger(context.Context, *HybridInspectJobTriggerRequest) (*HybridInspectResponse, error) { 21124 return nil, status1.Errorf(codes.Unimplemented, "method HybridInspectJobTrigger not implemented") 21125} 21126func (*UnimplementedDlpServiceServer) GetJobTrigger(context.Context, *GetJobTriggerRequest) (*JobTrigger, error) { 21127 return nil, status1.Errorf(codes.Unimplemented, "method GetJobTrigger not implemented") 21128} 21129func (*UnimplementedDlpServiceServer) ListJobTriggers(context.Context, *ListJobTriggersRequest) (*ListJobTriggersResponse, error) { 21130 return nil, status1.Errorf(codes.Unimplemented, "method ListJobTriggers not implemented") 21131} 21132func (*UnimplementedDlpServiceServer) DeleteJobTrigger(context.Context, *DeleteJobTriggerRequest) (*emptypb.Empty, error) { 21133 return nil, status1.Errorf(codes.Unimplemented, "method DeleteJobTrigger not implemented") 21134} 21135func (*UnimplementedDlpServiceServer) ActivateJobTrigger(context.Context, *ActivateJobTriggerRequest) (*DlpJob, error) { 21136 return nil, status1.Errorf(codes.Unimplemented, "method ActivateJobTrigger not implemented") 21137} 21138func (*UnimplementedDlpServiceServer) CreateDlpJob(context.Context, *CreateDlpJobRequest) (*DlpJob, error) { 21139 return nil, status1.Errorf(codes.Unimplemented, "method CreateDlpJob not implemented") 21140} 21141func (*UnimplementedDlpServiceServer) ListDlpJobs(context.Context, *ListDlpJobsRequest) (*ListDlpJobsResponse, error) { 21142 return nil, status1.Errorf(codes.Unimplemented, "method ListDlpJobs not implemented") 21143} 21144func (*UnimplementedDlpServiceServer) GetDlpJob(context.Context, *GetDlpJobRequest) (*DlpJob, error) { 21145 return nil, status1.Errorf(codes.Unimplemented, "method GetDlpJob not implemented") 21146} 21147func (*UnimplementedDlpServiceServer) DeleteDlpJob(context.Context, *DeleteDlpJobRequest) (*emptypb.Empty, error) { 21148 return nil, status1.Errorf(codes.Unimplemented, "method DeleteDlpJob not implemented") 21149} 21150func (*UnimplementedDlpServiceServer) CancelDlpJob(context.Context, *CancelDlpJobRequest) (*emptypb.Empty, error) { 21151 return nil, status1.Errorf(codes.Unimplemented, "method CancelDlpJob not implemented") 21152} 21153func (*UnimplementedDlpServiceServer) CreateStoredInfoType(context.Context, *CreateStoredInfoTypeRequest) (*StoredInfoType, error) { 21154 return nil, status1.Errorf(codes.Unimplemented, "method CreateStoredInfoType not implemented") 21155} 21156func (*UnimplementedDlpServiceServer) UpdateStoredInfoType(context.Context, *UpdateStoredInfoTypeRequest) (*StoredInfoType, error) { 21157 return nil, status1.Errorf(codes.Unimplemented, "method UpdateStoredInfoType not implemented") 21158} 21159func (*UnimplementedDlpServiceServer) GetStoredInfoType(context.Context, *GetStoredInfoTypeRequest) (*StoredInfoType, error) { 21160 return nil, status1.Errorf(codes.Unimplemented, "method GetStoredInfoType not implemented") 21161} 21162func (*UnimplementedDlpServiceServer) ListStoredInfoTypes(context.Context, *ListStoredInfoTypesRequest) (*ListStoredInfoTypesResponse, error) { 21163 return nil, status1.Errorf(codes.Unimplemented, "method ListStoredInfoTypes not implemented") 21164} 21165func (*UnimplementedDlpServiceServer) DeleteStoredInfoType(context.Context, *DeleteStoredInfoTypeRequest) (*emptypb.Empty, error) { 21166 return nil, status1.Errorf(codes.Unimplemented, "method DeleteStoredInfoType not implemented") 21167} 21168func (*UnimplementedDlpServiceServer) HybridInspectDlpJob(context.Context, *HybridInspectDlpJobRequest) (*HybridInspectResponse, error) { 21169 return nil, status1.Errorf(codes.Unimplemented, "method HybridInspectDlpJob not implemented") 21170} 21171func (*UnimplementedDlpServiceServer) FinishDlpJob(context.Context, *FinishDlpJobRequest) (*emptypb.Empty, error) { 21172 return nil, status1.Errorf(codes.Unimplemented, "method FinishDlpJob not implemented") 21173} 21174 21175func RegisterDlpServiceServer(s *grpc.Server, srv DlpServiceServer) { 21176 s.RegisterService(&_DlpService_serviceDesc, srv) 21177} 21178 21179func _DlpService_InspectContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21180 in := new(InspectContentRequest) 21181 if err := dec(in); err != nil { 21182 return nil, err 21183 } 21184 if interceptor == nil { 21185 return srv.(DlpServiceServer).InspectContent(ctx, in) 21186 } 21187 info := &grpc.UnaryServerInfo{ 21188 Server: srv, 21189 FullMethod: "/google.privacy.dlp.v2.DlpService/InspectContent", 21190 } 21191 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21192 return srv.(DlpServiceServer).InspectContent(ctx, req.(*InspectContentRequest)) 21193 } 21194 return interceptor(ctx, in, info, handler) 21195} 21196 21197func _DlpService_RedactImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21198 in := new(RedactImageRequest) 21199 if err := dec(in); err != nil { 21200 return nil, err 21201 } 21202 if interceptor == nil { 21203 return srv.(DlpServiceServer).RedactImage(ctx, in) 21204 } 21205 info := &grpc.UnaryServerInfo{ 21206 Server: srv, 21207 FullMethod: "/google.privacy.dlp.v2.DlpService/RedactImage", 21208 } 21209 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21210 return srv.(DlpServiceServer).RedactImage(ctx, req.(*RedactImageRequest)) 21211 } 21212 return interceptor(ctx, in, info, handler) 21213} 21214 21215func _DlpService_DeidentifyContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21216 in := new(DeidentifyContentRequest) 21217 if err := dec(in); err != nil { 21218 return nil, err 21219 } 21220 if interceptor == nil { 21221 return srv.(DlpServiceServer).DeidentifyContent(ctx, in) 21222 } 21223 info := &grpc.UnaryServerInfo{ 21224 Server: srv, 21225 FullMethod: "/google.privacy.dlp.v2.DlpService/DeidentifyContent", 21226 } 21227 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21228 return srv.(DlpServiceServer).DeidentifyContent(ctx, req.(*DeidentifyContentRequest)) 21229 } 21230 return interceptor(ctx, in, info, handler) 21231} 21232 21233func _DlpService_ReidentifyContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21234 in := new(ReidentifyContentRequest) 21235 if err := dec(in); err != nil { 21236 return nil, err 21237 } 21238 if interceptor == nil { 21239 return srv.(DlpServiceServer).ReidentifyContent(ctx, in) 21240 } 21241 info := &grpc.UnaryServerInfo{ 21242 Server: srv, 21243 FullMethod: "/google.privacy.dlp.v2.DlpService/ReidentifyContent", 21244 } 21245 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21246 return srv.(DlpServiceServer).ReidentifyContent(ctx, req.(*ReidentifyContentRequest)) 21247 } 21248 return interceptor(ctx, in, info, handler) 21249} 21250 21251func _DlpService_ListInfoTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21252 in := new(ListInfoTypesRequest) 21253 if err := dec(in); err != nil { 21254 return nil, err 21255 } 21256 if interceptor == nil { 21257 return srv.(DlpServiceServer).ListInfoTypes(ctx, in) 21258 } 21259 info := &grpc.UnaryServerInfo{ 21260 Server: srv, 21261 FullMethod: "/google.privacy.dlp.v2.DlpService/ListInfoTypes", 21262 } 21263 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21264 return srv.(DlpServiceServer).ListInfoTypes(ctx, req.(*ListInfoTypesRequest)) 21265 } 21266 return interceptor(ctx, in, info, handler) 21267} 21268 21269func _DlpService_CreateInspectTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21270 in := new(CreateInspectTemplateRequest) 21271 if err := dec(in); err != nil { 21272 return nil, err 21273 } 21274 if interceptor == nil { 21275 return srv.(DlpServiceServer).CreateInspectTemplate(ctx, in) 21276 } 21277 info := &grpc.UnaryServerInfo{ 21278 Server: srv, 21279 FullMethod: "/google.privacy.dlp.v2.DlpService/CreateInspectTemplate", 21280 } 21281 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21282 return srv.(DlpServiceServer).CreateInspectTemplate(ctx, req.(*CreateInspectTemplateRequest)) 21283 } 21284 return interceptor(ctx, in, info, handler) 21285} 21286 21287func _DlpService_UpdateInspectTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21288 in := new(UpdateInspectTemplateRequest) 21289 if err := dec(in); err != nil { 21290 return nil, err 21291 } 21292 if interceptor == nil { 21293 return srv.(DlpServiceServer).UpdateInspectTemplate(ctx, in) 21294 } 21295 info := &grpc.UnaryServerInfo{ 21296 Server: srv, 21297 FullMethod: "/google.privacy.dlp.v2.DlpService/UpdateInspectTemplate", 21298 } 21299 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21300 return srv.(DlpServiceServer).UpdateInspectTemplate(ctx, req.(*UpdateInspectTemplateRequest)) 21301 } 21302 return interceptor(ctx, in, info, handler) 21303} 21304 21305func _DlpService_GetInspectTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21306 in := new(GetInspectTemplateRequest) 21307 if err := dec(in); err != nil { 21308 return nil, err 21309 } 21310 if interceptor == nil { 21311 return srv.(DlpServiceServer).GetInspectTemplate(ctx, in) 21312 } 21313 info := &grpc.UnaryServerInfo{ 21314 Server: srv, 21315 FullMethod: "/google.privacy.dlp.v2.DlpService/GetInspectTemplate", 21316 } 21317 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21318 return srv.(DlpServiceServer).GetInspectTemplate(ctx, req.(*GetInspectTemplateRequest)) 21319 } 21320 return interceptor(ctx, in, info, handler) 21321} 21322 21323func _DlpService_ListInspectTemplates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21324 in := new(ListInspectTemplatesRequest) 21325 if err := dec(in); err != nil { 21326 return nil, err 21327 } 21328 if interceptor == nil { 21329 return srv.(DlpServiceServer).ListInspectTemplates(ctx, in) 21330 } 21331 info := &grpc.UnaryServerInfo{ 21332 Server: srv, 21333 FullMethod: "/google.privacy.dlp.v2.DlpService/ListInspectTemplates", 21334 } 21335 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21336 return srv.(DlpServiceServer).ListInspectTemplates(ctx, req.(*ListInspectTemplatesRequest)) 21337 } 21338 return interceptor(ctx, in, info, handler) 21339} 21340 21341func _DlpService_DeleteInspectTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21342 in := new(DeleteInspectTemplateRequest) 21343 if err := dec(in); err != nil { 21344 return nil, err 21345 } 21346 if interceptor == nil { 21347 return srv.(DlpServiceServer).DeleteInspectTemplate(ctx, in) 21348 } 21349 info := &grpc.UnaryServerInfo{ 21350 Server: srv, 21351 FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteInspectTemplate", 21352 } 21353 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21354 return srv.(DlpServiceServer).DeleteInspectTemplate(ctx, req.(*DeleteInspectTemplateRequest)) 21355 } 21356 return interceptor(ctx, in, info, handler) 21357} 21358 21359func _DlpService_CreateDeidentifyTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21360 in := new(CreateDeidentifyTemplateRequest) 21361 if err := dec(in); err != nil { 21362 return nil, err 21363 } 21364 if interceptor == nil { 21365 return srv.(DlpServiceServer).CreateDeidentifyTemplate(ctx, in) 21366 } 21367 info := &grpc.UnaryServerInfo{ 21368 Server: srv, 21369 FullMethod: "/google.privacy.dlp.v2.DlpService/CreateDeidentifyTemplate", 21370 } 21371 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21372 return srv.(DlpServiceServer).CreateDeidentifyTemplate(ctx, req.(*CreateDeidentifyTemplateRequest)) 21373 } 21374 return interceptor(ctx, in, info, handler) 21375} 21376 21377func _DlpService_UpdateDeidentifyTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21378 in := new(UpdateDeidentifyTemplateRequest) 21379 if err := dec(in); err != nil { 21380 return nil, err 21381 } 21382 if interceptor == nil { 21383 return srv.(DlpServiceServer).UpdateDeidentifyTemplate(ctx, in) 21384 } 21385 info := &grpc.UnaryServerInfo{ 21386 Server: srv, 21387 FullMethod: "/google.privacy.dlp.v2.DlpService/UpdateDeidentifyTemplate", 21388 } 21389 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21390 return srv.(DlpServiceServer).UpdateDeidentifyTemplate(ctx, req.(*UpdateDeidentifyTemplateRequest)) 21391 } 21392 return interceptor(ctx, in, info, handler) 21393} 21394 21395func _DlpService_GetDeidentifyTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21396 in := new(GetDeidentifyTemplateRequest) 21397 if err := dec(in); err != nil { 21398 return nil, err 21399 } 21400 if interceptor == nil { 21401 return srv.(DlpServiceServer).GetDeidentifyTemplate(ctx, in) 21402 } 21403 info := &grpc.UnaryServerInfo{ 21404 Server: srv, 21405 FullMethod: "/google.privacy.dlp.v2.DlpService/GetDeidentifyTemplate", 21406 } 21407 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21408 return srv.(DlpServiceServer).GetDeidentifyTemplate(ctx, req.(*GetDeidentifyTemplateRequest)) 21409 } 21410 return interceptor(ctx, in, info, handler) 21411} 21412 21413func _DlpService_ListDeidentifyTemplates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21414 in := new(ListDeidentifyTemplatesRequest) 21415 if err := dec(in); err != nil { 21416 return nil, err 21417 } 21418 if interceptor == nil { 21419 return srv.(DlpServiceServer).ListDeidentifyTemplates(ctx, in) 21420 } 21421 info := &grpc.UnaryServerInfo{ 21422 Server: srv, 21423 FullMethod: "/google.privacy.dlp.v2.DlpService/ListDeidentifyTemplates", 21424 } 21425 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21426 return srv.(DlpServiceServer).ListDeidentifyTemplates(ctx, req.(*ListDeidentifyTemplatesRequest)) 21427 } 21428 return interceptor(ctx, in, info, handler) 21429} 21430 21431func _DlpService_DeleteDeidentifyTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21432 in := new(DeleteDeidentifyTemplateRequest) 21433 if err := dec(in); err != nil { 21434 return nil, err 21435 } 21436 if interceptor == nil { 21437 return srv.(DlpServiceServer).DeleteDeidentifyTemplate(ctx, in) 21438 } 21439 info := &grpc.UnaryServerInfo{ 21440 Server: srv, 21441 FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteDeidentifyTemplate", 21442 } 21443 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21444 return srv.(DlpServiceServer).DeleteDeidentifyTemplate(ctx, req.(*DeleteDeidentifyTemplateRequest)) 21445 } 21446 return interceptor(ctx, in, info, handler) 21447} 21448 21449func _DlpService_CreateJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21450 in := new(CreateJobTriggerRequest) 21451 if err := dec(in); err != nil { 21452 return nil, err 21453 } 21454 if interceptor == nil { 21455 return srv.(DlpServiceServer).CreateJobTrigger(ctx, in) 21456 } 21457 info := &grpc.UnaryServerInfo{ 21458 Server: srv, 21459 FullMethod: "/google.privacy.dlp.v2.DlpService/CreateJobTrigger", 21460 } 21461 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21462 return srv.(DlpServiceServer).CreateJobTrigger(ctx, req.(*CreateJobTriggerRequest)) 21463 } 21464 return interceptor(ctx, in, info, handler) 21465} 21466 21467func _DlpService_UpdateJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21468 in := new(UpdateJobTriggerRequest) 21469 if err := dec(in); err != nil { 21470 return nil, err 21471 } 21472 if interceptor == nil { 21473 return srv.(DlpServiceServer).UpdateJobTrigger(ctx, in) 21474 } 21475 info := &grpc.UnaryServerInfo{ 21476 Server: srv, 21477 FullMethod: "/google.privacy.dlp.v2.DlpService/UpdateJobTrigger", 21478 } 21479 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21480 return srv.(DlpServiceServer).UpdateJobTrigger(ctx, req.(*UpdateJobTriggerRequest)) 21481 } 21482 return interceptor(ctx, in, info, handler) 21483} 21484 21485func _DlpService_HybridInspectJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21486 in := new(HybridInspectJobTriggerRequest) 21487 if err := dec(in); err != nil { 21488 return nil, err 21489 } 21490 if interceptor == nil { 21491 return srv.(DlpServiceServer).HybridInspectJobTrigger(ctx, in) 21492 } 21493 info := &grpc.UnaryServerInfo{ 21494 Server: srv, 21495 FullMethod: "/google.privacy.dlp.v2.DlpService/HybridInspectJobTrigger", 21496 } 21497 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21498 return srv.(DlpServiceServer).HybridInspectJobTrigger(ctx, req.(*HybridInspectJobTriggerRequest)) 21499 } 21500 return interceptor(ctx, in, info, handler) 21501} 21502 21503func _DlpService_GetJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21504 in := new(GetJobTriggerRequest) 21505 if err := dec(in); err != nil { 21506 return nil, err 21507 } 21508 if interceptor == nil { 21509 return srv.(DlpServiceServer).GetJobTrigger(ctx, in) 21510 } 21511 info := &grpc.UnaryServerInfo{ 21512 Server: srv, 21513 FullMethod: "/google.privacy.dlp.v2.DlpService/GetJobTrigger", 21514 } 21515 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21516 return srv.(DlpServiceServer).GetJobTrigger(ctx, req.(*GetJobTriggerRequest)) 21517 } 21518 return interceptor(ctx, in, info, handler) 21519} 21520 21521func _DlpService_ListJobTriggers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21522 in := new(ListJobTriggersRequest) 21523 if err := dec(in); err != nil { 21524 return nil, err 21525 } 21526 if interceptor == nil { 21527 return srv.(DlpServiceServer).ListJobTriggers(ctx, in) 21528 } 21529 info := &grpc.UnaryServerInfo{ 21530 Server: srv, 21531 FullMethod: "/google.privacy.dlp.v2.DlpService/ListJobTriggers", 21532 } 21533 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21534 return srv.(DlpServiceServer).ListJobTriggers(ctx, req.(*ListJobTriggersRequest)) 21535 } 21536 return interceptor(ctx, in, info, handler) 21537} 21538 21539func _DlpService_DeleteJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21540 in := new(DeleteJobTriggerRequest) 21541 if err := dec(in); err != nil { 21542 return nil, err 21543 } 21544 if interceptor == nil { 21545 return srv.(DlpServiceServer).DeleteJobTrigger(ctx, in) 21546 } 21547 info := &grpc.UnaryServerInfo{ 21548 Server: srv, 21549 FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteJobTrigger", 21550 } 21551 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21552 return srv.(DlpServiceServer).DeleteJobTrigger(ctx, req.(*DeleteJobTriggerRequest)) 21553 } 21554 return interceptor(ctx, in, info, handler) 21555} 21556 21557func _DlpService_ActivateJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21558 in := new(ActivateJobTriggerRequest) 21559 if err := dec(in); err != nil { 21560 return nil, err 21561 } 21562 if interceptor == nil { 21563 return srv.(DlpServiceServer).ActivateJobTrigger(ctx, in) 21564 } 21565 info := &grpc.UnaryServerInfo{ 21566 Server: srv, 21567 FullMethod: "/google.privacy.dlp.v2.DlpService/ActivateJobTrigger", 21568 } 21569 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21570 return srv.(DlpServiceServer).ActivateJobTrigger(ctx, req.(*ActivateJobTriggerRequest)) 21571 } 21572 return interceptor(ctx, in, info, handler) 21573} 21574 21575func _DlpService_CreateDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21576 in := new(CreateDlpJobRequest) 21577 if err := dec(in); err != nil { 21578 return nil, err 21579 } 21580 if interceptor == nil { 21581 return srv.(DlpServiceServer).CreateDlpJob(ctx, in) 21582 } 21583 info := &grpc.UnaryServerInfo{ 21584 Server: srv, 21585 FullMethod: "/google.privacy.dlp.v2.DlpService/CreateDlpJob", 21586 } 21587 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21588 return srv.(DlpServiceServer).CreateDlpJob(ctx, req.(*CreateDlpJobRequest)) 21589 } 21590 return interceptor(ctx, in, info, handler) 21591} 21592 21593func _DlpService_ListDlpJobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21594 in := new(ListDlpJobsRequest) 21595 if err := dec(in); err != nil { 21596 return nil, err 21597 } 21598 if interceptor == nil { 21599 return srv.(DlpServiceServer).ListDlpJobs(ctx, in) 21600 } 21601 info := &grpc.UnaryServerInfo{ 21602 Server: srv, 21603 FullMethod: "/google.privacy.dlp.v2.DlpService/ListDlpJobs", 21604 } 21605 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21606 return srv.(DlpServiceServer).ListDlpJobs(ctx, req.(*ListDlpJobsRequest)) 21607 } 21608 return interceptor(ctx, in, info, handler) 21609} 21610 21611func _DlpService_GetDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21612 in := new(GetDlpJobRequest) 21613 if err := dec(in); err != nil { 21614 return nil, err 21615 } 21616 if interceptor == nil { 21617 return srv.(DlpServiceServer).GetDlpJob(ctx, in) 21618 } 21619 info := &grpc.UnaryServerInfo{ 21620 Server: srv, 21621 FullMethod: "/google.privacy.dlp.v2.DlpService/GetDlpJob", 21622 } 21623 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21624 return srv.(DlpServiceServer).GetDlpJob(ctx, req.(*GetDlpJobRequest)) 21625 } 21626 return interceptor(ctx, in, info, handler) 21627} 21628 21629func _DlpService_DeleteDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21630 in := new(DeleteDlpJobRequest) 21631 if err := dec(in); err != nil { 21632 return nil, err 21633 } 21634 if interceptor == nil { 21635 return srv.(DlpServiceServer).DeleteDlpJob(ctx, in) 21636 } 21637 info := &grpc.UnaryServerInfo{ 21638 Server: srv, 21639 FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteDlpJob", 21640 } 21641 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21642 return srv.(DlpServiceServer).DeleteDlpJob(ctx, req.(*DeleteDlpJobRequest)) 21643 } 21644 return interceptor(ctx, in, info, handler) 21645} 21646 21647func _DlpService_CancelDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21648 in := new(CancelDlpJobRequest) 21649 if err := dec(in); err != nil { 21650 return nil, err 21651 } 21652 if interceptor == nil { 21653 return srv.(DlpServiceServer).CancelDlpJob(ctx, in) 21654 } 21655 info := &grpc.UnaryServerInfo{ 21656 Server: srv, 21657 FullMethod: "/google.privacy.dlp.v2.DlpService/CancelDlpJob", 21658 } 21659 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21660 return srv.(DlpServiceServer).CancelDlpJob(ctx, req.(*CancelDlpJobRequest)) 21661 } 21662 return interceptor(ctx, in, info, handler) 21663} 21664 21665func _DlpService_CreateStoredInfoType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21666 in := new(CreateStoredInfoTypeRequest) 21667 if err := dec(in); err != nil { 21668 return nil, err 21669 } 21670 if interceptor == nil { 21671 return srv.(DlpServiceServer).CreateStoredInfoType(ctx, in) 21672 } 21673 info := &grpc.UnaryServerInfo{ 21674 Server: srv, 21675 FullMethod: "/google.privacy.dlp.v2.DlpService/CreateStoredInfoType", 21676 } 21677 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21678 return srv.(DlpServiceServer).CreateStoredInfoType(ctx, req.(*CreateStoredInfoTypeRequest)) 21679 } 21680 return interceptor(ctx, in, info, handler) 21681} 21682 21683func _DlpService_UpdateStoredInfoType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21684 in := new(UpdateStoredInfoTypeRequest) 21685 if err := dec(in); err != nil { 21686 return nil, err 21687 } 21688 if interceptor == nil { 21689 return srv.(DlpServiceServer).UpdateStoredInfoType(ctx, in) 21690 } 21691 info := &grpc.UnaryServerInfo{ 21692 Server: srv, 21693 FullMethod: "/google.privacy.dlp.v2.DlpService/UpdateStoredInfoType", 21694 } 21695 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21696 return srv.(DlpServiceServer).UpdateStoredInfoType(ctx, req.(*UpdateStoredInfoTypeRequest)) 21697 } 21698 return interceptor(ctx, in, info, handler) 21699} 21700 21701func _DlpService_GetStoredInfoType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21702 in := new(GetStoredInfoTypeRequest) 21703 if err := dec(in); err != nil { 21704 return nil, err 21705 } 21706 if interceptor == nil { 21707 return srv.(DlpServiceServer).GetStoredInfoType(ctx, in) 21708 } 21709 info := &grpc.UnaryServerInfo{ 21710 Server: srv, 21711 FullMethod: "/google.privacy.dlp.v2.DlpService/GetStoredInfoType", 21712 } 21713 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21714 return srv.(DlpServiceServer).GetStoredInfoType(ctx, req.(*GetStoredInfoTypeRequest)) 21715 } 21716 return interceptor(ctx, in, info, handler) 21717} 21718 21719func _DlpService_ListStoredInfoTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21720 in := new(ListStoredInfoTypesRequest) 21721 if err := dec(in); err != nil { 21722 return nil, err 21723 } 21724 if interceptor == nil { 21725 return srv.(DlpServiceServer).ListStoredInfoTypes(ctx, in) 21726 } 21727 info := &grpc.UnaryServerInfo{ 21728 Server: srv, 21729 FullMethod: "/google.privacy.dlp.v2.DlpService/ListStoredInfoTypes", 21730 } 21731 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21732 return srv.(DlpServiceServer).ListStoredInfoTypes(ctx, req.(*ListStoredInfoTypesRequest)) 21733 } 21734 return interceptor(ctx, in, info, handler) 21735} 21736 21737func _DlpService_DeleteStoredInfoType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21738 in := new(DeleteStoredInfoTypeRequest) 21739 if err := dec(in); err != nil { 21740 return nil, err 21741 } 21742 if interceptor == nil { 21743 return srv.(DlpServiceServer).DeleteStoredInfoType(ctx, in) 21744 } 21745 info := &grpc.UnaryServerInfo{ 21746 Server: srv, 21747 FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteStoredInfoType", 21748 } 21749 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21750 return srv.(DlpServiceServer).DeleteStoredInfoType(ctx, req.(*DeleteStoredInfoTypeRequest)) 21751 } 21752 return interceptor(ctx, in, info, handler) 21753} 21754 21755func _DlpService_HybridInspectDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21756 in := new(HybridInspectDlpJobRequest) 21757 if err := dec(in); err != nil { 21758 return nil, err 21759 } 21760 if interceptor == nil { 21761 return srv.(DlpServiceServer).HybridInspectDlpJob(ctx, in) 21762 } 21763 info := &grpc.UnaryServerInfo{ 21764 Server: srv, 21765 FullMethod: "/google.privacy.dlp.v2.DlpService/HybridInspectDlpJob", 21766 } 21767 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21768 return srv.(DlpServiceServer).HybridInspectDlpJob(ctx, req.(*HybridInspectDlpJobRequest)) 21769 } 21770 return interceptor(ctx, in, info, handler) 21771} 21772 21773func _DlpService_FinishDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21774 in := new(FinishDlpJobRequest) 21775 if err := dec(in); err != nil { 21776 return nil, err 21777 } 21778 if interceptor == nil { 21779 return srv.(DlpServiceServer).FinishDlpJob(ctx, in) 21780 } 21781 info := &grpc.UnaryServerInfo{ 21782 Server: srv, 21783 FullMethod: "/google.privacy.dlp.v2.DlpService/FinishDlpJob", 21784 } 21785 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21786 return srv.(DlpServiceServer).FinishDlpJob(ctx, req.(*FinishDlpJobRequest)) 21787 } 21788 return interceptor(ctx, in, info, handler) 21789} 21790 21791var _DlpService_serviceDesc = grpc.ServiceDesc{ 21792 ServiceName: "google.privacy.dlp.v2.DlpService", 21793 HandlerType: (*DlpServiceServer)(nil), 21794 Methods: []grpc.MethodDesc{ 21795 { 21796 MethodName: "InspectContent", 21797 Handler: _DlpService_InspectContent_Handler, 21798 }, 21799 { 21800 MethodName: "RedactImage", 21801 Handler: _DlpService_RedactImage_Handler, 21802 }, 21803 { 21804 MethodName: "DeidentifyContent", 21805 Handler: _DlpService_DeidentifyContent_Handler, 21806 }, 21807 { 21808 MethodName: "ReidentifyContent", 21809 Handler: _DlpService_ReidentifyContent_Handler, 21810 }, 21811 { 21812 MethodName: "ListInfoTypes", 21813 Handler: _DlpService_ListInfoTypes_Handler, 21814 }, 21815 { 21816 MethodName: "CreateInspectTemplate", 21817 Handler: _DlpService_CreateInspectTemplate_Handler, 21818 }, 21819 { 21820 MethodName: "UpdateInspectTemplate", 21821 Handler: _DlpService_UpdateInspectTemplate_Handler, 21822 }, 21823 { 21824 MethodName: "GetInspectTemplate", 21825 Handler: _DlpService_GetInspectTemplate_Handler, 21826 }, 21827 { 21828 MethodName: "ListInspectTemplates", 21829 Handler: _DlpService_ListInspectTemplates_Handler, 21830 }, 21831 { 21832 MethodName: "DeleteInspectTemplate", 21833 Handler: _DlpService_DeleteInspectTemplate_Handler, 21834 }, 21835 { 21836 MethodName: "CreateDeidentifyTemplate", 21837 Handler: _DlpService_CreateDeidentifyTemplate_Handler, 21838 }, 21839 { 21840 MethodName: "UpdateDeidentifyTemplate", 21841 Handler: _DlpService_UpdateDeidentifyTemplate_Handler, 21842 }, 21843 { 21844 MethodName: "GetDeidentifyTemplate", 21845 Handler: _DlpService_GetDeidentifyTemplate_Handler, 21846 }, 21847 { 21848 MethodName: "ListDeidentifyTemplates", 21849 Handler: _DlpService_ListDeidentifyTemplates_Handler, 21850 }, 21851 { 21852 MethodName: "DeleteDeidentifyTemplate", 21853 Handler: _DlpService_DeleteDeidentifyTemplate_Handler, 21854 }, 21855 { 21856 MethodName: "CreateJobTrigger", 21857 Handler: _DlpService_CreateJobTrigger_Handler, 21858 }, 21859 { 21860 MethodName: "UpdateJobTrigger", 21861 Handler: _DlpService_UpdateJobTrigger_Handler, 21862 }, 21863 { 21864 MethodName: "HybridInspectJobTrigger", 21865 Handler: _DlpService_HybridInspectJobTrigger_Handler, 21866 }, 21867 { 21868 MethodName: "GetJobTrigger", 21869 Handler: _DlpService_GetJobTrigger_Handler, 21870 }, 21871 { 21872 MethodName: "ListJobTriggers", 21873 Handler: _DlpService_ListJobTriggers_Handler, 21874 }, 21875 { 21876 MethodName: "DeleteJobTrigger", 21877 Handler: _DlpService_DeleteJobTrigger_Handler, 21878 }, 21879 { 21880 MethodName: "ActivateJobTrigger", 21881 Handler: _DlpService_ActivateJobTrigger_Handler, 21882 }, 21883 { 21884 MethodName: "CreateDlpJob", 21885 Handler: _DlpService_CreateDlpJob_Handler, 21886 }, 21887 { 21888 MethodName: "ListDlpJobs", 21889 Handler: _DlpService_ListDlpJobs_Handler, 21890 }, 21891 { 21892 MethodName: "GetDlpJob", 21893 Handler: _DlpService_GetDlpJob_Handler, 21894 }, 21895 { 21896 MethodName: "DeleteDlpJob", 21897 Handler: _DlpService_DeleteDlpJob_Handler, 21898 }, 21899 { 21900 MethodName: "CancelDlpJob", 21901 Handler: _DlpService_CancelDlpJob_Handler, 21902 }, 21903 { 21904 MethodName: "CreateStoredInfoType", 21905 Handler: _DlpService_CreateStoredInfoType_Handler, 21906 }, 21907 { 21908 MethodName: "UpdateStoredInfoType", 21909 Handler: _DlpService_UpdateStoredInfoType_Handler, 21910 }, 21911 { 21912 MethodName: "GetStoredInfoType", 21913 Handler: _DlpService_GetStoredInfoType_Handler, 21914 }, 21915 { 21916 MethodName: "ListStoredInfoTypes", 21917 Handler: _DlpService_ListStoredInfoTypes_Handler, 21918 }, 21919 { 21920 MethodName: "DeleteStoredInfoType", 21921 Handler: _DlpService_DeleteStoredInfoType_Handler, 21922 }, 21923 { 21924 MethodName: "HybridInspectDlpJob", 21925 Handler: _DlpService_HybridInspectDlpJob_Handler, 21926 }, 21927 { 21928 MethodName: "FinishDlpJob", 21929 Handler: _DlpService_FinishDlpJob_Handler, 21930 }, 21931 }, 21932 Streams: []grpc.StreamDesc{}, 21933 Metadata: "google/privacy/dlp/v2/dlp.proto", 21934} 21935