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.22.0 18// protoc v3.11.2 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 duration "github.com/golang/protobuf/ptypes/duration" 30 empty "github.com/golang/protobuf/ptypes/empty" 31 timestamp "github.com/golang/protobuf/ptypes/timestamp" 32 _ "google.golang.org/genproto/googleapis/api/annotations" 33 status "google.golang.org/genproto/googleapis/rpc/status" 34 date "google.golang.org/genproto/googleapis/type/date" 35 dayofweek "google.golang.org/genproto/googleapis/type/dayofweek" 36 timeofday "google.golang.org/genproto/googleapis/type/timeofday" 37 field_mask "google.golang.org/genproto/protobuf/field_mask" 38 grpc "google.golang.org/grpc" 39 codes "google.golang.org/grpc/codes" 40 status1 "google.golang.org/grpc/status" 41 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 42 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 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 GCS. 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) 497 498// Enum value maps for ByteContentItem_BytesType. 499var ( 500 ByteContentItem_BytesType_name = map[int32]string{ 501 0: "BYTES_TYPE_UNSPECIFIED", 502 6: "IMAGE", 503 1: "IMAGE_JPEG", 504 2: "IMAGE_BMP", 505 3: "IMAGE_PNG", 506 4: "IMAGE_SVG", 507 5: "TEXT_UTF8", 508 7: "WORD_DOCUMENT", 509 8: "PDF", 510 11: "AVRO", 511 } 512 ByteContentItem_BytesType_value = map[string]int32{ 513 "BYTES_TYPE_UNSPECIFIED": 0, 514 "IMAGE": 6, 515 "IMAGE_JPEG": 1, 516 "IMAGE_BMP": 2, 517 "IMAGE_PNG": 3, 518 "IMAGE_SVG": 4, 519 "TEXT_UTF8": 5, 520 "WORD_DOCUMENT": 7, 521 "PDF": 8, 522 "AVRO": 11, 523 } 524) 525 526func (x ByteContentItem_BytesType) Enum() *ByteContentItem_BytesType { 527 p := new(ByteContentItem_BytesType) 528 *p = x 529 return p 530} 531 532func (x ByteContentItem_BytesType) String() string { 533 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 534} 535 536func (ByteContentItem_BytesType) Descriptor() protoreflect.EnumDescriptor { 537 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[7].Descriptor() 538} 539 540func (ByteContentItem_BytesType) Type() protoreflect.EnumType { 541 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[7] 542} 543 544func (x ByteContentItem_BytesType) Number() protoreflect.EnumNumber { 545 return protoreflect.EnumNumber(x) 546} 547 548// Deprecated: Use ByteContentItem_BytesType.Descriptor instead. 549func (ByteContentItem_BytesType) EnumDescriptor() ([]byte, []int) { 550 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{5, 0} 551} 552 553// Predefined schemas for storing findings. 554// Only for use with external storage. 555type OutputStorageConfig_OutputSchema int32 556 557const ( 558 // Unused. 559 OutputStorageConfig_OUTPUT_SCHEMA_UNSPECIFIED OutputStorageConfig_OutputSchema = 0 560 // Basic schema including only `info_type`, `quote`, `certainty`, and 561 // `timestamp`. 562 OutputStorageConfig_BASIC_COLUMNS OutputStorageConfig_OutputSchema = 1 563 // Schema tailored to findings from scanning Google Cloud Storage. 564 OutputStorageConfig_GCS_COLUMNS OutputStorageConfig_OutputSchema = 2 565 // Schema tailored to findings from scanning Google Datastore. 566 OutputStorageConfig_DATASTORE_COLUMNS OutputStorageConfig_OutputSchema = 3 567 // Schema tailored to findings from scanning Google BigQuery. 568 OutputStorageConfig_BIG_QUERY_COLUMNS OutputStorageConfig_OutputSchema = 4 569 // Schema containing all columns. 570 OutputStorageConfig_ALL_COLUMNS OutputStorageConfig_OutputSchema = 5 571) 572 573// Enum value maps for OutputStorageConfig_OutputSchema. 574var ( 575 OutputStorageConfig_OutputSchema_name = map[int32]string{ 576 0: "OUTPUT_SCHEMA_UNSPECIFIED", 577 1: "BASIC_COLUMNS", 578 2: "GCS_COLUMNS", 579 3: "DATASTORE_COLUMNS", 580 4: "BIG_QUERY_COLUMNS", 581 5: "ALL_COLUMNS", 582 } 583 OutputStorageConfig_OutputSchema_value = map[string]int32{ 584 "OUTPUT_SCHEMA_UNSPECIFIED": 0, 585 "BASIC_COLUMNS": 1, 586 "GCS_COLUMNS": 2, 587 "DATASTORE_COLUMNS": 3, 588 "BIG_QUERY_COLUMNS": 4, 589 "ALL_COLUMNS": 5, 590 } 591) 592 593func (x OutputStorageConfig_OutputSchema) Enum() *OutputStorageConfig_OutputSchema { 594 p := new(OutputStorageConfig_OutputSchema) 595 *p = x 596 return p 597} 598 599func (x OutputStorageConfig_OutputSchema) String() string { 600 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 601} 602 603func (OutputStorageConfig_OutputSchema) Descriptor() protoreflect.EnumDescriptor { 604 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[8].Descriptor() 605} 606 607func (OutputStorageConfig_OutputSchema) Type() protoreflect.EnumType { 608 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[8] 609} 610 611func (x OutputStorageConfig_OutputSchema) Number() protoreflect.EnumNumber { 612 return protoreflect.EnumNumber(x) 613} 614 615// Deprecated: Use OutputStorageConfig_OutputSchema.Descriptor instead. 616func (OutputStorageConfig_OutputSchema) EnumDescriptor() ([]byte, []int) { 617 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{30, 0} 618} 619 620// Components that make up time. 621type TimePartConfig_TimePart int32 622 623const ( 624 // Unused 625 TimePartConfig_TIME_PART_UNSPECIFIED TimePartConfig_TimePart = 0 626 // [0-9999] 627 TimePartConfig_YEAR TimePartConfig_TimePart = 1 628 // [1-12] 629 TimePartConfig_MONTH TimePartConfig_TimePart = 2 630 // [1-31] 631 TimePartConfig_DAY_OF_MONTH TimePartConfig_TimePart = 3 632 // [1-7] 633 TimePartConfig_DAY_OF_WEEK TimePartConfig_TimePart = 4 634 // [1-53] 635 TimePartConfig_WEEK_OF_YEAR TimePartConfig_TimePart = 5 636 // [0-23] 637 TimePartConfig_HOUR_OF_DAY TimePartConfig_TimePart = 6 638) 639 640// Enum value maps for TimePartConfig_TimePart. 641var ( 642 TimePartConfig_TimePart_name = map[int32]string{ 643 0: "TIME_PART_UNSPECIFIED", 644 1: "YEAR", 645 2: "MONTH", 646 3: "DAY_OF_MONTH", 647 4: "DAY_OF_WEEK", 648 5: "WEEK_OF_YEAR", 649 6: "HOUR_OF_DAY", 650 } 651 TimePartConfig_TimePart_value = map[string]int32{ 652 "TIME_PART_UNSPECIFIED": 0, 653 "YEAR": 1, 654 "MONTH": 2, 655 "DAY_OF_MONTH": 3, 656 "DAY_OF_WEEK": 4, 657 "WEEK_OF_YEAR": 5, 658 "HOUR_OF_DAY": 6, 659 } 660) 661 662func (x TimePartConfig_TimePart) Enum() *TimePartConfig_TimePart { 663 p := new(TimePartConfig_TimePart) 664 *p = x 665 return p 666} 667 668func (x TimePartConfig_TimePart) String() string { 669 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 670} 671 672func (TimePartConfig_TimePart) Descriptor() protoreflect.EnumDescriptor { 673 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[9].Descriptor() 674} 675 676func (TimePartConfig_TimePart) Type() protoreflect.EnumType { 677 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[9] 678} 679 680func (x TimePartConfig_TimePart) Number() protoreflect.EnumNumber { 681 return protoreflect.EnumNumber(x) 682} 683 684// Deprecated: Use TimePartConfig_TimePart.Descriptor instead. 685func (TimePartConfig_TimePart) EnumDescriptor() ([]byte, []int) { 686 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{49, 0} 687} 688 689// Convenience enum for indication common characters to not transform. 690type CharsToIgnore_CommonCharsToIgnore int32 691 692const ( 693 // Unused. 694 CharsToIgnore_COMMON_CHARS_TO_IGNORE_UNSPECIFIED CharsToIgnore_CommonCharsToIgnore = 0 695 // 0-9 696 CharsToIgnore_NUMERIC CharsToIgnore_CommonCharsToIgnore = 1 697 // A-Z 698 CharsToIgnore_ALPHA_UPPER_CASE CharsToIgnore_CommonCharsToIgnore = 2 699 // a-z 700 CharsToIgnore_ALPHA_LOWER_CASE CharsToIgnore_CommonCharsToIgnore = 3 701 // US Punctuation, one of !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 702 CharsToIgnore_PUNCTUATION CharsToIgnore_CommonCharsToIgnore = 4 703 // Whitespace character, one of [ \t\n\x0B\f\r] 704 CharsToIgnore_WHITESPACE CharsToIgnore_CommonCharsToIgnore = 5 705) 706 707// Enum value maps for CharsToIgnore_CommonCharsToIgnore. 708var ( 709 CharsToIgnore_CommonCharsToIgnore_name = map[int32]string{ 710 0: "COMMON_CHARS_TO_IGNORE_UNSPECIFIED", 711 1: "NUMERIC", 712 2: "ALPHA_UPPER_CASE", 713 3: "ALPHA_LOWER_CASE", 714 4: "PUNCTUATION", 715 5: "WHITESPACE", 716 } 717 CharsToIgnore_CommonCharsToIgnore_value = map[string]int32{ 718 "COMMON_CHARS_TO_IGNORE_UNSPECIFIED": 0, 719 "NUMERIC": 1, 720 "ALPHA_UPPER_CASE": 2, 721 "ALPHA_LOWER_CASE": 3, 722 "PUNCTUATION": 4, 723 "WHITESPACE": 5, 724 } 725) 726 727func (x CharsToIgnore_CommonCharsToIgnore) Enum() *CharsToIgnore_CommonCharsToIgnore { 728 p := new(CharsToIgnore_CommonCharsToIgnore) 729 *p = x 730 return p 731} 732 733func (x CharsToIgnore_CommonCharsToIgnore) String() string { 734 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 735} 736 737func (CharsToIgnore_CommonCharsToIgnore) Descriptor() protoreflect.EnumDescriptor { 738 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[10].Descriptor() 739} 740 741func (CharsToIgnore_CommonCharsToIgnore) Type() protoreflect.EnumType { 742 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[10] 743} 744 745func (x CharsToIgnore_CommonCharsToIgnore) Number() protoreflect.EnumNumber { 746 return protoreflect.EnumNumber(x) 747} 748 749// Deprecated: Use CharsToIgnore_CommonCharsToIgnore.Descriptor instead. 750func (CharsToIgnore_CommonCharsToIgnore) EnumDescriptor() ([]byte, []int) { 751 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{55, 0} 752} 753 754// These are commonly used subsets of the alphabet that the FFX mode 755// natively supports. In the algorithm, the alphabet is selected using 756// the "radix". Therefore each corresponds to particular radix. 757type CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet int32 758 759const ( 760 // Unused. 761 CryptoReplaceFfxFpeConfig_FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 0 762 // [0-9] (radix of 10) 763 CryptoReplaceFfxFpeConfig_NUMERIC CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 1 764 // [0-9A-F] (radix of 16) 765 CryptoReplaceFfxFpeConfig_HEXADECIMAL CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 2 766 // [0-9A-Z] (radix of 36) 767 CryptoReplaceFfxFpeConfig_UPPER_CASE_ALPHA_NUMERIC CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 3 768 // [0-9A-Za-z] (radix of 62) 769 CryptoReplaceFfxFpeConfig_ALPHA_NUMERIC CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 4 770) 771 772// Enum value maps for CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet. 773var ( 774 CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet_name = map[int32]string{ 775 0: "FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED", 776 1: "NUMERIC", 777 2: "HEXADECIMAL", 778 3: "UPPER_CASE_ALPHA_NUMERIC", 779 4: "ALPHA_NUMERIC", 780 } 781 CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet_value = map[string]int32{ 782 "FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED": 0, 783 "NUMERIC": 1, 784 "HEXADECIMAL": 2, 785 "UPPER_CASE_ALPHA_NUMERIC": 3, 786 "ALPHA_NUMERIC": 4, 787 } 788) 789 790func (x CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) Enum() *CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet { 791 p := new(CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) 792 *p = x 793 return p 794} 795 796func (x CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) String() string { 797 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 798} 799 800func (CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) Descriptor() protoreflect.EnumDescriptor { 801 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[11].Descriptor() 802} 803 804func (CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) Type() protoreflect.EnumType { 805 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[11] 806} 807 808func (x CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) Number() protoreflect.EnumNumber { 809 return protoreflect.EnumNumber(x) 810} 811 812// Deprecated: Use CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet.Descriptor instead. 813func (CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) EnumDescriptor() ([]byte, []int) { 814 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{59, 0} 815} 816 817// Logical operators for conditional checks. 818type RecordCondition_Expressions_LogicalOperator int32 819 820const ( 821 // Unused 822 RecordCondition_Expressions_LOGICAL_OPERATOR_UNSPECIFIED RecordCondition_Expressions_LogicalOperator = 0 823 // Conditional AND 824 RecordCondition_Expressions_AND RecordCondition_Expressions_LogicalOperator = 1 825) 826 827// Enum value maps for RecordCondition_Expressions_LogicalOperator. 828var ( 829 RecordCondition_Expressions_LogicalOperator_name = map[int32]string{ 830 0: "LOGICAL_OPERATOR_UNSPECIFIED", 831 1: "AND", 832 } 833 RecordCondition_Expressions_LogicalOperator_value = map[string]int32{ 834 "LOGICAL_OPERATOR_UNSPECIFIED": 0, 835 "AND": 1, 836 } 837) 838 839func (x RecordCondition_Expressions_LogicalOperator) Enum() *RecordCondition_Expressions_LogicalOperator { 840 p := new(RecordCondition_Expressions_LogicalOperator) 841 *p = x 842 return p 843} 844 845func (x RecordCondition_Expressions_LogicalOperator) String() string { 846 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 847} 848 849func (RecordCondition_Expressions_LogicalOperator) Descriptor() protoreflect.EnumDescriptor { 850 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[12].Descriptor() 851} 852 853func (RecordCondition_Expressions_LogicalOperator) Type() protoreflect.EnumType { 854 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[12] 855} 856 857func (x RecordCondition_Expressions_LogicalOperator) Number() protoreflect.EnumNumber { 858 return protoreflect.EnumNumber(x) 859} 860 861// Deprecated: Use RecordCondition_Expressions_LogicalOperator.Descriptor instead. 862func (RecordCondition_Expressions_LogicalOperator) EnumDescriptor() ([]byte, []int) { 863 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{69, 2, 0} 864} 865 866// Possible outcomes of transformations. 867type TransformationSummary_TransformationResultCode int32 868 869const ( 870 // Unused 871 TransformationSummary_TRANSFORMATION_RESULT_CODE_UNSPECIFIED TransformationSummary_TransformationResultCode = 0 872 // Transformation completed without an error. 873 TransformationSummary_SUCCESS TransformationSummary_TransformationResultCode = 1 874 // Transformation had an error. 875 TransformationSummary_ERROR TransformationSummary_TransformationResultCode = 2 876) 877 878// Enum value maps for TransformationSummary_TransformationResultCode. 879var ( 880 TransformationSummary_TransformationResultCode_name = map[int32]string{ 881 0: "TRANSFORMATION_RESULT_CODE_UNSPECIFIED", 882 1: "SUCCESS", 883 2: "ERROR", 884 } 885 TransformationSummary_TransformationResultCode_value = map[string]int32{ 886 "TRANSFORMATION_RESULT_CODE_UNSPECIFIED": 0, 887 "SUCCESS": 1, 888 "ERROR": 2, 889 } 890) 891 892func (x TransformationSummary_TransformationResultCode) Enum() *TransformationSummary_TransformationResultCode { 893 p := new(TransformationSummary_TransformationResultCode) 894 *p = x 895 return p 896} 897 898func (x TransformationSummary_TransformationResultCode) String() string { 899 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 900} 901 902func (TransformationSummary_TransformationResultCode) Descriptor() protoreflect.EnumDescriptor { 903 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[13].Descriptor() 904} 905 906func (TransformationSummary_TransformationResultCode) Type() protoreflect.EnumType { 907 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[13] 908} 909 910func (x TransformationSummary_TransformationResultCode) Number() protoreflect.EnumNumber { 911 return protoreflect.EnumNumber(x) 912} 913 914// Deprecated: Use TransformationSummary_TransformationResultCode.Descriptor instead. 915func (TransformationSummary_TransformationResultCode) EnumDescriptor() ([]byte, []int) { 916 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{71, 0} 917} 918 919// Whether the trigger is currently active. If PAUSED or CANCELLED, no jobs 920// will be created with this configuration. The service may automatically 921// pause triggers experiencing frequent errors. To restart a job, set the 922// status to HEALTHY after correcting user errors. 923type JobTrigger_Status int32 924 925const ( 926 // Unused. 927 JobTrigger_STATUS_UNSPECIFIED JobTrigger_Status = 0 928 // Trigger is healthy. 929 JobTrigger_HEALTHY JobTrigger_Status = 1 930 // Trigger is temporarily paused. 931 JobTrigger_PAUSED JobTrigger_Status = 2 932 // Trigger is cancelled and can not be resumed. 933 JobTrigger_CANCELLED JobTrigger_Status = 3 934) 935 936// Enum value maps for JobTrigger_Status. 937var ( 938 JobTrigger_Status_name = map[int32]string{ 939 0: "STATUS_UNSPECIFIED", 940 1: "HEALTHY", 941 2: "PAUSED", 942 3: "CANCELLED", 943 } 944 JobTrigger_Status_value = map[string]int32{ 945 "STATUS_UNSPECIFIED": 0, 946 "HEALTHY": 1, 947 "PAUSED": 2, 948 "CANCELLED": 3, 949 } 950) 951 952func (x JobTrigger_Status) Enum() *JobTrigger_Status { 953 p := new(JobTrigger_Status) 954 *p = x 955 return p 956} 957 958func (x JobTrigger_Status) String() string { 959 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 960} 961 962func (JobTrigger_Status) Descriptor() protoreflect.EnumDescriptor { 963 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[14].Descriptor() 964} 965 966func (JobTrigger_Status) Type() protoreflect.EnumType { 967 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[14] 968} 969 970func (x JobTrigger_Status) Number() protoreflect.EnumNumber { 971 return protoreflect.EnumNumber(x) 972} 973 974// Deprecated: Use JobTrigger_Status.Descriptor instead. 975func (JobTrigger_Status) EnumDescriptor() ([]byte, []int) { 976 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{77, 0} 977} 978 979// Possible states of a job. New items may be added. 980type DlpJob_JobState int32 981 982const ( 983 // Unused. 984 DlpJob_JOB_STATE_UNSPECIFIED DlpJob_JobState = 0 985 // The job has not yet started. 986 DlpJob_PENDING DlpJob_JobState = 1 987 // The job is currently running. Once a job has finished it will transition 988 // to FAILED or DONE. 989 DlpJob_RUNNING DlpJob_JobState = 2 990 // The job is no longer running. 991 DlpJob_DONE DlpJob_JobState = 3 992 // The job was canceled before it could complete. 993 DlpJob_CANCELED DlpJob_JobState = 4 994 // The job had an error and did not complete. 995 DlpJob_FAILED DlpJob_JobState = 5 996 // The job is currently accepting findings via hybridInspect. 997 // A hybrid job in ACTIVE state may continue to have findings added to it 998 // through calling of hybridInspect. After the job has finished no more 999 // calls to hybridInspect may be made. ACTIVE jobs can transition to DONE. 1000 DlpJob_ACTIVE DlpJob_JobState = 6 1001) 1002 1003// Enum value maps for DlpJob_JobState. 1004var ( 1005 DlpJob_JobState_name = map[int32]string{ 1006 0: "JOB_STATE_UNSPECIFIED", 1007 1: "PENDING", 1008 2: "RUNNING", 1009 3: "DONE", 1010 4: "CANCELED", 1011 5: "FAILED", 1012 6: "ACTIVE", 1013 } 1014 DlpJob_JobState_value = map[string]int32{ 1015 "JOB_STATE_UNSPECIFIED": 0, 1016 "PENDING": 1, 1017 "RUNNING": 2, 1018 "DONE": 3, 1019 "CANCELED": 4, 1020 "FAILED": 5, 1021 "ACTIVE": 6, 1022 } 1023) 1024 1025func (x DlpJob_JobState) Enum() *DlpJob_JobState { 1026 p := new(DlpJob_JobState) 1027 *p = x 1028 return p 1029} 1030 1031func (x DlpJob_JobState) String() string { 1032 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 1033} 1034 1035func (DlpJob_JobState) Descriptor() protoreflect.EnumDescriptor { 1036 return file_google_privacy_dlp_v2_dlp_proto_enumTypes[15].Descriptor() 1037} 1038 1039func (DlpJob_JobState) Type() protoreflect.EnumType { 1040 return &file_google_privacy_dlp_v2_dlp_proto_enumTypes[15] 1041} 1042 1043func (x DlpJob_JobState) Number() protoreflect.EnumNumber { 1044 return protoreflect.EnumNumber(x) 1045} 1046 1047// Deprecated: Use DlpJob_JobState.Descriptor instead. 1048func (DlpJob_JobState) EnumDescriptor() ([]byte, []int) { 1049 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{94, 0} 1050} 1051 1052// List of exclude infoTypes. 1053type ExcludeInfoTypes struct { 1054 state protoimpl.MessageState 1055 sizeCache protoimpl.SizeCache 1056 unknownFields protoimpl.UnknownFields 1057 1058 // InfoType list in ExclusionRule rule drops a finding when it overlaps or 1059 // contained within with a finding of an infoType from this list. For 1060 // example, for `InspectionRuleSet.info_types` containing "PHONE_NUMBER"` and 1061 // `exclusion_rule` containing `exclude_info_types.info_types` with 1062 // "EMAIL_ADDRESS" the phone number findings are dropped if they overlap 1063 // with EMAIL_ADDRESS finding. 1064 // That leads to "555-222-2222@example.org" to generate only a single 1065 // finding, namely email address. 1066 InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"` 1067} 1068 1069func (x *ExcludeInfoTypes) Reset() { 1070 *x = ExcludeInfoTypes{} 1071 if protoimpl.UnsafeEnabled { 1072 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[0] 1073 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1074 ms.StoreMessageInfo(mi) 1075 } 1076} 1077 1078func (x *ExcludeInfoTypes) String() string { 1079 return protoimpl.X.MessageStringOf(x) 1080} 1081 1082func (*ExcludeInfoTypes) ProtoMessage() {} 1083 1084func (x *ExcludeInfoTypes) ProtoReflect() protoreflect.Message { 1085 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[0] 1086 if protoimpl.UnsafeEnabled && x != nil { 1087 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1088 if ms.LoadMessageInfo() == nil { 1089 ms.StoreMessageInfo(mi) 1090 } 1091 return ms 1092 } 1093 return mi.MessageOf(x) 1094} 1095 1096// Deprecated: Use ExcludeInfoTypes.ProtoReflect.Descriptor instead. 1097func (*ExcludeInfoTypes) Descriptor() ([]byte, []int) { 1098 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{0} 1099} 1100 1101func (x *ExcludeInfoTypes) GetInfoTypes() []*InfoType { 1102 if x != nil { 1103 return x.InfoTypes 1104 } 1105 return nil 1106} 1107 1108// The rule that specifies conditions when findings of infoTypes specified in 1109// `InspectionRuleSet` are removed from results. 1110type ExclusionRule struct { 1111 state protoimpl.MessageState 1112 sizeCache protoimpl.SizeCache 1113 unknownFields protoimpl.UnknownFields 1114 1115 // Exclusion rule types. 1116 // 1117 // Types that are assignable to Type: 1118 // *ExclusionRule_Dictionary 1119 // *ExclusionRule_Regex 1120 // *ExclusionRule_ExcludeInfoTypes 1121 Type isExclusionRule_Type `protobuf_oneof:"type"` 1122 // How the rule is applied, see MatchingType documentation for details. 1123 MatchingType MatchingType `protobuf:"varint,4,opt,name=matching_type,json=matchingType,proto3,enum=google.privacy.dlp.v2.MatchingType" json:"matching_type,omitempty"` 1124} 1125 1126func (x *ExclusionRule) Reset() { 1127 *x = ExclusionRule{} 1128 if protoimpl.UnsafeEnabled { 1129 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[1] 1130 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1131 ms.StoreMessageInfo(mi) 1132 } 1133} 1134 1135func (x *ExclusionRule) String() string { 1136 return protoimpl.X.MessageStringOf(x) 1137} 1138 1139func (*ExclusionRule) ProtoMessage() {} 1140 1141func (x *ExclusionRule) ProtoReflect() protoreflect.Message { 1142 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[1] 1143 if protoimpl.UnsafeEnabled && x != nil { 1144 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1145 if ms.LoadMessageInfo() == nil { 1146 ms.StoreMessageInfo(mi) 1147 } 1148 return ms 1149 } 1150 return mi.MessageOf(x) 1151} 1152 1153// Deprecated: Use ExclusionRule.ProtoReflect.Descriptor instead. 1154func (*ExclusionRule) Descriptor() ([]byte, []int) { 1155 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{1} 1156} 1157 1158func (m *ExclusionRule) GetType() isExclusionRule_Type { 1159 if m != nil { 1160 return m.Type 1161 } 1162 return nil 1163} 1164 1165func (x *ExclusionRule) GetDictionary() *CustomInfoType_Dictionary { 1166 if x, ok := x.GetType().(*ExclusionRule_Dictionary); ok { 1167 return x.Dictionary 1168 } 1169 return nil 1170} 1171 1172func (x *ExclusionRule) GetRegex() *CustomInfoType_Regex { 1173 if x, ok := x.GetType().(*ExclusionRule_Regex); ok { 1174 return x.Regex 1175 } 1176 return nil 1177} 1178 1179func (x *ExclusionRule) GetExcludeInfoTypes() *ExcludeInfoTypes { 1180 if x, ok := x.GetType().(*ExclusionRule_ExcludeInfoTypes); ok { 1181 return x.ExcludeInfoTypes 1182 } 1183 return nil 1184} 1185 1186func (x *ExclusionRule) GetMatchingType() MatchingType { 1187 if x != nil { 1188 return x.MatchingType 1189 } 1190 return MatchingType_MATCHING_TYPE_UNSPECIFIED 1191} 1192 1193type isExclusionRule_Type interface { 1194 isExclusionRule_Type() 1195} 1196 1197type ExclusionRule_Dictionary struct { 1198 // Dictionary which defines the rule. 1199 Dictionary *CustomInfoType_Dictionary `protobuf:"bytes,1,opt,name=dictionary,proto3,oneof"` 1200} 1201 1202type ExclusionRule_Regex struct { 1203 // Regular expression which defines the rule. 1204 Regex *CustomInfoType_Regex `protobuf:"bytes,2,opt,name=regex,proto3,oneof"` 1205} 1206 1207type ExclusionRule_ExcludeInfoTypes struct { 1208 // Set of infoTypes for which findings would affect this rule. 1209 ExcludeInfoTypes *ExcludeInfoTypes `protobuf:"bytes,3,opt,name=exclude_info_types,json=excludeInfoTypes,proto3,oneof"` 1210} 1211 1212func (*ExclusionRule_Dictionary) isExclusionRule_Type() {} 1213 1214func (*ExclusionRule_Regex) isExclusionRule_Type() {} 1215 1216func (*ExclusionRule_ExcludeInfoTypes) isExclusionRule_Type() {} 1217 1218// A single inspection rule to be applied to infoTypes, specified in 1219// `InspectionRuleSet`. 1220type InspectionRule struct { 1221 state protoimpl.MessageState 1222 sizeCache protoimpl.SizeCache 1223 unknownFields protoimpl.UnknownFields 1224 1225 // Inspection rule types. 1226 // 1227 // Types that are assignable to Type: 1228 // *InspectionRule_HotwordRule 1229 // *InspectionRule_ExclusionRule 1230 Type isInspectionRule_Type `protobuf_oneof:"type"` 1231} 1232 1233func (x *InspectionRule) Reset() { 1234 *x = InspectionRule{} 1235 if protoimpl.UnsafeEnabled { 1236 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[2] 1237 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1238 ms.StoreMessageInfo(mi) 1239 } 1240} 1241 1242func (x *InspectionRule) String() string { 1243 return protoimpl.X.MessageStringOf(x) 1244} 1245 1246func (*InspectionRule) ProtoMessage() {} 1247 1248func (x *InspectionRule) ProtoReflect() protoreflect.Message { 1249 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[2] 1250 if protoimpl.UnsafeEnabled && x != nil { 1251 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1252 if ms.LoadMessageInfo() == nil { 1253 ms.StoreMessageInfo(mi) 1254 } 1255 return ms 1256 } 1257 return mi.MessageOf(x) 1258} 1259 1260// Deprecated: Use InspectionRule.ProtoReflect.Descriptor instead. 1261func (*InspectionRule) Descriptor() ([]byte, []int) { 1262 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{2} 1263} 1264 1265func (m *InspectionRule) GetType() isInspectionRule_Type { 1266 if m != nil { 1267 return m.Type 1268 } 1269 return nil 1270} 1271 1272func (x *InspectionRule) GetHotwordRule() *CustomInfoType_DetectionRule_HotwordRule { 1273 if x, ok := x.GetType().(*InspectionRule_HotwordRule); ok { 1274 return x.HotwordRule 1275 } 1276 return nil 1277} 1278 1279func (x *InspectionRule) GetExclusionRule() *ExclusionRule { 1280 if x, ok := x.GetType().(*InspectionRule_ExclusionRule); ok { 1281 return x.ExclusionRule 1282 } 1283 return nil 1284} 1285 1286type isInspectionRule_Type interface { 1287 isInspectionRule_Type() 1288} 1289 1290type InspectionRule_HotwordRule struct { 1291 // Hotword-based detection rule. 1292 HotwordRule *CustomInfoType_DetectionRule_HotwordRule `protobuf:"bytes,1,opt,name=hotword_rule,json=hotwordRule,proto3,oneof"` 1293} 1294 1295type InspectionRule_ExclusionRule struct { 1296 // Exclusion rule. 1297 ExclusionRule *ExclusionRule `protobuf:"bytes,2,opt,name=exclusion_rule,json=exclusionRule,proto3,oneof"` 1298} 1299 1300func (*InspectionRule_HotwordRule) isInspectionRule_Type() {} 1301 1302func (*InspectionRule_ExclusionRule) isInspectionRule_Type() {} 1303 1304// Rule set for modifying a set of infoTypes to alter behavior under certain 1305// circumstances, depending on the specific details of the rules within the set. 1306type InspectionRuleSet struct { 1307 state protoimpl.MessageState 1308 sizeCache protoimpl.SizeCache 1309 unknownFields protoimpl.UnknownFields 1310 1311 // List of infoTypes this rule set is applied to. 1312 InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"` 1313 // Set of rules to be applied to infoTypes. The rules are applied in order. 1314 Rules []*InspectionRule `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules,omitempty"` 1315} 1316 1317func (x *InspectionRuleSet) Reset() { 1318 *x = InspectionRuleSet{} 1319 if protoimpl.UnsafeEnabled { 1320 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[3] 1321 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1322 ms.StoreMessageInfo(mi) 1323 } 1324} 1325 1326func (x *InspectionRuleSet) String() string { 1327 return protoimpl.X.MessageStringOf(x) 1328} 1329 1330func (*InspectionRuleSet) ProtoMessage() {} 1331 1332func (x *InspectionRuleSet) ProtoReflect() protoreflect.Message { 1333 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[3] 1334 if protoimpl.UnsafeEnabled && x != nil { 1335 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1336 if ms.LoadMessageInfo() == nil { 1337 ms.StoreMessageInfo(mi) 1338 } 1339 return ms 1340 } 1341 return mi.MessageOf(x) 1342} 1343 1344// Deprecated: Use InspectionRuleSet.ProtoReflect.Descriptor instead. 1345func (*InspectionRuleSet) Descriptor() ([]byte, []int) { 1346 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{3} 1347} 1348 1349func (x *InspectionRuleSet) GetInfoTypes() []*InfoType { 1350 if x != nil { 1351 return x.InfoTypes 1352 } 1353 return nil 1354} 1355 1356func (x *InspectionRuleSet) GetRules() []*InspectionRule { 1357 if x != nil { 1358 return x.Rules 1359 } 1360 return nil 1361} 1362 1363// Configuration description of the scanning process. 1364// When used with redactContent only info_types and min_likelihood are currently 1365// used. 1366type InspectConfig struct { 1367 state protoimpl.MessageState 1368 sizeCache protoimpl.SizeCache 1369 unknownFields protoimpl.UnknownFields 1370 1371 // Restricts what info_types to look for. The values must correspond to 1372 // InfoType values returned by ListInfoTypes or listed at 1373 // https://cloud.google.com/dlp/docs/infotypes-reference. 1374 // 1375 // When no InfoTypes or CustomInfoTypes are specified in a request, the 1376 // system may automatically choose what detectors to run. By default this may 1377 // be all types, but may change over time as detectors are updated. 1378 // 1379 // If you need precise control and predictability as to what detectors are 1380 // run you should specify specific InfoTypes listed in the reference, 1381 // otherwise a default list will be used, which may change over time. 1382 InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"` 1383 // Only returns findings equal or above this threshold. The default is 1384 // POSSIBLE. 1385 // See https://cloud.google.com/dlp/docs/likelihood to learn more. 1386 MinLikelihood Likelihood `protobuf:"varint,2,opt,name=min_likelihood,json=minLikelihood,proto3,enum=google.privacy.dlp.v2.Likelihood" json:"min_likelihood,omitempty"` 1387 // Configuration to control the number of findings returned. 1388 Limits *InspectConfig_FindingLimits `protobuf:"bytes,3,opt,name=limits,proto3" json:"limits,omitempty"` 1389 // When true, a contextual quote from the data that triggered a finding is 1390 // included in the response; see Finding.quote. 1391 IncludeQuote bool `protobuf:"varint,4,opt,name=include_quote,json=includeQuote,proto3" json:"include_quote,omitempty"` 1392 // When true, excludes type information of the findings. 1393 ExcludeInfoTypes bool `protobuf:"varint,5,opt,name=exclude_info_types,json=excludeInfoTypes,proto3" json:"exclude_info_types,omitempty"` 1394 // CustomInfoTypes provided by the user. See 1395 // https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. 1396 CustomInfoTypes []*CustomInfoType `protobuf:"bytes,6,rep,name=custom_info_types,json=customInfoTypes,proto3" json:"custom_info_types,omitempty"` 1397 // List of options defining data content to scan. 1398 // If empty, text, images, and other content will be included. 1399 ContentOptions []ContentOption `protobuf:"varint,8,rep,packed,name=content_options,json=contentOptions,proto3,enum=google.privacy.dlp.v2.ContentOption" json:"content_options,omitempty"` 1400 // Set of rules to apply to the findings for this InspectConfig. 1401 // Exclusion rules, contained in the set are executed in the end, other 1402 // rules are executed in the order they are specified for each info type. 1403 RuleSet []*InspectionRuleSet `protobuf:"bytes,10,rep,name=rule_set,json=ruleSet,proto3" json:"rule_set,omitempty"` 1404} 1405 1406func (x *InspectConfig) Reset() { 1407 *x = InspectConfig{} 1408 if protoimpl.UnsafeEnabled { 1409 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[4] 1410 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1411 ms.StoreMessageInfo(mi) 1412 } 1413} 1414 1415func (x *InspectConfig) String() string { 1416 return protoimpl.X.MessageStringOf(x) 1417} 1418 1419func (*InspectConfig) ProtoMessage() {} 1420 1421func (x *InspectConfig) ProtoReflect() protoreflect.Message { 1422 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[4] 1423 if protoimpl.UnsafeEnabled && x != nil { 1424 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1425 if ms.LoadMessageInfo() == nil { 1426 ms.StoreMessageInfo(mi) 1427 } 1428 return ms 1429 } 1430 return mi.MessageOf(x) 1431} 1432 1433// Deprecated: Use InspectConfig.ProtoReflect.Descriptor instead. 1434func (*InspectConfig) Descriptor() ([]byte, []int) { 1435 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{4} 1436} 1437 1438func (x *InspectConfig) GetInfoTypes() []*InfoType { 1439 if x != nil { 1440 return x.InfoTypes 1441 } 1442 return nil 1443} 1444 1445func (x *InspectConfig) GetMinLikelihood() Likelihood { 1446 if x != nil { 1447 return x.MinLikelihood 1448 } 1449 return Likelihood_LIKELIHOOD_UNSPECIFIED 1450} 1451 1452func (x *InspectConfig) GetLimits() *InspectConfig_FindingLimits { 1453 if x != nil { 1454 return x.Limits 1455 } 1456 return nil 1457} 1458 1459func (x *InspectConfig) GetIncludeQuote() bool { 1460 if x != nil { 1461 return x.IncludeQuote 1462 } 1463 return false 1464} 1465 1466func (x *InspectConfig) GetExcludeInfoTypes() bool { 1467 if x != nil { 1468 return x.ExcludeInfoTypes 1469 } 1470 return false 1471} 1472 1473func (x *InspectConfig) GetCustomInfoTypes() []*CustomInfoType { 1474 if x != nil { 1475 return x.CustomInfoTypes 1476 } 1477 return nil 1478} 1479 1480func (x *InspectConfig) GetContentOptions() []ContentOption { 1481 if x != nil { 1482 return x.ContentOptions 1483 } 1484 return nil 1485} 1486 1487func (x *InspectConfig) GetRuleSet() []*InspectionRuleSet { 1488 if x != nil { 1489 return x.RuleSet 1490 } 1491 return nil 1492} 1493 1494// Container for bytes to inspect or redact. 1495type ByteContentItem struct { 1496 state protoimpl.MessageState 1497 sizeCache protoimpl.SizeCache 1498 unknownFields protoimpl.UnknownFields 1499 1500 // The type of data stored in the bytes string. Default will be TEXT_UTF8. 1501 Type ByteContentItem_BytesType `protobuf:"varint,1,opt,name=type,proto3,enum=google.privacy.dlp.v2.ByteContentItem_BytesType" json:"type,omitempty"` 1502 // Content data to inspect or redact. 1503 Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` 1504} 1505 1506func (x *ByteContentItem) Reset() { 1507 *x = ByteContentItem{} 1508 if protoimpl.UnsafeEnabled { 1509 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[5] 1510 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1511 ms.StoreMessageInfo(mi) 1512 } 1513} 1514 1515func (x *ByteContentItem) String() string { 1516 return protoimpl.X.MessageStringOf(x) 1517} 1518 1519func (*ByteContentItem) ProtoMessage() {} 1520 1521func (x *ByteContentItem) ProtoReflect() protoreflect.Message { 1522 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[5] 1523 if protoimpl.UnsafeEnabled && x != nil { 1524 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1525 if ms.LoadMessageInfo() == nil { 1526 ms.StoreMessageInfo(mi) 1527 } 1528 return ms 1529 } 1530 return mi.MessageOf(x) 1531} 1532 1533// Deprecated: Use ByteContentItem.ProtoReflect.Descriptor instead. 1534func (*ByteContentItem) Descriptor() ([]byte, []int) { 1535 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{5} 1536} 1537 1538func (x *ByteContentItem) GetType() ByteContentItem_BytesType { 1539 if x != nil { 1540 return x.Type 1541 } 1542 return ByteContentItem_BYTES_TYPE_UNSPECIFIED 1543} 1544 1545func (x *ByteContentItem) GetData() []byte { 1546 if x != nil { 1547 return x.Data 1548 } 1549 return nil 1550} 1551 1552// Container structure for the content to inspect. 1553type ContentItem struct { 1554 state protoimpl.MessageState 1555 sizeCache protoimpl.SizeCache 1556 unknownFields protoimpl.UnknownFields 1557 1558 // Data of the item either in the byte array or UTF-8 string form, or table. 1559 // 1560 // Types that are assignable to DataItem: 1561 // *ContentItem_Value 1562 // *ContentItem_Table 1563 // *ContentItem_ByteItem 1564 DataItem isContentItem_DataItem `protobuf_oneof:"data_item"` 1565} 1566 1567func (x *ContentItem) Reset() { 1568 *x = ContentItem{} 1569 if protoimpl.UnsafeEnabled { 1570 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[6] 1571 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1572 ms.StoreMessageInfo(mi) 1573 } 1574} 1575 1576func (x *ContentItem) String() string { 1577 return protoimpl.X.MessageStringOf(x) 1578} 1579 1580func (*ContentItem) ProtoMessage() {} 1581 1582func (x *ContentItem) ProtoReflect() protoreflect.Message { 1583 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[6] 1584 if protoimpl.UnsafeEnabled && x != nil { 1585 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1586 if ms.LoadMessageInfo() == nil { 1587 ms.StoreMessageInfo(mi) 1588 } 1589 return ms 1590 } 1591 return mi.MessageOf(x) 1592} 1593 1594// Deprecated: Use ContentItem.ProtoReflect.Descriptor instead. 1595func (*ContentItem) Descriptor() ([]byte, []int) { 1596 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{6} 1597} 1598 1599func (m *ContentItem) GetDataItem() isContentItem_DataItem { 1600 if m != nil { 1601 return m.DataItem 1602 } 1603 return nil 1604} 1605 1606func (x *ContentItem) GetValue() string { 1607 if x, ok := x.GetDataItem().(*ContentItem_Value); ok { 1608 return x.Value 1609 } 1610 return "" 1611} 1612 1613func (x *ContentItem) GetTable() *Table { 1614 if x, ok := x.GetDataItem().(*ContentItem_Table); ok { 1615 return x.Table 1616 } 1617 return nil 1618} 1619 1620func (x *ContentItem) GetByteItem() *ByteContentItem { 1621 if x, ok := x.GetDataItem().(*ContentItem_ByteItem); ok { 1622 return x.ByteItem 1623 } 1624 return nil 1625} 1626 1627type isContentItem_DataItem interface { 1628 isContentItem_DataItem() 1629} 1630 1631type ContentItem_Value struct { 1632 // String data to inspect or redact. 1633 Value string `protobuf:"bytes,3,opt,name=value,proto3,oneof"` 1634} 1635 1636type ContentItem_Table struct { 1637 // Structured content for inspection. See 1638 // https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to 1639 // learn more. 1640 Table *Table `protobuf:"bytes,4,opt,name=table,proto3,oneof"` 1641} 1642 1643type ContentItem_ByteItem struct { 1644 // Content data to inspect or redact. Replaces `type` and `data`. 1645 ByteItem *ByteContentItem `protobuf:"bytes,5,opt,name=byte_item,json=byteItem,proto3,oneof"` 1646} 1647 1648func (*ContentItem_Value) isContentItem_DataItem() {} 1649 1650func (*ContentItem_Table) isContentItem_DataItem() {} 1651 1652func (*ContentItem_ByteItem) isContentItem_DataItem() {} 1653 1654// Structured content to inspect. Up to 50,000 `Value`s per request allowed. 1655// See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to 1656// learn more. 1657type Table struct { 1658 state protoimpl.MessageState 1659 sizeCache protoimpl.SizeCache 1660 unknownFields protoimpl.UnknownFields 1661 1662 // Headers of the table. 1663 Headers []*FieldId `protobuf:"bytes,1,rep,name=headers,proto3" json:"headers,omitempty"` 1664 // Rows of the table. 1665 Rows []*Table_Row `protobuf:"bytes,2,rep,name=rows,proto3" json:"rows,omitempty"` 1666} 1667 1668func (x *Table) Reset() { 1669 *x = Table{} 1670 if protoimpl.UnsafeEnabled { 1671 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[7] 1672 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1673 ms.StoreMessageInfo(mi) 1674 } 1675} 1676 1677func (x *Table) String() string { 1678 return protoimpl.X.MessageStringOf(x) 1679} 1680 1681func (*Table) ProtoMessage() {} 1682 1683func (x *Table) ProtoReflect() protoreflect.Message { 1684 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[7] 1685 if protoimpl.UnsafeEnabled && x != nil { 1686 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1687 if ms.LoadMessageInfo() == nil { 1688 ms.StoreMessageInfo(mi) 1689 } 1690 return ms 1691 } 1692 return mi.MessageOf(x) 1693} 1694 1695// Deprecated: Use Table.ProtoReflect.Descriptor instead. 1696func (*Table) Descriptor() ([]byte, []int) { 1697 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{7} 1698} 1699 1700func (x *Table) GetHeaders() []*FieldId { 1701 if x != nil { 1702 return x.Headers 1703 } 1704 return nil 1705} 1706 1707func (x *Table) GetRows() []*Table_Row { 1708 if x != nil { 1709 return x.Rows 1710 } 1711 return nil 1712} 1713 1714// All the findings for a single scanned item. 1715type InspectResult struct { 1716 state protoimpl.MessageState 1717 sizeCache protoimpl.SizeCache 1718 unknownFields protoimpl.UnknownFields 1719 1720 // List of findings for an item. 1721 Findings []*Finding `protobuf:"bytes,1,rep,name=findings,proto3" json:"findings,omitempty"` 1722 // If true, then this item might have more findings than were returned, 1723 // and the findings returned are an arbitrary subset of all findings. 1724 // The findings list might be truncated because the input items were too 1725 // large, or because the server reached the maximum amount of resources 1726 // allowed for a single API call. For best results, divide the input into 1727 // smaller batches. 1728 FindingsTruncated bool `protobuf:"varint,2,opt,name=findings_truncated,json=findingsTruncated,proto3" json:"findings_truncated,omitempty"` 1729} 1730 1731func (x *InspectResult) Reset() { 1732 *x = InspectResult{} 1733 if protoimpl.UnsafeEnabled { 1734 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[8] 1735 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1736 ms.StoreMessageInfo(mi) 1737 } 1738} 1739 1740func (x *InspectResult) String() string { 1741 return protoimpl.X.MessageStringOf(x) 1742} 1743 1744func (*InspectResult) ProtoMessage() {} 1745 1746func (x *InspectResult) ProtoReflect() protoreflect.Message { 1747 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[8] 1748 if protoimpl.UnsafeEnabled && x != nil { 1749 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1750 if ms.LoadMessageInfo() == nil { 1751 ms.StoreMessageInfo(mi) 1752 } 1753 return ms 1754 } 1755 return mi.MessageOf(x) 1756} 1757 1758// Deprecated: Use InspectResult.ProtoReflect.Descriptor instead. 1759func (*InspectResult) Descriptor() ([]byte, []int) { 1760 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{8} 1761} 1762 1763func (x *InspectResult) GetFindings() []*Finding { 1764 if x != nil { 1765 return x.Findings 1766 } 1767 return nil 1768} 1769 1770func (x *InspectResult) GetFindingsTruncated() bool { 1771 if x != nil { 1772 return x.FindingsTruncated 1773 } 1774 return false 1775} 1776 1777// Represents a piece of potentially sensitive content. 1778type Finding struct { 1779 state protoimpl.MessageState 1780 sizeCache protoimpl.SizeCache 1781 unknownFields protoimpl.UnknownFields 1782 1783 // Resource name in format 1784 // projects/{project}/locations/{location}/findings/{finding} 1785 // Populated only when viewing persisted findings. 1786 Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` 1787 // The content that was found. Even if the content is not textual, it 1788 // may be converted to a textual representation here. 1789 // Provided if `include_quote` is true and the finding is 1790 // less than or equal to 4096 bytes long. If the finding exceeds 4096 bytes 1791 // in length, the quote may be omitted. 1792 Quote string `protobuf:"bytes,1,opt,name=quote,proto3" json:"quote,omitempty"` 1793 // The type of content that might have been found. 1794 // Provided if `excluded_types` is false. 1795 InfoType *InfoType `protobuf:"bytes,2,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"` 1796 // Confidence of how likely it is that the `info_type` is correct. 1797 Likelihood Likelihood `protobuf:"varint,3,opt,name=likelihood,proto3,enum=google.privacy.dlp.v2.Likelihood" json:"likelihood,omitempty"` 1798 // Where the content was found. 1799 Location *Location `protobuf:"bytes,4,opt,name=location,proto3" json:"location,omitempty"` 1800 // Timestamp when finding was detected. 1801 CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 1802 // Contains data parsed from quotes. Only populated if include_quote was set 1803 // to true and a supported infoType was requested. Currently supported 1804 // infoTypes: DATE, DATE_OF_BIRTH and TIME. 1805 QuoteInfo *QuoteInfo `protobuf:"bytes,7,opt,name=quote_info,json=quoteInfo,proto3" json:"quote_info,omitempty"` 1806 // The job that stored the finding. 1807 ResourceName string `protobuf:"bytes,8,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` 1808 // Job trigger name, if applicable, for this finding. 1809 TriggerName string `protobuf:"bytes,9,opt,name=trigger_name,json=triggerName,proto3" json:"trigger_name,omitempty"` 1810 // The labels associated with this `Finding`. 1811 // 1812 // Label keys must be between 1 and 63 characters long and must conform 1813 // to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. 1814 // 1815 // Label values must be between 0 and 63 characters long and must conform 1816 // to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. 1817 // 1818 // No more than 10 labels can be associated with a given finding. 1819 // 1820 // Examples: 1821 // * `"environment" : "production"` 1822 // * `"pipeline" : "etl"` 1823 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"` 1824 // Time the job started that produced this finding. 1825 JobCreateTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=job_create_time,json=jobCreateTime,proto3" json:"job_create_time,omitempty"` 1826 // The job that stored the finding. 1827 JobName string `protobuf:"bytes,13,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty"` 1828} 1829 1830func (x *Finding) Reset() { 1831 *x = Finding{} 1832 if protoimpl.UnsafeEnabled { 1833 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[9] 1834 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1835 ms.StoreMessageInfo(mi) 1836 } 1837} 1838 1839func (x *Finding) String() string { 1840 return protoimpl.X.MessageStringOf(x) 1841} 1842 1843func (*Finding) ProtoMessage() {} 1844 1845func (x *Finding) ProtoReflect() protoreflect.Message { 1846 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[9] 1847 if protoimpl.UnsafeEnabled && x != nil { 1848 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1849 if ms.LoadMessageInfo() == nil { 1850 ms.StoreMessageInfo(mi) 1851 } 1852 return ms 1853 } 1854 return mi.MessageOf(x) 1855} 1856 1857// Deprecated: Use Finding.ProtoReflect.Descriptor instead. 1858func (*Finding) Descriptor() ([]byte, []int) { 1859 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{9} 1860} 1861 1862func (x *Finding) GetName() string { 1863 if x != nil { 1864 return x.Name 1865 } 1866 return "" 1867} 1868 1869func (x *Finding) GetQuote() string { 1870 if x != nil { 1871 return x.Quote 1872 } 1873 return "" 1874} 1875 1876func (x *Finding) GetInfoType() *InfoType { 1877 if x != nil { 1878 return x.InfoType 1879 } 1880 return nil 1881} 1882 1883func (x *Finding) GetLikelihood() Likelihood { 1884 if x != nil { 1885 return x.Likelihood 1886 } 1887 return Likelihood_LIKELIHOOD_UNSPECIFIED 1888} 1889 1890func (x *Finding) GetLocation() *Location { 1891 if x != nil { 1892 return x.Location 1893 } 1894 return nil 1895} 1896 1897func (x *Finding) GetCreateTime() *timestamp.Timestamp { 1898 if x != nil { 1899 return x.CreateTime 1900 } 1901 return nil 1902} 1903 1904func (x *Finding) GetQuoteInfo() *QuoteInfo { 1905 if x != nil { 1906 return x.QuoteInfo 1907 } 1908 return nil 1909} 1910 1911func (x *Finding) GetResourceName() string { 1912 if x != nil { 1913 return x.ResourceName 1914 } 1915 return "" 1916} 1917 1918func (x *Finding) GetTriggerName() string { 1919 if x != nil { 1920 return x.TriggerName 1921 } 1922 return "" 1923} 1924 1925func (x *Finding) GetLabels() map[string]string { 1926 if x != nil { 1927 return x.Labels 1928 } 1929 return nil 1930} 1931 1932func (x *Finding) GetJobCreateTime() *timestamp.Timestamp { 1933 if x != nil { 1934 return x.JobCreateTime 1935 } 1936 return nil 1937} 1938 1939func (x *Finding) GetJobName() string { 1940 if x != nil { 1941 return x.JobName 1942 } 1943 return "" 1944} 1945 1946// Specifies the location of the finding. 1947type Location struct { 1948 state protoimpl.MessageState 1949 sizeCache protoimpl.SizeCache 1950 unknownFields protoimpl.UnknownFields 1951 1952 // Zero-based byte offsets delimiting the finding. 1953 // These are relative to the finding's containing element. 1954 // Note that when the content is not textual, this references 1955 // the UTF-8 encoded textual representation of the content. 1956 // Omitted if content is an image. 1957 ByteRange *Range `protobuf:"bytes,1,opt,name=byte_range,json=byteRange,proto3" json:"byte_range,omitempty"` 1958 // Unicode character offsets delimiting the finding. 1959 // These are relative to the finding's containing element. 1960 // Provided when the content is text. 1961 CodepointRange *Range `protobuf:"bytes,2,opt,name=codepoint_range,json=codepointRange,proto3" json:"codepoint_range,omitempty"` 1962 // List of nested objects pointing to the precise location of the finding 1963 // within the file or record. 1964 ContentLocations []*ContentLocation `protobuf:"bytes,7,rep,name=content_locations,json=contentLocations,proto3" json:"content_locations,omitempty"` 1965 // Information about the container where this finding occurred, if available. 1966 Container *Container `protobuf:"bytes,8,opt,name=container,proto3" json:"container,omitempty"` 1967} 1968 1969func (x *Location) Reset() { 1970 *x = Location{} 1971 if protoimpl.UnsafeEnabled { 1972 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[10] 1973 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1974 ms.StoreMessageInfo(mi) 1975 } 1976} 1977 1978func (x *Location) String() string { 1979 return protoimpl.X.MessageStringOf(x) 1980} 1981 1982func (*Location) ProtoMessage() {} 1983 1984func (x *Location) ProtoReflect() protoreflect.Message { 1985 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[10] 1986 if protoimpl.UnsafeEnabled && x != nil { 1987 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1988 if ms.LoadMessageInfo() == nil { 1989 ms.StoreMessageInfo(mi) 1990 } 1991 return ms 1992 } 1993 return mi.MessageOf(x) 1994} 1995 1996// Deprecated: Use Location.ProtoReflect.Descriptor instead. 1997func (*Location) Descriptor() ([]byte, []int) { 1998 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{10} 1999} 2000 2001func (x *Location) GetByteRange() *Range { 2002 if x != nil { 2003 return x.ByteRange 2004 } 2005 return nil 2006} 2007 2008func (x *Location) GetCodepointRange() *Range { 2009 if x != nil { 2010 return x.CodepointRange 2011 } 2012 return nil 2013} 2014 2015func (x *Location) GetContentLocations() []*ContentLocation { 2016 if x != nil { 2017 return x.ContentLocations 2018 } 2019 return nil 2020} 2021 2022func (x *Location) GetContainer() *Container { 2023 if x != nil { 2024 return x.Container 2025 } 2026 return nil 2027} 2028 2029// Precise location of the finding within a document, record, image, or metadata 2030// container. 2031type ContentLocation struct { 2032 state protoimpl.MessageState 2033 sizeCache protoimpl.SizeCache 2034 unknownFields protoimpl.UnknownFields 2035 2036 // Name of the container where the finding is located. 2037 // The top level name is the source file name or table name. Names of some 2038 // common storage containers are formatted as follows: 2039 // 2040 // * BigQuery tables: `{project_id}:{dataset_id}.{table_id}` 2041 // * Cloud Storage files: `gs://{bucket}/{path}` 2042 // * Datastore namespace: {namespace} 2043 // 2044 // Nested names could be absent if the embedded object has no string 2045 // identifier (for an example an image contained within a document). 2046 ContainerName string `protobuf:"bytes,1,opt,name=container_name,json=containerName,proto3" json:"container_name,omitempty"` 2047 // Type of the container within the file with location of the finding. 2048 // 2049 // Types that are assignable to Location: 2050 // *ContentLocation_RecordLocation 2051 // *ContentLocation_ImageLocation 2052 // *ContentLocation_DocumentLocation 2053 // *ContentLocation_MetadataLocation 2054 Location isContentLocation_Location `protobuf_oneof:"location"` 2055 // Findings container modification timestamp, if applicable. 2056 // For Google Cloud Storage contains last file modification timestamp. 2057 // For BigQuery table contains last_modified_time property. 2058 // For Datastore - not populated. 2059 ContainerTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=container_timestamp,json=containerTimestamp,proto3" json:"container_timestamp,omitempty"` 2060 // Findings container version, if available 2061 // ("generation" for Google Cloud Storage). 2062 ContainerVersion string `protobuf:"bytes,7,opt,name=container_version,json=containerVersion,proto3" json:"container_version,omitempty"` 2063} 2064 2065func (x *ContentLocation) Reset() { 2066 *x = ContentLocation{} 2067 if protoimpl.UnsafeEnabled { 2068 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[11] 2069 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2070 ms.StoreMessageInfo(mi) 2071 } 2072} 2073 2074func (x *ContentLocation) String() string { 2075 return protoimpl.X.MessageStringOf(x) 2076} 2077 2078func (*ContentLocation) ProtoMessage() {} 2079 2080func (x *ContentLocation) ProtoReflect() protoreflect.Message { 2081 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[11] 2082 if protoimpl.UnsafeEnabled && x != nil { 2083 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2084 if ms.LoadMessageInfo() == nil { 2085 ms.StoreMessageInfo(mi) 2086 } 2087 return ms 2088 } 2089 return mi.MessageOf(x) 2090} 2091 2092// Deprecated: Use ContentLocation.ProtoReflect.Descriptor instead. 2093func (*ContentLocation) Descriptor() ([]byte, []int) { 2094 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{11} 2095} 2096 2097func (x *ContentLocation) GetContainerName() string { 2098 if x != nil { 2099 return x.ContainerName 2100 } 2101 return "" 2102} 2103 2104func (m *ContentLocation) GetLocation() isContentLocation_Location { 2105 if m != nil { 2106 return m.Location 2107 } 2108 return nil 2109} 2110 2111func (x *ContentLocation) GetRecordLocation() *RecordLocation { 2112 if x, ok := x.GetLocation().(*ContentLocation_RecordLocation); ok { 2113 return x.RecordLocation 2114 } 2115 return nil 2116} 2117 2118func (x *ContentLocation) GetImageLocation() *ImageLocation { 2119 if x, ok := x.GetLocation().(*ContentLocation_ImageLocation); ok { 2120 return x.ImageLocation 2121 } 2122 return nil 2123} 2124 2125func (x *ContentLocation) GetDocumentLocation() *DocumentLocation { 2126 if x, ok := x.GetLocation().(*ContentLocation_DocumentLocation); ok { 2127 return x.DocumentLocation 2128 } 2129 return nil 2130} 2131 2132func (x *ContentLocation) GetMetadataLocation() *MetadataLocation { 2133 if x, ok := x.GetLocation().(*ContentLocation_MetadataLocation); ok { 2134 return x.MetadataLocation 2135 } 2136 return nil 2137} 2138 2139func (x *ContentLocation) GetContainerTimestamp() *timestamp.Timestamp { 2140 if x != nil { 2141 return x.ContainerTimestamp 2142 } 2143 return nil 2144} 2145 2146func (x *ContentLocation) GetContainerVersion() string { 2147 if x != nil { 2148 return x.ContainerVersion 2149 } 2150 return "" 2151} 2152 2153type isContentLocation_Location interface { 2154 isContentLocation_Location() 2155} 2156 2157type ContentLocation_RecordLocation struct { 2158 // Location within a row or record of a database table. 2159 RecordLocation *RecordLocation `protobuf:"bytes,2,opt,name=record_location,json=recordLocation,proto3,oneof"` 2160} 2161 2162type ContentLocation_ImageLocation struct { 2163 // Location within an image's pixels. 2164 ImageLocation *ImageLocation `protobuf:"bytes,3,opt,name=image_location,json=imageLocation,proto3,oneof"` 2165} 2166 2167type ContentLocation_DocumentLocation struct { 2168 // Location data for document files. 2169 DocumentLocation *DocumentLocation `protobuf:"bytes,5,opt,name=document_location,json=documentLocation,proto3,oneof"` 2170} 2171 2172type ContentLocation_MetadataLocation struct { 2173 // Location within the metadata for inspected content. 2174 MetadataLocation *MetadataLocation `protobuf:"bytes,8,opt,name=metadata_location,json=metadataLocation,proto3,oneof"` 2175} 2176 2177func (*ContentLocation_RecordLocation) isContentLocation_Location() {} 2178 2179func (*ContentLocation_ImageLocation) isContentLocation_Location() {} 2180 2181func (*ContentLocation_DocumentLocation) isContentLocation_Location() {} 2182 2183func (*ContentLocation_MetadataLocation) isContentLocation_Location() {} 2184 2185// Metadata Location 2186type MetadataLocation struct { 2187 state protoimpl.MessageState 2188 sizeCache protoimpl.SizeCache 2189 unknownFields protoimpl.UnknownFields 2190 2191 // Type of metadata containing the finding. 2192 Type MetadataType `protobuf:"varint,1,opt,name=type,proto3,enum=google.privacy.dlp.v2.MetadataType" json:"type,omitempty"` 2193 // Label of the piece of metadata containing the finding, for example - 2194 // latitude, author, caption. 2195 // 2196 // Types that are assignable to Label: 2197 // *MetadataLocation_StorageLabel 2198 Label isMetadataLocation_Label `protobuf_oneof:"label"` 2199} 2200 2201func (x *MetadataLocation) Reset() { 2202 *x = MetadataLocation{} 2203 if protoimpl.UnsafeEnabled { 2204 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[12] 2205 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2206 ms.StoreMessageInfo(mi) 2207 } 2208} 2209 2210func (x *MetadataLocation) String() string { 2211 return protoimpl.X.MessageStringOf(x) 2212} 2213 2214func (*MetadataLocation) ProtoMessage() {} 2215 2216func (x *MetadataLocation) ProtoReflect() protoreflect.Message { 2217 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[12] 2218 if protoimpl.UnsafeEnabled && x != nil { 2219 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2220 if ms.LoadMessageInfo() == nil { 2221 ms.StoreMessageInfo(mi) 2222 } 2223 return ms 2224 } 2225 return mi.MessageOf(x) 2226} 2227 2228// Deprecated: Use MetadataLocation.ProtoReflect.Descriptor instead. 2229func (*MetadataLocation) Descriptor() ([]byte, []int) { 2230 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{12} 2231} 2232 2233func (x *MetadataLocation) GetType() MetadataType { 2234 if x != nil { 2235 return x.Type 2236 } 2237 return MetadataType_METADATATYPE_UNSPECIFIED 2238} 2239 2240func (m *MetadataLocation) GetLabel() isMetadataLocation_Label { 2241 if m != nil { 2242 return m.Label 2243 } 2244 return nil 2245} 2246 2247func (x *MetadataLocation) GetStorageLabel() *StorageMetadataLabel { 2248 if x, ok := x.GetLabel().(*MetadataLocation_StorageLabel); ok { 2249 return x.StorageLabel 2250 } 2251 return nil 2252} 2253 2254type isMetadataLocation_Label interface { 2255 isMetadataLocation_Label() 2256} 2257 2258type MetadataLocation_StorageLabel struct { 2259 // Storage metadata. 2260 StorageLabel *StorageMetadataLabel `protobuf:"bytes,3,opt,name=storage_label,json=storageLabel,proto3,oneof"` 2261} 2262 2263func (*MetadataLocation_StorageLabel) isMetadataLocation_Label() {} 2264 2265// Storage metadata label to indicate which metadata entry contains findings. 2266type StorageMetadataLabel struct { 2267 state protoimpl.MessageState 2268 sizeCache protoimpl.SizeCache 2269 unknownFields protoimpl.UnknownFields 2270 2271 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 2272} 2273 2274func (x *StorageMetadataLabel) Reset() { 2275 *x = StorageMetadataLabel{} 2276 if protoimpl.UnsafeEnabled { 2277 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[13] 2278 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2279 ms.StoreMessageInfo(mi) 2280 } 2281} 2282 2283func (x *StorageMetadataLabel) String() string { 2284 return protoimpl.X.MessageStringOf(x) 2285} 2286 2287func (*StorageMetadataLabel) ProtoMessage() {} 2288 2289func (x *StorageMetadataLabel) ProtoReflect() protoreflect.Message { 2290 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[13] 2291 if protoimpl.UnsafeEnabled && x != nil { 2292 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2293 if ms.LoadMessageInfo() == nil { 2294 ms.StoreMessageInfo(mi) 2295 } 2296 return ms 2297 } 2298 return mi.MessageOf(x) 2299} 2300 2301// Deprecated: Use StorageMetadataLabel.ProtoReflect.Descriptor instead. 2302func (*StorageMetadataLabel) Descriptor() ([]byte, []int) { 2303 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{13} 2304} 2305 2306func (x *StorageMetadataLabel) GetKey() string { 2307 if x != nil { 2308 return x.Key 2309 } 2310 return "" 2311} 2312 2313// Location of a finding within a document. 2314type DocumentLocation struct { 2315 state protoimpl.MessageState 2316 sizeCache protoimpl.SizeCache 2317 unknownFields protoimpl.UnknownFields 2318 2319 // Offset of the line, from the beginning of the file, where the finding 2320 // is located. 2321 FileOffset int64 `protobuf:"varint,1,opt,name=file_offset,json=fileOffset,proto3" json:"file_offset,omitempty"` 2322} 2323 2324func (x *DocumentLocation) Reset() { 2325 *x = DocumentLocation{} 2326 if protoimpl.UnsafeEnabled { 2327 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[14] 2328 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2329 ms.StoreMessageInfo(mi) 2330 } 2331} 2332 2333func (x *DocumentLocation) String() string { 2334 return protoimpl.X.MessageStringOf(x) 2335} 2336 2337func (*DocumentLocation) ProtoMessage() {} 2338 2339func (x *DocumentLocation) ProtoReflect() protoreflect.Message { 2340 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[14] 2341 if protoimpl.UnsafeEnabled && x != nil { 2342 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2343 if ms.LoadMessageInfo() == nil { 2344 ms.StoreMessageInfo(mi) 2345 } 2346 return ms 2347 } 2348 return mi.MessageOf(x) 2349} 2350 2351// Deprecated: Use DocumentLocation.ProtoReflect.Descriptor instead. 2352func (*DocumentLocation) Descriptor() ([]byte, []int) { 2353 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{14} 2354} 2355 2356func (x *DocumentLocation) GetFileOffset() int64 { 2357 if x != nil { 2358 return x.FileOffset 2359 } 2360 return 0 2361} 2362 2363// Location of a finding within a row or record. 2364type RecordLocation struct { 2365 state protoimpl.MessageState 2366 sizeCache protoimpl.SizeCache 2367 unknownFields protoimpl.UnknownFields 2368 2369 // Key of the finding. 2370 RecordKey *RecordKey `protobuf:"bytes,1,opt,name=record_key,json=recordKey,proto3" json:"record_key,omitempty"` 2371 // Field id of the field containing the finding. 2372 FieldId *FieldId `protobuf:"bytes,2,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"` 2373 // Location within a `ContentItem.Table`. 2374 TableLocation *TableLocation `protobuf:"bytes,3,opt,name=table_location,json=tableLocation,proto3" json:"table_location,omitempty"` 2375} 2376 2377func (x *RecordLocation) Reset() { 2378 *x = RecordLocation{} 2379 if protoimpl.UnsafeEnabled { 2380 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[15] 2381 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2382 ms.StoreMessageInfo(mi) 2383 } 2384} 2385 2386func (x *RecordLocation) String() string { 2387 return protoimpl.X.MessageStringOf(x) 2388} 2389 2390func (*RecordLocation) ProtoMessage() {} 2391 2392func (x *RecordLocation) ProtoReflect() protoreflect.Message { 2393 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[15] 2394 if protoimpl.UnsafeEnabled && x != nil { 2395 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2396 if ms.LoadMessageInfo() == nil { 2397 ms.StoreMessageInfo(mi) 2398 } 2399 return ms 2400 } 2401 return mi.MessageOf(x) 2402} 2403 2404// Deprecated: Use RecordLocation.ProtoReflect.Descriptor instead. 2405func (*RecordLocation) Descriptor() ([]byte, []int) { 2406 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{15} 2407} 2408 2409func (x *RecordLocation) GetRecordKey() *RecordKey { 2410 if x != nil { 2411 return x.RecordKey 2412 } 2413 return nil 2414} 2415 2416func (x *RecordLocation) GetFieldId() *FieldId { 2417 if x != nil { 2418 return x.FieldId 2419 } 2420 return nil 2421} 2422 2423func (x *RecordLocation) GetTableLocation() *TableLocation { 2424 if x != nil { 2425 return x.TableLocation 2426 } 2427 return nil 2428} 2429 2430// Location of a finding within a table. 2431type TableLocation struct { 2432 state protoimpl.MessageState 2433 sizeCache protoimpl.SizeCache 2434 unknownFields protoimpl.UnknownFields 2435 2436 // The zero-based index of the row where the finding is located. Only 2437 // populated for resources that have a natural ordering, not BigQuery. In 2438 // BigQuery, to identify the row a finding came from, populate 2439 // BigQueryOptions.identifying_fields with your primary key column names and 2440 // when you store the findings the value of those columns will be stored 2441 // inside of Finding. 2442 RowIndex int64 `protobuf:"varint,1,opt,name=row_index,json=rowIndex,proto3" json:"row_index,omitempty"` 2443} 2444 2445func (x *TableLocation) Reset() { 2446 *x = TableLocation{} 2447 if protoimpl.UnsafeEnabled { 2448 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[16] 2449 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2450 ms.StoreMessageInfo(mi) 2451 } 2452} 2453 2454func (x *TableLocation) String() string { 2455 return protoimpl.X.MessageStringOf(x) 2456} 2457 2458func (*TableLocation) ProtoMessage() {} 2459 2460func (x *TableLocation) ProtoReflect() protoreflect.Message { 2461 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[16] 2462 if protoimpl.UnsafeEnabled && x != nil { 2463 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2464 if ms.LoadMessageInfo() == nil { 2465 ms.StoreMessageInfo(mi) 2466 } 2467 return ms 2468 } 2469 return mi.MessageOf(x) 2470} 2471 2472// Deprecated: Use TableLocation.ProtoReflect.Descriptor instead. 2473func (*TableLocation) Descriptor() ([]byte, []int) { 2474 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{16} 2475} 2476 2477func (x *TableLocation) GetRowIndex() int64 { 2478 if x != nil { 2479 return x.RowIndex 2480 } 2481 return 0 2482} 2483 2484// Represents a container that may contain DLP findings. 2485// Examples of a container include a file, table, or database record. 2486type Container struct { 2487 state protoimpl.MessageState 2488 sizeCache protoimpl.SizeCache 2489 unknownFields protoimpl.UnknownFields 2490 2491 // Container type, for example BigQuery or Google Cloud Storage. 2492 Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` 2493 // Project where the finding was found. 2494 // Can be different from the project that owns the finding. 2495 ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` 2496 // A string representation of the full container name. 2497 // Examples: 2498 // - BigQuery: 'Project:DataSetId.TableId' 2499 // - Google Cloud Storage: 'gs://Bucket/folders/filename.txt' 2500 FullPath string `protobuf:"bytes,3,opt,name=full_path,json=fullPath,proto3" json:"full_path,omitempty"` 2501 // The root of the container. 2502 // Examples: 2503 // - For BigQuery table `project_id:dataset_id.table_id`, the root is 2504 // `dataset_id` 2505 // - For Google Cloud Storage file `gs://bucket/folder/filename.txt`, the root 2506 // is `gs://bucket` 2507 RootPath string `protobuf:"bytes,4,opt,name=root_path,json=rootPath,proto3" json:"root_path,omitempty"` 2508 // The rest of the path after the root. 2509 // Examples: 2510 // - For BigQuery table `project_id:dataset_id.table_id`, the relative path is 2511 // `table_id` 2512 // - Google Cloud Storage file `gs://bucket/folder/filename.txt`, the relative 2513 // path is `folder/filename.txt` 2514 RelativePath string `protobuf:"bytes,5,opt,name=relative_path,json=relativePath,proto3" json:"relative_path,omitempty"` 2515 // Findings container modification timestamp, if applicable. 2516 // For Google Cloud Storage contains last file modification timestamp. 2517 // For BigQuery table contains last_modified_time property. 2518 // For Datastore - not populated. 2519 UpdateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 2520 // Findings container version, if available 2521 // ("generation" for Google Cloud Storage). 2522 Version string `protobuf:"bytes,7,opt,name=version,proto3" json:"version,omitempty"` 2523} 2524 2525func (x *Container) Reset() { 2526 *x = Container{} 2527 if protoimpl.UnsafeEnabled { 2528 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[17] 2529 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2530 ms.StoreMessageInfo(mi) 2531 } 2532} 2533 2534func (x *Container) String() string { 2535 return protoimpl.X.MessageStringOf(x) 2536} 2537 2538func (*Container) ProtoMessage() {} 2539 2540func (x *Container) ProtoReflect() protoreflect.Message { 2541 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[17] 2542 if protoimpl.UnsafeEnabled && x != nil { 2543 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2544 if ms.LoadMessageInfo() == nil { 2545 ms.StoreMessageInfo(mi) 2546 } 2547 return ms 2548 } 2549 return mi.MessageOf(x) 2550} 2551 2552// Deprecated: Use Container.ProtoReflect.Descriptor instead. 2553func (*Container) Descriptor() ([]byte, []int) { 2554 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{17} 2555} 2556 2557func (x *Container) GetType() string { 2558 if x != nil { 2559 return x.Type 2560 } 2561 return "" 2562} 2563 2564func (x *Container) GetProjectId() string { 2565 if x != nil { 2566 return x.ProjectId 2567 } 2568 return "" 2569} 2570 2571func (x *Container) GetFullPath() string { 2572 if x != nil { 2573 return x.FullPath 2574 } 2575 return "" 2576} 2577 2578func (x *Container) GetRootPath() string { 2579 if x != nil { 2580 return x.RootPath 2581 } 2582 return "" 2583} 2584 2585func (x *Container) GetRelativePath() string { 2586 if x != nil { 2587 return x.RelativePath 2588 } 2589 return "" 2590} 2591 2592func (x *Container) GetUpdateTime() *timestamp.Timestamp { 2593 if x != nil { 2594 return x.UpdateTime 2595 } 2596 return nil 2597} 2598 2599func (x *Container) GetVersion() string { 2600 if x != nil { 2601 return x.Version 2602 } 2603 return "" 2604} 2605 2606// Generic half-open interval [start, end) 2607type Range struct { 2608 state protoimpl.MessageState 2609 sizeCache protoimpl.SizeCache 2610 unknownFields protoimpl.UnknownFields 2611 2612 // Index of the first character of the range (inclusive). 2613 Start int64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` 2614 // Index of the last character of the range (exclusive). 2615 End int64 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"` 2616} 2617 2618func (x *Range) Reset() { 2619 *x = Range{} 2620 if protoimpl.UnsafeEnabled { 2621 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[18] 2622 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2623 ms.StoreMessageInfo(mi) 2624 } 2625} 2626 2627func (x *Range) String() string { 2628 return protoimpl.X.MessageStringOf(x) 2629} 2630 2631func (*Range) ProtoMessage() {} 2632 2633func (x *Range) ProtoReflect() protoreflect.Message { 2634 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[18] 2635 if protoimpl.UnsafeEnabled && x != nil { 2636 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2637 if ms.LoadMessageInfo() == nil { 2638 ms.StoreMessageInfo(mi) 2639 } 2640 return ms 2641 } 2642 return mi.MessageOf(x) 2643} 2644 2645// Deprecated: Use Range.ProtoReflect.Descriptor instead. 2646func (*Range) Descriptor() ([]byte, []int) { 2647 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{18} 2648} 2649 2650func (x *Range) GetStart() int64 { 2651 if x != nil { 2652 return x.Start 2653 } 2654 return 0 2655} 2656 2657func (x *Range) GetEnd() int64 { 2658 if x != nil { 2659 return x.End 2660 } 2661 return 0 2662} 2663 2664// Location of the finding within an image. 2665type ImageLocation struct { 2666 state protoimpl.MessageState 2667 sizeCache protoimpl.SizeCache 2668 unknownFields protoimpl.UnknownFields 2669 2670 // Bounding boxes locating the pixels within the image containing the finding. 2671 BoundingBoxes []*BoundingBox `protobuf:"bytes,1,rep,name=bounding_boxes,json=boundingBoxes,proto3" json:"bounding_boxes,omitempty"` 2672} 2673 2674func (x *ImageLocation) Reset() { 2675 *x = ImageLocation{} 2676 if protoimpl.UnsafeEnabled { 2677 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[19] 2678 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2679 ms.StoreMessageInfo(mi) 2680 } 2681} 2682 2683func (x *ImageLocation) String() string { 2684 return protoimpl.X.MessageStringOf(x) 2685} 2686 2687func (*ImageLocation) ProtoMessage() {} 2688 2689func (x *ImageLocation) ProtoReflect() protoreflect.Message { 2690 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[19] 2691 if protoimpl.UnsafeEnabled && x != nil { 2692 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2693 if ms.LoadMessageInfo() == nil { 2694 ms.StoreMessageInfo(mi) 2695 } 2696 return ms 2697 } 2698 return mi.MessageOf(x) 2699} 2700 2701// Deprecated: Use ImageLocation.ProtoReflect.Descriptor instead. 2702func (*ImageLocation) Descriptor() ([]byte, []int) { 2703 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{19} 2704} 2705 2706func (x *ImageLocation) GetBoundingBoxes() []*BoundingBox { 2707 if x != nil { 2708 return x.BoundingBoxes 2709 } 2710 return nil 2711} 2712 2713// Bounding box encompassing detected text within an image. 2714type BoundingBox struct { 2715 state protoimpl.MessageState 2716 sizeCache protoimpl.SizeCache 2717 unknownFields protoimpl.UnknownFields 2718 2719 // Top coordinate of the bounding box. (0,0) is upper left. 2720 Top int32 `protobuf:"varint,1,opt,name=top,proto3" json:"top,omitempty"` 2721 // Left coordinate of the bounding box. (0,0) is upper left. 2722 Left int32 `protobuf:"varint,2,opt,name=left,proto3" json:"left,omitempty"` 2723 // Width of the bounding box in pixels. 2724 Width int32 `protobuf:"varint,3,opt,name=width,proto3" json:"width,omitempty"` 2725 // Height of the bounding box in pixels. 2726 Height int32 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"` 2727} 2728 2729func (x *BoundingBox) Reset() { 2730 *x = BoundingBox{} 2731 if protoimpl.UnsafeEnabled { 2732 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[20] 2733 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2734 ms.StoreMessageInfo(mi) 2735 } 2736} 2737 2738func (x *BoundingBox) String() string { 2739 return protoimpl.X.MessageStringOf(x) 2740} 2741 2742func (*BoundingBox) ProtoMessage() {} 2743 2744func (x *BoundingBox) ProtoReflect() protoreflect.Message { 2745 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[20] 2746 if protoimpl.UnsafeEnabled && x != nil { 2747 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2748 if ms.LoadMessageInfo() == nil { 2749 ms.StoreMessageInfo(mi) 2750 } 2751 return ms 2752 } 2753 return mi.MessageOf(x) 2754} 2755 2756// Deprecated: Use BoundingBox.ProtoReflect.Descriptor instead. 2757func (*BoundingBox) Descriptor() ([]byte, []int) { 2758 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{20} 2759} 2760 2761func (x *BoundingBox) GetTop() int32 { 2762 if x != nil { 2763 return x.Top 2764 } 2765 return 0 2766} 2767 2768func (x *BoundingBox) GetLeft() int32 { 2769 if x != nil { 2770 return x.Left 2771 } 2772 return 0 2773} 2774 2775func (x *BoundingBox) GetWidth() int32 { 2776 if x != nil { 2777 return x.Width 2778 } 2779 return 0 2780} 2781 2782func (x *BoundingBox) GetHeight() int32 { 2783 if x != nil { 2784 return x.Height 2785 } 2786 return 0 2787} 2788 2789// Request to search for potentially sensitive info in an image and redact it 2790// by covering it with a colored rectangle. 2791type RedactImageRequest struct { 2792 state protoimpl.MessageState 2793 sizeCache protoimpl.SizeCache 2794 unknownFields protoimpl.UnknownFields 2795 2796 // The parent resource name, for example projects/my-project-id 2797 // or projects/my-project-id/locations/{location_id}. 2798 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 2799 // Deprecated. This field has no effect. 2800 LocationId string `protobuf:"bytes,8,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 2801 // Configuration for the inspector. 2802 InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"` 2803 // The configuration for specifying what content to redact from images. 2804 ImageRedactionConfigs []*RedactImageRequest_ImageRedactionConfig `protobuf:"bytes,5,rep,name=image_redaction_configs,json=imageRedactionConfigs,proto3" json:"image_redaction_configs,omitempty"` 2805 // Whether the response should include findings along with the redacted 2806 // image. 2807 IncludeFindings bool `protobuf:"varint,6,opt,name=include_findings,json=includeFindings,proto3" json:"include_findings,omitempty"` 2808 // The content must be PNG, JPEG, SVG or BMP. 2809 ByteItem *ByteContentItem `protobuf:"bytes,7,opt,name=byte_item,json=byteItem,proto3" json:"byte_item,omitempty"` 2810} 2811 2812func (x *RedactImageRequest) Reset() { 2813 *x = RedactImageRequest{} 2814 if protoimpl.UnsafeEnabled { 2815 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[21] 2816 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2817 ms.StoreMessageInfo(mi) 2818 } 2819} 2820 2821func (x *RedactImageRequest) String() string { 2822 return protoimpl.X.MessageStringOf(x) 2823} 2824 2825func (*RedactImageRequest) ProtoMessage() {} 2826 2827func (x *RedactImageRequest) ProtoReflect() protoreflect.Message { 2828 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[21] 2829 if protoimpl.UnsafeEnabled && x != nil { 2830 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2831 if ms.LoadMessageInfo() == nil { 2832 ms.StoreMessageInfo(mi) 2833 } 2834 return ms 2835 } 2836 return mi.MessageOf(x) 2837} 2838 2839// Deprecated: Use RedactImageRequest.ProtoReflect.Descriptor instead. 2840func (*RedactImageRequest) Descriptor() ([]byte, []int) { 2841 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{21} 2842} 2843 2844func (x *RedactImageRequest) GetParent() string { 2845 if x != nil { 2846 return x.Parent 2847 } 2848 return "" 2849} 2850 2851func (x *RedactImageRequest) GetLocationId() string { 2852 if x != nil { 2853 return x.LocationId 2854 } 2855 return "" 2856} 2857 2858func (x *RedactImageRequest) GetInspectConfig() *InspectConfig { 2859 if x != nil { 2860 return x.InspectConfig 2861 } 2862 return nil 2863} 2864 2865func (x *RedactImageRequest) GetImageRedactionConfigs() []*RedactImageRequest_ImageRedactionConfig { 2866 if x != nil { 2867 return x.ImageRedactionConfigs 2868 } 2869 return nil 2870} 2871 2872func (x *RedactImageRequest) GetIncludeFindings() bool { 2873 if x != nil { 2874 return x.IncludeFindings 2875 } 2876 return false 2877} 2878 2879func (x *RedactImageRequest) GetByteItem() *ByteContentItem { 2880 if x != nil { 2881 return x.ByteItem 2882 } 2883 return nil 2884} 2885 2886// Represents a color in the RGB color space. 2887type Color struct { 2888 state protoimpl.MessageState 2889 sizeCache protoimpl.SizeCache 2890 unknownFields protoimpl.UnknownFields 2891 2892 // The amount of red in the color as a value in the interval [0, 1]. 2893 Red float32 `protobuf:"fixed32,1,opt,name=red,proto3" json:"red,omitempty"` 2894 // The amount of green in the color as a value in the interval [0, 1]. 2895 Green float32 `protobuf:"fixed32,2,opt,name=green,proto3" json:"green,omitempty"` 2896 // The amount of blue in the color as a value in the interval [0, 1]. 2897 Blue float32 `protobuf:"fixed32,3,opt,name=blue,proto3" json:"blue,omitempty"` 2898} 2899 2900func (x *Color) Reset() { 2901 *x = Color{} 2902 if protoimpl.UnsafeEnabled { 2903 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[22] 2904 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2905 ms.StoreMessageInfo(mi) 2906 } 2907} 2908 2909func (x *Color) String() string { 2910 return protoimpl.X.MessageStringOf(x) 2911} 2912 2913func (*Color) ProtoMessage() {} 2914 2915func (x *Color) ProtoReflect() protoreflect.Message { 2916 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[22] 2917 if protoimpl.UnsafeEnabled && x != nil { 2918 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2919 if ms.LoadMessageInfo() == nil { 2920 ms.StoreMessageInfo(mi) 2921 } 2922 return ms 2923 } 2924 return mi.MessageOf(x) 2925} 2926 2927// Deprecated: Use Color.ProtoReflect.Descriptor instead. 2928func (*Color) Descriptor() ([]byte, []int) { 2929 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{22} 2930} 2931 2932func (x *Color) GetRed() float32 { 2933 if x != nil { 2934 return x.Red 2935 } 2936 return 0 2937} 2938 2939func (x *Color) GetGreen() float32 { 2940 if x != nil { 2941 return x.Green 2942 } 2943 return 0 2944} 2945 2946func (x *Color) GetBlue() float32 { 2947 if x != nil { 2948 return x.Blue 2949 } 2950 return 0 2951} 2952 2953// Results of redacting an image. 2954type RedactImageResponse struct { 2955 state protoimpl.MessageState 2956 sizeCache protoimpl.SizeCache 2957 unknownFields protoimpl.UnknownFields 2958 2959 // The redacted image. The type will be the same as the original image. 2960 RedactedImage []byte `protobuf:"bytes,1,opt,name=redacted_image,json=redactedImage,proto3" json:"redacted_image,omitempty"` 2961 // If an image was being inspected and the InspectConfig's include_quote was 2962 // set to true, then this field will include all text, if any, that was found 2963 // in the image. 2964 ExtractedText string `protobuf:"bytes,2,opt,name=extracted_text,json=extractedText,proto3" json:"extracted_text,omitempty"` 2965 // The findings. Populated when include_findings in the request is true. 2966 InspectResult *InspectResult `protobuf:"bytes,3,opt,name=inspect_result,json=inspectResult,proto3" json:"inspect_result,omitempty"` 2967} 2968 2969func (x *RedactImageResponse) Reset() { 2970 *x = RedactImageResponse{} 2971 if protoimpl.UnsafeEnabled { 2972 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[23] 2973 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2974 ms.StoreMessageInfo(mi) 2975 } 2976} 2977 2978func (x *RedactImageResponse) String() string { 2979 return protoimpl.X.MessageStringOf(x) 2980} 2981 2982func (*RedactImageResponse) ProtoMessage() {} 2983 2984func (x *RedactImageResponse) ProtoReflect() protoreflect.Message { 2985 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[23] 2986 if protoimpl.UnsafeEnabled && x != nil { 2987 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2988 if ms.LoadMessageInfo() == nil { 2989 ms.StoreMessageInfo(mi) 2990 } 2991 return ms 2992 } 2993 return mi.MessageOf(x) 2994} 2995 2996// Deprecated: Use RedactImageResponse.ProtoReflect.Descriptor instead. 2997func (*RedactImageResponse) Descriptor() ([]byte, []int) { 2998 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{23} 2999} 3000 3001func (x *RedactImageResponse) GetRedactedImage() []byte { 3002 if x != nil { 3003 return x.RedactedImage 3004 } 3005 return nil 3006} 3007 3008func (x *RedactImageResponse) GetExtractedText() string { 3009 if x != nil { 3010 return x.ExtractedText 3011 } 3012 return "" 3013} 3014 3015func (x *RedactImageResponse) GetInspectResult() *InspectResult { 3016 if x != nil { 3017 return x.InspectResult 3018 } 3019 return nil 3020} 3021 3022// Request to de-identify a list of items. 3023type DeidentifyContentRequest struct { 3024 state protoimpl.MessageState 3025 sizeCache protoimpl.SizeCache 3026 unknownFields protoimpl.UnknownFields 3027 3028 // The parent resource name, for example projects/my-project-id 3029 // or projects/my-project-id/locations/{location_id}. 3030 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 3031 // Configuration for the de-identification of the content item. 3032 // Items specified here will override the template referenced by the 3033 // deidentify_template_name argument. 3034 DeidentifyConfig *DeidentifyConfig `protobuf:"bytes,2,opt,name=deidentify_config,json=deidentifyConfig,proto3" json:"deidentify_config,omitempty"` 3035 // Configuration for the inspector. 3036 // Items specified here will override the template referenced by the 3037 // inspect_template_name argument. 3038 InspectConfig *InspectConfig `protobuf:"bytes,3,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"` 3039 // The item to de-identify. Will be treated as text. 3040 Item *ContentItem `protobuf:"bytes,4,opt,name=item,proto3" json:"item,omitempty"` 3041 // Template to use. Any configuration directly specified in 3042 // inspect_config will override those set in the template. Singular fields 3043 // that are set in this request will replace their corresponding fields in the 3044 // template. Repeated fields are appended. Singular sub-messages and groups 3045 // are recursively merged. 3046 InspectTemplateName string `protobuf:"bytes,5,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"` 3047 // Template to use. Any configuration directly specified in 3048 // deidentify_config will override those set in the template. Singular fields 3049 // that are set in this request will replace their corresponding fields in the 3050 // template. Repeated fields are appended. Singular sub-messages and groups 3051 // are recursively merged. 3052 DeidentifyTemplateName string `protobuf:"bytes,6,opt,name=deidentify_template_name,json=deidentifyTemplateName,proto3" json:"deidentify_template_name,omitempty"` 3053 // Deprecated. This field has no effect. 3054 LocationId string `protobuf:"bytes,7,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 3055} 3056 3057func (x *DeidentifyContentRequest) Reset() { 3058 *x = DeidentifyContentRequest{} 3059 if protoimpl.UnsafeEnabled { 3060 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[24] 3061 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3062 ms.StoreMessageInfo(mi) 3063 } 3064} 3065 3066func (x *DeidentifyContentRequest) String() string { 3067 return protoimpl.X.MessageStringOf(x) 3068} 3069 3070func (*DeidentifyContentRequest) ProtoMessage() {} 3071 3072func (x *DeidentifyContentRequest) ProtoReflect() protoreflect.Message { 3073 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[24] 3074 if protoimpl.UnsafeEnabled && x != nil { 3075 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3076 if ms.LoadMessageInfo() == nil { 3077 ms.StoreMessageInfo(mi) 3078 } 3079 return ms 3080 } 3081 return mi.MessageOf(x) 3082} 3083 3084// Deprecated: Use DeidentifyContentRequest.ProtoReflect.Descriptor instead. 3085func (*DeidentifyContentRequest) Descriptor() ([]byte, []int) { 3086 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{24} 3087} 3088 3089func (x *DeidentifyContentRequest) GetParent() string { 3090 if x != nil { 3091 return x.Parent 3092 } 3093 return "" 3094} 3095 3096func (x *DeidentifyContentRequest) GetDeidentifyConfig() *DeidentifyConfig { 3097 if x != nil { 3098 return x.DeidentifyConfig 3099 } 3100 return nil 3101} 3102 3103func (x *DeidentifyContentRequest) GetInspectConfig() *InspectConfig { 3104 if x != nil { 3105 return x.InspectConfig 3106 } 3107 return nil 3108} 3109 3110func (x *DeidentifyContentRequest) GetItem() *ContentItem { 3111 if x != nil { 3112 return x.Item 3113 } 3114 return nil 3115} 3116 3117func (x *DeidentifyContentRequest) GetInspectTemplateName() string { 3118 if x != nil { 3119 return x.InspectTemplateName 3120 } 3121 return "" 3122} 3123 3124func (x *DeidentifyContentRequest) GetDeidentifyTemplateName() string { 3125 if x != nil { 3126 return x.DeidentifyTemplateName 3127 } 3128 return "" 3129} 3130 3131func (x *DeidentifyContentRequest) GetLocationId() string { 3132 if x != nil { 3133 return x.LocationId 3134 } 3135 return "" 3136} 3137 3138// Results of de-identifying a ContentItem. 3139type DeidentifyContentResponse struct { 3140 state protoimpl.MessageState 3141 sizeCache protoimpl.SizeCache 3142 unknownFields protoimpl.UnknownFields 3143 3144 // The de-identified item. 3145 Item *ContentItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` 3146 // An overview of the changes that were made on the `item`. 3147 Overview *TransformationOverview `protobuf:"bytes,2,opt,name=overview,proto3" json:"overview,omitempty"` 3148} 3149 3150func (x *DeidentifyContentResponse) Reset() { 3151 *x = DeidentifyContentResponse{} 3152 if protoimpl.UnsafeEnabled { 3153 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[25] 3154 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3155 ms.StoreMessageInfo(mi) 3156 } 3157} 3158 3159func (x *DeidentifyContentResponse) String() string { 3160 return protoimpl.X.MessageStringOf(x) 3161} 3162 3163func (*DeidentifyContentResponse) ProtoMessage() {} 3164 3165func (x *DeidentifyContentResponse) ProtoReflect() protoreflect.Message { 3166 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[25] 3167 if protoimpl.UnsafeEnabled && x != nil { 3168 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3169 if ms.LoadMessageInfo() == nil { 3170 ms.StoreMessageInfo(mi) 3171 } 3172 return ms 3173 } 3174 return mi.MessageOf(x) 3175} 3176 3177// Deprecated: Use DeidentifyContentResponse.ProtoReflect.Descriptor instead. 3178func (*DeidentifyContentResponse) Descriptor() ([]byte, []int) { 3179 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{25} 3180} 3181 3182func (x *DeidentifyContentResponse) GetItem() *ContentItem { 3183 if x != nil { 3184 return x.Item 3185 } 3186 return nil 3187} 3188 3189func (x *DeidentifyContentResponse) GetOverview() *TransformationOverview { 3190 if x != nil { 3191 return x.Overview 3192 } 3193 return nil 3194} 3195 3196// Request to re-identify an item. 3197type ReidentifyContentRequest struct { 3198 state protoimpl.MessageState 3199 sizeCache protoimpl.SizeCache 3200 unknownFields protoimpl.UnknownFields 3201 3202 // Required. The parent resource name. 3203 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 3204 // Configuration for the re-identification of the content item. 3205 // This field shares the same proto message type that is used for 3206 // de-identification, however its usage here is for the reversal of the 3207 // previous de-identification. Re-identification is performed by examining 3208 // the transformations used to de-identify the items and executing the 3209 // reverse. This requires that only reversible transformations 3210 // be provided here. The reversible transformations are: 3211 // 3212 // - `CryptoDeterministicConfig` 3213 // - `CryptoReplaceFfxFpeConfig` 3214 ReidentifyConfig *DeidentifyConfig `protobuf:"bytes,2,opt,name=reidentify_config,json=reidentifyConfig,proto3" json:"reidentify_config,omitempty"` 3215 // Configuration for the inspector. 3216 InspectConfig *InspectConfig `protobuf:"bytes,3,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"` 3217 // The item to re-identify. Will be treated as text. 3218 Item *ContentItem `protobuf:"bytes,4,opt,name=item,proto3" json:"item,omitempty"` 3219 // Template to use. Any configuration directly specified in 3220 // `inspect_config` will override those set in the template. Singular fields 3221 // that are set in this request will replace their corresponding fields in the 3222 // template. Repeated fields are appended. Singular sub-messages and groups 3223 // are recursively merged. 3224 InspectTemplateName string `protobuf:"bytes,5,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"` 3225 // Template to use. References an instance of `DeidentifyTemplate`. 3226 // Any configuration directly specified in `reidentify_config` or 3227 // `inspect_config` will override those set in the template. Singular fields 3228 // that are set in this request will replace their corresponding fields in the 3229 // template. Repeated fields are appended. Singular sub-messages and groups 3230 // are recursively merged. 3231 ReidentifyTemplateName string `protobuf:"bytes,6,opt,name=reidentify_template_name,json=reidentifyTemplateName,proto3" json:"reidentify_template_name,omitempty"` 3232 // Deprecated. This field has no effect. 3233 LocationId string `protobuf:"bytes,7,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 3234} 3235 3236func (x *ReidentifyContentRequest) Reset() { 3237 *x = ReidentifyContentRequest{} 3238 if protoimpl.UnsafeEnabled { 3239 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[26] 3240 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3241 ms.StoreMessageInfo(mi) 3242 } 3243} 3244 3245func (x *ReidentifyContentRequest) String() string { 3246 return protoimpl.X.MessageStringOf(x) 3247} 3248 3249func (*ReidentifyContentRequest) ProtoMessage() {} 3250 3251func (x *ReidentifyContentRequest) ProtoReflect() protoreflect.Message { 3252 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[26] 3253 if protoimpl.UnsafeEnabled && x != nil { 3254 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3255 if ms.LoadMessageInfo() == nil { 3256 ms.StoreMessageInfo(mi) 3257 } 3258 return ms 3259 } 3260 return mi.MessageOf(x) 3261} 3262 3263// Deprecated: Use ReidentifyContentRequest.ProtoReflect.Descriptor instead. 3264func (*ReidentifyContentRequest) Descriptor() ([]byte, []int) { 3265 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{26} 3266} 3267 3268func (x *ReidentifyContentRequest) GetParent() string { 3269 if x != nil { 3270 return x.Parent 3271 } 3272 return "" 3273} 3274 3275func (x *ReidentifyContentRequest) GetReidentifyConfig() *DeidentifyConfig { 3276 if x != nil { 3277 return x.ReidentifyConfig 3278 } 3279 return nil 3280} 3281 3282func (x *ReidentifyContentRequest) GetInspectConfig() *InspectConfig { 3283 if x != nil { 3284 return x.InspectConfig 3285 } 3286 return nil 3287} 3288 3289func (x *ReidentifyContentRequest) GetItem() *ContentItem { 3290 if x != nil { 3291 return x.Item 3292 } 3293 return nil 3294} 3295 3296func (x *ReidentifyContentRequest) GetInspectTemplateName() string { 3297 if x != nil { 3298 return x.InspectTemplateName 3299 } 3300 return "" 3301} 3302 3303func (x *ReidentifyContentRequest) GetReidentifyTemplateName() string { 3304 if x != nil { 3305 return x.ReidentifyTemplateName 3306 } 3307 return "" 3308} 3309 3310func (x *ReidentifyContentRequest) GetLocationId() string { 3311 if x != nil { 3312 return x.LocationId 3313 } 3314 return "" 3315} 3316 3317// Results of re-identifying a item. 3318type ReidentifyContentResponse struct { 3319 state protoimpl.MessageState 3320 sizeCache protoimpl.SizeCache 3321 unknownFields protoimpl.UnknownFields 3322 3323 // The re-identified item. 3324 Item *ContentItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` 3325 // An overview of the changes that were made to the `item`. 3326 Overview *TransformationOverview `protobuf:"bytes,2,opt,name=overview,proto3" json:"overview,omitempty"` 3327} 3328 3329func (x *ReidentifyContentResponse) Reset() { 3330 *x = ReidentifyContentResponse{} 3331 if protoimpl.UnsafeEnabled { 3332 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[27] 3333 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3334 ms.StoreMessageInfo(mi) 3335 } 3336} 3337 3338func (x *ReidentifyContentResponse) String() string { 3339 return protoimpl.X.MessageStringOf(x) 3340} 3341 3342func (*ReidentifyContentResponse) ProtoMessage() {} 3343 3344func (x *ReidentifyContentResponse) ProtoReflect() protoreflect.Message { 3345 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[27] 3346 if protoimpl.UnsafeEnabled && x != nil { 3347 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3348 if ms.LoadMessageInfo() == nil { 3349 ms.StoreMessageInfo(mi) 3350 } 3351 return ms 3352 } 3353 return mi.MessageOf(x) 3354} 3355 3356// Deprecated: Use ReidentifyContentResponse.ProtoReflect.Descriptor instead. 3357func (*ReidentifyContentResponse) Descriptor() ([]byte, []int) { 3358 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{27} 3359} 3360 3361func (x *ReidentifyContentResponse) GetItem() *ContentItem { 3362 if x != nil { 3363 return x.Item 3364 } 3365 return nil 3366} 3367 3368func (x *ReidentifyContentResponse) GetOverview() *TransformationOverview { 3369 if x != nil { 3370 return x.Overview 3371 } 3372 return nil 3373} 3374 3375// Request to search for potentially sensitive info in a ContentItem. 3376type InspectContentRequest struct { 3377 state protoimpl.MessageState 3378 sizeCache protoimpl.SizeCache 3379 unknownFields protoimpl.UnknownFields 3380 3381 // The parent resource name, for example projects/my-project-id 3382 // or projects/my-project-id/locations/{location_id} 3383 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 3384 // Configuration for the inspector. What specified here will override 3385 // the template referenced by the inspect_template_name argument. 3386 InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"` 3387 // The item to inspect. 3388 Item *ContentItem `protobuf:"bytes,3,opt,name=item,proto3" json:"item,omitempty"` 3389 // Template to use. Any configuration directly specified in 3390 // inspect_config will override those set in the template. Singular fields 3391 // that are set in this request will replace their corresponding fields in the 3392 // template. Repeated fields are appended. Singular sub-messages and groups 3393 // are recursively merged. 3394 InspectTemplateName string `protobuf:"bytes,4,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"` 3395 // Deprecated. This field has no effect. 3396 LocationId string `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 3397} 3398 3399func (x *InspectContentRequest) Reset() { 3400 *x = InspectContentRequest{} 3401 if protoimpl.UnsafeEnabled { 3402 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[28] 3403 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3404 ms.StoreMessageInfo(mi) 3405 } 3406} 3407 3408func (x *InspectContentRequest) String() string { 3409 return protoimpl.X.MessageStringOf(x) 3410} 3411 3412func (*InspectContentRequest) ProtoMessage() {} 3413 3414func (x *InspectContentRequest) ProtoReflect() protoreflect.Message { 3415 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[28] 3416 if protoimpl.UnsafeEnabled && x != nil { 3417 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3418 if ms.LoadMessageInfo() == nil { 3419 ms.StoreMessageInfo(mi) 3420 } 3421 return ms 3422 } 3423 return mi.MessageOf(x) 3424} 3425 3426// Deprecated: Use InspectContentRequest.ProtoReflect.Descriptor instead. 3427func (*InspectContentRequest) Descriptor() ([]byte, []int) { 3428 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{28} 3429} 3430 3431func (x *InspectContentRequest) GetParent() string { 3432 if x != nil { 3433 return x.Parent 3434 } 3435 return "" 3436} 3437 3438func (x *InspectContentRequest) GetInspectConfig() *InspectConfig { 3439 if x != nil { 3440 return x.InspectConfig 3441 } 3442 return nil 3443} 3444 3445func (x *InspectContentRequest) GetItem() *ContentItem { 3446 if x != nil { 3447 return x.Item 3448 } 3449 return nil 3450} 3451 3452func (x *InspectContentRequest) GetInspectTemplateName() string { 3453 if x != nil { 3454 return x.InspectTemplateName 3455 } 3456 return "" 3457} 3458 3459func (x *InspectContentRequest) GetLocationId() string { 3460 if x != nil { 3461 return x.LocationId 3462 } 3463 return "" 3464} 3465 3466// Results of inspecting an item. 3467type InspectContentResponse struct { 3468 state protoimpl.MessageState 3469 sizeCache protoimpl.SizeCache 3470 unknownFields protoimpl.UnknownFields 3471 3472 // The findings. 3473 Result *InspectResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` 3474} 3475 3476func (x *InspectContentResponse) Reset() { 3477 *x = InspectContentResponse{} 3478 if protoimpl.UnsafeEnabled { 3479 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[29] 3480 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3481 ms.StoreMessageInfo(mi) 3482 } 3483} 3484 3485func (x *InspectContentResponse) String() string { 3486 return protoimpl.X.MessageStringOf(x) 3487} 3488 3489func (*InspectContentResponse) ProtoMessage() {} 3490 3491func (x *InspectContentResponse) ProtoReflect() protoreflect.Message { 3492 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[29] 3493 if protoimpl.UnsafeEnabled && x != nil { 3494 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3495 if ms.LoadMessageInfo() == nil { 3496 ms.StoreMessageInfo(mi) 3497 } 3498 return ms 3499 } 3500 return mi.MessageOf(x) 3501} 3502 3503// Deprecated: Use InspectContentResponse.ProtoReflect.Descriptor instead. 3504func (*InspectContentResponse) Descriptor() ([]byte, []int) { 3505 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{29} 3506} 3507 3508func (x *InspectContentResponse) GetResult() *InspectResult { 3509 if x != nil { 3510 return x.Result 3511 } 3512 return nil 3513} 3514 3515// Cloud repository for storing output. 3516type OutputStorageConfig struct { 3517 state protoimpl.MessageState 3518 sizeCache protoimpl.SizeCache 3519 unknownFields protoimpl.UnknownFields 3520 3521 // Output storage types. 3522 // 3523 // Types that are assignable to Type: 3524 // *OutputStorageConfig_Table 3525 Type isOutputStorageConfig_Type `protobuf_oneof:"type"` 3526 // Schema used for writing the findings for Inspect jobs. This field is only 3527 // used for Inspect and must be unspecified for Risk jobs. Columns are derived 3528 // from the `Finding` object. If appending to an existing table, any columns 3529 // from the predefined schema that are missing will be added. No columns in 3530 // the existing table will be deleted. 3531 // 3532 // If unspecified, then all available columns will be used for a new table or 3533 // an (existing) table with no schema, and no changes will be made to an 3534 // existing table that has a schema. 3535 // Only for use with external storage. 3536 OutputSchema OutputStorageConfig_OutputSchema `protobuf:"varint,3,opt,name=output_schema,json=outputSchema,proto3,enum=google.privacy.dlp.v2.OutputStorageConfig_OutputSchema" json:"output_schema,omitempty"` 3537} 3538 3539func (x *OutputStorageConfig) Reset() { 3540 *x = OutputStorageConfig{} 3541 if protoimpl.UnsafeEnabled { 3542 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[30] 3543 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3544 ms.StoreMessageInfo(mi) 3545 } 3546} 3547 3548func (x *OutputStorageConfig) String() string { 3549 return protoimpl.X.MessageStringOf(x) 3550} 3551 3552func (*OutputStorageConfig) ProtoMessage() {} 3553 3554func (x *OutputStorageConfig) ProtoReflect() protoreflect.Message { 3555 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[30] 3556 if protoimpl.UnsafeEnabled && x != nil { 3557 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3558 if ms.LoadMessageInfo() == nil { 3559 ms.StoreMessageInfo(mi) 3560 } 3561 return ms 3562 } 3563 return mi.MessageOf(x) 3564} 3565 3566// Deprecated: Use OutputStorageConfig.ProtoReflect.Descriptor instead. 3567func (*OutputStorageConfig) Descriptor() ([]byte, []int) { 3568 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{30} 3569} 3570 3571func (m *OutputStorageConfig) GetType() isOutputStorageConfig_Type { 3572 if m != nil { 3573 return m.Type 3574 } 3575 return nil 3576} 3577 3578func (x *OutputStorageConfig) GetTable() *BigQueryTable { 3579 if x, ok := x.GetType().(*OutputStorageConfig_Table); ok { 3580 return x.Table 3581 } 3582 return nil 3583} 3584 3585func (x *OutputStorageConfig) GetOutputSchema() OutputStorageConfig_OutputSchema { 3586 if x != nil { 3587 return x.OutputSchema 3588 } 3589 return OutputStorageConfig_OUTPUT_SCHEMA_UNSPECIFIED 3590} 3591 3592type isOutputStorageConfig_Type interface { 3593 isOutputStorageConfig_Type() 3594} 3595 3596type OutputStorageConfig_Table struct { 3597 // Store findings in an existing table or a new table in an existing 3598 // dataset. If table_id is not set a new one will be generated 3599 // for you with the following format: 3600 // dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for 3601 // generating the date details. 3602 // 3603 // For Inspect, each column in an existing output table must have the same 3604 // name, type, and mode of a field in the `Finding` object. 3605 // 3606 // For Risk, an existing output table should be the output of a previous 3607 // Risk analysis job run on the same source table, with the same privacy 3608 // metric and quasi-identifiers. Risk jobs that analyze the same table but 3609 // compute a different privacy metric, or use different sets of 3610 // quasi-identifiers, cannot store their results in the same table. 3611 Table *BigQueryTable `protobuf:"bytes,1,opt,name=table,proto3,oneof"` 3612} 3613 3614func (*OutputStorageConfig_Table) isOutputStorageConfig_Type() {} 3615 3616// Statistics regarding a specific InfoType. 3617type InfoTypeStats struct { 3618 state protoimpl.MessageState 3619 sizeCache protoimpl.SizeCache 3620 unknownFields protoimpl.UnknownFields 3621 3622 // The type of finding this stat is for. 3623 InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"` 3624 // Number of findings for this infoType. 3625 Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` 3626} 3627 3628func (x *InfoTypeStats) Reset() { 3629 *x = InfoTypeStats{} 3630 if protoimpl.UnsafeEnabled { 3631 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[31] 3632 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3633 ms.StoreMessageInfo(mi) 3634 } 3635} 3636 3637func (x *InfoTypeStats) String() string { 3638 return protoimpl.X.MessageStringOf(x) 3639} 3640 3641func (*InfoTypeStats) ProtoMessage() {} 3642 3643func (x *InfoTypeStats) ProtoReflect() protoreflect.Message { 3644 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[31] 3645 if protoimpl.UnsafeEnabled && x != nil { 3646 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3647 if ms.LoadMessageInfo() == nil { 3648 ms.StoreMessageInfo(mi) 3649 } 3650 return ms 3651 } 3652 return mi.MessageOf(x) 3653} 3654 3655// Deprecated: Use InfoTypeStats.ProtoReflect.Descriptor instead. 3656func (*InfoTypeStats) Descriptor() ([]byte, []int) { 3657 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{31} 3658} 3659 3660func (x *InfoTypeStats) GetInfoType() *InfoType { 3661 if x != nil { 3662 return x.InfoType 3663 } 3664 return nil 3665} 3666 3667func (x *InfoTypeStats) GetCount() int64 { 3668 if x != nil { 3669 return x.Count 3670 } 3671 return 0 3672} 3673 3674// The results of an inspect DataSource job. 3675type InspectDataSourceDetails struct { 3676 state protoimpl.MessageState 3677 sizeCache protoimpl.SizeCache 3678 unknownFields protoimpl.UnknownFields 3679 3680 // The configuration used for this job. 3681 RequestedOptions *InspectDataSourceDetails_RequestedOptions `protobuf:"bytes,2,opt,name=requested_options,json=requestedOptions,proto3" json:"requested_options,omitempty"` 3682 // A summary of the outcome of this inspect job. 3683 Result *InspectDataSourceDetails_Result `protobuf:"bytes,3,opt,name=result,proto3" json:"result,omitempty"` 3684} 3685 3686func (x *InspectDataSourceDetails) Reset() { 3687 *x = InspectDataSourceDetails{} 3688 if protoimpl.UnsafeEnabled { 3689 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[32] 3690 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3691 ms.StoreMessageInfo(mi) 3692 } 3693} 3694 3695func (x *InspectDataSourceDetails) String() string { 3696 return protoimpl.X.MessageStringOf(x) 3697} 3698 3699func (*InspectDataSourceDetails) ProtoMessage() {} 3700 3701func (x *InspectDataSourceDetails) ProtoReflect() protoreflect.Message { 3702 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[32] 3703 if protoimpl.UnsafeEnabled && x != nil { 3704 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3705 if ms.LoadMessageInfo() == nil { 3706 ms.StoreMessageInfo(mi) 3707 } 3708 return ms 3709 } 3710 return mi.MessageOf(x) 3711} 3712 3713// Deprecated: Use InspectDataSourceDetails.ProtoReflect.Descriptor instead. 3714func (*InspectDataSourceDetails) Descriptor() ([]byte, []int) { 3715 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{32} 3716} 3717 3718func (x *InspectDataSourceDetails) GetRequestedOptions() *InspectDataSourceDetails_RequestedOptions { 3719 if x != nil { 3720 return x.RequestedOptions 3721 } 3722 return nil 3723} 3724 3725func (x *InspectDataSourceDetails) GetResult() *InspectDataSourceDetails_Result { 3726 if x != nil { 3727 return x.Result 3728 } 3729 return nil 3730} 3731 3732// Statistics related to processing hybrid inspect requests.s 3733type HybridInspectStatistics struct { 3734 state protoimpl.MessageState 3735 sizeCache protoimpl.SizeCache 3736 unknownFields protoimpl.UnknownFields 3737 3738 // The number of hybrid inspection requests processed within this job. 3739 ProcessedCount int64 `protobuf:"varint,1,opt,name=processed_count,json=processedCount,proto3" json:"processed_count,omitempty"` 3740 // The number of hybrid inspection requests aborted because the job ran 3741 // out of quota or was ended before they could be processed. 3742 AbortedCount int64 `protobuf:"varint,2,opt,name=aborted_count,json=abortedCount,proto3" json:"aborted_count,omitempty"` 3743 // The number of hybrid requests currently being processed. Only populated 3744 // when called via method `getDlpJob`. 3745 // A burst of traffic may cause hybrid inspect requests to be enqueued. 3746 // Processing will take place as quickly as possible, but resource limitations 3747 // may impact how long a request is enqueued for. 3748 PendingCount int64 `protobuf:"varint,3,opt,name=pending_count,json=pendingCount,proto3" json:"pending_count,omitempty"` 3749} 3750 3751func (x *HybridInspectStatistics) Reset() { 3752 *x = HybridInspectStatistics{} 3753 if protoimpl.UnsafeEnabled { 3754 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[33] 3755 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3756 ms.StoreMessageInfo(mi) 3757 } 3758} 3759 3760func (x *HybridInspectStatistics) String() string { 3761 return protoimpl.X.MessageStringOf(x) 3762} 3763 3764func (*HybridInspectStatistics) ProtoMessage() {} 3765 3766func (x *HybridInspectStatistics) ProtoReflect() protoreflect.Message { 3767 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[33] 3768 if protoimpl.UnsafeEnabled && x != nil { 3769 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3770 if ms.LoadMessageInfo() == nil { 3771 ms.StoreMessageInfo(mi) 3772 } 3773 return ms 3774 } 3775 return mi.MessageOf(x) 3776} 3777 3778// Deprecated: Use HybridInspectStatistics.ProtoReflect.Descriptor instead. 3779func (*HybridInspectStatistics) Descriptor() ([]byte, []int) { 3780 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{33} 3781} 3782 3783func (x *HybridInspectStatistics) GetProcessedCount() int64 { 3784 if x != nil { 3785 return x.ProcessedCount 3786 } 3787 return 0 3788} 3789 3790func (x *HybridInspectStatistics) GetAbortedCount() int64 { 3791 if x != nil { 3792 return x.AbortedCount 3793 } 3794 return 0 3795} 3796 3797func (x *HybridInspectStatistics) GetPendingCount() int64 { 3798 if x != nil { 3799 return x.PendingCount 3800 } 3801 return 0 3802} 3803 3804// InfoType description. 3805type InfoTypeDescription struct { 3806 state protoimpl.MessageState 3807 sizeCache protoimpl.SizeCache 3808 unknownFields protoimpl.UnknownFields 3809 3810 // Internal name of the infoType. 3811 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 3812 // Human readable form of the infoType name. 3813 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 3814 // Which parts of the API supports this InfoType. 3815 SupportedBy []InfoTypeSupportedBy `protobuf:"varint,3,rep,packed,name=supported_by,json=supportedBy,proto3,enum=google.privacy.dlp.v2.InfoTypeSupportedBy" json:"supported_by,omitempty"` 3816 // Description of the infotype. Translated when language is provided in the 3817 // request. 3818 Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` 3819} 3820 3821func (x *InfoTypeDescription) Reset() { 3822 *x = InfoTypeDescription{} 3823 if protoimpl.UnsafeEnabled { 3824 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[34] 3825 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3826 ms.StoreMessageInfo(mi) 3827 } 3828} 3829 3830func (x *InfoTypeDescription) String() string { 3831 return protoimpl.X.MessageStringOf(x) 3832} 3833 3834func (*InfoTypeDescription) ProtoMessage() {} 3835 3836func (x *InfoTypeDescription) ProtoReflect() protoreflect.Message { 3837 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[34] 3838 if protoimpl.UnsafeEnabled && x != nil { 3839 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3840 if ms.LoadMessageInfo() == nil { 3841 ms.StoreMessageInfo(mi) 3842 } 3843 return ms 3844 } 3845 return mi.MessageOf(x) 3846} 3847 3848// Deprecated: Use InfoTypeDescription.ProtoReflect.Descriptor instead. 3849func (*InfoTypeDescription) Descriptor() ([]byte, []int) { 3850 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{34} 3851} 3852 3853func (x *InfoTypeDescription) GetName() string { 3854 if x != nil { 3855 return x.Name 3856 } 3857 return "" 3858} 3859 3860func (x *InfoTypeDescription) GetDisplayName() string { 3861 if x != nil { 3862 return x.DisplayName 3863 } 3864 return "" 3865} 3866 3867func (x *InfoTypeDescription) GetSupportedBy() []InfoTypeSupportedBy { 3868 if x != nil { 3869 return x.SupportedBy 3870 } 3871 return nil 3872} 3873 3874func (x *InfoTypeDescription) GetDescription() string { 3875 if x != nil { 3876 return x.Description 3877 } 3878 return "" 3879} 3880 3881// Request for the list of infoTypes. 3882type ListInfoTypesRequest struct { 3883 state protoimpl.MessageState 3884 sizeCache protoimpl.SizeCache 3885 unknownFields protoimpl.UnknownFields 3886 3887 // The parent resource name, for example locations/{location_id} 3888 Parent string `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"` 3889 // BCP-47 language code for localized infoType friendly 3890 // names. If omitted, or if localized strings are not available, 3891 // en-US strings will be returned. 3892 LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` 3893 // filter to only return infoTypes supported by certain parts of the 3894 // API. Defaults to supported_by=INSPECT. 3895 Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` 3896 // Deprecated. This field has no effect. 3897 LocationId string `protobuf:"bytes,3,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 3898} 3899 3900func (x *ListInfoTypesRequest) Reset() { 3901 *x = ListInfoTypesRequest{} 3902 if protoimpl.UnsafeEnabled { 3903 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[35] 3904 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3905 ms.StoreMessageInfo(mi) 3906 } 3907} 3908 3909func (x *ListInfoTypesRequest) String() string { 3910 return protoimpl.X.MessageStringOf(x) 3911} 3912 3913func (*ListInfoTypesRequest) ProtoMessage() {} 3914 3915func (x *ListInfoTypesRequest) ProtoReflect() protoreflect.Message { 3916 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[35] 3917 if protoimpl.UnsafeEnabled && x != nil { 3918 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3919 if ms.LoadMessageInfo() == nil { 3920 ms.StoreMessageInfo(mi) 3921 } 3922 return ms 3923 } 3924 return mi.MessageOf(x) 3925} 3926 3927// Deprecated: Use ListInfoTypesRequest.ProtoReflect.Descriptor instead. 3928func (*ListInfoTypesRequest) Descriptor() ([]byte, []int) { 3929 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{35} 3930} 3931 3932func (x *ListInfoTypesRequest) GetParent() string { 3933 if x != nil { 3934 return x.Parent 3935 } 3936 return "" 3937} 3938 3939func (x *ListInfoTypesRequest) GetLanguageCode() string { 3940 if x != nil { 3941 return x.LanguageCode 3942 } 3943 return "" 3944} 3945 3946func (x *ListInfoTypesRequest) GetFilter() string { 3947 if x != nil { 3948 return x.Filter 3949 } 3950 return "" 3951} 3952 3953func (x *ListInfoTypesRequest) GetLocationId() string { 3954 if x != nil { 3955 return x.LocationId 3956 } 3957 return "" 3958} 3959 3960// Response to the ListInfoTypes request. 3961type ListInfoTypesResponse struct { 3962 state protoimpl.MessageState 3963 sizeCache protoimpl.SizeCache 3964 unknownFields protoimpl.UnknownFields 3965 3966 // Set of sensitive infoTypes. 3967 InfoTypes []*InfoTypeDescription `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"` 3968} 3969 3970func (x *ListInfoTypesResponse) Reset() { 3971 *x = ListInfoTypesResponse{} 3972 if protoimpl.UnsafeEnabled { 3973 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[36] 3974 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3975 ms.StoreMessageInfo(mi) 3976 } 3977} 3978 3979func (x *ListInfoTypesResponse) String() string { 3980 return protoimpl.X.MessageStringOf(x) 3981} 3982 3983func (*ListInfoTypesResponse) ProtoMessage() {} 3984 3985func (x *ListInfoTypesResponse) ProtoReflect() protoreflect.Message { 3986 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[36] 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 ListInfoTypesResponse.ProtoReflect.Descriptor instead. 3998func (*ListInfoTypesResponse) Descriptor() ([]byte, []int) { 3999 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{36} 4000} 4001 4002func (x *ListInfoTypesResponse) GetInfoTypes() []*InfoTypeDescription { 4003 if x != nil { 4004 return x.InfoTypes 4005 } 4006 return nil 4007} 4008 4009// Configuration for a risk analysis job. See 4010// https://cloud.google.com/dlp/docs/concepts-risk-analysis to learn more. 4011type RiskAnalysisJobConfig struct { 4012 state protoimpl.MessageState 4013 sizeCache protoimpl.SizeCache 4014 unknownFields protoimpl.UnknownFields 4015 4016 // Privacy metric to compute. 4017 PrivacyMetric *PrivacyMetric `protobuf:"bytes,1,opt,name=privacy_metric,json=privacyMetric,proto3" json:"privacy_metric,omitempty"` 4018 // Input dataset to compute metrics over. 4019 SourceTable *BigQueryTable `protobuf:"bytes,2,opt,name=source_table,json=sourceTable,proto3" json:"source_table,omitempty"` 4020 // Actions to execute at the completion of the job. Are executed in the order 4021 // provided. 4022 Actions []*Action `protobuf:"bytes,3,rep,name=actions,proto3" json:"actions,omitempty"` 4023} 4024 4025func (x *RiskAnalysisJobConfig) Reset() { 4026 *x = RiskAnalysisJobConfig{} 4027 if protoimpl.UnsafeEnabled { 4028 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[37] 4029 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4030 ms.StoreMessageInfo(mi) 4031 } 4032} 4033 4034func (x *RiskAnalysisJobConfig) String() string { 4035 return protoimpl.X.MessageStringOf(x) 4036} 4037 4038func (*RiskAnalysisJobConfig) ProtoMessage() {} 4039 4040func (x *RiskAnalysisJobConfig) ProtoReflect() protoreflect.Message { 4041 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[37] 4042 if protoimpl.UnsafeEnabled && x != nil { 4043 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4044 if ms.LoadMessageInfo() == nil { 4045 ms.StoreMessageInfo(mi) 4046 } 4047 return ms 4048 } 4049 return mi.MessageOf(x) 4050} 4051 4052// Deprecated: Use RiskAnalysisJobConfig.ProtoReflect.Descriptor instead. 4053func (*RiskAnalysisJobConfig) Descriptor() ([]byte, []int) { 4054 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{37} 4055} 4056 4057func (x *RiskAnalysisJobConfig) GetPrivacyMetric() *PrivacyMetric { 4058 if x != nil { 4059 return x.PrivacyMetric 4060 } 4061 return nil 4062} 4063 4064func (x *RiskAnalysisJobConfig) GetSourceTable() *BigQueryTable { 4065 if x != nil { 4066 return x.SourceTable 4067 } 4068 return nil 4069} 4070 4071func (x *RiskAnalysisJobConfig) GetActions() []*Action { 4072 if x != nil { 4073 return x.Actions 4074 } 4075 return nil 4076} 4077 4078// A column with a semantic tag attached. 4079type QuasiId struct { 4080 state protoimpl.MessageState 4081 sizeCache protoimpl.SizeCache 4082 unknownFields protoimpl.UnknownFields 4083 4084 // Required. Identifies the column. 4085 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 4086 // Semantic tag that identifies what a column contains, to determine which 4087 // statistical model to use to estimate the reidentifiability of each 4088 // value. [required] 4089 // 4090 // Types that are assignable to Tag: 4091 // *QuasiId_InfoType 4092 // *QuasiId_CustomTag 4093 // *QuasiId_Inferred 4094 Tag isQuasiId_Tag `protobuf_oneof:"tag"` 4095} 4096 4097func (x *QuasiId) Reset() { 4098 *x = QuasiId{} 4099 if protoimpl.UnsafeEnabled { 4100 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[38] 4101 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4102 ms.StoreMessageInfo(mi) 4103 } 4104} 4105 4106func (x *QuasiId) String() string { 4107 return protoimpl.X.MessageStringOf(x) 4108} 4109 4110func (*QuasiId) ProtoMessage() {} 4111 4112func (x *QuasiId) ProtoReflect() protoreflect.Message { 4113 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[38] 4114 if protoimpl.UnsafeEnabled && x != nil { 4115 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4116 if ms.LoadMessageInfo() == nil { 4117 ms.StoreMessageInfo(mi) 4118 } 4119 return ms 4120 } 4121 return mi.MessageOf(x) 4122} 4123 4124// Deprecated: Use QuasiId.ProtoReflect.Descriptor instead. 4125func (*QuasiId) Descriptor() ([]byte, []int) { 4126 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{38} 4127} 4128 4129func (x *QuasiId) GetField() *FieldId { 4130 if x != nil { 4131 return x.Field 4132 } 4133 return nil 4134} 4135 4136func (m *QuasiId) GetTag() isQuasiId_Tag { 4137 if m != nil { 4138 return m.Tag 4139 } 4140 return nil 4141} 4142 4143func (x *QuasiId) GetInfoType() *InfoType { 4144 if x, ok := x.GetTag().(*QuasiId_InfoType); ok { 4145 return x.InfoType 4146 } 4147 return nil 4148} 4149 4150func (x *QuasiId) GetCustomTag() string { 4151 if x, ok := x.GetTag().(*QuasiId_CustomTag); ok { 4152 return x.CustomTag 4153 } 4154 return "" 4155} 4156 4157func (x *QuasiId) GetInferred() *empty.Empty { 4158 if x, ok := x.GetTag().(*QuasiId_Inferred); ok { 4159 return x.Inferred 4160 } 4161 return nil 4162} 4163 4164type isQuasiId_Tag interface { 4165 isQuasiId_Tag() 4166} 4167 4168type QuasiId_InfoType struct { 4169 // A column can be tagged with a InfoType to use the relevant public 4170 // dataset as a statistical model of population, if available. We 4171 // currently support US ZIP codes, region codes, ages and genders. 4172 // To programmatically obtain the list of supported InfoTypes, use 4173 // ListInfoTypes with the supported_by=RISK_ANALYSIS filter. 4174 InfoType *InfoType `protobuf:"bytes,2,opt,name=info_type,json=infoType,proto3,oneof"` 4175} 4176 4177type QuasiId_CustomTag struct { 4178 // A column can be tagged with a custom tag. In this case, the user must 4179 // indicate an auxiliary table that contains statistical information on 4180 // the possible values of this column (below). 4181 CustomTag string `protobuf:"bytes,3,opt,name=custom_tag,json=customTag,proto3,oneof"` 4182} 4183 4184type QuasiId_Inferred struct { 4185 // If no semantic tag is indicated, we infer the statistical model from 4186 // the distribution of values in the input data 4187 Inferred *empty.Empty `protobuf:"bytes,4,opt,name=inferred,proto3,oneof"` 4188} 4189 4190func (*QuasiId_InfoType) isQuasiId_Tag() {} 4191 4192func (*QuasiId_CustomTag) isQuasiId_Tag() {} 4193 4194func (*QuasiId_Inferred) isQuasiId_Tag() {} 4195 4196// An auxiliary table containing statistical information on the relative 4197// frequency of different quasi-identifiers values. It has one or several 4198// quasi-identifiers columns, and one column that indicates the relative 4199// frequency of each quasi-identifier tuple. 4200// If a tuple is present in the data but not in the auxiliary table, the 4201// corresponding relative frequency is assumed to be zero (and thus, the 4202// tuple is highly reidentifiable). 4203type StatisticalTable struct { 4204 state protoimpl.MessageState 4205 sizeCache protoimpl.SizeCache 4206 unknownFields protoimpl.UnknownFields 4207 4208 // Required. Auxiliary table location. 4209 Table *BigQueryTable `protobuf:"bytes,3,opt,name=table,proto3" json:"table,omitempty"` 4210 // Required. Quasi-identifier columns. 4211 QuasiIds []*StatisticalTable_QuasiIdentifierField `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"` 4212 // Required. The relative frequency column must contain a floating-point 4213 // number between 0 and 1 (inclusive). Null values are assumed to be zero. 4214 RelativeFrequency *FieldId `protobuf:"bytes,2,opt,name=relative_frequency,json=relativeFrequency,proto3" json:"relative_frequency,omitempty"` 4215} 4216 4217func (x *StatisticalTable) Reset() { 4218 *x = StatisticalTable{} 4219 if protoimpl.UnsafeEnabled { 4220 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[39] 4221 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4222 ms.StoreMessageInfo(mi) 4223 } 4224} 4225 4226func (x *StatisticalTable) String() string { 4227 return protoimpl.X.MessageStringOf(x) 4228} 4229 4230func (*StatisticalTable) ProtoMessage() {} 4231 4232func (x *StatisticalTable) ProtoReflect() protoreflect.Message { 4233 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[39] 4234 if protoimpl.UnsafeEnabled && x != nil { 4235 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4236 if ms.LoadMessageInfo() == nil { 4237 ms.StoreMessageInfo(mi) 4238 } 4239 return ms 4240 } 4241 return mi.MessageOf(x) 4242} 4243 4244// Deprecated: Use StatisticalTable.ProtoReflect.Descriptor instead. 4245func (*StatisticalTable) Descriptor() ([]byte, []int) { 4246 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{39} 4247} 4248 4249func (x *StatisticalTable) GetTable() *BigQueryTable { 4250 if x != nil { 4251 return x.Table 4252 } 4253 return nil 4254} 4255 4256func (x *StatisticalTable) GetQuasiIds() []*StatisticalTable_QuasiIdentifierField { 4257 if x != nil { 4258 return x.QuasiIds 4259 } 4260 return nil 4261} 4262 4263func (x *StatisticalTable) GetRelativeFrequency() *FieldId { 4264 if x != nil { 4265 return x.RelativeFrequency 4266 } 4267 return nil 4268} 4269 4270// Privacy metric to compute for reidentification risk analysis. 4271type PrivacyMetric struct { 4272 state protoimpl.MessageState 4273 sizeCache protoimpl.SizeCache 4274 unknownFields protoimpl.UnknownFields 4275 4276 // Types of analysis. 4277 // 4278 // Types that are assignable to Type: 4279 // *PrivacyMetric_NumericalStatsConfig_ 4280 // *PrivacyMetric_CategoricalStatsConfig_ 4281 // *PrivacyMetric_KAnonymityConfig_ 4282 // *PrivacyMetric_LDiversityConfig_ 4283 // *PrivacyMetric_KMapEstimationConfig_ 4284 // *PrivacyMetric_DeltaPresenceEstimationConfig_ 4285 Type isPrivacyMetric_Type `protobuf_oneof:"type"` 4286} 4287 4288func (x *PrivacyMetric) Reset() { 4289 *x = PrivacyMetric{} 4290 if protoimpl.UnsafeEnabled { 4291 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[40] 4292 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4293 ms.StoreMessageInfo(mi) 4294 } 4295} 4296 4297func (x *PrivacyMetric) String() string { 4298 return protoimpl.X.MessageStringOf(x) 4299} 4300 4301func (*PrivacyMetric) ProtoMessage() {} 4302 4303func (x *PrivacyMetric) ProtoReflect() protoreflect.Message { 4304 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[40] 4305 if protoimpl.UnsafeEnabled && x != nil { 4306 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4307 if ms.LoadMessageInfo() == nil { 4308 ms.StoreMessageInfo(mi) 4309 } 4310 return ms 4311 } 4312 return mi.MessageOf(x) 4313} 4314 4315// Deprecated: Use PrivacyMetric.ProtoReflect.Descriptor instead. 4316func (*PrivacyMetric) Descriptor() ([]byte, []int) { 4317 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40} 4318} 4319 4320func (m *PrivacyMetric) GetType() isPrivacyMetric_Type { 4321 if m != nil { 4322 return m.Type 4323 } 4324 return nil 4325} 4326 4327func (x *PrivacyMetric) GetNumericalStatsConfig() *PrivacyMetric_NumericalStatsConfig { 4328 if x, ok := x.GetType().(*PrivacyMetric_NumericalStatsConfig_); ok { 4329 return x.NumericalStatsConfig 4330 } 4331 return nil 4332} 4333 4334func (x *PrivacyMetric) GetCategoricalStatsConfig() *PrivacyMetric_CategoricalStatsConfig { 4335 if x, ok := x.GetType().(*PrivacyMetric_CategoricalStatsConfig_); ok { 4336 return x.CategoricalStatsConfig 4337 } 4338 return nil 4339} 4340 4341func (x *PrivacyMetric) GetKAnonymityConfig() *PrivacyMetric_KAnonymityConfig { 4342 if x, ok := x.GetType().(*PrivacyMetric_KAnonymityConfig_); ok { 4343 return x.KAnonymityConfig 4344 } 4345 return nil 4346} 4347 4348func (x *PrivacyMetric) GetLDiversityConfig() *PrivacyMetric_LDiversityConfig { 4349 if x, ok := x.GetType().(*PrivacyMetric_LDiversityConfig_); ok { 4350 return x.LDiversityConfig 4351 } 4352 return nil 4353} 4354 4355func (x *PrivacyMetric) GetKMapEstimationConfig() *PrivacyMetric_KMapEstimationConfig { 4356 if x, ok := x.GetType().(*PrivacyMetric_KMapEstimationConfig_); ok { 4357 return x.KMapEstimationConfig 4358 } 4359 return nil 4360} 4361 4362func (x *PrivacyMetric) GetDeltaPresenceEstimationConfig() *PrivacyMetric_DeltaPresenceEstimationConfig { 4363 if x, ok := x.GetType().(*PrivacyMetric_DeltaPresenceEstimationConfig_); ok { 4364 return x.DeltaPresenceEstimationConfig 4365 } 4366 return nil 4367} 4368 4369type isPrivacyMetric_Type interface { 4370 isPrivacyMetric_Type() 4371} 4372 4373type PrivacyMetric_NumericalStatsConfig_ struct { 4374 // Numerical stats 4375 NumericalStatsConfig *PrivacyMetric_NumericalStatsConfig `protobuf:"bytes,1,opt,name=numerical_stats_config,json=numericalStatsConfig,proto3,oneof"` 4376} 4377 4378type PrivacyMetric_CategoricalStatsConfig_ struct { 4379 // Categorical stats 4380 CategoricalStatsConfig *PrivacyMetric_CategoricalStatsConfig `protobuf:"bytes,2,opt,name=categorical_stats_config,json=categoricalStatsConfig,proto3,oneof"` 4381} 4382 4383type PrivacyMetric_KAnonymityConfig_ struct { 4384 // K-anonymity 4385 KAnonymityConfig *PrivacyMetric_KAnonymityConfig `protobuf:"bytes,3,opt,name=k_anonymity_config,json=kAnonymityConfig,proto3,oneof"` 4386} 4387 4388type PrivacyMetric_LDiversityConfig_ struct { 4389 // l-diversity 4390 LDiversityConfig *PrivacyMetric_LDiversityConfig `protobuf:"bytes,4,opt,name=l_diversity_config,json=lDiversityConfig,proto3,oneof"` 4391} 4392 4393type PrivacyMetric_KMapEstimationConfig_ struct { 4394 // k-map 4395 KMapEstimationConfig *PrivacyMetric_KMapEstimationConfig `protobuf:"bytes,5,opt,name=k_map_estimation_config,json=kMapEstimationConfig,proto3,oneof"` 4396} 4397 4398type PrivacyMetric_DeltaPresenceEstimationConfig_ struct { 4399 // delta-presence 4400 DeltaPresenceEstimationConfig *PrivacyMetric_DeltaPresenceEstimationConfig `protobuf:"bytes,6,opt,name=delta_presence_estimation_config,json=deltaPresenceEstimationConfig,proto3,oneof"` 4401} 4402 4403func (*PrivacyMetric_NumericalStatsConfig_) isPrivacyMetric_Type() {} 4404 4405func (*PrivacyMetric_CategoricalStatsConfig_) isPrivacyMetric_Type() {} 4406 4407func (*PrivacyMetric_KAnonymityConfig_) isPrivacyMetric_Type() {} 4408 4409func (*PrivacyMetric_LDiversityConfig_) isPrivacyMetric_Type() {} 4410 4411func (*PrivacyMetric_KMapEstimationConfig_) isPrivacyMetric_Type() {} 4412 4413func (*PrivacyMetric_DeltaPresenceEstimationConfig_) isPrivacyMetric_Type() {} 4414 4415// Result of a risk analysis operation request. 4416type AnalyzeDataSourceRiskDetails struct { 4417 state protoimpl.MessageState 4418 sizeCache protoimpl.SizeCache 4419 unknownFields protoimpl.UnknownFields 4420 4421 // Privacy metric to compute. 4422 RequestedPrivacyMetric *PrivacyMetric `protobuf:"bytes,1,opt,name=requested_privacy_metric,json=requestedPrivacyMetric,proto3" json:"requested_privacy_metric,omitempty"` 4423 // Input dataset to compute metrics over. 4424 RequestedSourceTable *BigQueryTable `protobuf:"bytes,2,opt,name=requested_source_table,json=requestedSourceTable,proto3" json:"requested_source_table,omitempty"` 4425 // Values associated with this metric. 4426 // 4427 // Types that are assignable to Result: 4428 // *AnalyzeDataSourceRiskDetails_NumericalStatsResult_ 4429 // *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_ 4430 // *AnalyzeDataSourceRiskDetails_KAnonymityResult_ 4431 // *AnalyzeDataSourceRiskDetails_LDiversityResult_ 4432 // *AnalyzeDataSourceRiskDetails_KMapEstimationResult_ 4433 // *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_ 4434 Result isAnalyzeDataSourceRiskDetails_Result `protobuf_oneof:"result"` 4435} 4436 4437func (x *AnalyzeDataSourceRiskDetails) Reset() { 4438 *x = AnalyzeDataSourceRiskDetails{} 4439 if protoimpl.UnsafeEnabled { 4440 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[41] 4441 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4442 ms.StoreMessageInfo(mi) 4443 } 4444} 4445 4446func (x *AnalyzeDataSourceRiskDetails) String() string { 4447 return protoimpl.X.MessageStringOf(x) 4448} 4449 4450func (*AnalyzeDataSourceRiskDetails) ProtoMessage() {} 4451 4452func (x *AnalyzeDataSourceRiskDetails) ProtoReflect() protoreflect.Message { 4453 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[41] 4454 if protoimpl.UnsafeEnabled && x != nil { 4455 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4456 if ms.LoadMessageInfo() == nil { 4457 ms.StoreMessageInfo(mi) 4458 } 4459 return ms 4460 } 4461 return mi.MessageOf(x) 4462} 4463 4464// Deprecated: Use AnalyzeDataSourceRiskDetails.ProtoReflect.Descriptor instead. 4465func (*AnalyzeDataSourceRiskDetails) Descriptor() ([]byte, []int) { 4466 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41} 4467} 4468 4469func (x *AnalyzeDataSourceRiskDetails) GetRequestedPrivacyMetric() *PrivacyMetric { 4470 if x != nil { 4471 return x.RequestedPrivacyMetric 4472 } 4473 return nil 4474} 4475 4476func (x *AnalyzeDataSourceRiskDetails) GetRequestedSourceTable() *BigQueryTable { 4477 if x != nil { 4478 return x.RequestedSourceTable 4479 } 4480 return nil 4481} 4482 4483func (m *AnalyzeDataSourceRiskDetails) GetResult() isAnalyzeDataSourceRiskDetails_Result { 4484 if m != nil { 4485 return m.Result 4486 } 4487 return nil 4488} 4489 4490func (x *AnalyzeDataSourceRiskDetails) GetNumericalStatsResult() *AnalyzeDataSourceRiskDetails_NumericalStatsResult { 4491 if x, ok := x.GetResult().(*AnalyzeDataSourceRiskDetails_NumericalStatsResult_); ok { 4492 return x.NumericalStatsResult 4493 } 4494 return nil 4495} 4496 4497func (x *AnalyzeDataSourceRiskDetails) GetCategoricalStatsResult() *AnalyzeDataSourceRiskDetails_CategoricalStatsResult { 4498 if x, ok := x.GetResult().(*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_); ok { 4499 return x.CategoricalStatsResult 4500 } 4501 return nil 4502} 4503 4504func (x *AnalyzeDataSourceRiskDetails) GetKAnonymityResult() *AnalyzeDataSourceRiskDetails_KAnonymityResult { 4505 if x, ok := x.GetResult().(*AnalyzeDataSourceRiskDetails_KAnonymityResult_); ok { 4506 return x.KAnonymityResult 4507 } 4508 return nil 4509} 4510 4511func (x *AnalyzeDataSourceRiskDetails) GetLDiversityResult() *AnalyzeDataSourceRiskDetails_LDiversityResult { 4512 if x, ok := x.GetResult().(*AnalyzeDataSourceRiskDetails_LDiversityResult_); ok { 4513 return x.LDiversityResult 4514 } 4515 return nil 4516} 4517 4518func (x *AnalyzeDataSourceRiskDetails) GetKMapEstimationResult() *AnalyzeDataSourceRiskDetails_KMapEstimationResult { 4519 if x, ok := x.GetResult().(*AnalyzeDataSourceRiskDetails_KMapEstimationResult_); ok { 4520 return x.KMapEstimationResult 4521 } 4522 return nil 4523} 4524 4525func (x *AnalyzeDataSourceRiskDetails) GetDeltaPresenceEstimationResult() *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult { 4526 if x, ok := x.GetResult().(*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_); ok { 4527 return x.DeltaPresenceEstimationResult 4528 } 4529 return nil 4530} 4531 4532type isAnalyzeDataSourceRiskDetails_Result interface { 4533 isAnalyzeDataSourceRiskDetails_Result() 4534} 4535 4536type AnalyzeDataSourceRiskDetails_NumericalStatsResult_ struct { 4537 // Numerical stats result 4538 NumericalStatsResult *AnalyzeDataSourceRiskDetails_NumericalStatsResult `protobuf:"bytes,3,opt,name=numerical_stats_result,json=numericalStatsResult,proto3,oneof"` 4539} 4540 4541type AnalyzeDataSourceRiskDetails_CategoricalStatsResult_ struct { 4542 // Categorical stats result 4543 CategoricalStatsResult *AnalyzeDataSourceRiskDetails_CategoricalStatsResult `protobuf:"bytes,4,opt,name=categorical_stats_result,json=categoricalStatsResult,proto3,oneof"` 4544} 4545 4546type AnalyzeDataSourceRiskDetails_KAnonymityResult_ struct { 4547 // K-anonymity result 4548 KAnonymityResult *AnalyzeDataSourceRiskDetails_KAnonymityResult `protobuf:"bytes,5,opt,name=k_anonymity_result,json=kAnonymityResult,proto3,oneof"` 4549} 4550 4551type AnalyzeDataSourceRiskDetails_LDiversityResult_ struct { 4552 // L-divesity result 4553 LDiversityResult *AnalyzeDataSourceRiskDetails_LDiversityResult `protobuf:"bytes,6,opt,name=l_diversity_result,json=lDiversityResult,proto3,oneof"` 4554} 4555 4556type AnalyzeDataSourceRiskDetails_KMapEstimationResult_ struct { 4557 // K-map result 4558 KMapEstimationResult *AnalyzeDataSourceRiskDetails_KMapEstimationResult `protobuf:"bytes,7,opt,name=k_map_estimation_result,json=kMapEstimationResult,proto3,oneof"` 4559} 4560 4561type AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_ struct { 4562 // Delta-presence result 4563 DeltaPresenceEstimationResult *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult `protobuf:"bytes,9,opt,name=delta_presence_estimation_result,json=deltaPresenceEstimationResult,proto3,oneof"` 4564} 4565 4566func (*AnalyzeDataSourceRiskDetails_NumericalStatsResult_) isAnalyzeDataSourceRiskDetails_Result() {} 4567 4568func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_) isAnalyzeDataSourceRiskDetails_Result() {} 4569 4570func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_) isAnalyzeDataSourceRiskDetails_Result() {} 4571 4572func (*AnalyzeDataSourceRiskDetails_LDiversityResult_) isAnalyzeDataSourceRiskDetails_Result() {} 4573 4574func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_) isAnalyzeDataSourceRiskDetails_Result() {} 4575 4576func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_) isAnalyzeDataSourceRiskDetails_Result() { 4577} 4578 4579// A value of a field, including its frequency. 4580type ValueFrequency struct { 4581 state protoimpl.MessageState 4582 sizeCache protoimpl.SizeCache 4583 unknownFields protoimpl.UnknownFields 4584 4585 // A value contained in the field in question. 4586 Value *Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` 4587 // How many times the value is contained in the field. 4588 Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` 4589} 4590 4591func (x *ValueFrequency) Reset() { 4592 *x = ValueFrequency{} 4593 if protoimpl.UnsafeEnabled { 4594 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[42] 4595 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4596 ms.StoreMessageInfo(mi) 4597 } 4598} 4599 4600func (x *ValueFrequency) String() string { 4601 return protoimpl.X.MessageStringOf(x) 4602} 4603 4604func (*ValueFrequency) ProtoMessage() {} 4605 4606func (x *ValueFrequency) ProtoReflect() protoreflect.Message { 4607 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[42] 4608 if protoimpl.UnsafeEnabled && x != nil { 4609 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4610 if ms.LoadMessageInfo() == nil { 4611 ms.StoreMessageInfo(mi) 4612 } 4613 return ms 4614 } 4615 return mi.MessageOf(x) 4616} 4617 4618// Deprecated: Use ValueFrequency.ProtoReflect.Descriptor instead. 4619func (*ValueFrequency) Descriptor() ([]byte, []int) { 4620 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{42} 4621} 4622 4623func (x *ValueFrequency) GetValue() *Value { 4624 if x != nil { 4625 return x.Value 4626 } 4627 return nil 4628} 4629 4630func (x *ValueFrequency) GetCount() int64 { 4631 if x != nil { 4632 return x.Count 4633 } 4634 return 0 4635} 4636 4637// Set of primitive values supported by the system. 4638// Note that for the purposes of inspection or transformation, the number 4639// of bytes considered to comprise a 'Value' is based on its representation 4640// as a UTF-8 encoded string. For example, if 'integer_value' is set to 4641// 123456789, the number of bytes would be counted as 9, even though an 4642// int64 only holds up to 8 bytes of data. 4643type Value struct { 4644 state protoimpl.MessageState 4645 sizeCache protoimpl.SizeCache 4646 unknownFields protoimpl.UnknownFields 4647 4648 // Value types 4649 // 4650 // Types that are assignable to Type: 4651 // *Value_IntegerValue 4652 // *Value_FloatValue 4653 // *Value_StringValue 4654 // *Value_BooleanValue 4655 // *Value_TimestampValue 4656 // *Value_TimeValue 4657 // *Value_DateValue 4658 // *Value_DayOfWeekValue 4659 Type isValue_Type `protobuf_oneof:"type"` 4660} 4661 4662func (x *Value) Reset() { 4663 *x = Value{} 4664 if protoimpl.UnsafeEnabled { 4665 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[43] 4666 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4667 ms.StoreMessageInfo(mi) 4668 } 4669} 4670 4671func (x *Value) String() string { 4672 return protoimpl.X.MessageStringOf(x) 4673} 4674 4675func (*Value) ProtoMessage() {} 4676 4677func (x *Value) ProtoReflect() protoreflect.Message { 4678 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[43] 4679 if protoimpl.UnsafeEnabled && x != nil { 4680 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4681 if ms.LoadMessageInfo() == nil { 4682 ms.StoreMessageInfo(mi) 4683 } 4684 return ms 4685 } 4686 return mi.MessageOf(x) 4687} 4688 4689// Deprecated: Use Value.ProtoReflect.Descriptor instead. 4690func (*Value) Descriptor() ([]byte, []int) { 4691 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{43} 4692} 4693 4694func (m *Value) GetType() isValue_Type { 4695 if m != nil { 4696 return m.Type 4697 } 4698 return nil 4699} 4700 4701func (x *Value) GetIntegerValue() int64 { 4702 if x, ok := x.GetType().(*Value_IntegerValue); ok { 4703 return x.IntegerValue 4704 } 4705 return 0 4706} 4707 4708func (x *Value) GetFloatValue() float64 { 4709 if x, ok := x.GetType().(*Value_FloatValue); ok { 4710 return x.FloatValue 4711 } 4712 return 0 4713} 4714 4715func (x *Value) GetStringValue() string { 4716 if x, ok := x.GetType().(*Value_StringValue); ok { 4717 return x.StringValue 4718 } 4719 return "" 4720} 4721 4722func (x *Value) GetBooleanValue() bool { 4723 if x, ok := x.GetType().(*Value_BooleanValue); ok { 4724 return x.BooleanValue 4725 } 4726 return false 4727} 4728 4729func (x *Value) GetTimestampValue() *timestamp.Timestamp { 4730 if x, ok := x.GetType().(*Value_TimestampValue); ok { 4731 return x.TimestampValue 4732 } 4733 return nil 4734} 4735 4736func (x *Value) GetTimeValue() *timeofday.TimeOfDay { 4737 if x, ok := x.GetType().(*Value_TimeValue); ok { 4738 return x.TimeValue 4739 } 4740 return nil 4741} 4742 4743func (x *Value) GetDateValue() *date.Date { 4744 if x, ok := x.GetType().(*Value_DateValue); ok { 4745 return x.DateValue 4746 } 4747 return nil 4748} 4749 4750func (x *Value) GetDayOfWeekValue() dayofweek.DayOfWeek { 4751 if x, ok := x.GetType().(*Value_DayOfWeekValue); ok { 4752 return x.DayOfWeekValue 4753 } 4754 return dayofweek.DayOfWeek_DAY_OF_WEEK_UNSPECIFIED 4755} 4756 4757type isValue_Type interface { 4758 isValue_Type() 4759} 4760 4761type Value_IntegerValue struct { 4762 // integer 4763 IntegerValue int64 `protobuf:"varint,1,opt,name=integer_value,json=integerValue,proto3,oneof"` 4764} 4765 4766type Value_FloatValue struct { 4767 // float 4768 FloatValue float64 `protobuf:"fixed64,2,opt,name=float_value,json=floatValue,proto3,oneof"` 4769} 4770 4771type Value_StringValue struct { 4772 // string 4773 StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof"` 4774} 4775 4776type Value_BooleanValue struct { 4777 // boolean 4778 BooleanValue bool `protobuf:"varint,4,opt,name=boolean_value,json=booleanValue,proto3,oneof"` 4779} 4780 4781type Value_TimestampValue struct { 4782 // timestamp 4783 TimestampValue *timestamp.Timestamp `protobuf:"bytes,5,opt,name=timestamp_value,json=timestampValue,proto3,oneof"` 4784} 4785 4786type Value_TimeValue struct { 4787 // time of day 4788 TimeValue *timeofday.TimeOfDay `protobuf:"bytes,6,opt,name=time_value,json=timeValue,proto3,oneof"` 4789} 4790 4791type Value_DateValue struct { 4792 // date 4793 DateValue *date.Date `protobuf:"bytes,7,opt,name=date_value,json=dateValue,proto3,oneof"` 4794} 4795 4796type Value_DayOfWeekValue struct { 4797 // day of week 4798 DayOfWeekValue dayofweek.DayOfWeek `protobuf:"varint,8,opt,name=day_of_week_value,json=dayOfWeekValue,proto3,enum=google.type.DayOfWeek,oneof"` 4799} 4800 4801func (*Value_IntegerValue) isValue_Type() {} 4802 4803func (*Value_FloatValue) isValue_Type() {} 4804 4805func (*Value_StringValue) isValue_Type() {} 4806 4807func (*Value_BooleanValue) isValue_Type() {} 4808 4809func (*Value_TimestampValue) isValue_Type() {} 4810 4811func (*Value_TimeValue) isValue_Type() {} 4812 4813func (*Value_DateValue) isValue_Type() {} 4814 4815func (*Value_DayOfWeekValue) isValue_Type() {} 4816 4817// Message for infoType-dependent details parsed from quote. 4818type QuoteInfo struct { 4819 state protoimpl.MessageState 4820 sizeCache protoimpl.SizeCache 4821 unknownFields protoimpl.UnknownFields 4822 4823 // Object representation of the quote. 4824 // 4825 // Types that are assignable to ParsedQuote: 4826 // *QuoteInfo_DateTime 4827 ParsedQuote isQuoteInfo_ParsedQuote `protobuf_oneof:"parsed_quote"` 4828} 4829 4830func (x *QuoteInfo) Reset() { 4831 *x = QuoteInfo{} 4832 if protoimpl.UnsafeEnabled { 4833 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[44] 4834 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4835 ms.StoreMessageInfo(mi) 4836 } 4837} 4838 4839func (x *QuoteInfo) String() string { 4840 return protoimpl.X.MessageStringOf(x) 4841} 4842 4843func (*QuoteInfo) ProtoMessage() {} 4844 4845func (x *QuoteInfo) ProtoReflect() protoreflect.Message { 4846 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[44] 4847 if protoimpl.UnsafeEnabled && x != nil { 4848 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4849 if ms.LoadMessageInfo() == nil { 4850 ms.StoreMessageInfo(mi) 4851 } 4852 return ms 4853 } 4854 return mi.MessageOf(x) 4855} 4856 4857// Deprecated: Use QuoteInfo.ProtoReflect.Descriptor instead. 4858func (*QuoteInfo) Descriptor() ([]byte, []int) { 4859 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{44} 4860} 4861 4862func (m *QuoteInfo) GetParsedQuote() isQuoteInfo_ParsedQuote { 4863 if m != nil { 4864 return m.ParsedQuote 4865 } 4866 return nil 4867} 4868 4869func (x *QuoteInfo) GetDateTime() *DateTime { 4870 if x, ok := x.GetParsedQuote().(*QuoteInfo_DateTime); ok { 4871 return x.DateTime 4872 } 4873 return nil 4874} 4875 4876type isQuoteInfo_ParsedQuote interface { 4877 isQuoteInfo_ParsedQuote() 4878} 4879 4880type QuoteInfo_DateTime struct { 4881 // The date time indicated by the quote. 4882 DateTime *DateTime `protobuf:"bytes,2,opt,name=date_time,json=dateTime,proto3,oneof"` 4883} 4884 4885func (*QuoteInfo_DateTime) isQuoteInfo_ParsedQuote() {} 4886 4887// Message for a date time object. 4888// e.g. 2018-01-01, 5th August. 4889type DateTime struct { 4890 state protoimpl.MessageState 4891 sizeCache protoimpl.SizeCache 4892 unknownFields protoimpl.UnknownFields 4893 4894 // One or more of the following must be set. 4895 // Must be a valid date or time value. 4896 Date *date.Date `protobuf:"bytes,1,opt,name=date,proto3" json:"date,omitempty"` 4897 // Day of week 4898 DayOfWeek dayofweek.DayOfWeek `protobuf:"varint,2,opt,name=day_of_week,json=dayOfWeek,proto3,enum=google.type.DayOfWeek" json:"day_of_week,omitempty"` 4899 // Time of day 4900 Time *timeofday.TimeOfDay `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"` 4901 // Time zone 4902 TimeZone *DateTime_TimeZone `protobuf:"bytes,4,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"` 4903} 4904 4905func (x *DateTime) Reset() { 4906 *x = DateTime{} 4907 if protoimpl.UnsafeEnabled { 4908 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[45] 4909 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4910 ms.StoreMessageInfo(mi) 4911 } 4912} 4913 4914func (x *DateTime) String() string { 4915 return protoimpl.X.MessageStringOf(x) 4916} 4917 4918func (*DateTime) ProtoMessage() {} 4919 4920func (x *DateTime) ProtoReflect() protoreflect.Message { 4921 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[45] 4922 if protoimpl.UnsafeEnabled && x != nil { 4923 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4924 if ms.LoadMessageInfo() == nil { 4925 ms.StoreMessageInfo(mi) 4926 } 4927 return ms 4928 } 4929 return mi.MessageOf(x) 4930} 4931 4932// Deprecated: Use DateTime.ProtoReflect.Descriptor instead. 4933func (*DateTime) Descriptor() ([]byte, []int) { 4934 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{45} 4935} 4936 4937func (x *DateTime) GetDate() *date.Date { 4938 if x != nil { 4939 return x.Date 4940 } 4941 return nil 4942} 4943 4944func (x *DateTime) GetDayOfWeek() dayofweek.DayOfWeek { 4945 if x != nil { 4946 return x.DayOfWeek 4947 } 4948 return dayofweek.DayOfWeek_DAY_OF_WEEK_UNSPECIFIED 4949} 4950 4951func (x *DateTime) GetTime() *timeofday.TimeOfDay { 4952 if x != nil { 4953 return x.Time 4954 } 4955 return nil 4956} 4957 4958func (x *DateTime) GetTimeZone() *DateTime_TimeZone { 4959 if x != nil { 4960 return x.TimeZone 4961 } 4962 return nil 4963} 4964 4965// The configuration that controls how the data will change. 4966type DeidentifyConfig struct { 4967 state protoimpl.MessageState 4968 sizeCache protoimpl.SizeCache 4969 unknownFields protoimpl.UnknownFields 4970 4971 // Types that are assignable to Transformation: 4972 // *DeidentifyConfig_InfoTypeTransformations 4973 // *DeidentifyConfig_RecordTransformations 4974 Transformation isDeidentifyConfig_Transformation `protobuf_oneof:"transformation"` 4975 // Mode for handling transformation errors. If left unspecified, the default 4976 // mode is `TransformationErrorHandling.ThrowError`. 4977 TransformationErrorHandling *TransformationErrorHandling `protobuf:"bytes,3,opt,name=transformation_error_handling,json=transformationErrorHandling,proto3" json:"transformation_error_handling,omitempty"` 4978} 4979 4980func (x *DeidentifyConfig) Reset() { 4981 *x = DeidentifyConfig{} 4982 if protoimpl.UnsafeEnabled { 4983 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[46] 4984 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4985 ms.StoreMessageInfo(mi) 4986 } 4987} 4988 4989func (x *DeidentifyConfig) String() string { 4990 return protoimpl.X.MessageStringOf(x) 4991} 4992 4993func (*DeidentifyConfig) ProtoMessage() {} 4994 4995func (x *DeidentifyConfig) ProtoReflect() protoreflect.Message { 4996 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[46] 4997 if protoimpl.UnsafeEnabled && x != nil { 4998 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4999 if ms.LoadMessageInfo() == nil { 5000 ms.StoreMessageInfo(mi) 5001 } 5002 return ms 5003 } 5004 return mi.MessageOf(x) 5005} 5006 5007// Deprecated: Use DeidentifyConfig.ProtoReflect.Descriptor instead. 5008func (*DeidentifyConfig) Descriptor() ([]byte, []int) { 5009 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{46} 5010} 5011 5012func (m *DeidentifyConfig) GetTransformation() isDeidentifyConfig_Transformation { 5013 if m != nil { 5014 return m.Transformation 5015 } 5016 return nil 5017} 5018 5019func (x *DeidentifyConfig) GetInfoTypeTransformations() *InfoTypeTransformations { 5020 if x, ok := x.GetTransformation().(*DeidentifyConfig_InfoTypeTransformations); ok { 5021 return x.InfoTypeTransformations 5022 } 5023 return nil 5024} 5025 5026func (x *DeidentifyConfig) GetRecordTransformations() *RecordTransformations { 5027 if x, ok := x.GetTransformation().(*DeidentifyConfig_RecordTransformations); ok { 5028 return x.RecordTransformations 5029 } 5030 return nil 5031} 5032 5033func (x *DeidentifyConfig) GetTransformationErrorHandling() *TransformationErrorHandling { 5034 if x != nil { 5035 return x.TransformationErrorHandling 5036 } 5037 return nil 5038} 5039 5040type isDeidentifyConfig_Transformation interface { 5041 isDeidentifyConfig_Transformation() 5042} 5043 5044type DeidentifyConfig_InfoTypeTransformations struct { 5045 // Treat the dataset as free-form text and apply the same free text 5046 // transformation everywhere. 5047 InfoTypeTransformations *InfoTypeTransformations `protobuf:"bytes,1,opt,name=info_type_transformations,json=infoTypeTransformations,proto3,oneof"` 5048} 5049 5050type DeidentifyConfig_RecordTransformations struct { 5051 // Treat the dataset as structured. Transformations can be applied to 5052 // specific locations within structured datasets, such as transforming 5053 // a column within a table. 5054 RecordTransformations *RecordTransformations `protobuf:"bytes,2,opt,name=record_transformations,json=recordTransformations,proto3,oneof"` 5055} 5056 5057func (*DeidentifyConfig_InfoTypeTransformations) isDeidentifyConfig_Transformation() {} 5058 5059func (*DeidentifyConfig_RecordTransformations) isDeidentifyConfig_Transformation() {} 5060 5061// How to handle transformation errors during de-identification. A 5062// transformation error occurs when the requested transformation is incompatible 5063// with the data. For example, trying to de-identify an IP address using a 5064// `DateShift` transformation would result in a transformation error, since date 5065// info cannot be extracted from an IP address. 5066// Information about any incompatible transformations, and how they were 5067// handled, is returned in the response as part of the 5068// `TransformationOverviews`. 5069type TransformationErrorHandling struct { 5070 state protoimpl.MessageState 5071 sizeCache protoimpl.SizeCache 5072 unknownFields protoimpl.UnknownFields 5073 5074 // How transformation errors should be handled. 5075 // 5076 // Types that are assignable to Mode: 5077 // *TransformationErrorHandling_ThrowError_ 5078 // *TransformationErrorHandling_LeaveUntransformed_ 5079 Mode isTransformationErrorHandling_Mode `protobuf_oneof:"mode"` 5080} 5081 5082func (x *TransformationErrorHandling) Reset() { 5083 *x = TransformationErrorHandling{} 5084 if protoimpl.UnsafeEnabled { 5085 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[47] 5086 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5087 ms.StoreMessageInfo(mi) 5088 } 5089} 5090 5091func (x *TransformationErrorHandling) String() string { 5092 return protoimpl.X.MessageStringOf(x) 5093} 5094 5095func (*TransformationErrorHandling) ProtoMessage() {} 5096 5097func (x *TransformationErrorHandling) ProtoReflect() protoreflect.Message { 5098 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[47] 5099 if protoimpl.UnsafeEnabled && x != nil { 5100 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5101 if ms.LoadMessageInfo() == nil { 5102 ms.StoreMessageInfo(mi) 5103 } 5104 return ms 5105 } 5106 return mi.MessageOf(x) 5107} 5108 5109// Deprecated: Use TransformationErrorHandling.ProtoReflect.Descriptor instead. 5110func (*TransformationErrorHandling) Descriptor() ([]byte, []int) { 5111 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{47} 5112} 5113 5114func (m *TransformationErrorHandling) GetMode() isTransformationErrorHandling_Mode { 5115 if m != nil { 5116 return m.Mode 5117 } 5118 return nil 5119} 5120 5121func (x *TransformationErrorHandling) GetThrowError() *TransformationErrorHandling_ThrowError { 5122 if x, ok := x.GetMode().(*TransformationErrorHandling_ThrowError_); ok { 5123 return x.ThrowError 5124 } 5125 return nil 5126} 5127 5128func (x *TransformationErrorHandling) GetLeaveUntransformed() *TransformationErrorHandling_LeaveUntransformed { 5129 if x, ok := x.GetMode().(*TransformationErrorHandling_LeaveUntransformed_); ok { 5130 return x.LeaveUntransformed 5131 } 5132 return nil 5133} 5134 5135type isTransformationErrorHandling_Mode interface { 5136 isTransformationErrorHandling_Mode() 5137} 5138 5139type TransformationErrorHandling_ThrowError_ struct { 5140 // Throw an error 5141 ThrowError *TransformationErrorHandling_ThrowError `protobuf:"bytes,1,opt,name=throw_error,json=throwError,proto3,oneof"` 5142} 5143 5144type TransformationErrorHandling_LeaveUntransformed_ struct { 5145 // Ignore errors 5146 LeaveUntransformed *TransformationErrorHandling_LeaveUntransformed `protobuf:"bytes,2,opt,name=leave_untransformed,json=leaveUntransformed,proto3,oneof"` 5147} 5148 5149func (*TransformationErrorHandling_ThrowError_) isTransformationErrorHandling_Mode() {} 5150 5151func (*TransformationErrorHandling_LeaveUntransformed_) isTransformationErrorHandling_Mode() {} 5152 5153// A rule for transforming a value. 5154type PrimitiveTransformation struct { 5155 state protoimpl.MessageState 5156 sizeCache protoimpl.SizeCache 5157 unknownFields protoimpl.UnknownFields 5158 5159 // Types that are assignable to Transformation: 5160 // *PrimitiveTransformation_ReplaceConfig 5161 // *PrimitiveTransformation_RedactConfig 5162 // *PrimitiveTransformation_CharacterMaskConfig 5163 // *PrimitiveTransformation_CryptoReplaceFfxFpeConfig 5164 // *PrimitiveTransformation_FixedSizeBucketingConfig 5165 // *PrimitiveTransformation_BucketingConfig 5166 // *PrimitiveTransformation_ReplaceWithInfoTypeConfig 5167 // *PrimitiveTransformation_TimePartConfig 5168 // *PrimitiveTransformation_CryptoHashConfig 5169 // *PrimitiveTransformation_DateShiftConfig 5170 // *PrimitiveTransformation_CryptoDeterministicConfig 5171 Transformation isPrimitiveTransformation_Transformation `protobuf_oneof:"transformation"` 5172} 5173 5174func (x *PrimitiveTransformation) Reset() { 5175 *x = PrimitiveTransformation{} 5176 if protoimpl.UnsafeEnabled { 5177 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[48] 5178 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5179 ms.StoreMessageInfo(mi) 5180 } 5181} 5182 5183func (x *PrimitiveTransformation) String() string { 5184 return protoimpl.X.MessageStringOf(x) 5185} 5186 5187func (*PrimitiveTransformation) ProtoMessage() {} 5188 5189func (x *PrimitiveTransformation) ProtoReflect() protoreflect.Message { 5190 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[48] 5191 if protoimpl.UnsafeEnabled && x != nil { 5192 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5193 if ms.LoadMessageInfo() == nil { 5194 ms.StoreMessageInfo(mi) 5195 } 5196 return ms 5197 } 5198 return mi.MessageOf(x) 5199} 5200 5201// Deprecated: Use PrimitiveTransformation.ProtoReflect.Descriptor instead. 5202func (*PrimitiveTransformation) Descriptor() ([]byte, []int) { 5203 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{48} 5204} 5205 5206func (m *PrimitiveTransformation) GetTransformation() isPrimitiveTransformation_Transformation { 5207 if m != nil { 5208 return m.Transformation 5209 } 5210 return nil 5211} 5212 5213func (x *PrimitiveTransformation) GetReplaceConfig() *ReplaceValueConfig { 5214 if x, ok := x.GetTransformation().(*PrimitiveTransformation_ReplaceConfig); ok { 5215 return x.ReplaceConfig 5216 } 5217 return nil 5218} 5219 5220func (x *PrimitiveTransformation) GetRedactConfig() *RedactConfig { 5221 if x, ok := x.GetTransformation().(*PrimitiveTransformation_RedactConfig); ok { 5222 return x.RedactConfig 5223 } 5224 return nil 5225} 5226 5227func (x *PrimitiveTransformation) GetCharacterMaskConfig() *CharacterMaskConfig { 5228 if x, ok := x.GetTransformation().(*PrimitiveTransformation_CharacterMaskConfig); ok { 5229 return x.CharacterMaskConfig 5230 } 5231 return nil 5232} 5233 5234func (x *PrimitiveTransformation) GetCryptoReplaceFfxFpeConfig() *CryptoReplaceFfxFpeConfig { 5235 if x, ok := x.GetTransformation().(*PrimitiveTransformation_CryptoReplaceFfxFpeConfig); ok { 5236 return x.CryptoReplaceFfxFpeConfig 5237 } 5238 return nil 5239} 5240 5241func (x *PrimitiveTransformation) GetFixedSizeBucketingConfig() *FixedSizeBucketingConfig { 5242 if x, ok := x.GetTransformation().(*PrimitiveTransformation_FixedSizeBucketingConfig); ok { 5243 return x.FixedSizeBucketingConfig 5244 } 5245 return nil 5246} 5247 5248func (x *PrimitiveTransformation) GetBucketingConfig() *BucketingConfig { 5249 if x, ok := x.GetTransformation().(*PrimitiveTransformation_BucketingConfig); ok { 5250 return x.BucketingConfig 5251 } 5252 return nil 5253} 5254 5255func (x *PrimitiveTransformation) GetReplaceWithInfoTypeConfig() *ReplaceWithInfoTypeConfig { 5256 if x, ok := x.GetTransformation().(*PrimitiveTransformation_ReplaceWithInfoTypeConfig); ok { 5257 return x.ReplaceWithInfoTypeConfig 5258 } 5259 return nil 5260} 5261 5262func (x *PrimitiveTransformation) GetTimePartConfig() *TimePartConfig { 5263 if x, ok := x.GetTransformation().(*PrimitiveTransformation_TimePartConfig); ok { 5264 return x.TimePartConfig 5265 } 5266 return nil 5267} 5268 5269func (x *PrimitiveTransformation) GetCryptoHashConfig() *CryptoHashConfig { 5270 if x, ok := x.GetTransformation().(*PrimitiveTransformation_CryptoHashConfig); ok { 5271 return x.CryptoHashConfig 5272 } 5273 return nil 5274} 5275 5276func (x *PrimitiveTransformation) GetDateShiftConfig() *DateShiftConfig { 5277 if x, ok := x.GetTransformation().(*PrimitiveTransformation_DateShiftConfig); ok { 5278 return x.DateShiftConfig 5279 } 5280 return nil 5281} 5282 5283func (x *PrimitiveTransformation) GetCryptoDeterministicConfig() *CryptoDeterministicConfig { 5284 if x, ok := x.GetTransformation().(*PrimitiveTransformation_CryptoDeterministicConfig); ok { 5285 return x.CryptoDeterministicConfig 5286 } 5287 return nil 5288} 5289 5290type isPrimitiveTransformation_Transformation interface { 5291 isPrimitiveTransformation_Transformation() 5292} 5293 5294type PrimitiveTransformation_ReplaceConfig struct { 5295 // Replace 5296 ReplaceConfig *ReplaceValueConfig `protobuf:"bytes,1,opt,name=replace_config,json=replaceConfig,proto3,oneof"` 5297} 5298 5299type PrimitiveTransformation_RedactConfig struct { 5300 // Redact 5301 RedactConfig *RedactConfig `protobuf:"bytes,2,opt,name=redact_config,json=redactConfig,proto3,oneof"` 5302} 5303 5304type PrimitiveTransformation_CharacterMaskConfig struct { 5305 // Mask 5306 CharacterMaskConfig *CharacterMaskConfig `protobuf:"bytes,3,opt,name=character_mask_config,json=characterMaskConfig,proto3,oneof"` 5307} 5308 5309type PrimitiveTransformation_CryptoReplaceFfxFpeConfig struct { 5310 // Ffx-Fpe 5311 CryptoReplaceFfxFpeConfig *CryptoReplaceFfxFpeConfig `protobuf:"bytes,4,opt,name=crypto_replace_ffx_fpe_config,json=cryptoReplaceFfxFpeConfig,proto3,oneof"` 5312} 5313 5314type PrimitiveTransformation_FixedSizeBucketingConfig struct { 5315 // Fixed size bucketing 5316 FixedSizeBucketingConfig *FixedSizeBucketingConfig `protobuf:"bytes,5,opt,name=fixed_size_bucketing_config,json=fixedSizeBucketingConfig,proto3,oneof"` 5317} 5318 5319type PrimitiveTransformation_BucketingConfig struct { 5320 // Bucketing 5321 BucketingConfig *BucketingConfig `protobuf:"bytes,6,opt,name=bucketing_config,json=bucketingConfig,proto3,oneof"` 5322} 5323 5324type PrimitiveTransformation_ReplaceWithInfoTypeConfig struct { 5325 // Replace with infotype 5326 ReplaceWithInfoTypeConfig *ReplaceWithInfoTypeConfig `protobuf:"bytes,7,opt,name=replace_with_info_type_config,json=replaceWithInfoTypeConfig,proto3,oneof"` 5327} 5328 5329type PrimitiveTransformation_TimePartConfig struct { 5330 // Time extraction 5331 TimePartConfig *TimePartConfig `protobuf:"bytes,8,opt,name=time_part_config,json=timePartConfig,proto3,oneof"` 5332} 5333 5334type PrimitiveTransformation_CryptoHashConfig struct { 5335 // Crypto 5336 CryptoHashConfig *CryptoHashConfig `protobuf:"bytes,9,opt,name=crypto_hash_config,json=cryptoHashConfig,proto3,oneof"` 5337} 5338 5339type PrimitiveTransformation_DateShiftConfig struct { 5340 // Date Shift 5341 DateShiftConfig *DateShiftConfig `protobuf:"bytes,11,opt,name=date_shift_config,json=dateShiftConfig,proto3,oneof"` 5342} 5343 5344type PrimitiveTransformation_CryptoDeterministicConfig struct { 5345 // Deterministic Crypto 5346 CryptoDeterministicConfig *CryptoDeterministicConfig `protobuf:"bytes,12,opt,name=crypto_deterministic_config,json=cryptoDeterministicConfig,proto3,oneof"` 5347} 5348 5349func (*PrimitiveTransformation_ReplaceConfig) isPrimitiveTransformation_Transformation() {} 5350 5351func (*PrimitiveTransformation_RedactConfig) isPrimitiveTransformation_Transformation() {} 5352 5353func (*PrimitiveTransformation_CharacterMaskConfig) isPrimitiveTransformation_Transformation() {} 5354 5355func (*PrimitiveTransformation_CryptoReplaceFfxFpeConfig) isPrimitiveTransformation_Transformation() {} 5356 5357func (*PrimitiveTransformation_FixedSizeBucketingConfig) isPrimitiveTransformation_Transformation() {} 5358 5359func (*PrimitiveTransformation_BucketingConfig) isPrimitiveTransformation_Transformation() {} 5360 5361func (*PrimitiveTransformation_ReplaceWithInfoTypeConfig) isPrimitiveTransformation_Transformation() {} 5362 5363func (*PrimitiveTransformation_TimePartConfig) isPrimitiveTransformation_Transformation() {} 5364 5365func (*PrimitiveTransformation_CryptoHashConfig) isPrimitiveTransformation_Transformation() {} 5366 5367func (*PrimitiveTransformation_DateShiftConfig) isPrimitiveTransformation_Transformation() {} 5368 5369func (*PrimitiveTransformation_CryptoDeterministicConfig) isPrimitiveTransformation_Transformation() {} 5370 5371// For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a 5372// portion of the value. 5373type TimePartConfig struct { 5374 state protoimpl.MessageState 5375 sizeCache protoimpl.SizeCache 5376 unknownFields protoimpl.UnknownFields 5377 5378 // The part of the time to keep. 5379 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"` 5380} 5381 5382func (x *TimePartConfig) Reset() { 5383 *x = TimePartConfig{} 5384 if protoimpl.UnsafeEnabled { 5385 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[49] 5386 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5387 ms.StoreMessageInfo(mi) 5388 } 5389} 5390 5391func (x *TimePartConfig) String() string { 5392 return protoimpl.X.MessageStringOf(x) 5393} 5394 5395func (*TimePartConfig) ProtoMessage() {} 5396 5397func (x *TimePartConfig) ProtoReflect() protoreflect.Message { 5398 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[49] 5399 if protoimpl.UnsafeEnabled && x != nil { 5400 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5401 if ms.LoadMessageInfo() == nil { 5402 ms.StoreMessageInfo(mi) 5403 } 5404 return ms 5405 } 5406 return mi.MessageOf(x) 5407} 5408 5409// Deprecated: Use TimePartConfig.ProtoReflect.Descriptor instead. 5410func (*TimePartConfig) Descriptor() ([]byte, []int) { 5411 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{49} 5412} 5413 5414func (x *TimePartConfig) GetPartToExtract() TimePartConfig_TimePart { 5415 if x != nil { 5416 return x.PartToExtract 5417 } 5418 return TimePartConfig_TIME_PART_UNSPECIFIED 5419} 5420 5421// Pseudonymization method that generates surrogates via cryptographic hashing. 5422// Uses SHA-256. 5423// The key size must be either 32 or 64 bytes. 5424// Outputs a base64 encoded representation of the hashed output 5425// (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). 5426// Currently, only string and integer values can be hashed. 5427// See https://cloud.google.com/dlp/docs/pseudonymization to learn more. 5428type CryptoHashConfig struct { 5429 state protoimpl.MessageState 5430 sizeCache protoimpl.SizeCache 5431 unknownFields protoimpl.UnknownFields 5432 5433 // The key used by the hash function. 5434 CryptoKey *CryptoKey `protobuf:"bytes,1,opt,name=crypto_key,json=cryptoKey,proto3" json:"crypto_key,omitempty"` 5435} 5436 5437func (x *CryptoHashConfig) Reset() { 5438 *x = CryptoHashConfig{} 5439 if protoimpl.UnsafeEnabled { 5440 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[50] 5441 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5442 ms.StoreMessageInfo(mi) 5443 } 5444} 5445 5446func (x *CryptoHashConfig) String() string { 5447 return protoimpl.X.MessageStringOf(x) 5448} 5449 5450func (*CryptoHashConfig) ProtoMessage() {} 5451 5452func (x *CryptoHashConfig) ProtoReflect() protoreflect.Message { 5453 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[50] 5454 if protoimpl.UnsafeEnabled && x != nil { 5455 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5456 if ms.LoadMessageInfo() == nil { 5457 ms.StoreMessageInfo(mi) 5458 } 5459 return ms 5460 } 5461 return mi.MessageOf(x) 5462} 5463 5464// Deprecated: Use CryptoHashConfig.ProtoReflect.Descriptor instead. 5465func (*CryptoHashConfig) Descriptor() ([]byte, []int) { 5466 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{50} 5467} 5468 5469func (x *CryptoHashConfig) GetCryptoKey() *CryptoKey { 5470 if x != nil { 5471 return x.CryptoKey 5472 } 5473 return nil 5474} 5475 5476// Pseudonymization method that generates deterministic encryption for the given 5477// input. Outputs a base64 encoded representation of the encrypted output. 5478// Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. 5479type CryptoDeterministicConfig struct { 5480 state protoimpl.MessageState 5481 sizeCache protoimpl.SizeCache 5482 unknownFields protoimpl.UnknownFields 5483 5484 // The key used by the encryption function. 5485 CryptoKey *CryptoKey `protobuf:"bytes,1,opt,name=crypto_key,json=cryptoKey,proto3" json:"crypto_key,omitempty"` 5486 // The custom info type to annotate the surrogate with. 5487 // This annotation will be applied to the surrogate by prefixing it with 5488 // the name of the custom info type followed by the number of 5489 // characters comprising the surrogate. The following scheme defines the 5490 // format: {info type name}({surrogate character count}):{surrogate} 5491 // 5492 // For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and 5493 // the surrogate is 'abc', the full replacement value 5494 // will be: 'MY_TOKEN_INFO_TYPE(3):abc' 5495 // 5496 // This annotation identifies the surrogate when inspecting content using the 5497 // custom info type 'Surrogate'. This facilitates reversal of the 5498 // surrogate when it occurs in free text. 5499 // 5500 // Note: For record transformations where the entire cell in a table is being 5501 // transformed, surrogates are not mandatory. Surrogates are used to denote 5502 // the location of the token and are necessary for re-identification in free 5503 // form text. 5504 // 5505 // In order for inspection to work properly, the name of this info type must 5506 // not occur naturally anywhere in your data; otherwise, inspection may either 5507 // 5508 // - reverse a surrogate that does not correspond to an actual identifier 5509 // - be unable to parse the surrogate and result in an error 5510 // 5511 // Therefore, choose your custom info type name carefully after considering 5512 // what your data looks like. One way to select a name that has a high chance 5513 // of yielding reliable detection is to include one or more unicode characters 5514 // that are highly improbable to exist in your data. 5515 // For example, assuming your data is entered from a regular ASCII keyboard, 5516 // the symbol with the hex code point 29DD might be used like so: 5517 // ⧝MY_TOKEN_TYPE. 5518 SurrogateInfoType *InfoType `protobuf:"bytes,2,opt,name=surrogate_info_type,json=surrogateInfoType,proto3" json:"surrogate_info_type,omitempty"` 5519 // A context may be used for higher security and maintaining 5520 // referential integrity such that the same identifier in two different 5521 // contexts will be given a distinct surrogate. The context is appended to 5522 // plaintext value being encrypted. On decryption the provided context is 5523 // validated against the value used during encryption. If a context was 5524 // provided during encryption, same context must be provided during decryption 5525 // as well. 5526 // 5527 // If the context is not set, plaintext would be used as is for encryption. 5528 // If the context is set but: 5529 // 5530 // 1. there is no record present when transforming a given value or 5531 // 2. the field is not present when transforming a given value, 5532 // 5533 // plaintext would be used as is for encryption. 5534 // 5535 // Note that case (1) is expected when an `InfoTypeTransformation` is 5536 // applied to both structured and non-structured `ContentItem`s. 5537 Context *FieldId `protobuf:"bytes,3,opt,name=context,proto3" json:"context,omitempty"` 5538} 5539 5540func (x *CryptoDeterministicConfig) Reset() { 5541 *x = CryptoDeterministicConfig{} 5542 if protoimpl.UnsafeEnabled { 5543 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[51] 5544 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5545 ms.StoreMessageInfo(mi) 5546 } 5547} 5548 5549func (x *CryptoDeterministicConfig) String() string { 5550 return protoimpl.X.MessageStringOf(x) 5551} 5552 5553func (*CryptoDeterministicConfig) ProtoMessage() {} 5554 5555func (x *CryptoDeterministicConfig) ProtoReflect() protoreflect.Message { 5556 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[51] 5557 if protoimpl.UnsafeEnabled && x != nil { 5558 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5559 if ms.LoadMessageInfo() == nil { 5560 ms.StoreMessageInfo(mi) 5561 } 5562 return ms 5563 } 5564 return mi.MessageOf(x) 5565} 5566 5567// Deprecated: Use CryptoDeterministicConfig.ProtoReflect.Descriptor instead. 5568func (*CryptoDeterministicConfig) Descriptor() ([]byte, []int) { 5569 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{51} 5570} 5571 5572func (x *CryptoDeterministicConfig) GetCryptoKey() *CryptoKey { 5573 if x != nil { 5574 return x.CryptoKey 5575 } 5576 return nil 5577} 5578 5579func (x *CryptoDeterministicConfig) GetSurrogateInfoType() *InfoType { 5580 if x != nil { 5581 return x.SurrogateInfoType 5582 } 5583 return nil 5584} 5585 5586func (x *CryptoDeterministicConfig) GetContext() *FieldId { 5587 if x != nil { 5588 return x.Context 5589 } 5590 return nil 5591} 5592 5593// Replace each input value with a given `Value`. 5594type ReplaceValueConfig struct { 5595 state protoimpl.MessageState 5596 sizeCache protoimpl.SizeCache 5597 unknownFields protoimpl.UnknownFields 5598 5599 // Value to replace it with. 5600 NewValue *Value `protobuf:"bytes,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` 5601} 5602 5603func (x *ReplaceValueConfig) Reset() { 5604 *x = ReplaceValueConfig{} 5605 if protoimpl.UnsafeEnabled { 5606 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[52] 5607 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5608 ms.StoreMessageInfo(mi) 5609 } 5610} 5611 5612func (x *ReplaceValueConfig) String() string { 5613 return protoimpl.X.MessageStringOf(x) 5614} 5615 5616func (*ReplaceValueConfig) ProtoMessage() {} 5617 5618func (x *ReplaceValueConfig) ProtoReflect() protoreflect.Message { 5619 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[52] 5620 if protoimpl.UnsafeEnabled && x != nil { 5621 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5622 if ms.LoadMessageInfo() == nil { 5623 ms.StoreMessageInfo(mi) 5624 } 5625 return ms 5626 } 5627 return mi.MessageOf(x) 5628} 5629 5630// Deprecated: Use ReplaceValueConfig.ProtoReflect.Descriptor instead. 5631func (*ReplaceValueConfig) Descriptor() ([]byte, []int) { 5632 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{52} 5633} 5634 5635func (x *ReplaceValueConfig) GetNewValue() *Value { 5636 if x != nil { 5637 return x.NewValue 5638 } 5639 return nil 5640} 5641 5642// Replace each matching finding with the name of the info_type. 5643type ReplaceWithInfoTypeConfig struct { 5644 state protoimpl.MessageState 5645 sizeCache protoimpl.SizeCache 5646 unknownFields protoimpl.UnknownFields 5647} 5648 5649func (x *ReplaceWithInfoTypeConfig) Reset() { 5650 *x = ReplaceWithInfoTypeConfig{} 5651 if protoimpl.UnsafeEnabled { 5652 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[53] 5653 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5654 ms.StoreMessageInfo(mi) 5655 } 5656} 5657 5658func (x *ReplaceWithInfoTypeConfig) String() string { 5659 return protoimpl.X.MessageStringOf(x) 5660} 5661 5662func (*ReplaceWithInfoTypeConfig) ProtoMessage() {} 5663 5664func (x *ReplaceWithInfoTypeConfig) ProtoReflect() protoreflect.Message { 5665 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[53] 5666 if protoimpl.UnsafeEnabled && x != nil { 5667 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5668 if ms.LoadMessageInfo() == nil { 5669 ms.StoreMessageInfo(mi) 5670 } 5671 return ms 5672 } 5673 return mi.MessageOf(x) 5674} 5675 5676// Deprecated: Use ReplaceWithInfoTypeConfig.ProtoReflect.Descriptor instead. 5677func (*ReplaceWithInfoTypeConfig) Descriptor() ([]byte, []int) { 5678 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{53} 5679} 5680 5681// Redact a given value. For example, if used with an `InfoTypeTransformation` 5682// transforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the 5683// output would be 'My phone number is '. 5684type RedactConfig struct { 5685 state protoimpl.MessageState 5686 sizeCache protoimpl.SizeCache 5687 unknownFields protoimpl.UnknownFields 5688} 5689 5690func (x *RedactConfig) Reset() { 5691 *x = RedactConfig{} 5692 if protoimpl.UnsafeEnabled { 5693 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[54] 5694 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5695 ms.StoreMessageInfo(mi) 5696 } 5697} 5698 5699func (x *RedactConfig) String() string { 5700 return protoimpl.X.MessageStringOf(x) 5701} 5702 5703func (*RedactConfig) ProtoMessage() {} 5704 5705func (x *RedactConfig) ProtoReflect() protoreflect.Message { 5706 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[54] 5707 if protoimpl.UnsafeEnabled && x != nil { 5708 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5709 if ms.LoadMessageInfo() == nil { 5710 ms.StoreMessageInfo(mi) 5711 } 5712 return ms 5713 } 5714 return mi.MessageOf(x) 5715} 5716 5717// Deprecated: Use RedactConfig.ProtoReflect.Descriptor instead. 5718func (*RedactConfig) Descriptor() ([]byte, []int) { 5719 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{54} 5720} 5721 5722// Characters to skip when doing deidentification of a value. These will be left 5723// alone and skipped. 5724type CharsToIgnore struct { 5725 state protoimpl.MessageState 5726 sizeCache protoimpl.SizeCache 5727 unknownFields protoimpl.UnknownFields 5728 5729 // Types that are assignable to Characters: 5730 // *CharsToIgnore_CharactersToSkip 5731 // *CharsToIgnore_CommonCharactersToIgnore 5732 Characters isCharsToIgnore_Characters `protobuf_oneof:"characters"` 5733} 5734 5735func (x *CharsToIgnore) Reset() { 5736 *x = CharsToIgnore{} 5737 if protoimpl.UnsafeEnabled { 5738 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[55] 5739 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5740 ms.StoreMessageInfo(mi) 5741 } 5742} 5743 5744func (x *CharsToIgnore) String() string { 5745 return protoimpl.X.MessageStringOf(x) 5746} 5747 5748func (*CharsToIgnore) ProtoMessage() {} 5749 5750func (x *CharsToIgnore) ProtoReflect() protoreflect.Message { 5751 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[55] 5752 if protoimpl.UnsafeEnabled && x != nil { 5753 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5754 if ms.LoadMessageInfo() == nil { 5755 ms.StoreMessageInfo(mi) 5756 } 5757 return ms 5758 } 5759 return mi.MessageOf(x) 5760} 5761 5762// Deprecated: Use CharsToIgnore.ProtoReflect.Descriptor instead. 5763func (*CharsToIgnore) Descriptor() ([]byte, []int) { 5764 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{55} 5765} 5766 5767func (m *CharsToIgnore) GetCharacters() isCharsToIgnore_Characters { 5768 if m != nil { 5769 return m.Characters 5770 } 5771 return nil 5772} 5773 5774func (x *CharsToIgnore) GetCharactersToSkip() string { 5775 if x, ok := x.GetCharacters().(*CharsToIgnore_CharactersToSkip); ok { 5776 return x.CharactersToSkip 5777 } 5778 return "" 5779} 5780 5781func (x *CharsToIgnore) GetCommonCharactersToIgnore() CharsToIgnore_CommonCharsToIgnore { 5782 if x, ok := x.GetCharacters().(*CharsToIgnore_CommonCharactersToIgnore); ok { 5783 return x.CommonCharactersToIgnore 5784 } 5785 return CharsToIgnore_COMMON_CHARS_TO_IGNORE_UNSPECIFIED 5786} 5787 5788type isCharsToIgnore_Characters interface { 5789 isCharsToIgnore_Characters() 5790} 5791 5792type CharsToIgnore_CharactersToSkip struct { 5793 // Characters to not transform when masking. 5794 CharactersToSkip string `protobuf:"bytes,1,opt,name=characters_to_skip,json=charactersToSkip,proto3,oneof"` 5795} 5796 5797type CharsToIgnore_CommonCharactersToIgnore struct { 5798 // Common characters to not transform when masking. Useful to avoid removing 5799 // punctuation. 5800 CommonCharactersToIgnore CharsToIgnore_CommonCharsToIgnore `protobuf:"varint,2,opt,name=common_characters_to_ignore,json=commonCharactersToIgnore,proto3,enum=google.privacy.dlp.v2.CharsToIgnore_CommonCharsToIgnore,oneof"` 5801} 5802 5803func (*CharsToIgnore_CharactersToSkip) isCharsToIgnore_Characters() {} 5804 5805func (*CharsToIgnore_CommonCharactersToIgnore) isCharsToIgnore_Characters() {} 5806 5807// Partially mask a string by replacing a given number of characters with a 5808// fixed character. Masking can start from the beginning or end of the string. 5809// This can be used on data of any type (numbers, longs, and so on) and when 5810// de-identifying structured data we'll attempt to preserve the original data's 5811// type. (This allows you to take a long like 123 and modify it to a string like 5812// **3. 5813type CharacterMaskConfig struct { 5814 state protoimpl.MessageState 5815 sizeCache protoimpl.SizeCache 5816 unknownFields protoimpl.UnknownFields 5817 5818 // Character to use to mask the sensitive values—for example, `*` for an 5819 // alphabetic string such as a name, or `0` for a numeric string such as ZIP 5820 // code or credit card number. This string must have a length of 1. If not 5821 // supplied, this value defaults to `*` for strings, and `0` for digits. 5822 MaskingCharacter string `protobuf:"bytes,1,opt,name=masking_character,json=maskingCharacter,proto3" json:"masking_character,omitempty"` 5823 // Number of characters to mask. If not set, all matching chars will be 5824 // masked. Skipped characters do not count towards this tally. 5825 NumberToMask int32 `protobuf:"varint,2,opt,name=number_to_mask,json=numberToMask,proto3" json:"number_to_mask,omitempty"` 5826 // Mask characters in reverse order. For example, if `masking_character` is 5827 // `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the 5828 // input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. 5829 // If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` 5830 // is `true`, then the string `12345` is masked as `12***`. 5831 ReverseOrder bool `protobuf:"varint,3,opt,name=reverse_order,json=reverseOrder,proto3" json:"reverse_order,omitempty"` 5832 // When masking a string, items in this list will be skipped when replacing 5833 // characters. For example, if the input string is `555-555-5555` and you 5834 // instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP 5835 // returns `***-**5-5555`. 5836 CharactersToIgnore []*CharsToIgnore `protobuf:"bytes,4,rep,name=characters_to_ignore,json=charactersToIgnore,proto3" json:"characters_to_ignore,omitempty"` 5837} 5838 5839func (x *CharacterMaskConfig) Reset() { 5840 *x = CharacterMaskConfig{} 5841 if protoimpl.UnsafeEnabled { 5842 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[56] 5843 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5844 ms.StoreMessageInfo(mi) 5845 } 5846} 5847 5848func (x *CharacterMaskConfig) String() string { 5849 return protoimpl.X.MessageStringOf(x) 5850} 5851 5852func (*CharacterMaskConfig) ProtoMessage() {} 5853 5854func (x *CharacterMaskConfig) ProtoReflect() protoreflect.Message { 5855 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[56] 5856 if protoimpl.UnsafeEnabled && x != nil { 5857 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5858 if ms.LoadMessageInfo() == nil { 5859 ms.StoreMessageInfo(mi) 5860 } 5861 return ms 5862 } 5863 return mi.MessageOf(x) 5864} 5865 5866// Deprecated: Use CharacterMaskConfig.ProtoReflect.Descriptor instead. 5867func (*CharacterMaskConfig) Descriptor() ([]byte, []int) { 5868 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{56} 5869} 5870 5871func (x *CharacterMaskConfig) GetMaskingCharacter() string { 5872 if x != nil { 5873 return x.MaskingCharacter 5874 } 5875 return "" 5876} 5877 5878func (x *CharacterMaskConfig) GetNumberToMask() int32 { 5879 if x != nil { 5880 return x.NumberToMask 5881 } 5882 return 0 5883} 5884 5885func (x *CharacterMaskConfig) GetReverseOrder() bool { 5886 if x != nil { 5887 return x.ReverseOrder 5888 } 5889 return false 5890} 5891 5892func (x *CharacterMaskConfig) GetCharactersToIgnore() []*CharsToIgnore { 5893 if x != nil { 5894 return x.CharactersToIgnore 5895 } 5896 return nil 5897} 5898 5899// Buckets values based on fixed size ranges. The 5900// Bucketing transformation can provide all of this functionality, 5901// but requires more configuration. This message is provided as a convenience to 5902// the user for simple bucketing strategies. 5903// 5904// The transformed value will be a hyphenated string of 5905// {lower_bound}-{upper_bound}, i.e if lower_bound = 10 and upper_bound = 20 5906// all values that are within this bucket will be replaced with "10-20". 5907// 5908// This can be used on data of type: double, long. 5909// 5910// If the bound Value type differs from the type of data 5911// being transformed, we will first attempt converting the type of the data to 5912// be transformed to match the type of the bound before comparing. 5913// 5914// See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. 5915type FixedSizeBucketingConfig struct { 5916 state protoimpl.MessageState 5917 sizeCache protoimpl.SizeCache 5918 unknownFields protoimpl.UnknownFields 5919 5920 // Required. Lower bound value of buckets. All values less than `lower_bound` 5921 // are grouped together into a single bucket; for example if `lower_bound` = 5922 // 10, then all values less than 10 are replaced with the value “-10”. 5923 LowerBound *Value `protobuf:"bytes,1,opt,name=lower_bound,json=lowerBound,proto3" json:"lower_bound,omitempty"` 5924 // Required. Upper bound value of buckets. All values greater than upper_bound 5925 // are grouped together into a single bucket; for example if `upper_bound` = 5926 // 89, then all values greater than 89 are replaced with the value “89+”. 5927 UpperBound *Value `protobuf:"bytes,2,opt,name=upper_bound,json=upperBound,proto3" json:"upper_bound,omitempty"` 5928 // Required. Size of each bucket (except for minimum and maximum buckets). So 5929 // if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the 5930 // following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 5931 // 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works. 5932 BucketSize float64 `protobuf:"fixed64,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"` 5933} 5934 5935func (x *FixedSizeBucketingConfig) Reset() { 5936 *x = FixedSizeBucketingConfig{} 5937 if protoimpl.UnsafeEnabled { 5938 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[57] 5939 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5940 ms.StoreMessageInfo(mi) 5941 } 5942} 5943 5944func (x *FixedSizeBucketingConfig) String() string { 5945 return protoimpl.X.MessageStringOf(x) 5946} 5947 5948func (*FixedSizeBucketingConfig) ProtoMessage() {} 5949 5950func (x *FixedSizeBucketingConfig) ProtoReflect() protoreflect.Message { 5951 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[57] 5952 if protoimpl.UnsafeEnabled && x != nil { 5953 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 5954 if ms.LoadMessageInfo() == nil { 5955 ms.StoreMessageInfo(mi) 5956 } 5957 return ms 5958 } 5959 return mi.MessageOf(x) 5960} 5961 5962// Deprecated: Use FixedSizeBucketingConfig.ProtoReflect.Descriptor instead. 5963func (*FixedSizeBucketingConfig) Descriptor() ([]byte, []int) { 5964 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{57} 5965} 5966 5967func (x *FixedSizeBucketingConfig) GetLowerBound() *Value { 5968 if x != nil { 5969 return x.LowerBound 5970 } 5971 return nil 5972} 5973 5974func (x *FixedSizeBucketingConfig) GetUpperBound() *Value { 5975 if x != nil { 5976 return x.UpperBound 5977 } 5978 return nil 5979} 5980 5981func (x *FixedSizeBucketingConfig) GetBucketSize() float64 { 5982 if x != nil { 5983 return x.BucketSize 5984 } 5985 return 0 5986} 5987 5988// Generalization function that buckets values based on ranges. The ranges and 5989// replacement values are dynamically provided by the user for custom behavior, 5990// such as 1-30 -> LOW 31-65 -> MEDIUM 66-100 -> HIGH 5991// This can be used on 5992// data of type: number, long, string, timestamp. 5993// If the bound `Value` type differs from the type of data being transformed, we 5994// will first attempt converting the type of the data to be transformed to match 5995// the type of the bound before comparing. 5996// See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. 5997type BucketingConfig struct { 5998 state protoimpl.MessageState 5999 sizeCache protoimpl.SizeCache 6000 unknownFields protoimpl.UnknownFields 6001 6002 // Set of buckets. Ranges must be non-overlapping. 6003 Buckets []*BucketingConfig_Bucket `protobuf:"bytes,1,rep,name=buckets,proto3" json:"buckets,omitempty"` 6004} 6005 6006func (x *BucketingConfig) Reset() { 6007 *x = BucketingConfig{} 6008 if protoimpl.UnsafeEnabled { 6009 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[58] 6010 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6011 ms.StoreMessageInfo(mi) 6012 } 6013} 6014 6015func (x *BucketingConfig) String() string { 6016 return protoimpl.X.MessageStringOf(x) 6017} 6018 6019func (*BucketingConfig) ProtoMessage() {} 6020 6021func (x *BucketingConfig) ProtoReflect() protoreflect.Message { 6022 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[58] 6023 if protoimpl.UnsafeEnabled && x != nil { 6024 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6025 if ms.LoadMessageInfo() == nil { 6026 ms.StoreMessageInfo(mi) 6027 } 6028 return ms 6029 } 6030 return mi.MessageOf(x) 6031} 6032 6033// Deprecated: Use BucketingConfig.ProtoReflect.Descriptor instead. 6034func (*BucketingConfig) Descriptor() ([]byte, []int) { 6035 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{58} 6036} 6037 6038func (x *BucketingConfig) GetBuckets() []*BucketingConfig_Bucket { 6039 if x != nil { 6040 return x.Buckets 6041 } 6042 return nil 6043} 6044 6045// Replaces an identifier with a surrogate using Format Preserving Encryption 6046// (FPE) with the FFX mode of operation; however when used in the 6047// `ReidentifyContent` API method, it serves the opposite function by reversing 6048// the surrogate back into the original identifier. The identifier must be 6049// encoded as ASCII. For a given crypto key and context, the same identifier 6050// will be replaced with the same surrogate. Identifiers must be at least two 6051// characters long. In the case that the identifier is the empty string, it will 6052// be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn 6053// more. 6054// 6055// Note: We recommend using CryptoDeterministicConfig for all use cases which 6056// do not require preserving the input alphabet space and size, plus warrant 6057// referential integrity. 6058type CryptoReplaceFfxFpeConfig struct { 6059 state protoimpl.MessageState 6060 sizeCache protoimpl.SizeCache 6061 unknownFields protoimpl.UnknownFields 6062 6063 // Required. The key used by the encryption algorithm. 6064 CryptoKey *CryptoKey `protobuf:"bytes,1,opt,name=crypto_key,json=cryptoKey,proto3" json:"crypto_key,omitempty"` 6065 // The 'tweak', a context may be used for higher security since the same 6066 // identifier in two different contexts won't be given the same surrogate. If 6067 // the context is not set, a default tweak will be used. 6068 // 6069 // If the context is set but: 6070 // 6071 // 1. there is no record present when transforming a given value or 6072 // 1. the field is not present when transforming a given value, 6073 // 6074 // a default tweak will be used. 6075 // 6076 // Note that case (1) is expected when an `InfoTypeTransformation` is 6077 // applied to both structured and non-structured `ContentItem`s. 6078 // Currently, the referenced field may be of value type integer or string. 6079 // 6080 // The tweak is constructed as a sequence of bytes in big endian byte order 6081 // such that: 6082 // 6083 // - a 64 bit integer is encoded followed by a single byte of value 1 6084 // - a string is encoded in UTF-8 format followed by a single byte of value 2 6085 Context *FieldId `protobuf:"bytes,2,opt,name=context,proto3" json:"context,omitempty"` 6086 // Choose an alphabet which the data being transformed will be made up of. 6087 // 6088 // Types that are assignable to Alphabet: 6089 // *CryptoReplaceFfxFpeConfig_CommonAlphabet 6090 // *CryptoReplaceFfxFpeConfig_CustomAlphabet 6091 // *CryptoReplaceFfxFpeConfig_Radix 6092 Alphabet isCryptoReplaceFfxFpeConfig_Alphabet `protobuf_oneof:"alphabet"` 6093 // The custom infoType to annotate the surrogate with. 6094 // This annotation will be applied to the surrogate by prefixing it with 6095 // the name of the custom infoType followed by the number of 6096 // characters comprising the surrogate. The following scheme defines the 6097 // format: info_type_name(surrogate_character_count):surrogate 6098 // 6099 // For example, if the name of custom infoType is 'MY_TOKEN_INFO_TYPE' and 6100 // the surrogate is 'abc', the full replacement value 6101 // will be: 'MY_TOKEN_INFO_TYPE(3):abc' 6102 // 6103 // This annotation identifies the surrogate when inspecting content using the 6104 // custom infoType 6105 // [`SurrogateType`](/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). 6106 // This facilitates reversal of the surrogate when it occurs in free text. 6107 // 6108 // In order for inspection to work properly, the name of this infoType must 6109 // not occur naturally anywhere in your data; otherwise, inspection may 6110 // find a surrogate that does not correspond to an actual identifier. 6111 // Therefore, choose your custom infoType name carefully after considering 6112 // what your data looks like. One way to select a name that has a high chance 6113 // of yielding reliable detection is to include one or more unicode characters 6114 // that are highly improbable to exist in your data. 6115 // For example, assuming your data is entered from a regular ASCII keyboard, 6116 // the symbol with the hex code point 29DD might be used like so: 6117 // ⧝MY_TOKEN_TYPE 6118 SurrogateInfoType *InfoType `protobuf:"bytes,8,opt,name=surrogate_info_type,json=surrogateInfoType,proto3" json:"surrogate_info_type,omitempty"` 6119} 6120 6121func (x *CryptoReplaceFfxFpeConfig) Reset() { 6122 *x = CryptoReplaceFfxFpeConfig{} 6123 if protoimpl.UnsafeEnabled { 6124 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[59] 6125 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6126 ms.StoreMessageInfo(mi) 6127 } 6128} 6129 6130func (x *CryptoReplaceFfxFpeConfig) String() string { 6131 return protoimpl.X.MessageStringOf(x) 6132} 6133 6134func (*CryptoReplaceFfxFpeConfig) ProtoMessage() {} 6135 6136func (x *CryptoReplaceFfxFpeConfig) ProtoReflect() protoreflect.Message { 6137 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[59] 6138 if protoimpl.UnsafeEnabled && x != nil { 6139 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6140 if ms.LoadMessageInfo() == nil { 6141 ms.StoreMessageInfo(mi) 6142 } 6143 return ms 6144 } 6145 return mi.MessageOf(x) 6146} 6147 6148// Deprecated: Use CryptoReplaceFfxFpeConfig.ProtoReflect.Descriptor instead. 6149func (*CryptoReplaceFfxFpeConfig) Descriptor() ([]byte, []int) { 6150 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{59} 6151} 6152 6153func (x *CryptoReplaceFfxFpeConfig) GetCryptoKey() *CryptoKey { 6154 if x != nil { 6155 return x.CryptoKey 6156 } 6157 return nil 6158} 6159 6160func (x *CryptoReplaceFfxFpeConfig) GetContext() *FieldId { 6161 if x != nil { 6162 return x.Context 6163 } 6164 return nil 6165} 6166 6167func (m *CryptoReplaceFfxFpeConfig) GetAlphabet() isCryptoReplaceFfxFpeConfig_Alphabet { 6168 if m != nil { 6169 return m.Alphabet 6170 } 6171 return nil 6172} 6173 6174func (x *CryptoReplaceFfxFpeConfig) GetCommonAlphabet() CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet { 6175 if x, ok := x.GetAlphabet().(*CryptoReplaceFfxFpeConfig_CommonAlphabet); ok { 6176 return x.CommonAlphabet 6177 } 6178 return CryptoReplaceFfxFpeConfig_FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED 6179} 6180 6181func (x *CryptoReplaceFfxFpeConfig) GetCustomAlphabet() string { 6182 if x, ok := x.GetAlphabet().(*CryptoReplaceFfxFpeConfig_CustomAlphabet); ok { 6183 return x.CustomAlphabet 6184 } 6185 return "" 6186} 6187 6188func (x *CryptoReplaceFfxFpeConfig) GetRadix() int32 { 6189 if x, ok := x.GetAlphabet().(*CryptoReplaceFfxFpeConfig_Radix); ok { 6190 return x.Radix 6191 } 6192 return 0 6193} 6194 6195func (x *CryptoReplaceFfxFpeConfig) GetSurrogateInfoType() *InfoType { 6196 if x != nil { 6197 return x.SurrogateInfoType 6198 } 6199 return nil 6200} 6201 6202type isCryptoReplaceFfxFpeConfig_Alphabet interface { 6203 isCryptoReplaceFfxFpeConfig_Alphabet() 6204} 6205 6206type CryptoReplaceFfxFpeConfig_CommonAlphabet struct { 6207 // Common alphabets. 6208 CommonAlphabet CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet `protobuf:"varint,4,opt,name=common_alphabet,json=commonAlphabet,proto3,enum=google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet,oneof"` 6209} 6210 6211type CryptoReplaceFfxFpeConfig_CustomAlphabet struct { 6212 // This is supported by mapping these to the alphanumeric characters 6213 // that the FFX mode natively supports. This happens before/after 6214 // encryption/decryption. 6215 // Each character listed must appear only once. 6216 // Number of characters must be in the range [2, 95]. 6217 // This must be encoded as ASCII. 6218 // The order of characters does not matter. 6219 CustomAlphabet string `protobuf:"bytes,5,opt,name=custom_alphabet,json=customAlphabet,proto3,oneof"` 6220} 6221 6222type CryptoReplaceFfxFpeConfig_Radix struct { 6223 // The native way to select the alphabet. Must be in the range [2, 95]. 6224 Radix int32 `protobuf:"varint,6,opt,name=radix,proto3,oneof"` 6225} 6226 6227func (*CryptoReplaceFfxFpeConfig_CommonAlphabet) isCryptoReplaceFfxFpeConfig_Alphabet() {} 6228 6229func (*CryptoReplaceFfxFpeConfig_CustomAlphabet) isCryptoReplaceFfxFpeConfig_Alphabet() {} 6230 6231func (*CryptoReplaceFfxFpeConfig_Radix) isCryptoReplaceFfxFpeConfig_Alphabet() {} 6232 6233// This is a data encryption key (DEK) (as opposed to 6234// a key encryption key (KEK) stored by KMS). 6235// When using KMS to wrap/unwrap DEKs, be sure to set an appropriate 6236// IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot 6237// unwrap the data crypto key. 6238type CryptoKey struct { 6239 state protoimpl.MessageState 6240 sizeCache protoimpl.SizeCache 6241 unknownFields protoimpl.UnknownFields 6242 6243 // Sources of crypto keys. 6244 // 6245 // Types that are assignable to Source: 6246 // *CryptoKey_Transient 6247 // *CryptoKey_Unwrapped 6248 // *CryptoKey_KmsWrapped 6249 Source isCryptoKey_Source `protobuf_oneof:"source"` 6250} 6251 6252func (x *CryptoKey) Reset() { 6253 *x = CryptoKey{} 6254 if protoimpl.UnsafeEnabled { 6255 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[60] 6256 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6257 ms.StoreMessageInfo(mi) 6258 } 6259} 6260 6261func (x *CryptoKey) String() string { 6262 return protoimpl.X.MessageStringOf(x) 6263} 6264 6265func (*CryptoKey) ProtoMessage() {} 6266 6267func (x *CryptoKey) ProtoReflect() protoreflect.Message { 6268 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[60] 6269 if protoimpl.UnsafeEnabled && x != nil { 6270 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6271 if ms.LoadMessageInfo() == nil { 6272 ms.StoreMessageInfo(mi) 6273 } 6274 return ms 6275 } 6276 return mi.MessageOf(x) 6277} 6278 6279// Deprecated: Use CryptoKey.ProtoReflect.Descriptor instead. 6280func (*CryptoKey) Descriptor() ([]byte, []int) { 6281 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{60} 6282} 6283 6284func (m *CryptoKey) GetSource() isCryptoKey_Source { 6285 if m != nil { 6286 return m.Source 6287 } 6288 return nil 6289} 6290 6291func (x *CryptoKey) GetTransient() *TransientCryptoKey { 6292 if x, ok := x.GetSource().(*CryptoKey_Transient); ok { 6293 return x.Transient 6294 } 6295 return nil 6296} 6297 6298func (x *CryptoKey) GetUnwrapped() *UnwrappedCryptoKey { 6299 if x, ok := x.GetSource().(*CryptoKey_Unwrapped); ok { 6300 return x.Unwrapped 6301 } 6302 return nil 6303} 6304 6305func (x *CryptoKey) GetKmsWrapped() *KmsWrappedCryptoKey { 6306 if x, ok := x.GetSource().(*CryptoKey_KmsWrapped); ok { 6307 return x.KmsWrapped 6308 } 6309 return nil 6310} 6311 6312type isCryptoKey_Source interface { 6313 isCryptoKey_Source() 6314} 6315 6316type CryptoKey_Transient struct { 6317 // Transient crypto key 6318 Transient *TransientCryptoKey `protobuf:"bytes,1,opt,name=transient,proto3,oneof"` 6319} 6320 6321type CryptoKey_Unwrapped struct { 6322 // Unwrapped crypto key 6323 Unwrapped *UnwrappedCryptoKey `protobuf:"bytes,2,opt,name=unwrapped,proto3,oneof"` 6324} 6325 6326type CryptoKey_KmsWrapped struct { 6327 // Kms wrapped key 6328 KmsWrapped *KmsWrappedCryptoKey `protobuf:"bytes,3,opt,name=kms_wrapped,json=kmsWrapped,proto3,oneof"` 6329} 6330 6331func (*CryptoKey_Transient) isCryptoKey_Source() {} 6332 6333func (*CryptoKey_Unwrapped) isCryptoKey_Source() {} 6334 6335func (*CryptoKey_KmsWrapped) isCryptoKey_Source() {} 6336 6337// Use this to have a random data crypto key generated. 6338// It will be discarded after the request finishes. 6339type TransientCryptoKey struct { 6340 state protoimpl.MessageState 6341 sizeCache protoimpl.SizeCache 6342 unknownFields protoimpl.UnknownFields 6343 6344 // Required. Name of the key. 6345 // This is an arbitrary string used to differentiate different keys. 6346 // A unique key is generated per name: two separate `TransientCryptoKey` 6347 // protos share the same generated key if their names are the same. 6348 // When the data crypto key is generated, this name is not used in any way 6349 // (repeating the api call will result in a different key being generated). 6350 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 6351} 6352 6353func (x *TransientCryptoKey) Reset() { 6354 *x = TransientCryptoKey{} 6355 if protoimpl.UnsafeEnabled { 6356 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[61] 6357 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6358 ms.StoreMessageInfo(mi) 6359 } 6360} 6361 6362func (x *TransientCryptoKey) String() string { 6363 return protoimpl.X.MessageStringOf(x) 6364} 6365 6366func (*TransientCryptoKey) ProtoMessage() {} 6367 6368func (x *TransientCryptoKey) ProtoReflect() protoreflect.Message { 6369 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[61] 6370 if protoimpl.UnsafeEnabled && x != nil { 6371 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6372 if ms.LoadMessageInfo() == nil { 6373 ms.StoreMessageInfo(mi) 6374 } 6375 return ms 6376 } 6377 return mi.MessageOf(x) 6378} 6379 6380// Deprecated: Use TransientCryptoKey.ProtoReflect.Descriptor instead. 6381func (*TransientCryptoKey) Descriptor() ([]byte, []int) { 6382 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{61} 6383} 6384 6385func (x *TransientCryptoKey) GetName() string { 6386 if x != nil { 6387 return x.Name 6388 } 6389 return "" 6390} 6391 6392// Using raw keys is prone to security risks due to accidentally 6393// leaking the key. Choose another type of key if possible. 6394type UnwrappedCryptoKey struct { 6395 state protoimpl.MessageState 6396 sizeCache protoimpl.SizeCache 6397 unknownFields protoimpl.UnknownFields 6398 6399 // Required. A 128/192/256 bit key. 6400 Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 6401} 6402 6403func (x *UnwrappedCryptoKey) Reset() { 6404 *x = UnwrappedCryptoKey{} 6405 if protoimpl.UnsafeEnabled { 6406 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[62] 6407 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6408 ms.StoreMessageInfo(mi) 6409 } 6410} 6411 6412func (x *UnwrappedCryptoKey) String() string { 6413 return protoimpl.X.MessageStringOf(x) 6414} 6415 6416func (*UnwrappedCryptoKey) ProtoMessage() {} 6417 6418func (x *UnwrappedCryptoKey) ProtoReflect() protoreflect.Message { 6419 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[62] 6420 if protoimpl.UnsafeEnabled && x != nil { 6421 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6422 if ms.LoadMessageInfo() == nil { 6423 ms.StoreMessageInfo(mi) 6424 } 6425 return ms 6426 } 6427 return mi.MessageOf(x) 6428} 6429 6430// Deprecated: Use UnwrappedCryptoKey.ProtoReflect.Descriptor instead. 6431func (*UnwrappedCryptoKey) Descriptor() ([]byte, []int) { 6432 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{62} 6433} 6434 6435func (x *UnwrappedCryptoKey) GetKey() []byte { 6436 if x != nil { 6437 return x.Key 6438 } 6439 return nil 6440} 6441 6442// Include to use an existing data crypto key wrapped by KMS. 6443// The wrapped key must be a 128/192/256 bit key. 6444// Authorization requires the following IAM permissions when sending a request 6445// to perform a crypto transformation using a kms-wrapped crypto key: 6446// dlp.kms.encrypt 6447type KmsWrappedCryptoKey struct { 6448 state protoimpl.MessageState 6449 sizeCache protoimpl.SizeCache 6450 unknownFields protoimpl.UnknownFields 6451 6452 // Required. The wrapped data crypto key. 6453 WrappedKey []byte `protobuf:"bytes,1,opt,name=wrapped_key,json=wrappedKey,proto3" json:"wrapped_key,omitempty"` 6454 // Required. The resource name of the KMS CryptoKey to use for unwrapping. 6455 CryptoKeyName string `protobuf:"bytes,2,opt,name=crypto_key_name,json=cryptoKeyName,proto3" json:"crypto_key_name,omitempty"` 6456} 6457 6458func (x *KmsWrappedCryptoKey) Reset() { 6459 *x = KmsWrappedCryptoKey{} 6460 if protoimpl.UnsafeEnabled { 6461 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[63] 6462 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6463 ms.StoreMessageInfo(mi) 6464 } 6465} 6466 6467func (x *KmsWrappedCryptoKey) String() string { 6468 return protoimpl.X.MessageStringOf(x) 6469} 6470 6471func (*KmsWrappedCryptoKey) ProtoMessage() {} 6472 6473func (x *KmsWrappedCryptoKey) ProtoReflect() protoreflect.Message { 6474 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[63] 6475 if protoimpl.UnsafeEnabled && x != nil { 6476 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6477 if ms.LoadMessageInfo() == nil { 6478 ms.StoreMessageInfo(mi) 6479 } 6480 return ms 6481 } 6482 return mi.MessageOf(x) 6483} 6484 6485// Deprecated: Use KmsWrappedCryptoKey.ProtoReflect.Descriptor instead. 6486func (*KmsWrappedCryptoKey) Descriptor() ([]byte, []int) { 6487 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{63} 6488} 6489 6490func (x *KmsWrappedCryptoKey) GetWrappedKey() []byte { 6491 if x != nil { 6492 return x.WrappedKey 6493 } 6494 return nil 6495} 6496 6497func (x *KmsWrappedCryptoKey) GetCryptoKeyName() string { 6498 if x != nil { 6499 return x.CryptoKeyName 6500 } 6501 return "" 6502} 6503 6504// Shifts dates by random number of days, with option to be consistent for the 6505// same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting 6506// to learn more. 6507type DateShiftConfig struct { 6508 state protoimpl.MessageState 6509 sizeCache protoimpl.SizeCache 6510 unknownFields protoimpl.UnknownFields 6511 6512 // Required. Range of shift in days. Actual shift will be selected at random 6513 // within this range (inclusive ends). Negative means shift to earlier in 6514 // time. Must not be more than 365250 days (1000 years) each direction. 6515 // 6516 // For example, 3 means shift date to at most 3 days into the future. 6517 UpperBoundDays int32 `protobuf:"varint,1,opt,name=upper_bound_days,json=upperBoundDays,proto3" json:"upper_bound_days,omitempty"` 6518 // Required. For example, -5 means shift date to at most 5 days back in the 6519 // past. 6520 LowerBoundDays int32 `protobuf:"varint,2,opt,name=lower_bound_days,json=lowerBoundDays,proto3" json:"lower_bound_days,omitempty"` 6521 // Points to the field that contains the context, for example, an entity id. 6522 // If set, must also set cryptoKey. If set, shift will be consistent for the 6523 // given context. 6524 Context *FieldId `protobuf:"bytes,3,opt,name=context,proto3" json:"context,omitempty"` 6525 // Method for calculating shift that takes context into consideration. If 6526 // set, must also set context. Can only be applied to table items. 6527 // 6528 // Types that are assignable to Method: 6529 // *DateShiftConfig_CryptoKey 6530 Method isDateShiftConfig_Method `protobuf_oneof:"method"` 6531} 6532 6533func (x *DateShiftConfig) Reset() { 6534 *x = DateShiftConfig{} 6535 if protoimpl.UnsafeEnabled { 6536 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[64] 6537 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6538 ms.StoreMessageInfo(mi) 6539 } 6540} 6541 6542func (x *DateShiftConfig) String() string { 6543 return protoimpl.X.MessageStringOf(x) 6544} 6545 6546func (*DateShiftConfig) ProtoMessage() {} 6547 6548func (x *DateShiftConfig) ProtoReflect() protoreflect.Message { 6549 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[64] 6550 if protoimpl.UnsafeEnabled && x != nil { 6551 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6552 if ms.LoadMessageInfo() == nil { 6553 ms.StoreMessageInfo(mi) 6554 } 6555 return ms 6556 } 6557 return mi.MessageOf(x) 6558} 6559 6560// Deprecated: Use DateShiftConfig.ProtoReflect.Descriptor instead. 6561func (*DateShiftConfig) Descriptor() ([]byte, []int) { 6562 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{64} 6563} 6564 6565func (x *DateShiftConfig) GetUpperBoundDays() int32 { 6566 if x != nil { 6567 return x.UpperBoundDays 6568 } 6569 return 0 6570} 6571 6572func (x *DateShiftConfig) GetLowerBoundDays() int32 { 6573 if x != nil { 6574 return x.LowerBoundDays 6575 } 6576 return 0 6577} 6578 6579func (x *DateShiftConfig) GetContext() *FieldId { 6580 if x != nil { 6581 return x.Context 6582 } 6583 return nil 6584} 6585 6586func (m *DateShiftConfig) GetMethod() isDateShiftConfig_Method { 6587 if m != nil { 6588 return m.Method 6589 } 6590 return nil 6591} 6592 6593func (x *DateShiftConfig) GetCryptoKey() *CryptoKey { 6594 if x, ok := x.GetMethod().(*DateShiftConfig_CryptoKey); ok { 6595 return x.CryptoKey 6596 } 6597 return nil 6598} 6599 6600type isDateShiftConfig_Method interface { 6601 isDateShiftConfig_Method() 6602} 6603 6604type DateShiftConfig_CryptoKey struct { 6605 // Causes the shift to be computed based on this key and the context. This 6606 // results in the same shift for the same context and crypto_key. If 6607 // set, must also set context. Can only be applied to table items. 6608 CryptoKey *CryptoKey `protobuf:"bytes,4,opt,name=crypto_key,json=cryptoKey,proto3,oneof"` 6609} 6610 6611func (*DateShiftConfig_CryptoKey) isDateShiftConfig_Method() {} 6612 6613// A type of transformation that will scan unstructured text and 6614// apply various `PrimitiveTransformation`s to each finding, where the 6615// transformation is applied to only values that were identified as a specific 6616// info_type. 6617type InfoTypeTransformations struct { 6618 state protoimpl.MessageState 6619 sizeCache protoimpl.SizeCache 6620 unknownFields protoimpl.UnknownFields 6621 6622 // Required. Transformation for each infoType. Cannot specify more than one 6623 // for a given infoType. 6624 Transformations []*InfoTypeTransformations_InfoTypeTransformation `protobuf:"bytes,1,rep,name=transformations,proto3" json:"transformations,omitempty"` 6625} 6626 6627func (x *InfoTypeTransformations) Reset() { 6628 *x = InfoTypeTransformations{} 6629 if protoimpl.UnsafeEnabled { 6630 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[65] 6631 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6632 ms.StoreMessageInfo(mi) 6633 } 6634} 6635 6636func (x *InfoTypeTransformations) String() string { 6637 return protoimpl.X.MessageStringOf(x) 6638} 6639 6640func (*InfoTypeTransformations) ProtoMessage() {} 6641 6642func (x *InfoTypeTransformations) ProtoReflect() protoreflect.Message { 6643 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[65] 6644 if protoimpl.UnsafeEnabled && x != nil { 6645 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6646 if ms.LoadMessageInfo() == nil { 6647 ms.StoreMessageInfo(mi) 6648 } 6649 return ms 6650 } 6651 return mi.MessageOf(x) 6652} 6653 6654// Deprecated: Use InfoTypeTransformations.ProtoReflect.Descriptor instead. 6655func (*InfoTypeTransformations) Descriptor() ([]byte, []int) { 6656 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{65} 6657} 6658 6659func (x *InfoTypeTransformations) GetTransformations() []*InfoTypeTransformations_InfoTypeTransformation { 6660 if x != nil { 6661 return x.Transformations 6662 } 6663 return nil 6664} 6665 6666// The transformation to apply to the field. 6667type FieldTransformation struct { 6668 state protoimpl.MessageState 6669 sizeCache protoimpl.SizeCache 6670 unknownFields protoimpl.UnknownFields 6671 6672 // Required. Input field(s) to apply the transformation to. 6673 Fields []*FieldId `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"` 6674 // Only apply the transformation if the condition evaluates to true for the 6675 // given `RecordCondition`. The conditions are allowed to reference fields 6676 // that are not used in the actual transformation. 6677 // 6678 // Example Use Cases: 6679 // 6680 // - Apply a different bucket transformation to an age column if the zip code 6681 // column for the same record is within a specific range. 6682 // - Redact a field if the date of birth field is greater than 85. 6683 Condition *RecordCondition `protobuf:"bytes,3,opt,name=condition,proto3" json:"condition,omitempty"` 6684 // Transformation to apply. [required] 6685 // 6686 // Types that are assignable to Transformation: 6687 // *FieldTransformation_PrimitiveTransformation 6688 // *FieldTransformation_InfoTypeTransformations 6689 Transformation isFieldTransformation_Transformation `protobuf_oneof:"transformation"` 6690} 6691 6692func (x *FieldTransformation) Reset() { 6693 *x = FieldTransformation{} 6694 if protoimpl.UnsafeEnabled { 6695 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[66] 6696 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6697 ms.StoreMessageInfo(mi) 6698 } 6699} 6700 6701func (x *FieldTransformation) String() string { 6702 return protoimpl.X.MessageStringOf(x) 6703} 6704 6705func (*FieldTransformation) ProtoMessage() {} 6706 6707func (x *FieldTransformation) ProtoReflect() protoreflect.Message { 6708 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[66] 6709 if protoimpl.UnsafeEnabled && x != nil { 6710 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6711 if ms.LoadMessageInfo() == nil { 6712 ms.StoreMessageInfo(mi) 6713 } 6714 return ms 6715 } 6716 return mi.MessageOf(x) 6717} 6718 6719// Deprecated: Use FieldTransformation.ProtoReflect.Descriptor instead. 6720func (*FieldTransformation) Descriptor() ([]byte, []int) { 6721 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{66} 6722} 6723 6724func (x *FieldTransformation) GetFields() []*FieldId { 6725 if x != nil { 6726 return x.Fields 6727 } 6728 return nil 6729} 6730 6731func (x *FieldTransformation) GetCondition() *RecordCondition { 6732 if x != nil { 6733 return x.Condition 6734 } 6735 return nil 6736} 6737 6738func (m *FieldTransformation) GetTransformation() isFieldTransformation_Transformation { 6739 if m != nil { 6740 return m.Transformation 6741 } 6742 return nil 6743} 6744 6745func (x *FieldTransformation) GetPrimitiveTransformation() *PrimitiveTransformation { 6746 if x, ok := x.GetTransformation().(*FieldTransformation_PrimitiveTransformation); ok { 6747 return x.PrimitiveTransformation 6748 } 6749 return nil 6750} 6751 6752func (x *FieldTransformation) GetInfoTypeTransformations() *InfoTypeTransformations { 6753 if x, ok := x.GetTransformation().(*FieldTransformation_InfoTypeTransformations); ok { 6754 return x.InfoTypeTransformations 6755 } 6756 return nil 6757} 6758 6759type isFieldTransformation_Transformation interface { 6760 isFieldTransformation_Transformation() 6761} 6762 6763type FieldTransformation_PrimitiveTransformation struct { 6764 // Apply the transformation to the entire field. 6765 PrimitiveTransformation *PrimitiveTransformation `protobuf:"bytes,4,opt,name=primitive_transformation,json=primitiveTransformation,proto3,oneof"` 6766} 6767 6768type FieldTransformation_InfoTypeTransformations struct { 6769 // Treat the contents of the field as free text, and selectively 6770 // transform content that matches an `InfoType`. 6771 InfoTypeTransformations *InfoTypeTransformations `protobuf:"bytes,5,opt,name=info_type_transformations,json=infoTypeTransformations,proto3,oneof"` 6772} 6773 6774func (*FieldTransformation_PrimitiveTransformation) isFieldTransformation_Transformation() {} 6775 6776func (*FieldTransformation_InfoTypeTransformations) isFieldTransformation_Transformation() {} 6777 6778// A type of transformation that is applied over structured data such as a 6779// table. 6780type RecordTransformations struct { 6781 state protoimpl.MessageState 6782 sizeCache protoimpl.SizeCache 6783 unknownFields protoimpl.UnknownFields 6784 6785 // Transform the record by applying various field transformations. 6786 FieldTransformations []*FieldTransformation `protobuf:"bytes,1,rep,name=field_transformations,json=fieldTransformations,proto3" json:"field_transformations,omitempty"` 6787 // Configuration defining which records get suppressed entirely. Records that 6788 // match any suppression rule are omitted from the output. 6789 RecordSuppressions []*RecordSuppression `protobuf:"bytes,2,rep,name=record_suppressions,json=recordSuppressions,proto3" json:"record_suppressions,omitempty"` 6790} 6791 6792func (x *RecordTransformations) Reset() { 6793 *x = RecordTransformations{} 6794 if protoimpl.UnsafeEnabled { 6795 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[67] 6796 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6797 ms.StoreMessageInfo(mi) 6798 } 6799} 6800 6801func (x *RecordTransformations) String() string { 6802 return protoimpl.X.MessageStringOf(x) 6803} 6804 6805func (*RecordTransformations) ProtoMessage() {} 6806 6807func (x *RecordTransformations) ProtoReflect() protoreflect.Message { 6808 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[67] 6809 if protoimpl.UnsafeEnabled && x != nil { 6810 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6811 if ms.LoadMessageInfo() == nil { 6812 ms.StoreMessageInfo(mi) 6813 } 6814 return ms 6815 } 6816 return mi.MessageOf(x) 6817} 6818 6819// Deprecated: Use RecordTransformations.ProtoReflect.Descriptor instead. 6820func (*RecordTransformations) Descriptor() ([]byte, []int) { 6821 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{67} 6822} 6823 6824func (x *RecordTransformations) GetFieldTransformations() []*FieldTransformation { 6825 if x != nil { 6826 return x.FieldTransformations 6827 } 6828 return nil 6829} 6830 6831func (x *RecordTransformations) GetRecordSuppressions() []*RecordSuppression { 6832 if x != nil { 6833 return x.RecordSuppressions 6834 } 6835 return nil 6836} 6837 6838// Configuration to suppress records whose suppression conditions evaluate to 6839// true. 6840type RecordSuppression struct { 6841 state protoimpl.MessageState 6842 sizeCache protoimpl.SizeCache 6843 unknownFields protoimpl.UnknownFields 6844 6845 // A condition that when it evaluates to true will result in the record being 6846 // evaluated to be suppressed from the transformed content. 6847 Condition *RecordCondition `protobuf:"bytes,1,opt,name=condition,proto3" json:"condition,omitempty"` 6848} 6849 6850func (x *RecordSuppression) Reset() { 6851 *x = RecordSuppression{} 6852 if protoimpl.UnsafeEnabled { 6853 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[68] 6854 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6855 ms.StoreMessageInfo(mi) 6856 } 6857} 6858 6859func (x *RecordSuppression) String() string { 6860 return protoimpl.X.MessageStringOf(x) 6861} 6862 6863func (*RecordSuppression) ProtoMessage() {} 6864 6865func (x *RecordSuppression) ProtoReflect() protoreflect.Message { 6866 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[68] 6867 if protoimpl.UnsafeEnabled && x != nil { 6868 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6869 if ms.LoadMessageInfo() == nil { 6870 ms.StoreMessageInfo(mi) 6871 } 6872 return ms 6873 } 6874 return mi.MessageOf(x) 6875} 6876 6877// Deprecated: Use RecordSuppression.ProtoReflect.Descriptor instead. 6878func (*RecordSuppression) Descriptor() ([]byte, []int) { 6879 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{68} 6880} 6881 6882func (x *RecordSuppression) GetCondition() *RecordCondition { 6883 if x != nil { 6884 return x.Condition 6885 } 6886 return nil 6887} 6888 6889// A condition for determining whether a transformation should be applied to 6890// a field. 6891type RecordCondition struct { 6892 state protoimpl.MessageState 6893 sizeCache protoimpl.SizeCache 6894 unknownFields protoimpl.UnknownFields 6895 6896 // An expression. 6897 Expressions *RecordCondition_Expressions `protobuf:"bytes,3,opt,name=expressions,proto3" json:"expressions,omitempty"` 6898} 6899 6900func (x *RecordCondition) Reset() { 6901 *x = RecordCondition{} 6902 if protoimpl.UnsafeEnabled { 6903 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[69] 6904 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6905 ms.StoreMessageInfo(mi) 6906 } 6907} 6908 6909func (x *RecordCondition) String() string { 6910 return protoimpl.X.MessageStringOf(x) 6911} 6912 6913func (*RecordCondition) ProtoMessage() {} 6914 6915func (x *RecordCondition) ProtoReflect() protoreflect.Message { 6916 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[69] 6917 if protoimpl.UnsafeEnabled && x != nil { 6918 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6919 if ms.LoadMessageInfo() == nil { 6920 ms.StoreMessageInfo(mi) 6921 } 6922 return ms 6923 } 6924 return mi.MessageOf(x) 6925} 6926 6927// Deprecated: Use RecordCondition.ProtoReflect.Descriptor instead. 6928func (*RecordCondition) Descriptor() ([]byte, []int) { 6929 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{69} 6930} 6931 6932func (x *RecordCondition) GetExpressions() *RecordCondition_Expressions { 6933 if x != nil { 6934 return x.Expressions 6935 } 6936 return nil 6937} 6938 6939// Overview of the modifications that occurred. 6940type TransformationOverview struct { 6941 state protoimpl.MessageState 6942 sizeCache protoimpl.SizeCache 6943 unknownFields protoimpl.UnknownFields 6944 6945 // Total size in bytes that were transformed in some way. 6946 TransformedBytes int64 `protobuf:"varint,2,opt,name=transformed_bytes,json=transformedBytes,proto3" json:"transformed_bytes,omitempty"` 6947 // Transformations applied to the dataset. 6948 TransformationSummaries []*TransformationSummary `protobuf:"bytes,3,rep,name=transformation_summaries,json=transformationSummaries,proto3" json:"transformation_summaries,omitempty"` 6949} 6950 6951func (x *TransformationOverview) Reset() { 6952 *x = TransformationOverview{} 6953 if protoimpl.UnsafeEnabled { 6954 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[70] 6955 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6956 ms.StoreMessageInfo(mi) 6957 } 6958} 6959 6960func (x *TransformationOverview) String() string { 6961 return protoimpl.X.MessageStringOf(x) 6962} 6963 6964func (*TransformationOverview) ProtoMessage() {} 6965 6966func (x *TransformationOverview) ProtoReflect() protoreflect.Message { 6967 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[70] 6968 if protoimpl.UnsafeEnabled && x != nil { 6969 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 6970 if ms.LoadMessageInfo() == nil { 6971 ms.StoreMessageInfo(mi) 6972 } 6973 return ms 6974 } 6975 return mi.MessageOf(x) 6976} 6977 6978// Deprecated: Use TransformationOverview.ProtoReflect.Descriptor instead. 6979func (*TransformationOverview) Descriptor() ([]byte, []int) { 6980 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{70} 6981} 6982 6983func (x *TransformationOverview) GetTransformedBytes() int64 { 6984 if x != nil { 6985 return x.TransformedBytes 6986 } 6987 return 0 6988} 6989 6990func (x *TransformationOverview) GetTransformationSummaries() []*TransformationSummary { 6991 if x != nil { 6992 return x.TransformationSummaries 6993 } 6994 return nil 6995} 6996 6997// Summary of a single transformation. 6998// Only one of 'transformation', 'field_transformation', or 'record_suppress' 6999// will be set. 7000type TransformationSummary struct { 7001 state protoimpl.MessageState 7002 sizeCache protoimpl.SizeCache 7003 unknownFields protoimpl.UnknownFields 7004 7005 // Set if the transformation was limited to a specific InfoType. 7006 InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"` 7007 // Set if the transformation was limited to a specific FieldId. 7008 Field *FieldId `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"` 7009 // The specific transformation these stats apply to. 7010 Transformation *PrimitiveTransformation `protobuf:"bytes,3,opt,name=transformation,proto3" json:"transformation,omitempty"` 7011 // The field transformation that was applied. 7012 // If multiple field transformations are requested for a single field, 7013 // this list will contain all of them; otherwise, only one is supplied. 7014 FieldTransformations []*FieldTransformation `protobuf:"bytes,5,rep,name=field_transformations,json=fieldTransformations,proto3" json:"field_transformations,omitempty"` 7015 // The specific suppression option these stats apply to. 7016 RecordSuppress *RecordSuppression `protobuf:"bytes,6,opt,name=record_suppress,json=recordSuppress,proto3" json:"record_suppress,omitempty"` 7017 // Collection of all transformations that took place or had an error. 7018 Results []*TransformationSummary_SummaryResult `protobuf:"bytes,4,rep,name=results,proto3" json:"results,omitempty"` 7019 // Total size in bytes that were transformed in some way. 7020 TransformedBytes int64 `protobuf:"varint,7,opt,name=transformed_bytes,json=transformedBytes,proto3" json:"transformed_bytes,omitempty"` 7021} 7022 7023func (x *TransformationSummary) Reset() { 7024 *x = TransformationSummary{} 7025 if protoimpl.UnsafeEnabled { 7026 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[71] 7027 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7028 ms.StoreMessageInfo(mi) 7029 } 7030} 7031 7032func (x *TransformationSummary) String() string { 7033 return protoimpl.X.MessageStringOf(x) 7034} 7035 7036func (*TransformationSummary) ProtoMessage() {} 7037 7038func (x *TransformationSummary) ProtoReflect() protoreflect.Message { 7039 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[71] 7040 if protoimpl.UnsafeEnabled && x != nil { 7041 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7042 if ms.LoadMessageInfo() == nil { 7043 ms.StoreMessageInfo(mi) 7044 } 7045 return ms 7046 } 7047 return mi.MessageOf(x) 7048} 7049 7050// Deprecated: Use TransformationSummary.ProtoReflect.Descriptor instead. 7051func (*TransformationSummary) Descriptor() ([]byte, []int) { 7052 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{71} 7053} 7054 7055func (x *TransformationSummary) GetInfoType() *InfoType { 7056 if x != nil { 7057 return x.InfoType 7058 } 7059 return nil 7060} 7061 7062func (x *TransformationSummary) GetField() *FieldId { 7063 if x != nil { 7064 return x.Field 7065 } 7066 return nil 7067} 7068 7069func (x *TransformationSummary) GetTransformation() *PrimitiveTransformation { 7070 if x != nil { 7071 return x.Transformation 7072 } 7073 return nil 7074} 7075 7076func (x *TransformationSummary) GetFieldTransformations() []*FieldTransformation { 7077 if x != nil { 7078 return x.FieldTransformations 7079 } 7080 return nil 7081} 7082 7083func (x *TransformationSummary) GetRecordSuppress() *RecordSuppression { 7084 if x != nil { 7085 return x.RecordSuppress 7086 } 7087 return nil 7088} 7089 7090func (x *TransformationSummary) GetResults() []*TransformationSummary_SummaryResult { 7091 if x != nil { 7092 return x.Results 7093 } 7094 return nil 7095} 7096 7097func (x *TransformationSummary) GetTransformedBytes() int64 { 7098 if x != nil { 7099 return x.TransformedBytes 7100 } 7101 return 0 7102} 7103 7104// Schedule for triggeredJobs. 7105type Schedule struct { 7106 state protoimpl.MessageState 7107 sizeCache protoimpl.SizeCache 7108 unknownFields protoimpl.UnknownFields 7109 7110 // Types that are assignable to Option: 7111 // *Schedule_RecurrencePeriodDuration 7112 Option isSchedule_Option `protobuf_oneof:"option"` 7113} 7114 7115func (x *Schedule) Reset() { 7116 *x = Schedule{} 7117 if protoimpl.UnsafeEnabled { 7118 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[72] 7119 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7120 ms.StoreMessageInfo(mi) 7121 } 7122} 7123 7124func (x *Schedule) String() string { 7125 return protoimpl.X.MessageStringOf(x) 7126} 7127 7128func (*Schedule) ProtoMessage() {} 7129 7130func (x *Schedule) ProtoReflect() protoreflect.Message { 7131 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[72] 7132 if protoimpl.UnsafeEnabled && x != nil { 7133 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7134 if ms.LoadMessageInfo() == nil { 7135 ms.StoreMessageInfo(mi) 7136 } 7137 return ms 7138 } 7139 return mi.MessageOf(x) 7140} 7141 7142// Deprecated: Use Schedule.ProtoReflect.Descriptor instead. 7143func (*Schedule) Descriptor() ([]byte, []int) { 7144 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{72} 7145} 7146 7147func (m *Schedule) GetOption() isSchedule_Option { 7148 if m != nil { 7149 return m.Option 7150 } 7151 return nil 7152} 7153 7154func (x *Schedule) GetRecurrencePeriodDuration() *duration.Duration { 7155 if x, ok := x.GetOption().(*Schedule_RecurrencePeriodDuration); ok { 7156 return x.RecurrencePeriodDuration 7157 } 7158 return nil 7159} 7160 7161type isSchedule_Option interface { 7162 isSchedule_Option() 7163} 7164 7165type Schedule_RecurrencePeriodDuration struct { 7166 // With this option a job is started a regular periodic basis. For 7167 // example: every day (86400 seconds). 7168 // 7169 // A scheduled start time will be skipped if the previous 7170 // execution has not ended when its scheduled time occurs. 7171 // 7172 // This value must be set to a time duration greater than or equal 7173 // to 1 day and can be no longer than 60 days. 7174 RecurrencePeriodDuration *duration.Duration `protobuf:"bytes,1,opt,name=recurrence_period_duration,json=recurrencePeriodDuration,proto3,oneof"` 7175} 7176 7177func (*Schedule_RecurrencePeriodDuration) isSchedule_Option() {} 7178 7179// Job trigger option for hybrid jobs. Jobs must be manually created 7180// and finished. 7181type Manual struct { 7182 state protoimpl.MessageState 7183 sizeCache protoimpl.SizeCache 7184 unknownFields protoimpl.UnknownFields 7185} 7186 7187func (x *Manual) Reset() { 7188 *x = Manual{} 7189 if protoimpl.UnsafeEnabled { 7190 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[73] 7191 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7192 ms.StoreMessageInfo(mi) 7193 } 7194} 7195 7196func (x *Manual) String() string { 7197 return protoimpl.X.MessageStringOf(x) 7198} 7199 7200func (*Manual) ProtoMessage() {} 7201 7202func (x *Manual) ProtoReflect() protoreflect.Message { 7203 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[73] 7204 if protoimpl.UnsafeEnabled && x != nil { 7205 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7206 if ms.LoadMessageInfo() == nil { 7207 ms.StoreMessageInfo(mi) 7208 } 7209 return ms 7210 } 7211 return mi.MessageOf(x) 7212} 7213 7214// Deprecated: Use Manual.ProtoReflect.Descriptor instead. 7215func (*Manual) Descriptor() ([]byte, []int) { 7216 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{73} 7217} 7218 7219// The inspectTemplate contains a configuration (set of types of sensitive data 7220// to be detected) to be used anywhere you otherwise would normally specify 7221// InspectConfig. See https://cloud.google.com/dlp/docs/concepts-templates 7222// to learn more. 7223type InspectTemplate struct { 7224 state protoimpl.MessageState 7225 sizeCache protoimpl.SizeCache 7226 unknownFields protoimpl.UnknownFields 7227 7228 // Output only. The template name. 7229 // 7230 // The template will have one of the following formats: 7231 // `projects/PROJECT_ID/inspectTemplates/TEMPLATE_ID` OR 7232 // `organizations/ORGANIZATION_ID/inspectTemplates/TEMPLATE_ID`; 7233 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 7234 // Display name (max 256 chars). 7235 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 7236 // Short description (max 256 chars). 7237 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 7238 // Output only. The creation timestamp of an inspectTemplate. 7239 CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 7240 // Output only. The last update timestamp of an inspectTemplate. 7241 UpdateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 7242 // The core content of the template. Configuration of the scanning process. 7243 InspectConfig *InspectConfig `protobuf:"bytes,6,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"` 7244} 7245 7246func (x *InspectTemplate) Reset() { 7247 *x = InspectTemplate{} 7248 if protoimpl.UnsafeEnabled { 7249 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[74] 7250 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7251 ms.StoreMessageInfo(mi) 7252 } 7253} 7254 7255func (x *InspectTemplate) String() string { 7256 return protoimpl.X.MessageStringOf(x) 7257} 7258 7259func (*InspectTemplate) ProtoMessage() {} 7260 7261func (x *InspectTemplate) ProtoReflect() protoreflect.Message { 7262 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[74] 7263 if protoimpl.UnsafeEnabled && x != nil { 7264 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7265 if ms.LoadMessageInfo() == nil { 7266 ms.StoreMessageInfo(mi) 7267 } 7268 return ms 7269 } 7270 return mi.MessageOf(x) 7271} 7272 7273// Deprecated: Use InspectTemplate.ProtoReflect.Descriptor instead. 7274func (*InspectTemplate) Descriptor() ([]byte, []int) { 7275 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{74} 7276} 7277 7278func (x *InspectTemplate) GetName() string { 7279 if x != nil { 7280 return x.Name 7281 } 7282 return "" 7283} 7284 7285func (x *InspectTemplate) GetDisplayName() string { 7286 if x != nil { 7287 return x.DisplayName 7288 } 7289 return "" 7290} 7291 7292func (x *InspectTemplate) GetDescription() string { 7293 if x != nil { 7294 return x.Description 7295 } 7296 return "" 7297} 7298 7299func (x *InspectTemplate) GetCreateTime() *timestamp.Timestamp { 7300 if x != nil { 7301 return x.CreateTime 7302 } 7303 return nil 7304} 7305 7306func (x *InspectTemplate) GetUpdateTime() *timestamp.Timestamp { 7307 if x != nil { 7308 return x.UpdateTime 7309 } 7310 return nil 7311} 7312 7313func (x *InspectTemplate) GetInspectConfig() *InspectConfig { 7314 if x != nil { 7315 return x.InspectConfig 7316 } 7317 return nil 7318} 7319 7320// DeidentifyTemplates contains instructions on how to de-identify content. 7321// See https://cloud.google.com/dlp/docs/concepts-templates to learn more. 7322type DeidentifyTemplate struct { 7323 state protoimpl.MessageState 7324 sizeCache protoimpl.SizeCache 7325 unknownFields protoimpl.UnknownFields 7326 7327 // Output only. The template name. 7328 // 7329 // The template will have one of the following formats: 7330 // `projects/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID` OR 7331 // `organizations/ORGANIZATION_ID/deidentifyTemplates/TEMPLATE_ID` 7332 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 7333 // Display name (max 256 chars). 7334 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 7335 // Short description (max 256 chars). 7336 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 7337 // Output only. The creation timestamp of an inspectTemplate. 7338 CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 7339 // Output only. The last update timestamp of an inspectTemplate. 7340 UpdateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 7341 // ///////////// // The core content of the template // /////////////// 7342 DeidentifyConfig *DeidentifyConfig `protobuf:"bytes,6,opt,name=deidentify_config,json=deidentifyConfig,proto3" json:"deidentify_config,omitempty"` 7343} 7344 7345func (x *DeidentifyTemplate) Reset() { 7346 *x = DeidentifyTemplate{} 7347 if protoimpl.UnsafeEnabled { 7348 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[75] 7349 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7350 ms.StoreMessageInfo(mi) 7351 } 7352} 7353 7354func (x *DeidentifyTemplate) String() string { 7355 return protoimpl.X.MessageStringOf(x) 7356} 7357 7358func (*DeidentifyTemplate) ProtoMessage() {} 7359 7360func (x *DeidentifyTemplate) ProtoReflect() protoreflect.Message { 7361 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[75] 7362 if protoimpl.UnsafeEnabled && x != nil { 7363 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7364 if ms.LoadMessageInfo() == nil { 7365 ms.StoreMessageInfo(mi) 7366 } 7367 return ms 7368 } 7369 return mi.MessageOf(x) 7370} 7371 7372// Deprecated: Use DeidentifyTemplate.ProtoReflect.Descriptor instead. 7373func (*DeidentifyTemplate) Descriptor() ([]byte, []int) { 7374 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{75} 7375} 7376 7377func (x *DeidentifyTemplate) GetName() string { 7378 if x != nil { 7379 return x.Name 7380 } 7381 return "" 7382} 7383 7384func (x *DeidentifyTemplate) GetDisplayName() string { 7385 if x != nil { 7386 return x.DisplayName 7387 } 7388 return "" 7389} 7390 7391func (x *DeidentifyTemplate) GetDescription() string { 7392 if x != nil { 7393 return x.Description 7394 } 7395 return "" 7396} 7397 7398func (x *DeidentifyTemplate) GetCreateTime() *timestamp.Timestamp { 7399 if x != nil { 7400 return x.CreateTime 7401 } 7402 return nil 7403} 7404 7405func (x *DeidentifyTemplate) GetUpdateTime() *timestamp.Timestamp { 7406 if x != nil { 7407 return x.UpdateTime 7408 } 7409 return nil 7410} 7411 7412func (x *DeidentifyTemplate) GetDeidentifyConfig() *DeidentifyConfig { 7413 if x != nil { 7414 return x.DeidentifyConfig 7415 } 7416 return nil 7417} 7418 7419// Details information about an error encountered during job execution or 7420// the results of an unsuccessful activation of the JobTrigger. 7421type Error struct { 7422 state protoimpl.MessageState 7423 sizeCache protoimpl.SizeCache 7424 unknownFields protoimpl.UnknownFields 7425 7426 // Detailed error codes and messages. 7427 Details *status.Status `protobuf:"bytes,1,opt,name=details,proto3" json:"details,omitempty"` 7428 // The times the error occurred. 7429 Timestamps []*timestamp.Timestamp `protobuf:"bytes,2,rep,name=timestamps,proto3" json:"timestamps,omitempty"` 7430} 7431 7432func (x *Error) Reset() { 7433 *x = Error{} 7434 if protoimpl.UnsafeEnabled { 7435 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[76] 7436 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7437 ms.StoreMessageInfo(mi) 7438 } 7439} 7440 7441func (x *Error) String() string { 7442 return protoimpl.X.MessageStringOf(x) 7443} 7444 7445func (*Error) ProtoMessage() {} 7446 7447func (x *Error) ProtoReflect() protoreflect.Message { 7448 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[76] 7449 if protoimpl.UnsafeEnabled && x != nil { 7450 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7451 if ms.LoadMessageInfo() == nil { 7452 ms.StoreMessageInfo(mi) 7453 } 7454 return ms 7455 } 7456 return mi.MessageOf(x) 7457} 7458 7459// Deprecated: Use Error.ProtoReflect.Descriptor instead. 7460func (*Error) Descriptor() ([]byte, []int) { 7461 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{76} 7462} 7463 7464func (x *Error) GetDetails() *status.Status { 7465 if x != nil { 7466 return x.Details 7467 } 7468 return nil 7469} 7470 7471func (x *Error) GetTimestamps() []*timestamp.Timestamp { 7472 if x != nil { 7473 return x.Timestamps 7474 } 7475 return nil 7476} 7477 7478// Contains a configuration to make dlp api calls on a repeating basis. 7479// See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more. 7480type JobTrigger struct { 7481 state protoimpl.MessageState 7482 sizeCache protoimpl.SizeCache 7483 unknownFields protoimpl.UnknownFields 7484 7485 // Unique resource name for the triggeredJob, assigned by the service when the 7486 // triggeredJob is created, for example 7487 // `projects/dlp-test-project/jobTriggers/53234423`. 7488 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 7489 // Display name (max 100 chars) 7490 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 7491 // User provided description (max 256 chars) 7492 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 7493 // The configuration details for the specific type of job to run. 7494 // 7495 // Types that are assignable to Job: 7496 // *JobTrigger_InspectJob 7497 Job isJobTrigger_Job `protobuf_oneof:"job"` 7498 // A list of triggers which will be OR'ed together. Only one in the list 7499 // needs to trigger for a job to be started. The list may contain only 7500 // a single Schedule trigger and must have at least one object. 7501 Triggers []*JobTrigger_Trigger `protobuf:"bytes,5,rep,name=triggers,proto3" json:"triggers,omitempty"` 7502 // Output only. A stream of errors encountered when the trigger was activated. Repeated 7503 // errors may result in the JobTrigger automatically being paused. 7504 // Will return the last 100 errors. Whenever the JobTrigger is modified 7505 // this list will be cleared. 7506 Errors []*Error `protobuf:"bytes,6,rep,name=errors,proto3" json:"errors,omitempty"` 7507 // Output only. The creation timestamp of a triggeredJob. 7508 CreateTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 7509 // Output only. The last update timestamp of a triggeredJob. 7510 UpdateTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 7511 // Output only. The timestamp of the last time this trigger executed. 7512 LastRunTime *timestamp.Timestamp `protobuf:"bytes,9,opt,name=last_run_time,json=lastRunTime,proto3" json:"last_run_time,omitempty"` 7513 // Required. A status for this trigger. 7514 Status JobTrigger_Status `protobuf:"varint,10,opt,name=status,proto3,enum=google.privacy.dlp.v2.JobTrigger_Status" json:"status,omitempty"` 7515} 7516 7517func (x *JobTrigger) Reset() { 7518 *x = JobTrigger{} 7519 if protoimpl.UnsafeEnabled { 7520 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[77] 7521 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7522 ms.StoreMessageInfo(mi) 7523 } 7524} 7525 7526func (x *JobTrigger) String() string { 7527 return protoimpl.X.MessageStringOf(x) 7528} 7529 7530func (*JobTrigger) ProtoMessage() {} 7531 7532func (x *JobTrigger) ProtoReflect() protoreflect.Message { 7533 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[77] 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 JobTrigger.ProtoReflect.Descriptor instead. 7545func (*JobTrigger) Descriptor() ([]byte, []int) { 7546 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{77} 7547} 7548 7549func (x *JobTrigger) GetName() string { 7550 if x != nil { 7551 return x.Name 7552 } 7553 return "" 7554} 7555 7556func (x *JobTrigger) GetDisplayName() string { 7557 if x != nil { 7558 return x.DisplayName 7559 } 7560 return "" 7561} 7562 7563func (x *JobTrigger) GetDescription() string { 7564 if x != nil { 7565 return x.Description 7566 } 7567 return "" 7568} 7569 7570func (m *JobTrigger) GetJob() isJobTrigger_Job { 7571 if m != nil { 7572 return m.Job 7573 } 7574 return nil 7575} 7576 7577func (x *JobTrigger) GetInspectJob() *InspectJobConfig { 7578 if x, ok := x.GetJob().(*JobTrigger_InspectJob); ok { 7579 return x.InspectJob 7580 } 7581 return nil 7582} 7583 7584func (x *JobTrigger) GetTriggers() []*JobTrigger_Trigger { 7585 if x != nil { 7586 return x.Triggers 7587 } 7588 return nil 7589} 7590 7591func (x *JobTrigger) GetErrors() []*Error { 7592 if x != nil { 7593 return x.Errors 7594 } 7595 return nil 7596} 7597 7598func (x *JobTrigger) GetCreateTime() *timestamp.Timestamp { 7599 if x != nil { 7600 return x.CreateTime 7601 } 7602 return nil 7603} 7604 7605func (x *JobTrigger) GetUpdateTime() *timestamp.Timestamp { 7606 if x != nil { 7607 return x.UpdateTime 7608 } 7609 return nil 7610} 7611 7612func (x *JobTrigger) GetLastRunTime() *timestamp.Timestamp { 7613 if x != nil { 7614 return x.LastRunTime 7615 } 7616 return nil 7617} 7618 7619func (x *JobTrigger) GetStatus() JobTrigger_Status { 7620 if x != nil { 7621 return x.Status 7622 } 7623 return JobTrigger_STATUS_UNSPECIFIED 7624} 7625 7626type isJobTrigger_Job interface { 7627 isJobTrigger_Job() 7628} 7629 7630type JobTrigger_InspectJob struct { 7631 // For inspect jobs, a snapshot of the configuration. 7632 InspectJob *InspectJobConfig `protobuf:"bytes,4,opt,name=inspect_job,json=inspectJob,proto3,oneof"` 7633} 7634 7635func (*JobTrigger_InspectJob) isJobTrigger_Job() {} 7636 7637// A task to execute on the completion of a job. 7638// See https://cloud.google.com/dlp/docs/concepts-actions to learn more. 7639type Action struct { 7640 state protoimpl.MessageState 7641 sizeCache protoimpl.SizeCache 7642 unknownFields protoimpl.UnknownFields 7643 7644 // Types that are assignable to Action: 7645 // *Action_SaveFindings_ 7646 // *Action_PubSub 7647 // *Action_PublishSummaryToCscc_ 7648 // *Action_PublishFindingsToCloudDataCatalog_ 7649 // *Action_JobNotificationEmails_ 7650 // *Action_PublishToStackdriver_ 7651 Action isAction_Action `protobuf_oneof:"action"` 7652} 7653 7654func (x *Action) Reset() { 7655 *x = Action{} 7656 if protoimpl.UnsafeEnabled { 7657 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[78] 7658 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7659 ms.StoreMessageInfo(mi) 7660 } 7661} 7662 7663func (x *Action) String() string { 7664 return protoimpl.X.MessageStringOf(x) 7665} 7666 7667func (*Action) ProtoMessage() {} 7668 7669func (x *Action) ProtoReflect() protoreflect.Message { 7670 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[78] 7671 if protoimpl.UnsafeEnabled && x != nil { 7672 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7673 if ms.LoadMessageInfo() == nil { 7674 ms.StoreMessageInfo(mi) 7675 } 7676 return ms 7677 } 7678 return mi.MessageOf(x) 7679} 7680 7681// Deprecated: Use Action.ProtoReflect.Descriptor instead. 7682func (*Action) Descriptor() ([]byte, []int) { 7683 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{78} 7684} 7685 7686func (m *Action) GetAction() isAction_Action { 7687 if m != nil { 7688 return m.Action 7689 } 7690 return nil 7691} 7692 7693func (x *Action) GetSaveFindings() *Action_SaveFindings { 7694 if x, ok := x.GetAction().(*Action_SaveFindings_); ok { 7695 return x.SaveFindings 7696 } 7697 return nil 7698} 7699 7700func (x *Action) GetPubSub() *Action_PublishToPubSub { 7701 if x, ok := x.GetAction().(*Action_PubSub); ok { 7702 return x.PubSub 7703 } 7704 return nil 7705} 7706 7707func (x *Action) GetPublishSummaryToCscc() *Action_PublishSummaryToCscc { 7708 if x, ok := x.GetAction().(*Action_PublishSummaryToCscc_); ok { 7709 return x.PublishSummaryToCscc 7710 } 7711 return nil 7712} 7713 7714func (x *Action) GetPublishFindingsToCloudDataCatalog() *Action_PublishFindingsToCloudDataCatalog { 7715 if x, ok := x.GetAction().(*Action_PublishFindingsToCloudDataCatalog_); ok { 7716 return x.PublishFindingsToCloudDataCatalog 7717 } 7718 return nil 7719} 7720 7721func (x *Action) GetJobNotificationEmails() *Action_JobNotificationEmails { 7722 if x, ok := x.GetAction().(*Action_JobNotificationEmails_); ok { 7723 return x.JobNotificationEmails 7724 } 7725 return nil 7726} 7727 7728func (x *Action) GetPublishToStackdriver() *Action_PublishToStackdriver { 7729 if x, ok := x.GetAction().(*Action_PublishToStackdriver_); ok { 7730 return x.PublishToStackdriver 7731 } 7732 return nil 7733} 7734 7735type isAction_Action interface { 7736 isAction_Action() 7737} 7738 7739type Action_SaveFindings_ struct { 7740 // Save resulting findings in a provided location. 7741 SaveFindings *Action_SaveFindings `protobuf:"bytes,1,opt,name=save_findings,json=saveFindings,proto3,oneof"` 7742} 7743 7744type Action_PubSub struct { 7745 // Publish a notification to a pubsub topic. 7746 PubSub *Action_PublishToPubSub `protobuf:"bytes,2,opt,name=pub_sub,json=pubSub,proto3,oneof"` 7747} 7748 7749type Action_PublishSummaryToCscc_ struct { 7750 // Publish summary to Cloud Security Command Center (Alpha). 7751 PublishSummaryToCscc *Action_PublishSummaryToCscc `protobuf:"bytes,3,opt,name=publish_summary_to_cscc,json=publishSummaryToCscc,proto3,oneof"` 7752} 7753 7754type Action_PublishFindingsToCloudDataCatalog_ struct { 7755 // Publish findings to Cloud Datahub. 7756 PublishFindingsToCloudDataCatalog *Action_PublishFindingsToCloudDataCatalog `protobuf:"bytes,5,opt,name=publish_findings_to_cloud_data_catalog,json=publishFindingsToCloudDataCatalog,proto3,oneof"` 7757} 7758 7759type Action_JobNotificationEmails_ struct { 7760 // Enable email notification for project owners and editors on job's 7761 // completion/failure. 7762 JobNotificationEmails *Action_JobNotificationEmails `protobuf:"bytes,8,opt,name=job_notification_emails,json=jobNotificationEmails,proto3,oneof"` 7763} 7764 7765type Action_PublishToStackdriver_ struct { 7766 // Enable Stackdriver metric dlp.googleapis.com/finding_count. 7767 PublishToStackdriver *Action_PublishToStackdriver `protobuf:"bytes,9,opt,name=publish_to_stackdriver,json=publishToStackdriver,proto3,oneof"` 7768} 7769 7770func (*Action_SaveFindings_) isAction_Action() {} 7771 7772func (*Action_PubSub) isAction_Action() {} 7773 7774func (*Action_PublishSummaryToCscc_) isAction_Action() {} 7775 7776func (*Action_PublishFindingsToCloudDataCatalog_) isAction_Action() {} 7777 7778func (*Action_JobNotificationEmails_) isAction_Action() {} 7779 7780func (*Action_PublishToStackdriver_) isAction_Action() {} 7781 7782// Request message for CreateInspectTemplate. 7783type CreateInspectTemplateRequest struct { 7784 state protoimpl.MessageState 7785 sizeCache protoimpl.SizeCache 7786 unknownFields protoimpl.UnknownFields 7787 7788 // Required. The parent resource name, for example projects/my-project-id or 7789 // organizations/my-org-id or projects/my-project-id/locations/{location-id}. 7790 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 7791 // Required. The InspectTemplate to create. 7792 InspectTemplate *InspectTemplate `protobuf:"bytes,2,opt,name=inspect_template,json=inspectTemplate,proto3" json:"inspect_template,omitempty"` 7793 // The template id can contain uppercase and lowercase letters, 7794 // numbers, and hyphens; that is, it must match the regular 7795 // expression: `[a-zA-Z\\d-_]+`. The maximum length is 100 7796 // characters. Can be empty to allow the system to generate one. 7797 TemplateId string `protobuf:"bytes,3,opt,name=template_id,json=templateId,proto3" json:"template_id,omitempty"` 7798 // Deprecated. This field has no effect. 7799 LocationId string `protobuf:"bytes,4,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 7800} 7801 7802func (x *CreateInspectTemplateRequest) Reset() { 7803 *x = CreateInspectTemplateRequest{} 7804 if protoimpl.UnsafeEnabled { 7805 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[79] 7806 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7807 ms.StoreMessageInfo(mi) 7808 } 7809} 7810 7811func (x *CreateInspectTemplateRequest) String() string { 7812 return protoimpl.X.MessageStringOf(x) 7813} 7814 7815func (*CreateInspectTemplateRequest) ProtoMessage() {} 7816 7817func (x *CreateInspectTemplateRequest) ProtoReflect() protoreflect.Message { 7818 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[79] 7819 if protoimpl.UnsafeEnabled && x != nil { 7820 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7821 if ms.LoadMessageInfo() == nil { 7822 ms.StoreMessageInfo(mi) 7823 } 7824 return ms 7825 } 7826 return mi.MessageOf(x) 7827} 7828 7829// Deprecated: Use CreateInspectTemplateRequest.ProtoReflect.Descriptor instead. 7830func (*CreateInspectTemplateRequest) Descriptor() ([]byte, []int) { 7831 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{79} 7832} 7833 7834func (x *CreateInspectTemplateRequest) GetParent() string { 7835 if x != nil { 7836 return x.Parent 7837 } 7838 return "" 7839} 7840 7841func (x *CreateInspectTemplateRequest) GetInspectTemplate() *InspectTemplate { 7842 if x != nil { 7843 return x.InspectTemplate 7844 } 7845 return nil 7846} 7847 7848func (x *CreateInspectTemplateRequest) GetTemplateId() string { 7849 if x != nil { 7850 return x.TemplateId 7851 } 7852 return "" 7853} 7854 7855func (x *CreateInspectTemplateRequest) GetLocationId() string { 7856 if x != nil { 7857 return x.LocationId 7858 } 7859 return "" 7860} 7861 7862// Request message for UpdateInspectTemplate. 7863type UpdateInspectTemplateRequest struct { 7864 state protoimpl.MessageState 7865 sizeCache protoimpl.SizeCache 7866 unknownFields protoimpl.UnknownFields 7867 7868 // Required. Resource name of organization and inspectTemplate to be updated, 7869 // for example `organizations/433245324/inspectTemplates/432452342` or 7870 // projects/project-id/inspectTemplates/432452342. 7871 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 7872 // New InspectTemplate value. 7873 InspectTemplate *InspectTemplate `protobuf:"bytes,2,opt,name=inspect_template,json=inspectTemplate,proto3" json:"inspect_template,omitempty"` 7874 // Mask to control which fields get updated. 7875 UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 7876} 7877 7878func (x *UpdateInspectTemplateRequest) Reset() { 7879 *x = UpdateInspectTemplateRequest{} 7880 if protoimpl.UnsafeEnabled { 7881 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[80] 7882 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7883 ms.StoreMessageInfo(mi) 7884 } 7885} 7886 7887func (x *UpdateInspectTemplateRequest) String() string { 7888 return protoimpl.X.MessageStringOf(x) 7889} 7890 7891func (*UpdateInspectTemplateRequest) ProtoMessage() {} 7892 7893func (x *UpdateInspectTemplateRequest) ProtoReflect() protoreflect.Message { 7894 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[80] 7895 if protoimpl.UnsafeEnabled && x != nil { 7896 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7897 if ms.LoadMessageInfo() == nil { 7898 ms.StoreMessageInfo(mi) 7899 } 7900 return ms 7901 } 7902 return mi.MessageOf(x) 7903} 7904 7905// Deprecated: Use UpdateInspectTemplateRequest.ProtoReflect.Descriptor instead. 7906func (*UpdateInspectTemplateRequest) Descriptor() ([]byte, []int) { 7907 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{80} 7908} 7909 7910func (x *UpdateInspectTemplateRequest) GetName() string { 7911 if x != nil { 7912 return x.Name 7913 } 7914 return "" 7915} 7916 7917func (x *UpdateInspectTemplateRequest) GetInspectTemplate() *InspectTemplate { 7918 if x != nil { 7919 return x.InspectTemplate 7920 } 7921 return nil 7922} 7923 7924func (x *UpdateInspectTemplateRequest) GetUpdateMask() *field_mask.FieldMask { 7925 if x != nil { 7926 return x.UpdateMask 7927 } 7928 return nil 7929} 7930 7931// Request message for GetInspectTemplate. 7932type GetInspectTemplateRequest struct { 7933 state protoimpl.MessageState 7934 sizeCache protoimpl.SizeCache 7935 unknownFields protoimpl.UnknownFields 7936 7937 // Required. Resource name of the organization and inspectTemplate to be read, 7938 // for example `organizations/433245324/inspectTemplates/432452342` or 7939 // projects/project-id/inspectTemplates/432452342. 7940 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 7941} 7942 7943func (x *GetInspectTemplateRequest) Reset() { 7944 *x = GetInspectTemplateRequest{} 7945 if protoimpl.UnsafeEnabled { 7946 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[81] 7947 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7948 ms.StoreMessageInfo(mi) 7949 } 7950} 7951 7952func (x *GetInspectTemplateRequest) String() string { 7953 return protoimpl.X.MessageStringOf(x) 7954} 7955 7956func (*GetInspectTemplateRequest) ProtoMessage() {} 7957 7958func (x *GetInspectTemplateRequest) ProtoReflect() protoreflect.Message { 7959 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[81] 7960 if protoimpl.UnsafeEnabled && x != nil { 7961 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 7962 if ms.LoadMessageInfo() == nil { 7963 ms.StoreMessageInfo(mi) 7964 } 7965 return ms 7966 } 7967 return mi.MessageOf(x) 7968} 7969 7970// Deprecated: Use GetInspectTemplateRequest.ProtoReflect.Descriptor instead. 7971func (*GetInspectTemplateRequest) Descriptor() ([]byte, []int) { 7972 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{81} 7973} 7974 7975func (x *GetInspectTemplateRequest) GetName() string { 7976 if x != nil { 7977 return x.Name 7978 } 7979 return "" 7980} 7981 7982// Request message for ListInspectTemplates. 7983type ListInspectTemplatesRequest struct { 7984 state protoimpl.MessageState 7985 sizeCache protoimpl.SizeCache 7986 unknownFields protoimpl.UnknownFields 7987 7988 // Required. The parent resource name, for example projects/my-project-id or 7989 // organizations/my-org-id or projects/my-project-id/locations/{location_id}. 7990 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 7991 // Page token to continue retrieval. Comes from previous call 7992 // to `ListInspectTemplates`. 7993 PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 7994 // Size of the page, can be limited by server. If zero server returns 7995 // a page of max size 100. 7996 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 7997 // Comma separated list of fields to order by, 7998 // followed by `asc` or `desc` postfix. This list is case-insensitive, 7999 // default sorting order is ascending, redundant space characters are 8000 // insignificant. 8001 // 8002 // Example: `name asc,update_time, create_time desc` 8003 // 8004 // Supported fields are: 8005 // 8006 // - `create_time`: corresponds to time the template was created. 8007 // - `update_time`: corresponds to time the template was last updated. 8008 // - `name`: corresponds to template's name. 8009 // - `display_name`: corresponds to template's display name. 8010 OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 8011 // Deprecated. This field has no effect. 8012 LocationId string `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 8013} 8014 8015func (x *ListInspectTemplatesRequest) Reset() { 8016 *x = ListInspectTemplatesRequest{} 8017 if protoimpl.UnsafeEnabled { 8018 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[82] 8019 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8020 ms.StoreMessageInfo(mi) 8021 } 8022} 8023 8024func (x *ListInspectTemplatesRequest) String() string { 8025 return protoimpl.X.MessageStringOf(x) 8026} 8027 8028func (*ListInspectTemplatesRequest) ProtoMessage() {} 8029 8030func (x *ListInspectTemplatesRequest) ProtoReflect() protoreflect.Message { 8031 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[82] 8032 if protoimpl.UnsafeEnabled && x != nil { 8033 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8034 if ms.LoadMessageInfo() == nil { 8035 ms.StoreMessageInfo(mi) 8036 } 8037 return ms 8038 } 8039 return mi.MessageOf(x) 8040} 8041 8042// Deprecated: Use ListInspectTemplatesRequest.ProtoReflect.Descriptor instead. 8043func (*ListInspectTemplatesRequest) Descriptor() ([]byte, []int) { 8044 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{82} 8045} 8046 8047func (x *ListInspectTemplatesRequest) GetParent() string { 8048 if x != nil { 8049 return x.Parent 8050 } 8051 return "" 8052} 8053 8054func (x *ListInspectTemplatesRequest) GetPageToken() string { 8055 if x != nil { 8056 return x.PageToken 8057 } 8058 return "" 8059} 8060 8061func (x *ListInspectTemplatesRequest) GetPageSize() int32 { 8062 if x != nil { 8063 return x.PageSize 8064 } 8065 return 0 8066} 8067 8068func (x *ListInspectTemplatesRequest) GetOrderBy() string { 8069 if x != nil { 8070 return x.OrderBy 8071 } 8072 return "" 8073} 8074 8075func (x *ListInspectTemplatesRequest) GetLocationId() string { 8076 if x != nil { 8077 return x.LocationId 8078 } 8079 return "" 8080} 8081 8082// Response message for ListInspectTemplates. 8083type ListInspectTemplatesResponse struct { 8084 state protoimpl.MessageState 8085 sizeCache protoimpl.SizeCache 8086 unknownFields protoimpl.UnknownFields 8087 8088 // List of inspectTemplates, up to page_size in ListInspectTemplatesRequest. 8089 InspectTemplates []*InspectTemplate `protobuf:"bytes,1,rep,name=inspect_templates,json=inspectTemplates,proto3" json:"inspect_templates,omitempty"` 8090 // If the next page is available then the next page token to be used 8091 // in following ListInspectTemplates request. 8092 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 8093} 8094 8095func (x *ListInspectTemplatesResponse) Reset() { 8096 *x = ListInspectTemplatesResponse{} 8097 if protoimpl.UnsafeEnabled { 8098 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[83] 8099 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8100 ms.StoreMessageInfo(mi) 8101 } 8102} 8103 8104func (x *ListInspectTemplatesResponse) String() string { 8105 return protoimpl.X.MessageStringOf(x) 8106} 8107 8108func (*ListInspectTemplatesResponse) ProtoMessage() {} 8109 8110func (x *ListInspectTemplatesResponse) ProtoReflect() protoreflect.Message { 8111 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[83] 8112 if protoimpl.UnsafeEnabled && x != nil { 8113 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8114 if ms.LoadMessageInfo() == nil { 8115 ms.StoreMessageInfo(mi) 8116 } 8117 return ms 8118 } 8119 return mi.MessageOf(x) 8120} 8121 8122// Deprecated: Use ListInspectTemplatesResponse.ProtoReflect.Descriptor instead. 8123func (*ListInspectTemplatesResponse) Descriptor() ([]byte, []int) { 8124 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{83} 8125} 8126 8127func (x *ListInspectTemplatesResponse) GetInspectTemplates() []*InspectTemplate { 8128 if x != nil { 8129 return x.InspectTemplates 8130 } 8131 return nil 8132} 8133 8134func (x *ListInspectTemplatesResponse) GetNextPageToken() string { 8135 if x != nil { 8136 return x.NextPageToken 8137 } 8138 return "" 8139} 8140 8141// Request message for DeleteInspectTemplate. 8142type DeleteInspectTemplateRequest struct { 8143 state protoimpl.MessageState 8144 sizeCache protoimpl.SizeCache 8145 unknownFields protoimpl.UnknownFields 8146 8147 // Required. Resource name of the organization and inspectTemplate to be 8148 // deleted, for example `organizations/433245324/inspectTemplates/432452342` 8149 // or projects/project-id/inspectTemplates/432452342. 8150 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 8151} 8152 8153func (x *DeleteInspectTemplateRequest) Reset() { 8154 *x = DeleteInspectTemplateRequest{} 8155 if protoimpl.UnsafeEnabled { 8156 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[84] 8157 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8158 ms.StoreMessageInfo(mi) 8159 } 8160} 8161 8162func (x *DeleteInspectTemplateRequest) String() string { 8163 return protoimpl.X.MessageStringOf(x) 8164} 8165 8166func (*DeleteInspectTemplateRequest) ProtoMessage() {} 8167 8168func (x *DeleteInspectTemplateRequest) ProtoReflect() protoreflect.Message { 8169 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[84] 8170 if protoimpl.UnsafeEnabled && x != nil { 8171 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8172 if ms.LoadMessageInfo() == nil { 8173 ms.StoreMessageInfo(mi) 8174 } 8175 return ms 8176 } 8177 return mi.MessageOf(x) 8178} 8179 8180// Deprecated: Use DeleteInspectTemplateRequest.ProtoReflect.Descriptor instead. 8181func (*DeleteInspectTemplateRequest) Descriptor() ([]byte, []int) { 8182 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{84} 8183} 8184 8185func (x *DeleteInspectTemplateRequest) GetName() string { 8186 if x != nil { 8187 return x.Name 8188 } 8189 return "" 8190} 8191 8192// Request message for CreateJobTrigger. 8193type CreateJobTriggerRequest struct { 8194 state protoimpl.MessageState 8195 sizeCache protoimpl.SizeCache 8196 unknownFields protoimpl.UnknownFields 8197 8198 // Required. The parent resource name, for example projects/my-project-id 8199 // or projects/my-project-id/locations/{location_id}. 8200 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 8201 // Required. The JobTrigger to create. 8202 JobTrigger *JobTrigger `protobuf:"bytes,2,opt,name=job_trigger,json=jobTrigger,proto3" json:"job_trigger,omitempty"` 8203 // The trigger id can contain uppercase and lowercase letters, 8204 // numbers, and hyphens; that is, it must match the regular 8205 // expression: `[a-zA-Z\\d-_]+`. The maximum length is 100 8206 // characters. Can be empty to allow the system to generate one. 8207 TriggerId string `protobuf:"bytes,3,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"` 8208 // Deprecated. This field has no effect. 8209 LocationId string `protobuf:"bytes,4,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 8210} 8211 8212func (x *CreateJobTriggerRequest) Reset() { 8213 *x = CreateJobTriggerRequest{} 8214 if protoimpl.UnsafeEnabled { 8215 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[85] 8216 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8217 ms.StoreMessageInfo(mi) 8218 } 8219} 8220 8221func (x *CreateJobTriggerRequest) String() string { 8222 return protoimpl.X.MessageStringOf(x) 8223} 8224 8225func (*CreateJobTriggerRequest) ProtoMessage() {} 8226 8227func (x *CreateJobTriggerRequest) ProtoReflect() protoreflect.Message { 8228 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[85] 8229 if protoimpl.UnsafeEnabled && x != nil { 8230 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8231 if ms.LoadMessageInfo() == nil { 8232 ms.StoreMessageInfo(mi) 8233 } 8234 return ms 8235 } 8236 return mi.MessageOf(x) 8237} 8238 8239// Deprecated: Use CreateJobTriggerRequest.ProtoReflect.Descriptor instead. 8240func (*CreateJobTriggerRequest) Descriptor() ([]byte, []int) { 8241 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{85} 8242} 8243 8244func (x *CreateJobTriggerRequest) GetParent() string { 8245 if x != nil { 8246 return x.Parent 8247 } 8248 return "" 8249} 8250 8251func (x *CreateJobTriggerRequest) GetJobTrigger() *JobTrigger { 8252 if x != nil { 8253 return x.JobTrigger 8254 } 8255 return nil 8256} 8257 8258func (x *CreateJobTriggerRequest) GetTriggerId() string { 8259 if x != nil { 8260 return x.TriggerId 8261 } 8262 return "" 8263} 8264 8265func (x *CreateJobTriggerRequest) GetLocationId() string { 8266 if x != nil { 8267 return x.LocationId 8268 } 8269 return "" 8270} 8271 8272// Request message for ActivateJobTrigger. 8273type ActivateJobTriggerRequest struct { 8274 state protoimpl.MessageState 8275 sizeCache protoimpl.SizeCache 8276 unknownFields protoimpl.UnknownFields 8277 8278 // Required. Resource name of the trigger to activate, for example 8279 // `projects/dlp-test-project/jobTriggers/53234423`. 8280 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 8281} 8282 8283func (x *ActivateJobTriggerRequest) Reset() { 8284 *x = ActivateJobTriggerRequest{} 8285 if protoimpl.UnsafeEnabled { 8286 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[86] 8287 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8288 ms.StoreMessageInfo(mi) 8289 } 8290} 8291 8292func (x *ActivateJobTriggerRequest) String() string { 8293 return protoimpl.X.MessageStringOf(x) 8294} 8295 8296func (*ActivateJobTriggerRequest) ProtoMessage() {} 8297 8298func (x *ActivateJobTriggerRequest) ProtoReflect() protoreflect.Message { 8299 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[86] 8300 if protoimpl.UnsafeEnabled && x != nil { 8301 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8302 if ms.LoadMessageInfo() == nil { 8303 ms.StoreMessageInfo(mi) 8304 } 8305 return ms 8306 } 8307 return mi.MessageOf(x) 8308} 8309 8310// Deprecated: Use ActivateJobTriggerRequest.ProtoReflect.Descriptor instead. 8311func (*ActivateJobTriggerRequest) Descriptor() ([]byte, []int) { 8312 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{86} 8313} 8314 8315func (x *ActivateJobTriggerRequest) GetName() string { 8316 if x != nil { 8317 return x.Name 8318 } 8319 return "" 8320} 8321 8322// Request message for UpdateJobTrigger. 8323type UpdateJobTriggerRequest struct { 8324 state protoimpl.MessageState 8325 sizeCache protoimpl.SizeCache 8326 unknownFields protoimpl.UnknownFields 8327 8328 // Required. Resource name of the project and the triggeredJob, for example 8329 // `projects/dlp-test-project/jobTriggers/53234423`. 8330 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 8331 // New JobTrigger value. 8332 JobTrigger *JobTrigger `protobuf:"bytes,2,opt,name=job_trigger,json=jobTrigger,proto3" json:"job_trigger,omitempty"` 8333 // Mask to control which fields get updated. 8334 UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 8335} 8336 8337func (x *UpdateJobTriggerRequest) Reset() { 8338 *x = UpdateJobTriggerRequest{} 8339 if protoimpl.UnsafeEnabled { 8340 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[87] 8341 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8342 ms.StoreMessageInfo(mi) 8343 } 8344} 8345 8346func (x *UpdateJobTriggerRequest) String() string { 8347 return protoimpl.X.MessageStringOf(x) 8348} 8349 8350func (*UpdateJobTriggerRequest) ProtoMessage() {} 8351 8352func (x *UpdateJobTriggerRequest) ProtoReflect() protoreflect.Message { 8353 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[87] 8354 if protoimpl.UnsafeEnabled && x != nil { 8355 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8356 if ms.LoadMessageInfo() == nil { 8357 ms.StoreMessageInfo(mi) 8358 } 8359 return ms 8360 } 8361 return mi.MessageOf(x) 8362} 8363 8364// Deprecated: Use UpdateJobTriggerRequest.ProtoReflect.Descriptor instead. 8365func (*UpdateJobTriggerRequest) Descriptor() ([]byte, []int) { 8366 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{87} 8367} 8368 8369func (x *UpdateJobTriggerRequest) GetName() string { 8370 if x != nil { 8371 return x.Name 8372 } 8373 return "" 8374} 8375 8376func (x *UpdateJobTriggerRequest) GetJobTrigger() *JobTrigger { 8377 if x != nil { 8378 return x.JobTrigger 8379 } 8380 return nil 8381} 8382 8383func (x *UpdateJobTriggerRequest) GetUpdateMask() *field_mask.FieldMask { 8384 if x != nil { 8385 return x.UpdateMask 8386 } 8387 return nil 8388} 8389 8390// Request message for GetJobTrigger. 8391type GetJobTriggerRequest struct { 8392 state protoimpl.MessageState 8393 sizeCache protoimpl.SizeCache 8394 unknownFields protoimpl.UnknownFields 8395 8396 // Required. Resource name of the project and the triggeredJob, for example 8397 // `projects/dlp-test-project/jobTriggers/53234423`. 8398 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 8399} 8400 8401func (x *GetJobTriggerRequest) Reset() { 8402 *x = GetJobTriggerRequest{} 8403 if protoimpl.UnsafeEnabled { 8404 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[88] 8405 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8406 ms.StoreMessageInfo(mi) 8407 } 8408} 8409 8410func (x *GetJobTriggerRequest) String() string { 8411 return protoimpl.X.MessageStringOf(x) 8412} 8413 8414func (*GetJobTriggerRequest) ProtoMessage() {} 8415 8416func (x *GetJobTriggerRequest) ProtoReflect() protoreflect.Message { 8417 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[88] 8418 if protoimpl.UnsafeEnabled && x != nil { 8419 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8420 if ms.LoadMessageInfo() == nil { 8421 ms.StoreMessageInfo(mi) 8422 } 8423 return ms 8424 } 8425 return mi.MessageOf(x) 8426} 8427 8428// Deprecated: Use GetJobTriggerRequest.ProtoReflect.Descriptor instead. 8429func (*GetJobTriggerRequest) Descriptor() ([]byte, []int) { 8430 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{88} 8431} 8432 8433func (x *GetJobTriggerRequest) GetName() string { 8434 if x != nil { 8435 return x.Name 8436 } 8437 return "" 8438} 8439 8440// Request message for CreateDlpJobRequest. Used to initiate long running 8441// jobs such as calculating risk metrics or inspecting Google Cloud 8442// Storage. 8443type CreateDlpJobRequest struct { 8444 state protoimpl.MessageState 8445 sizeCache protoimpl.SizeCache 8446 unknownFields protoimpl.UnknownFields 8447 8448 // Required. The parent resource name, for example projects/my-project-id 8449 // or projects/my-project-id/locations/{location_id}. 8450 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 8451 // The configuration details for the specific type of job to run. 8452 // 8453 // Types that are assignable to Job: 8454 // *CreateDlpJobRequest_InspectJob 8455 // *CreateDlpJobRequest_RiskJob 8456 Job isCreateDlpJobRequest_Job `protobuf_oneof:"job"` 8457 // The job id can contain uppercase and lowercase letters, 8458 // numbers, and hyphens; that is, it must match the regular 8459 // expression: `[a-zA-Z\\d-_]+`. The maximum length is 100 8460 // characters. Can be empty to allow the system to generate one. 8461 JobId string `protobuf:"bytes,4,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` 8462 // Deprecated. This field has no effect. 8463 LocationId string `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 8464} 8465 8466func (x *CreateDlpJobRequest) Reset() { 8467 *x = CreateDlpJobRequest{} 8468 if protoimpl.UnsafeEnabled { 8469 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[89] 8470 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8471 ms.StoreMessageInfo(mi) 8472 } 8473} 8474 8475func (x *CreateDlpJobRequest) String() string { 8476 return protoimpl.X.MessageStringOf(x) 8477} 8478 8479func (*CreateDlpJobRequest) ProtoMessage() {} 8480 8481func (x *CreateDlpJobRequest) ProtoReflect() protoreflect.Message { 8482 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[89] 8483 if protoimpl.UnsafeEnabled && x != nil { 8484 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8485 if ms.LoadMessageInfo() == nil { 8486 ms.StoreMessageInfo(mi) 8487 } 8488 return ms 8489 } 8490 return mi.MessageOf(x) 8491} 8492 8493// Deprecated: Use CreateDlpJobRequest.ProtoReflect.Descriptor instead. 8494func (*CreateDlpJobRequest) Descriptor() ([]byte, []int) { 8495 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{89} 8496} 8497 8498func (x *CreateDlpJobRequest) GetParent() string { 8499 if x != nil { 8500 return x.Parent 8501 } 8502 return "" 8503} 8504 8505func (m *CreateDlpJobRequest) GetJob() isCreateDlpJobRequest_Job { 8506 if m != nil { 8507 return m.Job 8508 } 8509 return nil 8510} 8511 8512func (x *CreateDlpJobRequest) GetInspectJob() *InspectJobConfig { 8513 if x, ok := x.GetJob().(*CreateDlpJobRequest_InspectJob); ok { 8514 return x.InspectJob 8515 } 8516 return nil 8517} 8518 8519func (x *CreateDlpJobRequest) GetRiskJob() *RiskAnalysisJobConfig { 8520 if x, ok := x.GetJob().(*CreateDlpJobRequest_RiskJob); ok { 8521 return x.RiskJob 8522 } 8523 return nil 8524} 8525 8526func (x *CreateDlpJobRequest) GetJobId() string { 8527 if x != nil { 8528 return x.JobId 8529 } 8530 return "" 8531} 8532 8533func (x *CreateDlpJobRequest) GetLocationId() string { 8534 if x != nil { 8535 return x.LocationId 8536 } 8537 return "" 8538} 8539 8540type isCreateDlpJobRequest_Job interface { 8541 isCreateDlpJobRequest_Job() 8542} 8543 8544type CreateDlpJobRequest_InspectJob struct { 8545 // Set to control what and how to inspect. 8546 InspectJob *InspectJobConfig `protobuf:"bytes,2,opt,name=inspect_job,json=inspectJob,proto3,oneof"` 8547} 8548 8549type CreateDlpJobRequest_RiskJob struct { 8550 // Set to choose what metric to calculate. 8551 RiskJob *RiskAnalysisJobConfig `protobuf:"bytes,3,opt,name=risk_job,json=riskJob,proto3,oneof"` 8552} 8553 8554func (*CreateDlpJobRequest_InspectJob) isCreateDlpJobRequest_Job() {} 8555 8556func (*CreateDlpJobRequest_RiskJob) isCreateDlpJobRequest_Job() {} 8557 8558// Request message for ListJobTriggers. 8559type ListJobTriggersRequest struct { 8560 state protoimpl.MessageState 8561 sizeCache protoimpl.SizeCache 8562 unknownFields protoimpl.UnknownFields 8563 8564 // Required. The parent resource name, for example `projects/my-project-id` 8565 // or projects/my-project-id/locations/{location_id}. 8566 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 8567 // Page token to continue retrieval. Comes from previous call 8568 // to ListJobTriggers. `order_by` field must not 8569 // change for subsequent calls. 8570 PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 8571 // Size of the page, can be limited by a server. 8572 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 8573 // Comma separated list of triggeredJob fields to order by, 8574 // followed by `asc` or `desc` postfix. This list is case-insensitive, 8575 // default sorting order is ascending, redundant space characters are 8576 // insignificant. 8577 // 8578 // Example: `name asc,update_time, create_time desc` 8579 // 8580 // Supported fields are: 8581 // 8582 // - `create_time`: corresponds to time the JobTrigger was created. 8583 // - `update_time`: corresponds to time the JobTrigger was last updated. 8584 // - `last_run_time`: corresponds to the last time the JobTrigger ran. 8585 // - `name`: corresponds to JobTrigger's name. 8586 // - `display_name`: corresponds to JobTrigger's display name. 8587 // - `status`: corresponds to JobTrigger's status. 8588 OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 8589 // Allows filtering. 8590 // 8591 // Supported syntax: 8592 // 8593 // * Filter expressions are made up of one or more restrictions. 8594 // * Restrictions can be combined by `AND` or `OR` logical operators. A 8595 // sequence of restrictions implicitly uses `AND`. 8596 // * A restriction has the form of `{field} {operator} {value}`. 8597 // * Supported fields/values for inspect jobs: 8598 // - `status` - HEALTHY|PAUSED|CANCELLED 8599 // - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY 8600 // - 'last_run_time` - RFC 3339 formatted timestamp, surrounded by 8601 // quotation marks. Nanoseconds are ignored. 8602 // - 'error_count' - Number of errors that have occurred while running. 8603 // * The operator must be `=` or `!=` for status and inspected_storage. 8604 // 8605 // Examples: 8606 // 8607 // * inspected_storage = cloud_storage AND status = HEALTHY 8608 // * inspected_storage = cloud_storage OR inspected_storage = bigquery 8609 // * inspected_storage = cloud_storage AND (state = PAUSED OR state = HEALTHY) 8610 // * last_run_time > \"2017-12-12T00:00:00+00:00\" 8611 // 8612 // The length of this field should be no more than 500 characters. 8613 Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` 8614 // Deprecated. This field has no effect. 8615 LocationId string `protobuf:"bytes,7,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 8616} 8617 8618func (x *ListJobTriggersRequest) Reset() { 8619 *x = ListJobTriggersRequest{} 8620 if protoimpl.UnsafeEnabled { 8621 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[90] 8622 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8623 ms.StoreMessageInfo(mi) 8624 } 8625} 8626 8627func (x *ListJobTriggersRequest) String() string { 8628 return protoimpl.X.MessageStringOf(x) 8629} 8630 8631func (*ListJobTriggersRequest) ProtoMessage() {} 8632 8633func (x *ListJobTriggersRequest) ProtoReflect() protoreflect.Message { 8634 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[90] 8635 if protoimpl.UnsafeEnabled && x != nil { 8636 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8637 if ms.LoadMessageInfo() == nil { 8638 ms.StoreMessageInfo(mi) 8639 } 8640 return ms 8641 } 8642 return mi.MessageOf(x) 8643} 8644 8645// Deprecated: Use ListJobTriggersRequest.ProtoReflect.Descriptor instead. 8646func (*ListJobTriggersRequest) Descriptor() ([]byte, []int) { 8647 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{90} 8648} 8649 8650func (x *ListJobTriggersRequest) GetParent() string { 8651 if x != nil { 8652 return x.Parent 8653 } 8654 return "" 8655} 8656 8657func (x *ListJobTriggersRequest) GetPageToken() string { 8658 if x != nil { 8659 return x.PageToken 8660 } 8661 return "" 8662} 8663 8664func (x *ListJobTriggersRequest) GetPageSize() int32 { 8665 if x != nil { 8666 return x.PageSize 8667 } 8668 return 0 8669} 8670 8671func (x *ListJobTriggersRequest) GetOrderBy() string { 8672 if x != nil { 8673 return x.OrderBy 8674 } 8675 return "" 8676} 8677 8678func (x *ListJobTriggersRequest) GetFilter() string { 8679 if x != nil { 8680 return x.Filter 8681 } 8682 return "" 8683} 8684 8685func (x *ListJobTriggersRequest) GetLocationId() string { 8686 if x != nil { 8687 return x.LocationId 8688 } 8689 return "" 8690} 8691 8692// Response message for ListJobTriggers. 8693type ListJobTriggersResponse struct { 8694 state protoimpl.MessageState 8695 sizeCache protoimpl.SizeCache 8696 unknownFields protoimpl.UnknownFields 8697 8698 // List of triggeredJobs, up to page_size in ListJobTriggersRequest. 8699 JobTriggers []*JobTrigger `protobuf:"bytes,1,rep,name=job_triggers,json=jobTriggers,proto3" json:"job_triggers,omitempty"` 8700 // If the next page is available then the next page token to be used 8701 // in following ListJobTriggers request. 8702 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 8703} 8704 8705func (x *ListJobTriggersResponse) Reset() { 8706 *x = ListJobTriggersResponse{} 8707 if protoimpl.UnsafeEnabled { 8708 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[91] 8709 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8710 ms.StoreMessageInfo(mi) 8711 } 8712} 8713 8714func (x *ListJobTriggersResponse) String() string { 8715 return protoimpl.X.MessageStringOf(x) 8716} 8717 8718func (*ListJobTriggersResponse) ProtoMessage() {} 8719 8720func (x *ListJobTriggersResponse) ProtoReflect() protoreflect.Message { 8721 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[91] 8722 if protoimpl.UnsafeEnabled && x != nil { 8723 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8724 if ms.LoadMessageInfo() == nil { 8725 ms.StoreMessageInfo(mi) 8726 } 8727 return ms 8728 } 8729 return mi.MessageOf(x) 8730} 8731 8732// Deprecated: Use ListJobTriggersResponse.ProtoReflect.Descriptor instead. 8733func (*ListJobTriggersResponse) Descriptor() ([]byte, []int) { 8734 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{91} 8735} 8736 8737func (x *ListJobTriggersResponse) GetJobTriggers() []*JobTrigger { 8738 if x != nil { 8739 return x.JobTriggers 8740 } 8741 return nil 8742} 8743 8744func (x *ListJobTriggersResponse) GetNextPageToken() string { 8745 if x != nil { 8746 return x.NextPageToken 8747 } 8748 return "" 8749} 8750 8751// Request message for DeleteJobTrigger. 8752type DeleteJobTriggerRequest struct { 8753 state protoimpl.MessageState 8754 sizeCache protoimpl.SizeCache 8755 unknownFields protoimpl.UnknownFields 8756 8757 // Required. Resource name of the project and the triggeredJob, for example 8758 // `projects/dlp-test-project/jobTriggers/53234423`. 8759 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 8760} 8761 8762func (x *DeleteJobTriggerRequest) Reset() { 8763 *x = DeleteJobTriggerRequest{} 8764 if protoimpl.UnsafeEnabled { 8765 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[92] 8766 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8767 ms.StoreMessageInfo(mi) 8768 } 8769} 8770 8771func (x *DeleteJobTriggerRequest) String() string { 8772 return protoimpl.X.MessageStringOf(x) 8773} 8774 8775func (*DeleteJobTriggerRequest) ProtoMessage() {} 8776 8777func (x *DeleteJobTriggerRequest) ProtoReflect() protoreflect.Message { 8778 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[92] 8779 if protoimpl.UnsafeEnabled && x != nil { 8780 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8781 if ms.LoadMessageInfo() == nil { 8782 ms.StoreMessageInfo(mi) 8783 } 8784 return ms 8785 } 8786 return mi.MessageOf(x) 8787} 8788 8789// Deprecated: Use DeleteJobTriggerRequest.ProtoReflect.Descriptor instead. 8790func (*DeleteJobTriggerRequest) Descriptor() ([]byte, []int) { 8791 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{92} 8792} 8793 8794func (x *DeleteJobTriggerRequest) GetName() string { 8795 if x != nil { 8796 return x.Name 8797 } 8798 return "" 8799} 8800 8801// Controls what and how to inspect for findings. 8802type InspectJobConfig struct { 8803 state protoimpl.MessageState 8804 sizeCache protoimpl.SizeCache 8805 unknownFields protoimpl.UnknownFields 8806 8807 // The data to scan. 8808 StorageConfig *StorageConfig `protobuf:"bytes,1,opt,name=storage_config,json=storageConfig,proto3" json:"storage_config,omitempty"` 8809 // How and what to scan for. 8810 InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"` 8811 // If provided, will be used as the default for all values in InspectConfig. 8812 // `inspect_config` will be merged into the values persisted as part of the 8813 // template. 8814 InspectTemplateName string `protobuf:"bytes,3,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"` 8815 // Actions to execute at the completion of the job. 8816 Actions []*Action `protobuf:"bytes,4,rep,name=actions,proto3" json:"actions,omitempty"` 8817} 8818 8819func (x *InspectJobConfig) Reset() { 8820 *x = InspectJobConfig{} 8821 if protoimpl.UnsafeEnabled { 8822 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[93] 8823 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8824 ms.StoreMessageInfo(mi) 8825 } 8826} 8827 8828func (x *InspectJobConfig) String() string { 8829 return protoimpl.X.MessageStringOf(x) 8830} 8831 8832func (*InspectJobConfig) ProtoMessage() {} 8833 8834func (x *InspectJobConfig) ProtoReflect() protoreflect.Message { 8835 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[93] 8836 if protoimpl.UnsafeEnabled && x != nil { 8837 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8838 if ms.LoadMessageInfo() == nil { 8839 ms.StoreMessageInfo(mi) 8840 } 8841 return ms 8842 } 8843 return mi.MessageOf(x) 8844} 8845 8846// Deprecated: Use InspectJobConfig.ProtoReflect.Descriptor instead. 8847func (*InspectJobConfig) Descriptor() ([]byte, []int) { 8848 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{93} 8849} 8850 8851func (x *InspectJobConfig) GetStorageConfig() *StorageConfig { 8852 if x != nil { 8853 return x.StorageConfig 8854 } 8855 return nil 8856} 8857 8858func (x *InspectJobConfig) GetInspectConfig() *InspectConfig { 8859 if x != nil { 8860 return x.InspectConfig 8861 } 8862 return nil 8863} 8864 8865func (x *InspectJobConfig) GetInspectTemplateName() string { 8866 if x != nil { 8867 return x.InspectTemplateName 8868 } 8869 return "" 8870} 8871 8872func (x *InspectJobConfig) GetActions() []*Action { 8873 if x != nil { 8874 return x.Actions 8875 } 8876 return nil 8877} 8878 8879// Combines all of the information about a DLP job. 8880type DlpJob struct { 8881 state protoimpl.MessageState 8882 sizeCache protoimpl.SizeCache 8883 unknownFields protoimpl.UnknownFields 8884 8885 // The server-assigned name. 8886 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 8887 // The type of job. 8888 Type DlpJobType `protobuf:"varint,2,opt,name=type,proto3,enum=google.privacy.dlp.v2.DlpJobType" json:"type,omitempty"` 8889 // State of a job. 8890 State DlpJob_JobState `protobuf:"varint,3,opt,name=state,proto3,enum=google.privacy.dlp.v2.DlpJob_JobState" json:"state,omitempty"` 8891 // Types that are assignable to Details: 8892 // *DlpJob_RiskDetails 8893 // *DlpJob_InspectDetails 8894 Details isDlpJob_Details `protobuf_oneof:"details"` 8895 // Time when the job was created. 8896 CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 8897 // Time when the job started. 8898 StartTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 8899 // Time when the job finished. 8900 EndTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` 8901 // If created by a job trigger, the resource name of the trigger that 8902 // instantiated the job. 8903 JobTriggerName string `protobuf:"bytes,10,opt,name=job_trigger_name,json=jobTriggerName,proto3" json:"job_trigger_name,omitempty"` 8904 // A stream of errors encountered running the job. 8905 Errors []*Error `protobuf:"bytes,11,rep,name=errors,proto3" json:"errors,omitempty"` 8906} 8907 8908func (x *DlpJob) Reset() { 8909 *x = DlpJob{} 8910 if protoimpl.UnsafeEnabled { 8911 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[94] 8912 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8913 ms.StoreMessageInfo(mi) 8914 } 8915} 8916 8917func (x *DlpJob) String() string { 8918 return protoimpl.X.MessageStringOf(x) 8919} 8920 8921func (*DlpJob) ProtoMessage() {} 8922 8923func (x *DlpJob) ProtoReflect() protoreflect.Message { 8924 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[94] 8925 if protoimpl.UnsafeEnabled && x != nil { 8926 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 8927 if ms.LoadMessageInfo() == nil { 8928 ms.StoreMessageInfo(mi) 8929 } 8930 return ms 8931 } 8932 return mi.MessageOf(x) 8933} 8934 8935// Deprecated: Use DlpJob.ProtoReflect.Descriptor instead. 8936func (*DlpJob) Descriptor() ([]byte, []int) { 8937 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{94} 8938} 8939 8940func (x *DlpJob) GetName() string { 8941 if x != nil { 8942 return x.Name 8943 } 8944 return "" 8945} 8946 8947func (x *DlpJob) GetType() DlpJobType { 8948 if x != nil { 8949 return x.Type 8950 } 8951 return DlpJobType_DLP_JOB_TYPE_UNSPECIFIED 8952} 8953 8954func (x *DlpJob) GetState() DlpJob_JobState { 8955 if x != nil { 8956 return x.State 8957 } 8958 return DlpJob_JOB_STATE_UNSPECIFIED 8959} 8960 8961func (m *DlpJob) GetDetails() isDlpJob_Details { 8962 if m != nil { 8963 return m.Details 8964 } 8965 return nil 8966} 8967 8968func (x *DlpJob) GetRiskDetails() *AnalyzeDataSourceRiskDetails { 8969 if x, ok := x.GetDetails().(*DlpJob_RiskDetails); ok { 8970 return x.RiskDetails 8971 } 8972 return nil 8973} 8974 8975func (x *DlpJob) GetInspectDetails() *InspectDataSourceDetails { 8976 if x, ok := x.GetDetails().(*DlpJob_InspectDetails); ok { 8977 return x.InspectDetails 8978 } 8979 return nil 8980} 8981 8982func (x *DlpJob) GetCreateTime() *timestamp.Timestamp { 8983 if x != nil { 8984 return x.CreateTime 8985 } 8986 return nil 8987} 8988 8989func (x *DlpJob) GetStartTime() *timestamp.Timestamp { 8990 if x != nil { 8991 return x.StartTime 8992 } 8993 return nil 8994} 8995 8996func (x *DlpJob) GetEndTime() *timestamp.Timestamp { 8997 if x != nil { 8998 return x.EndTime 8999 } 9000 return nil 9001} 9002 9003func (x *DlpJob) GetJobTriggerName() string { 9004 if x != nil { 9005 return x.JobTriggerName 9006 } 9007 return "" 9008} 9009 9010func (x *DlpJob) GetErrors() []*Error { 9011 if x != nil { 9012 return x.Errors 9013 } 9014 return nil 9015} 9016 9017type isDlpJob_Details interface { 9018 isDlpJob_Details() 9019} 9020 9021type DlpJob_RiskDetails struct { 9022 // Results from analyzing risk of a data source. 9023 RiskDetails *AnalyzeDataSourceRiskDetails `protobuf:"bytes,4,opt,name=risk_details,json=riskDetails,proto3,oneof"` 9024} 9025 9026type DlpJob_InspectDetails struct { 9027 // Results from inspecting a data source. 9028 InspectDetails *InspectDataSourceDetails `protobuf:"bytes,5,opt,name=inspect_details,json=inspectDetails,proto3,oneof"` 9029} 9030 9031func (*DlpJob_RiskDetails) isDlpJob_Details() {} 9032 9033func (*DlpJob_InspectDetails) isDlpJob_Details() {} 9034 9035// The request message for [DlpJobs.GetDlpJob][]. 9036type GetDlpJobRequest struct { 9037 state protoimpl.MessageState 9038 sizeCache protoimpl.SizeCache 9039 unknownFields protoimpl.UnknownFields 9040 9041 // Required. The name of the DlpJob resource. 9042 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 9043} 9044 9045func (x *GetDlpJobRequest) Reset() { 9046 *x = GetDlpJobRequest{} 9047 if protoimpl.UnsafeEnabled { 9048 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[95] 9049 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9050 ms.StoreMessageInfo(mi) 9051 } 9052} 9053 9054func (x *GetDlpJobRequest) String() string { 9055 return protoimpl.X.MessageStringOf(x) 9056} 9057 9058func (*GetDlpJobRequest) ProtoMessage() {} 9059 9060func (x *GetDlpJobRequest) ProtoReflect() protoreflect.Message { 9061 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[95] 9062 if protoimpl.UnsafeEnabled && x != nil { 9063 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9064 if ms.LoadMessageInfo() == nil { 9065 ms.StoreMessageInfo(mi) 9066 } 9067 return ms 9068 } 9069 return mi.MessageOf(x) 9070} 9071 9072// Deprecated: Use GetDlpJobRequest.ProtoReflect.Descriptor instead. 9073func (*GetDlpJobRequest) Descriptor() ([]byte, []int) { 9074 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{95} 9075} 9076 9077func (x *GetDlpJobRequest) GetName() string { 9078 if x != nil { 9079 return x.Name 9080 } 9081 return "" 9082} 9083 9084// The request message for listing DLP jobs. 9085type ListDlpJobsRequest struct { 9086 state protoimpl.MessageState 9087 sizeCache protoimpl.SizeCache 9088 unknownFields protoimpl.UnknownFields 9089 9090 // Required. The parent resource name, for example projects/my-project-id 9091 // or projects/my-project-id/locations/{location_id}. 9092 Parent string `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"` 9093 // Allows filtering. 9094 // 9095 // Supported syntax: 9096 // 9097 // * Filter expressions are made up of one or more restrictions. 9098 // * Restrictions can be combined by `AND` or `OR` logical operators. A 9099 // sequence of restrictions implicitly uses `AND`. 9100 // * A restriction has the form of `{field} {operator} {value}`. 9101 // * Supported fields/values for inspect jobs: 9102 // - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED 9103 // - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY 9104 // - `trigger_name` - The resource name of the trigger that created job. 9105 // - 'end_time` - Corresponds to time the job finished. 9106 // - 'start_time` - Corresponds to time the job finished. 9107 // * Supported fields for risk analysis jobs: 9108 // - `state` - RUNNING|CANCELED|FINISHED|FAILED 9109 // - 'end_time` - Corresponds to time the job finished. 9110 // - 'start_time` - Corresponds to time the job finished. 9111 // * The operator must be `=` or `!=`. 9112 // 9113 // Examples: 9114 // 9115 // * inspected_storage = cloud_storage AND state = done 9116 // * inspected_storage = cloud_storage OR inspected_storage = bigquery 9117 // * inspected_storage = cloud_storage AND (state = done OR state = canceled) 9118 // * end_time > \"2017-12-12T00:00:00+00:00\" 9119 // 9120 // The length of this field should be no more than 500 characters. 9121 Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"` 9122 // The standard list page size. 9123 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 9124 // The standard list page token. 9125 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 9126 // The type of job. Defaults to `DlpJobType.INSPECT` 9127 Type DlpJobType `protobuf:"varint,5,opt,name=type,proto3,enum=google.privacy.dlp.v2.DlpJobType" json:"type,omitempty"` 9128 // Comma separated list of fields to order by, 9129 // followed by `asc` or `desc` postfix. This list is case-insensitive, 9130 // default sorting order is ascending, redundant space characters are 9131 // insignificant. 9132 // 9133 // Example: `name asc, end_time asc, create_time desc` 9134 // 9135 // Supported fields are: 9136 // 9137 // - `create_time`: corresponds to time the job was created. 9138 // - `end_time`: corresponds to time the job ended. 9139 // - `name`: corresponds to job's name. 9140 // - `state`: corresponds to `state` 9141 OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 9142 // Deprecated. This field has no effect. 9143 LocationId string `protobuf:"bytes,7,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 9144} 9145 9146func (x *ListDlpJobsRequest) Reset() { 9147 *x = ListDlpJobsRequest{} 9148 if protoimpl.UnsafeEnabled { 9149 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[96] 9150 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9151 ms.StoreMessageInfo(mi) 9152 } 9153} 9154 9155func (x *ListDlpJobsRequest) String() string { 9156 return protoimpl.X.MessageStringOf(x) 9157} 9158 9159func (*ListDlpJobsRequest) ProtoMessage() {} 9160 9161func (x *ListDlpJobsRequest) ProtoReflect() protoreflect.Message { 9162 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[96] 9163 if protoimpl.UnsafeEnabled && x != nil { 9164 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9165 if ms.LoadMessageInfo() == nil { 9166 ms.StoreMessageInfo(mi) 9167 } 9168 return ms 9169 } 9170 return mi.MessageOf(x) 9171} 9172 9173// Deprecated: Use ListDlpJobsRequest.ProtoReflect.Descriptor instead. 9174func (*ListDlpJobsRequest) Descriptor() ([]byte, []int) { 9175 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{96} 9176} 9177 9178func (x *ListDlpJobsRequest) GetParent() string { 9179 if x != nil { 9180 return x.Parent 9181 } 9182 return "" 9183} 9184 9185func (x *ListDlpJobsRequest) GetFilter() string { 9186 if x != nil { 9187 return x.Filter 9188 } 9189 return "" 9190} 9191 9192func (x *ListDlpJobsRequest) GetPageSize() int32 { 9193 if x != nil { 9194 return x.PageSize 9195 } 9196 return 0 9197} 9198 9199func (x *ListDlpJobsRequest) GetPageToken() string { 9200 if x != nil { 9201 return x.PageToken 9202 } 9203 return "" 9204} 9205 9206func (x *ListDlpJobsRequest) GetType() DlpJobType { 9207 if x != nil { 9208 return x.Type 9209 } 9210 return DlpJobType_DLP_JOB_TYPE_UNSPECIFIED 9211} 9212 9213func (x *ListDlpJobsRequest) GetOrderBy() string { 9214 if x != nil { 9215 return x.OrderBy 9216 } 9217 return "" 9218} 9219 9220func (x *ListDlpJobsRequest) GetLocationId() string { 9221 if x != nil { 9222 return x.LocationId 9223 } 9224 return "" 9225} 9226 9227// The response message for listing DLP jobs. 9228type ListDlpJobsResponse struct { 9229 state protoimpl.MessageState 9230 sizeCache protoimpl.SizeCache 9231 unknownFields protoimpl.UnknownFields 9232 9233 // A list of DlpJobs that matches the specified filter in the request. 9234 Jobs []*DlpJob `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty"` 9235 // The standard List next-page token. 9236 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 9237} 9238 9239func (x *ListDlpJobsResponse) Reset() { 9240 *x = ListDlpJobsResponse{} 9241 if protoimpl.UnsafeEnabled { 9242 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[97] 9243 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9244 ms.StoreMessageInfo(mi) 9245 } 9246} 9247 9248func (x *ListDlpJobsResponse) String() string { 9249 return protoimpl.X.MessageStringOf(x) 9250} 9251 9252func (*ListDlpJobsResponse) ProtoMessage() {} 9253 9254func (x *ListDlpJobsResponse) ProtoReflect() protoreflect.Message { 9255 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[97] 9256 if protoimpl.UnsafeEnabled && x != nil { 9257 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9258 if ms.LoadMessageInfo() == nil { 9259 ms.StoreMessageInfo(mi) 9260 } 9261 return ms 9262 } 9263 return mi.MessageOf(x) 9264} 9265 9266// Deprecated: Use ListDlpJobsResponse.ProtoReflect.Descriptor instead. 9267func (*ListDlpJobsResponse) Descriptor() ([]byte, []int) { 9268 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{97} 9269} 9270 9271func (x *ListDlpJobsResponse) GetJobs() []*DlpJob { 9272 if x != nil { 9273 return x.Jobs 9274 } 9275 return nil 9276} 9277 9278func (x *ListDlpJobsResponse) GetNextPageToken() string { 9279 if x != nil { 9280 return x.NextPageToken 9281 } 9282 return "" 9283} 9284 9285// The request message for canceling a DLP job. 9286type CancelDlpJobRequest struct { 9287 state protoimpl.MessageState 9288 sizeCache protoimpl.SizeCache 9289 unknownFields protoimpl.UnknownFields 9290 9291 // Required. The name of the DlpJob resource to be cancelled. 9292 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 9293} 9294 9295func (x *CancelDlpJobRequest) Reset() { 9296 *x = CancelDlpJobRequest{} 9297 if protoimpl.UnsafeEnabled { 9298 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[98] 9299 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9300 ms.StoreMessageInfo(mi) 9301 } 9302} 9303 9304func (x *CancelDlpJobRequest) String() string { 9305 return protoimpl.X.MessageStringOf(x) 9306} 9307 9308func (*CancelDlpJobRequest) ProtoMessage() {} 9309 9310func (x *CancelDlpJobRequest) ProtoReflect() protoreflect.Message { 9311 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[98] 9312 if protoimpl.UnsafeEnabled && x != nil { 9313 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9314 if ms.LoadMessageInfo() == nil { 9315 ms.StoreMessageInfo(mi) 9316 } 9317 return ms 9318 } 9319 return mi.MessageOf(x) 9320} 9321 9322// Deprecated: Use CancelDlpJobRequest.ProtoReflect.Descriptor instead. 9323func (*CancelDlpJobRequest) Descriptor() ([]byte, []int) { 9324 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{98} 9325} 9326 9327func (x *CancelDlpJobRequest) GetName() string { 9328 if x != nil { 9329 return x.Name 9330 } 9331 return "" 9332} 9333 9334// The request message for finishing a DLP hybrid job. 9335type FinishDlpJobRequest struct { 9336 state protoimpl.MessageState 9337 sizeCache protoimpl.SizeCache 9338 unknownFields protoimpl.UnknownFields 9339 9340 // Required. The name of the DlpJob resource to be cancelled. 9341 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 9342} 9343 9344func (x *FinishDlpJobRequest) Reset() { 9345 *x = FinishDlpJobRequest{} 9346 if protoimpl.UnsafeEnabled { 9347 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[99] 9348 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9349 ms.StoreMessageInfo(mi) 9350 } 9351} 9352 9353func (x *FinishDlpJobRequest) String() string { 9354 return protoimpl.X.MessageStringOf(x) 9355} 9356 9357func (*FinishDlpJobRequest) ProtoMessage() {} 9358 9359func (x *FinishDlpJobRequest) ProtoReflect() protoreflect.Message { 9360 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[99] 9361 if protoimpl.UnsafeEnabled && x != nil { 9362 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9363 if ms.LoadMessageInfo() == nil { 9364 ms.StoreMessageInfo(mi) 9365 } 9366 return ms 9367 } 9368 return mi.MessageOf(x) 9369} 9370 9371// Deprecated: Use FinishDlpJobRequest.ProtoReflect.Descriptor instead. 9372func (*FinishDlpJobRequest) Descriptor() ([]byte, []int) { 9373 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{99} 9374} 9375 9376func (x *FinishDlpJobRequest) GetName() string { 9377 if x != nil { 9378 return x.Name 9379 } 9380 return "" 9381} 9382 9383// The request message for deleting a DLP job. 9384type DeleteDlpJobRequest struct { 9385 state protoimpl.MessageState 9386 sizeCache protoimpl.SizeCache 9387 unknownFields protoimpl.UnknownFields 9388 9389 // Required. The name of the DlpJob resource to be deleted. 9390 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 9391} 9392 9393func (x *DeleteDlpJobRequest) Reset() { 9394 *x = DeleteDlpJobRequest{} 9395 if protoimpl.UnsafeEnabled { 9396 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[100] 9397 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9398 ms.StoreMessageInfo(mi) 9399 } 9400} 9401 9402func (x *DeleteDlpJobRequest) String() string { 9403 return protoimpl.X.MessageStringOf(x) 9404} 9405 9406func (*DeleteDlpJobRequest) ProtoMessage() {} 9407 9408func (x *DeleteDlpJobRequest) ProtoReflect() protoreflect.Message { 9409 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[100] 9410 if protoimpl.UnsafeEnabled && x != nil { 9411 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9412 if ms.LoadMessageInfo() == nil { 9413 ms.StoreMessageInfo(mi) 9414 } 9415 return ms 9416 } 9417 return mi.MessageOf(x) 9418} 9419 9420// Deprecated: Use DeleteDlpJobRequest.ProtoReflect.Descriptor instead. 9421func (*DeleteDlpJobRequest) Descriptor() ([]byte, []int) { 9422 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{100} 9423} 9424 9425func (x *DeleteDlpJobRequest) GetName() string { 9426 if x != nil { 9427 return x.Name 9428 } 9429 return "" 9430} 9431 9432// Request message for CreateDeidentifyTemplate. 9433type CreateDeidentifyTemplateRequest struct { 9434 state protoimpl.MessageState 9435 sizeCache protoimpl.SizeCache 9436 unknownFields protoimpl.UnknownFields 9437 9438 // Required. The parent resource name, for example projects/my-project-id or 9439 // organizations/my-org-id or projects/my-project-id/locations/{location_id}. 9440 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 9441 // Required. The DeidentifyTemplate to create. 9442 DeidentifyTemplate *DeidentifyTemplate `protobuf:"bytes,2,opt,name=deidentify_template,json=deidentifyTemplate,proto3" json:"deidentify_template,omitempty"` 9443 // The template id can contain uppercase and lowercase letters, 9444 // numbers, and hyphens; that is, it must match the regular 9445 // expression: `[a-zA-Z\\d-_]+`. The maximum length is 100 9446 // characters. Can be empty to allow the system to generate one. 9447 TemplateId string `protobuf:"bytes,3,opt,name=template_id,json=templateId,proto3" json:"template_id,omitempty"` 9448 // Deprecated. This field has no effect. 9449 LocationId string `protobuf:"bytes,4,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 9450} 9451 9452func (x *CreateDeidentifyTemplateRequest) Reset() { 9453 *x = CreateDeidentifyTemplateRequest{} 9454 if protoimpl.UnsafeEnabled { 9455 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[101] 9456 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9457 ms.StoreMessageInfo(mi) 9458 } 9459} 9460 9461func (x *CreateDeidentifyTemplateRequest) String() string { 9462 return protoimpl.X.MessageStringOf(x) 9463} 9464 9465func (*CreateDeidentifyTemplateRequest) ProtoMessage() {} 9466 9467func (x *CreateDeidentifyTemplateRequest) ProtoReflect() protoreflect.Message { 9468 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[101] 9469 if protoimpl.UnsafeEnabled && x != nil { 9470 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9471 if ms.LoadMessageInfo() == nil { 9472 ms.StoreMessageInfo(mi) 9473 } 9474 return ms 9475 } 9476 return mi.MessageOf(x) 9477} 9478 9479// Deprecated: Use CreateDeidentifyTemplateRequest.ProtoReflect.Descriptor instead. 9480func (*CreateDeidentifyTemplateRequest) Descriptor() ([]byte, []int) { 9481 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{101} 9482} 9483 9484func (x *CreateDeidentifyTemplateRequest) GetParent() string { 9485 if x != nil { 9486 return x.Parent 9487 } 9488 return "" 9489} 9490 9491func (x *CreateDeidentifyTemplateRequest) GetDeidentifyTemplate() *DeidentifyTemplate { 9492 if x != nil { 9493 return x.DeidentifyTemplate 9494 } 9495 return nil 9496} 9497 9498func (x *CreateDeidentifyTemplateRequest) GetTemplateId() string { 9499 if x != nil { 9500 return x.TemplateId 9501 } 9502 return "" 9503} 9504 9505func (x *CreateDeidentifyTemplateRequest) GetLocationId() string { 9506 if x != nil { 9507 return x.LocationId 9508 } 9509 return "" 9510} 9511 9512// Request message for UpdateDeidentifyTemplate. 9513type UpdateDeidentifyTemplateRequest struct { 9514 state protoimpl.MessageState 9515 sizeCache protoimpl.SizeCache 9516 unknownFields protoimpl.UnknownFields 9517 9518 // Required. Resource name of organization and deidentify template to be 9519 // updated, for example 9520 // `organizations/433245324/deidentifyTemplates/432452342` or 9521 // projects/project-id/deidentifyTemplates/432452342. 9522 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 9523 // New DeidentifyTemplate value. 9524 DeidentifyTemplate *DeidentifyTemplate `protobuf:"bytes,2,opt,name=deidentify_template,json=deidentifyTemplate,proto3" json:"deidentify_template,omitempty"` 9525 // Mask to control which fields get updated. 9526 UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 9527} 9528 9529func (x *UpdateDeidentifyTemplateRequest) Reset() { 9530 *x = UpdateDeidentifyTemplateRequest{} 9531 if protoimpl.UnsafeEnabled { 9532 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[102] 9533 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9534 ms.StoreMessageInfo(mi) 9535 } 9536} 9537 9538func (x *UpdateDeidentifyTemplateRequest) String() string { 9539 return protoimpl.X.MessageStringOf(x) 9540} 9541 9542func (*UpdateDeidentifyTemplateRequest) ProtoMessage() {} 9543 9544func (x *UpdateDeidentifyTemplateRequest) ProtoReflect() protoreflect.Message { 9545 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[102] 9546 if protoimpl.UnsafeEnabled && x != nil { 9547 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9548 if ms.LoadMessageInfo() == nil { 9549 ms.StoreMessageInfo(mi) 9550 } 9551 return ms 9552 } 9553 return mi.MessageOf(x) 9554} 9555 9556// Deprecated: Use UpdateDeidentifyTemplateRequest.ProtoReflect.Descriptor instead. 9557func (*UpdateDeidentifyTemplateRequest) Descriptor() ([]byte, []int) { 9558 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{102} 9559} 9560 9561func (x *UpdateDeidentifyTemplateRequest) GetName() string { 9562 if x != nil { 9563 return x.Name 9564 } 9565 return "" 9566} 9567 9568func (x *UpdateDeidentifyTemplateRequest) GetDeidentifyTemplate() *DeidentifyTemplate { 9569 if x != nil { 9570 return x.DeidentifyTemplate 9571 } 9572 return nil 9573} 9574 9575func (x *UpdateDeidentifyTemplateRequest) GetUpdateMask() *field_mask.FieldMask { 9576 if x != nil { 9577 return x.UpdateMask 9578 } 9579 return nil 9580} 9581 9582// Request message for GetDeidentifyTemplate. 9583type GetDeidentifyTemplateRequest struct { 9584 state protoimpl.MessageState 9585 sizeCache protoimpl.SizeCache 9586 unknownFields protoimpl.UnknownFields 9587 9588 // Required. Resource name of the organization and deidentify template to be 9589 // read, for example `organizations/433245324/deidentifyTemplates/432452342` 9590 // or projects/project-id/deidentifyTemplates/432452342. 9591 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 9592} 9593 9594func (x *GetDeidentifyTemplateRequest) Reset() { 9595 *x = GetDeidentifyTemplateRequest{} 9596 if protoimpl.UnsafeEnabled { 9597 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[103] 9598 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9599 ms.StoreMessageInfo(mi) 9600 } 9601} 9602 9603func (x *GetDeidentifyTemplateRequest) String() string { 9604 return protoimpl.X.MessageStringOf(x) 9605} 9606 9607func (*GetDeidentifyTemplateRequest) ProtoMessage() {} 9608 9609func (x *GetDeidentifyTemplateRequest) ProtoReflect() protoreflect.Message { 9610 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[103] 9611 if protoimpl.UnsafeEnabled && x != nil { 9612 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9613 if ms.LoadMessageInfo() == nil { 9614 ms.StoreMessageInfo(mi) 9615 } 9616 return ms 9617 } 9618 return mi.MessageOf(x) 9619} 9620 9621// Deprecated: Use GetDeidentifyTemplateRequest.ProtoReflect.Descriptor instead. 9622func (*GetDeidentifyTemplateRequest) Descriptor() ([]byte, []int) { 9623 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{103} 9624} 9625 9626func (x *GetDeidentifyTemplateRequest) GetName() string { 9627 if x != nil { 9628 return x.Name 9629 } 9630 return "" 9631} 9632 9633// Request message for ListDeidentifyTemplates. 9634type ListDeidentifyTemplatesRequest struct { 9635 state protoimpl.MessageState 9636 sizeCache protoimpl.SizeCache 9637 unknownFields protoimpl.UnknownFields 9638 9639 // Required. The parent resource name, for example projects/my-project-id or 9640 // organizations/my-org-id or projects/my-project-id/locations/{location_id}. 9641 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 9642 // Page token to continue retrieval. Comes from previous call 9643 // to `ListDeidentifyTemplates`. 9644 PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 9645 // Size of the page, can be limited by server. If zero server returns 9646 // a page of max size 100. 9647 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 9648 // Comma separated list of fields to order by, 9649 // followed by `asc` or `desc` postfix. This list is case-insensitive, 9650 // default sorting order is ascending, redundant space characters are 9651 // insignificant. 9652 // 9653 // Example: `name asc,update_time, create_time desc` 9654 // 9655 // Supported fields are: 9656 // 9657 // - `create_time`: corresponds to time the template was created. 9658 // - `update_time`: corresponds to time the template was last updated. 9659 // - `name`: corresponds to template's name. 9660 // - `display_name`: corresponds to template's display name. 9661 OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 9662 // Deprecated. This field has no effect. 9663 LocationId string `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 9664} 9665 9666func (x *ListDeidentifyTemplatesRequest) Reset() { 9667 *x = ListDeidentifyTemplatesRequest{} 9668 if protoimpl.UnsafeEnabled { 9669 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[104] 9670 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9671 ms.StoreMessageInfo(mi) 9672 } 9673} 9674 9675func (x *ListDeidentifyTemplatesRequest) String() string { 9676 return protoimpl.X.MessageStringOf(x) 9677} 9678 9679func (*ListDeidentifyTemplatesRequest) ProtoMessage() {} 9680 9681func (x *ListDeidentifyTemplatesRequest) ProtoReflect() protoreflect.Message { 9682 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[104] 9683 if protoimpl.UnsafeEnabled && x != nil { 9684 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9685 if ms.LoadMessageInfo() == nil { 9686 ms.StoreMessageInfo(mi) 9687 } 9688 return ms 9689 } 9690 return mi.MessageOf(x) 9691} 9692 9693// Deprecated: Use ListDeidentifyTemplatesRequest.ProtoReflect.Descriptor instead. 9694func (*ListDeidentifyTemplatesRequest) Descriptor() ([]byte, []int) { 9695 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{104} 9696} 9697 9698func (x *ListDeidentifyTemplatesRequest) GetParent() string { 9699 if x != nil { 9700 return x.Parent 9701 } 9702 return "" 9703} 9704 9705func (x *ListDeidentifyTemplatesRequest) GetPageToken() string { 9706 if x != nil { 9707 return x.PageToken 9708 } 9709 return "" 9710} 9711 9712func (x *ListDeidentifyTemplatesRequest) GetPageSize() int32 { 9713 if x != nil { 9714 return x.PageSize 9715 } 9716 return 0 9717} 9718 9719func (x *ListDeidentifyTemplatesRequest) GetOrderBy() string { 9720 if x != nil { 9721 return x.OrderBy 9722 } 9723 return "" 9724} 9725 9726func (x *ListDeidentifyTemplatesRequest) GetLocationId() string { 9727 if x != nil { 9728 return x.LocationId 9729 } 9730 return "" 9731} 9732 9733// Response message for ListDeidentifyTemplates. 9734type ListDeidentifyTemplatesResponse struct { 9735 state protoimpl.MessageState 9736 sizeCache protoimpl.SizeCache 9737 unknownFields protoimpl.UnknownFields 9738 9739 // List of deidentify templates, up to page_size in 9740 // ListDeidentifyTemplatesRequest. 9741 DeidentifyTemplates []*DeidentifyTemplate `protobuf:"bytes,1,rep,name=deidentify_templates,json=deidentifyTemplates,proto3" json:"deidentify_templates,omitempty"` 9742 // If the next page is available then the next page token to be used 9743 // in following ListDeidentifyTemplates request. 9744 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 9745} 9746 9747func (x *ListDeidentifyTemplatesResponse) Reset() { 9748 *x = ListDeidentifyTemplatesResponse{} 9749 if protoimpl.UnsafeEnabled { 9750 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[105] 9751 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9752 ms.StoreMessageInfo(mi) 9753 } 9754} 9755 9756func (x *ListDeidentifyTemplatesResponse) String() string { 9757 return protoimpl.X.MessageStringOf(x) 9758} 9759 9760func (*ListDeidentifyTemplatesResponse) ProtoMessage() {} 9761 9762func (x *ListDeidentifyTemplatesResponse) ProtoReflect() protoreflect.Message { 9763 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[105] 9764 if protoimpl.UnsafeEnabled && x != nil { 9765 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9766 if ms.LoadMessageInfo() == nil { 9767 ms.StoreMessageInfo(mi) 9768 } 9769 return ms 9770 } 9771 return mi.MessageOf(x) 9772} 9773 9774// Deprecated: Use ListDeidentifyTemplatesResponse.ProtoReflect.Descriptor instead. 9775func (*ListDeidentifyTemplatesResponse) Descriptor() ([]byte, []int) { 9776 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{105} 9777} 9778 9779func (x *ListDeidentifyTemplatesResponse) GetDeidentifyTemplates() []*DeidentifyTemplate { 9780 if x != nil { 9781 return x.DeidentifyTemplates 9782 } 9783 return nil 9784} 9785 9786func (x *ListDeidentifyTemplatesResponse) GetNextPageToken() string { 9787 if x != nil { 9788 return x.NextPageToken 9789 } 9790 return "" 9791} 9792 9793// Request message for DeleteDeidentifyTemplate. 9794type DeleteDeidentifyTemplateRequest struct { 9795 state protoimpl.MessageState 9796 sizeCache protoimpl.SizeCache 9797 unknownFields protoimpl.UnknownFields 9798 9799 // Required. Resource name of the organization and deidentify template to be 9800 // deleted, for example 9801 // `organizations/433245324/deidentifyTemplates/432452342` or 9802 // projects/project-id/deidentifyTemplates/432452342. 9803 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 9804} 9805 9806func (x *DeleteDeidentifyTemplateRequest) Reset() { 9807 *x = DeleteDeidentifyTemplateRequest{} 9808 if protoimpl.UnsafeEnabled { 9809 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[106] 9810 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9811 ms.StoreMessageInfo(mi) 9812 } 9813} 9814 9815func (x *DeleteDeidentifyTemplateRequest) String() string { 9816 return protoimpl.X.MessageStringOf(x) 9817} 9818 9819func (*DeleteDeidentifyTemplateRequest) ProtoMessage() {} 9820 9821func (x *DeleteDeidentifyTemplateRequest) ProtoReflect() protoreflect.Message { 9822 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[106] 9823 if protoimpl.UnsafeEnabled && x != nil { 9824 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9825 if ms.LoadMessageInfo() == nil { 9826 ms.StoreMessageInfo(mi) 9827 } 9828 return ms 9829 } 9830 return mi.MessageOf(x) 9831} 9832 9833// Deprecated: Use DeleteDeidentifyTemplateRequest.ProtoReflect.Descriptor instead. 9834func (*DeleteDeidentifyTemplateRequest) Descriptor() ([]byte, []int) { 9835 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{106} 9836} 9837 9838func (x *DeleteDeidentifyTemplateRequest) GetName() string { 9839 if x != nil { 9840 return x.Name 9841 } 9842 return "" 9843} 9844 9845// Configuration for a custom dictionary created from a data source of any size 9846// up to the maximum size defined in the 9847// [limits](https://cloud.google.com/dlp/limits) page. The artifacts of 9848// dictionary creation are stored in the specified Google Cloud Storage 9849// location. Consider using `CustomInfoType.Dictionary` for smaller dictionaries 9850// that satisfy the size requirements. 9851type LargeCustomDictionaryConfig struct { 9852 state protoimpl.MessageState 9853 sizeCache protoimpl.SizeCache 9854 unknownFields protoimpl.UnknownFields 9855 9856 // Location to store dictionary artifacts in Google Cloud Storage. These files 9857 // will only be accessible by project owners and the DLP API. If any of these 9858 // artifacts are modified, the dictionary is considered invalid and can no 9859 // longer be used. 9860 OutputPath *CloudStoragePath `protobuf:"bytes,1,opt,name=output_path,json=outputPath,proto3" json:"output_path,omitempty"` 9861 // Types that are assignable to Source: 9862 // *LargeCustomDictionaryConfig_CloudStorageFileSet 9863 // *LargeCustomDictionaryConfig_BigQueryField 9864 Source isLargeCustomDictionaryConfig_Source `protobuf_oneof:"source"` 9865} 9866 9867func (x *LargeCustomDictionaryConfig) Reset() { 9868 *x = LargeCustomDictionaryConfig{} 9869 if protoimpl.UnsafeEnabled { 9870 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[107] 9871 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9872 ms.StoreMessageInfo(mi) 9873 } 9874} 9875 9876func (x *LargeCustomDictionaryConfig) String() string { 9877 return protoimpl.X.MessageStringOf(x) 9878} 9879 9880func (*LargeCustomDictionaryConfig) ProtoMessage() {} 9881 9882func (x *LargeCustomDictionaryConfig) ProtoReflect() protoreflect.Message { 9883 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[107] 9884 if protoimpl.UnsafeEnabled && x != nil { 9885 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9886 if ms.LoadMessageInfo() == nil { 9887 ms.StoreMessageInfo(mi) 9888 } 9889 return ms 9890 } 9891 return mi.MessageOf(x) 9892} 9893 9894// Deprecated: Use LargeCustomDictionaryConfig.ProtoReflect.Descriptor instead. 9895func (*LargeCustomDictionaryConfig) Descriptor() ([]byte, []int) { 9896 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{107} 9897} 9898 9899func (x *LargeCustomDictionaryConfig) GetOutputPath() *CloudStoragePath { 9900 if x != nil { 9901 return x.OutputPath 9902 } 9903 return nil 9904} 9905 9906func (m *LargeCustomDictionaryConfig) GetSource() isLargeCustomDictionaryConfig_Source { 9907 if m != nil { 9908 return m.Source 9909 } 9910 return nil 9911} 9912 9913func (x *LargeCustomDictionaryConfig) GetCloudStorageFileSet() *CloudStorageFileSet { 9914 if x, ok := x.GetSource().(*LargeCustomDictionaryConfig_CloudStorageFileSet); ok { 9915 return x.CloudStorageFileSet 9916 } 9917 return nil 9918} 9919 9920func (x *LargeCustomDictionaryConfig) GetBigQueryField() *BigQueryField { 9921 if x, ok := x.GetSource().(*LargeCustomDictionaryConfig_BigQueryField); ok { 9922 return x.BigQueryField 9923 } 9924 return nil 9925} 9926 9927type isLargeCustomDictionaryConfig_Source interface { 9928 isLargeCustomDictionaryConfig_Source() 9929} 9930 9931type LargeCustomDictionaryConfig_CloudStorageFileSet struct { 9932 // Set of files containing newline-delimited lists of dictionary phrases. 9933 CloudStorageFileSet *CloudStorageFileSet `protobuf:"bytes,2,opt,name=cloud_storage_file_set,json=cloudStorageFileSet,proto3,oneof"` 9934} 9935 9936type LargeCustomDictionaryConfig_BigQueryField struct { 9937 // Field in a BigQuery table where each cell represents a dictionary phrase. 9938 BigQueryField *BigQueryField `protobuf:"bytes,3,opt,name=big_query_field,json=bigQueryField,proto3,oneof"` 9939} 9940 9941func (*LargeCustomDictionaryConfig_CloudStorageFileSet) isLargeCustomDictionaryConfig_Source() {} 9942 9943func (*LargeCustomDictionaryConfig_BigQueryField) isLargeCustomDictionaryConfig_Source() {} 9944 9945// Summary statistics of a custom dictionary. 9946type LargeCustomDictionaryStats struct { 9947 state protoimpl.MessageState 9948 sizeCache protoimpl.SizeCache 9949 unknownFields protoimpl.UnknownFields 9950 9951 // Approximate number of distinct phrases in the dictionary. 9952 ApproxNumPhrases int64 `protobuf:"varint,1,opt,name=approx_num_phrases,json=approxNumPhrases,proto3" json:"approx_num_phrases,omitempty"` 9953} 9954 9955func (x *LargeCustomDictionaryStats) Reset() { 9956 *x = LargeCustomDictionaryStats{} 9957 if protoimpl.UnsafeEnabled { 9958 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[108] 9959 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9960 ms.StoreMessageInfo(mi) 9961 } 9962} 9963 9964func (x *LargeCustomDictionaryStats) String() string { 9965 return protoimpl.X.MessageStringOf(x) 9966} 9967 9968func (*LargeCustomDictionaryStats) ProtoMessage() {} 9969 9970func (x *LargeCustomDictionaryStats) ProtoReflect() protoreflect.Message { 9971 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[108] 9972 if protoimpl.UnsafeEnabled && x != nil { 9973 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 9974 if ms.LoadMessageInfo() == nil { 9975 ms.StoreMessageInfo(mi) 9976 } 9977 return ms 9978 } 9979 return mi.MessageOf(x) 9980} 9981 9982// Deprecated: Use LargeCustomDictionaryStats.ProtoReflect.Descriptor instead. 9983func (*LargeCustomDictionaryStats) Descriptor() ([]byte, []int) { 9984 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{108} 9985} 9986 9987func (x *LargeCustomDictionaryStats) GetApproxNumPhrases() int64 { 9988 if x != nil { 9989 return x.ApproxNumPhrases 9990 } 9991 return 0 9992} 9993 9994// Configuration for stored infoTypes. All fields and subfield are provided 9995// by the user. For more information, see 9996// https://cloud.google.com/dlp/docs/creating-custom-infotypes. 9997type StoredInfoTypeConfig struct { 9998 state protoimpl.MessageState 9999 sizeCache protoimpl.SizeCache 10000 unknownFields protoimpl.UnknownFields 10001 10002 // Display name of the StoredInfoType (max 256 characters). 10003 DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 10004 // Description of the StoredInfoType (max 256 characters). 10005 Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` 10006 // Stored infotype types. 10007 // 10008 // Types that are assignable to Type: 10009 // *StoredInfoTypeConfig_LargeCustomDictionary 10010 // *StoredInfoTypeConfig_Dictionary 10011 // *StoredInfoTypeConfig_Regex 10012 Type isStoredInfoTypeConfig_Type `protobuf_oneof:"type"` 10013} 10014 10015func (x *StoredInfoTypeConfig) Reset() { 10016 *x = StoredInfoTypeConfig{} 10017 if protoimpl.UnsafeEnabled { 10018 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[109] 10019 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10020 ms.StoreMessageInfo(mi) 10021 } 10022} 10023 10024func (x *StoredInfoTypeConfig) String() string { 10025 return protoimpl.X.MessageStringOf(x) 10026} 10027 10028func (*StoredInfoTypeConfig) ProtoMessage() {} 10029 10030func (x *StoredInfoTypeConfig) ProtoReflect() protoreflect.Message { 10031 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[109] 10032 if protoimpl.UnsafeEnabled && x != nil { 10033 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10034 if ms.LoadMessageInfo() == nil { 10035 ms.StoreMessageInfo(mi) 10036 } 10037 return ms 10038 } 10039 return mi.MessageOf(x) 10040} 10041 10042// Deprecated: Use StoredInfoTypeConfig.ProtoReflect.Descriptor instead. 10043func (*StoredInfoTypeConfig) Descriptor() ([]byte, []int) { 10044 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{109} 10045} 10046 10047func (x *StoredInfoTypeConfig) GetDisplayName() string { 10048 if x != nil { 10049 return x.DisplayName 10050 } 10051 return "" 10052} 10053 10054func (x *StoredInfoTypeConfig) GetDescription() string { 10055 if x != nil { 10056 return x.Description 10057 } 10058 return "" 10059} 10060 10061func (m *StoredInfoTypeConfig) GetType() isStoredInfoTypeConfig_Type { 10062 if m != nil { 10063 return m.Type 10064 } 10065 return nil 10066} 10067 10068func (x *StoredInfoTypeConfig) GetLargeCustomDictionary() *LargeCustomDictionaryConfig { 10069 if x, ok := x.GetType().(*StoredInfoTypeConfig_LargeCustomDictionary); ok { 10070 return x.LargeCustomDictionary 10071 } 10072 return nil 10073} 10074 10075func (x *StoredInfoTypeConfig) GetDictionary() *CustomInfoType_Dictionary { 10076 if x, ok := x.GetType().(*StoredInfoTypeConfig_Dictionary); ok { 10077 return x.Dictionary 10078 } 10079 return nil 10080} 10081 10082func (x *StoredInfoTypeConfig) GetRegex() *CustomInfoType_Regex { 10083 if x, ok := x.GetType().(*StoredInfoTypeConfig_Regex); ok { 10084 return x.Regex 10085 } 10086 return nil 10087} 10088 10089type isStoredInfoTypeConfig_Type interface { 10090 isStoredInfoTypeConfig_Type() 10091} 10092 10093type StoredInfoTypeConfig_LargeCustomDictionary struct { 10094 // StoredInfoType where findings are defined by a dictionary of phrases. 10095 LargeCustomDictionary *LargeCustomDictionaryConfig `protobuf:"bytes,3,opt,name=large_custom_dictionary,json=largeCustomDictionary,proto3,oneof"` 10096} 10097 10098type StoredInfoTypeConfig_Dictionary struct { 10099 // Store dictionary-based CustomInfoType. 10100 Dictionary *CustomInfoType_Dictionary `protobuf:"bytes,4,opt,name=dictionary,proto3,oneof"` 10101} 10102 10103type StoredInfoTypeConfig_Regex struct { 10104 // Store regular expression-based StoredInfoType. 10105 Regex *CustomInfoType_Regex `protobuf:"bytes,5,opt,name=regex,proto3,oneof"` 10106} 10107 10108func (*StoredInfoTypeConfig_LargeCustomDictionary) isStoredInfoTypeConfig_Type() {} 10109 10110func (*StoredInfoTypeConfig_Dictionary) isStoredInfoTypeConfig_Type() {} 10111 10112func (*StoredInfoTypeConfig_Regex) isStoredInfoTypeConfig_Type() {} 10113 10114// Statistics for a StoredInfoType. 10115type StoredInfoTypeStats struct { 10116 state protoimpl.MessageState 10117 sizeCache protoimpl.SizeCache 10118 unknownFields protoimpl.UnknownFields 10119 10120 // Stat types 10121 // 10122 // Types that are assignable to Type: 10123 // *StoredInfoTypeStats_LargeCustomDictionary 10124 Type isStoredInfoTypeStats_Type `protobuf_oneof:"type"` 10125} 10126 10127func (x *StoredInfoTypeStats) Reset() { 10128 *x = StoredInfoTypeStats{} 10129 if protoimpl.UnsafeEnabled { 10130 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[110] 10131 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10132 ms.StoreMessageInfo(mi) 10133 } 10134} 10135 10136func (x *StoredInfoTypeStats) String() string { 10137 return protoimpl.X.MessageStringOf(x) 10138} 10139 10140func (*StoredInfoTypeStats) ProtoMessage() {} 10141 10142func (x *StoredInfoTypeStats) ProtoReflect() protoreflect.Message { 10143 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[110] 10144 if protoimpl.UnsafeEnabled && x != nil { 10145 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10146 if ms.LoadMessageInfo() == nil { 10147 ms.StoreMessageInfo(mi) 10148 } 10149 return ms 10150 } 10151 return mi.MessageOf(x) 10152} 10153 10154// Deprecated: Use StoredInfoTypeStats.ProtoReflect.Descriptor instead. 10155func (*StoredInfoTypeStats) Descriptor() ([]byte, []int) { 10156 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{110} 10157} 10158 10159func (m *StoredInfoTypeStats) GetType() isStoredInfoTypeStats_Type { 10160 if m != nil { 10161 return m.Type 10162 } 10163 return nil 10164} 10165 10166func (x *StoredInfoTypeStats) GetLargeCustomDictionary() *LargeCustomDictionaryStats { 10167 if x, ok := x.GetType().(*StoredInfoTypeStats_LargeCustomDictionary); ok { 10168 return x.LargeCustomDictionary 10169 } 10170 return nil 10171} 10172 10173type isStoredInfoTypeStats_Type interface { 10174 isStoredInfoTypeStats_Type() 10175} 10176 10177type StoredInfoTypeStats_LargeCustomDictionary struct { 10178 // StoredInfoType where findings are defined by a dictionary of phrases. 10179 LargeCustomDictionary *LargeCustomDictionaryStats `protobuf:"bytes,1,opt,name=large_custom_dictionary,json=largeCustomDictionary,proto3,oneof"` 10180} 10181 10182func (*StoredInfoTypeStats_LargeCustomDictionary) isStoredInfoTypeStats_Type() {} 10183 10184// Version of a StoredInfoType, including the configuration used to build it, 10185// create timestamp, and current state. 10186type StoredInfoTypeVersion struct { 10187 state protoimpl.MessageState 10188 sizeCache protoimpl.SizeCache 10189 unknownFields protoimpl.UnknownFields 10190 10191 // StoredInfoType configuration. 10192 Config *StoredInfoTypeConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` 10193 // Create timestamp of the version. Read-only, determined by the system 10194 // when the version is created. 10195 CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 10196 // Stored info type version state. Read-only, updated by the system 10197 // during dictionary creation. 10198 State StoredInfoTypeState `protobuf:"varint,3,opt,name=state,proto3,enum=google.privacy.dlp.v2.StoredInfoTypeState" json:"state,omitempty"` 10199 // Errors that occurred when creating this storedInfoType version, or 10200 // anomalies detected in the storedInfoType data that render it unusable. Only 10201 // the five most recent errors will be displayed, with the most recent error 10202 // appearing first. 10203 // 10204 // For example, some of the data for stored custom dictionaries is put in 10205 // the user's Google Cloud Storage bucket, and if this data is modified or 10206 // deleted by the user or another system, the dictionary becomes invalid. 10207 // 10208 // If any errors occur, fix the problem indicated by the error message and 10209 // use the UpdateStoredInfoType API method to create another version of the 10210 // storedInfoType to continue using it, reusing the same `config` if it was 10211 // not the source of the error. 10212 Errors []*Error `protobuf:"bytes,4,rep,name=errors,proto3" json:"errors,omitempty"` 10213 // Statistics about this storedInfoType version. 10214 Stats *StoredInfoTypeStats `protobuf:"bytes,5,opt,name=stats,proto3" json:"stats,omitempty"` 10215} 10216 10217func (x *StoredInfoTypeVersion) Reset() { 10218 *x = StoredInfoTypeVersion{} 10219 if protoimpl.UnsafeEnabled { 10220 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[111] 10221 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10222 ms.StoreMessageInfo(mi) 10223 } 10224} 10225 10226func (x *StoredInfoTypeVersion) String() string { 10227 return protoimpl.X.MessageStringOf(x) 10228} 10229 10230func (*StoredInfoTypeVersion) ProtoMessage() {} 10231 10232func (x *StoredInfoTypeVersion) ProtoReflect() protoreflect.Message { 10233 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[111] 10234 if protoimpl.UnsafeEnabled && x != nil { 10235 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10236 if ms.LoadMessageInfo() == nil { 10237 ms.StoreMessageInfo(mi) 10238 } 10239 return ms 10240 } 10241 return mi.MessageOf(x) 10242} 10243 10244// Deprecated: Use StoredInfoTypeVersion.ProtoReflect.Descriptor instead. 10245func (*StoredInfoTypeVersion) Descriptor() ([]byte, []int) { 10246 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{111} 10247} 10248 10249func (x *StoredInfoTypeVersion) GetConfig() *StoredInfoTypeConfig { 10250 if x != nil { 10251 return x.Config 10252 } 10253 return nil 10254} 10255 10256func (x *StoredInfoTypeVersion) GetCreateTime() *timestamp.Timestamp { 10257 if x != nil { 10258 return x.CreateTime 10259 } 10260 return nil 10261} 10262 10263func (x *StoredInfoTypeVersion) GetState() StoredInfoTypeState { 10264 if x != nil { 10265 return x.State 10266 } 10267 return StoredInfoTypeState_STORED_INFO_TYPE_STATE_UNSPECIFIED 10268} 10269 10270func (x *StoredInfoTypeVersion) GetErrors() []*Error { 10271 if x != nil { 10272 return x.Errors 10273 } 10274 return nil 10275} 10276 10277func (x *StoredInfoTypeVersion) GetStats() *StoredInfoTypeStats { 10278 if x != nil { 10279 return x.Stats 10280 } 10281 return nil 10282} 10283 10284// StoredInfoType resource message that contains information about the current 10285// version and any pending updates. 10286type StoredInfoType struct { 10287 state protoimpl.MessageState 10288 sizeCache protoimpl.SizeCache 10289 unknownFields protoimpl.UnknownFields 10290 10291 // Resource name. 10292 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 10293 // Current version of the stored info type. 10294 CurrentVersion *StoredInfoTypeVersion `protobuf:"bytes,2,opt,name=current_version,json=currentVersion,proto3" json:"current_version,omitempty"` 10295 // Pending versions of the stored info type. Empty if no versions are 10296 // pending. 10297 PendingVersions []*StoredInfoTypeVersion `protobuf:"bytes,3,rep,name=pending_versions,json=pendingVersions,proto3" json:"pending_versions,omitempty"` 10298} 10299 10300func (x *StoredInfoType) Reset() { 10301 *x = StoredInfoType{} 10302 if protoimpl.UnsafeEnabled { 10303 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[112] 10304 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10305 ms.StoreMessageInfo(mi) 10306 } 10307} 10308 10309func (x *StoredInfoType) String() string { 10310 return protoimpl.X.MessageStringOf(x) 10311} 10312 10313func (*StoredInfoType) ProtoMessage() {} 10314 10315func (x *StoredInfoType) ProtoReflect() protoreflect.Message { 10316 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[112] 10317 if protoimpl.UnsafeEnabled && x != nil { 10318 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10319 if ms.LoadMessageInfo() == nil { 10320 ms.StoreMessageInfo(mi) 10321 } 10322 return ms 10323 } 10324 return mi.MessageOf(x) 10325} 10326 10327// Deprecated: Use StoredInfoType.ProtoReflect.Descriptor instead. 10328func (*StoredInfoType) Descriptor() ([]byte, []int) { 10329 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{112} 10330} 10331 10332func (x *StoredInfoType) GetName() string { 10333 if x != nil { 10334 return x.Name 10335 } 10336 return "" 10337} 10338 10339func (x *StoredInfoType) GetCurrentVersion() *StoredInfoTypeVersion { 10340 if x != nil { 10341 return x.CurrentVersion 10342 } 10343 return nil 10344} 10345 10346func (x *StoredInfoType) GetPendingVersions() []*StoredInfoTypeVersion { 10347 if x != nil { 10348 return x.PendingVersions 10349 } 10350 return nil 10351} 10352 10353// Request message for CreateStoredInfoType. 10354type CreateStoredInfoTypeRequest struct { 10355 state protoimpl.MessageState 10356 sizeCache protoimpl.SizeCache 10357 unknownFields protoimpl.UnknownFields 10358 10359 // Required. The parent resource name, for example projects/my-project-id or 10360 // organizations/my-org-id or projects/my-project-id/locations/{location_id} 10361 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 10362 // Required. Configuration of the storedInfoType to create. 10363 Config *StoredInfoTypeConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` 10364 // The storedInfoType ID can contain uppercase and lowercase letters, 10365 // numbers, and hyphens; that is, it must match the regular 10366 // expression: `[a-zA-Z\\d-_]+`. The maximum length is 100 10367 // characters. Can be empty to allow the system to generate one. 10368 StoredInfoTypeId string `protobuf:"bytes,3,opt,name=stored_info_type_id,json=storedInfoTypeId,proto3" json:"stored_info_type_id,omitempty"` 10369 // Deprecated. This field has no effect. 10370 LocationId string `protobuf:"bytes,4,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 10371} 10372 10373func (x *CreateStoredInfoTypeRequest) Reset() { 10374 *x = CreateStoredInfoTypeRequest{} 10375 if protoimpl.UnsafeEnabled { 10376 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[113] 10377 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10378 ms.StoreMessageInfo(mi) 10379 } 10380} 10381 10382func (x *CreateStoredInfoTypeRequest) String() string { 10383 return protoimpl.X.MessageStringOf(x) 10384} 10385 10386func (*CreateStoredInfoTypeRequest) ProtoMessage() {} 10387 10388func (x *CreateStoredInfoTypeRequest) ProtoReflect() protoreflect.Message { 10389 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[113] 10390 if protoimpl.UnsafeEnabled && x != nil { 10391 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10392 if ms.LoadMessageInfo() == nil { 10393 ms.StoreMessageInfo(mi) 10394 } 10395 return ms 10396 } 10397 return mi.MessageOf(x) 10398} 10399 10400// Deprecated: Use CreateStoredInfoTypeRequest.ProtoReflect.Descriptor instead. 10401func (*CreateStoredInfoTypeRequest) Descriptor() ([]byte, []int) { 10402 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{113} 10403} 10404 10405func (x *CreateStoredInfoTypeRequest) GetParent() string { 10406 if x != nil { 10407 return x.Parent 10408 } 10409 return "" 10410} 10411 10412func (x *CreateStoredInfoTypeRequest) GetConfig() *StoredInfoTypeConfig { 10413 if x != nil { 10414 return x.Config 10415 } 10416 return nil 10417} 10418 10419func (x *CreateStoredInfoTypeRequest) GetStoredInfoTypeId() string { 10420 if x != nil { 10421 return x.StoredInfoTypeId 10422 } 10423 return "" 10424} 10425 10426func (x *CreateStoredInfoTypeRequest) GetLocationId() string { 10427 if x != nil { 10428 return x.LocationId 10429 } 10430 return "" 10431} 10432 10433// Request message for UpdateStoredInfoType. 10434type UpdateStoredInfoTypeRequest struct { 10435 state protoimpl.MessageState 10436 sizeCache protoimpl.SizeCache 10437 unknownFields protoimpl.UnknownFields 10438 10439 // Required. Resource name of organization and storedInfoType to be updated, for 10440 // example `organizations/433245324/storedInfoTypes/432452342` or 10441 // projects/project-id/storedInfoTypes/432452342. 10442 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 10443 // Updated configuration for the storedInfoType. If not provided, a new 10444 // version of the storedInfoType will be created with the existing 10445 // configuration. 10446 Config *StoredInfoTypeConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` 10447 // Mask to control which fields get updated. 10448 UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 10449} 10450 10451func (x *UpdateStoredInfoTypeRequest) Reset() { 10452 *x = UpdateStoredInfoTypeRequest{} 10453 if protoimpl.UnsafeEnabled { 10454 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[114] 10455 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10456 ms.StoreMessageInfo(mi) 10457 } 10458} 10459 10460func (x *UpdateStoredInfoTypeRequest) String() string { 10461 return protoimpl.X.MessageStringOf(x) 10462} 10463 10464func (*UpdateStoredInfoTypeRequest) ProtoMessage() {} 10465 10466func (x *UpdateStoredInfoTypeRequest) ProtoReflect() protoreflect.Message { 10467 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[114] 10468 if protoimpl.UnsafeEnabled && x != nil { 10469 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10470 if ms.LoadMessageInfo() == nil { 10471 ms.StoreMessageInfo(mi) 10472 } 10473 return ms 10474 } 10475 return mi.MessageOf(x) 10476} 10477 10478// Deprecated: Use UpdateStoredInfoTypeRequest.ProtoReflect.Descriptor instead. 10479func (*UpdateStoredInfoTypeRequest) Descriptor() ([]byte, []int) { 10480 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{114} 10481} 10482 10483func (x *UpdateStoredInfoTypeRequest) GetName() string { 10484 if x != nil { 10485 return x.Name 10486 } 10487 return "" 10488} 10489 10490func (x *UpdateStoredInfoTypeRequest) GetConfig() *StoredInfoTypeConfig { 10491 if x != nil { 10492 return x.Config 10493 } 10494 return nil 10495} 10496 10497func (x *UpdateStoredInfoTypeRequest) GetUpdateMask() *field_mask.FieldMask { 10498 if x != nil { 10499 return x.UpdateMask 10500 } 10501 return nil 10502} 10503 10504// Request message for GetStoredInfoType. 10505type GetStoredInfoTypeRequest struct { 10506 state protoimpl.MessageState 10507 sizeCache protoimpl.SizeCache 10508 unknownFields protoimpl.UnknownFields 10509 10510 // Required. Resource name of the organization and storedInfoType to be read, 10511 // for example `organizations/433245324/storedInfoTypes/432452342` or 10512 // projects/project-id/storedInfoTypes/432452342. 10513 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 10514} 10515 10516func (x *GetStoredInfoTypeRequest) Reset() { 10517 *x = GetStoredInfoTypeRequest{} 10518 if protoimpl.UnsafeEnabled { 10519 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[115] 10520 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10521 ms.StoreMessageInfo(mi) 10522 } 10523} 10524 10525func (x *GetStoredInfoTypeRequest) String() string { 10526 return protoimpl.X.MessageStringOf(x) 10527} 10528 10529func (*GetStoredInfoTypeRequest) ProtoMessage() {} 10530 10531func (x *GetStoredInfoTypeRequest) ProtoReflect() protoreflect.Message { 10532 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[115] 10533 if protoimpl.UnsafeEnabled && x != nil { 10534 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10535 if ms.LoadMessageInfo() == nil { 10536 ms.StoreMessageInfo(mi) 10537 } 10538 return ms 10539 } 10540 return mi.MessageOf(x) 10541} 10542 10543// Deprecated: Use GetStoredInfoTypeRequest.ProtoReflect.Descriptor instead. 10544func (*GetStoredInfoTypeRequest) Descriptor() ([]byte, []int) { 10545 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{115} 10546} 10547 10548func (x *GetStoredInfoTypeRequest) GetName() string { 10549 if x != nil { 10550 return x.Name 10551 } 10552 return "" 10553} 10554 10555// Request message for ListStoredInfoTypes. 10556type ListStoredInfoTypesRequest struct { 10557 state protoimpl.MessageState 10558 sizeCache protoimpl.SizeCache 10559 unknownFields protoimpl.UnknownFields 10560 10561 // Required. The parent resource name, for example projects/my-project-id or 10562 // organizations/my-org-id or projects/my-project-id/locations/{location_id}. 10563 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 10564 // Page token to continue retrieval. Comes from previous call 10565 // to `ListStoredInfoTypes`. 10566 PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 10567 // Size of the page, can be limited by server. If zero server returns 10568 // a page of max size 100. 10569 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 10570 // Comma separated list of fields to order by, 10571 // followed by `asc` or `desc` postfix. This list is case-insensitive, 10572 // default sorting order is ascending, redundant space characters are 10573 // insignificant. 10574 // 10575 // Example: `name asc, display_name, create_time desc` 10576 // 10577 // Supported fields are: 10578 // 10579 // - `create_time`: corresponds to time the most recent version of the 10580 // resource was created. 10581 // - `state`: corresponds to the state of the resource. 10582 // - `name`: corresponds to resource name. 10583 // - `display_name`: corresponds to info type's display name. 10584 OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 10585 // Deprecated. This field has no effect. 10586 LocationId string `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 10587} 10588 10589func (x *ListStoredInfoTypesRequest) Reset() { 10590 *x = ListStoredInfoTypesRequest{} 10591 if protoimpl.UnsafeEnabled { 10592 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[116] 10593 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10594 ms.StoreMessageInfo(mi) 10595 } 10596} 10597 10598func (x *ListStoredInfoTypesRequest) String() string { 10599 return protoimpl.X.MessageStringOf(x) 10600} 10601 10602func (*ListStoredInfoTypesRequest) ProtoMessage() {} 10603 10604func (x *ListStoredInfoTypesRequest) ProtoReflect() protoreflect.Message { 10605 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[116] 10606 if protoimpl.UnsafeEnabled && x != nil { 10607 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10608 if ms.LoadMessageInfo() == nil { 10609 ms.StoreMessageInfo(mi) 10610 } 10611 return ms 10612 } 10613 return mi.MessageOf(x) 10614} 10615 10616// Deprecated: Use ListStoredInfoTypesRequest.ProtoReflect.Descriptor instead. 10617func (*ListStoredInfoTypesRequest) Descriptor() ([]byte, []int) { 10618 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{116} 10619} 10620 10621func (x *ListStoredInfoTypesRequest) GetParent() string { 10622 if x != nil { 10623 return x.Parent 10624 } 10625 return "" 10626} 10627 10628func (x *ListStoredInfoTypesRequest) GetPageToken() string { 10629 if x != nil { 10630 return x.PageToken 10631 } 10632 return "" 10633} 10634 10635func (x *ListStoredInfoTypesRequest) GetPageSize() int32 { 10636 if x != nil { 10637 return x.PageSize 10638 } 10639 return 0 10640} 10641 10642func (x *ListStoredInfoTypesRequest) GetOrderBy() string { 10643 if x != nil { 10644 return x.OrderBy 10645 } 10646 return "" 10647} 10648 10649func (x *ListStoredInfoTypesRequest) GetLocationId() string { 10650 if x != nil { 10651 return x.LocationId 10652 } 10653 return "" 10654} 10655 10656// Response message for ListStoredInfoTypes. 10657type ListStoredInfoTypesResponse struct { 10658 state protoimpl.MessageState 10659 sizeCache protoimpl.SizeCache 10660 unknownFields protoimpl.UnknownFields 10661 10662 // List of storedInfoTypes, up to page_size in ListStoredInfoTypesRequest. 10663 StoredInfoTypes []*StoredInfoType `protobuf:"bytes,1,rep,name=stored_info_types,json=storedInfoTypes,proto3" json:"stored_info_types,omitempty"` 10664 // If the next page is available then the next page token to be used 10665 // in following ListStoredInfoTypes request. 10666 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 10667} 10668 10669func (x *ListStoredInfoTypesResponse) Reset() { 10670 *x = ListStoredInfoTypesResponse{} 10671 if protoimpl.UnsafeEnabled { 10672 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[117] 10673 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10674 ms.StoreMessageInfo(mi) 10675 } 10676} 10677 10678func (x *ListStoredInfoTypesResponse) String() string { 10679 return protoimpl.X.MessageStringOf(x) 10680} 10681 10682func (*ListStoredInfoTypesResponse) ProtoMessage() {} 10683 10684func (x *ListStoredInfoTypesResponse) ProtoReflect() protoreflect.Message { 10685 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[117] 10686 if protoimpl.UnsafeEnabled && x != nil { 10687 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10688 if ms.LoadMessageInfo() == nil { 10689 ms.StoreMessageInfo(mi) 10690 } 10691 return ms 10692 } 10693 return mi.MessageOf(x) 10694} 10695 10696// Deprecated: Use ListStoredInfoTypesResponse.ProtoReflect.Descriptor instead. 10697func (*ListStoredInfoTypesResponse) Descriptor() ([]byte, []int) { 10698 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{117} 10699} 10700 10701func (x *ListStoredInfoTypesResponse) GetStoredInfoTypes() []*StoredInfoType { 10702 if x != nil { 10703 return x.StoredInfoTypes 10704 } 10705 return nil 10706} 10707 10708func (x *ListStoredInfoTypesResponse) GetNextPageToken() string { 10709 if x != nil { 10710 return x.NextPageToken 10711 } 10712 return "" 10713} 10714 10715// Request message for DeleteStoredInfoType. 10716type DeleteStoredInfoTypeRequest struct { 10717 state protoimpl.MessageState 10718 sizeCache protoimpl.SizeCache 10719 unknownFields protoimpl.UnknownFields 10720 10721 // Required. Resource name of the organization and storedInfoType to be 10722 // deleted, for example `organizations/433245324/storedInfoTypes/432452342` or 10723 // projects/project-id/storedInfoTypes/432452342. 10724 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 10725} 10726 10727func (x *DeleteStoredInfoTypeRequest) Reset() { 10728 *x = DeleteStoredInfoTypeRequest{} 10729 if protoimpl.UnsafeEnabled { 10730 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[118] 10731 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10732 ms.StoreMessageInfo(mi) 10733 } 10734} 10735 10736func (x *DeleteStoredInfoTypeRequest) String() string { 10737 return protoimpl.X.MessageStringOf(x) 10738} 10739 10740func (*DeleteStoredInfoTypeRequest) ProtoMessage() {} 10741 10742func (x *DeleteStoredInfoTypeRequest) ProtoReflect() protoreflect.Message { 10743 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[118] 10744 if protoimpl.UnsafeEnabled && x != nil { 10745 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10746 if ms.LoadMessageInfo() == nil { 10747 ms.StoreMessageInfo(mi) 10748 } 10749 return ms 10750 } 10751 return mi.MessageOf(x) 10752} 10753 10754// Deprecated: Use DeleteStoredInfoTypeRequest.ProtoReflect.Descriptor instead. 10755func (*DeleteStoredInfoTypeRequest) Descriptor() ([]byte, []int) { 10756 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{118} 10757} 10758 10759func (x *DeleteStoredInfoTypeRequest) GetName() string { 10760 if x != nil { 10761 return x.Name 10762 } 10763 return "" 10764} 10765 10766// Request to search for potentially sensitive info in a custom location. 10767type HybridInspectJobTriggerRequest struct { 10768 state protoimpl.MessageState 10769 sizeCache protoimpl.SizeCache 10770 unknownFields protoimpl.UnknownFields 10771 10772 // Required. Resource name of the trigger to execute a hybrid inspect on, for 10773 // example `projects/dlp-test-project/jobTriggers/53234423`. 10774 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 10775 // The item to inspect. 10776 HybridItem *HybridContentItem `protobuf:"bytes,3,opt,name=hybrid_item,json=hybridItem,proto3" json:"hybrid_item,omitempty"` 10777} 10778 10779func (x *HybridInspectJobTriggerRequest) Reset() { 10780 *x = HybridInspectJobTriggerRequest{} 10781 if protoimpl.UnsafeEnabled { 10782 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[119] 10783 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10784 ms.StoreMessageInfo(mi) 10785 } 10786} 10787 10788func (x *HybridInspectJobTriggerRequest) String() string { 10789 return protoimpl.X.MessageStringOf(x) 10790} 10791 10792func (*HybridInspectJobTriggerRequest) ProtoMessage() {} 10793 10794func (x *HybridInspectJobTriggerRequest) ProtoReflect() protoreflect.Message { 10795 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[119] 10796 if protoimpl.UnsafeEnabled && x != nil { 10797 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10798 if ms.LoadMessageInfo() == nil { 10799 ms.StoreMessageInfo(mi) 10800 } 10801 return ms 10802 } 10803 return mi.MessageOf(x) 10804} 10805 10806// Deprecated: Use HybridInspectJobTriggerRequest.ProtoReflect.Descriptor instead. 10807func (*HybridInspectJobTriggerRequest) Descriptor() ([]byte, []int) { 10808 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{119} 10809} 10810 10811func (x *HybridInspectJobTriggerRequest) GetName() string { 10812 if x != nil { 10813 return x.Name 10814 } 10815 return "" 10816} 10817 10818func (x *HybridInspectJobTriggerRequest) GetHybridItem() *HybridContentItem { 10819 if x != nil { 10820 return x.HybridItem 10821 } 10822 return nil 10823} 10824 10825// Request to search for potentially sensitive info in a custom location. 10826type HybridInspectDlpJobRequest struct { 10827 state protoimpl.MessageState 10828 sizeCache protoimpl.SizeCache 10829 unknownFields protoimpl.UnknownFields 10830 10831 // Required. Resource name of the job to execute a hybrid inspect on, for 10832 // example `projects/dlp-test-project/dlpJob/53234423`. 10833 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 10834 // The item to inspect. 10835 HybridItem *HybridContentItem `protobuf:"bytes,3,opt,name=hybrid_item,json=hybridItem,proto3" json:"hybrid_item,omitempty"` 10836} 10837 10838func (x *HybridInspectDlpJobRequest) Reset() { 10839 *x = HybridInspectDlpJobRequest{} 10840 if protoimpl.UnsafeEnabled { 10841 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[120] 10842 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10843 ms.StoreMessageInfo(mi) 10844 } 10845} 10846 10847func (x *HybridInspectDlpJobRequest) String() string { 10848 return protoimpl.X.MessageStringOf(x) 10849} 10850 10851func (*HybridInspectDlpJobRequest) ProtoMessage() {} 10852 10853func (x *HybridInspectDlpJobRequest) ProtoReflect() protoreflect.Message { 10854 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[120] 10855 if protoimpl.UnsafeEnabled && x != nil { 10856 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10857 if ms.LoadMessageInfo() == nil { 10858 ms.StoreMessageInfo(mi) 10859 } 10860 return ms 10861 } 10862 return mi.MessageOf(x) 10863} 10864 10865// Deprecated: Use HybridInspectDlpJobRequest.ProtoReflect.Descriptor instead. 10866func (*HybridInspectDlpJobRequest) Descriptor() ([]byte, []int) { 10867 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{120} 10868} 10869 10870func (x *HybridInspectDlpJobRequest) GetName() string { 10871 if x != nil { 10872 return x.Name 10873 } 10874 return "" 10875} 10876 10877func (x *HybridInspectDlpJobRequest) GetHybridItem() *HybridContentItem { 10878 if x != nil { 10879 return x.HybridItem 10880 } 10881 return nil 10882} 10883 10884// An individual hybrid item to inspect. Will be stored temporarily during 10885// processing. 10886type HybridContentItem struct { 10887 state protoimpl.MessageState 10888 sizeCache protoimpl.SizeCache 10889 unknownFields protoimpl.UnknownFields 10890 10891 // The item to inspect. 10892 Item *ContentItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` 10893 // Supplementary information that will be added to each finding. 10894 FindingDetails *HybridFindingDetails `protobuf:"bytes,2,opt,name=finding_details,json=findingDetails,proto3" json:"finding_details,omitempty"` 10895} 10896 10897func (x *HybridContentItem) Reset() { 10898 *x = HybridContentItem{} 10899 if protoimpl.UnsafeEnabled { 10900 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[121] 10901 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10902 ms.StoreMessageInfo(mi) 10903 } 10904} 10905 10906func (x *HybridContentItem) String() string { 10907 return protoimpl.X.MessageStringOf(x) 10908} 10909 10910func (*HybridContentItem) ProtoMessage() {} 10911 10912func (x *HybridContentItem) ProtoReflect() protoreflect.Message { 10913 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[121] 10914 if protoimpl.UnsafeEnabled && x != nil { 10915 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10916 if ms.LoadMessageInfo() == nil { 10917 ms.StoreMessageInfo(mi) 10918 } 10919 return ms 10920 } 10921 return mi.MessageOf(x) 10922} 10923 10924// Deprecated: Use HybridContentItem.ProtoReflect.Descriptor instead. 10925func (*HybridContentItem) Descriptor() ([]byte, []int) { 10926 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{121} 10927} 10928 10929func (x *HybridContentItem) GetItem() *ContentItem { 10930 if x != nil { 10931 return x.Item 10932 } 10933 return nil 10934} 10935 10936func (x *HybridContentItem) GetFindingDetails() *HybridFindingDetails { 10937 if x != nil { 10938 return x.FindingDetails 10939 } 10940 return nil 10941} 10942 10943// Populate to associate additional data with each finding. 10944type HybridFindingDetails struct { 10945 state protoimpl.MessageState 10946 sizeCache protoimpl.SizeCache 10947 unknownFields protoimpl.UnknownFields 10948 10949 // Details about the container where the content being inspected is from. 10950 ContainerDetails *Container `protobuf:"bytes,1,opt,name=container_details,json=containerDetails,proto3" json:"container_details,omitempty"` 10951 // Offset in bytes of the line, from the beginning of the file, where the 10952 // finding is located. Populate if the item being scanned is only part of a 10953 // bigger item, such as a shard of a file and you want to track the absolute 10954 // position of the finding. 10955 FileOffset int64 `protobuf:"varint,2,opt,name=file_offset,json=fileOffset,proto3" json:"file_offset,omitempty"` 10956 // Offset of the row for tables. Populate if the row(s) being scanned are 10957 // part of a bigger dataset and you want to keep track of their absolute 10958 // position. 10959 RowOffset int64 `protobuf:"varint,3,opt,name=row_offset,json=rowOffset,proto3" json:"row_offset,omitempty"` 10960 // If the container is a table, additional information to make findings 10961 // meaningful such as the columns that are primary keys. If not known ahead 10962 // of time, can also be set within each inspect hybrid call and the two 10963 // will be merged. Note that identifying_fields will only be stored to 10964 // BigQuery, and only if the BigQuery action has been included. 10965 TableOptions *TableOptions `protobuf:"bytes,4,opt,name=table_options,json=tableOptions,proto3" json:"table_options,omitempty"` 10966 // Labels to represent user provided metadata about the data being inspected. 10967 // If configured by the job, some key values may be required. 10968 // The labels associated with `Finding`'s produced by hybrid 10969 // inspection. 10970 // 10971 // Label keys must be between 1 and 63 characters long and must conform 10972 // to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. 10973 // 10974 // Label values must be between 0 and 63 characters long and must conform 10975 // to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. 10976 // 10977 // No more than 10 labels can be associated with a given finding. 10978 // 10979 // Examples: 10980 // * `"environment" : "production"` 10981 // * `"pipeline" : "etl"` 10982 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"` 10983} 10984 10985func (x *HybridFindingDetails) Reset() { 10986 *x = HybridFindingDetails{} 10987 if protoimpl.UnsafeEnabled { 10988 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[122] 10989 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 10990 ms.StoreMessageInfo(mi) 10991 } 10992} 10993 10994func (x *HybridFindingDetails) String() string { 10995 return protoimpl.X.MessageStringOf(x) 10996} 10997 10998func (*HybridFindingDetails) ProtoMessage() {} 10999 11000func (x *HybridFindingDetails) ProtoReflect() protoreflect.Message { 11001 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[122] 11002 if protoimpl.UnsafeEnabled && x != nil { 11003 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11004 if ms.LoadMessageInfo() == nil { 11005 ms.StoreMessageInfo(mi) 11006 } 11007 return ms 11008 } 11009 return mi.MessageOf(x) 11010} 11011 11012// Deprecated: Use HybridFindingDetails.ProtoReflect.Descriptor instead. 11013func (*HybridFindingDetails) Descriptor() ([]byte, []int) { 11014 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{122} 11015} 11016 11017func (x *HybridFindingDetails) GetContainerDetails() *Container { 11018 if x != nil { 11019 return x.ContainerDetails 11020 } 11021 return nil 11022} 11023 11024func (x *HybridFindingDetails) GetFileOffset() int64 { 11025 if x != nil { 11026 return x.FileOffset 11027 } 11028 return 0 11029} 11030 11031func (x *HybridFindingDetails) GetRowOffset() int64 { 11032 if x != nil { 11033 return x.RowOffset 11034 } 11035 return 0 11036} 11037 11038func (x *HybridFindingDetails) GetTableOptions() *TableOptions { 11039 if x != nil { 11040 return x.TableOptions 11041 } 11042 return nil 11043} 11044 11045func (x *HybridFindingDetails) GetLabels() map[string]string { 11046 if x != nil { 11047 return x.Labels 11048 } 11049 return nil 11050} 11051 11052// Quota exceeded errors will be thrown once quota has been met. 11053type HybridInspectResponse struct { 11054 state protoimpl.MessageState 11055 sizeCache protoimpl.SizeCache 11056 unknownFields protoimpl.UnknownFields 11057} 11058 11059func (x *HybridInspectResponse) Reset() { 11060 *x = HybridInspectResponse{} 11061 if protoimpl.UnsafeEnabled { 11062 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[123] 11063 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11064 ms.StoreMessageInfo(mi) 11065 } 11066} 11067 11068func (x *HybridInspectResponse) String() string { 11069 return protoimpl.X.MessageStringOf(x) 11070} 11071 11072func (*HybridInspectResponse) ProtoMessage() {} 11073 11074func (x *HybridInspectResponse) ProtoReflect() protoreflect.Message { 11075 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[123] 11076 if protoimpl.UnsafeEnabled && x != nil { 11077 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11078 if ms.LoadMessageInfo() == nil { 11079 ms.StoreMessageInfo(mi) 11080 } 11081 return ms 11082 } 11083 return mi.MessageOf(x) 11084} 11085 11086// Deprecated: Use HybridInspectResponse.ProtoReflect.Descriptor instead. 11087func (*HybridInspectResponse) Descriptor() ([]byte, []int) { 11088 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{123} 11089} 11090 11091// Configuration to control the number of findings returned. 11092type InspectConfig_FindingLimits struct { 11093 state protoimpl.MessageState 11094 sizeCache protoimpl.SizeCache 11095 unknownFields protoimpl.UnknownFields 11096 11097 // Max number of findings that will be returned for each item scanned. 11098 // When set within `InspectJobConfig`, 11099 // the maximum returned is 2000 regardless if this is set higher. 11100 // When set within `InspectContentRequest`, this field is ignored. 11101 MaxFindingsPerItem int32 `protobuf:"varint,1,opt,name=max_findings_per_item,json=maxFindingsPerItem,proto3" json:"max_findings_per_item,omitempty"` 11102 // Max number of findings that will be returned per request/job. 11103 // When set within `InspectContentRequest`, the maximum returned is 2000 11104 // regardless if this is set higher. 11105 MaxFindingsPerRequest int32 `protobuf:"varint,2,opt,name=max_findings_per_request,json=maxFindingsPerRequest,proto3" json:"max_findings_per_request,omitempty"` 11106 // Configuration of findings limit given for specified infoTypes. 11107 MaxFindingsPerInfoType []*InspectConfig_FindingLimits_InfoTypeLimit `protobuf:"bytes,3,rep,name=max_findings_per_info_type,json=maxFindingsPerInfoType,proto3" json:"max_findings_per_info_type,omitempty"` 11108} 11109 11110func (x *InspectConfig_FindingLimits) Reset() { 11111 *x = InspectConfig_FindingLimits{} 11112 if protoimpl.UnsafeEnabled { 11113 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[124] 11114 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11115 ms.StoreMessageInfo(mi) 11116 } 11117} 11118 11119func (x *InspectConfig_FindingLimits) String() string { 11120 return protoimpl.X.MessageStringOf(x) 11121} 11122 11123func (*InspectConfig_FindingLimits) ProtoMessage() {} 11124 11125func (x *InspectConfig_FindingLimits) ProtoReflect() protoreflect.Message { 11126 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[124] 11127 if protoimpl.UnsafeEnabled && x != nil { 11128 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11129 if ms.LoadMessageInfo() == nil { 11130 ms.StoreMessageInfo(mi) 11131 } 11132 return ms 11133 } 11134 return mi.MessageOf(x) 11135} 11136 11137// Deprecated: Use InspectConfig_FindingLimits.ProtoReflect.Descriptor instead. 11138func (*InspectConfig_FindingLimits) Descriptor() ([]byte, []int) { 11139 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{4, 0} 11140} 11141 11142func (x *InspectConfig_FindingLimits) GetMaxFindingsPerItem() int32 { 11143 if x != nil { 11144 return x.MaxFindingsPerItem 11145 } 11146 return 0 11147} 11148 11149func (x *InspectConfig_FindingLimits) GetMaxFindingsPerRequest() int32 { 11150 if x != nil { 11151 return x.MaxFindingsPerRequest 11152 } 11153 return 0 11154} 11155 11156func (x *InspectConfig_FindingLimits) GetMaxFindingsPerInfoType() []*InspectConfig_FindingLimits_InfoTypeLimit { 11157 if x != nil { 11158 return x.MaxFindingsPerInfoType 11159 } 11160 return nil 11161} 11162 11163// Max findings configuration per infoType, per content item or long 11164// running DlpJob. 11165type InspectConfig_FindingLimits_InfoTypeLimit struct { 11166 state protoimpl.MessageState 11167 sizeCache protoimpl.SizeCache 11168 unknownFields protoimpl.UnknownFields 11169 11170 // Type of information the findings limit applies to. Only one limit per 11171 // info_type should be provided. If InfoTypeLimit does not have an 11172 // info_type, the DLP API applies the limit against all info_types that 11173 // are found but not specified in another InfoTypeLimit. 11174 InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"` 11175 // Max findings limit for the given infoType. 11176 MaxFindings int32 `protobuf:"varint,2,opt,name=max_findings,json=maxFindings,proto3" json:"max_findings,omitempty"` 11177} 11178 11179func (x *InspectConfig_FindingLimits_InfoTypeLimit) Reset() { 11180 *x = InspectConfig_FindingLimits_InfoTypeLimit{} 11181 if protoimpl.UnsafeEnabled { 11182 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[125] 11183 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11184 ms.StoreMessageInfo(mi) 11185 } 11186} 11187 11188func (x *InspectConfig_FindingLimits_InfoTypeLimit) String() string { 11189 return protoimpl.X.MessageStringOf(x) 11190} 11191 11192func (*InspectConfig_FindingLimits_InfoTypeLimit) ProtoMessage() {} 11193 11194func (x *InspectConfig_FindingLimits_InfoTypeLimit) ProtoReflect() protoreflect.Message { 11195 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[125] 11196 if protoimpl.UnsafeEnabled && x != nil { 11197 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11198 if ms.LoadMessageInfo() == nil { 11199 ms.StoreMessageInfo(mi) 11200 } 11201 return ms 11202 } 11203 return mi.MessageOf(x) 11204} 11205 11206// Deprecated: Use InspectConfig_FindingLimits_InfoTypeLimit.ProtoReflect.Descriptor instead. 11207func (*InspectConfig_FindingLimits_InfoTypeLimit) Descriptor() ([]byte, []int) { 11208 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{4, 0, 0} 11209} 11210 11211func (x *InspectConfig_FindingLimits_InfoTypeLimit) GetInfoType() *InfoType { 11212 if x != nil { 11213 return x.InfoType 11214 } 11215 return nil 11216} 11217 11218func (x *InspectConfig_FindingLimits_InfoTypeLimit) GetMaxFindings() int32 { 11219 if x != nil { 11220 return x.MaxFindings 11221 } 11222 return 0 11223} 11224 11225// Values of the row. 11226type Table_Row struct { 11227 state protoimpl.MessageState 11228 sizeCache protoimpl.SizeCache 11229 unknownFields protoimpl.UnknownFields 11230 11231 // Individual cells. 11232 Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` 11233} 11234 11235func (x *Table_Row) Reset() { 11236 *x = Table_Row{} 11237 if protoimpl.UnsafeEnabled { 11238 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[126] 11239 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11240 ms.StoreMessageInfo(mi) 11241 } 11242} 11243 11244func (x *Table_Row) String() string { 11245 return protoimpl.X.MessageStringOf(x) 11246} 11247 11248func (*Table_Row) ProtoMessage() {} 11249 11250func (x *Table_Row) ProtoReflect() protoreflect.Message { 11251 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[126] 11252 if protoimpl.UnsafeEnabled && x != nil { 11253 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11254 if ms.LoadMessageInfo() == nil { 11255 ms.StoreMessageInfo(mi) 11256 } 11257 return ms 11258 } 11259 return mi.MessageOf(x) 11260} 11261 11262// Deprecated: Use Table_Row.ProtoReflect.Descriptor instead. 11263func (*Table_Row) Descriptor() ([]byte, []int) { 11264 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{7, 0} 11265} 11266 11267func (x *Table_Row) GetValues() []*Value { 11268 if x != nil { 11269 return x.Values 11270 } 11271 return nil 11272} 11273 11274// Configuration for determining how redaction of images should occur. 11275type RedactImageRequest_ImageRedactionConfig struct { 11276 state protoimpl.MessageState 11277 sizeCache protoimpl.SizeCache 11278 unknownFields protoimpl.UnknownFields 11279 11280 // Type of information to redact from images. 11281 // 11282 // Types that are assignable to Target: 11283 // *RedactImageRequest_ImageRedactionConfig_InfoType 11284 // *RedactImageRequest_ImageRedactionConfig_RedactAllText 11285 Target isRedactImageRequest_ImageRedactionConfig_Target `protobuf_oneof:"target"` 11286 // The color to use when redacting content from an image. If not specified, 11287 // the default is black. 11288 RedactionColor *Color `protobuf:"bytes,3,opt,name=redaction_color,json=redactionColor,proto3" json:"redaction_color,omitempty"` 11289} 11290 11291func (x *RedactImageRequest_ImageRedactionConfig) Reset() { 11292 *x = RedactImageRequest_ImageRedactionConfig{} 11293 if protoimpl.UnsafeEnabled { 11294 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[128] 11295 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11296 ms.StoreMessageInfo(mi) 11297 } 11298} 11299 11300func (x *RedactImageRequest_ImageRedactionConfig) String() string { 11301 return protoimpl.X.MessageStringOf(x) 11302} 11303 11304func (*RedactImageRequest_ImageRedactionConfig) ProtoMessage() {} 11305 11306func (x *RedactImageRequest_ImageRedactionConfig) ProtoReflect() protoreflect.Message { 11307 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[128] 11308 if protoimpl.UnsafeEnabled && x != nil { 11309 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11310 if ms.LoadMessageInfo() == nil { 11311 ms.StoreMessageInfo(mi) 11312 } 11313 return ms 11314 } 11315 return mi.MessageOf(x) 11316} 11317 11318// Deprecated: Use RedactImageRequest_ImageRedactionConfig.ProtoReflect.Descriptor instead. 11319func (*RedactImageRequest_ImageRedactionConfig) Descriptor() ([]byte, []int) { 11320 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{21, 0} 11321} 11322 11323func (m *RedactImageRequest_ImageRedactionConfig) GetTarget() isRedactImageRequest_ImageRedactionConfig_Target { 11324 if m != nil { 11325 return m.Target 11326 } 11327 return nil 11328} 11329 11330func (x *RedactImageRequest_ImageRedactionConfig) GetInfoType() *InfoType { 11331 if x, ok := x.GetTarget().(*RedactImageRequest_ImageRedactionConfig_InfoType); ok { 11332 return x.InfoType 11333 } 11334 return nil 11335} 11336 11337func (x *RedactImageRequest_ImageRedactionConfig) GetRedactAllText() bool { 11338 if x, ok := x.GetTarget().(*RedactImageRequest_ImageRedactionConfig_RedactAllText); ok { 11339 return x.RedactAllText 11340 } 11341 return false 11342} 11343 11344func (x *RedactImageRequest_ImageRedactionConfig) GetRedactionColor() *Color { 11345 if x != nil { 11346 return x.RedactionColor 11347 } 11348 return nil 11349} 11350 11351type isRedactImageRequest_ImageRedactionConfig_Target interface { 11352 isRedactImageRequest_ImageRedactionConfig_Target() 11353} 11354 11355type RedactImageRequest_ImageRedactionConfig_InfoType struct { 11356 // Only one per info_type should be provided per request. If not 11357 // specified, and redact_all_text is false, the DLP API will redact all 11358 // text that it matches against all info_types that are found, but not 11359 // specified in another ImageRedactionConfig. 11360 InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3,oneof"` 11361} 11362 11363type RedactImageRequest_ImageRedactionConfig_RedactAllText struct { 11364 // If true, all text found in the image, regardless whether it matches an 11365 // info_type, is redacted. Only one should be provided. 11366 RedactAllText bool `protobuf:"varint,2,opt,name=redact_all_text,json=redactAllText,proto3,oneof"` 11367} 11368 11369func (*RedactImageRequest_ImageRedactionConfig_InfoType) isRedactImageRequest_ImageRedactionConfig_Target() { 11370} 11371 11372func (*RedactImageRequest_ImageRedactionConfig_RedactAllText) isRedactImageRequest_ImageRedactionConfig_Target() { 11373} 11374 11375// Snapshot of the inspection configuration. 11376type InspectDataSourceDetails_RequestedOptions struct { 11377 state protoimpl.MessageState 11378 sizeCache protoimpl.SizeCache 11379 unknownFields protoimpl.UnknownFields 11380 11381 // If run with an InspectTemplate, a snapshot of its state at the time of 11382 // this run. 11383 SnapshotInspectTemplate *InspectTemplate `protobuf:"bytes,1,opt,name=snapshot_inspect_template,json=snapshotInspectTemplate,proto3" json:"snapshot_inspect_template,omitempty"` 11384 // Inspect config. 11385 JobConfig *InspectJobConfig `protobuf:"bytes,3,opt,name=job_config,json=jobConfig,proto3" json:"job_config,omitempty"` 11386} 11387 11388func (x *InspectDataSourceDetails_RequestedOptions) Reset() { 11389 *x = InspectDataSourceDetails_RequestedOptions{} 11390 if protoimpl.UnsafeEnabled { 11391 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[129] 11392 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11393 ms.StoreMessageInfo(mi) 11394 } 11395} 11396 11397func (x *InspectDataSourceDetails_RequestedOptions) String() string { 11398 return protoimpl.X.MessageStringOf(x) 11399} 11400 11401func (*InspectDataSourceDetails_RequestedOptions) ProtoMessage() {} 11402 11403func (x *InspectDataSourceDetails_RequestedOptions) ProtoReflect() protoreflect.Message { 11404 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[129] 11405 if protoimpl.UnsafeEnabled && x != nil { 11406 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11407 if ms.LoadMessageInfo() == nil { 11408 ms.StoreMessageInfo(mi) 11409 } 11410 return ms 11411 } 11412 return mi.MessageOf(x) 11413} 11414 11415// Deprecated: Use InspectDataSourceDetails_RequestedOptions.ProtoReflect.Descriptor instead. 11416func (*InspectDataSourceDetails_RequestedOptions) Descriptor() ([]byte, []int) { 11417 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{32, 0} 11418} 11419 11420func (x *InspectDataSourceDetails_RequestedOptions) GetSnapshotInspectTemplate() *InspectTemplate { 11421 if x != nil { 11422 return x.SnapshotInspectTemplate 11423 } 11424 return nil 11425} 11426 11427func (x *InspectDataSourceDetails_RequestedOptions) GetJobConfig() *InspectJobConfig { 11428 if x != nil { 11429 return x.JobConfig 11430 } 11431 return nil 11432} 11433 11434// All result fields mentioned below are updated while the job is processing. 11435type InspectDataSourceDetails_Result struct { 11436 state protoimpl.MessageState 11437 sizeCache protoimpl.SizeCache 11438 unknownFields protoimpl.UnknownFields 11439 11440 // Total size in bytes that were processed. 11441 ProcessedBytes int64 `protobuf:"varint,1,opt,name=processed_bytes,json=processedBytes,proto3" json:"processed_bytes,omitempty"` 11442 // Estimate of the number of bytes to process. 11443 TotalEstimatedBytes int64 `protobuf:"varint,2,opt,name=total_estimated_bytes,json=totalEstimatedBytes,proto3" json:"total_estimated_bytes,omitempty"` 11444 // Statistics of how many instances of each info type were found during 11445 // inspect job. 11446 InfoTypeStats []*InfoTypeStats `protobuf:"bytes,3,rep,name=info_type_stats,json=infoTypeStats,proto3" json:"info_type_stats,omitempty"` 11447 // Statistics related to the processing of hybrid inspect. 11448 // Early access feature is in a pre-release state and might change or have 11449 // limited support. For more information, see 11450 // https://cloud.google.com/products#product-launch-stages. 11451 HybridStats *HybridInspectStatistics `protobuf:"bytes,7,opt,name=hybrid_stats,json=hybridStats,proto3" json:"hybrid_stats,omitempty"` 11452} 11453 11454func (x *InspectDataSourceDetails_Result) Reset() { 11455 *x = InspectDataSourceDetails_Result{} 11456 if protoimpl.UnsafeEnabled { 11457 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[130] 11458 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11459 ms.StoreMessageInfo(mi) 11460 } 11461} 11462 11463func (x *InspectDataSourceDetails_Result) String() string { 11464 return protoimpl.X.MessageStringOf(x) 11465} 11466 11467func (*InspectDataSourceDetails_Result) ProtoMessage() {} 11468 11469func (x *InspectDataSourceDetails_Result) ProtoReflect() protoreflect.Message { 11470 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[130] 11471 if protoimpl.UnsafeEnabled && x != nil { 11472 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11473 if ms.LoadMessageInfo() == nil { 11474 ms.StoreMessageInfo(mi) 11475 } 11476 return ms 11477 } 11478 return mi.MessageOf(x) 11479} 11480 11481// Deprecated: Use InspectDataSourceDetails_Result.ProtoReflect.Descriptor instead. 11482func (*InspectDataSourceDetails_Result) Descriptor() ([]byte, []int) { 11483 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{32, 1} 11484} 11485 11486func (x *InspectDataSourceDetails_Result) GetProcessedBytes() int64 { 11487 if x != nil { 11488 return x.ProcessedBytes 11489 } 11490 return 0 11491} 11492 11493func (x *InspectDataSourceDetails_Result) GetTotalEstimatedBytes() int64 { 11494 if x != nil { 11495 return x.TotalEstimatedBytes 11496 } 11497 return 0 11498} 11499 11500func (x *InspectDataSourceDetails_Result) GetInfoTypeStats() []*InfoTypeStats { 11501 if x != nil { 11502 return x.InfoTypeStats 11503 } 11504 return nil 11505} 11506 11507func (x *InspectDataSourceDetails_Result) GetHybridStats() *HybridInspectStatistics { 11508 if x != nil { 11509 return x.HybridStats 11510 } 11511 return nil 11512} 11513 11514// A quasi-identifier column has a custom_tag, used to know which column 11515// in the data corresponds to which column in the statistical model. 11516type StatisticalTable_QuasiIdentifierField struct { 11517 state protoimpl.MessageState 11518 sizeCache protoimpl.SizeCache 11519 unknownFields protoimpl.UnknownFields 11520 11521 // Identifies the column. 11522 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 11523 // A column can be tagged with a custom tag. In this case, the user must 11524 // indicate an auxiliary table that contains statistical information on 11525 // the possible values of this column (below). 11526 CustomTag string `protobuf:"bytes,2,opt,name=custom_tag,json=customTag,proto3" json:"custom_tag,omitempty"` 11527} 11528 11529func (x *StatisticalTable_QuasiIdentifierField) Reset() { 11530 *x = StatisticalTable_QuasiIdentifierField{} 11531 if protoimpl.UnsafeEnabled { 11532 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[131] 11533 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11534 ms.StoreMessageInfo(mi) 11535 } 11536} 11537 11538func (x *StatisticalTable_QuasiIdentifierField) String() string { 11539 return protoimpl.X.MessageStringOf(x) 11540} 11541 11542func (*StatisticalTable_QuasiIdentifierField) ProtoMessage() {} 11543 11544func (x *StatisticalTable_QuasiIdentifierField) ProtoReflect() protoreflect.Message { 11545 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[131] 11546 if protoimpl.UnsafeEnabled && x != nil { 11547 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11548 if ms.LoadMessageInfo() == nil { 11549 ms.StoreMessageInfo(mi) 11550 } 11551 return ms 11552 } 11553 return mi.MessageOf(x) 11554} 11555 11556// Deprecated: Use StatisticalTable_QuasiIdentifierField.ProtoReflect.Descriptor instead. 11557func (*StatisticalTable_QuasiIdentifierField) Descriptor() ([]byte, []int) { 11558 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{39, 0} 11559} 11560 11561func (x *StatisticalTable_QuasiIdentifierField) GetField() *FieldId { 11562 if x != nil { 11563 return x.Field 11564 } 11565 return nil 11566} 11567 11568func (x *StatisticalTable_QuasiIdentifierField) GetCustomTag() string { 11569 if x != nil { 11570 return x.CustomTag 11571 } 11572 return "" 11573} 11574 11575// Compute numerical stats over an individual column, including 11576// min, max, and quantiles. 11577type PrivacyMetric_NumericalStatsConfig struct { 11578 state protoimpl.MessageState 11579 sizeCache protoimpl.SizeCache 11580 unknownFields protoimpl.UnknownFields 11581 11582 // Field to compute numerical stats on. Supported types are 11583 // integer, float, date, datetime, timestamp, time. 11584 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 11585} 11586 11587func (x *PrivacyMetric_NumericalStatsConfig) Reset() { 11588 *x = PrivacyMetric_NumericalStatsConfig{} 11589 if protoimpl.UnsafeEnabled { 11590 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[132] 11591 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11592 ms.StoreMessageInfo(mi) 11593 } 11594} 11595 11596func (x *PrivacyMetric_NumericalStatsConfig) String() string { 11597 return protoimpl.X.MessageStringOf(x) 11598} 11599 11600func (*PrivacyMetric_NumericalStatsConfig) ProtoMessage() {} 11601 11602func (x *PrivacyMetric_NumericalStatsConfig) ProtoReflect() protoreflect.Message { 11603 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[132] 11604 if protoimpl.UnsafeEnabled && x != nil { 11605 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11606 if ms.LoadMessageInfo() == nil { 11607 ms.StoreMessageInfo(mi) 11608 } 11609 return ms 11610 } 11611 return mi.MessageOf(x) 11612} 11613 11614// Deprecated: Use PrivacyMetric_NumericalStatsConfig.ProtoReflect.Descriptor instead. 11615func (*PrivacyMetric_NumericalStatsConfig) Descriptor() ([]byte, []int) { 11616 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 0} 11617} 11618 11619func (x *PrivacyMetric_NumericalStatsConfig) GetField() *FieldId { 11620 if x != nil { 11621 return x.Field 11622 } 11623 return nil 11624} 11625 11626// Compute numerical stats over an individual column, including 11627// number of distinct values and value count distribution. 11628type PrivacyMetric_CategoricalStatsConfig struct { 11629 state protoimpl.MessageState 11630 sizeCache protoimpl.SizeCache 11631 unknownFields protoimpl.UnknownFields 11632 11633 // Field to compute categorical stats on. All column types are 11634 // supported except for arrays and structs. However, it may be more 11635 // informative to use NumericalStats when the field type is supported, 11636 // depending on the data. 11637 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 11638} 11639 11640func (x *PrivacyMetric_CategoricalStatsConfig) Reset() { 11641 *x = PrivacyMetric_CategoricalStatsConfig{} 11642 if protoimpl.UnsafeEnabled { 11643 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[133] 11644 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11645 ms.StoreMessageInfo(mi) 11646 } 11647} 11648 11649func (x *PrivacyMetric_CategoricalStatsConfig) String() string { 11650 return protoimpl.X.MessageStringOf(x) 11651} 11652 11653func (*PrivacyMetric_CategoricalStatsConfig) ProtoMessage() {} 11654 11655func (x *PrivacyMetric_CategoricalStatsConfig) ProtoReflect() protoreflect.Message { 11656 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[133] 11657 if protoimpl.UnsafeEnabled && x != nil { 11658 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11659 if ms.LoadMessageInfo() == nil { 11660 ms.StoreMessageInfo(mi) 11661 } 11662 return ms 11663 } 11664 return mi.MessageOf(x) 11665} 11666 11667// Deprecated: Use PrivacyMetric_CategoricalStatsConfig.ProtoReflect.Descriptor instead. 11668func (*PrivacyMetric_CategoricalStatsConfig) Descriptor() ([]byte, []int) { 11669 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 1} 11670} 11671 11672func (x *PrivacyMetric_CategoricalStatsConfig) GetField() *FieldId { 11673 if x != nil { 11674 return x.Field 11675 } 11676 return nil 11677} 11678 11679// k-anonymity metric, used for analysis of reidentification risk. 11680type PrivacyMetric_KAnonymityConfig struct { 11681 state protoimpl.MessageState 11682 sizeCache protoimpl.SizeCache 11683 unknownFields protoimpl.UnknownFields 11684 11685 // Set of fields to compute k-anonymity over. When multiple fields are 11686 // specified, they are considered a single composite key. Structs and 11687 // repeated data types are not supported; however, nested fields are 11688 // supported so long as they are not structs themselves or nested within 11689 // a repeated field. 11690 QuasiIds []*FieldId `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"` 11691 // Message indicating that multiple rows might be associated to a 11692 // single individual. If the same entity_id is associated to multiple 11693 // quasi-identifier tuples over distinct rows, we consider the entire 11694 // collection of tuples as the composite quasi-identifier. This collection 11695 // is a multiset: the order in which the different tuples appear in the 11696 // dataset is ignored, but their frequency is taken into account. 11697 // 11698 // Important note: a maximum of 1000 rows can be associated to a single 11699 // entity ID. If more rows are associated with the same entity ID, some 11700 // might be ignored. 11701 EntityId *EntityId `protobuf:"bytes,2,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"` 11702} 11703 11704func (x *PrivacyMetric_KAnonymityConfig) Reset() { 11705 *x = PrivacyMetric_KAnonymityConfig{} 11706 if protoimpl.UnsafeEnabled { 11707 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[134] 11708 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11709 ms.StoreMessageInfo(mi) 11710 } 11711} 11712 11713func (x *PrivacyMetric_KAnonymityConfig) String() string { 11714 return protoimpl.X.MessageStringOf(x) 11715} 11716 11717func (*PrivacyMetric_KAnonymityConfig) ProtoMessage() {} 11718 11719func (x *PrivacyMetric_KAnonymityConfig) ProtoReflect() protoreflect.Message { 11720 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[134] 11721 if protoimpl.UnsafeEnabled && x != nil { 11722 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11723 if ms.LoadMessageInfo() == nil { 11724 ms.StoreMessageInfo(mi) 11725 } 11726 return ms 11727 } 11728 return mi.MessageOf(x) 11729} 11730 11731// Deprecated: Use PrivacyMetric_KAnonymityConfig.ProtoReflect.Descriptor instead. 11732func (*PrivacyMetric_KAnonymityConfig) Descriptor() ([]byte, []int) { 11733 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 2} 11734} 11735 11736func (x *PrivacyMetric_KAnonymityConfig) GetQuasiIds() []*FieldId { 11737 if x != nil { 11738 return x.QuasiIds 11739 } 11740 return nil 11741} 11742 11743func (x *PrivacyMetric_KAnonymityConfig) GetEntityId() *EntityId { 11744 if x != nil { 11745 return x.EntityId 11746 } 11747 return nil 11748} 11749 11750// l-diversity metric, used for analysis of reidentification risk. 11751type PrivacyMetric_LDiversityConfig struct { 11752 state protoimpl.MessageState 11753 sizeCache protoimpl.SizeCache 11754 unknownFields protoimpl.UnknownFields 11755 11756 // Set of quasi-identifiers indicating how equivalence classes are 11757 // defined for the l-diversity computation. When multiple fields are 11758 // specified, they are considered a single composite key. 11759 QuasiIds []*FieldId `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"` 11760 // Sensitive field for computing the l-value. 11761 SensitiveAttribute *FieldId `protobuf:"bytes,2,opt,name=sensitive_attribute,json=sensitiveAttribute,proto3" json:"sensitive_attribute,omitempty"` 11762} 11763 11764func (x *PrivacyMetric_LDiversityConfig) Reset() { 11765 *x = PrivacyMetric_LDiversityConfig{} 11766 if protoimpl.UnsafeEnabled { 11767 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[135] 11768 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11769 ms.StoreMessageInfo(mi) 11770 } 11771} 11772 11773func (x *PrivacyMetric_LDiversityConfig) String() string { 11774 return protoimpl.X.MessageStringOf(x) 11775} 11776 11777func (*PrivacyMetric_LDiversityConfig) ProtoMessage() {} 11778 11779func (x *PrivacyMetric_LDiversityConfig) ProtoReflect() protoreflect.Message { 11780 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[135] 11781 if protoimpl.UnsafeEnabled && x != nil { 11782 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11783 if ms.LoadMessageInfo() == nil { 11784 ms.StoreMessageInfo(mi) 11785 } 11786 return ms 11787 } 11788 return mi.MessageOf(x) 11789} 11790 11791// Deprecated: Use PrivacyMetric_LDiversityConfig.ProtoReflect.Descriptor instead. 11792func (*PrivacyMetric_LDiversityConfig) Descriptor() ([]byte, []int) { 11793 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 3} 11794} 11795 11796func (x *PrivacyMetric_LDiversityConfig) GetQuasiIds() []*FieldId { 11797 if x != nil { 11798 return x.QuasiIds 11799 } 11800 return nil 11801} 11802 11803func (x *PrivacyMetric_LDiversityConfig) GetSensitiveAttribute() *FieldId { 11804 if x != nil { 11805 return x.SensitiveAttribute 11806 } 11807 return nil 11808} 11809 11810// Reidentifiability metric. This corresponds to a risk model similar to what 11811// is called "journalist risk" in the literature, except the attack dataset is 11812// statistically modeled instead of being perfectly known. This can be done 11813// using publicly available data (like the US Census), or using a custom 11814// statistical model (indicated as one or several BigQuery tables), or by 11815// extrapolating from the distribution of values in the input dataset. 11816type PrivacyMetric_KMapEstimationConfig struct { 11817 state protoimpl.MessageState 11818 sizeCache protoimpl.SizeCache 11819 unknownFields protoimpl.UnknownFields 11820 11821 // Required. Fields considered to be quasi-identifiers. No two columns can 11822 // have the same tag. 11823 QuasiIds []*PrivacyMetric_KMapEstimationConfig_TaggedField `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"` 11824 // ISO 3166-1 alpha-2 region code to use in the statistical modeling. 11825 // Set if no column is tagged with a region-specific InfoType (like 11826 // US_ZIP_5) or a region code. 11827 RegionCode string `protobuf:"bytes,2,opt,name=region_code,json=regionCode,proto3" json:"region_code,omitempty"` 11828 // Several auxiliary tables can be used in the analysis. Each custom_tag 11829 // used to tag a quasi-identifiers column must appear in exactly one column 11830 // of one auxiliary table. 11831 AuxiliaryTables []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable `protobuf:"bytes,3,rep,name=auxiliary_tables,json=auxiliaryTables,proto3" json:"auxiliary_tables,omitempty"` 11832} 11833 11834func (x *PrivacyMetric_KMapEstimationConfig) Reset() { 11835 *x = PrivacyMetric_KMapEstimationConfig{} 11836 if protoimpl.UnsafeEnabled { 11837 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[136] 11838 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11839 ms.StoreMessageInfo(mi) 11840 } 11841} 11842 11843func (x *PrivacyMetric_KMapEstimationConfig) String() string { 11844 return protoimpl.X.MessageStringOf(x) 11845} 11846 11847func (*PrivacyMetric_KMapEstimationConfig) ProtoMessage() {} 11848 11849func (x *PrivacyMetric_KMapEstimationConfig) ProtoReflect() protoreflect.Message { 11850 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[136] 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_KMapEstimationConfig.ProtoReflect.Descriptor instead. 11862func (*PrivacyMetric_KMapEstimationConfig) Descriptor() ([]byte, []int) { 11863 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 4} 11864} 11865 11866func (x *PrivacyMetric_KMapEstimationConfig) GetQuasiIds() []*PrivacyMetric_KMapEstimationConfig_TaggedField { 11867 if x != nil { 11868 return x.QuasiIds 11869 } 11870 return nil 11871} 11872 11873func (x *PrivacyMetric_KMapEstimationConfig) GetRegionCode() string { 11874 if x != nil { 11875 return x.RegionCode 11876 } 11877 return "" 11878} 11879 11880func (x *PrivacyMetric_KMapEstimationConfig) GetAuxiliaryTables() []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable { 11881 if x != nil { 11882 return x.AuxiliaryTables 11883 } 11884 return nil 11885} 11886 11887// δ-presence metric, used to estimate how likely it is for an attacker to 11888// figure out that one given individual appears in a de-identified dataset. 11889// Similarly to the k-map metric, we cannot compute δ-presence exactly without 11890// knowing the attack dataset, so we use a statistical model instead. 11891type PrivacyMetric_DeltaPresenceEstimationConfig struct { 11892 state protoimpl.MessageState 11893 sizeCache protoimpl.SizeCache 11894 unknownFields protoimpl.UnknownFields 11895 11896 // Required. Fields considered to be quasi-identifiers. No two fields can 11897 // have the same tag. 11898 QuasiIds []*QuasiId `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"` 11899 // ISO 3166-1 alpha-2 region code to use in the statistical modeling. 11900 // Set if no column is tagged with a region-specific InfoType (like 11901 // US_ZIP_5) or a region code. 11902 RegionCode string `protobuf:"bytes,2,opt,name=region_code,json=regionCode,proto3" json:"region_code,omitempty"` 11903 // Several auxiliary tables can be used in the analysis. Each custom_tag 11904 // used to tag a quasi-identifiers field must appear in exactly one 11905 // field of one auxiliary table. 11906 AuxiliaryTables []*StatisticalTable `protobuf:"bytes,3,rep,name=auxiliary_tables,json=auxiliaryTables,proto3" json:"auxiliary_tables,omitempty"` 11907} 11908 11909func (x *PrivacyMetric_DeltaPresenceEstimationConfig) Reset() { 11910 *x = PrivacyMetric_DeltaPresenceEstimationConfig{} 11911 if protoimpl.UnsafeEnabled { 11912 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[137] 11913 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11914 ms.StoreMessageInfo(mi) 11915 } 11916} 11917 11918func (x *PrivacyMetric_DeltaPresenceEstimationConfig) String() string { 11919 return protoimpl.X.MessageStringOf(x) 11920} 11921 11922func (*PrivacyMetric_DeltaPresenceEstimationConfig) ProtoMessage() {} 11923 11924func (x *PrivacyMetric_DeltaPresenceEstimationConfig) ProtoReflect() protoreflect.Message { 11925 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[137] 11926 if protoimpl.UnsafeEnabled && x != nil { 11927 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11928 if ms.LoadMessageInfo() == nil { 11929 ms.StoreMessageInfo(mi) 11930 } 11931 return ms 11932 } 11933 return mi.MessageOf(x) 11934} 11935 11936// Deprecated: Use PrivacyMetric_DeltaPresenceEstimationConfig.ProtoReflect.Descriptor instead. 11937func (*PrivacyMetric_DeltaPresenceEstimationConfig) Descriptor() ([]byte, []int) { 11938 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 5} 11939} 11940 11941func (x *PrivacyMetric_DeltaPresenceEstimationConfig) GetQuasiIds() []*QuasiId { 11942 if x != nil { 11943 return x.QuasiIds 11944 } 11945 return nil 11946} 11947 11948func (x *PrivacyMetric_DeltaPresenceEstimationConfig) GetRegionCode() string { 11949 if x != nil { 11950 return x.RegionCode 11951 } 11952 return "" 11953} 11954 11955func (x *PrivacyMetric_DeltaPresenceEstimationConfig) GetAuxiliaryTables() []*StatisticalTable { 11956 if x != nil { 11957 return x.AuxiliaryTables 11958 } 11959 return nil 11960} 11961 11962// A column with a semantic tag attached. 11963type PrivacyMetric_KMapEstimationConfig_TaggedField struct { 11964 state protoimpl.MessageState 11965 sizeCache protoimpl.SizeCache 11966 unknownFields protoimpl.UnknownFields 11967 11968 // Required. Identifies the column. 11969 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 11970 // Semantic tag that identifies what a column contains, to determine which 11971 // statistical model to use to estimate the reidentifiability of each 11972 // value. [required] 11973 // 11974 // Types that are assignable to Tag: 11975 // *PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType 11976 // *PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag 11977 // *PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred 11978 Tag isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag `protobuf_oneof:"tag"` 11979} 11980 11981func (x *PrivacyMetric_KMapEstimationConfig_TaggedField) Reset() { 11982 *x = PrivacyMetric_KMapEstimationConfig_TaggedField{} 11983 if protoimpl.UnsafeEnabled { 11984 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[138] 11985 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 11986 ms.StoreMessageInfo(mi) 11987 } 11988} 11989 11990func (x *PrivacyMetric_KMapEstimationConfig_TaggedField) String() string { 11991 return protoimpl.X.MessageStringOf(x) 11992} 11993 11994func (*PrivacyMetric_KMapEstimationConfig_TaggedField) ProtoMessage() {} 11995 11996func (x *PrivacyMetric_KMapEstimationConfig_TaggedField) ProtoReflect() protoreflect.Message { 11997 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[138] 11998 if protoimpl.UnsafeEnabled && x != nil { 11999 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12000 if ms.LoadMessageInfo() == nil { 12001 ms.StoreMessageInfo(mi) 12002 } 12003 return ms 12004 } 12005 return mi.MessageOf(x) 12006} 12007 12008// Deprecated: Use PrivacyMetric_KMapEstimationConfig_TaggedField.ProtoReflect.Descriptor instead. 12009func (*PrivacyMetric_KMapEstimationConfig_TaggedField) Descriptor() ([]byte, []int) { 12010 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 4, 0} 12011} 12012 12013func (x *PrivacyMetric_KMapEstimationConfig_TaggedField) GetField() *FieldId { 12014 if x != nil { 12015 return x.Field 12016 } 12017 return nil 12018} 12019 12020func (m *PrivacyMetric_KMapEstimationConfig_TaggedField) GetTag() isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag { 12021 if m != nil { 12022 return m.Tag 12023 } 12024 return nil 12025} 12026 12027func (x *PrivacyMetric_KMapEstimationConfig_TaggedField) GetInfoType() *InfoType { 12028 if x, ok := x.GetTag().(*PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType); ok { 12029 return x.InfoType 12030 } 12031 return nil 12032} 12033 12034func (x *PrivacyMetric_KMapEstimationConfig_TaggedField) GetCustomTag() string { 12035 if x, ok := x.GetTag().(*PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag); ok { 12036 return x.CustomTag 12037 } 12038 return "" 12039} 12040 12041func (x *PrivacyMetric_KMapEstimationConfig_TaggedField) GetInferred() *empty.Empty { 12042 if x, ok := x.GetTag().(*PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred); ok { 12043 return x.Inferred 12044 } 12045 return nil 12046} 12047 12048type isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag interface { 12049 isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag() 12050} 12051 12052type PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType struct { 12053 // A column can be tagged with a InfoType to use the relevant public 12054 // dataset as a statistical model of population, if available. We 12055 // currently support US ZIP codes, region codes, ages and genders. 12056 // To programmatically obtain the list of supported InfoTypes, use 12057 // ListInfoTypes with the supported_by=RISK_ANALYSIS filter. 12058 InfoType *InfoType `protobuf:"bytes,2,opt,name=info_type,json=infoType,proto3,oneof"` 12059} 12060 12061type PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag struct { 12062 // A column can be tagged with a custom tag. In this case, the user must 12063 // indicate an auxiliary table that contains statistical information on 12064 // the possible values of this column (below). 12065 CustomTag string `protobuf:"bytes,3,opt,name=custom_tag,json=customTag,proto3,oneof"` 12066} 12067 12068type PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred struct { 12069 // If no semantic tag is indicated, we infer the statistical model from 12070 // the distribution of values in the input data 12071 Inferred *empty.Empty `protobuf:"bytes,4,opt,name=inferred,proto3,oneof"` 12072} 12073 12074func (*PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType) isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag() { 12075} 12076 12077func (*PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag) isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag() { 12078} 12079 12080func (*PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred) isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag() { 12081} 12082 12083// An auxiliary table contains statistical information on the relative 12084// frequency of different quasi-identifiers values. It has one or several 12085// quasi-identifiers columns, and one column that indicates the relative 12086// frequency of each quasi-identifier tuple. 12087// If a tuple is present in the data but not in the auxiliary table, the 12088// corresponding relative frequency is assumed to be zero (and thus, the 12089// tuple is highly reidentifiable). 12090type PrivacyMetric_KMapEstimationConfig_AuxiliaryTable struct { 12091 state protoimpl.MessageState 12092 sizeCache protoimpl.SizeCache 12093 unknownFields protoimpl.UnknownFields 12094 12095 // Required. Auxiliary table location. 12096 Table *BigQueryTable `protobuf:"bytes,3,opt,name=table,proto3" json:"table,omitempty"` 12097 // Required. Quasi-identifier columns. 12098 QuasiIds []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"` 12099 // Required. The relative frequency column must contain a floating-point 12100 // number between 0 and 1 (inclusive). Null values are assumed to be zero. 12101 RelativeFrequency *FieldId `protobuf:"bytes,2,opt,name=relative_frequency,json=relativeFrequency,proto3" json:"relative_frequency,omitempty"` 12102} 12103 12104func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) Reset() { 12105 *x = PrivacyMetric_KMapEstimationConfig_AuxiliaryTable{} 12106 if protoimpl.UnsafeEnabled { 12107 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[139] 12108 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12109 ms.StoreMessageInfo(mi) 12110 } 12111} 12112 12113func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) String() string { 12114 return protoimpl.X.MessageStringOf(x) 12115} 12116 12117func (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) ProtoMessage() {} 12118 12119func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) ProtoReflect() protoreflect.Message { 12120 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[139] 12121 if protoimpl.UnsafeEnabled && x != nil { 12122 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12123 if ms.LoadMessageInfo() == nil { 12124 ms.StoreMessageInfo(mi) 12125 } 12126 return ms 12127 } 12128 return mi.MessageOf(x) 12129} 12130 12131// Deprecated: Use PrivacyMetric_KMapEstimationConfig_AuxiliaryTable.ProtoReflect.Descriptor instead. 12132func (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) Descriptor() ([]byte, []int) { 12133 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 4, 1} 12134} 12135 12136func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) GetTable() *BigQueryTable { 12137 if x != nil { 12138 return x.Table 12139 } 12140 return nil 12141} 12142 12143func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) GetQuasiIds() []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField { 12144 if x != nil { 12145 return x.QuasiIds 12146 } 12147 return nil 12148} 12149 12150func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) GetRelativeFrequency() *FieldId { 12151 if x != nil { 12152 return x.RelativeFrequency 12153 } 12154 return nil 12155} 12156 12157// A quasi-identifier column has a custom_tag, used to know which column 12158// in the data corresponds to which column in the statistical model. 12159type PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField struct { 12160 state protoimpl.MessageState 12161 sizeCache protoimpl.SizeCache 12162 unknownFields protoimpl.UnknownFields 12163 12164 // Identifies the column. 12165 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 12166 // A auxiliary field. 12167 CustomTag string `protobuf:"bytes,2,opt,name=custom_tag,json=customTag,proto3" json:"custom_tag,omitempty"` 12168} 12169 12170func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) Reset() { 12171 *x = PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField{} 12172 if protoimpl.UnsafeEnabled { 12173 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[140] 12174 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12175 ms.StoreMessageInfo(mi) 12176 } 12177} 12178 12179func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) String() string { 12180 return protoimpl.X.MessageStringOf(x) 12181} 12182 12183func (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) ProtoMessage() {} 12184 12185func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) ProtoReflect() protoreflect.Message { 12186 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[140] 12187 if protoimpl.UnsafeEnabled && x != nil { 12188 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12189 if ms.LoadMessageInfo() == nil { 12190 ms.StoreMessageInfo(mi) 12191 } 12192 return ms 12193 } 12194 return mi.MessageOf(x) 12195} 12196 12197// Deprecated: Use PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField.ProtoReflect.Descriptor instead. 12198func (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) Descriptor() ([]byte, []int) { 12199 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{40, 4, 1, 0} 12200} 12201 12202func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) GetField() *FieldId { 12203 if x != nil { 12204 return x.Field 12205 } 12206 return nil 12207} 12208 12209func (x *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) GetCustomTag() string { 12210 if x != nil { 12211 return x.CustomTag 12212 } 12213 return "" 12214} 12215 12216// Result of the numerical stats computation. 12217type AnalyzeDataSourceRiskDetails_NumericalStatsResult struct { 12218 state protoimpl.MessageState 12219 sizeCache protoimpl.SizeCache 12220 unknownFields protoimpl.UnknownFields 12221 12222 // Minimum value appearing in the column. 12223 MinValue *Value `protobuf:"bytes,1,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"` 12224 // Maximum value appearing in the column. 12225 MaxValue *Value `protobuf:"bytes,2,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"` 12226 // List of 99 values that partition the set of field values into 100 equal 12227 // sized buckets. 12228 QuantileValues []*Value `protobuf:"bytes,4,rep,name=quantile_values,json=quantileValues,proto3" json:"quantile_values,omitempty"` 12229} 12230 12231func (x *AnalyzeDataSourceRiskDetails_NumericalStatsResult) Reset() { 12232 *x = AnalyzeDataSourceRiskDetails_NumericalStatsResult{} 12233 if protoimpl.UnsafeEnabled { 12234 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[141] 12235 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12236 ms.StoreMessageInfo(mi) 12237 } 12238} 12239 12240func (x *AnalyzeDataSourceRiskDetails_NumericalStatsResult) String() string { 12241 return protoimpl.X.MessageStringOf(x) 12242} 12243 12244func (*AnalyzeDataSourceRiskDetails_NumericalStatsResult) ProtoMessage() {} 12245 12246func (x *AnalyzeDataSourceRiskDetails_NumericalStatsResult) ProtoReflect() protoreflect.Message { 12247 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[141] 12248 if protoimpl.UnsafeEnabled && x != nil { 12249 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12250 if ms.LoadMessageInfo() == nil { 12251 ms.StoreMessageInfo(mi) 12252 } 12253 return ms 12254 } 12255 return mi.MessageOf(x) 12256} 12257 12258// Deprecated: Use AnalyzeDataSourceRiskDetails_NumericalStatsResult.ProtoReflect.Descriptor instead. 12259func (*AnalyzeDataSourceRiskDetails_NumericalStatsResult) Descriptor() ([]byte, []int) { 12260 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 0} 12261} 12262 12263func (x *AnalyzeDataSourceRiskDetails_NumericalStatsResult) GetMinValue() *Value { 12264 if x != nil { 12265 return x.MinValue 12266 } 12267 return nil 12268} 12269 12270func (x *AnalyzeDataSourceRiskDetails_NumericalStatsResult) GetMaxValue() *Value { 12271 if x != nil { 12272 return x.MaxValue 12273 } 12274 return nil 12275} 12276 12277func (x *AnalyzeDataSourceRiskDetails_NumericalStatsResult) GetQuantileValues() []*Value { 12278 if x != nil { 12279 return x.QuantileValues 12280 } 12281 return nil 12282} 12283 12284// Result of the categorical stats computation. 12285type AnalyzeDataSourceRiskDetails_CategoricalStatsResult struct { 12286 state protoimpl.MessageState 12287 sizeCache protoimpl.SizeCache 12288 unknownFields protoimpl.UnknownFields 12289 12290 // Histogram of value frequencies in the column. 12291 ValueFrequencyHistogramBuckets []*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket `protobuf:"bytes,5,rep,name=value_frequency_histogram_buckets,json=valueFrequencyHistogramBuckets,proto3" json:"value_frequency_histogram_buckets,omitempty"` 12292} 12293 12294func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) Reset() { 12295 *x = AnalyzeDataSourceRiskDetails_CategoricalStatsResult{} 12296 if protoimpl.UnsafeEnabled { 12297 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[142] 12298 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12299 ms.StoreMessageInfo(mi) 12300 } 12301} 12302 12303func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) String() string { 12304 return protoimpl.X.MessageStringOf(x) 12305} 12306 12307func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult) ProtoMessage() {} 12308 12309func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) ProtoReflect() protoreflect.Message { 12310 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[142] 12311 if protoimpl.UnsafeEnabled && x != nil { 12312 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12313 if ms.LoadMessageInfo() == nil { 12314 ms.StoreMessageInfo(mi) 12315 } 12316 return ms 12317 } 12318 return mi.MessageOf(x) 12319} 12320 12321// Deprecated: Use AnalyzeDataSourceRiskDetails_CategoricalStatsResult.ProtoReflect.Descriptor instead. 12322func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult) Descriptor() ([]byte, []int) { 12323 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 1} 12324} 12325 12326func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) GetValueFrequencyHistogramBuckets() []*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket { 12327 if x != nil { 12328 return x.ValueFrequencyHistogramBuckets 12329 } 12330 return nil 12331} 12332 12333// Result of the k-anonymity computation. 12334type AnalyzeDataSourceRiskDetails_KAnonymityResult struct { 12335 state protoimpl.MessageState 12336 sizeCache protoimpl.SizeCache 12337 unknownFields protoimpl.UnknownFields 12338 12339 // Histogram of k-anonymity equivalence classes. 12340 EquivalenceClassHistogramBuckets []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket `protobuf:"bytes,5,rep,name=equivalence_class_histogram_buckets,json=equivalenceClassHistogramBuckets,proto3" json:"equivalence_class_histogram_buckets,omitempty"` 12341} 12342 12343func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult) Reset() { 12344 *x = AnalyzeDataSourceRiskDetails_KAnonymityResult{} 12345 if protoimpl.UnsafeEnabled { 12346 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[143] 12347 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12348 ms.StoreMessageInfo(mi) 12349 } 12350} 12351 12352func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult) String() string { 12353 return protoimpl.X.MessageStringOf(x) 12354} 12355 12356func (*AnalyzeDataSourceRiskDetails_KAnonymityResult) ProtoMessage() {} 12357 12358func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult) ProtoReflect() protoreflect.Message { 12359 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[143] 12360 if protoimpl.UnsafeEnabled && x != nil { 12361 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12362 if ms.LoadMessageInfo() == nil { 12363 ms.StoreMessageInfo(mi) 12364 } 12365 return ms 12366 } 12367 return mi.MessageOf(x) 12368} 12369 12370// Deprecated: Use AnalyzeDataSourceRiskDetails_KAnonymityResult.ProtoReflect.Descriptor instead. 12371func (*AnalyzeDataSourceRiskDetails_KAnonymityResult) Descriptor() ([]byte, []int) { 12372 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 2} 12373} 12374 12375func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult) GetEquivalenceClassHistogramBuckets() []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket { 12376 if x != nil { 12377 return x.EquivalenceClassHistogramBuckets 12378 } 12379 return nil 12380} 12381 12382// Result of the l-diversity computation. 12383type AnalyzeDataSourceRiskDetails_LDiversityResult struct { 12384 state protoimpl.MessageState 12385 sizeCache protoimpl.SizeCache 12386 unknownFields protoimpl.UnknownFields 12387 12388 // Histogram of l-diversity equivalence class sensitive value frequencies. 12389 SensitiveValueFrequencyHistogramBuckets []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket `protobuf:"bytes,5,rep,name=sensitive_value_frequency_histogram_buckets,json=sensitiveValueFrequencyHistogramBuckets,proto3" json:"sensitive_value_frequency_histogram_buckets,omitempty"` 12390} 12391 12392func (x *AnalyzeDataSourceRiskDetails_LDiversityResult) Reset() { 12393 *x = AnalyzeDataSourceRiskDetails_LDiversityResult{} 12394 if protoimpl.UnsafeEnabled { 12395 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[144] 12396 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12397 ms.StoreMessageInfo(mi) 12398 } 12399} 12400 12401func (x *AnalyzeDataSourceRiskDetails_LDiversityResult) String() string { 12402 return protoimpl.X.MessageStringOf(x) 12403} 12404 12405func (*AnalyzeDataSourceRiskDetails_LDiversityResult) ProtoMessage() {} 12406 12407func (x *AnalyzeDataSourceRiskDetails_LDiversityResult) ProtoReflect() protoreflect.Message { 12408 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[144] 12409 if protoimpl.UnsafeEnabled && x != nil { 12410 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12411 if ms.LoadMessageInfo() == nil { 12412 ms.StoreMessageInfo(mi) 12413 } 12414 return ms 12415 } 12416 return mi.MessageOf(x) 12417} 12418 12419// Deprecated: Use AnalyzeDataSourceRiskDetails_LDiversityResult.ProtoReflect.Descriptor instead. 12420func (*AnalyzeDataSourceRiskDetails_LDiversityResult) Descriptor() ([]byte, []int) { 12421 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 3} 12422} 12423 12424func (x *AnalyzeDataSourceRiskDetails_LDiversityResult) GetSensitiveValueFrequencyHistogramBuckets() []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket { 12425 if x != nil { 12426 return x.SensitiveValueFrequencyHistogramBuckets 12427 } 12428 return nil 12429} 12430 12431// Result of the reidentifiability analysis. Note that these results are an 12432// estimation, not exact values. 12433type AnalyzeDataSourceRiskDetails_KMapEstimationResult struct { 12434 state protoimpl.MessageState 12435 sizeCache protoimpl.SizeCache 12436 unknownFields protoimpl.UnknownFields 12437 12438 // The intervals [min_anonymity, max_anonymity] do not overlap. If a value 12439 // doesn't correspond to any such interval, the associated frequency is 12440 // zero. For example, the following records: 12441 // {min_anonymity: 1, max_anonymity: 1, frequency: 17} 12442 // {min_anonymity: 2, max_anonymity: 3, frequency: 42} 12443 // {min_anonymity: 5, max_anonymity: 10, frequency: 99} 12444 // mean that there are no record with an estimated anonymity of 4, 5, or 12445 // larger than 10. 12446 KMapEstimationHistogram []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket `protobuf:"bytes,1,rep,name=k_map_estimation_histogram,json=kMapEstimationHistogram,proto3" json:"k_map_estimation_histogram,omitempty"` 12447} 12448 12449func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult) Reset() { 12450 *x = AnalyzeDataSourceRiskDetails_KMapEstimationResult{} 12451 if protoimpl.UnsafeEnabled { 12452 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[145] 12453 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12454 ms.StoreMessageInfo(mi) 12455 } 12456} 12457 12458func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult) String() string { 12459 return protoimpl.X.MessageStringOf(x) 12460} 12461 12462func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult) ProtoMessage() {} 12463 12464func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult) ProtoReflect() protoreflect.Message { 12465 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[145] 12466 if protoimpl.UnsafeEnabled && x != nil { 12467 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12468 if ms.LoadMessageInfo() == nil { 12469 ms.StoreMessageInfo(mi) 12470 } 12471 return ms 12472 } 12473 return mi.MessageOf(x) 12474} 12475 12476// Deprecated: Use AnalyzeDataSourceRiskDetails_KMapEstimationResult.ProtoReflect.Descriptor instead. 12477func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult) Descriptor() ([]byte, []int) { 12478 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 4} 12479} 12480 12481func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult) GetKMapEstimationHistogram() []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket { 12482 if x != nil { 12483 return x.KMapEstimationHistogram 12484 } 12485 return nil 12486} 12487 12488// Result of the δ-presence computation. Note that these results are an 12489// estimation, not exact values. 12490type AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult struct { 12491 state protoimpl.MessageState 12492 sizeCache protoimpl.SizeCache 12493 unknownFields protoimpl.UnknownFields 12494 12495 // The intervals [min_probability, max_probability) do not overlap. If a 12496 // value doesn't correspond to any such interval, the associated frequency 12497 // is zero. For example, the following records: 12498 // {min_probability: 0, max_probability: 0.1, frequency: 17} 12499 // {min_probability: 0.2, max_probability: 0.3, frequency: 42} 12500 // {min_probability: 0.3, max_probability: 0.4, frequency: 99} 12501 // mean that there are no record with an estimated probability in [0.1, 0.2) 12502 // nor larger or equal to 0.4. 12503 DeltaPresenceEstimationHistogram []*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket `protobuf:"bytes,1,rep,name=delta_presence_estimation_histogram,json=deltaPresenceEstimationHistogram,proto3" json:"delta_presence_estimation_histogram,omitempty"` 12504} 12505 12506func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) Reset() { 12507 *x = AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult{} 12508 if protoimpl.UnsafeEnabled { 12509 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[146] 12510 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12511 ms.StoreMessageInfo(mi) 12512 } 12513} 12514 12515func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) String() string { 12516 return protoimpl.X.MessageStringOf(x) 12517} 12518 12519func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) ProtoMessage() {} 12520 12521func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) ProtoReflect() protoreflect.Message { 12522 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[146] 12523 if protoimpl.UnsafeEnabled && x != nil { 12524 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12525 if ms.LoadMessageInfo() == nil { 12526 ms.StoreMessageInfo(mi) 12527 } 12528 return ms 12529 } 12530 return mi.MessageOf(x) 12531} 12532 12533// Deprecated: Use AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult.ProtoReflect.Descriptor instead. 12534func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) Descriptor() ([]byte, []int) { 12535 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 5} 12536} 12537 12538func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) GetDeltaPresenceEstimationHistogram() []*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket { 12539 if x != nil { 12540 return x.DeltaPresenceEstimationHistogram 12541 } 12542 return nil 12543} 12544 12545// Histogram of value frequencies in the column. 12546type AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket struct { 12547 state protoimpl.MessageState 12548 sizeCache protoimpl.SizeCache 12549 unknownFields protoimpl.UnknownFields 12550 12551 // Lower bound on the value frequency of the values in this bucket. 12552 ValueFrequencyLowerBound int64 `protobuf:"varint,1,opt,name=value_frequency_lower_bound,json=valueFrequencyLowerBound,proto3" json:"value_frequency_lower_bound,omitempty"` 12553 // Upper bound on the value frequency of the values in this bucket. 12554 ValueFrequencyUpperBound int64 `protobuf:"varint,2,opt,name=value_frequency_upper_bound,json=valueFrequencyUpperBound,proto3" json:"value_frequency_upper_bound,omitempty"` 12555 // Total number of values in this bucket. 12556 BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"` 12557 // Sample of value frequencies in this bucket. The total number of 12558 // values returned per bucket is capped at 20. 12559 BucketValues []*ValueFrequency `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"` 12560 // Total number of distinct values in this bucket. 12561 BucketValueCount int64 `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"` 12562} 12563 12564func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) Reset() { 12565 *x = AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket{} 12566 if protoimpl.UnsafeEnabled { 12567 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[147] 12568 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12569 ms.StoreMessageInfo(mi) 12570 } 12571} 12572 12573func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) String() string { 12574 return protoimpl.X.MessageStringOf(x) 12575} 12576 12577func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) ProtoMessage() { 12578} 12579 12580func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) ProtoReflect() protoreflect.Message { 12581 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[147] 12582 if protoimpl.UnsafeEnabled && x != nil { 12583 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12584 if ms.LoadMessageInfo() == nil { 12585 ms.StoreMessageInfo(mi) 12586 } 12587 return ms 12588 } 12589 return mi.MessageOf(x) 12590} 12591 12592// Deprecated: Use AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket.ProtoReflect.Descriptor instead. 12593func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) Descriptor() ([]byte, []int) { 12594 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 1, 0} 12595} 12596 12597func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetValueFrequencyLowerBound() int64 { 12598 if x != nil { 12599 return x.ValueFrequencyLowerBound 12600 } 12601 return 0 12602} 12603 12604func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetValueFrequencyUpperBound() int64 { 12605 if x != nil { 12606 return x.ValueFrequencyUpperBound 12607 } 12608 return 0 12609} 12610 12611func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetBucketSize() int64 { 12612 if x != nil { 12613 return x.BucketSize 12614 } 12615 return 0 12616} 12617 12618func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetBucketValues() []*ValueFrequency { 12619 if x != nil { 12620 return x.BucketValues 12621 } 12622 return nil 12623} 12624 12625func (x *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetBucketValueCount() int64 { 12626 if x != nil { 12627 return x.BucketValueCount 12628 } 12629 return 0 12630} 12631 12632// The set of columns' values that share the same ldiversity value 12633type AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass struct { 12634 state protoimpl.MessageState 12635 sizeCache protoimpl.SizeCache 12636 unknownFields protoimpl.UnknownFields 12637 12638 // Set of values defining the equivalence class. One value per 12639 // quasi-identifier column in the original KAnonymity metric message. 12640 // The order is always the same as the original request. 12641 QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"` 12642 // Size of the equivalence class, for example number of rows with the 12643 // above set of values. 12644 EquivalenceClassSize int64 `protobuf:"varint,2,opt,name=equivalence_class_size,json=equivalenceClassSize,proto3" json:"equivalence_class_size,omitempty"` 12645} 12646 12647func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) Reset() { 12648 *x = AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass{} 12649 if protoimpl.UnsafeEnabled { 12650 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[148] 12651 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12652 ms.StoreMessageInfo(mi) 12653 } 12654} 12655 12656func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) String() string { 12657 return protoimpl.X.MessageStringOf(x) 12658} 12659 12660func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) ProtoMessage() {} 12661 12662func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) ProtoReflect() protoreflect.Message { 12663 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[148] 12664 if protoimpl.UnsafeEnabled && x != nil { 12665 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12666 if ms.LoadMessageInfo() == nil { 12667 ms.StoreMessageInfo(mi) 12668 } 12669 return ms 12670 } 12671 return mi.MessageOf(x) 12672} 12673 12674// Deprecated: Use AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass.ProtoReflect.Descriptor instead. 12675func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) Descriptor() ([]byte, []int) { 12676 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 2, 0} 12677} 12678 12679func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) GetQuasiIdsValues() []*Value { 12680 if x != nil { 12681 return x.QuasiIdsValues 12682 } 12683 return nil 12684} 12685 12686func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) GetEquivalenceClassSize() int64 { 12687 if x != nil { 12688 return x.EquivalenceClassSize 12689 } 12690 return 0 12691} 12692 12693// Histogram of k-anonymity equivalence classes. 12694type AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket struct { 12695 state protoimpl.MessageState 12696 sizeCache protoimpl.SizeCache 12697 unknownFields protoimpl.UnknownFields 12698 12699 // Lower bound on the size of the equivalence classes in this bucket. 12700 EquivalenceClassSizeLowerBound int64 `protobuf:"varint,1,opt,name=equivalence_class_size_lower_bound,json=equivalenceClassSizeLowerBound,proto3" json:"equivalence_class_size_lower_bound,omitempty"` 12701 // Upper bound on the size of the equivalence classes in this bucket. 12702 EquivalenceClassSizeUpperBound int64 `protobuf:"varint,2,opt,name=equivalence_class_size_upper_bound,json=equivalenceClassSizeUpperBound,proto3" json:"equivalence_class_size_upper_bound,omitempty"` 12703 // Total number of equivalence classes in this bucket. 12704 BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"` 12705 // Sample of equivalence classes in this bucket. The total number of 12706 // classes returned per bucket is capped at 20. 12707 BucketValues []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"` 12708 // Total number of distinct equivalence classes in this bucket. 12709 BucketValueCount int64 `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"` 12710} 12711 12712func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) Reset() { 12713 *x = AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket{} 12714 if protoimpl.UnsafeEnabled { 12715 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[149] 12716 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12717 ms.StoreMessageInfo(mi) 12718 } 12719} 12720 12721func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) String() string { 12722 return protoimpl.X.MessageStringOf(x) 12723} 12724 12725func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) ProtoMessage() {} 12726 12727func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) ProtoReflect() protoreflect.Message { 12728 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[149] 12729 if protoimpl.UnsafeEnabled && x != nil { 12730 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12731 if ms.LoadMessageInfo() == nil { 12732 ms.StoreMessageInfo(mi) 12733 } 12734 return ms 12735 } 12736 return mi.MessageOf(x) 12737} 12738 12739// Deprecated: Use AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket.ProtoReflect.Descriptor instead. 12740func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) Descriptor() ([]byte, []int) { 12741 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 2, 1} 12742} 12743 12744func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetEquivalenceClassSizeLowerBound() int64 { 12745 if x != nil { 12746 return x.EquivalenceClassSizeLowerBound 12747 } 12748 return 0 12749} 12750 12751func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetEquivalenceClassSizeUpperBound() int64 { 12752 if x != nil { 12753 return x.EquivalenceClassSizeUpperBound 12754 } 12755 return 0 12756} 12757 12758func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetBucketSize() int64 { 12759 if x != nil { 12760 return x.BucketSize 12761 } 12762 return 0 12763} 12764 12765func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetBucketValues() []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass { 12766 if x != nil { 12767 return x.BucketValues 12768 } 12769 return nil 12770} 12771 12772func (x *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetBucketValueCount() int64 { 12773 if x != nil { 12774 return x.BucketValueCount 12775 } 12776 return 0 12777} 12778 12779// The set of columns' values that share the same ldiversity value. 12780type AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass struct { 12781 state protoimpl.MessageState 12782 sizeCache protoimpl.SizeCache 12783 unknownFields protoimpl.UnknownFields 12784 12785 // Quasi-identifier values defining the k-anonymity equivalence 12786 // class. The order is always the same as the original request. 12787 QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"` 12788 // Size of the k-anonymity equivalence class. 12789 EquivalenceClassSize int64 `protobuf:"varint,2,opt,name=equivalence_class_size,json=equivalenceClassSize,proto3" json:"equivalence_class_size,omitempty"` 12790 // Number of distinct sensitive values in this equivalence class. 12791 NumDistinctSensitiveValues int64 `protobuf:"varint,3,opt,name=num_distinct_sensitive_values,json=numDistinctSensitiveValues,proto3" json:"num_distinct_sensitive_values,omitempty"` 12792 // Estimated frequencies of top sensitive values. 12793 TopSensitiveValues []*ValueFrequency `protobuf:"bytes,4,rep,name=top_sensitive_values,json=topSensitiveValues,proto3" json:"top_sensitive_values,omitempty"` 12794} 12795 12796func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) Reset() { 12797 *x = AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass{} 12798 if protoimpl.UnsafeEnabled { 12799 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[150] 12800 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12801 ms.StoreMessageInfo(mi) 12802 } 12803} 12804 12805func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) String() string { 12806 return protoimpl.X.MessageStringOf(x) 12807} 12808 12809func (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) ProtoMessage() {} 12810 12811func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) ProtoReflect() protoreflect.Message { 12812 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[150] 12813 if protoimpl.UnsafeEnabled && x != nil { 12814 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12815 if ms.LoadMessageInfo() == nil { 12816 ms.StoreMessageInfo(mi) 12817 } 12818 return ms 12819 } 12820 return mi.MessageOf(x) 12821} 12822 12823// Deprecated: Use AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass.ProtoReflect.Descriptor instead. 12824func (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) Descriptor() ([]byte, []int) { 12825 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 3, 0} 12826} 12827 12828func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) GetQuasiIdsValues() []*Value { 12829 if x != nil { 12830 return x.QuasiIdsValues 12831 } 12832 return nil 12833} 12834 12835func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) GetEquivalenceClassSize() int64 { 12836 if x != nil { 12837 return x.EquivalenceClassSize 12838 } 12839 return 0 12840} 12841 12842func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) GetNumDistinctSensitiveValues() int64 { 12843 if x != nil { 12844 return x.NumDistinctSensitiveValues 12845 } 12846 return 0 12847} 12848 12849func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) GetTopSensitiveValues() []*ValueFrequency { 12850 if x != nil { 12851 return x.TopSensitiveValues 12852 } 12853 return nil 12854} 12855 12856// Histogram of l-diversity equivalence class sensitive value frequencies. 12857type AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket struct { 12858 state protoimpl.MessageState 12859 sizeCache protoimpl.SizeCache 12860 unknownFields protoimpl.UnknownFields 12861 12862 // Lower bound on the sensitive value frequencies of the equivalence 12863 // classes in this bucket. 12864 SensitiveValueFrequencyLowerBound int64 `protobuf:"varint,1,opt,name=sensitive_value_frequency_lower_bound,json=sensitiveValueFrequencyLowerBound,proto3" json:"sensitive_value_frequency_lower_bound,omitempty"` 12865 // Upper bound on the sensitive value frequencies of the equivalence 12866 // classes in this bucket. 12867 SensitiveValueFrequencyUpperBound int64 `protobuf:"varint,2,opt,name=sensitive_value_frequency_upper_bound,json=sensitiveValueFrequencyUpperBound,proto3" json:"sensitive_value_frequency_upper_bound,omitempty"` 12868 // Total number of equivalence classes in this bucket. 12869 BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"` 12870 // Sample of equivalence classes in this bucket. The total number of 12871 // classes returned per bucket is capped at 20. 12872 BucketValues []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"` 12873 // Total number of distinct equivalence classes in this bucket. 12874 BucketValueCount int64 `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"` 12875} 12876 12877func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) Reset() { 12878 *x = AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket{} 12879 if protoimpl.UnsafeEnabled { 12880 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[151] 12881 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12882 ms.StoreMessageInfo(mi) 12883 } 12884} 12885 12886func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) String() string { 12887 return protoimpl.X.MessageStringOf(x) 12888} 12889 12890func (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) ProtoMessage() {} 12891 12892func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) ProtoReflect() protoreflect.Message { 12893 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[151] 12894 if protoimpl.UnsafeEnabled && x != nil { 12895 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12896 if ms.LoadMessageInfo() == nil { 12897 ms.StoreMessageInfo(mi) 12898 } 12899 return ms 12900 } 12901 return mi.MessageOf(x) 12902} 12903 12904// Deprecated: Use AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket.ProtoReflect.Descriptor instead. 12905func (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) Descriptor() ([]byte, []int) { 12906 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 3, 1} 12907} 12908 12909func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetSensitiveValueFrequencyLowerBound() int64 { 12910 if x != nil { 12911 return x.SensitiveValueFrequencyLowerBound 12912 } 12913 return 0 12914} 12915 12916func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetSensitiveValueFrequencyUpperBound() int64 { 12917 if x != nil { 12918 return x.SensitiveValueFrequencyUpperBound 12919 } 12920 return 0 12921} 12922 12923func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetBucketSize() int64 { 12924 if x != nil { 12925 return x.BucketSize 12926 } 12927 return 0 12928} 12929 12930func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetBucketValues() []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass { 12931 if x != nil { 12932 return x.BucketValues 12933 } 12934 return nil 12935} 12936 12937func (x *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetBucketValueCount() int64 { 12938 if x != nil { 12939 return x.BucketValueCount 12940 } 12941 return 0 12942} 12943 12944// A tuple of values for the quasi-identifier columns. 12945type AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues struct { 12946 state protoimpl.MessageState 12947 sizeCache protoimpl.SizeCache 12948 unknownFields protoimpl.UnknownFields 12949 12950 // The quasi-identifier values. 12951 QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"` 12952 // The estimated anonymity for these quasi-identifier values. 12953 EstimatedAnonymity int64 `protobuf:"varint,2,opt,name=estimated_anonymity,json=estimatedAnonymity,proto3" json:"estimated_anonymity,omitempty"` 12954} 12955 12956func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) Reset() { 12957 *x = AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues{} 12958 if protoimpl.UnsafeEnabled { 12959 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[152] 12960 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12961 ms.StoreMessageInfo(mi) 12962 } 12963} 12964 12965func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) String() string { 12966 return protoimpl.X.MessageStringOf(x) 12967} 12968 12969func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) ProtoMessage() {} 12970 12971func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) ProtoReflect() protoreflect.Message { 12972 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[152] 12973 if protoimpl.UnsafeEnabled && x != nil { 12974 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 12975 if ms.LoadMessageInfo() == nil { 12976 ms.StoreMessageInfo(mi) 12977 } 12978 return ms 12979 } 12980 return mi.MessageOf(x) 12981} 12982 12983// Deprecated: Use AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues.ProtoReflect.Descriptor instead. 12984func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) Descriptor() ([]byte, []int) { 12985 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 4, 0} 12986} 12987 12988func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) GetQuasiIdsValues() []*Value { 12989 if x != nil { 12990 return x.QuasiIdsValues 12991 } 12992 return nil 12993} 12994 12995func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) GetEstimatedAnonymity() int64 { 12996 if x != nil { 12997 return x.EstimatedAnonymity 12998 } 12999 return 0 13000} 13001 13002// A KMapEstimationHistogramBucket message with the following values: 13003// min_anonymity: 3 13004// max_anonymity: 5 13005// frequency: 42 13006// means that there are 42 records whose quasi-identifier values correspond 13007// to 3, 4 or 5 people in the overlying population. An important particular 13008// case is when min_anonymity = max_anonymity = 1: the frequency field then 13009// corresponds to the number of uniquely identifiable records. 13010type AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket struct { 13011 state protoimpl.MessageState 13012 sizeCache protoimpl.SizeCache 13013 unknownFields protoimpl.UnknownFields 13014 13015 // Always positive. 13016 MinAnonymity int64 `protobuf:"varint,1,opt,name=min_anonymity,json=minAnonymity,proto3" json:"min_anonymity,omitempty"` 13017 // Always greater than or equal to min_anonymity. 13018 MaxAnonymity int64 `protobuf:"varint,2,opt,name=max_anonymity,json=maxAnonymity,proto3" json:"max_anonymity,omitempty"` 13019 // Number of records within these anonymity bounds. 13020 BucketSize int64 `protobuf:"varint,5,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"` 13021 // Sample of quasi-identifier tuple values in this bucket. The total 13022 // number of classes returned per bucket is capped at 20. 13023 BucketValues []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues `protobuf:"bytes,6,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"` 13024 // Total number of distinct quasi-identifier tuple values in this bucket. 13025 BucketValueCount int64 `protobuf:"varint,7,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"` 13026} 13027 13028func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) Reset() { 13029 *x = AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket{} 13030 if protoimpl.UnsafeEnabled { 13031 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[153] 13032 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13033 ms.StoreMessageInfo(mi) 13034 } 13035} 13036 13037func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) String() string { 13038 return protoimpl.X.MessageStringOf(x) 13039} 13040 13041func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) ProtoMessage() { 13042} 13043 13044func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) ProtoReflect() protoreflect.Message { 13045 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[153] 13046 if protoimpl.UnsafeEnabled && x != nil { 13047 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13048 if ms.LoadMessageInfo() == nil { 13049 ms.StoreMessageInfo(mi) 13050 } 13051 return ms 13052 } 13053 return mi.MessageOf(x) 13054} 13055 13056// Deprecated: Use AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket.ProtoReflect.Descriptor instead. 13057func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) Descriptor() ([]byte, []int) { 13058 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 4, 1} 13059} 13060 13061func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetMinAnonymity() int64 { 13062 if x != nil { 13063 return x.MinAnonymity 13064 } 13065 return 0 13066} 13067 13068func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetMaxAnonymity() int64 { 13069 if x != nil { 13070 return x.MaxAnonymity 13071 } 13072 return 0 13073} 13074 13075func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetBucketSize() int64 { 13076 if x != nil { 13077 return x.BucketSize 13078 } 13079 return 0 13080} 13081 13082func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetBucketValues() []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues { 13083 if x != nil { 13084 return x.BucketValues 13085 } 13086 return nil 13087} 13088 13089func (x *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetBucketValueCount() int64 { 13090 if x != nil { 13091 return x.BucketValueCount 13092 } 13093 return 0 13094} 13095 13096// A tuple of values for the quasi-identifier columns. 13097type AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues struct { 13098 state protoimpl.MessageState 13099 sizeCache protoimpl.SizeCache 13100 unknownFields protoimpl.UnknownFields 13101 13102 // The quasi-identifier values. 13103 QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"` 13104 // The estimated probability that a given individual sharing these 13105 // quasi-identifier values is in the dataset. This value, typically called 13106 // δ, is the ratio between the number of records in the dataset with these 13107 // quasi-identifier values, and the total number of individuals (inside 13108 // *and* outside the dataset) with these quasi-identifier values. 13109 // For example, if there are 15 individuals in the dataset who share the 13110 // same quasi-identifier values, and an estimated 100 people in the entire 13111 // population with these values, then δ is 0.15. 13112 EstimatedProbability float64 `protobuf:"fixed64,2,opt,name=estimated_probability,json=estimatedProbability,proto3" json:"estimated_probability,omitempty"` 13113} 13114 13115func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) Reset() { 13116 *x = AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues{} 13117 if protoimpl.UnsafeEnabled { 13118 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[154] 13119 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13120 ms.StoreMessageInfo(mi) 13121 } 13122} 13123 13124func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) String() string { 13125 return protoimpl.X.MessageStringOf(x) 13126} 13127 13128func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) ProtoMessage() { 13129} 13130 13131func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) ProtoReflect() protoreflect.Message { 13132 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[154] 13133 if protoimpl.UnsafeEnabled && x != nil { 13134 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13135 if ms.LoadMessageInfo() == nil { 13136 ms.StoreMessageInfo(mi) 13137 } 13138 return ms 13139 } 13140 return mi.MessageOf(x) 13141} 13142 13143// Deprecated: Use AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues.ProtoReflect.Descriptor instead. 13144func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) Descriptor() ([]byte, []int) { 13145 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 5, 0} 13146} 13147 13148func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) GetQuasiIdsValues() []*Value { 13149 if x != nil { 13150 return x.QuasiIdsValues 13151 } 13152 return nil 13153} 13154 13155func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) GetEstimatedProbability() float64 { 13156 if x != nil { 13157 return x.EstimatedProbability 13158 } 13159 return 0 13160} 13161 13162// A DeltaPresenceEstimationHistogramBucket message with the following 13163// values: 13164// min_probability: 0.1 13165// max_probability: 0.2 13166// frequency: 42 13167// means that there are 42 records for which δ is in [0.1, 0.2). An 13168// important particular case is when min_probability = max_probability = 1: 13169// then, every individual who shares this quasi-identifier combination is in 13170// the dataset. 13171type AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket struct { 13172 state protoimpl.MessageState 13173 sizeCache protoimpl.SizeCache 13174 unknownFields protoimpl.UnknownFields 13175 13176 // Between 0 and 1. 13177 MinProbability float64 `protobuf:"fixed64,1,opt,name=min_probability,json=minProbability,proto3" json:"min_probability,omitempty"` 13178 // Always greater than or equal to min_probability. 13179 MaxProbability float64 `protobuf:"fixed64,2,opt,name=max_probability,json=maxProbability,proto3" json:"max_probability,omitempty"` 13180 // Number of records within these probability bounds. 13181 BucketSize int64 `protobuf:"varint,5,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"` 13182 // Sample of quasi-identifier tuple values in this bucket. The total 13183 // number of classes returned per bucket is capped at 20. 13184 BucketValues []*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues `protobuf:"bytes,6,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"` 13185 // Total number of distinct quasi-identifier tuple values in this bucket. 13186 BucketValueCount int64 `protobuf:"varint,7,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"` 13187} 13188 13189func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) Reset() { 13190 *x = AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket{} 13191 if protoimpl.UnsafeEnabled { 13192 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[155] 13193 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13194 ms.StoreMessageInfo(mi) 13195 } 13196} 13197 13198func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) String() string { 13199 return protoimpl.X.MessageStringOf(x) 13200} 13201 13202func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) ProtoMessage() { 13203} 13204 13205func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) ProtoReflect() protoreflect.Message { 13206 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[155] 13207 if protoimpl.UnsafeEnabled && x != nil { 13208 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13209 if ms.LoadMessageInfo() == nil { 13210 ms.StoreMessageInfo(mi) 13211 } 13212 return ms 13213 } 13214 return mi.MessageOf(x) 13215} 13216 13217// Deprecated: Use AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket.ProtoReflect.Descriptor instead. 13218func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) Descriptor() ([]byte, []int) { 13219 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{41, 5, 1} 13220} 13221 13222func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetMinProbability() float64 { 13223 if x != nil { 13224 return x.MinProbability 13225 } 13226 return 0 13227} 13228 13229func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetMaxProbability() float64 { 13230 if x != nil { 13231 return x.MaxProbability 13232 } 13233 return 0 13234} 13235 13236func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetBucketSize() int64 { 13237 if x != nil { 13238 return x.BucketSize 13239 } 13240 return 0 13241} 13242 13243func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetBucketValues() []*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues { 13244 if x != nil { 13245 return x.BucketValues 13246 } 13247 return nil 13248} 13249 13250func (x *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetBucketValueCount() int64 { 13251 if x != nil { 13252 return x.BucketValueCount 13253 } 13254 return 0 13255} 13256 13257// Time zone of the date time object. 13258type DateTime_TimeZone struct { 13259 state protoimpl.MessageState 13260 sizeCache protoimpl.SizeCache 13261 unknownFields protoimpl.UnknownFields 13262 13263 // Set only if the offset can be determined. Positive for time ahead of UTC. 13264 // E.g. For "UTC-9", this value is -540. 13265 OffsetMinutes int32 `protobuf:"varint,1,opt,name=offset_minutes,json=offsetMinutes,proto3" json:"offset_minutes,omitempty"` 13266} 13267 13268func (x *DateTime_TimeZone) Reset() { 13269 *x = DateTime_TimeZone{} 13270 if protoimpl.UnsafeEnabled { 13271 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[156] 13272 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13273 ms.StoreMessageInfo(mi) 13274 } 13275} 13276 13277func (x *DateTime_TimeZone) String() string { 13278 return protoimpl.X.MessageStringOf(x) 13279} 13280 13281func (*DateTime_TimeZone) ProtoMessage() {} 13282 13283func (x *DateTime_TimeZone) ProtoReflect() protoreflect.Message { 13284 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[156] 13285 if protoimpl.UnsafeEnabled && x != nil { 13286 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13287 if ms.LoadMessageInfo() == nil { 13288 ms.StoreMessageInfo(mi) 13289 } 13290 return ms 13291 } 13292 return mi.MessageOf(x) 13293} 13294 13295// Deprecated: Use DateTime_TimeZone.ProtoReflect.Descriptor instead. 13296func (*DateTime_TimeZone) Descriptor() ([]byte, []int) { 13297 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{45, 0} 13298} 13299 13300func (x *DateTime_TimeZone) GetOffsetMinutes() int32 { 13301 if x != nil { 13302 return x.OffsetMinutes 13303 } 13304 return 0 13305} 13306 13307// Throw an error and fail the request when a transformation error occurs. 13308type TransformationErrorHandling_ThrowError struct { 13309 state protoimpl.MessageState 13310 sizeCache protoimpl.SizeCache 13311 unknownFields protoimpl.UnknownFields 13312} 13313 13314func (x *TransformationErrorHandling_ThrowError) Reset() { 13315 *x = TransformationErrorHandling_ThrowError{} 13316 if protoimpl.UnsafeEnabled { 13317 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[157] 13318 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13319 ms.StoreMessageInfo(mi) 13320 } 13321} 13322 13323func (x *TransformationErrorHandling_ThrowError) String() string { 13324 return protoimpl.X.MessageStringOf(x) 13325} 13326 13327func (*TransformationErrorHandling_ThrowError) ProtoMessage() {} 13328 13329func (x *TransformationErrorHandling_ThrowError) ProtoReflect() protoreflect.Message { 13330 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[157] 13331 if protoimpl.UnsafeEnabled && x != nil { 13332 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13333 if ms.LoadMessageInfo() == nil { 13334 ms.StoreMessageInfo(mi) 13335 } 13336 return ms 13337 } 13338 return mi.MessageOf(x) 13339} 13340 13341// Deprecated: Use TransformationErrorHandling_ThrowError.ProtoReflect.Descriptor instead. 13342func (*TransformationErrorHandling_ThrowError) Descriptor() ([]byte, []int) { 13343 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{47, 0} 13344} 13345 13346// Skips the data without modifying it if the requested transformation would 13347// cause an error. For example, if a `DateShift` transformation were applied 13348// an an IP address, this mode would leave the IP address unchanged in the 13349// response. 13350type TransformationErrorHandling_LeaveUntransformed struct { 13351 state protoimpl.MessageState 13352 sizeCache protoimpl.SizeCache 13353 unknownFields protoimpl.UnknownFields 13354} 13355 13356func (x *TransformationErrorHandling_LeaveUntransformed) Reset() { 13357 *x = TransformationErrorHandling_LeaveUntransformed{} 13358 if protoimpl.UnsafeEnabled { 13359 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[158] 13360 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13361 ms.StoreMessageInfo(mi) 13362 } 13363} 13364 13365func (x *TransformationErrorHandling_LeaveUntransformed) String() string { 13366 return protoimpl.X.MessageStringOf(x) 13367} 13368 13369func (*TransformationErrorHandling_LeaveUntransformed) ProtoMessage() {} 13370 13371func (x *TransformationErrorHandling_LeaveUntransformed) ProtoReflect() protoreflect.Message { 13372 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[158] 13373 if protoimpl.UnsafeEnabled && x != nil { 13374 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13375 if ms.LoadMessageInfo() == nil { 13376 ms.StoreMessageInfo(mi) 13377 } 13378 return ms 13379 } 13380 return mi.MessageOf(x) 13381} 13382 13383// Deprecated: Use TransformationErrorHandling_LeaveUntransformed.ProtoReflect.Descriptor instead. 13384func (*TransformationErrorHandling_LeaveUntransformed) Descriptor() ([]byte, []int) { 13385 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{47, 1} 13386} 13387 13388// Bucket is represented as a range, along with replacement values. 13389type BucketingConfig_Bucket struct { 13390 state protoimpl.MessageState 13391 sizeCache protoimpl.SizeCache 13392 unknownFields protoimpl.UnknownFields 13393 13394 // Lower bound of the range, inclusive. Type should be the same as max if 13395 // used. 13396 Min *Value `protobuf:"bytes,1,opt,name=min,proto3" json:"min,omitempty"` 13397 // Upper bound of the range, exclusive; type must match min. 13398 Max *Value `protobuf:"bytes,2,opt,name=max,proto3" json:"max,omitempty"` 13399 // Replacement value for this bucket. If not provided 13400 // the default behavior will be to hyphenate the min-max range. 13401 ReplacementValue *Value `protobuf:"bytes,3,opt,name=replacement_value,json=replacementValue,proto3" json:"replacement_value,omitempty"` 13402} 13403 13404func (x *BucketingConfig_Bucket) Reset() { 13405 *x = BucketingConfig_Bucket{} 13406 if protoimpl.UnsafeEnabled { 13407 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[159] 13408 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13409 ms.StoreMessageInfo(mi) 13410 } 13411} 13412 13413func (x *BucketingConfig_Bucket) String() string { 13414 return protoimpl.X.MessageStringOf(x) 13415} 13416 13417func (*BucketingConfig_Bucket) ProtoMessage() {} 13418 13419func (x *BucketingConfig_Bucket) ProtoReflect() protoreflect.Message { 13420 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[159] 13421 if protoimpl.UnsafeEnabled && x != nil { 13422 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13423 if ms.LoadMessageInfo() == nil { 13424 ms.StoreMessageInfo(mi) 13425 } 13426 return ms 13427 } 13428 return mi.MessageOf(x) 13429} 13430 13431// Deprecated: Use BucketingConfig_Bucket.ProtoReflect.Descriptor instead. 13432func (*BucketingConfig_Bucket) Descriptor() ([]byte, []int) { 13433 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{58, 0} 13434} 13435 13436func (x *BucketingConfig_Bucket) GetMin() *Value { 13437 if x != nil { 13438 return x.Min 13439 } 13440 return nil 13441} 13442 13443func (x *BucketingConfig_Bucket) GetMax() *Value { 13444 if x != nil { 13445 return x.Max 13446 } 13447 return nil 13448} 13449 13450func (x *BucketingConfig_Bucket) GetReplacementValue() *Value { 13451 if x != nil { 13452 return x.ReplacementValue 13453 } 13454 return nil 13455} 13456 13457// A transformation to apply to text that is identified as a specific 13458// info_type. 13459type InfoTypeTransformations_InfoTypeTransformation struct { 13460 state protoimpl.MessageState 13461 sizeCache protoimpl.SizeCache 13462 unknownFields protoimpl.UnknownFields 13463 13464 // InfoTypes to apply the transformation to. An empty list will cause 13465 // this transformation to apply to all findings that correspond to 13466 // infoTypes that were requested in `InspectConfig`. 13467 InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"` 13468 // Required. Primitive transformation to apply to the infoType. 13469 PrimitiveTransformation *PrimitiveTransformation `protobuf:"bytes,2,opt,name=primitive_transformation,json=primitiveTransformation,proto3" json:"primitive_transformation,omitempty"` 13470} 13471 13472func (x *InfoTypeTransformations_InfoTypeTransformation) Reset() { 13473 *x = InfoTypeTransformations_InfoTypeTransformation{} 13474 if protoimpl.UnsafeEnabled { 13475 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[160] 13476 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13477 ms.StoreMessageInfo(mi) 13478 } 13479} 13480 13481func (x *InfoTypeTransformations_InfoTypeTransformation) String() string { 13482 return protoimpl.X.MessageStringOf(x) 13483} 13484 13485func (*InfoTypeTransformations_InfoTypeTransformation) ProtoMessage() {} 13486 13487func (x *InfoTypeTransformations_InfoTypeTransformation) ProtoReflect() protoreflect.Message { 13488 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[160] 13489 if protoimpl.UnsafeEnabled && x != nil { 13490 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13491 if ms.LoadMessageInfo() == nil { 13492 ms.StoreMessageInfo(mi) 13493 } 13494 return ms 13495 } 13496 return mi.MessageOf(x) 13497} 13498 13499// Deprecated: Use InfoTypeTransformations_InfoTypeTransformation.ProtoReflect.Descriptor instead. 13500func (*InfoTypeTransformations_InfoTypeTransformation) Descriptor() ([]byte, []int) { 13501 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{65, 0} 13502} 13503 13504func (x *InfoTypeTransformations_InfoTypeTransformation) GetInfoTypes() []*InfoType { 13505 if x != nil { 13506 return x.InfoTypes 13507 } 13508 return nil 13509} 13510 13511func (x *InfoTypeTransformations_InfoTypeTransformation) GetPrimitiveTransformation() *PrimitiveTransformation { 13512 if x != nil { 13513 return x.PrimitiveTransformation 13514 } 13515 return nil 13516} 13517 13518// The field type of `value` and `field` do not need to match to be 13519// considered equal, but not all comparisons are possible. 13520// EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types, 13521// but all other comparisons are invalid with incompatible types. 13522// A `value` of type: 13523// 13524// - `string` can be compared against all other types 13525// - `boolean` can only be compared against other booleans 13526// - `integer` can be compared against doubles or a string if the string value 13527// can be parsed as an integer. 13528// - `double` can be compared against integers or a string if the string can 13529// be parsed as a double. 13530// - `Timestamp` can be compared against strings in RFC 3339 date string 13531// format. 13532// - `TimeOfDay` can be compared against timestamps and strings in the format 13533// of 'HH:mm:ss'. 13534// 13535// If we fail to compare do to type mismatch, a warning will be given and 13536// the condition will evaluate to false. 13537type RecordCondition_Condition struct { 13538 state protoimpl.MessageState 13539 sizeCache protoimpl.SizeCache 13540 unknownFields protoimpl.UnknownFields 13541 13542 // Required. Field within the record this condition is evaluated against. 13543 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 13544 // Required. Operator used to compare the field or infoType to the value. 13545 Operator RelationalOperator `protobuf:"varint,3,opt,name=operator,proto3,enum=google.privacy.dlp.v2.RelationalOperator" json:"operator,omitempty"` 13546 // Value to compare against. [Mandatory, except for `EXISTS` tests.] 13547 Value *Value `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` 13548} 13549 13550func (x *RecordCondition_Condition) Reset() { 13551 *x = RecordCondition_Condition{} 13552 if protoimpl.UnsafeEnabled { 13553 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[161] 13554 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13555 ms.StoreMessageInfo(mi) 13556 } 13557} 13558 13559func (x *RecordCondition_Condition) String() string { 13560 return protoimpl.X.MessageStringOf(x) 13561} 13562 13563func (*RecordCondition_Condition) ProtoMessage() {} 13564 13565func (x *RecordCondition_Condition) ProtoReflect() protoreflect.Message { 13566 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[161] 13567 if protoimpl.UnsafeEnabled && x != nil { 13568 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13569 if ms.LoadMessageInfo() == nil { 13570 ms.StoreMessageInfo(mi) 13571 } 13572 return ms 13573 } 13574 return mi.MessageOf(x) 13575} 13576 13577// Deprecated: Use RecordCondition_Condition.ProtoReflect.Descriptor instead. 13578func (*RecordCondition_Condition) Descriptor() ([]byte, []int) { 13579 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{69, 0} 13580} 13581 13582func (x *RecordCondition_Condition) GetField() *FieldId { 13583 if x != nil { 13584 return x.Field 13585 } 13586 return nil 13587} 13588 13589func (x *RecordCondition_Condition) GetOperator() RelationalOperator { 13590 if x != nil { 13591 return x.Operator 13592 } 13593 return RelationalOperator_RELATIONAL_OPERATOR_UNSPECIFIED 13594} 13595 13596func (x *RecordCondition_Condition) GetValue() *Value { 13597 if x != nil { 13598 return x.Value 13599 } 13600 return nil 13601} 13602 13603// A collection of conditions. 13604type RecordCondition_Conditions struct { 13605 state protoimpl.MessageState 13606 sizeCache protoimpl.SizeCache 13607 unknownFields protoimpl.UnknownFields 13608 13609 // A collection of conditions. 13610 Conditions []*RecordCondition_Condition `protobuf:"bytes,1,rep,name=conditions,proto3" json:"conditions,omitempty"` 13611} 13612 13613func (x *RecordCondition_Conditions) Reset() { 13614 *x = RecordCondition_Conditions{} 13615 if protoimpl.UnsafeEnabled { 13616 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[162] 13617 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13618 ms.StoreMessageInfo(mi) 13619 } 13620} 13621 13622func (x *RecordCondition_Conditions) String() string { 13623 return protoimpl.X.MessageStringOf(x) 13624} 13625 13626func (*RecordCondition_Conditions) ProtoMessage() {} 13627 13628func (x *RecordCondition_Conditions) ProtoReflect() protoreflect.Message { 13629 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[162] 13630 if protoimpl.UnsafeEnabled && x != nil { 13631 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13632 if ms.LoadMessageInfo() == nil { 13633 ms.StoreMessageInfo(mi) 13634 } 13635 return ms 13636 } 13637 return mi.MessageOf(x) 13638} 13639 13640// Deprecated: Use RecordCondition_Conditions.ProtoReflect.Descriptor instead. 13641func (*RecordCondition_Conditions) Descriptor() ([]byte, []int) { 13642 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{69, 1} 13643} 13644 13645func (x *RecordCondition_Conditions) GetConditions() []*RecordCondition_Condition { 13646 if x != nil { 13647 return x.Conditions 13648 } 13649 return nil 13650} 13651 13652// An expression, consisting or an operator and conditions. 13653type RecordCondition_Expressions struct { 13654 state protoimpl.MessageState 13655 sizeCache protoimpl.SizeCache 13656 unknownFields protoimpl.UnknownFields 13657 13658 // The operator to apply to the result of conditions. Default and currently 13659 // only supported value is `AND`. 13660 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"` 13661 // Expression types. 13662 // 13663 // Types that are assignable to Type: 13664 // *RecordCondition_Expressions_Conditions 13665 Type isRecordCondition_Expressions_Type `protobuf_oneof:"type"` 13666} 13667 13668func (x *RecordCondition_Expressions) Reset() { 13669 *x = RecordCondition_Expressions{} 13670 if protoimpl.UnsafeEnabled { 13671 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[163] 13672 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13673 ms.StoreMessageInfo(mi) 13674 } 13675} 13676 13677func (x *RecordCondition_Expressions) String() string { 13678 return protoimpl.X.MessageStringOf(x) 13679} 13680 13681func (*RecordCondition_Expressions) ProtoMessage() {} 13682 13683func (x *RecordCondition_Expressions) ProtoReflect() protoreflect.Message { 13684 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[163] 13685 if protoimpl.UnsafeEnabled && x != nil { 13686 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13687 if ms.LoadMessageInfo() == nil { 13688 ms.StoreMessageInfo(mi) 13689 } 13690 return ms 13691 } 13692 return mi.MessageOf(x) 13693} 13694 13695// Deprecated: Use RecordCondition_Expressions.ProtoReflect.Descriptor instead. 13696func (*RecordCondition_Expressions) Descriptor() ([]byte, []int) { 13697 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{69, 2} 13698} 13699 13700func (x *RecordCondition_Expressions) GetLogicalOperator() RecordCondition_Expressions_LogicalOperator { 13701 if x != nil { 13702 return x.LogicalOperator 13703 } 13704 return RecordCondition_Expressions_LOGICAL_OPERATOR_UNSPECIFIED 13705} 13706 13707func (m *RecordCondition_Expressions) GetType() isRecordCondition_Expressions_Type { 13708 if m != nil { 13709 return m.Type 13710 } 13711 return nil 13712} 13713 13714func (x *RecordCondition_Expressions) GetConditions() *RecordCondition_Conditions { 13715 if x, ok := x.GetType().(*RecordCondition_Expressions_Conditions); ok { 13716 return x.Conditions 13717 } 13718 return nil 13719} 13720 13721type isRecordCondition_Expressions_Type interface { 13722 isRecordCondition_Expressions_Type() 13723} 13724 13725type RecordCondition_Expressions_Conditions struct { 13726 // Conditions to apply to the expression. 13727 Conditions *RecordCondition_Conditions `protobuf:"bytes,3,opt,name=conditions,proto3,oneof"` 13728} 13729 13730func (*RecordCondition_Expressions_Conditions) isRecordCondition_Expressions_Type() {} 13731 13732// A collection that informs the user the number of times a particular 13733// `TransformationResultCode` and error details occurred. 13734type TransformationSummary_SummaryResult struct { 13735 state protoimpl.MessageState 13736 sizeCache protoimpl.SizeCache 13737 unknownFields protoimpl.UnknownFields 13738 13739 // Number of transformations counted by this result. 13740 Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` 13741 // Outcome of the transformation. 13742 Code TransformationSummary_TransformationResultCode `protobuf:"varint,2,opt,name=code,proto3,enum=google.privacy.dlp.v2.TransformationSummary_TransformationResultCode" json:"code,omitempty"` 13743 // A place for warnings or errors to show up if a transformation didn't 13744 // work as expected. 13745 Details string `protobuf:"bytes,3,opt,name=details,proto3" json:"details,omitempty"` 13746} 13747 13748func (x *TransformationSummary_SummaryResult) Reset() { 13749 *x = TransformationSummary_SummaryResult{} 13750 if protoimpl.UnsafeEnabled { 13751 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[164] 13752 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13753 ms.StoreMessageInfo(mi) 13754 } 13755} 13756 13757func (x *TransformationSummary_SummaryResult) String() string { 13758 return protoimpl.X.MessageStringOf(x) 13759} 13760 13761func (*TransformationSummary_SummaryResult) ProtoMessage() {} 13762 13763func (x *TransformationSummary_SummaryResult) ProtoReflect() protoreflect.Message { 13764 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[164] 13765 if protoimpl.UnsafeEnabled && x != nil { 13766 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13767 if ms.LoadMessageInfo() == nil { 13768 ms.StoreMessageInfo(mi) 13769 } 13770 return ms 13771 } 13772 return mi.MessageOf(x) 13773} 13774 13775// Deprecated: Use TransformationSummary_SummaryResult.ProtoReflect.Descriptor instead. 13776func (*TransformationSummary_SummaryResult) Descriptor() ([]byte, []int) { 13777 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{71, 0} 13778} 13779 13780func (x *TransformationSummary_SummaryResult) GetCount() int64 { 13781 if x != nil { 13782 return x.Count 13783 } 13784 return 0 13785} 13786 13787func (x *TransformationSummary_SummaryResult) GetCode() TransformationSummary_TransformationResultCode { 13788 if x != nil { 13789 return x.Code 13790 } 13791 return TransformationSummary_TRANSFORMATION_RESULT_CODE_UNSPECIFIED 13792} 13793 13794func (x *TransformationSummary_SummaryResult) GetDetails() string { 13795 if x != nil { 13796 return x.Details 13797 } 13798 return "" 13799} 13800 13801// What event needs to occur for a new job to be started. 13802type JobTrigger_Trigger struct { 13803 state protoimpl.MessageState 13804 sizeCache protoimpl.SizeCache 13805 unknownFields protoimpl.UnknownFields 13806 13807 // Types that are assignable to Trigger: 13808 // *JobTrigger_Trigger_Schedule 13809 // *JobTrigger_Trigger_Manual 13810 Trigger isJobTrigger_Trigger_Trigger `protobuf_oneof:"trigger"` 13811} 13812 13813func (x *JobTrigger_Trigger) Reset() { 13814 *x = JobTrigger_Trigger{} 13815 if protoimpl.UnsafeEnabled { 13816 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[165] 13817 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13818 ms.StoreMessageInfo(mi) 13819 } 13820} 13821 13822func (x *JobTrigger_Trigger) String() string { 13823 return protoimpl.X.MessageStringOf(x) 13824} 13825 13826func (*JobTrigger_Trigger) ProtoMessage() {} 13827 13828func (x *JobTrigger_Trigger) ProtoReflect() protoreflect.Message { 13829 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[165] 13830 if protoimpl.UnsafeEnabled && x != nil { 13831 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13832 if ms.LoadMessageInfo() == nil { 13833 ms.StoreMessageInfo(mi) 13834 } 13835 return ms 13836 } 13837 return mi.MessageOf(x) 13838} 13839 13840// Deprecated: Use JobTrigger_Trigger.ProtoReflect.Descriptor instead. 13841func (*JobTrigger_Trigger) Descriptor() ([]byte, []int) { 13842 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{77, 0} 13843} 13844 13845func (m *JobTrigger_Trigger) GetTrigger() isJobTrigger_Trigger_Trigger { 13846 if m != nil { 13847 return m.Trigger 13848 } 13849 return nil 13850} 13851 13852func (x *JobTrigger_Trigger) GetSchedule() *Schedule { 13853 if x, ok := x.GetTrigger().(*JobTrigger_Trigger_Schedule); ok { 13854 return x.Schedule 13855 } 13856 return nil 13857} 13858 13859func (x *JobTrigger_Trigger) GetManual() *Manual { 13860 if x, ok := x.GetTrigger().(*JobTrigger_Trigger_Manual); ok { 13861 return x.Manual 13862 } 13863 return nil 13864} 13865 13866type isJobTrigger_Trigger_Trigger interface { 13867 isJobTrigger_Trigger_Trigger() 13868} 13869 13870type JobTrigger_Trigger_Schedule struct { 13871 // Create a job on a repeating basis based on the elapse of time. 13872 Schedule *Schedule `protobuf:"bytes,1,opt,name=schedule,proto3,oneof"` 13873} 13874 13875type JobTrigger_Trigger_Manual struct { 13876 // For use with hybrid jobs. Jobs must be manually created and finished. 13877 // Early access feature is in a pre-release state and might change or have 13878 // limited support. For more information, see 13879 // https://cloud.google.com/products#product-launch-stages. 13880 Manual *Manual `protobuf:"bytes,2,opt,name=manual,proto3,oneof"` 13881} 13882 13883func (*JobTrigger_Trigger_Schedule) isJobTrigger_Trigger_Trigger() {} 13884 13885func (*JobTrigger_Trigger_Manual) isJobTrigger_Trigger_Trigger() {} 13886 13887// If set, the detailed findings will be persisted to the specified 13888// OutputStorageConfig. Only a single instance of this action can be 13889// specified. 13890// Compatible with: Inspect, Risk 13891type Action_SaveFindings struct { 13892 state protoimpl.MessageState 13893 sizeCache protoimpl.SizeCache 13894 unknownFields protoimpl.UnknownFields 13895 13896 // Location to store findings outside of DLP. 13897 OutputConfig *OutputStorageConfig `protobuf:"bytes,1,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 13898} 13899 13900func (x *Action_SaveFindings) Reset() { 13901 *x = Action_SaveFindings{} 13902 if protoimpl.UnsafeEnabled { 13903 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[166] 13904 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13905 ms.StoreMessageInfo(mi) 13906 } 13907} 13908 13909func (x *Action_SaveFindings) String() string { 13910 return protoimpl.X.MessageStringOf(x) 13911} 13912 13913func (*Action_SaveFindings) ProtoMessage() {} 13914 13915func (x *Action_SaveFindings) ProtoReflect() protoreflect.Message { 13916 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[166] 13917 if protoimpl.UnsafeEnabled && x != nil { 13918 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13919 if ms.LoadMessageInfo() == nil { 13920 ms.StoreMessageInfo(mi) 13921 } 13922 return ms 13923 } 13924 return mi.MessageOf(x) 13925} 13926 13927// Deprecated: Use Action_SaveFindings.ProtoReflect.Descriptor instead. 13928func (*Action_SaveFindings) Descriptor() ([]byte, []int) { 13929 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{78, 0} 13930} 13931 13932func (x *Action_SaveFindings) GetOutputConfig() *OutputStorageConfig { 13933 if x != nil { 13934 return x.OutputConfig 13935 } 13936 return nil 13937} 13938 13939// Publish a message into given Pub/Sub topic when DlpJob has completed. The 13940// message contains a single field, `DlpJobName`, which is equal to the 13941// finished job's 13942// [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob). 13943// Compatible with: Inspect, Risk 13944type Action_PublishToPubSub struct { 13945 state protoimpl.MessageState 13946 sizeCache protoimpl.SizeCache 13947 unknownFields protoimpl.UnknownFields 13948 13949 // Cloud Pub/Sub topic to send notifications to. The topic must have given 13950 // publishing access rights to the DLP API service account executing 13951 // the long running DlpJob sending the notifications. 13952 // Format is projects/{project}/topics/{topic}. 13953 Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` 13954} 13955 13956func (x *Action_PublishToPubSub) Reset() { 13957 *x = Action_PublishToPubSub{} 13958 if protoimpl.UnsafeEnabled { 13959 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[167] 13960 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13961 ms.StoreMessageInfo(mi) 13962 } 13963} 13964 13965func (x *Action_PublishToPubSub) String() string { 13966 return protoimpl.X.MessageStringOf(x) 13967} 13968 13969func (*Action_PublishToPubSub) ProtoMessage() {} 13970 13971func (x *Action_PublishToPubSub) ProtoReflect() protoreflect.Message { 13972 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[167] 13973 if protoimpl.UnsafeEnabled && x != nil { 13974 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 13975 if ms.LoadMessageInfo() == nil { 13976 ms.StoreMessageInfo(mi) 13977 } 13978 return ms 13979 } 13980 return mi.MessageOf(x) 13981} 13982 13983// Deprecated: Use Action_PublishToPubSub.ProtoReflect.Descriptor instead. 13984func (*Action_PublishToPubSub) Descriptor() ([]byte, []int) { 13985 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{78, 1} 13986} 13987 13988func (x *Action_PublishToPubSub) GetTopic() string { 13989 if x != nil { 13990 return x.Topic 13991 } 13992 return "" 13993} 13994 13995// Publish the result summary of a DlpJob to the Cloud Security 13996// Command Center (CSCC Alpha). 13997// This action is only available for projects which are parts of 13998// an organization and whitelisted for the alpha Cloud Security Command 13999// Center. 14000// The action will publish count of finding instances and their info types. 14001// The summary of findings will be persisted in CSCC and are governed by CSCC 14002// service-specific policy, see https://cloud.google.com/terms/service-terms 14003// Only a single instance of this action can be specified. 14004// Compatible with: Inspect 14005type Action_PublishSummaryToCscc struct { 14006 state protoimpl.MessageState 14007 sizeCache protoimpl.SizeCache 14008 unknownFields protoimpl.UnknownFields 14009} 14010 14011func (x *Action_PublishSummaryToCscc) Reset() { 14012 *x = Action_PublishSummaryToCscc{} 14013 if protoimpl.UnsafeEnabled { 14014 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[168] 14015 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14016 ms.StoreMessageInfo(mi) 14017 } 14018} 14019 14020func (x *Action_PublishSummaryToCscc) String() string { 14021 return protoimpl.X.MessageStringOf(x) 14022} 14023 14024func (*Action_PublishSummaryToCscc) ProtoMessage() {} 14025 14026func (x *Action_PublishSummaryToCscc) ProtoReflect() protoreflect.Message { 14027 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[168] 14028 if protoimpl.UnsafeEnabled && x != nil { 14029 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14030 if ms.LoadMessageInfo() == nil { 14031 ms.StoreMessageInfo(mi) 14032 } 14033 return ms 14034 } 14035 return mi.MessageOf(x) 14036} 14037 14038// Deprecated: Use Action_PublishSummaryToCscc.ProtoReflect.Descriptor instead. 14039func (*Action_PublishSummaryToCscc) Descriptor() ([]byte, []int) { 14040 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{78, 2} 14041} 14042 14043// Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the 14044// results of the DlpJob will be applied to the entry for the resource scanned 14045// in Cloud Data Catalog. Any labels previously written by another DlpJob will 14046// be deleted. InfoType naming patterns are strictly enforced when using this 14047// feature. Note that the findings will be persisted in Cloud Data Catalog 14048// storage and are governed by Data Catalog service-specific policy, see 14049// https://cloud.google.com/terms/service-terms 14050// Only a single instance of this action can be specified and only allowed if 14051// all resources being scanned are BigQuery tables. 14052// Compatible with: Inspect 14053type Action_PublishFindingsToCloudDataCatalog struct { 14054 state protoimpl.MessageState 14055 sizeCache protoimpl.SizeCache 14056 unknownFields protoimpl.UnknownFields 14057} 14058 14059func (x *Action_PublishFindingsToCloudDataCatalog) Reset() { 14060 *x = Action_PublishFindingsToCloudDataCatalog{} 14061 if protoimpl.UnsafeEnabled { 14062 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[169] 14063 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14064 ms.StoreMessageInfo(mi) 14065 } 14066} 14067 14068func (x *Action_PublishFindingsToCloudDataCatalog) String() string { 14069 return protoimpl.X.MessageStringOf(x) 14070} 14071 14072func (*Action_PublishFindingsToCloudDataCatalog) ProtoMessage() {} 14073 14074func (x *Action_PublishFindingsToCloudDataCatalog) ProtoReflect() protoreflect.Message { 14075 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[169] 14076 if protoimpl.UnsafeEnabled && x != nil { 14077 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14078 if ms.LoadMessageInfo() == nil { 14079 ms.StoreMessageInfo(mi) 14080 } 14081 return ms 14082 } 14083 return mi.MessageOf(x) 14084} 14085 14086// Deprecated: Use Action_PublishFindingsToCloudDataCatalog.ProtoReflect.Descriptor instead. 14087func (*Action_PublishFindingsToCloudDataCatalog) Descriptor() ([]byte, []int) { 14088 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{78, 3} 14089} 14090 14091// Enable email notification to project owners and editors on jobs's 14092// completion/failure. 14093type Action_JobNotificationEmails struct { 14094 state protoimpl.MessageState 14095 sizeCache protoimpl.SizeCache 14096 unknownFields protoimpl.UnknownFields 14097} 14098 14099func (x *Action_JobNotificationEmails) Reset() { 14100 *x = Action_JobNotificationEmails{} 14101 if protoimpl.UnsafeEnabled { 14102 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[170] 14103 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14104 ms.StoreMessageInfo(mi) 14105 } 14106} 14107 14108func (x *Action_JobNotificationEmails) String() string { 14109 return protoimpl.X.MessageStringOf(x) 14110} 14111 14112func (*Action_JobNotificationEmails) ProtoMessage() {} 14113 14114func (x *Action_JobNotificationEmails) ProtoReflect() protoreflect.Message { 14115 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[170] 14116 if protoimpl.UnsafeEnabled && x != nil { 14117 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14118 if ms.LoadMessageInfo() == nil { 14119 ms.StoreMessageInfo(mi) 14120 } 14121 return ms 14122 } 14123 return mi.MessageOf(x) 14124} 14125 14126// Deprecated: Use Action_JobNotificationEmails.ProtoReflect.Descriptor instead. 14127func (*Action_JobNotificationEmails) Descriptor() ([]byte, []int) { 14128 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{78, 4} 14129} 14130 14131// Enable Stackdriver metric dlp.googleapis.com/finding_count. This 14132// will publish a metric to stack driver on each infotype requested and 14133// how many findings were found for it. CustomDetectors will be bucketed 14134// as 'Custom' under the Stackdriver label 'info_type'. 14135type Action_PublishToStackdriver struct { 14136 state protoimpl.MessageState 14137 sizeCache protoimpl.SizeCache 14138 unknownFields protoimpl.UnknownFields 14139} 14140 14141func (x *Action_PublishToStackdriver) Reset() { 14142 *x = Action_PublishToStackdriver{} 14143 if protoimpl.UnsafeEnabled { 14144 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[171] 14145 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14146 ms.StoreMessageInfo(mi) 14147 } 14148} 14149 14150func (x *Action_PublishToStackdriver) String() string { 14151 return protoimpl.X.MessageStringOf(x) 14152} 14153 14154func (*Action_PublishToStackdriver) ProtoMessage() {} 14155 14156func (x *Action_PublishToStackdriver) ProtoReflect() protoreflect.Message { 14157 mi := &file_google_privacy_dlp_v2_dlp_proto_msgTypes[171] 14158 if protoimpl.UnsafeEnabled && x != nil { 14159 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 14160 if ms.LoadMessageInfo() == nil { 14161 ms.StoreMessageInfo(mi) 14162 } 14163 return ms 14164 } 14165 return mi.MessageOf(x) 14166} 14167 14168// Deprecated: Use Action_PublishToStackdriver.ProtoReflect.Descriptor instead. 14169func (*Action_PublishToStackdriver) Descriptor() ([]byte, []int) { 14170 return file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP(), []int{78, 5} 14171} 14172 14173var File_google_privacy_dlp_v2_dlp_proto protoreflect.FileDescriptor 14174 14175var file_google_privacy_dlp_v2_dlp_proto_rawDesc = []byte{ 14176 0x0a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 14177 0x2f, 0x64, 0x6c, 0x70, 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x6c, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 14178 0x6f, 0x12, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 14179 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 14180 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 14181 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 14182 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 14183 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 14184 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 14185 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 14186 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 14187 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2f, 0x64, 0x6c, 0x70, 0x2f, 14188 0x76, 0x32, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 14189 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 14190 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 14191 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 14192 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 14193 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 14194 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 14195 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 14196 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 14197 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 14198 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 14199 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 14200 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x64, 14201 0x61, 0x79, 0x6f, 0x66, 0x77, 0x65, 0x65, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 14202 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x74, 0x69, 0x6d, 0x65, 14203 0x6f, 0x66, 0x64, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x52, 0x0a, 0x10, 0x45, 14204 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 14205 0x3e, 0x0a, 0x0a, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 14206 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 14207 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 14208 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 14209 0xd3, 0x02, 0x0a, 0x0d, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 14210 0x65, 0x12, 0x52, 0x0a, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x18, 14211 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 14212 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 14213 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x69, 0x63, 14214 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, 14215 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x43, 0x0a, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x02, 14216 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 14217 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 14218 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x52, 0x65, 0x67, 0x65, 14219 0x78, 0x48, 0x00, 0x52, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x12, 0x57, 0x0a, 0x12, 0x65, 0x78, 14220 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 14221 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14222 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x45, 14223 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x48, 14224 0x00, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 14225 0x70, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 14226 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 14227 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14228 0x76, 0x32, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 14229 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 14230 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 14231 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x64, 0x0a, 0x0c, 0x68, 0x6f, 0x74, 0x77, 14232 0x6f, 0x72, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 14233 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14234 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 14235 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 14236 0x75, 0x6c, 0x65, 0x2e, 0x48, 0x6f, 0x74, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x48, 14237 0x00, 0x52, 0x0b, 0x68, 0x6f, 0x74, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x4d, 14238 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x75, 0x6c, 0x65, 14239 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14240 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x45, 14241 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x0d, 14242 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x06, 0x0a, 14243 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x11, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 14244 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 0x3e, 0x0a, 0x0a, 0x69, 14245 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 14246 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 14247 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 14248 0x52, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x72, 14249 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 14250 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14251 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 14252 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x8d, 0x07, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 14253 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3e, 0x0a, 0x0a, 0x69, 0x6e, 14254 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 14255 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14256 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 14257 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0e, 0x6d, 0x69, 14258 0x6e, 0x5f, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 14259 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 14260 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 14261 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 14262 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x4a, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x03, 14263 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 14264 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 14265 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x69, 14266 0x6e, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 14267 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x71, 0x75, 0x6f, 0x74, 14268 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 14269 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 14270 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 14271 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 14272 0x70, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x69, 0x6e, 14273 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 14274 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14275 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 14276 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 14277 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 14278 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0e, 0x32, 14279 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 14280 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4f, 14281 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4f, 0x70, 14282 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x73, 0x65, 14283 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 14284 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 14285 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x65, 14286 0x74, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x1a, 0xeb, 0x02, 0x0a, 0x0d, 0x46, 14287 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x15, 14288 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x70, 0x65, 0x72, 14289 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x6d, 0x61, 0x78, 14290 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x50, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x12, 14291 0x37, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x5f, 14292 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 14293 0x05, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x50, 0x65, 14294 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x7c, 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x5f, 14295 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 14296 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 14297 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14298 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 14299 0x69, 0x67, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 14300 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x16, 14301 0x6d, 0x61, 0x78, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x50, 0x65, 0x72, 0x49, 0x6e, 14302 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x70, 0x0a, 0x0d, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 14303 0x70, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 14304 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 14305 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14306 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x66, 14307 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x69, 0x6e, 14308 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 14309 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x92, 0x02, 0x0a, 0x0f, 0x42, 0x79, 0x74, 14310 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x44, 0x0a, 0x04, 14311 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 14312 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14313 0x76, 0x32, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 14314 0x65, 0x6d, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 14315 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 14316 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa4, 0x01, 0x0a, 0x09, 0x42, 0x79, 0x74, 0x65, 0x73, 14317 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x59, 0x54, 0x45, 0x53, 0x5f, 0x54, 0x59, 14318 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 14319 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 14320 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x4a, 0x50, 0x45, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x49, 14321 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x42, 0x4d, 0x50, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4d, 14322 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4d, 0x41, 14323 0x47, 0x45, 0x5f, 0x53, 0x56, 0x47, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x45, 0x58, 0x54, 14324 0x5f, 0x55, 0x54, 0x46, 0x38, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x57, 0x4f, 0x52, 0x44, 0x5f, 14325 0x44, 0x4f, 0x43, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x44, 14326 0x46, 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x56, 0x52, 0x4f, 0x10, 0x0b, 0x22, 0xaf, 0x01, 14327 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 14328 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 14329 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 14330 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 14331 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x62, 14332 0x6c, 0x65, 0x48, 0x00, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x62, 14333 0x79, 0x74, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 14334 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14335 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 14336 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65, 0x49, 0x74, 14337 0x65, 0x6d, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x22, 14338 0xb4, 0x01, 0x0a, 0x05, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x68, 0x65, 0x61, 14339 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 14340 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14341 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 14342 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 14343 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 14344 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 14345 0x52, 0x6f, 0x77, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x1a, 0x3b, 0x0a, 0x03, 0x52, 0x6f, 0x77, 14346 0x12, 0x34, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 14347 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 14348 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 14349 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x7a, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 14350 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3a, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x64, 0x69, 14351 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 14352 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 14353 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x64, 0x69, 14354 0x6e, 0x67, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x5f, 14355 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 14356 0x11, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 14357 0x65, 0x64, 0x22, 0xd6, 0x06, 0x0a, 0x07, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 14358 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 14359 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 14360 0x09, 0x52, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x66, 0x6f, 14361 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 14362 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 14363 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x69, 0x6e, 14364 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 14365 0x68, 0x6f, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 14366 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14367 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x52, 0x0a, 0x6c, 14368 0x69, 0x6b, 0x65, 0x6c, 0x69, 0x68, 0x6f, 0x6f, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 14369 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 14370 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 14371 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 14372 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 14373 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 14374 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 14375 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 14376 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x66, 14377 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 14378 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 14379 0x51, 0x75, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x65, 14380 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x43, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 14381 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xfa, 0x41, 0x1b, 14382 0x0a, 0x19, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 14383 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x0c, 0x72, 0x65, 0x73, 14384 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x72, 0x69, 14385 0x67, 0x67, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 14386 0x22, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 14387 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 14388 0x67, 0x65, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 14389 0x12, 0x42, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 14390 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 14391 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 14392 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 14393 0x62, 0x65, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x72, 0x65, 0x61, 14394 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 14395 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 14396 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 0x43, 0x72, 14397 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 14398 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xfa, 0x41, 0x1b, 0x0a, 14399 0x19, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 14400 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 14401 0x61, 0x6d, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 14402 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 14403 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 14404 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x5b, 14405 0xea, 0x41, 0x58, 0x0a, 0x1a, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 14406 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 14407 0x3a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 14408 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 14409 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 14410 0x73, 0x2f, 0x7b, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x7d, 0x22, 0xa3, 0x02, 0x0a, 0x08, 14411 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 14412 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 14413 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14414 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 14415 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x63, 0x6f, 0x64, 0x65, 0x70, 0x6f, 0x69, 14416 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 14417 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14418 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x63, 0x6f, 14419 0x64, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x53, 0x0a, 0x11, 14420 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 14421 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 14422 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 14423 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 14424 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 14425 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x08, 14426 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 14427 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 14428 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 14429 0x72, 0x22, 0x8f, 0x04, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 14430 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 14431 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 14432 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0f, 14433 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 14434 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 14435 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 14436 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 14437 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 14438 0x0a, 0x0e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 14439 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14440 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 14441 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 14442 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 14443 0x11, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 14444 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 14445 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 14446 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 14447 0x6e, 0x48, 0x00, 0x52, 0x10, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 14448 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 14449 0x61, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 14450 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 14451 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 14452 0x61, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x6d, 0x65, 0x74, 14453 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 14454 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 14455 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 14456 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 14457 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 14458 0x72, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 14459 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 14460 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 14461 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 14462 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 14463 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 14464 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14465 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 14466 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 14467 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x61, 0x62, 14468 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 14469 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 14470 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 14471 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 14472 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x28, 14473 0x0a, 0x14, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 14474 0x61, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 14475 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x33, 0x0a, 0x10, 0x44, 0x6f, 0x63, 0x75, 14476 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 14477 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 14478 0x03, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0xd9, 0x01, 14479 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 14480 0x12, 0x3f, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 14481 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 14482 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 14483 0x6f, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4b, 0x65, 14484 0x79, 0x12, 0x39, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 14485 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 14486 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 14487 0x64, 0x49, 0x64, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0e, 14488 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 14489 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 14490 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x62, 14491 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x74, 0x61, 0x62, 0x6c, 14492 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x0d, 0x54, 0x61, 0x62, 14493 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 14494 0x77, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 14495 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xf4, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, 14496 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 14497 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 14498 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 14499 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 14500 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 14501 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x70, 0x61, 14502 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x50, 0x61, 14503 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 14504 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 14505 0x69, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 14506 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 14507 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 14508 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 14509 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 14510 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x2f, 14511 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 14512 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 14513 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 14514 0x5a, 0x0a, 0x0d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 14515 0x12, 0x49, 0x0a, 0x0e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x78, 14516 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 14517 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 14518 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, 0x0d, 0x62, 0x6f, 14519 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x65, 0x73, 0x22, 0x61, 0x0a, 0x0b, 0x42, 14520 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6f, 14521 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74, 0x6f, 0x70, 0x12, 0x12, 0x0a, 0x04, 14522 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 14523 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 14524 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 14525 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x88, 14526 0x05, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 14527 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 14528 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 14529 0x64, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 14530 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 14531 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 14532 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x08, 14533 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 14534 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 14535 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 14536 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 14537 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 14538 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x76, 0x0a, 14539 0x17, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 14540 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 14541 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14542 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x49, 0x6d, 0x61, 14543 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 14544 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x15, 14545 0x69, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 14546 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 14547 0x5f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 14548 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 14549 0x12, 0x43, 0x0a, 0x09, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x07, 0x20, 14550 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 14551 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x79, 0x74, 0x65, 14552 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x62, 0x79, 0x74, 14553 0x65, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0xd1, 0x01, 0x0a, 0x14, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 14554 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3e, 14555 0x0a, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 14556 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 14557 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 14558 0x70, 0x65, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 14559 0x0a, 0x0f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x65, 0x78, 14560 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x64, 0x61, 0x63, 14561 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x65, 0x78, 0x74, 0x12, 0x45, 0x0a, 0x0f, 0x72, 0x65, 0x64, 0x61, 14562 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 14563 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 14564 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 14565 0x0e, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 14566 0x08, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x43, 0x0a, 0x05, 0x43, 0x6f, 0x6c, 14567 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 14568 0x03, 0x72, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x02, 0x20, 14569 0x01, 0x28, 0x02, 0x52, 0x05, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6c, 14570 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x62, 0x6c, 0x75, 0x65, 0x22, 0xb0, 14571 0x01, 0x0a, 0x13, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 14572 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 14573 0x65, 0x64, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 14574 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 14575 0x0e, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 14576 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x65, 0x64, 14577 0x54, 0x65, 0x78, 0x74, 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 14578 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 14579 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14580 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 14581 0x6c, 0x74, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 14582 0x74, 0x22, 0xce, 0x03, 0x0a, 0x18, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 14583 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 14584 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 14585 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 14586 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 14587 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 14588 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x11, 0x64, 0x65, 0x69, 0x64, 14589 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 14590 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 14591 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 0x64, 14592 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x64, 0x65, 14593 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4b, 14594 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 14595 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14596 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 14597 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x69, 0x6e, 14598 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x69, 14599 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 14600 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 14601 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 14602 0x74, 0x65, 0x6d, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 14603 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 14604 0x28, 0x09, 0x52, 0x13, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 14605 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x65, 0x69, 0x64, 0x65, 14606 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6e, 14607 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x64, 0x65, 0x69, 0x64, 0x65, 14608 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 14609 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 14610 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 14611 0x49, 0x64, 0x22, 0x9e, 0x01, 0x0a, 0x19, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 14612 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 14613 0x12, 0x36, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 14614 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14615 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 14616 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x49, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 14617 0x76, 0x69, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 14618 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14619 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 14620 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x76, 14621 0x69, 0x65, 0x77, 0x22, 0xd1, 0x03, 0x0a, 0x18, 0x52, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 14622 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 14623 0x12, 0x4b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 14624 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 14625 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 14626 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 14627 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x54, 0x0a, 14628 0x11, 0x72, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 14629 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 14630 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 14631 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 14632 0x67, 0x52, 0x10, 0x72, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 14633 0x66, 0x69, 0x67, 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x63, 14634 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 14635 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 14636 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 14637 0x67, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 14638 0x12, 0x36, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 14639 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14640 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 14641 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x73, 0x70, 14642 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 14643 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 14644 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x18, 14645 0x72, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 14646 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 14647 0x72, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 14648 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 14649 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 14650 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x9e, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x69, 0x64, 14651 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 14652 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 14653 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 14654 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 14655 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x49, 0x0a, 14656 0x08, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 14657 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 14658 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 14659 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x52, 0x08, 14660 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x22, 0xbb, 0x02, 0x0a, 0x15, 0x49, 0x6e, 0x73, 14661 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 14662 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 14663 0x28, 0x09, 0x42, 0x30, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 14664 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 14665 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 14666 0x6a, 0x65, 0x63, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0e, 14667 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 14668 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 14669 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 14670 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x70, 14671 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x69, 0x74, 0x65, 14672 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 14673 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 14674 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 14675 0x6d, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 14676 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 14677 0x52, 0x13, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 14678 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 14679 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 14680 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x56, 0x0a, 0x16, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 14681 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 14682 0x12, 0x3c, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 14683 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 14684 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 14685 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xcc, 14686 0x02, 0x0a, 0x13, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 14687 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3c, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 14688 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 14689 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 14690 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x05, 0x74, 14691 0x61, 0x62, 0x6c, 0x65, 0x12, 0x5c, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x73, 14692 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 14693 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 14694 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 14695 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x63, 14696 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x63, 0x68, 0x65, 14697 0x6d, 0x61, 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x63, 0x68, 14698 0x65, 0x6d, 0x61, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x43, 14699 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 14700 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x41, 0x53, 0x49, 0x43, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 14701 0x4d, 0x4e, 0x53, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x43, 0x53, 0x5f, 0x43, 0x4f, 0x4c, 14702 0x55, 0x4d, 0x4e, 0x53, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x41, 0x54, 0x41, 0x53, 0x54, 14703 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x53, 0x10, 0x03, 0x12, 0x15, 0x0a, 14704 0x11, 0x42, 0x49, 0x47, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 14705 0x4e, 0x53, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x4c, 0x4c, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 14706 0x4d, 0x4e, 0x53, 0x10, 0x05, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x63, 0x0a, 14707 0x0d, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3c, 14708 0x0a, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 14709 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 14710 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 14711 0x70, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 14712 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 14713 0x6e, 0x74, 0x22, 0xa3, 0x05, 0x0a, 0x18, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x44, 0x61, 14714 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 14715 0x6d, 0x0a, 0x11, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 14716 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 14717 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14718 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 14719 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 14720 0x65, 0x73, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x10, 0x72, 0x65, 14721 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4e, 14722 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 14723 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14724 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x44, 0x61, 14725 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 14726 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0xbe, 14727 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 14728 0x6f, 0x6e, 0x73, 0x12, 0x62, 0x0a, 0x19, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 14729 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 14730 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14731 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 14732 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x17, 14733 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 14734 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x46, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 14735 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 14736 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 14737 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 14738 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 14739 0x86, 0x02, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 14740 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 14741 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x42, 0x79, 14742 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x73, 0x74, 14743 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 14744 0x28, 0x03, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 14745 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 14746 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 14747 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 14748 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 14749 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0d, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 14750 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x51, 0x0a, 0x0c, 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 0x5f, 14751 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 14752 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 14753 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 14754 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x0b, 0x68, 0x79, 0x62, 14755 0x72, 0x69, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x17, 0x48, 0x79, 0x62, 14756 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 14757 0x74, 0x69, 0x63, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 14758 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 14759 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 14760 0x0d, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 14761 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 14762 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 14763 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x65, 0x6e, 0x64, 0x69, 14764 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x66, 0x6f, 14765 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 14766 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 14767 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 14768 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 14769 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 14770 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 14771 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14772 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x70, 14773 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x52, 0x0b, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 14774 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 14775 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 14776 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 14777 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 14778 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 14779 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 14780 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 14781 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 14782 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 14783 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 14784 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 14785 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x62, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 14786 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 14787 0x49, 0x0a, 0x0a, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 14788 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 14789 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 14790 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 14791 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x15, 0x52, 14792 0x69, 0x73, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 14793 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4b, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x5f, 14794 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 14795 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14796 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 14797 0x69, 0x63, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 14798 0x63, 0x12, 0x47, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 14799 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 14800 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 14801 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x0b, 0x73, 14802 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 14803 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 14804 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 14805 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 14806 0x6f, 0x6e, 0x73, 0x22, 0xe2, 0x01, 0x0a, 0x07, 0x51, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x12, 14807 0x39, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 14808 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 14809 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x42, 0x03, 14810 0xe0, 0x41, 0x02, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 14811 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 14812 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 14813 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 14814 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x75, 14815 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 14816 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x61, 0x67, 0x12, 0x34, 0x0a, 0x08, 0x69, 14817 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 14818 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 14819 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, 14820 0x64, 0x42, 0x05, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x22, 0xf4, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x61, 14821 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 14822 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 14823 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14824 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x62, 14825 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x5e, 14826 0x0a, 0x09, 0x71, 0x75, 0x61, 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 14827 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 14828 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 14829 0x74, 0x69, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x51, 0x75, 0x61, 0x73, 0x69, 14830 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 14831 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x12, 0x52, 14832 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 14833 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 14834 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14835 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 14836 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 14837 0x63, 0x79, 0x1a, 0x6b, 0x0a, 0x14, 0x51, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x65, 0x6e, 0x74, 14838 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x34, 0x0a, 0x05, 0x66, 0x69, 14839 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 14840 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 14841 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 14842 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02, 14843 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x61, 0x67, 0x22, 14844 0x86, 0x12, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 14845 0x63, 0x12, 0x71, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x73, 14846 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 14847 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 14848 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 14849 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 14850 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x14, 14851 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 14852 0x6e, 0x66, 0x69, 0x67, 0x12, 0x77, 0x0a, 0x18, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 14853 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 14854 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14855 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 14856 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x43, 0x61, 0x74, 14857 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6e, 14858 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x16, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 14859 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x65, 0x0a, 14860 0x12, 0x6b, 0x5f, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 14861 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 14862 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 14863 0x32, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 14864 0x4b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 14865 0x48, 0x00, 0x52, 0x10, 0x6b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x43, 0x6f, 14866 0x6e, 0x66, 0x69, 0x67, 0x12, 0x65, 0x0a, 0x12, 0x6c, 0x5f, 0x64, 0x69, 0x76, 0x65, 0x72, 0x73, 14867 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 14868 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 14869 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 14870 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 14871 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x44, 0x69, 0x76, 0x65, 14872 0x72, 0x73, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x72, 0x0a, 0x17, 0x6b, 14873 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 14874 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 14875 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14876 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 14877 0x69, 0x63, 0x2e, 0x4b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 14878 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x14, 0x6b, 0x4d, 0x61, 0x70, 0x45, 14879 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 14880 0x8d, 0x01, 0x0a, 0x20, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 14881 0x63, 0x65, 0x5f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 14882 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 14883 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14884 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 14885 0x2e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 14886 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 14887 0x52, 0x1d, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 14888 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 14889 0x4c, 0x0a, 0x14, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 14890 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 14891 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14892 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 14893 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x1a, 0x4e, 0x0a, 14894 0x16, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 14895 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 14896 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14897 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 14898 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x1a, 0x8d, 0x01, 14899 0x0a, 0x10, 0x4b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 14900 0x69, 0x67, 0x12, 0x3b, 0x0a, 0x09, 0x71, 0x75, 0x61, 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 0x18, 14901 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 14902 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 14903 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x08, 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x12, 14904 0x3c, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 14905 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 14906 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 14907 0x79, 0x49, 0x64, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x1a, 0xa0, 0x01, 14908 0x0a, 0x10, 0x4c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 14909 0x69, 0x67, 0x12, 0x3b, 0x0a, 0x09, 0x71, 0x75, 0x61, 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 0x18, 14910 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 14911 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 14912 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x08, 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x12, 14913 0x4f, 0x0a, 0x13, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x74, 0x74, 14914 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 14915 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14916 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x12, 0x73, 0x65, 14917 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 14918 0x1a, 0x84, 0x07, 0x0a, 0x14, 0x4b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 14919 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x67, 0x0a, 0x09, 0x71, 0x75, 0x61, 14920 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 14921 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14922 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 14923 0x69, 0x63, 0x2e, 0x4b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 14924 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x46, 0x69, 14925 0x65, 0x6c, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 14926 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 14927 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 14928 0x6f, 0x64, 0x65, 0x12, 0x73, 0x0a, 0x10, 0x61, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 14929 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 14930 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 14931 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 14932 0x72, 0x69, 0x63, 0x2e, 0x4b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 14933 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 14934 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x0f, 0x61, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 14935 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x1a, 0xe6, 0x01, 0x0a, 0x0b, 0x54, 0x61, 0x67, 14936 0x67, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x39, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 14937 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 14938 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 14939 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x66, 0x69, 14940 0x65, 0x6c, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 14941 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14942 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 14943 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 14944 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x61, 14945 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 14946 0x6d, 0x54, 0x61, 0x67, 0x12, 0x34, 0x0a, 0x08, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 14947 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14948 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 14949 0x52, 0x08, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x42, 0x05, 0x0a, 0x03, 0x74, 0x61, 14950 0x67, 0x1a, 0x83, 0x03, 0x0a, 0x0e, 0x41, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 0x54, 14951 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 14952 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 14953 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x67, 0x51, 14954 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 14955 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x77, 0x0a, 0x09, 0x71, 0x75, 0x61, 0x73, 0x69, 0x5f, 0x69, 14956 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 14957 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 14958 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4b, 14959 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 14960 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 0x54, 0x61, 0x62, 14961 0x6c, 0x65, 0x2e, 0x51, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 14962 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x12, 0x52, 14963 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 14964 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 14965 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 14966 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 14967 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 14968 0x63, 0x79, 0x1a, 0x63, 0x0a, 0x0c, 0x51, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x46, 0x69, 0x65, 14969 0x6c, 0x64, 0x12, 0x34, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 14970 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 14971 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 14972 0x64, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 14973 0x6f, 0x6d, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x75, 14974 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x61, 0x67, 0x1a, 0xd6, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x74, 14975 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 14976 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x40, 0x0a, 0x09, 0x71, 0x75, 0x61, 14977 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 14978 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 14979 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x42, 0x03, 0xe0, 0x41, 14980 0x02, 0x52, 0x08, 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 14981 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 14982 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x52, 0x0a, 0x10, 14983 0x61, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 14984 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 14985 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 14986 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 14987 0x0f, 0x61, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 14988 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x93, 0x26, 0x0a, 0x1c, 0x41, 0x6e, 0x61, 14989 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 14990 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x5e, 0x0a, 0x18, 0x72, 0x65, 0x71, 14991 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x5f, 0x6d, 14992 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 14993 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 14994 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 14995 0x63, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x50, 0x72, 0x69, 0x76, 14996 0x61, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x5a, 0x0a, 0x16, 0x72, 0x65, 0x71, 14997 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x61, 14998 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 14999 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 15000 0x32, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 15001 0x14, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 15002 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 15003 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 15004 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15005 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 15006 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 15007 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4e, 0x75, 0x6d, 0x65, 15008 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 15009 0x48, 0x00, 0x52, 0x14, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 15010 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x86, 0x01, 0x0a, 0x18, 0x63, 0x61, 0x74, 15011 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x72, 15012 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 15013 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15014 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 15015 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 15016 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 15017 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x16, 0x63, 0x61, 0x74, 0x65, 0x67, 15018 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 15019 0x74, 0x12, 0x74, 0x0a, 0x12, 0x6b, 0x5f, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 15020 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 15021 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15022 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 15023 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 15024 0x6c, 0x73, 0x2e, 0x4b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 15025 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x10, 0x6b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 15026 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x74, 0x0a, 0x12, 0x6c, 0x5f, 0x64, 0x69, 0x76, 15027 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 15028 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15029 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 15030 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 15031 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 15032 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x44, 0x69, 15033 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x81, 0x01, 15034 0x0a, 0x17, 0x6b, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 15035 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 15036 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 15037 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 15038 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 15039 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 15040 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x14, 0x6b, 0x4d, 0x61, 15041 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 15042 0x74, 0x12, 0x9c, 0x01, 0x0a, 0x20, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x65, 0x73, 15043 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 15044 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 15045 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 15046 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 15047 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 15048 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 15049 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 15050 0x00, 0x52, 0x1d, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 15051 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 15052 0x1a, 0xd3, 0x01, 0x0a, 0x14, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 15053 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 15054 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 15055 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 15056 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 15057 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 15058 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15059 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15060 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 15061 0x45, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 15062 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 15063 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 15064 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 15065 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x8d, 0x04, 0x0a, 0x16, 0x43, 0x61, 0x74, 0x65, 0x67, 15066 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 15067 0x74, 0x12, 0xb5, 0x01, 0x0a, 0x21, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 15068 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 15069 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x6a, 0x2e, 15070 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15071 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 15072 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 15073 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 15074 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 15075 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 15076 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x1e, 0x76, 0x61, 0x6c, 0x75, 0x65, 15077 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 15078 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0xba, 0x02, 0x0a, 0x1f, 0x43, 0x61, 15079 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x69, 15080 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x3d, 0x0a, 15081 0x1b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 15082 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 15083 0x28, 0x03, 0x52, 0x18, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 15084 0x63, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x1b, 15085 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 15086 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 15087 0x03, 0x52, 0x18, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 15088 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 15089 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 15090 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x4a, 0x0a, 0x0d, 15091 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 15092 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15093 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 15094 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x0c, 0x62, 0x75, 0x63, 0x6b, 15095 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x75, 0x63, 0x6b, 15096 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 15097 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 15098 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xeb, 0x05, 0x0a, 0x10, 0x4b, 0x41, 0x6e, 0x6f, 0x6e, 15099 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0xad, 0x01, 0x0a, 0x23, 15100 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 15101 0x73, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x62, 0x75, 0x63, 0x6b, 15102 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 15103 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 15104 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 15105 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4b, 15106 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 15107 0x4b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 15108 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x20, 0x65, 0x71, 0x75, 0x69, 0x76, 15109 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 15110 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x9a, 0x01, 0x0a, 0x1a, 15111 0x4b, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x45, 0x71, 0x75, 0x69, 0x76, 0x61, 15112 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x10, 0x71, 0x75, 15113 0x61, 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 15114 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 15115 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 15116 0x75, 0x65, 0x52, 0x0e, 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x56, 0x61, 0x6c, 0x75, 15117 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 15118 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 15119 0x28, 0x03, 0x52, 0x14, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x43, 15120 0x6c, 0x61, 0x73, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x89, 0x03, 0x0a, 0x19, 0x4b, 0x41, 0x6e, 15121 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 15122 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x4a, 0x0a, 0x22, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 15123 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 15124 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 15125 0x28, 0x03, 0x52, 0x1e, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x43, 15126 0x6c, 0x61, 0x73, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 15127 0x6e, 0x64, 0x12, 0x4a, 0x0a, 0x22, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 15128 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x75, 0x70, 0x70, 15129 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 15130 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 15131 0x53, 0x69, 0x7a, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, 15132 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 15133 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 15134 0x84, 0x01, 0x0a, 0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 15135 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15136 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15137 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 15138 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4b, 0x41, 0x6e, 15139 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4b, 0x41, 15140 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x45, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 15141 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0c, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 15142 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 15143 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 15144 0x28, 0x03, 0x52, 0x10, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 15145 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xa2, 0x07, 0x0a, 0x10, 0x4c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 15146 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0xbc, 0x01, 0x0a, 0x2b, 0x73, 0x65, 15147 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x72, 15148 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 15149 0x6d, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 15150 0x5e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 15151 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 15152 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 15153 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x52, 15154 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 15155 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 15156 0x27, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 15157 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 15158 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0xb6, 0x02, 0x0a, 0x1a, 0x4c, 0x44, 0x69, 15159 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x45, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 15160 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x10, 0x71, 0x75, 0x61, 0x73, 0x69, 15161 0x5f, 0x69, 0x64, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 15162 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 15163 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 15164 0x0e, 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 15165 0x34, 0x0a, 0x16, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 15166 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 15167 0x14, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 15168 0x73, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x41, 0x0a, 0x1d, 0x6e, 0x75, 0x6d, 0x5f, 0x64, 0x69, 0x73, 15169 0x74, 0x69, 0x6e, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 15170 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x6e, 0x75, 15171 0x6d, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 15172 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x14, 0x74, 0x6f, 0x70, 0x5f, 15173 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 15174 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15175 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 15176 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x12, 0x74, 15177 0x6f, 0x70, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 15178 0x73, 0x1a, 0x95, 0x03, 0x0a, 0x19, 0x4c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 15179 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 15180 0x50, 0x0a, 0x25, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x61, 0x6c, 15181 0x75, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x6f, 0x77, 15182 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x21, 15183 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 15184 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 15185 0x64, 0x12, 0x50, 0x0a, 0x25, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 15186 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x75, 15187 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 15188 0x52, 0x21, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 15189 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 15190 0x75, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 15191 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 15192 0x53, 0x69, 0x7a, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 15193 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5f, 0x2e, 0x67, 15194 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 15195 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 15196 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 15197 0x73, 0x2e, 0x4c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 15198 0x6c, 0x74, 0x2e, 0x4c, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x45, 0x71, 0x75, 15199 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0c, 0x62, 15200 0x75, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x62, 15201 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 15202 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x56, 15203 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x9c, 0x05, 0x0a, 0x14, 0x4b, 0x4d, 15204 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 15205 0x6c, 0x74, 0x12, 0xa3, 0x01, 0x0a, 0x1a, 0x6b, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x73, 0x74, 15206 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 15207 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x66, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15208 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15209 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 15210 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4b, 0x4d, 0x61, 15211 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 15212 0x74, 0x2e, 0x4b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 15213 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 15214 0x17, 0x6b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 15215 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x1a, 0x96, 0x01, 0x0a, 0x1b, 0x4b, 0x4d, 0x61, 15216 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x73, 0x69, 15217 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x10, 0x71, 0x75, 0x61, 0x73, 15218 0x69, 0x5f, 0x69, 0x64, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 15219 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 15220 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 15221 0x52, 0x0e, 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 15222 0x12, 0x2f, 0x0a, 0x13, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 15223 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x65, 15224 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 15225 0x79, 0x1a, 0xc4, 0x02, 0x0a, 0x1d, 0x4b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 15226 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 15227 0x6b, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 15228 0x6d, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x41, 15229 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 15230 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 15231 0x0c, 0x6d, 0x61, 0x78, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 15232 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 15233 0x28, 0x03, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x89, 15234 0x01, 0x0a, 0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 15235 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15236 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 15237 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 15238 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4b, 0x4d, 0x61, 0x70, 15239 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 15240 0x2e, 0x4b, 0x4d, 0x61, 0x70, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 15241 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x0c, 0x62, 0x75, 15242 0x63, 0x6b, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x75, 15243 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 15244 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x61, 15245 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xf9, 0x05, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 15246 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 15247 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0xc7, 0x01, 0x0a, 0x23, 0x64, 15248 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x65, 0x73, 15249 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 15250 0x61, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 15251 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 15252 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 15253 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x44, 0x65, 15254 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 15255 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x74, 15256 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 15257 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x75, 0x63, 0x6b, 15258 0x65, 0x74, 0x52, 0x20, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 15259 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 15260 0x67, 0x72, 0x61, 0x6d, 0x1a, 0xa3, 0x01, 0x0a, 0x24, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 15261 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 15262 0x51, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 15263 0x10, 0x71, 0x75, 0x61, 0x73, 0x69, 0x5f, 0x69, 0x64, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 15264 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15265 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15266 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x71, 0x75, 0x61, 0x73, 0x69, 0x49, 0x64, 0x73, 0x56, 15267 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x15, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 15268 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 15269 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x50, 15270 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xe7, 0x02, 0x0a, 0x26, 0x44, 15271 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 15272 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 15273 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 15274 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 15275 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x27, 15276 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 15277 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x50, 0x72, 0x6f, 0x62, 15278 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 15279 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x75, 15280 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x0d, 0x62, 0x75, 0x63, 15281 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 15282 0x32, 0x76, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15283 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 15284 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 0x65, 15285 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 15286 0x6e, 0x63, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 15287 0x75, 0x6c, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 15288 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x73, 0x69, 15289 0x49, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x0c, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 15290 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 15291 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 15292 0x28, 0x03, 0x52, 0x10, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 15293 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x5a, 15294 0x0a, 0x0e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 15295 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 15296 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 15297 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 15298 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 15299 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9e, 0x03, 0x0a, 0x05, 0x56, 15300 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 15301 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x69, 15302 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x66, 15303 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 15304 0x48, 0x00, 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 15305 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 15306 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 15307 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x76, 15308 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x6f, 15309 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x74, 0x69, 15310 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 15311 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 15312 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 15313 0x00, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x56, 0x61, 0x6c, 0x75, 15314 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 15315 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 15316 0x79, 0x70, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x44, 0x61, 0x79, 0x48, 0x00, 0x52, 15317 0x09, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x64, 0x61, 15318 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 15319 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 15320 0x65, 0x48, 0x00, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 15321 0x0a, 0x11, 0x64, 0x61, 0x79, 0x5f, 0x6f, 0x66, 0x5f, 0x77, 0x65, 0x65, 0x6b, 0x5f, 0x76, 0x61, 15322 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 15323 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 15324 0x6b, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x56, 0x61, 15325 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5b, 0x0a, 0x09, 0x51, 15326 0x75, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x65, 15327 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 15328 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15329 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x08, 15330 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x73, 15331 0x65, 0x64, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x22, 0x8f, 0x02, 0x0a, 0x08, 0x44, 0x61, 0x74, 15332 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 15333 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 15334 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x0b, 15335 0x64, 0x61, 0x79, 0x5f, 0x6f, 0x66, 0x5f, 0x77, 0x65, 0x65, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 15336 0x0e, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 15337 0x44, 0x61, 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x09, 0x64, 0x61, 0x79, 0x4f, 0x66, 15338 0x57, 0x65, 0x65, 0x6b, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 15339 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 15340 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x44, 0x61, 0x79, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 15341 0x12, 0x45, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 15342 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15343 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x61, 0x74, 0x65, 15344 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x08, 0x74, 15345 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x1a, 0x31, 0x0a, 0x08, 0x54, 0x69, 0x6d, 0x65, 0x5a, 15346 0x6f, 0x6e, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x69, 15347 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x66, 0x66, 15348 0x73, 0x65, 0x74, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x22, 0xf1, 0x02, 0x0a, 0x10, 0x44, 15349 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 15350 0x6c, 0x0a, 0x19, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x74, 0x72, 0x61, 15351 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 15352 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 15353 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 15354 0x79, 0x70, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 15355 0x6e, 0x73, 0x48, 0x00, 0x52, 0x17, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x54, 0x72, 15356 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x65, 0x0a, 15357 0x16, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 15358 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 15359 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15360 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 15361 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x15, 0x72, 15362 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 15363 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x76, 0x0a, 0x1d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 15364 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x68, 0x61, 0x6e, 15365 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 15366 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15367 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 15368 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x52, 15369 0x1b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 15370 0x72, 0x72, 0x6f, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x10, 0x0a, 0x0e, 15371 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa5, 15372 0x02, 0x0a, 0x1b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 15373 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x60, 15374 0x0a, 0x0b, 0x74, 0x68, 0x72, 0x6f, 0x77, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 15375 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15376 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 15377 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 15378 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x77, 0x45, 0x72, 0x72, 15379 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 15380 0x12, 0x78, 0x0a, 0x13, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x5f, 0x75, 0x6e, 0x74, 0x72, 0x61, 0x6e, 15381 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 15382 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15383 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 15384 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 15385 0x67, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x55, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 15386 0x72, 0x6d, 0x65, 0x64, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x55, 0x6e, 0x74, 15387 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x1a, 0x0c, 0x0a, 0x0a, 0x54, 0x68, 15388 0x72, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x14, 0x0a, 0x12, 0x4c, 0x65, 0x61, 0x76, 15389 0x65, 0x55, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x42, 0x06, 15390 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd6, 0x08, 0x0a, 0x17, 0x50, 0x72, 0x69, 0x6d, 0x69, 15391 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 15392 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 15393 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 15394 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 15395 0x76, 0x32, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 15396 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 15397 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4a, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 15398 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 15399 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15400 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 15401 0x69, 0x67, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 15402 0x69, 0x67, 0x12, 0x60, 0x0a, 0x15, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x5f, 15403 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 15404 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 15405 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 15406 0x74, 0x65, 0x72, 0x4d, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 15407 0x13, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x73, 0x6b, 0x43, 0x6f, 15408 0x6e, 0x66, 0x69, 0x67, 0x12, 0x74, 0x0a, 0x1d, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x72, 15409 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x66, 0x66, 0x78, 0x5f, 0x66, 0x70, 0x65, 0x5f, 0x63, 15410 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 15411 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15412 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 15413 0x65, 0x46, 0x66, 0x78, 0x46, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 15414 0x19, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x46, 0x66, 15415 0x78, 0x46, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x70, 0x0a, 0x1b, 0x66, 0x69, 15416 0x78, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 15417 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 15418 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 15419 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x69, 0x7a, 15420 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 15421 0x48, 0x00, 0x52, 0x18, 0x66, 0x69, 0x78, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x75, 0x63, 15422 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x53, 0x0a, 0x10, 15423 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 15424 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15425 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x42, 15426 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 15427 0x52, 0x0f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 15428 0x67, 0x12, 0x74, 0x0a, 0x1d, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x77, 0x69, 0x74, 15429 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 15430 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 15431 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 15432 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x57, 0x69, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 15433 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x19, 0x72, 0x65, 15434 0x70, 0x6c, 0x61, 0x63, 0x65, 0x57, 0x69, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 15435 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x51, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x5f, 15436 0x70, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 15437 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 15438 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 15439 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 15440 0x50, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x57, 0x0a, 0x12, 0x63, 0x72, 15441 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 15442 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15443 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 15444 0x72, 0x79, 0x70, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 15445 0x00, 0x52, 0x10, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6e, 15446 0x66, 0x69, 0x67, 0x12, 0x54, 0x0a, 0x11, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x68, 0x69, 0x66, 15447 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 15448 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 15449 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x53, 0x68, 0x69, 0x66, 0x74, 15450 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68, 15451 0x69, 0x66, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x72, 0x0a, 0x1b, 0x63, 0x72, 0x79, 15452 0x70, 0x74, 0x6f, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 15453 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 15454 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 15455 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x44, 0x65, 0x74, 15456 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 15457 0x48, 0x00, 0x52, 0x19, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 15458 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x10, 0x0a, 15459 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 15460 0xeb, 0x01, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 15461 0x69, 0x67, 0x12, 0x56, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 15462 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 15463 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15464 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 15465 0x69, 0x67, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x0d, 0x70, 0x61, 0x72, 15466 0x74, 0x54, 0x6f, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x08, 0x54, 15467 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x49, 0x4d, 0x45, 0x5f, 15468 0x50, 0x41, 0x52, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 15469 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x59, 0x45, 0x41, 0x52, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 15470 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x41, 0x59, 0x5f, 0x4f, 15471 0x46, 0x5f, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x41, 0x59, 15472 0x5f, 0x4f, 0x46, 0x5f, 0x57, 0x45, 0x45, 0x4b, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x45, 15473 0x45, 0x4b, 0x5f, 0x4f, 0x46, 0x5f, 0x59, 0x45, 0x41, 0x52, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 15474 0x48, 0x4f, 0x55, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x44, 0x41, 0x59, 0x10, 0x06, 0x22, 0x53, 0x0a, 15475 0x10, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 15476 0x67, 0x12, 0x3f, 0x0a, 0x0a, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x18, 15477 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15478 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 15479 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 15480 0x65, 0x79, 0x22, 0xe7, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x44, 0x65, 0x74, 15481 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 15482 0x12, 0x3f, 0x0a, 0x0a, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 15483 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 15484 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x79, 15485 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 15486 0x79, 0x12, 0x4f, 0x0a, 0x13, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x69, 15487 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 15488 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 15489 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 15490 0x11, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 15491 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 15492 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15493 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 15494 0x64, 0x49, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x4f, 0x0a, 0x12, 15495 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x66, 15496 0x69, 0x67, 0x12, 0x39, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 15497 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15498 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 15499 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x1b, 0x0a, 15500 0x19, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x57, 0x69, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 15501 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 15502 0x64, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xe2, 0x02, 0x0a, 0x0d, 0x43, 15503 0x68, 0x61, 0x72, 0x73, 0x54, 0x6f, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x12, 15504 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6b, 15505 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x63, 0x68, 0x61, 0x72, 15506 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x53, 0x6b, 0x69, 0x70, 0x12, 0x79, 0x0a, 0x1b, 15507 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 15508 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 15509 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 15510 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x73, 0x54, 15511 0x6f, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 15512 0x61, 0x72, 0x73, 0x54, 0x6f, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x48, 0x00, 0x52, 0x18, 0x63, 15513 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 15514 0x6f, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x6d, 15515 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x73, 0x54, 0x6f, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 15516 0x26, 0x0a, 0x22, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x53, 0x5f, 15517 0x54, 0x4f, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 15518 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x55, 0x4d, 0x45, 0x52, 15519 0x49, 0x43, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x4c, 0x50, 0x48, 0x41, 0x5f, 0x55, 0x50, 15520 0x50, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x4c, 15521 0x50, 0x48, 0x41, 0x5f, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x03, 15522 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x55, 0x4e, 0x43, 0x54, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 15523 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x48, 0x49, 0x54, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 15524 0x05, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x22, 15525 0xe5, 0x01, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x73, 15526 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2b, 0x0a, 0x11, 0x6d, 0x61, 0x73, 0x6b, 0x69, 15527 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 15528 0x28, 0x09, 0x52, 0x10, 0x6d, 0x61, 0x73, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x72, 0x61, 15529 0x63, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x74, 15530 0x6f, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x75, 15531 0x6d, 0x62, 0x65, 0x72, 0x54, 0x6f, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 15532 0x76, 0x65, 0x72, 0x73, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 15533 0x08, 0x52, 0x0c, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 15534 0x56, 0x0a, 0x14, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 15535 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 15536 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15537 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x73, 0x54, 0x6f, 0x49, 0x67, 0x6e, 15538 0x6f, 0x72, 0x65, 0x52, 0x12, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 15539 0x6f, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x18, 0x46, 0x69, 0x78, 0x65, 15540 0x64, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 15541 0x6e, 0x66, 0x69, 0x67, 0x12, 0x42, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 15542 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 15543 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 15544 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6c, 0x6f, 15545 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x42, 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 15546 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 15547 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 15548 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 15549 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0b, 15550 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 15551 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 15552 0x7a, 0x65, 0x22, 0x90, 0x02, 0x0a, 0x0f, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 15553 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x47, 0x0a, 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 15554 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15555 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15556 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 15557 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 15558 0xb3, 0x01, 0x0a, 0x06, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x2e, 0x0a, 0x03, 0x6d, 0x69, 15559 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15560 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15561 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x2e, 0x0a, 0x03, 0x6d, 0x61, 15562 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15563 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15564 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x49, 0x0a, 0x11, 0x72, 0x65, 15565 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 15566 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15567 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 15568 0x6c, 0x75, 0x65, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 15569 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc7, 0x04, 0x0a, 0x19, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 15570 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x46, 0x66, 0x78, 0x46, 0x70, 0x65, 0x43, 0x6f, 0x6e, 15571 0x66, 0x69, 0x67, 0x12, 0x44, 0x0a, 0x0a, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 15572 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15573 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15574 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 15575 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 15576 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 15577 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 15578 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 15579 0x65, 0x78, 0x74, 0x12, 0x73, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 15580 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x48, 0x2e, 0x67, 15581 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 15582 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x61, 15583 0x63, 0x65, 0x46, 0x66, 0x78, 0x46, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x46, 15584 0x66, 0x78, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6c, 15585 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 15586 0x41, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x12, 0x29, 0x0a, 0x0f, 0x63, 0x75, 0x73, 0x74, 15587 0x6f, 0x6d, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 15588 0x09, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x6c, 0x70, 0x68, 0x61, 15589 0x62, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x05, 0x72, 0x61, 0x64, 0x69, 0x78, 0x18, 0x06, 0x20, 0x01, 15590 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x72, 0x61, 0x64, 0x69, 0x78, 0x12, 0x4f, 0x0a, 0x13, 0x73, 15591 0x75, 0x72, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 15592 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 15593 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 15594 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x73, 0x75, 0x72, 0x72, 0x6f, 15595 0x67, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x22, 0x94, 0x01, 0x0a, 15596 0x17, 0x46, 0x66, 0x78, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 15597 0x41, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x12, 0x2a, 0x0a, 0x26, 0x46, 0x46, 0x58, 0x5f, 15598 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x41, 0x4c, 15599 0x50, 0x48, 0x41, 0x42, 0x45, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 15600 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 15601 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x45, 0x58, 0x41, 0x44, 0x45, 0x43, 0x49, 0x4d, 0x41, 0x4c, 15602 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x50, 0x50, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x53, 0x45, 15603 0x5f, 0x41, 0x4c, 0x50, 0x48, 0x41, 0x5f, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 0x03, 15604 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x4c, 0x50, 0x48, 0x41, 0x5f, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 15605 0x43, 0x10, 0x04, 0x42, 0x0a, 0x0a, 0x08, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x22, 15606 0xfa, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x49, 0x0a, 15607 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 15608 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15609 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x65, 15610 0x6e, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x09, 0x74, 15611 0x72, 0x61, 0x6e, 0x73, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x75, 0x6e, 0x77, 0x72, 15612 0x61, 0x70, 0x70, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 15613 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 15614 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x6e, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x43, 0x72, 0x79, 15615 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x09, 0x75, 0x6e, 0x77, 0x72, 0x61, 0x70, 15616 0x70, 0x65, 0x64, 0x12, 0x4d, 0x0a, 0x0b, 0x6b, 0x6d, 0x73, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 15617 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 15618 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 15619 0x2e, 0x4b, 0x6d, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x43, 0x72, 0x79, 0x70, 0x74, 15620 0x6f, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x0a, 0x6b, 0x6d, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 15621 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x2d, 0x0a, 0x12, 15622 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 15623 0x65, 0x79, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 15624 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2b, 0x0a, 0x12, 0x55, 15625 0x6e, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 15626 0x79, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 15627 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x68, 0x0a, 0x13, 0x4b, 0x6d, 0x73, 0x57, 15628 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12, 15629 0x24, 0x0a, 0x0b, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 15630 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x77, 0x72, 0x61, 0x70, 0x70, 15631 0x65, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x0f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 15632 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 15633 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x4e, 0x61, 15634 0x6d, 0x65, 0x22, 0xf6, 0x01, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x65, 0x53, 0x68, 0x69, 0x66, 0x74, 15635 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 15636 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 15637 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 15638 0x64, 0x44, 0x61, 0x79, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 15639 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 15640 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 15641 0x44, 0x61, 0x79, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 15642 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15643 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 15644 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x41, 15645 0x0a, 0x0a, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 15646 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 15647 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 15648 0x6f, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x09, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 15649 0x79, 0x42, 0x08, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0xda, 0x02, 0x0a, 0x17, 15650 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 15651 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x74, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 15652 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 15653 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15654 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 15655 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 15656 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 15657 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x74, 0x72, 15658 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xc8, 0x01, 15659 0x0a, 0x16, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 15660 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0a, 0x69, 0x6e, 0x66, 0x6f, 15661 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 15662 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 15663 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x69, 15664 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x18, 0x70, 0x72, 0x69, 0x6d, 15665 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 15666 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 15667 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 15668 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 15669 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 15670 0x17, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 15671 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x85, 0x03, 0x0a, 0x13, 0x46, 0x69, 0x65, 15672 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 15673 0x12, 0x3b, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 15674 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15675 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 15676 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x44, 0x0a, 15677 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 15678 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 15679 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 15680 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 15681 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x18, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 15682 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 15683 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15684 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 15685 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 15686 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x17, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 15687 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 15688 0x12, 0x6c, 0x0a, 0x19, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x74, 0x72, 15689 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 15690 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15691 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 15692 0x54, 0x79, 0x70, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 15693 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x17, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x54, 15694 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x10, 15695 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 15696 0x22, 0xd3, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 15697 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5f, 0x0a, 0x15, 0x66, 0x69, 15698 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 15699 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 15700 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 15701 0x32, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 15702 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 15703 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x59, 0x0a, 0x13, 0x72, 15704 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 15705 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 15706 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 15707 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 15708 0x6f, 0x6e, 0x52, 0x12, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 15709 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x59, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 15710 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x09, 0x63, 15711 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 15712 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 15713 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 15714 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 15715 0x6e, 0x22, 0xaa, 0x05, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x64, 15716 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 15717 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 15718 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 15719 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 15720 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 15721 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xc6, 0x01, 0x0a, 0x09, 15722 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x05, 0x66, 0x69, 0x65, 15723 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 15724 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 15725 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x66, 15726 0x69, 0x65, 0x6c, 0x64, 0x12, 0x4a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 15727 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15728 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 15729 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 15730 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 15731 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 15732 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 15733 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 15734 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x5e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 15735 0x6e, 0x73, 0x12, 0x50, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 15736 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15737 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 15738 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 15739 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 15740 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x97, 0x02, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 15741 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x6d, 0x0a, 0x10, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 15742 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 15743 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 15744 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 15745 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 15746 0x6e, 0x73, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 15747 0x6f, 0x72, 0x52, 0x0f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 15748 0x74, 0x6f, 0x72, 0x12, 0x53, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 15749 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15750 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15751 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 15752 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 15753 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3c, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x69, 15754 0x63, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 15755 0x4f, 0x47, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 15756 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 15757 0x03, 0x41, 0x4e, 0x44, 0x10, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xae, 15758 0x01, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 15759 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 15760 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 15761 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 15762 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x67, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 15763 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 15764 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 15765 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 15766 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 15767 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 15768 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x22, 15769 0x97, 0x06, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 15770 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x66, 15771 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 15772 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 15773 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x69, 15774 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 15775 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 15776 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 15777 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x56, 0x0a, 15778 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 15779 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15780 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 15781 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 15782 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 15783 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x15, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 15784 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 15785 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 15786 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x65, 15787 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 15788 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 15789 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x51, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 15790 0x5f, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 15791 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 15792 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 15793 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x72, 15794 0x64, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x12, 0x54, 0x0a, 0x07, 0x72, 0x65, 0x73, 15795 0x75, 0x6c, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 15796 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 15797 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 15798 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 15799 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 15800 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x62, 15801 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 15802 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x9a, 0x01, 0x0a, 15803 0x0d, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 15804 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 15805 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 15806 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 15807 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 15808 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 15809 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 15810 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 15811 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 15812 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x5e, 0x0a, 0x18, 0x54, 0x72, 0x61, 15813 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 15814 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 15815 0x52, 0x4d, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x43, 15816 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 15817 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x09, 15818 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x22, 0x6f, 0x0a, 0x08, 0x53, 0x63, 0x68, 15819 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x59, 0x0a, 0x1a, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 15820 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 15821 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 15822 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 15823 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x18, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 15824 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 15825 0x42, 0x08, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x08, 0x0a, 0x06, 0x4d, 0x61, 15826 0x6e, 0x75, 0x61, 0x6c, 0x22, 0x89, 0x05, 0x0a, 0x0f, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 15827 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 15828 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 15829 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 15830 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 15831 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 15832 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 15833 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 15834 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 15835 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 15836 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 15837 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 15838 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 15839 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 15840 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 15841 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x6e, 15842 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 15843 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 15844 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 15845 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 15846 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0xc6, 0x02, 0xea, 0x41, 0xc2, 0x02, 0x0a, 0x22, 15847 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 15848 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 15849 0x74, 0x65, 0x12, 0x40, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 15850 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 15851 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 15852 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 15853 0x61, 0x74, 0x65, 0x7d, 0x12, 0x36, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 15854 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 15855 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x70, 0x65, 15856 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 0x12, 0x55, 0x6f, 0x72, 15857 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 15858 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 15859 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 15860 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 15861 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 15862 0x74, 0x65, 0x7d, 0x12, 0x4b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 15863 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 15864 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 15865 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x69, 15866 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 15867 0x22, 0xb0, 0x05, 0x0a, 0x12, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 15868 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 15869 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 15870 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 15871 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 15872 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 15873 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 15874 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 15875 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 15876 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 15877 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 15878 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 15879 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 15880 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 15881 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 15882 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x11, 0x64, 0x65, 0x69, 15883 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 15884 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 15885 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 15886 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x64, 15887 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 15888 0xe1, 0x02, 0xea, 0x41, 0xdd, 0x02, 0x0a, 0x25, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 15889 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x69, 0x64, 0x65, 15890 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x46, 0x6f, 15891 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 15892 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 15893 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 15894 0x7b, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 15895 0x6c, 0x61, 0x74, 0x65, 0x7d, 0x12, 0x3c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 15896 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 15897 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x64, 15898 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 15899 0x74, 0x65, 0x7d, 0x12, 0x5b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 15900 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 15901 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 15902 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 15903 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x69, 0x64, 15904 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 15905 0x12, 0x51, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 15906 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 15907 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 15908 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x64, 15909 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 15910 0x74, 0x65, 0x7d, 0x22, 0x71, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2c, 0x0a, 0x07, 15911 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 15912 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 15913 0x73, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3a, 0x0a, 0x0a, 0x74, 0x69, 15914 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 15915 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 15916 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 15917 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x22, 0xba, 0x07, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x54, 0x72, 15918 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 15919 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 15920 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 15921 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 15922 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 15923 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 15924 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x04, 0x20, 15925 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 15926 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 15927 0x65, 0x63, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0a, 15928 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x45, 0x0a, 0x08, 0x74, 0x72, 15929 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 15930 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 15931 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 15932 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 15933 0x73, 0x12, 0x39, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 15934 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 15935 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 15936 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x0b, 15937 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 15938 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 15939 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 15940 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 15941 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 15942 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 15943 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 15944 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 15945 0x12, 0x43, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 15946 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15947 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 15948 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x75, 15949 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 15950 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15951 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x6f, 15952 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 15953 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x8c, 0x01, 0x0a, 15954 0x07, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 15955 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 15956 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 15957 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x08, 0x73, 15958 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 15959 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 15960 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 15961 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 15962 0x42, 0x09, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x22, 0x48, 0x0a, 0x06, 0x53, 15963 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 15964 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 15965 0x07, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x41, 15966 0x55, 0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 15967 0x4c, 0x45, 0x44, 0x10, 0x03, 0x3a, 0x94, 0x01, 0xea, 0x41, 0x90, 0x01, 0x0a, 0x1d, 0x64, 0x6c, 15968 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 15969 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x2c, 0x70, 0x72, 0x6f, 15970 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 15971 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 15972 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x7d, 0x12, 0x41, 0x70, 0x72, 0x6f, 0x6a, 0x65, 15973 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 15974 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 15975 0x6e, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x7b, 15976 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x7d, 0x42, 0x05, 0x0a, 0x03, 15977 0x6a, 0x6f, 0x62, 0x22, 0x86, 0x07, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 15978 0x0a, 0x0d, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 15979 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 15980 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 15981 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 15982 0x73, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x61, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 15983 0x73, 0x12, 0x48, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x73, 0x75, 0x62, 0x18, 0x02, 0x20, 0x01, 15984 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 15985 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 15986 0x6e, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x6f, 0x50, 0x75, 0x62, 0x53, 0x75, 15987 0x62, 0x48, 0x00, 0x52, 0x06, 0x70, 0x75, 0x62, 0x53, 0x75, 0x62, 0x12, 0x6b, 0x0a, 0x17, 0x70, 15988 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 15989 0x6f, 0x5f, 0x63, 0x73, 0x63, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 15990 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 15991 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x75, 0x62, 0x6c, 15992 0x69, 0x73, 0x68, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x6f, 0x43, 0x73, 0x63, 0x63, 15993 0x48, 0x00, 0x52, 0x14, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x53, 0x75, 0x6d, 0x6d, 0x61, 15994 0x72, 0x79, 0x54, 0x6f, 0x43, 0x73, 0x63, 0x63, 0x12, 0x94, 0x01, 0x0a, 0x26, 0x70, 0x75, 0x62, 15995 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x74, 0x6f, 15996 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x61, 0x74, 0x61, 15997 0x6c, 0x6f, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 15998 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 15999 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 16000 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x54, 0x6f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x44, 16001 0x61, 0x74, 0x61, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x21, 0x70, 0x75, 16002 0x62, 0x6c, 0x69, 0x73, 0x68, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x54, 0x6f, 0x43, 16003 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 16004 0x6d, 0x0a, 0x17, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 16005 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 16006 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16007 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 16008 0x4a, 0x6f, 0x62, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 16009 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x15, 0x6a, 0x6f, 0x62, 0x4e, 0x6f, 0x74, 0x69, 16010 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x6a, 16011 0x0a, 0x16, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 16012 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 16013 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 16014 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x75, 16015 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 16016 0x65, 0x72, 0x48, 0x00, 0x52, 0x14, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x6f, 0x53, 16017 0x74, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x1a, 0x5f, 0x0a, 0x0c, 0x53, 0x61, 16018 0x76, 0x65, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x0d, 0x6f, 0x75, 16019 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 16020 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 16021 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 16022 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6f, 16023 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x27, 0x0a, 0x0f, 0x50, 16024 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x6f, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, 0x12, 0x14, 16025 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 16026 0x6f, 0x70, 0x69, 0x63, 0x1a, 0x16, 0x0a, 0x14, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x53, 16027 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x6f, 0x43, 0x73, 0x63, 0x63, 0x1a, 0x23, 0x0a, 0x21, 16028 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x54, 16029 0x6f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 16030 0x67, 0x1a, 0x17, 0x0a, 0x15, 0x4a, 0x6f, 0x62, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 16031 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x16, 0x0a, 0x14, 0x50, 0x75, 16032 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 16033 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xfc, 0x01, 0x0a, 16034 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 16035 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 16036 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 16037 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16038 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 16039 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 16040 0x74, 0x12, 0x56, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 16041 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 16042 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 16043 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 16044 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 16045 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 16046 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 16047 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 16048 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 16049 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xee, 0x01, 0x0a, 0x1c, 16050 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 16051 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 16052 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 16053 0x41, 0x24, 0x0a, 0x22, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 16054 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 16055 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x10, 16056 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 16057 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 16058 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 16059 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0f, 16060 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 16061 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 16062 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 16063 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 16064 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x5b, 0x0a, 0x19, 16065 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 16066 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 16067 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 16068 0x22, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 16069 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 16070 0x61, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 16071 0x73, 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 16072 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 16073 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 16074 0x24, 0x12, 0x22, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 16075 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 16076 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 16077 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 16078 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 16079 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 16080 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 16081 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 16082 0x65, 0x72, 0x42, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16083 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 16084 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x9b, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 16085 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 16086 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 16087 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 16088 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 16089 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 16090 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x70, 0x65, 16091 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 16092 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 16093 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 16094 0x6b, 0x65, 0x6e, 0x22, 0x5e, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x73, 16095 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 16096 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 16097 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x6c, 0x70, 0x2e, 0x67, 16098 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 16099 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 0x6e, 16100 0x61, 0x6d, 0x65, 0x22, 0xef, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 16101 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 16102 0x4b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 16103 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 16104 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 16105 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 16106 0x6a, 0x65, 0x63, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 16107 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 16108 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 16109 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 16110 0x67, 0x67, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x54, 0x72, 16111 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 16112 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 16113 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16114 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 16115 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x56, 0x0a, 0x19, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 16116 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 16117 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 16118 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 16119 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 16120 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd5, 0x01, 16121 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 16122 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 16123 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 16124 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 16125 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x04, 16126 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x72, 0x69, 0x67, 16127 0x67, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16128 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 16129 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x0a, 0x6a, 0x6f, 16130 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 16131 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 16132 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 16133 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 16134 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x51, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x54, 16135 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 16136 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 16137 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 16138 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 16139 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb8, 0x02, 0x0a, 0x13, 0x43, 0x72, 0x65, 16140 0x61, 0x74, 0x65, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 16141 0x12, 0x4b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 16142 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 16143 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 16144 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 16145 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 16146 0x0b, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x02, 0x20, 0x01, 16147 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 16148 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 16149 0x63, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x69, 16150 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x49, 0x0a, 0x08, 0x72, 0x69, 0x73, 16151 0x6b, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 16152 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 16153 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x69, 0x73, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 16154 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x07, 0x72, 0x69, 0x73, 16155 0x6b, 0x4a, 0x6f, 0x62, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x04, 16156 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 16157 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 16158 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x42, 0x05, 0x0a, 0x03, 16159 0x6a, 0x6f, 0x62, 0x22, 0xf5, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x54, 16160 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 16161 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 16162 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 0x73, 16163 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 16164 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, 16165 0x65, 0x63, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 16166 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 16167 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 16168 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 16169 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 16170 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 16171 0x42, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 16172 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 16173 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 16174 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x87, 0x01, 0x0a, 0x17, 16175 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 16176 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 16177 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 16178 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 16179 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 16180 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 16181 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 16182 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 16183 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x54, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 16184 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 16185 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 16186 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16187 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x72, 16188 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x99, 0x02, 0x0a, 0x10, 16189 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 16190 0x12, 0x4b, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 16191 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16192 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 16193 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 16194 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4b, 0x0a, 16195 0x0e, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 16196 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16197 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 16198 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x69, 0x6e, 0x73, 16199 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 16200 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6e, 16201 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x69, 0x6e, 0x73, 0x70, 0x65, 16202 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 16203 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 16204 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 16205 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 16206 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xd3, 0x06, 0x0a, 0x06, 0x44, 0x6c, 0x70, 0x4a, 16207 0x6f, 0x62, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 16208 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 16209 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 16210 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6c, 0x70, 16211 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 16212 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 16213 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 16214 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 16215 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x58, 0x0a, 0x0c, 0x72, 16216 0x69, 0x73, 0x6b, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 16217 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 16218 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 16219 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x44, 16220 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x69, 0x73, 0x6b, 0x44, 0x65, 16221 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x5a, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 16222 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 16223 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 16224 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x44, 0x61, 16225 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 16226 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 16227 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 16228 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 16229 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 16230 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 16231 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 16232 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 16233 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 16234 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 16235 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 16236 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 16237 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 16238 0x12, 0x28, 0x0a, 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 16239 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x54, 16240 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x65, 0x72, 16241 0x72, 0x6f, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 16242 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 16243 0x76, 0x32, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 16244 0x22, 0x6f, 0x0a, 0x08, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x15, 16245 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 16246 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 16247 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 16248 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x43, 16249 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 16250 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 16251 0x06, 0x3a, 0x7f, 0xea, 0x41, 0x7c, 0x0a, 0x19, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16252 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 16253 0x62, 0x12, 0x24, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 16254 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x64, 16255 0x6c, 0x70, 0x5f, 0x6a, 0x6f, 0x62, 0x7d, 0x12, 0x39, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 16256 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 16257 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 16258 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x64, 0x6c, 0x70, 0x5f, 0x6a, 0x6f, 16259 0x62, 0x7d, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x49, 0x0a, 16260 0x10, 0x47, 0x65, 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 16261 0x74, 0x12, 0x35, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 16262 0x21, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1b, 0x0a, 0x19, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 16263 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 16264 0x6f, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa8, 0x02, 0x0a, 0x12, 0x4c, 0x69, 0x73, 16265 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 16266 0x4b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 16267 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 16268 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 16269 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 16270 0x6a, 0x65, 0x63, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 16271 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 16272 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 16273 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 16274 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 16275 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 16276 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 16277 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 16278 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 16279 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 16280 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 16281 0x42, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 16282 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 16283 0x6e, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 16284 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x6a, 0x6f, 16285 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16286 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 16287 0x2e, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0x26, 0x0a, 16288 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 16289 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 16290 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x4c, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x44, 16291 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 16292 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xe0, 0x41, 0x02, 0xfa, 16293 0x41, 0x1b, 0x0a, 0x19, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 16294 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6e, 16295 0x61, 0x6d, 0x65, 0x22, 0x4c, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x44, 0x6c, 0x70, 16296 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x6e, 0x61, 16297 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1b, 16298 0x0a, 0x19, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 16299 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 16300 0x65, 0x22, 0x4c, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 16301 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 16302 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1b, 0x0a, 0x19, 16303 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 16304 0x6f, 0x6d, 0x2f, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 16305 0x8b, 0x02, 0x0a, 0x1f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 16306 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 16307 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 16308 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x12, 0x25, 0x64, 0x6c, 0x70, 16309 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 16310 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 16311 0x74, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x5f, 0x0a, 0x13, 0x64, 0x65, 16312 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 16313 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16314 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 16315 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 16316 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 16317 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 16318 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 16319 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 16320 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 16321 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xfd, 0x01, 16322 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 16323 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 16324 0x74, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 16325 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 16326 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x69, 0x64, 16327 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 16328 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x13, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 16329 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 16330 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 16331 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 16332 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x12, 0x64, 0x65, 16333 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 16334 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 16335 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16336 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 16337 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x61, 0x0a, 16338 0x1c, 0x47, 0x65, 0x74, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 16339 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 16340 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 16341 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 16342 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 16343 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 16344 0x22, 0xdf, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 16345 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 16346 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 16347 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x12, 0x25, 0x64, 0x6c, 0x70, 16348 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 16349 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 16350 0x74, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 16351 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 16352 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 16353 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 16354 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 16355 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 16356 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 16357 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16358 0x49, 0x64, 0x22, 0xa7, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x69, 0x64, 0x65, 16359 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 16360 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x14, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 16361 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 16362 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 16363 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 16364 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 16365 0x13, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 16366 0x61, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 16367 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 16368 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x64, 0x0a, 0x1f, 16369 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 16370 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 16371 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 16372 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16373 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 16374 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 16375 0x6d, 0x65, 0x22, 0xa4, 0x02, 0x0a, 0x1b, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x43, 0x75, 0x73, 0x74, 16376 0x6f, 0x6d, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 16377 0x69, 0x67, 0x12, 0x48, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 16378 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16379 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 16380 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 16381 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x61, 0x0a, 0x16, 16382 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x69, 16383 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 16384 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 16385 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 16386 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x13, 0x63, 0x6c, 0x6f, 0x75, 16387 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 16388 0x4e, 0x0a, 0x0f, 0x62, 0x69, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x66, 0x69, 0x65, 16389 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16390 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 16391 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 16392 0x52, 0x0d, 0x62, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 16393 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x4a, 0x0a, 0x1a, 0x4c, 0x61, 0x72, 16394 0x67, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 16395 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x70, 0x70, 0x72, 0x6f, 16396 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 16397 0x01, 0x28, 0x03, 0x52, 0x10, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x4e, 0x75, 0x6d, 0x50, 0x68, 16398 0x72, 0x61, 0x73, 0x65, 0x73, 0x22, 0xea, 0x02, 0x0a, 0x14, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 16399 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 16400 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 16401 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 16402 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 16403 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 16404 0x69, 0x6f, 0x6e, 0x12, 0x6c, 0x0a, 0x17, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x75, 0x73, 16405 0x74, 0x6f, 0x6d, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x03, 16406 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 16407 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x61, 0x72, 16408 0x67, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 16409 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x15, 0x6c, 0x61, 0x72, 0x67, 16410 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 16411 0x79, 0x12, 0x52, 0x0a, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x18, 16412 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16413 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 16414 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x69, 0x63, 16415 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, 16416 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x43, 0x0a, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x05, 16417 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 16418 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 16419 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x52, 0x65, 0x67, 0x65, 16420 0x78, 0x48, 0x00, 0x52, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 16421 0x70, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 16422 0x6f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x6b, 0x0a, 0x17, 0x6c, 0x61, 16423 0x72, 0x67, 0x65, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x69, 16424 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 16425 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 16426 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 16427 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x00, 16428 0x52, 0x15, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x63, 16429 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 16430 0xd3, 0x02, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 16431 0x70, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 16432 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16433 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 16434 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 16435 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 16436 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 16437 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 16438 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 16439 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x05, 0x73, 16440 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 16441 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 16442 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 16443 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 16444 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 16445 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 16446 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 16447 0x6f, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 16448 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 16449 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 16450 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 16451 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0x98, 0x04, 0x0a, 0x0e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 16452 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 16453 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x55, 0x0a, 0x0f, 16454 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 16455 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16456 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 16457 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x56, 0x65, 0x72, 0x73, 16458 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 16459 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x76, 16460 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 16461 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 16462 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 16463 0x54, 0x79, 0x70, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x65, 0x6e, 16464 0x64, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0xc1, 0x02, 0xea, 16465 0x41, 0xbd, 0x02, 0x0a, 0x21, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 16466 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 16467 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 16468 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 16469 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 16470 0x79, 0x70, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 16471 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x12, 0x35, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 16472 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 16473 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x74, 0x6f, 16474 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x12, 0x54, 16475 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 16476 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 16477 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16478 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 16479 0x73, 0x2f, 0x7b, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 16480 0x79, 0x70, 0x65, 0x7d, 0x12, 0x4a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 16481 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 16482 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x74, 16483 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x7b, 0x73, 16484 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 16485 0x22, 0xfa, 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 16486 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 16487 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 16488 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x12, 0x21, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 16489 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f, 16490 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 16491 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 16492 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 16493 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 16494 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 16495 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2d, 0x0a, 16496 0x13, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 16497 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x6f, 0x72, 16498 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 16499 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 16500 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xde, 0x01, 16501 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 16502 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 16503 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 16504 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 16505 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 16506 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 16507 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 16508 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 16509 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 16510 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 16511 0x67, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 16512 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 16513 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 16514 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x59, 16515 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 16516 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 16517 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 16518 0x0a, 0x21, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 16519 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 16520 0x79, 0x70, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd7, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 16521 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 16522 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 16523 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 16524 0x12, 0x21, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 16525 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 16526 0x79, 0x70, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 16527 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 16528 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 16529 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 16530 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 16531 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 16532 0x42, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 16533 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 16534 0x6e, 0x49, 0x64, 0x22, 0x98, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 16535 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 16536 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 16537 0x66, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 16538 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 16539 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 16540 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 16541 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 16542 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 16543 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x5c, 16544 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 16545 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 16546 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 16547 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 16548 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 16549 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa6, 0x01, 0x0a, 16550 0x1e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4a, 0x6f, 16551 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 16552 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 16553 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x64, 0x6c, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16554 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 16555 0x67, 0x67, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x0b, 0x68, 0x79, 16556 0x62, 0x72, 0x69, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 16557 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 16558 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x43, 0x6f, 16559 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0a, 0x68, 0x79, 0x62, 0x72, 0x69, 16560 0x64, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x9e, 0x01, 0x0a, 0x1a, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 16561 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 16562 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 16563 0x28, 0x09, 0x42, 0x21, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1b, 0x0a, 0x19, 0x64, 0x6c, 0x70, 0x2e, 16564 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 16565 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x0b, 0x68, 16566 0x79, 0x62, 0x72, 0x69, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 16567 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16568 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x43, 16569 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0a, 0x68, 0x79, 0x62, 0x72, 16570 0x69, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x22, 0xa1, 0x01, 0x0a, 0x11, 0x48, 0x79, 0x62, 0x72, 0x69, 16571 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x36, 0x0a, 0x04, 16572 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 16573 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 16574 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 16575 0x69, 0x74, 0x65, 0x6d, 0x12, 0x54, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 16576 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 16577 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 16578 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x46, 0x69, 0x6e, 0x64, 16579 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x64, 16580 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xfb, 0x02, 0x0a, 0x14, 0x48, 16581 0x79, 0x62, 0x72, 0x69, 0x64, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 16582 0x69, 0x6c, 0x73, 0x12, 0x4d, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 16583 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 16584 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 16585 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 16586 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 16587 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 16588 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4f, 0x66, 0x66, 16589 0x73, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x77, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 16590 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x6f, 0x77, 0x4f, 0x66, 0x66, 0x73, 16591 0x65, 0x74, 0x12, 0x48, 0x0a, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x69, 16592 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 16593 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 16594 0x32, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 16595 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x06, 16596 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 16597 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 16598 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x46, 0x69, 0x6e, 0x64, 0x69, 16599 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 16600 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 16601 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 16602 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 16603 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 16604 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x17, 0x0a, 0x15, 0x48, 0x79, 0x62, 0x72, 16605 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 16606 0x65, 0x2a, 0xbb, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 16607 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x4c, 0x41, 16608 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 16609 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 16610 0x08, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x5f, 0x54, 0x4f, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 16611 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x5f, 0x54, 0x4f, 0x10, 0x02, 0x12, 0x10, 0x0a, 16612 0x0c, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x03, 0x12, 16613 0x0d, 0x0a, 0x09, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x04, 0x12, 0x1a, 16614 0x0a, 0x16, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, 16615 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x45, 16616 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 16617 0x53, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x07, 0x2a, 16618 0x8d, 0x01, 0x0a, 0x0c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 16619 0x12, 0x1d, 0x0a, 0x19, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 16620 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 16621 0x1c, 0x0a, 0x18, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 16622 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x01, 0x12, 0x1f, 0x0a, 16623 0x1b, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 16624 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x1f, 16625 0x0a, 0x1b, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 16626 0x49, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x03, 0x2a, 16627 0x4d, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 16628 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 16629 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x4f, 0x4e, 16630 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x43, 16631 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x02, 0x2a, 0x42, 16632 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 16633 0x0a, 0x18, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 16634 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 16635 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 16636 0x10, 0x02, 0x2a, 0x50, 0x0a, 0x13, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 16637 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x4e, 0x55, 16638 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 16639 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x54, 0x10, 16640 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x49, 0x53, 0x4b, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 16641 0x49, 0x53, 0x10, 0x02, 0x2a, 0x52, 0x0a, 0x0a, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x54, 0x79, 16642 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4c, 0x50, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 16643 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 16644 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x54, 0x5f, 0x4a, 0x4f, 0x42, 0x10, 16645 0x01, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x49, 0x53, 0x4b, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 16646 0x49, 0x53, 0x5f, 0x4a, 0x4f, 0x42, 0x10, 0x02, 0x2a, 0x6e, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x72, 16647 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 16648 0x26, 0x0a, 0x22, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x54, 16649 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 16650 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 16651 0x4e, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 16652 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x49, 16653 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x04, 0x32, 0xc3, 0x49, 0x0a, 0x0a, 0x44, 0x6c, 0x70, 16654 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xdb, 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x73, 0x70, 16655 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 16656 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 16657 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 16658 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16659 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 16660 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 16661 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x66, 0x22, 16662 0x27, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 16663 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 16664 0x3a, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x3a, 0x01, 0x2a, 0x5a, 0x38, 0x22, 0x33, 0x2f, 16665 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 16666 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 16667 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x69, 0x6e, 0x73, 0x70, 0x65, 16668 0x63, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xcc, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 16669 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16670 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 16671 0x64, 0x61, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 16672 0x1a, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16673 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x49, 16674 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x82, 0xd3, 16675 0xe4, 0x93, 0x02, 0x60, 0x22, 0x24, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 16676 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6d, 16677 0x61, 0x67, 0x65, 0x3a, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x3a, 0x01, 0x2a, 0x5a, 0x35, 0x22, 16678 0x30, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 16679 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16680 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x72, 0x65, 0x64, 0x61, 0x63, 16681 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xea, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 16682 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 16683 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 16684 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 16685 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 16686 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 16687 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 16688 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x72, 0x82, 16689 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x22, 0x2a, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 16690 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 16691 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 16692 0x79, 0x3a, 0x01, 0x2a, 0x5a, 0x3b, 0x22, 0x36, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 16693 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 16694 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 16695 0x65, 0x6e, 0x74, 0x3a, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x3a, 0x01, 16696 0x2a, 0x12, 0xea, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 16697 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16698 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 16699 0x52, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 16700 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16701 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 16702 0x2e, 0x52, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 16703 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x72, 0x82, 0xd3, 0xe4, 0x93, 16704 0x02, 0x6c, 0x22, 0x2a, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 16705 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 16706 0x65, 0x6e, 0x74, 0x3a, 0x72, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x3a, 0x01, 16707 0x2a, 0x5a, 0x3b, 0x22, 0x36, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 16708 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 16709 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 16710 0x3a, 0x72, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0xb0, 16711 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 16712 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16713 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 16714 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 16715 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 16716 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 16717 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x82, 0xd3, 0xe4, 16718 0x93, 0x02, 0x35, 0x12, 0x0d, 0x2f, 0x76, 0x32, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 16719 0x65, 0x73, 0x5a, 0x24, 0x12, 0x22, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 16720 0x74, 0x3d, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 16721 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 16722 0x74, 0x12, 0xf4, 0x02, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x70, 16723 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x67, 0x6f, 16724 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 16725 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 16726 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 16727 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16728 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 16729 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xfd, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 16730 0xdc, 0x01, 0x22, 0x2d, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 16731 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 16732 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 16733 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x3e, 0x22, 0x39, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 16734 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16735 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 16736 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 16737 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x2d, 0x22, 0x28, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 16738 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 16739 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 16740 0x3a, 0x01, 0x2a, 0x5a, 0x39, 0x22, 0x34, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 16741 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 16742 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 16743 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 16744 0x17, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 16745 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0xfe, 0x02, 0x0a, 0x15, 0x55, 0x70, 0x64, 16746 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 16747 0x74, 0x65, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 16748 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 16749 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 16750 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 16751 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 16752 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 16753 0x87, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xdc, 0x01, 0x32, 0x2d, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 16754 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 16755 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 16756 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x3e, 0x32, 0x39, 0x2f, 16757 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 16758 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 16759 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 16760 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x2d, 0x32, 0x28, 0x2f, 16761 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 16762 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 16763 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x39, 0x32, 0x34, 0x2f, 0x76, 16764 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 16765 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 16766 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 16767 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x21, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x69, 0x6e, 0x73, 16768 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2c, 0x75, 0x70, 16769 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xcf, 0x02, 0x0a, 0x12, 0x47, 0x65, 16770 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 16771 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16772 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x70, 16773 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 16774 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 16775 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 16776 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xde, 0x01, 0x82, 0xd3, 0xe4, 16777 0x93, 0x02, 0xd0, 0x01, 0x12, 0x2d, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 16778 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 16779 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 16780 0x2f, 0x2a, 0x7d, 0x5a, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 16781 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 16782 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 16783 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 16784 0x5a, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 16785 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 16786 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x36, 0x12, 0x34, 16787 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 16788 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 16789 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 16790 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe2, 0x02, 0x0a, 0x14, 16791 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 16792 0x61, 0x74, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 16793 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 16794 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 16795 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16796 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 16797 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 16798 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe0, 0x01, 16799 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xd0, 0x01, 0x12, 0x2d, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 16800 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 16801 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 16802 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x5a, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 16803 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 16804 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 16805 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 16806 0x74, 0x65, 0x73, 0x5a, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 16807 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 16808 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x5a, 16809 0x36, 0x12, 0x34, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 16810 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 16811 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 16812 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 16813 0x12, 0xc5, 0x02, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 16814 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 16815 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 16816 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 16817 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 16818 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 16819 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xde, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xd0, 16820 0x01, 0x2a, 0x2d, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 16821 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 16822 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 16823 0x5a, 0x3b, 0x2a, 0x39, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 16824 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 16825 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 16826 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x2a, 0x2a, 16827 0x28, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 16828 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 16829 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x36, 0x2a, 0x34, 0x2f, 0x76, 0x32, 16830 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 16831 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 16832 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 16833 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x8c, 0x03, 0x0a, 0x18, 0x43, 0x72, 0x65, 16834 0x61, 0x74, 0x65, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 16835 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 16836 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 16837 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 16838 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 16839 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 16840 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 16841 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x8c, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 16842 0xe8, 0x01, 0x22, 0x30, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 16843 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 16844 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 16845 0x61, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x41, 0x22, 0x3c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 16846 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 16847 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 16848 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 16849 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x30, 0x22, 0x2b, 0x2f, 0x76, 16850 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 16851 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 16852 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x3c, 0x22, 0x37, 16853 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 16854 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 16855 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 16856 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x1a, 0x70, 0x61, 0x72, 16857 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 16858 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x96, 0x03, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 16859 0x74, 0x65, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 16860 0x6c, 0x61, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 16861 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 16862 0x61, 0x74, 0x65, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 16863 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 16864 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 16865 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 16866 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x96, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xe8, 16867 0x01, 0x32, 0x30, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 16868 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x69, 16869 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 16870 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x41, 0x32, 0x3c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 16871 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16872 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 16873 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 16874 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x30, 0x32, 0x2b, 0x2f, 0x76, 0x32, 16875 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 16876 0x2a, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 16877 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x3c, 0x32, 0x37, 0x2f, 16878 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 16879 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 16880 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 16881 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x24, 0x6e, 0x61, 0x6d, 0x65, 16882 0x2c, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 16883 0x6c, 0x61, 0x74, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 16884 0x12, 0xe4, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 16885 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 16886 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 16887 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 16888 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 16889 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 16890 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 16891 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xea, 0x01, 0x82, 0xd3, 0xe4, 16892 0x93, 0x02, 0xdc, 0x01, 0x12, 0x30, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 16893 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 16894 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 16895 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x3e, 0x12, 0x3c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 16896 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16897 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 16898 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 16899 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 16900 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 16901 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 16902 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 16903 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 16904 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 16905 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 16906 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xf7, 0x02, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 16907 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 16908 0x74, 0x65, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 16909 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 16910 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 16911 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 16912 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 16913 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 16914 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 16915 0x73, 0x65, 0x22, 0xec, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xdc, 0x01, 0x12, 0x30, 0x2f, 0x76, 16916 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 16917 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 16918 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x5a, 0x3e, 16919 0x12, 0x3c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 16920 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 16921 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 16922 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x5a, 0x2d, 16923 0x12, 0x2b, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 16924 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 16925 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x5a, 0x39, 0x12, 16926 0x37, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 16927 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16928 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 16929 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 16930 0x74, 0x12, 0xd7, 0x02, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x69, 0x64, 16931 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x36, 16932 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 16933 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x69, 16934 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 16935 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 16936 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xea, 16937 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xdc, 0x01, 0x2a, 0x30, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 16938 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16939 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 16940 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x3e, 0x2a, 0x3c, 0x2f, 0x76, 16941 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 16942 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 16943 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 16944 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x2d, 0x2a, 0x2b, 0x2f, 0x76, 16945 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 16946 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 16947 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x39, 0x2a, 0x37, 0x2f, 0x76, 0x32, 16948 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 16949 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 16950 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 16951 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe0, 0x01, 0x0a, 0x10, 16952 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 16953 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16954 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 16955 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 16956 0x1a, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16957 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 16958 0x67, 0x65, 0x72, 0x22, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x22, 0x23, 0x2f, 0x76, 0x32, 16959 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 16960 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 16961 0x3a, 0x01, 0x2a, 0x5a, 0x34, 0x22, 0x2f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 16962 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 16963 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 16964 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x12, 0x70, 0x61, 0x72, 0x65, 16965 0x6e, 0x74, 0x2c, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0xeb, 16966 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 16967 0x67, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 16968 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 16969 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 16970 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 16971 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 16972 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x22, 0x83, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x32, 16973 0x23, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 16974 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 16975 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x34, 0x32, 0x2f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 16976 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 16977 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 16978 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x1c, 16979 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 16980 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xcf, 0x01, 0x0a, 16981 0x17, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4a, 0x6f, 16982 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 16983 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 16984 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x4a, 0x6f, 16985 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 16986 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 16987 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 16988 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, 0x82, 16989 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x22, 0x3d, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 16990 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 16991 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 16992 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 16993 0x70, 0x65, 0x63, 0x74, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xc6, 16994 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 16995 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 16996 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x54, 16997 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 16998 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 16999 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 17000 0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x58, 0x12, 0x23, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 17001 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 17002 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x31, 0x12, 17003 0x2f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 17004 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 17005 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 17006 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd9, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 17007 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 17008 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 17009 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 17010 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 17011 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 17012 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 17013 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x82, 0xd3, 0xe4, 0x93, 17014 0x02, 0x58, 0x12, 0x23, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 17015 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 17016 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x5a, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 17017 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 17018 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6a, 17019 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 17020 0x65, 0x6e, 0x74, 0x12, 0xc1, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 17021 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 17022 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 17023 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 17024 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 17025 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 17026 0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x58, 0x2a, 0x23, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 17027 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 17028 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x31, 0x2a, 17029 0x2f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 17030 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 17031 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 17032 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xdd, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 17033 0x76, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x30, 17034 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 17035 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4a, 17036 0x6f, 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 17037 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 17038 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x22, 17039 0x76, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, 0x22, 0x2c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 17040 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 17041 0x62, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x63, 0x74, 17042 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x5a, 0x3d, 0x22, 0x38, 0x2f, 0x76, 0x32, 0x2f, 17043 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 17044 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 17045 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x63, 0x74, 0x69, 17046 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0xdf, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 17047 0x74, 0x65, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 17048 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 17049 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 17050 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 17051 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6c, 0x70, 17052 0x4a, 0x6f, 0x62, 0x22, 0x83, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x22, 0x1f, 0x2f, 0x76, 17053 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 17054 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x3a, 0x01, 0x2a, 17055 0x5a, 0x30, 0x22, 0x2b, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 17056 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 17057 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x3a, 17058 0x01, 0x2a, 0xda, 0x41, 0x12, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x70, 17059 0x65, 0x63, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0xda, 0x41, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 17060 0x2c, 0x72, 0x69, 0x73, 0x6b, 0x5f, 0x6a, 0x6f, 0x62, 0x12, 0xc5, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 17061 0x73, 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 17062 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 17063 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 17064 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 17065 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 17066 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 17067 0x22, 0x5f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x12, 0x1f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 17068 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 17069 0x7d, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x5a, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x32, 17070 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 17071 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 17072 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 17073 0x74, 0x12, 0xb2, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x12, 17074 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 17075 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 17076 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 17077 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 17078 0x2e, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x22, 0x5d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x12, 17079 0x1f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 17080 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 17081 0x5a, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 17082 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 17083 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 17084 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xb1, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 17085 0x65, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 17086 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 17087 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 17088 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 17089 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x5d, 0x82, 0xd3, 0xe4, 17090 0x93, 0x02, 0x50, 0x2a, 0x1f, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 17091 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 17092 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x2d, 0x2a, 0x2b, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 17093 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 17094 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 17095 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xbe, 0x01, 0x0a, 0x0c, 0x43, 17096 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 17097 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 17098 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 17099 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 17100 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 17101 0x6a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x64, 0x22, 0x26, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 17102 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6c, 17103 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x3a, 17104 0x01, 0x2a, 0x5a, 0x37, 0x22, 0x32, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 17105 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 17106 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 17107 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x3a, 0x01, 0x2a, 0x12, 0xe3, 0x02, 0x0a, 0x14, 17108 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 17109 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 17110 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 17111 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 17112 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 17113 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 17114 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x22, 17115 0xef, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xd8, 0x01, 0x22, 0x2c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 17116 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 17117 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 17118 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x3d, 0x22, 0x38, 0x2f, 0x76, 17119 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 17120 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 17121 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 17122 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x2c, 0x22, 0x27, 0x2f, 0x76, 0x32, 17123 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 17124 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 17125 0x79, 0x70, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x38, 0x22, 0x33, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 17126 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 17127 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 17128 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x3a, 0x01, 17129 0x2a, 0xda, 0x41, 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 17130 0x67, 0x12, 0xed, 0x02, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 17131 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 17132 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 17133 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 17134 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 17135 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 17136 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 17137 0x6f, 0x54, 0x79, 0x70, 0x65, 0x22, 0xf9, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xd8, 0x01, 0x32, 17138 0x2c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 17139 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 17140 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 17141 0x5a, 0x3d, 0x32, 0x38, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 17142 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 17143 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 17144 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 17145 0x2c, 0x32, 0x27, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 17146 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 17147 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x38, 0x32, 17148 0x33, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 17149 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 17150 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 17151 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x17, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x63, 17152 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 17153 0x6b, 0x12, 0xc8, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 17154 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 17155 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 17156 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 17157 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 17158 0x65, 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 17159 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x22, 17160 0xda, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xcc, 0x01, 0x12, 0x2c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 17161 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 17162 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 17163 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x3a, 0x12, 0x38, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 17164 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 17165 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 17166 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 17167 0x2f, 0x2a, 0x7d, 0x5a, 0x29, 0x12, 0x27, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 17168 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 17169 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x35, 17170 0x12, 0x33, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 17171 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 17172 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 17173 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xdb, 0x02, 0x0a, 17174 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 17175 0x79, 0x70, 0x65, 0x73, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 17176 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 17177 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 17178 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 17179 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 17180 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 17181 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdc, 0x01, 0x82, 0xd3, 17182 0xe4, 0x93, 0x02, 0xcc, 0x01, 0x12, 0x2c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 17183 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 17184 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 17185 0x70, 0x65, 0x73, 0x5a, 0x3a, 0x12, 0x38, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 17186 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 17187 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 17188 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x5a, 17189 0x29, 0x12, 0x27, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 17190 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 17191 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x5a, 0x35, 0x12, 0x33, 0x2f, 0x76, 17192 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 17193 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 17194 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 17195 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xbf, 0x02, 0x0a, 0x14, 0x44, 17196 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 17197 0x79, 0x70, 0x65, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 17198 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 17199 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 17200 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 17201 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 17202 0xda, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xcc, 0x01, 0x2a, 0x2c, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 17203 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 17204 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 17205 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x3a, 0x2a, 0x38, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 17206 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 17207 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 17208 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 17209 0x2f, 0x2a, 0x7d, 0x5a, 0x29, 0x2a, 0x27, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 17210 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 17211 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x35, 17212 0x2a, 0x33, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 17213 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 17214 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 17215 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xc3, 0x01, 0x0a, 17216 0x13, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x44, 0x6c, 17217 0x70, 0x4a, 0x6f, 0x62, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 17218 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x79, 0x62, 17219 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 17220 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 17221 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 17222 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 17223 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x22, 0x39, 0x2f, 17224 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 17225 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 17226 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x68, 0x79, 0x62, 0x72, 0x69, 17227 0x64, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 17228 0x6d, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x44, 0x6c, 0x70, 17229 0x4a, 0x6f, 0x62, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x69, 17230 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x69, 17231 0x73, 0x68, 0x44, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 17232 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 17233 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x22, 17234 0x32, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 17235 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 17236 0x2a, 0x2f, 0x64, 0x6c, 0x70, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x66, 0x69, 0x6e, 17237 0x69, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x1a, 0x46, 0xca, 0x41, 0x12, 0x64, 0x6c, 0x70, 0x2e, 0x67, 17238 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 17239 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 17240 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 17241 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x85, 17242 0x02, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 17243 0x69, 0x76, 0x61, 0x63, 0x79, 0x2e, 0x64, 0x6c, 0x70, 0x2e, 0x76, 0x32, 0x42, 0x08, 0x44, 0x6c, 17244 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 17245 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 17246 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 17247 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2f, 0x64, 0x6c, 0x70, 0x2f, 0x76, 0x32, 0x3b, 0x64, 17248 0x6c, 0x70, 0xaa, 0x02, 0x13, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 17249 0x64, 0x2e, 0x44, 0x6c, 0x70, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x13, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 17250 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x44, 0x6c, 0x70, 0x5c, 0x56, 0x32, 0xea, 0x02, 17251 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 17252 0x44, 0x6c, 0x70, 0x3a, 0x3a, 0x56, 0x32, 0xea, 0x41, 0x5c, 0x0a, 0x27, 0x64, 0x6c, 0x70, 0x2e, 17253 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4f, 17254 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 17255 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 17256 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 17257 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 17258 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 17259} 17260 17261var ( 17262 file_google_privacy_dlp_v2_dlp_proto_rawDescOnce sync.Once 17263 file_google_privacy_dlp_v2_dlp_proto_rawDescData = file_google_privacy_dlp_v2_dlp_proto_rawDesc 17264) 17265 17266func file_google_privacy_dlp_v2_dlp_proto_rawDescGZIP() []byte { 17267 file_google_privacy_dlp_v2_dlp_proto_rawDescOnce.Do(func() { 17268 file_google_privacy_dlp_v2_dlp_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_privacy_dlp_v2_dlp_proto_rawDescData) 17269 }) 17270 return file_google_privacy_dlp_v2_dlp_proto_rawDescData 17271} 17272 17273var file_google_privacy_dlp_v2_dlp_proto_enumTypes = make([]protoimpl.EnumInfo, 16) 17274var file_google_privacy_dlp_v2_dlp_proto_msgTypes = make([]protoimpl.MessageInfo, 173) 17275var file_google_privacy_dlp_v2_dlp_proto_goTypes = []interface{}{ 17276 (RelationalOperator)(0), // 0: google.privacy.dlp.v2.RelationalOperator 17277 (MatchingType)(0), // 1: google.privacy.dlp.v2.MatchingType 17278 (ContentOption)(0), // 2: google.privacy.dlp.v2.ContentOption 17279 (MetadataType)(0), // 3: google.privacy.dlp.v2.MetadataType 17280 (InfoTypeSupportedBy)(0), // 4: google.privacy.dlp.v2.InfoTypeSupportedBy 17281 (DlpJobType)(0), // 5: google.privacy.dlp.v2.DlpJobType 17282 (StoredInfoTypeState)(0), // 6: google.privacy.dlp.v2.StoredInfoTypeState 17283 (ByteContentItem_BytesType)(0), // 7: google.privacy.dlp.v2.ByteContentItem.BytesType 17284 (OutputStorageConfig_OutputSchema)(0), // 8: google.privacy.dlp.v2.OutputStorageConfig.OutputSchema 17285 (TimePartConfig_TimePart)(0), // 9: google.privacy.dlp.v2.TimePartConfig.TimePart 17286 (CharsToIgnore_CommonCharsToIgnore)(0), // 10: google.privacy.dlp.v2.CharsToIgnore.CommonCharsToIgnore 17287 (CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet)(0), // 11: google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet 17288 (RecordCondition_Expressions_LogicalOperator)(0), // 12: google.privacy.dlp.v2.RecordCondition.Expressions.LogicalOperator 17289 (TransformationSummary_TransformationResultCode)(0), // 13: google.privacy.dlp.v2.TransformationSummary.TransformationResultCode 17290 (JobTrigger_Status)(0), // 14: google.privacy.dlp.v2.JobTrigger.Status 17291 (DlpJob_JobState)(0), // 15: google.privacy.dlp.v2.DlpJob.JobState 17292 (*ExcludeInfoTypes)(nil), // 16: google.privacy.dlp.v2.ExcludeInfoTypes 17293 (*ExclusionRule)(nil), // 17: google.privacy.dlp.v2.ExclusionRule 17294 (*InspectionRule)(nil), // 18: google.privacy.dlp.v2.InspectionRule 17295 (*InspectionRuleSet)(nil), // 19: google.privacy.dlp.v2.InspectionRuleSet 17296 (*InspectConfig)(nil), // 20: google.privacy.dlp.v2.InspectConfig 17297 (*ByteContentItem)(nil), // 21: google.privacy.dlp.v2.ByteContentItem 17298 (*ContentItem)(nil), // 22: google.privacy.dlp.v2.ContentItem 17299 (*Table)(nil), // 23: google.privacy.dlp.v2.Table 17300 (*InspectResult)(nil), // 24: google.privacy.dlp.v2.InspectResult 17301 (*Finding)(nil), // 25: google.privacy.dlp.v2.Finding 17302 (*Location)(nil), // 26: google.privacy.dlp.v2.Location 17303 (*ContentLocation)(nil), // 27: google.privacy.dlp.v2.ContentLocation 17304 (*MetadataLocation)(nil), // 28: google.privacy.dlp.v2.MetadataLocation 17305 (*StorageMetadataLabel)(nil), // 29: google.privacy.dlp.v2.StorageMetadataLabel 17306 (*DocumentLocation)(nil), // 30: google.privacy.dlp.v2.DocumentLocation 17307 (*RecordLocation)(nil), // 31: google.privacy.dlp.v2.RecordLocation 17308 (*TableLocation)(nil), // 32: google.privacy.dlp.v2.TableLocation 17309 (*Container)(nil), // 33: google.privacy.dlp.v2.Container 17310 (*Range)(nil), // 34: google.privacy.dlp.v2.Range 17311 (*ImageLocation)(nil), // 35: google.privacy.dlp.v2.ImageLocation 17312 (*BoundingBox)(nil), // 36: google.privacy.dlp.v2.BoundingBox 17313 (*RedactImageRequest)(nil), // 37: google.privacy.dlp.v2.RedactImageRequest 17314 (*Color)(nil), // 38: google.privacy.dlp.v2.Color 17315 (*RedactImageResponse)(nil), // 39: google.privacy.dlp.v2.RedactImageResponse 17316 (*DeidentifyContentRequest)(nil), // 40: google.privacy.dlp.v2.DeidentifyContentRequest 17317 (*DeidentifyContentResponse)(nil), // 41: google.privacy.dlp.v2.DeidentifyContentResponse 17318 (*ReidentifyContentRequest)(nil), // 42: google.privacy.dlp.v2.ReidentifyContentRequest 17319 (*ReidentifyContentResponse)(nil), // 43: google.privacy.dlp.v2.ReidentifyContentResponse 17320 (*InspectContentRequest)(nil), // 44: google.privacy.dlp.v2.InspectContentRequest 17321 (*InspectContentResponse)(nil), // 45: google.privacy.dlp.v2.InspectContentResponse 17322 (*OutputStorageConfig)(nil), // 46: google.privacy.dlp.v2.OutputStorageConfig 17323 (*InfoTypeStats)(nil), // 47: google.privacy.dlp.v2.InfoTypeStats 17324 (*InspectDataSourceDetails)(nil), // 48: google.privacy.dlp.v2.InspectDataSourceDetails 17325 (*HybridInspectStatistics)(nil), // 49: google.privacy.dlp.v2.HybridInspectStatistics 17326 (*InfoTypeDescription)(nil), // 50: google.privacy.dlp.v2.InfoTypeDescription 17327 (*ListInfoTypesRequest)(nil), // 51: google.privacy.dlp.v2.ListInfoTypesRequest 17328 (*ListInfoTypesResponse)(nil), // 52: google.privacy.dlp.v2.ListInfoTypesResponse 17329 (*RiskAnalysisJobConfig)(nil), // 53: google.privacy.dlp.v2.RiskAnalysisJobConfig 17330 (*QuasiId)(nil), // 54: google.privacy.dlp.v2.QuasiId 17331 (*StatisticalTable)(nil), // 55: google.privacy.dlp.v2.StatisticalTable 17332 (*PrivacyMetric)(nil), // 56: google.privacy.dlp.v2.PrivacyMetric 17333 (*AnalyzeDataSourceRiskDetails)(nil), // 57: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails 17334 (*ValueFrequency)(nil), // 58: google.privacy.dlp.v2.ValueFrequency 17335 (*Value)(nil), // 59: google.privacy.dlp.v2.Value 17336 (*QuoteInfo)(nil), // 60: google.privacy.dlp.v2.QuoteInfo 17337 (*DateTime)(nil), // 61: google.privacy.dlp.v2.DateTime 17338 (*DeidentifyConfig)(nil), // 62: google.privacy.dlp.v2.DeidentifyConfig 17339 (*TransformationErrorHandling)(nil), // 63: google.privacy.dlp.v2.TransformationErrorHandling 17340 (*PrimitiveTransformation)(nil), // 64: google.privacy.dlp.v2.PrimitiveTransformation 17341 (*TimePartConfig)(nil), // 65: google.privacy.dlp.v2.TimePartConfig 17342 (*CryptoHashConfig)(nil), // 66: google.privacy.dlp.v2.CryptoHashConfig 17343 (*CryptoDeterministicConfig)(nil), // 67: google.privacy.dlp.v2.CryptoDeterministicConfig 17344 (*ReplaceValueConfig)(nil), // 68: google.privacy.dlp.v2.ReplaceValueConfig 17345 (*ReplaceWithInfoTypeConfig)(nil), // 69: google.privacy.dlp.v2.ReplaceWithInfoTypeConfig 17346 (*RedactConfig)(nil), // 70: google.privacy.dlp.v2.RedactConfig 17347 (*CharsToIgnore)(nil), // 71: google.privacy.dlp.v2.CharsToIgnore 17348 (*CharacterMaskConfig)(nil), // 72: google.privacy.dlp.v2.CharacterMaskConfig 17349 (*FixedSizeBucketingConfig)(nil), // 73: google.privacy.dlp.v2.FixedSizeBucketingConfig 17350 (*BucketingConfig)(nil), // 74: google.privacy.dlp.v2.BucketingConfig 17351 (*CryptoReplaceFfxFpeConfig)(nil), // 75: google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig 17352 (*CryptoKey)(nil), // 76: google.privacy.dlp.v2.CryptoKey 17353 (*TransientCryptoKey)(nil), // 77: google.privacy.dlp.v2.TransientCryptoKey 17354 (*UnwrappedCryptoKey)(nil), // 78: google.privacy.dlp.v2.UnwrappedCryptoKey 17355 (*KmsWrappedCryptoKey)(nil), // 79: google.privacy.dlp.v2.KmsWrappedCryptoKey 17356 (*DateShiftConfig)(nil), // 80: google.privacy.dlp.v2.DateShiftConfig 17357 (*InfoTypeTransformations)(nil), // 81: google.privacy.dlp.v2.InfoTypeTransformations 17358 (*FieldTransformation)(nil), // 82: google.privacy.dlp.v2.FieldTransformation 17359 (*RecordTransformations)(nil), // 83: google.privacy.dlp.v2.RecordTransformations 17360 (*RecordSuppression)(nil), // 84: google.privacy.dlp.v2.RecordSuppression 17361 (*RecordCondition)(nil), // 85: google.privacy.dlp.v2.RecordCondition 17362 (*TransformationOverview)(nil), // 86: google.privacy.dlp.v2.TransformationOverview 17363 (*TransformationSummary)(nil), // 87: google.privacy.dlp.v2.TransformationSummary 17364 (*Schedule)(nil), // 88: google.privacy.dlp.v2.Schedule 17365 (*Manual)(nil), // 89: google.privacy.dlp.v2.Manual 17366 (*InspectTemplate)(nil), // 90: google.privacy.dlp.v2.InspectTemplate 17367 (*DeidentifyTemplate)(nil), // 91: google.privacy.dlp.v2.DeidentifyTemplate 17368 (*Error)(nil), // 92: google.privacy.dlp.v2.Error 17369 (*JobTrigger)(nil), // 93: google.privacy.dlp.v2.JobTrigger 17370 (*Action)(nil), // 94: google.privacy.dlp.v2.Action 17371 (*CreateInspectTemplateRequest)(nil), // 95: google.privacy.dlp.v2.CreateInspectTemplateRequest 17372 (*UpdateInspectTemplateRequest)(nil), // 96: google.privacy.dlp.v2.UpdateInspectTemplateRequest 17373 (*GetInspectTemplateRequest)(nil), // 97: google.privacy.dlp.v2.GetInspectTemplateRequest 17374 (*ListInspectTemplatesRequest)(nil), // 98: google.privacy.dlp.v2.ListInspectTemplatesRequest 17375 (*ListInspectTemplatesResponse)(nil), // 99: google.privacy.dlp.v2.ListInspectTemplatesResponse 17376 (*DeleteInspectTemplateRequest)(nil), // 100: google.privacy.dlp.v2.DeleteInspectTemplateRequest 17377 (*CreateJobTriggerRequest)(nil), // 101: google.privacy.dlp.v2.CreateJobTriggerRequest 17378 (*ActivateJobTriggerRequest)(nil), // 102: google.privacy.dlp.v2.ActivateJobTriggerRequest 17379 (*UpdateJobTriggerRequest)(nil), // 103: google.privacy.dlp.v2.UpdateJobTriggerRequest 17380 (*GetJobTriggerRequest)(nil), // 104: google.privacy.dlp.v2.GetJobTriggerRequest 17381 (*CreateDlpJobRequest)(nil), // 105: google.privacy.dlp.v2.CreateDlpJobRequest 17382 (*ListJobTriggersRequest)(nil), // 106: google.privacy.dlp.v2.ListJobTriggersRequest 17383 (*ListJobTriggersResponse)(nil), // 107: google.privacy.dlp.v2.ListJobTriggersResponse 17384 (*DeleteJobTriggerRequest)(nil), // 108: google.privacy.dlp.v2.DeleteJobTriggerRequest 17385 (*InspectJobConfig)(nil), // 109: google.privacy.dlp.v2.InspectJobConfig 17386 (*DlpJob)(nil), // 110: google.privacy.dlp.v2.DlpJob 17387 (*GetDlpJobRequest)(nil), // 111: google.privacy.dlp.v2.GetDlpJobRequest 17388 (*ListDlpJobsRequest)(nil), // 112: google.privacy.dlp.v2.ListDlpJobsRequest 17389 (*ListDlpJobsResponse)(nil), // 113: google.privacy.dlp.v2.ListDlpJobsResponse 17390 (*CancelDlpJobRequest)(nil), // 114: google.privacy.dlp.v2.CancelDlpJobRequest 17391 (*FinishDlpJobRequest)(nil), // 115: google.privacy.dlp.v2.FinishDlpJobRequest 17392 (*DeleteDlpJobRequest)(nil), // 116: google.privacy.dlp.v2.DeleteDlpJobRequest 17393 (*CreateDeidentifyTemplateRequest)(nil), // 117: google.privacy.dlp.v2.CreateDeidentifyTemplateRequest 17394 (*UpdateDeidentifyTemplateRequest)(nil), // 118: google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest 17395 (*GetDeidentifyTemplateRequest)(nil), // 119: google.privacy.dlp.v2.GetDeidentifyTemplateRequest 17396 (*ListDeidentifyTemplatesRequest)(nil), // 120: google.privacy.dlp.v2.ListDeidentifyTemplatesRequest 17397 (*ListDeidentifyTemplatesResponse)(nil), // 121: google.privacy.dlp.v2.ListDeidentifyTemplatesResponse 17398 (*DeleteDeidentifyTemplateRequest)(nil), // 122: google.privacy.dlp.v2.DeleteDeidentifyTemplateRequest 17399 (*LargeCustomDictionaryConfig)(nil), // 123: google.privacy.dlp.v2.LargeCustomDictionaryConfig 17400 (*LargeCustomDictionaryStats)(nil), // 124: google.privacy.dlp.v2.LargeCustomDictionaryStats 17401 (*StoredInfoTypeConfig)(nil), // 125: google.privacy.dlp.v2.StoredInfoTypeConfig 17402 (*StoredInfoTypeStats)(nil), // 126: google.privacy.dlp.v2.StoredInfoTypeStats 17403 (*StoredInfoTypeVersion)(nil), // 127: google.privacy.dlp.v2.StoredInfoTypeVersion 17404 (*StoredInfoType)(nil), // 128: google.privacy.dlp.v2.StoredInfoType 17405 (*CreateStoredInfoTypeRequest)(nil), // 129: google.privacy.dlp.v2.CreateStoredInfoTypeRequest 17406 (*UpdateStoredInfoTypeRequest)(nil), // 130: google.privacy.dlp.v2.UpdateStoredInfoTypeRequest 17407 (*GetStoredInfoTypeRequest)(nil), // 131: google.privacy.dlp.v2.GetStoredInfoTypeRequest 17408 (*ListStoredInfoTypesRequest)(nil), // 132: google.privacy.dlp.v2.ListStoredInfoTypesRequest 17409 (*ListStoredInfoTypesResponse)(nil), // 133: google.privacy.dlp.v2.ListStoredInfoTypesResponse 17410 (*DeleteStoredInfoTypeRequest)(nil), // 134: google.privacy.dlp.v2.DeleteStoredInfoTypeRequest 17411 (*HybridInspectJobTriggerRequest)(nil), // 135: google.privacy.dlp.v2.HybridInspectJobTriggerRequest 17412 (*HybridInspectDlpJobRequest)(nil), // 136: google.privacy.dlp.v2.HybridInspectDlpJobRequest 17413 (*HybridContentItem)(nil), // 137: google.privacy.dlp.v2.HybridContentItem 17414 (*HybridFindingDetails)(nil), // 138: google.privacy.dlp.v2.HybridFindingDetails 17415 (*HybridInspectResponse)(nil), // 139: google.privacy.dlp.v2.HybridInspectResponse 17416 (*InspectConfig_FindingLimits)(nil), // 140: google.privacy.dlp.v2.InspectConfig.FindingLimits 17417 (*InspectConfig_FindingLimits_InfoTypeLimit)(nil), // 141: google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit 17418 (*Table_Row)(nil), // 142: google.privacy.dlp.v2.Table.Row 17419 nil, // 143: google.privacy.dlp.v2.Finding.LabelsEntry 17420 (*RedactImageRequest_ImageRedactionConfig)(nil), // 144: google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig 17421 (*InspectDataSourceDetails_RequestedOptions)(nil), // 145: google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions 17422 (*InspectDataSourceDetails_Result)(nil), // 146: google.privacy.dlp.v2.InspectDataSourceDetails.Result 17423 (*StatisticalTable_QuasiIdentifierField)(nil), // 147: google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField 17424 (*PrivacyMetric_NumericalStatsConfig)(nil), // 148: google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig 17425 (*PrivacyMetric_CategoricalStatsConfig)(nil), // 149: google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig 17426 (*PrivacyMetric_KAnonymityConfig)(nil), // 150: google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig 17427 (*PrivacyMetric_LDiversityConfig)(nil), // 151: google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig 17428 (*PrivacyMetric_KMapEstimationConfig)(nil), // 152: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig 17429 (*PrivacyMetric_DeltaPresenceEstimationConfig)(nil), // 153: google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig 17430 (*PrivacyMetric_KMapEstimationConfig_TaggedField)(nil), // 154: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField 17431 (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable)(nil), // 155: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable 17432 (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField)(nil), // 156: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField 17433 (*AnalyzeDataSourceRiskDetails_NumericalStatsResult)(nil), // 157: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult 17434 (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult)(nil), // 158: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult 17435 (*AnalyzeDataSourceRiskDetails_KAnonymityResult)(nil), // 159: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult 17436 (*AnalyzeDataSourceRiskDetails_LDiversityResult)(nil), // 160: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult 17437 (*AnalyzeDataSourceRiskDetails_KMapEstimationResult)(nil), // 161: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult 17438 (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult)(nil), // 162: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult 17439 (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket)(nil), // 163: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket 17440 (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass)(nil), // 164: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass 17441 (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket)(nil), // 165: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket 17442 (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass)(nil), // 166: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass 17443 (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket)(nil), // 167: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket 17444 (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues)(nil), // 168: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues 17445 (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket)(nil), // 169: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket 17446 (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues)(nil), // 170: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues 17447 (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket)(nil), // 171: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket 17448 (*DateTime_TimeZone)(nil), // 172: google.privacy.dlp.v2.DateTime.TimeZone 17449 (*TransformationErrorHandling_ThrowError)(nil), // 173: google.privacy.dlp.v2.TransformationErrorHandling.ThrowError 17450 (*TransformationErrorHandling_LeaveUntransformed)(nil), // 174: google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformed 17451 (*BucketingConfig_Bucket)(nil), // 175: google.privacy.dlp.v2.BucketingConfig.Bucket 17452 (*InfoTypeTransformations_InfoTypeTransformation)(nil), // 176: google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation 17453 (*RecordCondition_Condition)(nil), // 177: google.privacy.dlp.v2.RecordCondition.Condition 17454 (*RecordCondition_Conditions)(nil), // 178: google.privacy.dlp.v2.RecordCondition.Conditions 17455 (*RecordCondition_Expressions)(nil), // 179: google.privacy.dlp.v2.RecordCondition.Expressions 17456 (*TransformationSummary_SummaryResult)(nil), // 180: google.privacy.dlp.v2.TransformationSummary.SummaryResult 17457 (*JobTrigger_Trigger)(nil), // 181: google.privacy.dlp.v2.JobTrigger.Trigger 17458 (*Action_SaveFindings)(nil), // 182: google.privacy.dlp.v2.Action.SaveFindings 17459 (*Action_PublishToPubSub)(nil), // 183: google.privacy.dlp.v2.Action.PublishToPubSub 17460 (*Action_PublishSummaryToCscc)(nil), // 184: google.privacy.dlp.v2.Action.PublishSummaryToCscc 17461 (*Action_PublishFindingsToCloudDataCatalog)(nil), // 185: google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalog 17462 (*Action_JobNotificationEmails)(nil), // 186: google.privacy.dlp.v2.Action.JobNotificationEmails 17463 (*Action_PublishToStackdriver)(nil), // 187: google.privacy.dlp.v2.Action.PublishToStackdriver 17464 nil, // 188: google.privacy.dlp.v2.HybridFindingDetails.LabelsEntry 17465 (*InfoType)(nil), // 189: google.privacy.dlp.v2.InfoType 17466 (*CustomInfoType_Dictionary)(nil), // 190: google.privacy.dlp.v2.CustomInfoType.Dictionary 17467 (*CustomInfoType_Regex)(nil), // 191: google.privacy.dlp.v2.CustomInfoType.Regex 17468 (*CustomInfoType_DetectionRule_HotwordRule)(nil), // 192: google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule 17469 (Likelihood)(0), // 193: google.privacy.dlp.v2.Likelihood 17470 (*CustomInfoType)(nil), // 194: google.privacy.dlp.v2.CustomInfoType 17471 (*FieldId)(nil), // 195: google.privacy.dlp.v2.FieldId 17472 (*timestamp.Timestamp)(nil), // 196: google.protobuf.Timestamp 17473 (*RecordKey)(nil), // 197: google.privacy.dlp.v2.RecordKey 17474 (*BigQueryTable)(nil), // 198: google.privacy.dlp.v2.BigQueryTable 17475 (*empty.Empty)(nil), // 199: google.protobuf.Empty 17476 (*timeofday.TimeOfDay)(nil), // 200: google.type.TimeOfDay 17477 (*date.Date)(nil), // 201: google.type.Date 17478 (dayofweek.DayOfWeek)(0), // 202: google.type.DayOfWeek 17479 (*duration.Duration)(nil), // 203: google.protobuf.Duration 17480 (*status.Status)(nil), // 204: google.rpc.Status 17481 (*field_mask.FieldMask)(nil), // 205: google.protobuf.FieldMask 17482 (*StorageConfig)(nil), // 206: google.privacy.dlp.v2.StorageConfig 17483 (*CloudStoragePath)(nil), // 207: google.privacy.dlp.v2.CloudStoragePath 17484 (*CloudStorageFileSet)(nil), // 208: google.privacy.dlp.v2.CloudStorageFileSet 17485 (*BigQueryField)(nil), // 209: google.privacy.dlp.v2.BigQueryField 17486 (*TableOptions)(nil), // 210: google.privacy.dlp.v2.TableOptions 17487 (*EntityId)(nil), // 211: google.privacy.dlp.v2.EntityId 17488} 17489var file_google_privacy_dlp_v2_dlp_proto_depIdxs = []int32{ 17490 189, // 0: google.privacy.dlp.v2.ExcludeInfoTypes.info_types:type_name -> google.privacy.dlp.v2.InfoType 17491 190, // 1: google.privacy.dlp.v2.ExclusionRule.dictionary:type_name -> google.privacy.dlp.v2.CustomInfoType.Dictionary 17492 191, // 2: google.privacy.dlp.v2.ExclusionRule.regex:type_name -> google.privacy.dlp.v2.CustomInfoType.Regex 17493 16, // 3: google.privacy.dlp.v2.ExclusionRule.exclude_info_types:type_name -> google.privacy.dlp.v2.ExcludeInfoTypes 17494 1, // 4: google.privacy.dlp.v2.ExclusionRule.matching_type:type_name -> google.privacy.dlp.v2.MatchingType 17495 192, // 5: google.privacy.dlp.v2.InspectionRule.hotword_rule:type_name -> google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule 17496 17, // 6: google.privacy.dlp.v2.InspectionRule.exclusion_rule:type_name -> google.privacy.dlp.v2.ExclusionRule 17497 189, // 7: google.privacy.dlp.v2.InspectionRuleSet.info_types:type_name -> google.privacy.dlp.v2.InfoType 17498 18, // 8: google.privacy.dlp.v2.InspectionRuleSet.rules:type_name -> google.privacy.dlp.v2.InspectionRule 17499 189, // 9: google.privacy.dlp.v2.InspectConfig.info_types:type_name -> google.privacy.dlp.v2.InfoType 17500 193, // 10: google.privacy.dlp.v2.InspectConfig.min_likelihood:type_name -> google.privacy.dlp.v2.Likelihood 17501 140, // 11: google.privacy.dlp.v2.InspectConfig.limits:type_name -> google.privacy.dlp.v2.InspectConfig.FindingLimits 17502 194, // 12: google.privacy.dlp.v2.InspectConfig.custom_info_types:type_name -> google.privacy.dlp.v2.CustomInfoType 17503 2, // 13: google.privacy.dlp.v2.InspectConfig.content_options:type_name -> google.privacy.dlp.v2.ContentOption 17504 19, // 14: google.privacy.dlp.v2.InspectConfig.rule_set:type_name -> google.privacy.dlp.v2.InspectionRuleSet 17505 7, // 15: google.privacy.dlp.v2.ByteContentItem.type:type_name -> google.privacy.dlp.v2.ByteContentItem.BytesType 17506 23, // 16: google.privacy.dlp.v2.ContentItem.table:type_name -> google.privacy.dlp.v2.Table 17507 21, // 17: google.privacy.dlp.v2.ContentItem.byte_item:type_name -> google.privacy.dlp.v2.ByteContentItem 17508 195, // 18: google.privacy.dlp.v2.Table.headers:type_name -> google.privacy.dlp.v2.FieldId 17509 142, // 19: google.privacy.dlp.v2.Table.rows:type_name -> google.privacy.dlp.v2.Table.Row 17510 25, // 20: google.privacy.dlp.v2.InspectResult.findings:type_name -> google.privacy.dlp.v2.Finding 17511 189, // 21: google.privacy.dlp.v2.Finding.info_type:type_name -> google.privacy.dlp.v2.InfoType 17512 193, // 22: google.privacy.dlp.v2.Finding.likelihood:type_name -> google.privacy.dlp.v2.Likelihood 17513 26, // 23: google.privacy.dlp.v2.Finding.location:type_name -> google.privacy.dlp.v2.Location 17514 196, // 24: google.privacy.dlp.v2.Finding.create_time:type_name -> google.protobuf.Timestamp 17515 60, // 25: google.privacy.dlp.v2.Finding.quote_info:type_name -> google.privacy.dlp.v2.QuoteInfo 17516 143, // 26: google.privacy.dlp.v2.Finding.labels:type_name -> google.privacy.dlp.v2.Finding.LabelsEntry 17517 196, // 27: google.privacy.dlp.v2.Finding.job_create_time:type_name -> google.protobuf.Timestamp 17518 34, // 28: google.privacy.dlp.v2.Location.byte_range:type_name -> google.privacy.dlp.v2.Range 17519 34, // 29: google.privacy.dlp.v2.Location.codepoint_range:type_name -> google.privacy.dlp.v2.Range 17520 27, // 30: google.privacy.dlp.v2.Location.content_locations:type_name -> google.privacy.dlp.v2.ContentLocation 17521 33, // 31: google.privacy.dlp.v2.Location.container:type_name -> google.privacy.dlp.v2.Container 17522 31, // 32: google.privacy.dlp.v2.ContentLocation.record_location:type_name -> google.privacy.dlp.v2.RecordLocation 17523 35, // 33: google.privacy.dlp.v2.ContentLocation.image_location:type_name -> google.privacy.dlp.v2.ImageLocation 17524 30, // 34: google.privacy.dlp.v2.ContentLocation.document_location:type_name -> google.privacy.dlp.v2.DocumentLocation 17525 28, // 35: google.privacy.dlp.v2.ContentLocation.metadata_location:type_name -> google.privacy.dlp.v2.MetadataLocation 17526 196, // 36: google.privacy.dlp.v2.ContentLocation.container_timestamp:type_name -> google.protobuf.Timestamp 17527 3, // 37: google.privacy.dlp.v2.MetadataLocation.type:type_name -> google.privacy.dlp.v2.MetadataType 17528 29, // 38: google.privacy.dlp.v2.MetadataLocation.storage_label:type_name -> google.privacy.dlp.v2.StorageMetadataLabel 17529 197, // 39: google.privacy.dlp.v2.RecordLocation.record_key:type_name -> google.privacy.dlp.v2.RecordKey 17530 195, // 40: google.privacy.dlp.v2.RecordLocation.field_id:type_name -> google.privacy.dlp.v2.FieldId 17531 32, // 41: google.privacy.dlp.v2.RecordLocation.table_location:type_name -> google.privacy.dlp.v2.TableLocation 17532 196, // 42: google.privacy.dlp.v2.Container.update_time:type_name -> google.protobuf.Timestamp 17533 36, // 43: google.privacy.dlp.v2.ImageLocation.bounding_boxes:type_name -> google.privacy.dlp.v2.BoundingBox 17534 20, // 44: google.privacy.dlp.v2.RedactImageRequest.inspect_config:type_name -> google.privacy.dlp.v2.InspectConfig 17535 144, // 45: google.privacy.dlp.v2.RedactImageRequest.image_redaction_configs:type_name -> google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig 17536 21, // 46: google.privacy.dlp.v2.RedactImageRequest.byte_item:type_name -> google.privacy.dlp.v2.ByteContentItem 17537 24, // 47: google.privacy.dlp.v2.RedactImageResponse.inspect_result:type_name -> google.privacy.dlp.v2.InspectResult 17538 62, // 48: google.privacy.dlp.v2.DeidentifyContentRequest.deidentify_config:type_name -> google.privacy.dlp.v2.DeidentifyConfig 17539 20, // 49: google.privacy.dlp.v2.DeidentifyContentRequest.inspect_config:type_name -> google.privacy.dlp.v2.InspectConfig 17540 22, // 50: google.privacy.dlp.v2.DeidentifyContentRequest.item:type_name -> google.privacy.dlp.v2.ContentItem 17541 22, // 51: google.privacy.dlp.v2.DeidentifyContentResponse.item:type_name -> google.privacy.dlp.v2.ContentItem 17542 86, // 52: google.privacy.dlp.v2.DeidentifyContentResponse.overview:type_name -> google.privacy.dlp.v2.TransformationOverview 17543 62, // 53: google.privacy.dlp.v2.ReidentifyContentRequest.reidentify_config:type_name -> google.privacy.dlp.v2.DeidentifyConfig 17544 20, // 54: google.privacy.dlp.v2.ReidentifyContentRequest.inspect_config:type_name -> google.privacy.dlp.v2.InspectConfig 17545 22, // 55: google.privacy.dlp.v2.ReidentifyContentRequest.item:type_name -> google.privacy.dlp.v2.ContentItem 17546 22, // 56: google.privacy.dlp.v2.ReidentifyContentResponse.item:type_name -> google.privacy.dlp.v2.ContentItem 17547 86, // 57: google.privacy.dlp.v2.ReidentifyContentResponse.overview:type_name -> google.privacy.dlp.v2.TransformationOverview 17548 20, // 58: google.privacy.dlp.v2.InspectContentRequest.inspect_config:type_name -> google.privacy.dlp.v2.InspectConfig 17549 22, // 59: google.privacy.dlp.v2.InspectContentRequest.item:type_name -> google.privacy.dlp.v2.ContentItem 17550 24, // 60: google.privacy.dlp.v2.InspectContentResponse.result:type_name -> google.privacy.dlp.v2.InspectResult 17551 198, // 61: google.privacy.dlp.v2.OutputStorageConfig.table:type_name -> google.privacy.dlp.v2.BigQueryTable 17552 8, // 62: google.privacy.dlp.v2.OutputStorageConfig.output_schema:type_name -> google.privacy.dlp.v2.OutputStorageConfig.OutputSchema 17553 189, // 63: google.privacy.dlp.v2.InfoTypeStats.info_type:type_name -> google.privacy.dlp.v2.InfoType 17554 145, // 64: google.privacy.dlp.v2.InspectDataSourceDetails.requested_options:type_name -> google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions 17555 146, // 65: google.privacy.dlp.v2.InspectDataSourceDetails.result:type_name -> google.privacy.dlp.v2.InspectDataSourceDetails.Result 17556 4, // 66: google.privacy.dlp.v2.InfoTypeDescription.supported_by:type_name -> google.privacy.dlp.v2.InfoTypeSupportedBy 17557 50, // 67: google.privacy.dlp.v2.ListInfoTypesResponse.info_types:type_name -> google.privacy.dlp.v2.InfoTypeDescription 17558 56, // 68: google.privacy.dlp.v2.RiskAnalysisJobConfig.privacy_metric:type_name -> google.privacy.dlp.v2.PrivacyMetric 17559 198, // 69: google.privacy.dlp.v2.RiskAnalysisJobConfig.source_table:type_name -> google.privacy.dlp.v2.BigQueryTable 17560 94, // 70: google.privacy.dlp.v2.RiskAnalysisJobConfig.actions:type_name -> google.privacy.dlp.v2.Action 17561 195, // 71: google.privacy.dlp.v2.QuasiId.field:type_name -> google.privacy.dlp.v2.FieldId 17562 189, // 72: google.privacy.dlp.v2.QuasiId.info_type:type_name -> google.privacy.dlp.v2.InfoType 17563 199, // 73: google.privacy.dlp.v2.QuasiId.inferred:type_name -> google.protobuf.Empty 17564 198, // 74: google.privacy.dlp.v2.StatisticalTable.table:type_name -> google.privacy.dlp.v2.BigQueryTable 17565 147, // 75: google.privacy.dlp.v2.StatisticalTable.quasi_ids:type_name -> google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField 17566 195, // 76: google.privacy.dlp.v2.StatisticalTable.relative_frequency:type_name -> google.privacy.dlp.v2.FieldId 17567 148, // 77: google.privacy.dlp.v2.PrivacyMetric.numerical_stats_config:type_name -> google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig 17568 149, // 78: google.privacy.dlp.v2.PrivacyMetric.categorical_stats_config:type_name -> google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig 17569 150, // 79: google.privacy.dlp.v2.PrivacyMetric.k_anonymity_config:type_name -> google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig 17570 151, // 80: google.privacy.dlp.v2.PrivacyMetric.l_diversity_config:type_name -> google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig 17571 152, // 81: google.privacy.dlp.v2.PrivacyMetric.k_map_estimation_config:type_name -> google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig 17572 153, // 82: google.privacy.dlp.v2.PrivacyMetric.delta_presence_estimation_config:type_name -> google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig 17573 56, // 83: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.requested_privacy_metric:type_name -> google.privacy.dlp.v2.PrivacyMetric 17574 198, // 84: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.requested_source_table:type_name -> google.privacy.dlp.v2.BigQueryTable 17575 157, // 85: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.numerical_stats_result:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult 17576 158, // 86: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.categorical_stats_result:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult 17577 159, // 87: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.k_anonymity_result:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult 17578 160, // 88: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.l_diversity_result:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult 17579 161, // 89: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.k_map_estimation_result:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult 17580 162, // 90: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.delta_presence_estimation_result:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult 17581 59, // 91: google.privacy.dlp.v2.ValueFrequency.value:type_name -> google.privacy.dlp.v2.Value 17582 196, // 92: google.privacy.dlp.v2.Value.timestamp_value:type_name -> google.protobuf.Timestamp 17583 200, // 93: google.privacy.dlp.v2.Value.time_value:type_name -> google.type.TimeOfDay 17584 201, // 94: google.privacy.dlp.v2.Value.date_value:type_name -> google.type.Date 17585 202, // 95: google.privacy.dlp.v2.Value.day_of_week_value:type_name -> google.type.DayOfWeek 17586 61, // 96: google.privacy.dlp.v2.QuoteInfo.date_time:type_name -> google.privacy.dlp.v2.DateTime 17587 201, // 97: google.privacy.dlp.v2.DateTime.date:type_name -> google.type.Date 17588 202, // 98: google.privacy.dlp.v2.DateTime.day_of_week:type_name -> google.type.DayOfWeek 17589 200, // 99: google.privacy.dlp.v2.DateTime.time:type_name -> google.type.TimeOfDay 17590 172, // 100: google.privacy.dlp.v2.DateTime.time_zone:type_name -> google.privacy.dlp.v2.DateTime.TimeZone 17591 81, // 101: google.privacy.dlp.v2.DeidentifyConfig.info_type_transformations:type_name -> google.privacy.dlp.v2.InfoTypeTransformations 17592 83, // 102: google.privacy.dlp.v2.DeidentifyConfig.record_transformations:type_name -> google.privacy.dlp.v2.RecordTransformations 17593 63, // 103: google.privacy.dlp.v2.DeidentifyConfig.transformation_error_handling:type_name -> google.privacy.dlp.v2.TransformationErrorHandling 17594 173, // 104: google.privacy.dlp.v2.TransformationErrorHandling.throw_error:type_name -> google.privacy.dlp.v2.TransformationErrorHandling.ThrowError 17595 174, // 105: google.privacy.dlp.v2.TransformationErrorHandling.leave_untransformed:type_name -> google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformed 17596 68, // 106: google.privacy.dlp.v2.PrimitiveTransformation.replace_config:type_name -> google.privacy.dlp.v2.ReplaceValueConfig 17597 70, // 107: google.privacy.dlp.v2.PrimitiveTransformation.redact_config:type_name -> google.privacy.dlp.v2.RedactConfig 17598 72, // 108: google.privacy.dlp.v2.PrimitiveTransformation.character_mask_config:type_name -> google.privacy.dlp.v2.CharacterMaskConfig 17599 75, // 109: google.privacy.dlp.v2.PrimitiveTransformation.crypto_replace_ffx_fpe_config:type_name -> google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig 17600 73, // 110: google.privacy.dlp.v2.PrimitiveTransformation.fixed_size_bucketing_config:type_name -> google.privacy.dlp.v2.FixedSizeBucketingConfig 17601 74, // 111: google.privacy.dlp.v2.PrimitiveTransformation.bucketing_config:type_name -> google.privacy.dlp.v2.BucketingConfig 17602 69, // 112: google.privacy.dlp.v2.PrimitiveTransformation.replace_with_info_type_config:type_name -> google.privacy.dlp.v2.ReplaceWithInfoTypeConfig 17603 65, // 113: google.privacy.dlp.v2.PrimitiveTransformation.time_part_config:type_name -> google.privacy.dlp.v2.TimePartConfig 17604 66, // 114: google.privacy.dlp.v2.PrimitiveTransformation.crypto_hash_config:type_name -> google.privacy.dlp.v2.CryptoHashConfig 17605 80, // 115: google.privacy.dlp.v2.PrimitiveTransformation.date_shift_config:type_name -> google.privacy.dlp.v2.DateShiftConfig 17606 67, // 116: google.privacy.dlp.v2.PrimitiveTransformation.crypto_deterministic_config:type_name -> google.privacy.dlp.v2.CryptoDeterministicConfig 17607 9, // 117: google.privacy.dlp.v2.TimePartConfig.part_to_extract:type_name -> google.privacy.dlp.v2.TimePartConfig.TimePart 17608 76, // 118: google.privacy.dlp.v2.CryptoHashConfig.crypto_key:type_name -> google.privacy.dlp.v2.CryptoKey 17609 76, // 119: google.privacy.dlp.v2.CryptoDeterministicConfig.crypto_key:type_name -> google.privacy.dlp.v2.CryptoKey 17610 189, // 120: google.privacy.dlp.v2.CryptoDeterministicConfig.surrogate_info_type:type_name -> google.privacy.dlp.v2.InfoType 17611 195, // 121: google.privacy.dlp.v2.CryptoDeterministicConfig.context:type_name -> google.privacy.dlp.v2.FieldId 17612 59, // 122: google.privacy.dlp.v2.ReplaceValueConfig.new_value:type_name -> google.privacy.dlp.v2.Value 17613 10, // 123: google.privacy.dlp.v2.CharsToIgnore.common_characters_to_ignore:type_name -> google.privacy.dlp.v2.CharsToIgnore.CommonCharsToIgnore 17614 71, // 124: google.privacy.dlp.v2.CharacterMaskConfig.characters_to_ignore:type_name -> google.privacy.dlp.v2.CharsToIgnore 17615 59, // 125: google.privacy.dlp.v2.FixedSizeBucketingConfig.lower_bound:type_name -> google.privacy.dlp.v2.Value 17616 59, // 126: google.privacy.dlp.v2.FixedSizeBucketingConfig.upper_bound:type_name -> google.privacy.dlp.v2.Value 17617 175, // 127: google.privacy.dlp.v2.BucketingConfig.buckets:type_name -> google.privacy.dlp.v2.BucketingConfig.Bucket 17618 76, // 128: google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.crypto_key:type_name -> google.privacy.dlp.v2.CryptoKey 17619 195, // 129: google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.context:type_name -> google.privacy.dlp.v2.FieldId 17620 11, // 130: google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.common_alphabet:type_name -> google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet 17621 189, // 131: google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.surrogate_info_type:type_name -> google.privacy.dlp.v2.InfoType 17622 77, // 132: google.privacy.dlp.v2.CryptoKey.transient:type_name -> google.privacy.dlp.v2.TransientCryptoKey 17623 78, // 133: google.privacy.dlp.v2.CryptoKey.unwrapped:type_name -> google.privacy.dlp.v2.UnwrappedCryptoKey 17624 79, // 134: google.privacy.dlp.v2.CryptoKey.kms_wrapped:type_name -> google.privacy.dlp.v2.KmsWrappedCryptoKey 17625 195, // 135: google.privacy.dlp.v2.DateShiftConfig.context:type_name -> google.privacy.dlp.v2.FieldId 17626 76, // 136: google.privacy.dlp.v2.DateShiftConfig.crypto_key:type_name -> google.privacy.dlp.v2.CryptoKey 17627 176, // 137: google.privacy.dlp.v2.InfoTypeTransformations.transformations:type_name -> google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation 17628 195, // 138: google.privacy.dlp.v2.FieldTransformation.fields:type_name -> google.privacy.dlp.v2.FieldId 17629 85, // 139: google.privacy.dlp.v2.FieldTransformation.condition:type_name -> google.privacy.dlp.v2.RecordCondition 17630 64, // 140: google.privacy.dlp.v2.FieldTransformation.primitive_transformation:type_name -> google.privacy.dlp.v2.PrimitiveTransformation 17631 81, // 141: google.privacy.dlp.v2.FieldTransformation.info_type_transformations:type_name -> google.privacy.dlp.v2.InfoTypeTransformations 17632 82, // 142: google.privacy.dlp.v2.RecordTransformations.field_transformations:type_name -> google.privacy.dlp.v2.FieldTransformation 17633 84, // 143: google.privacy.dlp.v2.RecordTransformations.record_suppressions:type_name -> google.privacy.dlp.v2.RecordSuppression 17634 85, // 144: google.privacy.dlp.v2.RecordSuppression.condition:type_name -> google.privacy.dlp.v2.RecordCondition 17635 179, // 145: google.privacy.dlp.v2.RecordCondition.expressions:type_name -> google.privacy.dlp.v2.RecordCondition.Expressions 17636 87, // 146: google.privacy.dlp.v2.TransformationOverview.transformation_summaries:type_name -> google.privacy.dlp.v2.TransformationSummary 17637 189, // 147: google.privacy.dlp.v2.TransformationSummary.info_type:type_name -> google.privacy.dlp.v2.InfoType 17638 195, // 148: google.privacy.dlp.v2.TransformationSummary.field:type_name -> google.privacy.dlp.v2.FieldId 17639 64, // 149: google.privacy.dlp.v2.TransformationSummary.transformation:type_name -> google.privacy.dlp.v2.PrimitiveTransformation 17640 82, // 150: google.privacy.dlp.v2.TransformationSummary.field_transformations:type_name -> google.privacy.dlp.v2.FieldTransformation 17641 84, // 151: google.privacy.dlp.v2.TransformationSummary.record_suppress:type_name -> google.privacy.dlp.v2.RecordSuppression 17642 180, // 152: google.privacy.dlp.v2.TransformationSummary.results:type_name -> google.privacy.dlp.v2.TransformationSummary.SummaryResult 17643 203, // 153: google.privacy.dlp.v2.Schedule.recurrence_period_duration:type_name -> google.protobuf.Duration 17644 196, // 154: google.privacy.dlp.v2.InspectTemplate.create_time:type_name -> google.protobuf.Timestamp 17645 196, // 155: google.privacy.dlp.v2.InspectTemplate.update_time:type_name -> google.protobuf.Timestamp 17646 20, // 156: google.privacy.dlp.v2.InspectTemplate.inspect_config:type_name -> google.privacy.dlp.v2.InspectConfig 17647 196, // 157: google.privacy.dlp.v2.DeidentifyTemplate.create_time:type_name -> google.protobuf.Timestamp 17648 196, // 158: google.privacy.dlp.v2.DeidentifyTemplate.update_time:type_name -> google.protobuf.Timestamp 17649 62, // 159: google.privacy.dlp.v2.DeidentifyTemplate.deidentify_config:type_name -> google.privacy.dlp.v2.DeidentifyConfig 17650 204, // 160: google.privacy.dlp.v2.Error.details:type_name -> google.rpc.Status 17651 196, // 161: google.privacy.dlp.v2.Error.timestamps:type_name -> google.protobuf.Timestamp 17652 109, // 162: google.privacy.dlp.v2.JobTrigger.inspect_job:type_name -> google.privacy.dlp.v2.InspectJobConfig 17653 181, // 163: google.privacy.dlp.v2.JobTrigger.triggers:type_name -> google.privacy.dlp.v2.JobTrigger.Trigger 17654 92, // 164: google.privacy.dlp.v2.JobTrigger.errors:type_name -> google.privacy.dlp.v2.Error 17655 196, // 165: google.privacy.dlp.v2.JobTrigger.create_time:type_name -> google.protobuf.Timestamp 17656 196, // 166: google.privacy.dlp.v2.JobTrigger.update_time:type_name -> google.protobuf.Timestamp 17657 196, // 167: google.privacy.dlp.v2.JobTrigger.last_run_time:type_name -> google.protobuf.Timestamp 17658 14, // 168: google.privacy.dlp.v2.JobTrigger.status:type_name -> google.privacy.dlp.v2.JobTrigger.Status 17659 182, // 169: google.privacy.dlp.v2.Action.save_findings:type_name -> google.privacy.dlp.v2.Action.SaveFindings 17660 183, // 170: google.privacy.dlp.v2.Action.pub_sub:type_name -> google.privacy.dlp.v2.Action.PublishToPubSub 17661 184, // 171: google.privacy.dlp.v2.Action.publish_summary_to_cscc:type_name -> google.privacy.dlp.v2.Action.PublishSummaryToCscc 17662 185, // 172: google.privacy.dlp.v2.Action.publish_findings_to_cloud_data_catalog:type_name -> google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalog 17663 186, // 173: google.privacy.dlp.v2.Action.job_notification_emails:type_name -> google.privacy.dlp.v2.Action.JobNotificationEmails 17664 187, // 174: google.privacy.dlp.v2.Action.publish_to_stackdriver:type_name -> google.privacy.dlp.v2.Action.PublishToStackdriver 17665 90, // 175: google.privacy.dlp.v2.CreateInspectTemplateRequest.inspect_template:type_name -> google.privacy.dlp.v2.InspectTemplate 17666 90, // 176: google.privacy.dlp.v2.UpdateInspectTemplateRequest.inspect_template:type_name -> google.privacy.dlp.v2.InspectTemplate 17667 205, // 177: google.privacy.dlp.v2.UpdateInspectTemplateRequest.update_mask:type_name -> google.protobuf.FieldMask 17668 90, // 178: google.privacy.dlp.v2.ListInspectTemplatesResponse.inspect_templates:type_name -> google.privacy.dlp.v2.InspectTemplate 17669 93, // 179: google.privacy.dlp.v2.CreateJobTriggerRequest.job_trigger:type_name -> google.privacy.dlp.v2.JobTrigger 17670 93, // 180: google.privacy.dlp.v2.UpdateJobTriggerRequest.job_trigger:type_name -> google.privacy.dlp.v2.JobTrigger 17671 205, // 181: google.privacy.dlp.v2.UpdateJobTriggerRequest.update_mask:type_name -> google.protobuf.FieldMask 17672 109, // 182: google.privacy.dlp.v2.CreateDlpJobRequest.inspect_job:type_name -> google.privacy.dlp.v2.InspectJobConfig 17673 53, // 183: google.privacy.dlp.v2.CreateDlpJobRequest.risk_job:type_name -> google.privacy.dlp.v2.RiskAnalysisJobConfig 17674 93, // 184: google.privacy.dlp.v2.ListJobTriggersResponse.job_triggers:type_name -> google.privacy.dlp.v2.JobTrigger 17675 206, // 185: google.privacy.dlp.v2.InspectJobConfig.storage_config:type_name -> google.privacy.dlp.v2.StorageConfig 17676 20, // 186: google.privacy.dlp.v2.InspectJobConfig.inspect_config:type_name -> google.privacy.dlp.v2.InspectConfig 17677 94, // 187: google.privacy.dlp.v2.InspectJobConfig.actions:type_name -> google.privacy.dlp.v2.Action 17678 5, // 188: google.privacy.dlp.v2.DlpJob.type:type_name -> google.privacy.dlp.v2.DlpJobType 17679 15, // 189: google.privacy.dlp.v2.DlpJob.state:type_name -> google.privacy.dlp.v2.DlpJob.JobState 17680 57, // 190: google.privacy.dlp.v2.DlpJob.risk_details:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails 17681 48, // 191: google.privacy.dlp.v2.DlpJob.inspect_details:type_name -> google.privacy.dlp.v2.InspectDataSourceDetails 17682 196, // 192: google.privacy.dlp.v2.DlpJob.create_time:type_name -> google.protobuf.Timestamp 17683 196, // 193: google.privacy.dlp.v2.DlpJob.start_time:type_name -> google.protobuf.Timestamp 17684 196, // 194: google.privacy.dlp.v2.DlpJob.end_time:type_name -> google.protobuf.Timestamp 17685 92, // 195: google.privacy.dlp.v2.DlpJob.errors:type_name -> google.privacy.dlp.v2.Error 17686 5, // 196: google.privacy.dlp.v2.ListDlpJobsRequest.type:type_name -> google.privacy.dlp.v2.DlpJobType 17687 110, // 197: google.privacy.dlp.v2.ListDlpJobsResponse.jobs:type_name -> google.privacy.dlp.v2.DlpJob 17688 91, // 198: google.privacy.dlp.v2.CreateDeidentifyTemplateRequest.deidentify_template:type_name -> google.privacy.dlp.v2.DeidentifyTemplate 17689 91, // 199: google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest.deidentify_template:type_name -> google.privacy.dlp.v2.DeidentifyTemplate 17690 205, // 200: google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest.update_mask:type_name -> google.protobuf.FieldMask 17691 91, // 201: google.privacy.dlp.v2.ListDeidentifyTemplatesResponse.deidentify_templates:type_name -> google.privacy.dlp.v2.DeidentifyTemplate 17692 207, // 202: google.privacy.dlp.v2.LargeCustomDictionaryConfig.output_path:type_name -> google.privacy.dlp.v2.CloudStoragePath 17693 208, // 203: google.privacy.dlp.v2.LargeCustomDictionaryConfig.cloud_storage_file_set:type_name -> google.privacy.dlp.v2.CloudStorageFileSet 17694 209, // 204: google.privacy.dlp.v2.LargeCustomDictionaryConfig.big_query_field:type_name -> google.privacy.dlp.v2.BigQueryField 17695 123, // 205: google.privacy.dlp.v2.StoredInfoTypeConfig.large_custom_dictionary:type_name -> google.privacy.dlp.v2.LargeCustomDictionaryConfig 17696 190, // 206: google.privacy.dlp.v2.StoredInfoTypeConfig.dictionary:type_name -> google.privacy.dlp.v2.CustomInfoType.Dictionary 17697 191, // 207: google.privacy.dlp.v2.StoredInfoTypeConfig.regex:type_name -> google.privacy.dlp.v2.CustomInfoType.Regex 17698 124, // 208: google.privacy.dlp.v2.StoredInfoTypeStats.large_custom_dictionary:type_name -> google.privacy.dlp.v2.LargeCustomDictionaryStats 17699 125, // 209: google.privacy.dlp.v2.StoredInfoTypeVersion.config:type_name -> google.privacy.dlp.v2.StoredInfoTypeConfig 17700 196, // 210: google.privacy.dlp.v2.StoredInfoTypeVersion.create_time:type_name -> google.protobuf.Timestamp 17701 6, // 211: google.privacy.dlp.v2.StoredInfoTypeVersion.state:type_name -> google.privacy.dlp.v2.StoredInfoTypeState 17702 92, // 212: google.privacy.dlp.v2.StoredInfoTypeVersion.errors:type_name -> google.privacy.dlp.v2.Error 17703 126, // 213: google.privacy.dlp.v2.StoredInfoTypeVersion.stats:type_name -> google.privacy.dlp.v2.StoredInfoTypeStats 17704 127, // 214: google.privacy.dlp.v2.StoredInfoType.current_version:type_name -> google.privacy.dlp.v2.StoredInfoTypeVersion 17705 127, // 215: google.privacy.dlp.v2.StoredInfoType.pending_versions:type_name -> google.privacy.dlp.v2.StoredInfoTypeVersion 17706 125, // 216: google.privacy.dlp.v2.CreateStoredInfoTypeRequest.config:type_name -> google.privacy.dlp.v2.StoredInfoTypeConfig 17707 125, // 217: google.privacy.dlp.v2.UpdateStoredInfoTypeRequest.config:type_name -> google.privacy.dlp.v2.StoredInfoTypeConfig 17708 205, // 218: google.privacy.dlp.v2.UpdateStoredInfoTypeRequest.update_mask:type_name -> google.protobuf.FieldMask 17709 128, // 219: google.privacy.dlp.v2.ListStoredInfoTypesResponse.stored_info_types:type_name -> google.privacy.dlp.v2.StoredInfoType 17710 137, // 220: google.privacy.dlp.v2.HybridInspectJobTriggerRequest.hybrid_item:type_name -> google.privacy.dlp.v2.HybridContentItem 17711 137, // 221: google.privacy.dlp.v2.HybridInspectDlpJobRequest.hybrid_item:type_name -> google.privacy.dlp.v2.HybridContentItem 17712 22, // 222: google.privacy.dlp.v2.HybridContentItem.item:type_name -> google.privacy.dlp.v2.ContentItem 17713 138, // 223: google.privacy.dlp.v2.HybridContentItem.finding_details:type_name -> google.privacy.dlp.v2.HybridFindingDetails 17714 33, // 224: google.privacy.dlp.v2.HybridFindingDetails.container_details:type_name -> google.privacy.dlp.v2.Container 17715 210, // 225: google.privacy.dlp.v2.HybridFindingDetails.table_options:type_name -> google.privacy.dlp.v2.TableOptions 17716 188, // 226: google.privacy.dlp.v2.HybridFindingDetails.labels:type_name -> google.privacy.dlp.v2.HybridFindingDetails.LabelsEntry 17717 141, // 227: google.privacy.dlp.v2.InspectConfig.FindingLimits.max_findings_per_info_type:type_name -> google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit 17718 189, // 228: google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit.info_type:type_name -> google.privacy.dlp.v2.InfoType 17719 59, // 229: google.privacy.dlp.v2.Table.Row.values:type_name -> google.privacy.dlp.v2.Value 17720 189, // 230: google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig.info_type:type_name -> google.privacy.dlp.v2.InfoType 17721 38, // 231: google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig.redaction_color:type_name -> google.privacy.dlp.v2.Color 17722 90, // 232: google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions.snapshot_inspect_template:type_name -> google.privacy.dlp.v2.InspectTemplate 17723 109, // 233: google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions.job_config:type_name -> google.privacy.dlp.v2.InspectJobConfig 17724 47, // 234: google.privacy.dlp.v2.InspectDataSourceDetails.Result.info_type_stats:type_name -> google.privacy.dlp.v2.InfoTypeStats 17725 49, // 235: google.privacy.dlp.v2.InspectDataSourceDetails.Result.hybrid_stats:type_name -> google.privacy.dlp.v2.HybridInspectStatistics 17726 195, // 236: google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField.field:type_name -> google.privacy.dlp.v2.FieldId 17727 195, // 237: google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig.field:type_name -> google.privacy.dlp.v2.FieldId 17728 195, // 238: google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig.field:type_name -> google.privacy.dlp.v2.FieldId 17729 195, // 239: google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig.quasi_ids:type_name -> google.privacy.dlp.v2.FieldId 17730 211, // 240: google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig.entity_id:type_name -> google.privacy.dlp.v2.EntityId 17731 195, // 241: google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig.quasi_ids:type_name -> google.privacy.dlp.v2.FieldId 17732 195, // 242: google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig.sensitive_attribute:type_name -> google.privacy.dlp.v2.FieldId 17733 154, // 243: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.quasi_ids:type_name -> google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField 17734 155, // 244: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.auxiliary_tables:type_name -> google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable 17735 54, // 245: google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig.quasi_ids:type_name -> google.privacy.dlp.v2.QuasiId 17736 55, // 246: google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig.auxiliary_tables:type_name -> google.privacy.dlp.v2.StatisticalTable 17737 195, // 247: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField.field:type_name -> google.privacy.dlp.v2.FieldId 17738 189, // 248: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField.info_type:type_name -> google.privacy.dlp.v2.InfoType 17739 199, // 249: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField.inferred:type_name -> google.protobuf.Empty 17740 198, // 250: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.table:type_name -> google.privacy.dlp.v2.BigQueryTable 17741 156, // 251: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.quasi_ids:type_name -> google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField 17742 195, // 252: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.relative_frequency:type_name -> google.privacy.dlp.v2.FieldId 17743 195, // 253: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField.field:type_name -> google.privacy.dlp.v2.FieldId 17744 59, // 254: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult.min_value:type_name -> google.privacy.dlp.v2.Value 17745 59, // 255: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult.max_value:type_name -> google.privacy.dlp.v2.Value 17746 59, // 256: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult.quantile_values:type_name -> google.privacy.dlp.v2.Value 17747 163, // 257: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.value_frequency_histogram_buckets:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket 17748 165, // 258: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.equivalence_class_histogram_buckets:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket 17749 167, // 259: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.sensitive_value_frequency_histogram_buckets:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket 17750 169, // 260: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.k_map_estimation_histogram:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket 17751 171, // 261: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.delta_presence_estimation_histogram:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket 17752 58, // 262: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket.bucket_values:type_name -> google.privacy.dlp.v2.ValueFrequency 17753 59, // 263: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass.quasi_ids_values:type_name -> google.privacy.dlp.v2.Value 17754 164, // 264: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket.bucket_values:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass 17755 59, // 265: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass.quasi_ids_values:type_name -> google.privacy.dlp.v2.Value 17756 58, // 266: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass.top_sensitive_values:type_name -> google.privacy.dlp.v2.ValueFrequency 17757 166, // 267: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket.bucket_values:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass 17758 59, // 268: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues.quasi_ids_values:type_name -> google.privacy.dlp.v2.Value 17759 168, // 269: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket.bucket_values:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues 17760 59, // 270: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues.quasi_ids_values:type_name -> google.privacy.dlp.v2.Value 17761 170, // 271: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket.bucket_values:type_name -> google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues 17762 59, // 272: google.privacy.dlp.v2.BucketingConfig.Bucket.min:type_name -> google.privacy.dlp.v2.Value 17763 59, // 273: google.privacy.dlp.v2.BucketingConfig.Bucket.max:type_name -> google.privacy.dlp.v2.Value 17764 59, // 274: google.privacy.dlp.v2.BucketingConfig.Bucket.replacement_value:type_name -> google.privacy.dlp.v2.Value 17765 189, // 275: google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation.info_types:type_name -> google.privacy.dlp.v2.InfoType 17766 64, // 276: google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation.primitive_transformation:type_name -> google.privacy.dlp.v2.PrimitiveTransformation 17767 195, // 277: google.privacy.dlp.v2.RecordCondition.Condition.field:type_name -> google.privacy.dlp.v2.FieldId 17768 0, // 278: google.privacy.dlp.v2.RecordCondition.Condition.operator:type_name -> google.privacy.dlp.v2.RelationalOperator 17769 59, // 279: google.privacy.dlp.v2.RecordCondition.Condition.value:type_name -> google.privacy.dlp.v2.Value 17770 177, // 280: google.privacy.dlp.v2.RecordCondition.Conditions.conditions:type_name -> google.privacy.dlp.v2.RecordCondition.Condition 17771 12, // 281: google.privacy.dlp.v2.RecordCondition.Expressions.logical_operator:type_name -> google.privacy.dlp.v2.RecordCondition.Expressions.LogicalOperator 17772 178, // 282: google.privacy.dlp.v2.RecordCondition.Expressions.conditions:type_name -> google.privacy.dlp.v2.RecordCondition.Conditions 17773 13, // 283: google.privacy.dlp.v2.TransformationSummary.SummaryResult.code:type_name -> google.privacy.dlp.v2.TransformationSummary.TransformationResultCode 17774 88, // 284: google.privacy.dlp.v2.JobTrigger.Trigger.schedule:type_name -> google.privacy.dlp.v2.Schedule 17775 89, // 285: google.privacy.dlp.v2.JobTrigger.Trigger.manual:type_name -> google.privacy.dlp.v2.Manual 17776 46, // 286: google.privacy.dlp.v2.Action.SaveFindings.output_config:type_name -> google.privacy.dlp.v2.OutputStorageConfig 17777 44, // 287: google.privacy.dlp.v2.DlpService.InspectContent:input_type -> google.privacy.dlp.v2.InspectContentRequest 17778 37, // 288: google.privacy.dlp.v2.DlpService.RedactImage:input_type -> google.privacy.dlp.v2.RedactImageRequest 17779 40, // 289: google.privacy.dlp.v2.DlpService.DeidentifyContent:input_type -> google.privacy.dlp.v2.DeidentifyContentRequest 17780 42, // 290: google.privacy.dlp.v2.DlpService.ReidentifyContent:input_type -> google.privacy.dlp.v2.ReidentifyContentRequest 17781 51, // 291: google.privacy.dlp.v2.DlpService.ListInfoTypes:input_type -> google.privacy.dlp.v2.ListInfoTypesRequest 17782 95, // 292: google.privacy.dlp.v2.DlpService.CreateInspectTemplate:input_type -> google.privacy.dlp.v2.CreateInspectTemplateRequest 17783 96, // 293: google.privacy.dlp.v2.DlpService.UpdateInspectTemplate:input_type -> google.privacy.dlp.v2.UpdateInspectTemplateRequest 17784 97, // 294: google.privacy.dlp.v2.DlpService.GetInspectTemplate:input_type -> google.privacy.dlp.v2.GetInspectTemplateRequest 17785 98, // 295: google.privacy.dlp.v2.DlpService.ListInspectTemplates:input_type -> google.privacy.dlp.v2.ListInspectTemplatesRequest 17786 100, // 296: google.privacy.dlp.v2.DlpService.DeleteInspectTemplate:input_type -> google.privacy.dlp.v2.DeleteInspectTemplateRequest 17787 117, // 297: google.privacy.dlp.v2.DlpService.CreateDeidentifyTemplate:input_type -> google.privacy.dlp.v2.CreateDeidentifyTemplateRequest 17788 118, // 298: google.privacy.dlp.v2.DlpService.UpdateDeidentifyTemplate:input_type -> google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest 17789 119, // 299: google.privacy.dlp.v2.DlpService.GetDeidentifyTemplate:input_type -> google.privacy.dlp.v2.GetDeidentifyTemplateRequest 17790 120, // 300: google.privacy.dlp.v2.DlpService.ListDeidentifyTemplates:input_type -> google.privacy.dlp.v2.ListDeidentifyTemplatesRequest 17791 122, // 301: google.privacy.dlp.v2.DlpService.DeleteDeidentifyTemplate:input_type -> google.privacy.dlp.v2.DeleteDeidentifyTemplateRequest 17792 101, // 302: google.privacy.dlp.v2.DlpService.CreateJobTrigger:input_type -> google.privacy.dlp.v2.CreateJobTriggerRequest 17793 103, // 303: google.privacy.dlp.v2.DlpService.UpdateJobTrigger:input_type -> google.privacy.dlp.v2.UpdateJobTriggerRequest 17794 135, // 304: google.privacy.dlp.v2.DlpService.HybridInspectJobTrigger:input_type -> google.privacy.dlp.v2.HybridInspectJobTriggerRequest 17795 104, // 305: google.privacy.dlp.v2.DlpService.GetJobTrigger:input_type -> google.privacy.dlp.v2.GetJobTriggerRequest 17796 106, // 306: google.privacy.dlp.v2.DlpService.ListJobTriggers:input_type -> google.privacy.dlp.v2.ListJobTriggersRequest 17797 108, // 307: google.privacy.dlp.v2.DlpService.DeleteJobTrigger:input_type -> google.privacy.dlp.v2.DeleteJobTriggerRequest 17798 102, // 308: google.privacy.dlp.v2.DlpService.ActivateJobTrigger:input_type -> google.privacy.dlp.v2.ActivateJobTriggerRequest 17799 105, // 309: google.privacy.dlp.v2.DlpService.CreateDlpJob:input_type -> google.privacy.dlp.v2.CreateDlpJobRequest 17800 112, // 310: google.privacy.dlp.v2.DlpService.ListDlpJobs:input_type -> google.privacy.dlp.v2.ListDlpJobsRequest 17801 111, // 311: google.privacy.dlp.v2.DlpService.GetDlpJob:input_type -> google.privacy.dlp.v2.GetDlpJobRequest 17802 116, // 312: google.privacy.dlp.v2.DlpService.DeleteDlpJob:input_type -> google.privacy.dlp.v2.DeleteDlpJobRequest 17803 114, // 313: google.privacy.dlp.v2.DlpService.CancelDlpJob:input_type -> google.privacy.dlp.v2.CancelDlpJobRequest 17804 129, // 314: google.privacy.dlp.v2.DlpService.CreateStoredInfoType:input_type -> google.privacy.dlp.v2.CreateStoredInfoTypeRequest 17805 130, // 315: google.privacy.dlp.v2.DlpService.UpdateStoredInfoType:input_type -> google.privacy.dlp.v2.UpdateStoredInfoTypeRequest 17806 131, // 316: google.privacy.dlp.v2.DlpService.GetStoredInfoType:input_type -> google.privacy.dlp.v2.GetStoredInfoTypeRequest 17807 132, // 317: google.privacy.dlp.v2.DlpService.ListStoredInfoTypes:input_type -> google.privacy.dlp.v2.ListStoredInfoTypesRequest 17808 134, // 318: google.privacy.dlp.v2.DlpService.DeleteStoredInfoType:input_type -> google.privacy.dlp.v2.DeleteStoredInfoTypeRequest 17809 136, // 319: google.privacy.dlp.v2.DlpService.HybridInspectDlpJob:input_type -> google.privacy.dlp.v2.HybridInspectDlpJobRequest 17810 115, // 320: google.privacy.dlp.v2.DlpService.FinishDlpJob:input_type -> google.privacy.dlp.v2.FinishDlpJobRequest 17811 45, // 321: google.privacy.dlp.v2.DlpService.InspectContent:output_type -> google.privacy.dlp.v2.InspectContentResponse 17812 39, // 322: google.privacy.dlp.v2.DlpService.RedactImage:output_type -> google.privacy.dlp.v2.RedactImageResponse 17813 41, // 323: google.privacy.dlp.v2.DlpService.DeidentifyContent:output_type -> google.privacy.dlp.v2.DeidentifyContentResponse 17814 43, // 324: google.privacy.dlp.v2.DlpService.ReidentifyContent:output_type -> google.privacy.dlp.v2.ReidentifyContentResponse 17815 52, // 325: google.privacy.dlp.v2.DlpService.ListInfoTypes:output_type -> google.privacy.dlp.v2.ListInfoTypesResponse 17816 90, // 326: google.privacy.dlp.v2.DlpService.CreateInspectTemplate:output_type -> google.privacy.dlp.v2.InspectTemplate 17817 90, // 327: google.privacy.dlp.v2.DlpService.UpdateInspectTemplate:output_type -> google.privacy.dlp.v2.InspectTemplate 17818 90, // 328: google.privacy.dlp.v2.DlpService.GetInspectTemplate:output_type -> google.privacy.dlp.v2.InspectTemplate 17819 99, // 329: google.privacy.dlp.v2.DlpService.ListInspectTemplates:output_type -> google.privacy.dlp.v2.ListInspectTemplatesResponse 17820 199, // 330: google.privacy.dlp.v2.DlpService.DeleteInspectTemplate:output_type -> google.protobuf.Empty 17821 91, // 331: google.privacy.dlp.v2.DlpService.CreateDeidentifyTemplate:output_type -> google.privacy.dlp.v2.DeidentifyTemplate 17822 91, // 332: google.privacy.dlp.v2.DlpService.UpdateDeidentifyTemplate:output_type -> google.privacy.dlp.v2.DeidentifyTemplate 17823 91, // 333: google.privacy.dlp.v2.DlpService.GetDeidentifyTemplate:output_type -> google.privacy.dlp.v2.DeidentifyTemplate 17824 121, // 334: google.privacy.dlp.v2.DlpService.ListDeidentifyTemplates:output_type -> google.privacy.dlp.v2.ListDeidentifyTemplatesResponse 17825 199, // 335: google.privacy.dlp.v2.DlpService.DeleteDeidentifyTemplate:output_type -> google.protobuf.Empty 17826 93, // 336: google.privacy.dlp.v2.DlpService.CreateJobTrigger:output_type -> google.privacy.dlp.v2.JobTrigger 17827 93, // 337: google.privacy.dlp.v2.DlpService.UpdateJobTrigger:output_type -> google.privacy.dlp.v2.JobTrigger 17828 139, // 338: google.privacy.dlp.v2.DlpService.HybridInspectJobTrigger:output_type -> google.privacy.dlp.v2.HybridInspectResponse 17829 93, // 339: google.privacy.dlp.v2.DlpService.GetJobTrigger:output_type -> google.privacy.dlp.v2.JobTrigger 17830 107, // 340: google.privacy.dlp.v2.DlpService.ListJobTriggers:output_type -> google.privacy.dlp.v2.ListJobTriggersResponse 17831 199, // 341: google.privacy.dlp.v2.DlpService.DeleteJobTrigger:output_type -> google.protobuf.Empty 17832 110, // 342: google.privacy.dlp.v2.DlpService.ActivateJobTrigger:output_type -> google.privacy.dlp.v2.DlpJob 17833 110, // 343: google.privacy.dlp.v2.DlpService.CreateDlpJob:output_type -> google.privacy.dlp.v2.DlpJob 17834 113, // 344: google.privacy.dlp.v2.DlpService.ListDlpJobs:output_type -> google.privacy.dlp.v2.ListDlpJobsResponse 17835 110, // 345: google.privacy.dlp.v2.DlpService.GetDlpJob:output_type -> google.privacy.dlp.v2.DlpJob 17836 199, // 346: google.privacy.dlp.v2.DlpService.DeleteDlpJob:output_type -> google.protobuf.Empty 17837 199, // 347: google.privacy.dlp.v2.DlpService.CancelDlpJob:output_type -> google.protobuf.Empty 17838 128, // 348: google.privacy.dlp.v2.DlpService.CreateStoredInfoType:output_type -> google.privacy.dlp.v2.StoredInfoType 17839 128, // 349: google.privacy.dlp.v2.DlpService.UpdateStoredInfoType:output_type -> google.privacy.dlp.v2.StoredInfoType 17840 128, // 350: google.privacy.dlp.v2.DlpService.GetStoredInfoType:output_type -> google.privacy.dlp.v2.StoredInfoType 17841 133, // 351: google.privacy.dlp.v2.DlpService.ListStoredInfoTypes:output_type -> google.privacy.dlp.v2.ListStoredInfoTypesResponse 17842 199, // 352: google.privacy.dlp.v2.DlpService.DeleteStoredInfoType:output_type -> google.protobuf.Empty 17843 139, // 353: google.privacy.dlp.v2.DlpService.HybridInspectDlpJob:output_type -> google.privacy.dlp.v2.HybridInspectResponse 17844 199, // 354: google.privacy.dlp.v2.DlpService.FinishDlpJob:output_type -> google.protobuf.Empty 17845 321, // [321:355] is the sub-list for method output_type 17846 287, // [287:321] is the sub-list for method input_type 17847 287, // [287:287] is the sub-list for extension type_name 17848 287, // [287:287] is the sub-list for extension extendee 17849 0, // [0:287] is the sub-list for field type_name 17850} 17851 17852func init() { file_google_privacy_dlp_v2_dlp_proto_init() } 17853func file_google_privacy_dlp_v2_dlp_proto_init() { 17854 if File_google_privacy_dlp_v2_dlp_proto != nil { 17855 return 17856 } 17857 file_google_privacy_dlp_v2_storage_proto_init() 17858 if !protoimpl.UnsafeEnabled { 17859 file_google_privacy_dlp_v2_dlp_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 17860 switch v := v.(*ExcludeInfoTypes); i { 17861 case 0: 17862 return &v.state 17863 case 1: 17864 return &v.sizeCache 17865 case 2: 17866 return &v.unknownFields 17867 default: 17868 return nil 17869 } 17870 } 17871 file_google_privacy_dlp_v2_dlp_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 17872 switch v := v.(*ExclusionRule); i { 17873 case 0: 17874 return &v.state 17875 case 1: 17876 return &v.sizeCache 17877 case 2: 17878 return &v.unknownFields 17879 default: 17880 return nil 17881 } 17882 } 17883 file_google_privacy_dlp_v2_dlp_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 17884 switch v := v.(*InspectionRule); i { 17885 case 0: 17886 return &v.state 17887 case 1: 17888 return &v.sizeCache 17889 case 2: 17890 return &v.unknownFields 17891 default: 17892 return nil 17893 } 17894 } 17895 file_google_privacy_dlp_v2_dlp_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 17896 switch v := v.(*InspectionRuleSet); i { 17897 case 0: 17898 return &v.state 17899 case 1: 17900 return &v.sizeCache 17901 case 2: 17902 return &v.unknownFields 17903 default: 17904 return nil 17905 } 17906 } 17907 file_google_privacy_dlp_v2_dlp_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 17908 switch v := v.(*InspectConfig); i { 17909 case 0: 17910 return &v.state 17911 case 1: 17912 return &v.sizeCache 17913 case 2: 17914 return &v.unknownFields 17915 default: 17916 return nil 17917 } 17918 } 17919 file_google_privacy_dlp_v2_dlp_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 17920 switch v := v.(*ByteContentItem); i { 17921 case 0: 17922 return &v.state 17923 case 1: 17924 return &v.sizeCache 17925 case 2: 17926 return &v.unknownFields 17927 default: 17928 return nil 17929 } 17930 } 17931 file_google_privacy_dlp_v2_dlp_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 17932 switch v := v.(*ContentItem); i { 17933 case 0: 17934 return &v.state 17935 case 1: 17936 return &v.sizeCache 17937 case 2: 17938 return &v.unknownFields 17939 default: 17940 return nil 17941 } 17942 } 17943 file_google_privacy_dlp_v2_dlp_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 17944 switch v := v.(*Table); i { 17945 case 0: 17946 return &v.state 17947 case 1: 17948 return &v.sizeCache 17949 case 2: 17950 return &v.unknownFields 17951 default: 17952 return nil 17953 } 17954 } 17955 file_google_privacy_dlp_v2_dlp_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 17956 switch v := v.(*InspectResult); i { 17957 case 0: 17958 return &v.state 17959 case 1: 17960 return &v.sizeCache 17961 case 2: 17962 return &v.unknownFields 17963 default: 17964 return nil 17965 } 17966 } 17967 file_google_privacy_dlp_v2_dlp_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 17968 switch v := v.(*Finding); i { 17969 case 0: 17970 return &v.state 17971 case 1: 17972 return &v.sizeCache 17973 case 2: 17974 return &v.unknownFields 17975 default: 17976 return nil 17977 } 17978 } 17979 file_google_privacy_dlp_v2_dlp_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 17980 switch v := v.(*Location); i { 17981 case 0: 17982 return &v.state 17983 case 1: 17984 return &v.sizeCache 17985 case 2: 17986 return &v.unknownFields 17987 default: 17988 return nil 17989 } 17990 } 17991 file_google_privacy_dlp_v2_dlp_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 17992 switch v := v.(*ContentLocation); i { 17993 case 0: 17994 return &v.state 17995 case 1: 17996 return &v.sizeCache 17997 case 2: 17998 return &v.unknownFields 17999 default: 18000 return nil 18001 } 18002 } 18003 file_google_privacy_dlp_v2_dlp_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 18004 switch v := v.(*MetadataLocation); i { 18005 case 0: 18006 return &v.state 18007 case 1: 18008 return &v.sizeCache 18009 case 2: 18010 return &v.unknownFields 18011 default: 18012 return nil 18013 } 18014 } 18015 file_google_privacy_dlp_v2_dlp_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 18016 switch v := v.(*StorageMetadataLabel); i { 18017 case 0: 18018 return &v.state 18019 case 1: 18020 return &v.sizeCache 18021 case 2: 18022 return &v.unknownFields 18023 default: 18024 return nil 18025 } 18026 } 18027 file_google_privacy_dlp_v2_dlp_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 18028 switch v := v.(*DocumentLocation); i { 18029 case 0: 18030 return &v.state 18031 case 1: 18032 return &v.sizeCache 18033 case 2: 18034 return &v.unknownFields 18035 default: 18036 return nil 18037 } 18038 } 18039 file_google_privacy_dlp_v2_dlp_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 18040 switch v := v.(*RecordLocation); i { 18041 case 0: 18042 return &v.state 18043 case 1: 18044 return &v.sizeCache 18045 case 2: 18046 return &v.unknownFields 18047 default: 18048 return nil 18049 } 18050 } 18051 file_google_privacy_dlp_v2_dlp_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 18052 switch v := v.(*TableLocation); i { 18053 case 0: 18054 return &v.state 18055 case 1: 18056 return &v.sizeCache 18057 case 2: 18058 return &v.unknownFields 18059 default: 18060 return nil 18061 } 18062 } 18063 file_google_privacy_dlp_v2_dlp_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 18064 switch v := v.(*Container); i { 18065 case 0: 18066 return &v.state 18067 case 1: 18068 return &v.sizeCache 18069 case 2: 18070 return &v.unknownFields 18071 default: 18072 return nil 18073 } 18074 } 18075 file_google_privacy_dlp_v2_dlp_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 18076 switch v := v.(*Range); i { 18077 case 0: 18078 return &v.state 18079 case 1: 18080 return &v.sizeCache 18081 case 2: 18082 return &v.unknownFields 18083 default: 18084 return nil 18085 } 18086 } 18087 file_google_privacy_dlp_v2_dlp_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 18088 switch v := v.(*ImageLocation); i { 18089 case 0: 18090 return &v.state 18091 case 1: 18092 return &v.sizeCache 18093 case 2: 18094 return &v.unknownFields 18095 default: 18096 return nil 18097 } 18098 } 18099 file_google_privacy_dlp_v2_dlp_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 18100 switch v := v.(*BoundingBox); i { 18101 case 0: 18102 return &v.state 18103 case 1: 18104 return &v.sizeCache 18105 case 2: 18106 return &v.unknownFields 18107 default: 18108 return nil 18109 } 18110 } 18111 file_google_privacy_dlp_v2_dlp_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 18112 switch v := v.(*RedactImageRequest); i { 18113 case 0: 18114 return &v.state 18115 case 1: 18116 return &v.sizeCache 18117 case 2: 18118 return &v.unknownFields 18119 default: 18120 return nil 18121 } 18122 } 18123 file_google_privacy_dlp_v2_dlp_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 18124 switch v := v.(*Color); i { 18125 case 0: 18126 return &v.state 18127 case 1: 18128 return &v.sizeCache 18129 case 2: 18130 return &v.unknownFields 18131 default: 18132 return nil 18133 } 18134 } 18135 file_google_privacy_dlp_v2_dlp_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 18136 switch v := v.(*RedactImageResponse); i { 18137 case 0: 18138 return &v.state 18139 case 1: 18140 return &v.sizeCache 18141 case 2: 18142 return &v.unknownFields 18143 default: 18144 return nil 18145 } 18146 } 18147 file_google_privacy_dlp_v2_dlp_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 18148 switch v := v.(*DeidentifyContentRequest); i { 18149 case 0: 18150 return &v.state 18151 case 1: 18152 return &v.sizeCache 18153 case 2: 18154 return &v.unknownFields 18155 default: 18156 return nil 18157 } 18158 } 18159 file_google_privacy_dlp_v2_dlp_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 18160 switch v := v.(*DeidentifyContentResponse); i { 18161 case 0: 18162 return &v.state 18163 case 1: 18164 return &v.sizeCache 18165 case 2: 18166 return &v.unknownFields 18167 default: 18168 return nil 18169 } 18170 } 18171 file_google_privacy_dlp_v2_dlp_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 18172 switch v := v.(*ReidentifyContentRequest); i { 18173 case 0: 18174 return &v.state 18175 case 1: 18176 return &v.sizeCache 18177 case 2: 18178 return &v.unknownFields 18179 default: 18180 return nil 18181 } 18182 } 18183 file_google_privacy_dlp_v2_dlp_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 18184 switch v := v.(*ReidentifyContentResponse); i { 18185 case 0: 18186 return &v.state 18187 case 1: 18188 return &v.sizeCache 18189 case 2: 18190 return &v.unknownFields 18191 default: 18192 return nil 18193 } 18194 } 18195 file_google_privacy_dlp_v2_dlp_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 18196 switch v := v.(*InspectContentRequest); i { 18197 case 0: 18198 return &v.state 18199 case 1: 18200 return &v.sizeCache 18201 case 2: 18202 return &v.unknownFields 18203 default: 18204 return nil 18205 } 18206 } 18207 file_google_privacy_dlp_v2_dlp_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 18208 switch v := v.(*InspectContentResponse); i { 18209 case 0: 18210 return &v.state 18211 case 1: 18212 return &v.sizeCache 18213 case 2: 18214 return &v.unknownFields 18215 default: 18216 return nil 18217 } 18218 } 18219 file_google_privacy_dlp_v2_dlp_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 18220 switch v := v.(*OutputStorageConfig); i { 18221 case 0: 18222 return &v.state 18223 case 1: 18224 return &v.sizeCache 18225 case 2: 18226 return &v.unknownFields 18227 default: 18228 return nil 18229 } 18230 } 18231 file_google_privacy_dlp_v2_dlp_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 18232 switch v := v.(*InfoTypeStats); i { 18233 case 0: 18234 return &v.state 18235 case 1: 18236 return &v.sizeCache 18237 case 2: 18238 return &v.unknownFields 18239 default: 18240 return nil 18241 } 18242 } 18243 file_google_privacy_dlp_v2_dlp_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 18244 switch v := v.(*InspectDataSourceDetails); i { 18245 case 0: 18246 return &v.state 18247 case 1: 18248 return &v.sizeCache 18249 case 2: 18250 return &v.unknownFields 18251 default: 18252 return nil 18253 } 18254 } 18255 file_google_privacy_dlp_v2_dlp_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 18256 switch v := v.(*HybridInspectStatistics); i { 18257 case 0: 18258 return &v.state 18259 case 1: 18260 return &v.sizeCache 18261 case 2: 18262 return &v.unknownFields 18263 default: 18264 return nil 18265 } 18266 } 18267 file_google_privacy_dlp_v2_dlp_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 18268 switch v := v.(*InfoTypeDescription); i { 18269 case 0: 18270 return &v.state 18271 case 1: 18272 return &v.sizeCache 18273 case 2: 18274 return &v.unknownFields 18275 default: 18276 return nil 18277 } 18278 } 18279 file_google_privacy_dlp_v2_dlp_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 18280 switch v := v.(*ListInfoTypesRequest); i { 18281 case 0: 18282 return &v.state 18283 case 1: 18284 return &v.sizeCache 18285 case 2: 18286 return &v.unknownFields 18287 default: 18288 return nil 18289 } 18290 } 18291 file_google_privacy_dlp_v2_dlp_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { 18292 switch v := v.(*ListInfoTypesResponse); i { 18293 case 0: 18294 return &v.state 18295 case 1: 18296 return &v.sizeCache 18297 case 2: 18298 return &v.unknownFields 18299 default: 18300 return nil 18301 } 18302 } 18303 file_google_privacy_dlp_v2_dlp_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { 18304 switch v := v.(*RiskAnalysisJobConfig); i { 18305 case 0: 18306 return &v.state 18307 case 1: 18308 return &v.sizeCache 18309 case 2: 18310 return &v.unknownFields 18311 default: 18312 return nil 18313 } 18314 } 18315 file_google_privacy_dlp_v2_dlp_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { 18316 switch v := v.(*QuasiId); i { 18317 case 0: 18318 return &v.state 18319 case 1: 18320 return &v.sizeCache 18321 case 2: 18322 return &v.unknownFields 18323 default: 18324 return nil 18325 } 18326 } 18327 file_google_privacy_dlp_v2_dlp_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { 18328 switch v := v.(*StatisticalTable); i { 18329 case 0: 18330 return &v.state 18331 case 1: 18332 return &v.sizeCache 18333 case 2: 18334 return &v.unknownFields 18335 default: 18336 return nil 18337 } 18338 } 18339 file_google_privacy_dlp_v2_dlp_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { 18340 switch v := v.(*PrivacyMetric); i { 18341 case 0: 18342 return &v.state 18343 case 1: 18344 return &v.sizeCache 18345 case 2: 18346 return &v.unknownFields 18347 default: 18348 return nil 18349 } 18350 } 18351 file_google_privacy_dlp_v2_dlp_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { 18352 switch v := v.(*AnalyzeDataSourceRiskDetails); i { 18353 case 0: 18354 return &v.state 18355 case 1: 18356 return &v.sizeCache 18357 case 2: 18358 return &v.unknownFields 18359 default: 18360 return nil 18361 } 18362 } 18363 file_google_privacy_dlp_v2_dlp_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { 18364 switch v := v.(*ValueFrequency); i { 18365 case 0: 18366 return &v.state 18367 case 1: 18368 return &v.sizeCache 18369 case 2: 18370 return &v.unknownFields 18371 default: 18372 return nil 18373 } 18374 } 18375 file_google_privacy_dlp_v2_dlp_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { 18376 switch v := v.(*Value); i { 18377 case 0: 18378 return &v.state 18379 case 1: 18380 return &v.sizeCache 18381 case 2: 18382 return &v.unknownFields 18383 default: 18384 return nil 18385 } 18386 } 18387 file_google_privacy_dlp_v2_dlp_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { 18388 switch v := v.(*QuoteInfo); i { 18389 case 0: 18390 return &v.state 18391 case 1: 18392 return &v.sizeCache 18393 case 2: 18394 return &v.unknownFields 18395 default: 18396 return nil 18397 } 18398 } 18399 file_google_privacy_dlp_v2_dlp_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { 18400 switch v := v.(*DateTime); i { 18401 case 0: 18402 return &v.state 18403 case 1: 18404 return &v.sizeCache 18405 case 2: 18406 return &v.unknownFields 18407 default: 18408 return nil 18409 } 18410 } 18411 file_google_privacy_dlp_v2_dlp_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { 18412 switch v := v.(*DeidentifyConfig); i { 18413 case 0: 18414 return &v.state 18415 case 1: 18416 return &v.sizeCache 18417 case 2: 18418 return &v.unknownFields 18419 default: 18420 return nil 18421 } 18422 } 18423 file_google_privacy_dlp_v2_dlp_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { 18424 switch v := v.(*TransformationErrorHandling); i { 18425 case 0: 18426 return &v.state 18427 case 1: 18428 return &v.sizeCache 18429 case 2: 18430 return &v.unknownFields 18431 default: 18432 return nil 18433 } 18434 } 18435 file_google_privacy_dlp_v2_dlp_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { 18436 switch v := v.(*PrimitiveTransformation); i { 18437 case 0: 18438 return &v.state 18439 case 1: 18440 return &v.sizeCache 18441 case 2: 18442 return &v.unknownFields 18443 default: 18444 return nil 18445 } 18446 } 18447 file_google_privacy_dlp_v2_dlp_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { 18448 switch v := v.(*TimePartConfig); i { 18449 case 0: 18450 return &v.state 18451 case 1: 18452 return &v.sizeCache 18453 case 2: 18454 return &v.unknownFields 18455 default: 18456 return nil 18457 } 18458 } 18459 file_google_privacy_dlp_v2_dlp_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { 18460 switch v := v.(*CryptoHashConfig); i { 18461 case 0: 18462 return &v.state 18463 case 1: 18464 return &v.sizeCache 18465 case 2: 18466 return &v.unknownFields 18467 default: 18468 return nil 18469 } 18470 } 18471 file_google_privacy_dlp_v2_dlp_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { 18472 switch v := v.(*CryptoDeterministicConfig); i { 18473 case 0: 18474 return &v.state 18475 case 1: 18476 return &v.sizeCache 18477 case 2: 18478 return &v.unknownFields 18479 default: 18480 return nil 18481 } 18482 } 18483 file_google_privacy_dlp_v2_dlp_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { 18484 switch v := v.(*ReplaceValueConfig); i { 18485 case 0: 18486 return &v.state 18487 case 1: 18488 return &v.sizeCache 18489 case 2: 18490 return &v.unknownFields 18491 default: 18492 return nil 18493 } 18494 } 18495 file_google_privacy_dlp_v2_dlp_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { 18496 switch v := v.(*ReplaceWithInfoTypeConfig); i { 18497 case 0: 18498 return &v.state 18499 case 1: 18500 return &v.sizeCache 18501 case 2: 18502 return &v.unknownFields 18503 default: 18504 return nil 18505 } 18506 } 18507 file_google_privacy_dlp_v2_dlp_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { 18508 switch v := v.(*RedactConfig); i { 18509 case 0: 18510 return &v.state 18511 case 1: 18512 return &v.sizeCache 18513 case 2: 18514 return &v.unknownFields 18515 default: 18516 return nil 18517 } 18518 } 18519 file_google_privacy_dlp_v2_dlp_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { 18520 switch v := v.(*CharsToIgnore); i { 18521 case 0: 18522 return &v.state 18523 case 1: 18524 return &v.sizeCache 18525 case 2: 18526 return &v.unknownFields 18527 default: 18528 return nil 18529 } 18530 } 18531 file_google_privacy_dlp_v2_dlp_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { 18532 switch v := v.(*CharacterMaskConfig); i { 18533 case 0: 18534 return &v.state 18535 case 1: 18536 return &v.sizeCache 18537 case 2: 18538 return &v.unknownFields 18539 default: 18540 return nil 18541 } 18542 } 18543 file_google_privacy_dlp_v2_dlp_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { 18544 switch v := v.(*FixedSizeBucketingConfig); i { 18545 case 0: 18546 return &v.state 18547 case 1: 18548 return &v.sizeCache 18549 case 2: 18550 return &v.unknownFields 18551 default: 18552 return nil 18553 } 18554 } 18555 file_google_privacy_dlp_v2_dlp_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { 18556 switch v := v.(*BucketingConfig); i { 18557 case 0: 18558 return &v.state 18559 case 1: 18560 return &v.sizeCache 18561 case 2: 18562 return &v.unknownFields 18563 default: 18564 return nil 18565 } 18566 } 18567 file_google_privacy_dlp_v2_dlp_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { 18568 switch v := v.(*CryptoReplaceFfxFpeConfig); i { 18569 case 0: 18570 return &v.state 18571 case 1: 18572 return &v.sizeCache 18573 case 2: 18574 return &v.unknownFields 18575 default: 18576 return nil 18577 } 18578 } 18579 file_google_privacy_dlp_v2_dlp_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { 18580 switch v := v.(*CryptoKey); i { 18581 case 0: 18582 return &v.state 18583 case 1: 18584 return &v.sizeCache 18585 case 2: 18586 return &v.unknownFields 18587 default: 18588 return nil 18589 } 18590 } 18591 file_google_privacy_dlp_v2_dlp_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { 18592 switch v := v.(*TransientCryptoKey); i { 18593 case 0: 18594 return &v.state 18595 case 1: 18596 return &v.sizeCache 18597 case 2: 18598 return &v.unknownFields 18599 default: 18600 return nil 18601 } 18602 } 18603 file_google_privacy_dlp_v2_dlp_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { 18604 switch v := v.(*UnwrappedCryptoKey); i { 18605 case 0: 18606 return &v.state 18607 case 1: 18608 return &v.sizeCache 18609 case 2: 18610 return &v.unknownFields 18611 default: 18612 return nil 18613 } 18614 } 18615 file_google_privacy_dlp_v2_dlp_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { 18616 switch v := v.(*KmsWrappedCryptoKey); i { 18617 case 0: 18618 return &v.state 18619 case 1: 18620 return &v.sizeCache 18621 case 2: 18622 return &v.unknownFields 18623 default: 18624 return nil 18625 } 18626 } 18627 file_google_privacy_dlp_v2_dlp_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { 18628 switch v := v.(*DateShiftConfig); i { 18629 case 0: 18630 return &v.state 18631 case 1: 18632 return &v.sizeCache 18633 case 2: 18634 return &v.unknownFields 18635 default: 18636 return nil 18637 } 18638 } 18639 file_google_privacy_dlp_v2_dlp_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { 18640 switch v := v.(*InfoTypeTransformations); i { 18641 case 0: 18642 return &v.state 18643 case 1: 18644 return &v.sizeCache 18645 case 2: 18646 return &v.unknownFields 18647 default: 18648 return nil 18649 } 18650 } 18651 file_google_privacy_dlp_v2_dlp_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { 18652 switch v := v.(*FieldTransformation); i { 18653 case 0: 18654 return &v.state 18655 case 1: 18656 return &v.sizeCache 18657 case 2: 18658 return &v.unknownFields 18659 default: 18660 return nil 18661 } 18662 } 18663 file_google_privacy_dlp_v2_dlp_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { 18664 switch v := v.(*RecordTransformations); i { 18665 case 0: 18666 return &v.state 18667 case 1: 18668 return &v.sizeCache 18669 case 2: 18670 return &v.unknownFields 18671 default: 18672 return nil 18673 } 18674 } 18675 file_google_privacy_dlp_v2_dlp_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { 18676 switch v := v.(*RecordSuppression); i { 18677 case 0: 18678 return &v.state 18679 case 1: 18680 return &v.sizeCache 18681 case 2: 18682 return &v.unknownFields 18683 default: 18684 return nil 18685 } 18686 } 18687 file_google_privacy_dlp_v2_dlp_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { 18688 switch v := v.(*RecordCondition); i { 18689 case 0: 18690 return &v.state 18691 case 1: 18692 return &v.sizeCache 18693 case 2: 18694 return &v.unknownFields 18695 default: 18696 return nil 18697 } 18698 } 18699 file_google_privacy_dlp_v2_dlp_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { 18700 switch v := v.(*TransformationOverview); i { 18701 case 0: 18702 return &v.state 18703 case 1: 18704 return &v.sizeCache 18705 case 2: 18706 return &v.unknownFields 18707 default: 18708 return nil 18709 } 18710 } 18711 file_google_privacy_dlp_v2_dlp_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { 18712 switch v := v.(*TransformationSummary); i { 18713 case 0: 18714 return &v.state 18715 case 1: 18716 return &v.sizeCache 18717 case 2: 18718 return &v.unknownFields 18719 default: 18720 return nil 18721 } 18722 } 18723 file_google_privacy_dlp_v2_dlp_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { 18724 switch v := v.(*Schedule); i { 18725 case 0: 18726 return &v.state 18727 case 1: 18728 return &v.sizeCache 18729 case 2: 18730 return &v.unknownFields 18731 default: 18732 return nil 18733 } 18734 } 18735 file_google_privacy_dlp_v2_dlp_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { 18736 switch v := v.(*Manual); i { 18737 case 0: 18738 return &v.state 18739 case 1: 18740 return &v.sizeCache 18741 case 2: 18742 return &v.unknownFields 18743 default: 18744 return nil 18745 } 18746 } 18747 file_google_privacy_dlp_v2_dlp_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { 18748 switch v := v.(*InspectTemplate); i { 18749 case 0: 18750 return &v.state 18751 case 1: 18752 return &v.sizeCache 18753 case 2: 18754 return &v.unknownFields 18755 default: 18756 return nil 18757 } 18758 } 18759 file_google_privacy_dlp_v2_dlp_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { 18760 switch v := v.(*DeidentifyTemplate); i { 18761 case 0: 18762 return &v.state 18763 case 1: 18764 return &v.sizeCache 18765 case 2: 18766 return &v.unknownFields 18767 default: 18768 return nil 18769 } 18770 } 18771 file_google_privacy_dlp_v2_dlp_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { 18772 switch v := v.(*Error); i { 18773 case 0: 18774 return &v.state 18775 case 1: 18776 return &v.sizeCache 18777 case 2: 18778 return &v.unknownFields 18779 default: 18780 return nil 18781 } 18782 } 18783 file_google_privacy_dlp_v2_dlp_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { 18784 switch v := v.(*JobTrigger); i { 18785 case 0: 18786 return &v.state 18787 case 1: 18788 return &v.sizeCache 18789 case 2: 18790 return &v.unknownFields 18791 default: 18792 return nil 18793 } 18794 } 18795 file_google_privacy_dlp_v2_dlp_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { 18796 switch v := v.(*Action); i { 18797 case 0: 18798 return &v.state 18799 case 1: 18800 return &v.sizeCache 18801 case 2: 18802 return &v.unknownFields 18803 default: 18804 return nil 18805 } 18806 } 18807 file_google_privacy_dlp_v2_dlp_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { 18808 switch v := v.(*CreateInspectTemplateRequest); i { 18809 case 0: 18810 return &v.state 18811 case 1: 18812 return &v.sizeCache 18813 case 2: 18814 return &v.unknownFields 18815 default: 18816 return nil 18817 } 18818 } 18819 file_google_privacy_dlp_v2_dlp_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { 18820 switch v := v.(*UpdateInspectTemplateRequest); i { 18821 case 0: 18822 return &v.state 18823 case 1: 18824 return &v.sizeCache 18825 case 2: 18826 return &v.unknownFields 18827 default: 18828 return nil 18829 } 18830 } 18831 file_google_privacy_dlp_v2_dlp_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { 18832 switch v := v.(*GetInspectTemplateRequest); i { 18833 case 0: 18834 return &v.state 18835 case 1: 18836 return &v.sizeCache 18837 case 2: 18838 return &v.unknownFields 18839 default: 18840 return nil 18841 } 18842 } 18843 file_google_privacy_dlp_v2_dlp_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { 18844 switch v := v.(*ListInspectTemplatesRequest); i { 18845 case 0: 18846 return &v.state 18847 case 1: 18848 return &v.sizeCache 18849 case 2: 18850 return &v.unknownFields 18851 default: 18852 return nil 18853 } 18854 } 18855 file_google_privacy_dlp_v2_dlp_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { 18856 switch v := v.(*ListInspectTemplatesResponse); i { 18857 case 0: 18858 return &v.state 18859 case 1: 18860 return &v.sizeCache 18861 case 2: 18862 return &v.unknownFields 18863 default: 18864 return nil 18865 } 18866 } 18867 file_google_privacy_dlp_v2_dlp_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { 18868 switch v := v.(*DeleteInspectTemplateRequest); i { 18869 case 0: 18870 return &v.state 18871 case 1: 18872 return &v.sizeCache 18873 case 2: 18874 return &v.unknownFields 18875 default: 18876 return nil 18877 } 18878 } 18879 file_google_privacy_dlp_v2_dlp_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { 18880 switch v := v.(*CreateJobTriggerRequest); i { 18881 case 0: 18882 return &v.state 18883 case 1: 18884 return &v.sizeCache 18885 case 2: 18886 return &v.unknownFields 18887 default: 18888 return nil 18889 } 18890 } 18891 file_google_privacy_dlp_v2_dlp_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { 18892 switch v := v.(*ActivateJobTriggerRequest); i { 18893 case 0: 18894 return &v.state 18895 case 1: 18896 return &v.sizeCache 18897 case 2: 18898 return &v.unknownFields 18899 default: 18900 return nil 18901 } 18902 } 18903 file_google_privacy_dlp_v2_dlp_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { 18904 switch v := v.(*UpdateJobTriggerRequest); i { 18905 case 0: 18906 return &v.state 18907 case 1: 18908 return &v.sizeCache 18909 case 2: 18910 return &v.unknownFields 18911 default: 18912 return nil 18913 } 18914 } 18915 file_google_privacy_dlp_v2_dlp_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { 18916 switch v := v.(*GetJobTriggerRequest); i { 18917 case 0: 18918 return &v.state 18919 case 1: 18920 return &v.sizeCache 18921 case 2: 18922 return &v.unknownFields 18923 default: 18924 return nil 18925 } 18926 } 18927 file_google_privacy_dlp_v2_dlp_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { 18928 switch v := v.(*CreateDlpJobRequest); i { 18929 case 0: 18930 return &v.state 18931 case 1: 18932 return &v.sizeCache 18933 case 2: 18934 return &v.unknownFields 18935 default: 18936 return nil 18937 } 18938 } 18939 file_google_privacy_dlp_v2_dlp_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { 18940 switch v := v.(*ListJobTriggersRequest); i { 18941 case 0: 18942 return &v.state 18943 case 1: 18944 return &v.sizeCache 18945 case 2: 18946 return &v.unknownFields 18947 default: 18948 return nil 18949 } 18950 } 18951 file_google_privacy_dlp_v2_dlp_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { 18952 switch v := v.(*ListJobTriggersResponse); i { 18953 case 0: 18954 return &v.state 18955 case 1: 18956 return &v.sizeCache 18957 case 2: 18958 return &v.unknownFields 18959 default: 18960 return nil 18961 } 18962 } 18963 file_google_privacy_dlp_v2_dlp_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { 18964 switch v := v.(*DeleteJobTriggerRequest); i { 18965 case 0: 18966 return &v.state 18967 case 1: 18968 return &v.sizeCache 18969 case 2: 18970 return &v.unknownFields 18971 default: 18972 return nil 18973 } 18974 } 18975 file_google_privacy_dlp_v2_dlp_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { 18976 switch v := v.(*InspectJobConfig); i { 18977 case 0: 18978 return &v.state 18979 case 1: 18980 return &v.sizeCache 18981 case 2: 18982 return &v.unknownFields 18983 default: 18984 return nil 18985 } 18986 } 18987 file_google_privacy_dlp_v2_dlp_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { 18988 switch v := v.(*DlpJob); i { 18989 case 0: 18990 return &v.state 18991 case 1: 18992 return &v.sizeCache 18993 case 2: 18994 return &v.unknownFields 18995 default: 18996 return nil 18997 } 18998 } 18999 file_google_privacy_dlp_v2_dlp_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { 19000 switch v := v.(*GetDlpJobRequest); i { 19001 case 0: 19002 return &v.state 19003 case 1: 19004 return &v.sizeCache 19005 case 2: 19006 return &v.unknownFields 19007 default: 19008 return nil 19009 } 19010 } 19011 file_google_privacy_dlp_v2_dlp_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { 19012 switch v := v.(*ListDlpJobsRequest); i { 19013 case 0: 19014 return &v.state 19015 case 1: 19016 return &v.sizeCache 19017 case 2: 19018 return &v.unknownFields 19019 default: 19020 return nil 19021 } 19022 } 19023 file_google_privacy_dlp_v2_dlp_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { 19024 switch v := v.(*ListDlpJobsResponse); i { 19025 case 0: 19026 return &v.state 19027 case 1: 19028 return &v.sizeCache 19029 case 2: 19030 return &v.unknownFields 19031 default: 19032 return nil 19033 } 19034 } 19035 file_google_privacy_dlp_v2_dlp_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { 19036 switch v := v.(*CancelDlpJobRequest); i { 19037 case 0: 19038 return &v.state 19039 case 1: 19040 return &v.sizeCache 19041 case 2: 19042 return &v.unknownFields 19043 default: 19044 return nil 19045 } 19046 } 19047 file_google_privacy_dlp_v2_dlp_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { 19048 switch v := v.(*FinishDlpJobRequest); i { 19049 case 0: 19050 return &v.state 19051 case 1: 19052 return &v.sizeCache 19053 case 2: 19054 return &v.unknownFields 19055 default: 19056 return nil 19057 } 19058 } 19059 file_google_privacy_dlp_v2_dlp_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { 19060 switch v := v.(*DeleteDlpJobRequest); i { 19061 case 0: 19062 return &v.state 19063 case 1: 19064 return &v.sizeCache 19065 case 2: 19066 return &v.unknownFields 19067 default: 19068 return nil 19069 } 19070 } 19071 file_google_privacy_dlp_v2_dlp_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { 19072 switch v := v.(*CreateDeidentifyTemplateRequest); i { 19073 case 0: 19074 return &v.state 19075 case 1: 19076 return &v.sizeCache 19077 case 2: 19078 return &v.unknownFields 19079 default: 19080 return nil 19081 } 19082 } 19083 file_google_privacy_dlp_v2_dlp_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { 19084 switch v := v.(*UpdateDeidentifyTemplateRequest); i { 19085 case 0: 19086 return &v.state 19087 case 1: 19088 return &v.sizeCache 19089 case 2: 19090 return &v.unknownFields 19091 default: 19092 return nil 19093 } 19094 } 19095 file_google_privacy_dlp_v2_dlp_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { 19096 switch v := v.(*GetDeidentifyTemplateRequest); i { 19097 case 0: 19098 return &v.state 19099 case 1: 19100 return &v.sizeCache 19101 case 2: 19102 return &v.unknownFields 19103 default: 19104 return nil 19105 } 19106 } 19107 file_google_privacy_dlp_v2_dlp_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { 19108 switch v := v.(*ListDeidentifyTemplatesRequest); i { 19109 case 0: 19110 return &v.state 19111 case 1: 19112 return &v.sizeCache 19113 case 2: 19114 return &v.unknownFields 19115 default: 19116 return nil 19117 } 19118 } 19119 file_google_privacy_dlp_v2_dlp_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { 19120 switch v := v.(*ListDeidentifyTemplatesResponse); i { 19121 case 0: 19122 return &v.state 19123 case 1: 19124 return &v.sizeCache 19125 case 2: 19126 return &v.unknownFields 19127 default: 19128 return nil 19129 } 19130 } 19131 file_google_privacy_dlp_v2_dlp_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { 19132 switch v := v.(*DeleteDeidentifyTemplateRequest); i { 19133 case 0: 19134 return &v.state 19135 case 1: 19136 return &v.sizeCache 19137 case 2: 19138 return &v.unknownFields 19139 default: 19140 return nil 19141 } 19142 } 19143 file_google_privacy_dlp_v2_dlp_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { 19144 switch v := v.(*LargeCustomDictionaryConfig); i { 19145 case 0: 19146 return &v.state 19147 case 1: 19148 return &v.sizeCache 19149 case 2: 19150 return &v.unknownFields 19151 default: 19152 return nil 19153 } 19154 } 19155 file_google_privacy_dlp_v2_dlp_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { 19156 switch v := v.(*LargeCustomDictionaryStats); i { 19157 case 0: 19158 return &v.state 19159 case 1: 19160 return &v.sizeCache 19161 case 2: 19162 return &v.unknownFields 19163 default: 19164 return nil 19165 } 19166 } 19167 file_google_privacy_dlp_v2_dlp_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { 19168 switch v := v.(*StoredInfoTypeConfig); i { 19169 case 0: 19170 return &v.state 19171 case 1: 19172 return &v.sizeCache 19173 case 2: 19174 return &v.unknownFields 19175 default: 19176 return nil 19177 } 19178 } 19179 file_google_privacy_dlp_v2_dlp_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { 19180 switch v := v.(*StoredInfoTypeStats); i { 19181 case 0: 19182 return &v.state 19183 case 1: 19184 return &v.sizeCache 19185 case 2: 19186 return &v.unknownFields 19187 default: 19188 return nil 19189 } 19190 } 19191 file_google_privacy_dlp_v2_dlp_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { 19192 switch v := v.(*StoredInfoTypeVersion); i { 19193 case 0: 19194 return &v.state 19195 case 1: 19196 return &v.sizeCache 19197 case 2: 19198 return &v.unknownFields 19199 default: 19200 return nil 19201 } 19202 } 19203 file_google_privacy_dlp_v2_dlp_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { 19204 switch v := v.(*StoredInfoType); i { 19205 case 0: 19206 return &v.state 19207 case 1: 19208 return &v.sizeCache 19209 case 2: 19210 return &v.unknownFields 19211 default: 19212 return nil 19213 } 19214 } 19215 file_google_privacy_dlp_v2_dlp_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { 19216 switch v := v.(*CreateStoredInfoTypeRequest); i { 19217 case 0: 19218 return &v.state 19219 case 1: 19220 return &v.sizeCache 19221 case 2: 19222 return &v.unknownFields 19223 default: 19224 return nil 19225 } 19226 } 19227 file_google_privacy_dlp_v2_dlp_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { 19228 switch v := v.(*UpdateStoredInfoTypeRequest); i { 19229 case 0: 19230 return &v.state 19231 case 1: 19232 return &v.sizeCache 19233 case 2: 19234 return &v.unknownFields 19235 default: 19236 return nil 19237 } 19238 } 19239 file_google_privacy_dlp_v2_dlp_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { 19240 switch v := v.(*GetStoredInfoTypeRequest); i { 19241 case 0: 19242 return &v.state 19243 case 1: 19244 return &v.sizeCache 19245 case 2: 19246 return &v.unknownFields 19247 default: 19248 return nil 19249 } 19250 } 19251 file_google_privacy_dlp_v2_dlp_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { 19252 switch v := v.(*ListStoredInfoTypesRequest); i { 19253 case 0: 19254 return &v.state 19255 case 1: 19256 return &v.sizeCache 19257 case 2: 19258 return &v.unknownFields 19259 default: 19260 return nil 19261 } 19262 } 19263 file_google_privacy_dlp_v2_dlp_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { 19264 switch v := v.(*ListStoredInfoTypesResponse); i { 19265 case 0: 19266 return &v.state 19267 case 1: 19268 return &v.sizeCache 19269 case 2: 19270 return &v.unknownFields 19271 default: 19272 return nil 19273 } 19274 } 19275 file_google_privacy_dlp_v2_dlp_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { 19276 switch v := v.(*DeleteStoredInfoTypeRequest); i { 19277 case 0: 19278 return &v.state 19279 case 1: 19280 return &v.sizeCache 19281 case 2: 19282 return &v.unknownFields 19283 default: 19284 return nil 19285 } 19286 } 19287 file_google_privacy_dlp_v2_dlp_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { 19288 switch v := v.(*HybridInspectJobTriggerRequest); i { 19289 case 0: 19290 return &v.state 19291 case 1: 19292 return &v.sizeCache 19293 case 2: 19294 return &v.unknownFields 19295 default: 19296 return nil 19297 } 19298 } 19299 file_google_privacy_dlp_v2_dlp_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { 19300 switch v := v.(*HybridInspectDlpJobRequest); i { 19301 case 0: 19302 return &v.state 19303 case 1: 19304 return &v.sizeCache 19305 case 2: 19306 return &v.unknownFields 19307 default: 19308 return nil 19309 } 19310 } 19311 file_google_privacy_dlp_v2_dlp_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { 19312 switch v := v.(*HybridContentItem); i { 19313 case 0: 19314 return &v.state 19315 case 1: 19316 return &v.sizeCache 19317 case 2: 19318 return &v.unknownFields 19319 default: 19320 return nil 19321 } 19322 } 19323 file_google_privacy_dlp_v2_dlp_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { 19324 switch v := v.(*HybridFindingDetails); i { 19325 case 0: 19326 return &v.state 19327 case 1: 19328 return &v.sizeCache 19329 case 2: 19330 return &v.unknownFields 19331 default: 19332 return nil 19333 } 19334 } 19335 file_google_privacy_dlp_v2_dlp_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { 19336 switch v := v.(*HybridInspectResponse); i { 19337 case 0: 19338 return &v.state 19339 case 1: 19340 return &v.sizeCache 19341 case 2: 19342 return &v.unknownFields 19343 default: 19344 return nil 19345 } 19346 } 19347 file_google_privacy_dlp_v2_dlp_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { 19348 switch v := v.(*InspectConfig_FindingLimits); i { 19349 case 0: 19350 return &v.state 19351 case 1: 19352 return &v.sizeCache 19353 case 2: 19354 return &v.unknownFields 19355 default: 19356 return nil 19357 } 19358 } 19359 file_google_privacy_dlp_v2_dlp_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { 19360 switch v := v.(*InspectConfig_FindingLimits_InfoTypeLimit); i { 19361 case 0: 19362 return &v.state 19363 case 1: 19364 return &v.sizeCache 19365 case 2: 19366 return &v.unknownFields 19367 default: 19368 return nil 19369 } 19370 } 19371 file_google_privacy_dlp_v2_dlp_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { 19372 switch v := v.(*Table_Row); i { 19373 case 0: 19374 return &v.state 19375 case 1: 19376 return &v.sizeCache 19377 case 2: 19378 return &v.unknownFields 19379 default: 19380 return nil 19381 } 19382 } 19383 file_google_privacy_dlp_v2_dlp_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { 19384 switch v := v.(*RedactImageRequest_ImageRedactionConfig); i { 19385 case 0: 19386 return &v.state 19387 case 1: 19388 return &v.sizeCache 19389 case 2: 19390 return &v.unknownFields 19391 default: 19392 return nil 19393 } 19394 } 19395 file_google_privacy_dlp_v2_dlp_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { 19396 switch v := v.(*InspectDataSourceDetails_RequestedOptions); i { 19397 case 0: 19398 return &v.state 19399 case 1: 19400 return &v.sizeCache 19401 case 2: 19402 return &v.unknownFields 19403 default: 19404 return nil 19405 } 19406 } 19407 file_google_privacy_dlp_v2_dlp_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { 19408 switch v := v.(*InspectDataSourceDetails_Result); i { 19409 case 0: 19410 return &v.state 19411 case 1: 19412 return &v.sizeCache 19413 case 2: 19414 return &v.unknownFields 19415 default: 19416 return nil 19417 } 19418 } 19419 file_google_privacy_dlp_v2_dlp_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { 19420 switch v := v.(*StatisticalTable_QuasiIdentifierField); i { 19421 case 0: 19422 return &v.state 19423 case 1: 19424 return &v.sizeCache 19425 case 2: 19426 return &v.unknownFields 19427 default: 19428 return nil 19429 } 19430 } 19431 file_google_privacy_dlp_v2_dlp_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { 19432 switch v := v.(*PrivacyMetric_NumericalStatsConfig); i { 19433 case 0: 19434 return &v.state 19435 case 1: 19436 return &v.sizeCache 19437 case 2: 19438 return &v.unknownFields 19439 default: 19440 return nil 19441 } 19442 } 19443 file_google_privacy_dlp_v2_dlp_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { 19444 switch v := v.(*PrivacyMetric_CategoricalStatsConfig); i { 19445 case 0: 19446 return &v.state 19447 case 1: 19448 return &v.sizeCache 19449 case 2: 19450 return &v.unknownFields 19451 default: 19452 return nil 19453 } 19454 } 19455 file_google_privacy_dlp_v2_dlp_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { 19456 switch v := v.(*PrivacyMetric_KAnonymityConfig); i { 19457 case 0: 19458 return &v.state 19459 case 1: 19460 return &v.sizeCache 19461 case 2: 19462 return &v.unknownFields 19463 default: 19464 return nil 19465 } 19466 } 19467 file_google_privacy_dlp_v2_dlp_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { 19468 switch v := v.(*PrivacyMetric_LDiversityConfig); i { 19469 case 0: 19470 return &v.state 19471 case 1: 19472 return &v.sizeCache 19473 case 2: 19474 return &v.unknownFields 19475 default: 19476 return nil 19477 } 19478 } 19479 file_google_privacy_dlp_v2_dlp_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { 19480 switch v := v.(*PrivacyMetric_KMapEstimationConfig); i { 19481 case 0: 19482 return &v.state 19483 case 1: 19484 return &v.sizeCache 19485 case 2: 19486 return &v.unknownFields 19487 default: 19488 return nil 19489 } 19490 } 19491 file_google_privacy_dlp_v2_dlp_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { 19492 switch v := v.(*PrivacyMetric_DeltaPresenceEstimationConfig); i { 19493 case 0: 19494 return &v.state 19495 case 1: 19496 return &v.sizeCache 19497 case 2: 19498 return &v.unknownFields 19499 default: 19500 return nil 19501 } 19502 } 19503 file_google_privacy_dlp_v2_dlp_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { 19504 switch v := v.(*PrivacyMetric_KMapEstimationConfig_TaggedField); i { 19505 case 0: 19506 return &v.state 19507 case 1: 19508 return &v.sizeCache 19509 case 2: 19510 return &v.unknownFields 19511 default: 19512 return nil 19513 } 19514 } 19515 file_google_privacy_dlp_v2_dlp_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { 19516 switch v := v.(*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable); i { 19517 case 0: 19518 return &v.state 19519 case 1: 19520 return &v.sizeCache 19521 case 2: 19522 return &v.unknownFields 19523 default: 19524 return nil 19525 } 19526 } 19527 file_google_privacy_dlp_v2_dlp_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { 19528 switch v := v.(*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField); i { 19529 case 0: 19530 return &v.state 19531 case 1: 19532 return &v.sizeCache 19533 case 2: 19534 return &v.unknownFields 19535 default: 19536 return nil 19537 } 19538 } 19539 file_google_privacy_dlp_v2_dlp_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { 19540 switch v := v.(*AnalyzeDataSourceRiskDetails_NumericalStatsResult); i { 19541 case 0: 19542 return &v.state 19543 case 1: 19544 return &v.sizeCache 19545 case 2: 19546 return &v.unknownFields 19547 default: 19548 return nil 19549 } 19550 } 19551 file_google_privacy_dlp_v2_dlp_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { 19552 switch v := v.(*AnalyzeDataSourceRiskDetails_CategoricalStatsResult); i { 19553 case 0: 19554 return &v.state 19555 case 1: 19556 return &v.sizeCache 19557 case 2: 19558 return &v.unknownFields 19559 default: 19560 return nil 19561 } 19562 } 19563 file_google_privacy_dlp_v2_dlp_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { 19564 switch v := v.(*AnalyzeDataSourceRiskDetails_KAnonymityResult); i { 19565 case 0: 19566 return &v.state 19567 case 1: 19568 return &v.sizeCache 19569 case 2: 19570 return &v.unknownFields 19571 default: 19572 return nil 19573 } 19574 } 19575 file_google_privacy_dlp_v2_dlp_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { 19576 switch v := v.(*AnalyzeDataSourceRiskDetails_LDiversityResult); i { 19577 case 0: 19578 return &v.state 19579 case 1: 19580 return &v.sizeCache 19581 case 2: 19582 return &v.unknownFields 19583 default: 19584 return nil 19585 } 19586 } 19587 file_google_privacy_dlp_v2_dlp_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { 19588 switch v := v.(*AnalyzeDataSourceRiskDetails_KMapEstimationResult); i { 19589 case 0: 19590 return &v.state 19591 case 1: 19592 return &v.sizeCache 19593 case 2: 19594 return &v.unknownFields 19595 default: 19596 return nil 19597 } 19598 } 19599 file_google_privacy_dlp_v2_dlp_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { 19600 switch v := v.(*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult); i { 19601 case 0: 19602 return &v.state 19603 case 1: 19604 return &v.sizeCache 19605 case 2: 19606 return &v.unknownFields 19607 default: 19608 return nil 19609 } 19610 } 19611 file_google_privacy_dlp_v2_dlp_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { 19612 switch v := v.(*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket); i { 19613 case 0: 19614 return &v.state 19615 case 1: 19616 return &v.sizeCache 19617 case 2: 19618 return &v.unknownFields 19619 default: 19620 return nil 19621 } 19622 } 19623 file_google_privacy_dlp_v2_dlp_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { 19624 switch v := v.(*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass); i { 19625 case 0: 19626 return &v.state 19627 case 1: 19628 return &v.sizeCache 19629 case 2: 19630 return &v.unknownFields 19631 default: 19632 return nil 19633 } 19634 } 19635 file_google_privacy_dlp_v2_dlp_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { 19636 switch v := v.(*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket); i { 19637 case 0: 19638 return &v.state 19639 case 1: 19640 return &v.sizeCache 19641 case 2: 19642 return &v.unknownFields 19643 default: 19644 return nil 19645 } 19646 } 19647 file_google_privacy_dlp_v2_dlp_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { 19648 switch v := v.(*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass); i { 19649 case 0: 19650 return &v.state 19651 case 1: 19652 return &v.sizeCache 19653 case 2: 19654 return &v.unknownFields 19655 default: 19656 return nil 19657 } 19658 } 19659 file_google_privacy_dlp_v2_dlp_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { 19660 switch v := v.(*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket); i { 19661 case 0: 19662 return &v.state 19663 case 1: 19664 return &v.sizeCache 19665 case 2: 19666 return &v.unknownFields 19667 default: 19668 return nil 19669 } 19670 } 19671 file_google_privacy_dlp_v2_dlp_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { 19672 switch v := v.(*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues); i { 19673 case 0: 19674 return &v.state 19675 case 1: 19676 return &v.sizeCache 19677 case 2: 19678 return &v.unknownFields 19679 default: 19680 return nil 19681 } 19682 } 19683 file_google_privacy_dlp_v2_dlp_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { 19684 switch v := v.(*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket); i { 19685 case 0: 19686 return &v.state 19687 case 1: 19688 return &v.sizeCache 19689 case 2: 19690 return &v.unknownFields 19691 default: 19692 return nil 19693 } 19694 } 19695 file_google_privacy_dlp_v2_dlp_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { 19696 switch v := v.(*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues); i { 19697 case 0: 19698 return &v.state 19699 case 1: 19700 return &v.sizeCache 19701 case 2: 19702 return &v.unknownFields 19703 default: 19704 return nil 19705 } 19706 } 19707 file_google_privacy_dlp_v2_dlp_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { 19708 switch v := v.(*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket); i { 19709 case 0: 19710 return &v.state 19711 case 1: 19712 return &v.sizeCache 19713 case 2: 19714 return &v.unknownFields 19715 default: 19716 return nil 19717 } 19718 } 19719 file_google_privacy_dlp_v2_dlp_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { 19720 switch v := v.(*DateTime_TimeZone); i { 19721 case 0: 19722 return &v.state 19723 case 1: 19724 return &v.sizeCache 19725 case 2: 19726 return &v.unknownFields 19727 default: 19728 return nil 19729 } 19730 } 19731 file_google_privacy_dlp_v2_dlp_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { 19732 switch v := v.(*TransformationErrorHandling_ThrowError); i { 19733 case 0: 19734 return &v.state 19735 case 1: 19736 return &v.sizeCache 19737 case 2: 19738 return &v.unknownFields 19739 default: 19740 return nil 19741 } 19742 } 19743 file_google_privacy_dlp_v2_dlp_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { 19744 switch v := v.(*TransformationErrorHandling_LeaveUntransformed); i { 19745 case 0: 19746 return &v.state 19747 case 1: 19748 return &v.sizeCache 19749 case 2: 19750 return &v.unknownFields 19751 default: 19752 return nil 19753 } 19754 } 19755 file_google_privacy_dlp_v2_dlp_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { 19756 switch v := v.(*BucketingConfig_Bucket); i { 19757 case 0: 19758 return &v.state 19759 case 1: 19760 return &v.sizeCache 19761 case 2: 19762 return &v.unknownFields 19763 default: 19764 return nil 19765 } 19766 } 19767 file_google_privacy_dlp_v2_dlp_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { 19768 switch v := v.(*InfoTypeTransformations_InfoTypeTransformation); i { 19769 case 0: 19770 return &v.state 19771 case 1: 19772 return &v.sizeCache 19773 case 2: 19774 return &v.unknownFields 19775 default: 19776 return nil 19777 } 19778 } 19779 file_google_privacy_dlp_v2_dlp_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { 19780 switch v := v.(*RecordCondition_Condition); i { 19781 case 0: 19782 return &v.state 19783 case 1: 19784 return &v.sizeCache 19785 case 2: 19786 return &v.unknownFields 19787 default: 19788 return nil 19789 } 19790 } 19791 file_google_privacy_dlp_v2_dlp_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { 19792 switch v := v.(*RecordCondition_Conditions); i { 19793 case 0: 19794 return &v.state 19795 case 1: 19796 return &v.sizeCache 19797 case 2: 19798 return &v.unknownFields 19799 default: 19800 return nil 19801 } 19802 } 19803 file_google_privacy_dlp_v2_dlp_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { 19804 switch v := v.(*RecordCondition_Expressions); i { 19805 case 0: 19806 return &v.state 19807 case 1: 19808 return &v.sizeCache 19809 case 2: 19810 return &v.unknownFields 19811 default: 19812 return nil 19813 } 19814 } 19815 file_google_privacy_dlp_v2_dlp_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { 19816 switch v := v.(*TransformationSummary_SummaryResult); i { 19817 case 0: 19818 return &v.state 19819 case 1: 19820 return &v.sizeCache 19821 case 2: 19822 return &v.unknownFields 19823 default: 19824 return nil 19825 } 19826 } 19827 file_google_privacy_dlp_v2_dlp_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { 19828 switch v := v.(*JobTrigger_Trigger); i { 19829 case 0: 19830 return &v.state 19831 case 1: 19832 return &v.sizeCache 19833 case 2: 19834 return &v.unknownFields 19835 default: 19836 return nil 19837 } 19838 } 19839 file_google_privacy_dlp_v2_dlp_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { 19840 switch v := v.(*Action_SaveFindings); i { 19841 case 0: 19842 return &v.state 19843 case 1: 19844 return &v.sizeCache 19845 case 2: 19846 return &v.unknownFields 19847 default: 19848 return nil 19849 } 19850 } 19851 file_google_privacy_dlp_v2_dlp_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { 19852 switch v := v.(*Action_PublishToPubSub); i { 19853 case 0: 19854 return &v.state 19855 case 1: 19856 return &v.sizeCache 19857 case 2: 19858 return &v.unknownFields 19859 default: 19860 return nil 19861 } 19862 } 19863 file_google_privacy_dlp_v2_dlp_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { 19864 switch v := v.(*Action_PublishSummaryToCscc); i { 19865 case 0: 19866 return &v.state 19867 case 1: 19868 return &v.sizeCache 19869 case 2: 19870 return &v.unknownFields 19871 default: 19872 return nil 19873 } 19874 } 19875 file_google_privacy_dlp_v2_dlp_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { 19876 switch v := v.(*Action_PublishFindingsToCloudDataCatalog); i { 19877 case 0: 19878 return &v.state 19879 case 1: 19880 return &v.sizeCache 19881 case 2: 19882 return &v.unknownFields 19883 default: 19884 return nil 19885 } 19886 } 19887 file_google_privacy_dlp_v2_dlp_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { 19888 switch v := v.(*Action_JobNotificationEmails); i { 19889 case 0: 19890 return &v.state 19891 case 1: 19892 return &v.sizeCache 19893 case 2: 19894 return &v.unknownFields 19895 default: 19896 return nil 19897 } 19898 } 19899 file_google_privacy_dlp_v2_dlp_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { 19900 switch v := v.(*Action_PublishToStackdriver); i { 19901 case 0: 19902 return &v.state 19903 case 1: 19904 return &v.sizeCache 19905 case 2: 19906 return &v.unknownFields 19907 default: 19908 return nil 19909 } 19910 } 19911 } 19912 file_google_privacy_dlp_v2_dlp_proto_msgTypes[1].OneofWrappers = []interface{}{ 19913 (*ExclusionRule_Dictionary)(nil), 19914 (*ExclusionRule_Regex)(nil), 19915 (*ExclusionRule_ExcludeInfoTypes)(nil), 19916 } 19917 file_google_privacy_dlp_v2_dlp_proto_msgTypes[2].OneofWrappers = []interface{}{ 19918 (*InspectionRule_HotwordRule)(nil), 19919 (*InspectionRule_ExclusionRule)(nil), 19920 } 19921 file_google_privacy_dlp_v2_dlp_proto_msgTypes[6].OneofWrappers = []interface{}{ 19922 (*ContentItem_Value)(nil), 19923 (*ContentItem_Table)(nil), 19924 (*ContentItem_ByteItem)(nil), 19925 } 19926 file_google_privacy_dlp_v2_dlp_proto_msgTypes[11].OneofWrappers = []interface{}{ 19927 (*ContentLocation_RecordLocation)(nil), 19928 (*ContentLocation_ImageLocation)(nil), 19929 (*ContentLocation_DocumentLocation)(nil), 19930 (*ContentLocation_MetadataLocation)(nil), 19931 } 19932 file_google_privacy_dlp_v2_dlp_proto_msgTypes[12].OneofWrappers = []interface{}{ 19933 (*MetadataLocation_StorageLabel)(nil), 19934 } 19935 file_google_privacy_dlp_v2_dlp_proto_msgTypes[30].OneofWrappers = []interface{}{ 19936 (*OutputStorageConfig_Table)(nil), 19937 } 19938 file_google_privacy_dlp_v2_dlp_proto_msgTypes[38].OneofWrappers = []interface{}{ 19939 (*QuasiId_InfoType)(nil), 19940 (*QuasiId_CustomTag)(nil), 19941 (*QuasiId_Inferred)(nil), 19942 } 19943 file_google_privacy_dlp_v2_dlp_proto_msgTypes[40].OneofWrappers = []interface{}{ 19944 (*PrivacyMetric_NumericalStatsConfig_)(nil), 19945 (*PrivacyMetric_CategoricalStatsConfig_)(nil), 19946 (*PrivacyMetric_KAnonymityConfig_)(nil), 19947 (*PrivacyMetric_LDiversityConfig_)(nil), 19948 (*PrivacyMetric_KMapEstimationConfig_)(nil), 19949 (*PrivacyMetric_DeltaPresenceEstimationConfig_)(nil), 19950 } 19951 file_google_privacy_dlp_v2_dlp_proto_msgTypes[41].OneofWrappers = []interface{}{ 19952 (*AnalyzeDataSourceRiskDetails_NumericalStatsResult_)(nil), 19953 (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_)(nil), 19954 (*AnalyzeDataSourceRiskDetails_KAnonymityResult_)(nil), 19955 (*AnalyzeDataSourceRiskDetails_LDiversityResult_)(nil), 19956 (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_)(nil), 19957 (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_)(nil), 19958 } 19959 file_google_privacy_dlp_v2_dlp_proto_msgTypes[43].OneofWrappers = []interface{}{ 19960 (*Value_IntegerValue)(nil), 19961 (*Value_FloatValue)(nil), 19962 (*Value_StringValue)(nil), 19963 (*Value_BooleanValue)(nil), 19964 (*Value_TimestampValue)(nil), 19965 (*Value_TimeValue)(nil), 19966 (*Value_DateValue)(nil), 19967 (*Value_DayOfWeekValue)(nil), 19968 } 19969 file_google_privacy_dlp_v2_dlp_proto_msgTypes[44].OneofWrappers = []interface{}{ 19970 (*QuoteInfo_DateTime)(nil), 19971 } 19972 file_google_privacy_dlp_v2_dlp_proto_msgTypes[46].OneofWrappers = []interface{}{ 19973 (*DeidentifyConfig_InfoTypeTransformations)(nil), 19974 (*DeidentifyConfig_RecordTransformations)(nil), 19975 } 19976 file_google_privacy_dlp_v2_dlp_proto_msgTypes[47].OneofWrappers = []interface{}{ 19977 (*TransformationErrorHandling_ThrowError_)(nil), 19978 (*TransformationErrorHandling_LeaveUntransformed_)(nil), 19979 } 19980 file_google_privacy_dlp_v2_dlp_proto_msgTypes[48].OneofWrappers = []interface{}{ 19981 (*PrimitiveTransformation_ReplaceConfig)(nil), 19982 (*PrimitiveTransformation_RedactConfig)(nil), 19983 (*PrimitiveTransformation_CharacterMaskConfig)(nil), 19984 (*PrimitiveTransformation_CryptoReplaceFfxFpeConfig)(nil), 19985 (*PrimitiveTransformation_FixedSizeBucketingConfig)(nil), 19986 (*PrimitiveTransformation_BucketingConfig)(nil), 19987 (*PrimitiveTransformation_ReplaceWithInfoTypeConfig)(nil), 19988 (*PrimitiveTransformation_TimePartConfig)(nil), 19989 (*PrimitiveTransformation_CryptoHashConfig)(nil), 19990 (*PrimitiveTransformation_DateShiftConfig)(nil), 19991 (*PrimitiveTransformation_CryptoDeterministicConfig)(nil), 19992 } 19993 file_google_privacy_dlp_v2_dlp_proto_msgTypes[55].OneofWrappers = []interface{}{ 19994 (*CharsToIgnore_CharactersToSkip)(nil), 19995 (*CharsToIgnore_CommonCharactersToIgnore)(nil), 19996 } 19997 file_google_privacy_dlp_v2_dlp_proto_msgTypes[59].OneofWrappers = []interface{}{ 19998 (*CryptoReplaceFfxFpeConfig_CommonAlphabet)(nil), 19999 (*CryptoReplaceFfxFpeConfig_CustomAlphabet)(nil), 20000 (*CryptoReplaceFfxFpeConfig_Radix)(nil), 20001 } 20002 file_google_privacy_dlp_v2_dlp_proto_msgTypes[60].OneofWrappers = []interface{}{ 20003 (*CryptoKey_Transient)(nil), 20004 (*CryptoKey_Unwrapped)(nil), 20005 (*CryptoKey_KmsWrapped)(nil), 20006 } 20007 file_google_privacy_dlp_v2_dlp_proto_msgTypes[64].OneofWrappers = []interface{}{ 20008 (*DateShiftConfig_CryptoKey)(nil), 20009 } 20010 file_google_privacy_dlp_v2_dlp_proto_msgTypes[66].OneofWrappers = []interface{}{ 20011 (*FieldTransformation_PrimitiveTransformation)(nil), 20012 (*FieldTransformation_InfoTypeTransformations)(nil), 20013 } 20014 file_google_privacy_dlp_v2_dlp_proto_msgTypes[72].OneofWrappers = []interface{}{ 20015 (*Schedule_RecurrencePeriodDuration)(nil), 20016 } 20017 file_google_privacy_dlp_v2_dlp_proto_msgTypes[77].OneofWrappers = []interface{}{ 20018 (*JobTrigger_InspectJob)(nil), 20019 } 20020 file_google_privacy_dlp_v2_dlp_proto_msgTypes[78].OneofWrappers = []interface{}{ 20021 (*Action_SaveFindings_)(nil), 20022 (*Action_PubSub)(nil), 20023 (*Action_PublishSummaryToCscc_)(nil), 20024 (*Action_PublishFindingsToCloudDataCatalog_)(nil), 20025 (*Action_JobNotificationEmails_)(nil), 20026 (*Action_PublishToStackdriver_)(nil), 20027 } 20028 file_google_privacy_dlp_v2_dlp_proto_msgTypes[89].OneofWrappers = []interface{}{ 20029 (*CreateDlpJobRequest_InspectJob)(nil), 20030 (*CreateDlpJobRequest_RiskJob)(nil), 20031 } 20032 file_google_privacy_dlp_v2_dlp_proto_msgTypes[94].OneofWrappers = []interface{}{ 20033 (*DlpJob_RiskDetails)(nil), 20034 (*DlpJob_InspectDetails)(nil), 20035 } 20036 file_google_privacy_dlp_v2_dlp_proto_msgTypes[107].OneofWrappers = []interface{}{ 20037 (*LargeCustomDictionaryConfig_CloudStorageFileSet)(nil), 20038 (*LargeCustomDictionaryConfig_BigQueryField)(nil), 20039 } 20040 file_google_privacy_dlp_v2_dlp_proto_msgTypes[109].OneofWrappers = []interface{}{ 20041 (*StoredInfoTypeConfig_LargeCustomDictionary)(nil), 20042 (*StoredInfoTypeConfig_Dictionary)(nil), 20043 (*StoredInfoTypeConfig_Regex)(nil), 20044 } 20045 file_google_privacy_dlp_v2_dlp_proto_msgTypes[110].OneofWrappers = []interface{}{ 20046 (*StoredInfoTypeStats_LargeCustomDictionary)(nil), 20047 } 20048 file_google_privacy_dlp_v2_dlp_proto_msgTypes[128].OneofWrappers = []interface{}{ 20049 (*RedactImageRequest_ImageRedactionConfig_InfoType)(nil), 20050 (*RedactImageRequest_ImageRedactionConfig_RedactAllText)(nil), 20051 } 20052 file_google_privacy_dlp_v2_dlp_proto_msgTypes[138].OneofWrappers = []interface{}{ 20053 (*PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType)(nil), 20054 (*PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag)(nil), 20055 (*PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred)(nil), 20056 } 20057 file_google_privacy_dlp_v2_dlp_proto_msgTypes[163].OneofWrappers = []interface{}{ 20058 (*RecordCondition_Expressions_Conditions)(nil), 20059 } 20060 file_google_privacy_dlp_v2_dlp_proto_msgTypes[165].OneofWrappers = []interface{}{ 20061 (*JobTrigger_Trigger_Schedule)(nil), 20062 (*JobTrigger_Trigger_Manual)(nil), 20063 } 20064 type x struct{} 20065 out := protoimpl.TypeBuilder{ 20066 File: protoimpl.DescBuilder{ 20067 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 20068 RawDescriptor: file_google_privacy_dlp_v2_dlp_proto_rawDesc, 20069 NumEnums: 16, 20070 NumMessages: 173, 20071 NumExtensions: 0, 20072 NumServices: 1, 20073 }, 20074 GoTypes: file_google_privacy_dlp_v2_dlp_proto_goTypes, 20075 DependencyIndexes: file_google_privacy_dlp_v2_dlp_proto_depIdxs, 20076 EnumInfos: file_google_privacy_dlp_v2_dlp_proto_enumTypes, 20077 MessageInfos: file_google_privacy_dlp_v2_dlp_proto_msgTypes, 20078 }.Build() 20079 File_google_privacy_dlp_v2_dlp_proto = out.File 20080 file_google_privacy_dlp_v2_dlp_proto_rawDesc = nil 20081 file_google_privacy_dlp_v2_dlp_proto_goTypes = nil 20082 file_google_privacy_dlp_v2_dlp_proto_depIdxs = nil 20083} 20084 20085// Reference imports to suppress errors if they are not otherwise used. 20086var _ context.Context 20087var _ grpc.ClientConnInterface 20088 20089// This is a compile-time assertion to ensure that this generated file 20090// is compatible with the grpc package it is being compiled against. 20091const _ = grpc.SupportPackageIsVersion6 20092 20093// DlpServiceClient is the client API for DlpService service. 20094// 20095// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 20096type DlpServiceClient interface { 20097 // Finds potentially sensitive info in content. 20098 // This method has limits on input size, processing time, and output size. 20099 // 20100 // When no InfoTypes or CustomInfoTypes are specified in this request, the 20101 // system will automatically choose what detectors to run. By default this may 20102 // be all types, but may change over time as detectors are updated. 20103 // 20104 // For how to guides, see https://cloud.google.com/dlp/docs/inspecting-images 20105 // and https://cloud.google.com/dlp/docs/inspecting-text, 20106 InspectContent(ctx context.Context, in *InspectContentRequest, opts ...grpc.CallOption) (*InspectContentResponse, error) 20107 // Redacts potentially sensitive info from an image. 20108 // This method has limits on input size, processing time, and output size. 20109 // See https://cloud.google.com/dlp/docs/redacting-sensitive-data-images to 20110 // learn more. 20111 // 20112 // When no InfoTypes or CustomInfoTypes are specified in this request, the 20113 // system will automatically choose what detectors to run. By default this may 20114 // be all types, but may change over time as detectors are updated. 20115 RedactImage(ctx context.Context, in *RedactImageRequest, opts ...grpc.CallOption) (*RedactImageResponse, error) 20116 // De-identifies potentially sensitive info from a ContentItem. 20117 // This method has limits on input size and output size. 20118 // See https://cloud.google.com/dlp/docs/deidentify-sensitive-data to 20119 // learn more. 20120 // 20121 // When no InfoTypes or CustomInfoTypes are specified in this request, the 20122 // system will automatically choose what detectors to run. By default this may 20123 // be all types, but may change over time as detectors are updated. 20124 DeidentifyContent(ctx context.Context, in *DeidentifyContentRequest, opts ...grpc.CallOption) (*DeidentifyContentResponse, error) 20125 // Re-identifies content that has been de-identified. 20126 // See 20127 // https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example 20128 // to learn more. 20129 ReidentifyContent(ctx context.Context, in *ReidentifyContentRequest, opts ...grpc.CallOption) (*ReidentifyContentResponse, error) 20130 // Returns a list of the sensitive information types that the DLP API 20131 // supports. See https://cloud.google.com/dlp/docs/infotypes-reference to 20132 // learn more. 20133 ListInfoTypes(ctx context.Context, in *ListInfoTypesRequest, opts ...grpc.CallOption) (*ListInfoTypesResponse, error) 20134 // Creates an InspectTemplate for re-using frequently used configuration 20135 // for inspecting content, images, and storage. 20136 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20137 CreateInspectTemplate(ctx context.Context, in *CreateInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) 20138 // Updates the InspectTemplate. 20139 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20140 UpdateInspectTemplate(ctx context.Context, in *UpdateInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) 20141 // Gets an InspectTemplate. 20142 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20143 GetInspectTemplate(ctx context.Context, in *GetInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) 20144 // Lists InspectTemplates. 20145 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20146 ListInspectTemplates(ctx context.Context, in *ListInspectTemplatesRequest, opts ...grpc.CallOption) (*ListInspectTemplatesResponse, error) 20147 // Deletes an InspectTemplate. 20148 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20149 DeleteInspectTemplate(ctx context.Context, in *DeleteInspectTemplateRequest, opts ...grpc.CallOption) (*empty.Empty, error) 20150 // Creates a DeidentifyTemplate for re-using frequently used configuration 20151 // for de-identifying content, images, and storage. 20152 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20153 // more. 20154 CreateDeidentifyTemplate(ctx context.Context, in *CreateDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) 20155 // Updates the DeidentifyTemplate. 20156 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20157 // more. 20158 UpdateDeidentifyTemplate(ctx context.Context, in *UpdateDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) 20159 // Gets a DeidentifyTemplate. 20160 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20161 // more. 20162 GetDeidentifyTemplate(ctx context.Context, in *GetDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) 20163 // Lists DeidentifyTemplates. 20164 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20165 // more. 20166 ListDeidentifyTemplates(ctx context.Context, in *ListDeidentifyTemplatesRequest, opts ...grpc.CallOption) (*ListDeidentifyTemplatesResponse, error) 20167 // Deletes a DeidentifyTemplate. 20168 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20169 // more. 20170 DeleteDeidentifyTemplate(ctx context.Context, in *DeleteDeidentifyTemplateRequest, opts ...grpc.CallOption) (*empty.Empty, error) 20171 // Creates a job trigger to run DLP actions such as scanning storage for 20172 // sensitive information on a set schedule. 20173 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20174 CreateJobTrigger(ctx context.Context, in *CreateJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) 20175 // Updates a job trigger. 20176 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20177 UpdateJobTrigger(ctx context.Context, in *UpdateJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) 20178 // Inspect hybrid content and store findings to a trigger. The inspection 20179 // will be processed asynchronously. To review the findings monitor the 20180 // jobs within the trigger. 20181 // Early access feature is in a pre-release state and might change or have 20182 // limited support. For more information, see 20183 // https://cloud.google.com/products#product-launch-stages. 20184 HybridInspectJobTrigger(ctx context.Context, in *HybridInspectJobTriggerRequest, opts ...grpc.CallOption) (*HybridInspectResponse, error) 20185 // Gets a job trigger. 20186 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20187 GetJobTrigger(ctx context.Context, in *GetJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) 20188 // Lists job triggers. 20189 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20190 ListJobTriggers(ctx context.Context, in *ListJobTriggersRequest, opts ...grpc.CallOption) (*ListJobTriggersResponse, error) 20191 // Deletes a job trigger. 20192 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20193 DeleteJobTrigger(ctx context.Context, in *DeleteJobTriggerRequest, opts ...grpc.CallOption) (*empty.Empty, error) 20194 // Activate a job trigger. Causes the immediate execute of a trigger 20195 // instead of waiting on the trigger event to occur. 20196 ActivateJobTrigger(ctx context.Context, in *ActivateJobTriggerRequest, opts ...grpc.CallOption) (*DlpJob, error) 20197 // Creates a new job to inspect storage or calculate risk metrics. 20198 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20199 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20200 // 20201 // When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the 20202 // system will automatically choose what detectors to run. By default this may 20203 // be all types, but may change over time as detectors are updated. 20204 CreateDlpJob(ctx context.Context, in *CreateDlpJobRequest, opts ...grpc.CallOption) (*DlpJob, error) 20205 // Lists DlpJobs that match the specified filter in the request. 20206 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20207 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20208 ListDlpJobs(ctx context.Context, in *ListDlpJobsRequest, opts ...grpc.CallOption) (*ListDlpJobsResponse, error) 20209 // Gets the latest state of a long-running DlpJob. 20210 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20211 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20212 GetDlpJob(ctx context.Context, in *GetDlpJobRequest, opts ...grpc.CallOption) (*DlpJob, error) 20213 // Deletes a long-running DlpJob. This method indicates that the client is 20214 // no longer interested in the DlpJob result. The job will be cancelled if 20215 // possible. 20216 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20217 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20218 DeleteDlpJob(ctx context.Context, in *DeleteDlpJobRequest, opts ...grpc.CallOption) (*empty.Empty, error) 20219 // Starts asynchronous cancellation on a long-running DlpJob. The server 20220 // makes a best effort to cancel the DlpJob, but success is not 20221 // guaranteed. 20222 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20223 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20224 CancelDlpJob(ctx context.Context, in *CancelDlpJobRequest, opts ...grpc.CallOption) (*empty.Empty, error) 20225 // Creates a pre-built stored infoType to be used for inspection. 20226 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20227 // learn more. 20228 CreateStoredInfoType(ctx context.Context, in *CreateStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) 20229 // Updates the stored infoType by creating a new version. The existing version 20230 // will continue to be used until the new version is ready. 20231 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20232 // learn more. 20233 UpdateStoredInfoType(ctx context.Context, in *UpdateStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) 20234 // Gets a stored infoType. 20235 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20236 // learn more. 20237 GetStoredInfoType(ctx context.Context, in *GetStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) 20238 // Lists stored infoTypes. 20239 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20240 // learn more. 20241 ListStoredInfoTypes(ctx context.Context, in *ListStoredInfoTypesRequest, opts ...grpc.CallOption) (*ListStoredInfoTypesResponse, error) 20242 // Deletes a stored infoType. 20243 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20244 // learn more. 20245 DeleteStoredInfoType(ctx context.Context, in *DeleteStoredInfoTypeRequest, opts ...grpc.CallOption) (*empty.Empty, error) 20246 // Inspect hybrid content and store findings to a job. 20247 // To review the findings inspect the job. Inspection will occur 20248 // asynchronously. 20249 // Early access feature is in a pre-release state and might change or have 20250 // limited support. For more information, see 20251 // https://cloud.google.com/products#product-launch-stages. 20252 HybridInspectDlpJob(ctx context.Context, in *HybridInspectDlpJobRequest, opts ...grpc.CallOption) (*HybridInspectResponse, error) 20253 // Finish a running hybrid DlpJob. Triggers the finalization steps and running 20254 // of any enabled actions that have not yet run. 20255 // Early access feature is in a pre-release state and might change or have 20256 // limited support. For more information, see 20257 // https://cloud.google.com/products#product-launch-stages. 20258 FinishDlpJob(ctx context.Context, in *FinishDlpJobRequest, opts ...grpc.CallOption) (*empty.Empty, error) 20259} 20260 20261type dlpServiceClient struct { 20262 cc grpc.ClientConnInterface 20263} 20264 20265func NewDlpServiceClient(cc grpc.ClientConnInterface) DlpServiceClient { 20266 return &dlpServiceClient{cc} 20267} 20268 20269func (c *dlpServiceClient) InspectContent(ctx context.Context, in *InspectContentRequest, opts ...grpc.CallOption) (*InspectContentResponse, error) { 20270 out := new(InspectContentResponse) 20271 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/InspectContent", in, out, opts...) 20272 if err != nil { 20273 return nil, err 20274 } 20275 return out, nil 20276} 20277 20278func (c *dlpServiceClient) RedactImage(ctx context.Context, in *RedactImageRequest, opts ...grpc.CallOption) (*RedactImageResponse, error) { 20279 out := new(RedactImageResponse) 20280 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/RedactImage", in, out, opts...) 20281 if err != nil { 20282 return nil, err 20283 } 20284 return out, nil 20285} 20286 20287func (c *dlpServiceClient) DeidentifyContent(ctx context.Context, in *DeidentifyContentRequest, opts ...grpc.CallOption) (*DeidentifyContentResponse, error) { 20288 out := new(DeidentifyContentResponse) 20289 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeidentifyContent", in, out, opts...) 20290 if err != nil { 20291 return nil, err 20292 } 20293 return out, nil 20294} 20295 20296func (c *dlpServiceClient) ReidentifyContent(ctx context.Context, in *ReidentifyContentRequest, opts ...grpc.CallOption) (*ReidentifyContentResponse, error) { 20297 out := new(ReidentifyContentResponse) 20298 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ReidentifyContent", in, out, opts...) 20299 if err != nil { 20300 return nil, err 20301 } 20302 return out, nil 20303} 20304 20305func (c *dlpServiceClient) ListInfoTypes(ctx context.Context, in *ListInfoTypesRequest, opts ...grpc.CallOption) (*ListInfoTypesResponse, error) { 20306 out := new(ListInfoTypesResponse) 20307 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListInfoTypes", in, out, opts...) 20308 if err != nil { 20309 return nil, err 20310 } 20311 return out, nil 20312} 20313 20314func (c *dlpServiceClient) CreateInspectTemplate(ctx context.Context, in *CreateInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) { 20315 out := new(InspectTemplate) 20316 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateInspectTemplate", in, out, opts...) 20317 if err != nil { 20318 return nil, err 20319 } 20320 return out, nil 20321} 20322 20323func (c *dlpServiceClient) UpdateInspectTemplate(ctx context.Context, in *UpdateInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) { 20324 out := new(InspectTemplate) 20325 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/UpdateInspectTemplate", in, out, opts...) 20326 if err != nil { 20327 return nil, err 20328 } 20329 return out, nil 20330} 20331 20332func (c *dlpServiceClient) GetInspectTemplate(ctx context.Context, in *GetInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) { 20333 out := new(InspectTemplate) 20334 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetInspectTemplate", in, out, opts...) 20335 if err != nil { 20336 return nil, err 20337 } 20338 return out, nil 20339} 20340 20341func (c *dlpServiceClient) ListInspectTemplates(ctx context.Context, in *ListInspectTemplatesRequest, opts ...grpc.CallOption) (*ListInspectTemplatesResponse, error) { 20342 out := new(ListInspectTemplatesResponse) 20343 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListInspectTemplates", in, out, opts...) 20344 if err != nil { 20345 return nil, err 20346 } 20347 return out, nil 20348} 20349 20350func (c *dlpServiceClient) DeleteInspectTemplate(ctx context.Context, in *DeleteInspectTemplateRequest, opts ...grpc.CallOption) (*empty.Empty, error) { 20351 out := new(empty.Empty) 20352 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteInspectTemplate", in, out, opts...) 20353 if err != nil { 20354 return nil, err 20355 } 20356 return out, nil 20357} 20358 20359func (c *dlpServiceClient) CreateDeidentifyTemplate(ctx context.Context, in *CreateDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) { 20360 out := new(DeidentifyTemplate) 20361 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateDeidentifyTemplate", in, out, opts...) 20362 if err != nil { 20363 return nil, err 20364 } 20365 return out, nil 20366} 20367 20368func (c *dlpServiceClient) UpdateDeidentifyTemplate(ctx context.Context, in *UpdateDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) { 20369 out := new(DeidentifyTemplate) 20370 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/UpdateDeidentifyTemplate", in, out, opts...) 20371 if err != nil { 20372 return nil, err 20373 } 20374 return out, nil 20375} 20376 20377func (c *dlpServiceClient) GetDeidentifyTemplate(ctx context.Context, in *GetDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) { 20378 out := new(DeidentifyTemplate) 20379 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetDeidentifyTemplate", in, out, opts...) 20380 if err != nil { 20381 return nil, err 20382 } 20383 return out, nil 20384} 20385 20386func (c *dlpServiceClient) ListDeidentifyTemplates(ctx context.Context, in *ListDeidentifyTemplatesRequest, opts ...grpc.CallOption) (*ListDeidentifyTemplatesResponse, error) { 20387 out := new(ListDeidentifyTemplatesResponse) 20388 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListDeidentifyTemplates", in, out, opts...) 20389 if err != nil { 20390 return nil, err 20391 } 20392 return out, nil 20393} 20394 20395func (c *dlpServiceClient) DeleteDeidentifyTemplate(ctx context.Context, in *DeleteDeidentifyTemplateRequest, opts ...grpc.CallOption) (*empty.Empty, error) { 20396 out := new(empty.Empty) 20397 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteDeidentifyTemplate", in, out, opts...) 20398 if err != nil { 20399 return nil, err 20400 } 20401 return out, nil 20402} 20403 20404func (c *dlpServiceClient) CreateJobTrigger(ctx context.Context, in *CreateJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) { 20405 out := new(JobTrigger) 20406 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateJobTrigger", in, out, opts...) 20407 if err != nil { 20408 return nil, err 20409 } 20410 return out, nil 20411} 20412 20413func (c *dlpServiceClient) UpdateJobTrigger(ctx context.Context, in *UpdateJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) { 20414 out := new(JobTrigger) 20415 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/UpdateJobTrigger", in, out, opts...) 20416 if err != nil { 20417 return nil, err 20418 } 20419 return out, nil 20420} 20421 20422func (c *dlpServiceClient) HybridInspectJobTrigger(ctx context.Context, in *HybridInspectJobTriggerRequest, opts ...grpc.CallOption) (*HybridInspectResponse, error) { 20423 out := new(HybridInspectResponse) 20424 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/HybridInspectJobTrigger", in, out, opts...) 20425 if err != nil { 20426 return nil, err 20427 } 20428 return out, nil 20429} 20430 20431func (c *dlpServiceClient) GetJobTrigger(ctx context.Context, in *GetJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) { 20432 out := new(JobTrigger) 20433 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetJobTrigger", in, out, opts...) 20434 if err != nil { 20435 return nil, err 20436 } 20437 return out, nil 20438} 20439 20440func (c *dlpServiceClient) ListJobTriggers(ctx context.Context, in *ListJobTriggersRequest, opts ...grpc.CallOption) (*ListJobTriggersResponse, error) { 20441 out := new(ListJobTriggersResponse) 20442 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListJobTriggers", in, out, opts...) 20443 if err != nil { 20444 return nil, err 20445 } 20446 return out, nil 20447} 20448 20449func (c *dlpServiceClient) DeleteJobTrigger(ctx context.Context, in *DeleteJobTriggerRequest, opts ...grpc.CallOption) (*empty.Empty, error) { 20450 out := new(empty.Empty) 20451 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteJobTrigger", in, out, opts...) 20452 if err != nil { 20453 return nil, err 20454 } 20455 return out, nil 20456} 20457 20458func (c *dlpServiceClient) ActivateJobTrigger(ctx context.Context, in *ActivateJobTriggerRequest, opts ...grpc.CallOption) (*DlpJob, error) { 20459 out := new(DlpJob) 20460 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ActivateJobTrigger", in, out, opts...) 20461 if err != nil { 20462 return nil, err 20463 } 20464 return out, nil 20465} 20466 20467func (c *dlpServiceClient) CreateDlpJob(ctx context.Context, in *CreateDlpJobRequest, opts ...grpc.CallOption) (*DlpJob, error) { 20468 out := new(DlpJob) 20469 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateDlpJob", in, out, opts...) 20470 if err != nil { 20471 return nil, err 20472 } 20473 return out, nil 20474} 20475 20476func (c *dlpServiceClient) ListDlpJobs(ctx context.Context, in *ListDlpJobsRequest, opts ...grpc.CallOption) (*ListDlpJobsResponse, error) { 20477 out := new(ListDlpJobsResponse) 20478 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListDlpJobs", in, out, opts...) 20479 if err != nil { 20480 return nil, err 20481 } 20482 return out, nil 20483} 20484 20485func (c *dlpServiceClient) GetDlpJob(ctx context.Context, in *GetDlpJobRequest, opts ...grpc.CallOption) (*DlpJob, error) { 20486 out := new(DlpJob) 20487 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetDlpJob", in, out, opts...) 20488 if err != nil { 20489 return nil, err 20490 } 20491 return out, nil 20492} 20493 20494func (c *dlpServiceClient) DeleteDlpJob(ctx context.Context, in *DeleteDlpJobRequest, opts ...grpc.CallOption) (*empty.Empty, error) { 20495 out := new(empty.Empty) 20496 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteDlpJob", in, out, opts...) 20497 if err != nil { 20498 return nil, err 20499 } 20500 return out, nil 20501} 20502 20503func (c *dlpServiceClient) CancelDlpJob(ctx context.Context, in *CancelDlpJobRequest, opts ...grpc.CallOption) (*empty.Empty, error) { 20504 out := new(empty.Empty) 20505 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CancelDlpJob", in, out, opts...) 20506 if err != nil { 20507 return nil, err 20508 } 20509 return out, nil 20510} 20511 20512func (c *dlpServiceClient) CreateStoredInfoType(ctx context.Context, in *CreateStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) { 20513 out := new(StoredInfoType) 20514 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateStoredInfoType", in, out, opts...) 20515 if err != nil { 20516 return nil, err 20517 } 20518 return out, nil 20519} 20520 20521func (c *dlpServiceClient) UpdateStoredInfoType(ctx context.Context, in *UpdateStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) { 20522 out := new(StoredInfoType) 20523 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/UpdateStoredInfoType", in, out, opts...) 20524 if err != nil { 20525 return nil, err 20526 } 20527 return out, nil 20528} 20529 20530func (c *dlpServiceClient) GetStoredInfoType(ctx context.Context, in *GetStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) { 20531 out := new(StoredInfoType) 20532 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetStoredInfoType", in, out, opts...) 20533 if err != nil { 20534 return nil, err 20535 } 20536 return out, nil 20537} 20538 20539func (c *dlpServiceClient) ListStoredInfoTypes(ctx context.Context, in *ListStoredInfoTypesRequest, opts ...grpc.CallOption) (*ListStoredInfoTypesResponse, error) { 20540 out := new(ListStoredInfoTypesResponse) 20541 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListStoredInfoTypes", in, out, opts...) 20542 if err != nil { 20543 return nil, err 20544 } 20545 return out, nil 20546} 20547 20548func (c *dlpServiceClient) DeleteStoredInfoType(ctx context.Context, in *DeleteStoredInfoTypeRequest, opts ...grpc.CallOption) (*empty.Empty, error) { 20549 out := new(empty.Empty) 20550 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteStoredInfoType", in, out, opts...) 20551 if err != nil { 20552 return nil, err 20553 } 20554 return out, nil 20555} 20556 20557func (c *dlpServiceClient) HybridInspectDlpJob(ctx context.Context, in *HybridInspectDlpJobRequest, opts ...grpc.CallOption) (*HybridInspectResponse, error) { 20558 out := new(HybridInspectResponse) 20559 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/HybridInspectDlpJob", in, out, opts...) 20560 if err != nil { 20561 return nil, err 20562 } 20563 return out, nil 20564} 20565 20566func (c *dlpServiceClient) FinishDlpJob(ctx context.Context, in *FinishDlpJobRequest, opts ...grpc.CallOption) (*empty.Empty, error) { 20567 out := new(empty.Empty) 20568 err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/FinishDlpJob", in, out, opts...) 20569 if err != nil { 20570 return nil, err 20571 } 20572 return out, nil 20573} 20574 20575// DlpServiceServer is the server API for DlpService service. 20576type DlpServiceServer interface { 20577 // Finds potentially sensitive info in content. 20578 // This method has limits on input size, processing time, and output size. 20579 // 20580 // When no InfoTypes or CustomInfoTypes are specified in this request, the 20581 // system will automatically choose what detectors to run. By default this may 20582 // be all types, but may change over time as detectors are updated. 20583 // 20584 // For how to guides, see https://cloud.google.com/dlp/docs/inspecting-images 20585 // and https://cloud.google.com/dlp/docs/inspecting-text, 20586 InspectContent(context.Context, *InspectContentRequest) (*InspectContentResponse, error) 20587 // Redacts potentially sensitive info from an image. 20588 // This method has limits on input size, processing time, and output size. 20589 // See https://cloud.google.com/dlp/docs/redacting-sensitive-data-images to 20590 // learn more. 20591 // 20592 // When no InfoTypes or CustomInfoTypes are specified in this request, the 20593 // system will automatically choose what detectors to run. By default this may 20594 // be all types, but may change over time as detectors are updated. 20595 RedactImage(context.Context, *RedactImageRequest) (*RedactImageResponse, error) 20596 // De-identifies potentially sensitive info from a ContentItem. 20597 // This method has limits on input size and output size. 20598 // See https://cloud.google.com/dlp/docs/deidentify-sensitive-data to 20599 // learn more. 20600 // 20601 // When no InfoTypes or CustomInfoTypes are specified in this request, the 20602 // system will automatically choose what detectors to run. By default this may 20603 // be all types, but may change over time as detectors are updated. 20604 DeidentifyContent(context.Context, *DeidentifyContentRequest) (*DeidentifyContentResponse, error) 20605 // Re-identifies content that has been de-identified. 20606 // See 20607 // https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example 20608 // to learn more. 20609 ReidentifyContent(context.Context, *ReidentifyContentRequest) (*ReidentifyContentResponse, error) 20610 // Returns a list of the sensitive information types that the DLP API 20611 // supports. See https://cloud.google.com/dlp/docs/infotypes-reference to 20612 // learn more. 20613 ListInfoTypes(context.Context, *ListInfoTypesRequest) (*ListInfoTypesResponse, error) 20614 // Creates an InspectTemplate for re-using frequently used configuration 20615 // for inspecting content, images, and storage. 20616 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20617 CreateInspectTemplate(context.Context, *CreateInspectTemplateRequest) (*InspectTemplate, error) 20618 // Updates the InspectTemplate. 20619 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20620 UpdateInspectTemplate(context.Context, *UpdateInspectTemplateRequest) (*InspectTemplate, error) 20621 // Gets an InspectTemplate. 20622 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20623 GetInspectTemplate(context.Context, *GetInspectTemplateRequest) (*InspectTemplate, error) 20624 // Lists InspectTemplates. 20625 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20626 ListInspectTemplates(context.Context, *ListInspectTemplatesRequest) (*ListInspectTemplatesResponse, error) 20627 // Deletes an InspectTemplate. 20628 // See https://cloud.google.com/dlp/docs/creating-templates to learn more. 20629 DeleteInspectTemplate(context.Context, *DeleteInspectTemplateRequest) (*empty.Empty, error) 20630 // Creates a DeidentifyTemplate for re-using frequently used configuration 20631 // for de-identifying content, images, and storage. 20632 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20633 // more. 20634 CreateDeidentifyTemplate(context.Context, *CreateDeidentifyTemplateRequest) (*DeidentifyTemplate, error) 20635 // Updates the DeidentifyTemplate. 20636 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20637 // more. 20638 UpdateDeidentifyTemplate(context.Context, *UpdateDeidentifyTemplateRequest) (*DeidentifyTemplate, error) 20639 // Gets a DeidentifyTemplate. 20640 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20641 // more. 20642 GetDeidentifyTemplate(context.Context, *GetDeidentifyTemplateRequest) (*DeidentifyTemplate, error) 20643 // Lists DeidentifyTemplates. 20644 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20645 // more. 20646 ListDeidentifyTemplates(context.Context, *ListDeidentifyTemplatesRequest) (*ListDeidentifyTemplatesResponse, error) 20647 // Deletes a DeidentifyTemplate. 20648 // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 20649 // more. 20650 DeleteDeidentifyTemplate(context.Context, *DeleteDeidentifyTemplateRequest) (*empty.Empty, error) 20651 // Creates a job trigger to run DLP actions such as scanning storage for 20652 // sensitive information on a set schedule. 20653 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20654 CreateJobTrigger(context.Context, *CreateJobTriggerRequest) (*JobTrigger, error) 20655 // Updates a job trigger. 20656 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20657 UpdateJobTrigger(context.Context, *UpdateJobTriggerRequest) (*JobTrigger, error) 20658 // Inspect hybrid content and store findings to a trigger. The inspection 20659 // will be processed asynchronously. To review the findings monitor the 20660 // jobs within the trigger. 20661 // Early access feature is in a pre-release state and might change or have 20662 // limited support. For more information, see 20663 // https://cloud.google.com/products#product-launch-stages. 20664 HybridInspectJobTrigger(context.Context, *HybridInspectJobTriggerRequest) (*HybridInspectResponse, error) 20665 // Gets a job trigger. 20666 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20667 GetJobTrigger(context.Context, *GetJobTriggerRequest) (*JobTrigger, error) 20668 // Lists job triggers. 20669 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20670 ListJobTriggers(context.Context, *ListJobTriggersRequest) (*ListJobTriggersResponse, error) 20671 // Deletes a job trigger. 20672 // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 20673 DeleteJobTrigger(context.Context, *DeleteJobTriggerRequest) (*empty.Empty, error) 20674 // Activate a job trigger. Causes the immediate execute of a trigger 20675 // instead of waiting on the trigger event to occur. 20676 ActivateJobTrigger(context.Context, *ActivateJobTriggerRequest) (*DlpJob, error) 20677 // Creates a new job to inspect storage or calculate risk metrics. 20678 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20679 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20680 // 20681 // When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the 20682 // system will automatically choose what detectors to run. By default this may 20683 // be all types, but may change over time as detectors are updated. 20684 CreateDlpJob(context.Context, *CreateDlpJobRequest) (*DlpJob, error) 20685 // Lists DlpJobs that match the specified filter in the request. 20686 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20687 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20688 ListDlpJobs(context.Context, *ListDlpJobsRequest) (*ListDlpJobsResponse, error) 20689 // Gets the latest state of a long-running DlpJob. 20690 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20691 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20692 GetDlpJob(context.Context, *GetDlpJobRequest) (*DlpJob, error) 20693 // Deletes a long-running DlpJob. This method indicates that the client is 20694 // no longer interested in the DlpJob result. The job will be cancelled if 20695 // possible. 20696 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20697 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20698 DeleteDlpJob(context.Context, *DeleteDlpJobRequest) (*empty.Empty, error) 20699 // Starts asynchronous cancellation on a long-running DlpJob. The server 20700 // makes a best effort to cancel the DlpJob, but success is not 20701 // guaranteed. 20702 // See https://cloud.google.com/dlp/docs/inspecting-storage and 20703 // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 20704 CancelDlpJob(context.Context, *CancelDlpJobRequest) (*empty.Empty, error) 20705 // Creates a pre-built stored infoType to be used for inspection. 20706 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20707 // learn more. 20708 CreateStoredInfoType(context.Context, *CreateStoredInfoTypeRequest) (*StoredInfoType, error) 20709 // Updates the stored infoType by creating a new version. The existing version 20710 // will continue to be used until the new version is ready. 20711 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20712 // learn more. 20713 UpdateStoredInfoType(context.Context, *UpdateStoredInfoTypeRequest) (*StoredInfoType, error) 20714 // Gets a stored infoType. 20715 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20716 // learn more. 20717 GetStoredInfoType(context.Context, *GetStoredInfoTypeRequest) (*StoredInfoType, error) 20718 // Lists stored infoTypes. 20719 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20720 // learn more. 20721 ListStoredInfoTypes(context.Context, *ListStoredInfoTypesRequest) (*ListStoredInfoTypesResponse, error) 20722 // Deletes a stored infoType. 20723 // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 20724 // learn more. 20725 DeleteStoredInfoType(context.Context, *DeleteStoredInfoTypeRequest) (*empty.Empty, error) 20726 // Inspect hybrid content and store findings to a job. 20727 // To review the findings inspect the job. Inspection will occur 20728 // asynchronously. 20729 // Early access feature is in a pre-release state and might change or have 20730 // limited support. For more information, see 20731 // https://cloud.google.com/products#product-launch-stages. 20732 HybridInspectDlpJob(context.Context, *HybridInspectDlpJobRequest) (*HybridInspectResponse, error) 20733 // Finish a running hybrid DlpJob. Triggers the finalization steps and running 20734 // of any enabled actions that have not yet run. 20735 // Early access feature is in a pre-release state and might change or have 20736 // limited support. For more information, see 20737 // https://cloud.google.com/products#product-launch-stages. 20738 FinishDlpJob(context.Context, *FinishDlpJobRequest) (*empty.Empty, error) 20739} 20740 20741// UnimplementedDlpServiceServer can be embedded to have forward compatible implementations. 20742type UnimplementedDlpServiceServer struct { 20743} 20744 20745func (*UnimplementedDlpServiceServer) InspectContent(context.Context, *InspectContentRequest) (*InspectContentResponse, error) { 20746 return nil, status1.Errorf(codes.Unimplemented, "method InspectContent not implemented") 20747} 20748func (*UnimplementedDlpServiceServer) RedactImage(context.Context, *RedactImageRequest) (*RedactImageResponse, error) { 20749 return nil, status1.Errorf(codes.Unimplemented, "method RedactImage not implemented") 20750} 20751func (*UnimplementedDlpServiceServer) DeidentifyContent(context.Context, *DeidentifyContentRequest) (*DeidentifyContentResponse, error) { 20752 return nil, status1.Errorf(codes.Unimplemented, "method DeidentifyContent not implemented") 20753} 20754func (*UnimplementedDlpServiceServer) ReidentifyContent(context.Context, *ReidentifyContentRequest) (*ReidentifyContentResponse, error) { 20755 return nil, status1.Errorf(codes.Unimplemented, "method ReidentifyContent not implemented") 20756} 20757func (*UnimplementedDlpServiceServer) ListInfoTypes(context.Context, *ListInfoTypesRequest) (*ListInfoTypesResponse, error) { 20758 return nil, status1.Errorf(codes.Unimplemented, "method ListInfoTypes not implemented") 20759} 20760func (*UnimplementedDlpServiceServer) CreateInspectTemplate(context.Context, *CreateInspectTemplateRequest) (*InspectTemplate, error) { 20761 return nil, status1.Errorf(codes.Unimplemented, "method CreateInspectTemplate not implemented") 20762} 20763func (*UnimplementedDlpServiceServer) UpdateInspectTemplate(context.Context, *UpdateInspectTemplateRequest) (*InspectTemplate, error) { 20764 return nil, status1.Errorf(codes.Unimplemented, "method UpdateInspectTemplate not implemented") 20765} 20766func (*UnimplementedDlpServiceServer) GetInspectTemplate(context.Context, *GetInspectTemplateRequest) (*InspectTemplate, error) { 20767 return nil, status1.Errorf(codes.Unimplemented, "method GetInspectTemplate not implemented") 20768} 20769func (*UnimplementedDlpServiceServer) ListInspectTemplates(context.Context, *ListInspectTemplatesRequest) (*ListInspectTemplatesResponse, error) { 20770 return nil, status1.Errorf(codes.Unimplemented, "method ListInspectTemplates not implemented") 20771} 20772func (*UnimplementedDlpServiceServer) DeleteInspectTemplate(context.Context, *DeleteInspectTemplateRequest) (*empty.Empty, error) { 20773 return nil, status1.Errorf(codes.Unimplemented, "method DeleteInspectTemplate not implemented") 20774} 20775func (*UnimplementedDlpServiceServer) CreateDeidentifyTemplate(context.Context, *CreateDeidentifyTemplateRequest) (*DeidentifyTemplate, error) { 20776 return nil, status1.Errorf(codes.Unimplemented, "method CreateDeidentifyTemplate not implemented") 20777} 20778func (*UnimplementedDlpServiceServer) UpdateDeidentifyTemplate(context.Context, *UpdateDeidentifyTemplateRequest) (*DeidentifyTemplate, error) { 20779 return nil, status1.Errorf(codes.Unimplemented, "method UpdateDeidentifyTemplate not implemented") 20780} 20781func (*UnimplementedDlpServiceServer) GetDeidentifyTemplate(context.Context, *GetDeidentifyTemplateRequest) (*DeidentifyTemplate, error) { 20782 return nil, status1.Errorf(codes.Unimplemented, "method GetDeidentifyTemplate not implemented") 20783} 20784func (*UnimplementedDlpServiceServer) ListDeidentifyTemplates(context.Context, *ListDeidentifyTemplatesRequest) (*ListDeidentifyTemplatesResponse, error) { 20785 return nil, status1.Errorf(codes.Unimplemented, "method ListDeidentifyTemplates not implemented") 20786} 20787func (*UnimplementedDlpServiceServer) DeleteDeidentifyTemplate(context.Context, *DeleteDeidentifyTemplateRequest) (*empty.Empty, error) { 20788 return nil, status1.Errorf(codes.Unimplemented, "method DeleteDeidentifyTemplate not implemented") 20789} 20790func (*UnimplementedDlpServiceServer) CreateJobTrigger(context.Context, *CreateJobTriggerRequest) (*JobTrigger, error) { 20791 return nil, status1.Errorf(codes.Unimplemented, "method CreateJobTrigger not implemented") 20792} 20793func (*UnimplementedDlpServiceServer) UpdateJobTrigger(context.Context, *UpdateJobTriggerRequest) (*JobTrigger, error) { 20794 return nil, status1.Errorf(codes.Unimplemented, "method UpdateJobTrigger not implemented") 20795} 20796func (*UnimplementedDlpServiceServer) HybridInspectJobTrigger(context.Context, *HybridInspectJobTriggerRequest) (*HybridInspectResponse, error) { 20797 return nil, status1.Errorf(codes.Unimplemented, "method HybridInspectJobTrigger not implemented") 20798} 20799func (*UnimplementedDlpServiceServer) GetJobTrigger(context.Context, *GetJobTriggerRequest) (*JobTrigger, error) { 20800 return nil, status1.Errorf(codes.Unimplemented, "method GetJobTrigger not implemented") 20801} 20802func (*UnimplementedDlpServiceServer) ListJobTriggers(context.Context, *ListJobTriggersRequest) (*ListJobTriggersResponse, error) { 20803 return nil, status1.Errorf(codes.Unimplemented, "method ListJobTriggers not implemented") 20804} 20805func (*UnimplementedDlpServiceServer) DeleteJobTrigger(context.Context, *DeleteJobTriggerRequest) (*empty.Empty, error) { 20806 return nil, status1.Errorf(codes.Unimplemented, "method DeleteJobTrigger not implemented") 20807} 20808func (*UnimplementedDlpServiceServer) ActivateJobTrigger(context.Context, *ActivateJobTriggerRequest) (*DlpJob, error) { 20809 return nil, status1.Errorf(codes.Unimplemented, "method ActivateJobTrigger not implemented") 20810} 20811func (*UnimplementedDlpServiceServer) CreateDlpJob(context.Context, *CreateDlpJobRequest) (*DlpJob, error) { 20812 return nil, status1.Errorf(codes.Unimplemented, "method CreateDlpJob not implemented") 20813} 20814func (*UnimplementedDlpServiceServer) ListDlpJobs(context.Context, *ListDlpJobsRequest) (*ListDlpJobsResponse, error) { 20815 return nil, status1.Errorf(codes.Unimplemented, "method ListDlpJobs not implemented") 20816} 20817func (*UnimplementedDlpServiceServer) GetDlpJob(context.Context, *GetDlpJobRequest) (*DlpJob, error) { 20818 return nil, status1.Errorf(codes.Unimplemented, "method GetDlpJob not implemented") 20819} 20820func (*UnimplementedDlpServiceServer) DeleteDlpJob(context.Context, *DeleteDlpJobRequest) (*empty.Empty, error) { 20821 return nil, status1.Errorf(codes.Unimplemented, "method DeleteDlpJob not implemented") 20822} 20823func (*UnimplementedDlpServiceServer) CancelDlpJob(context.Context, *CancelDlpJobRequest) (*empty.Empty, error) { 20824 return nil, status1.Errorf(codes.Unimplemented, "method CancelDlpJob not implemented") 20825} 20826func (*UnimplementedDlpServiceServer) CreateStoredInfoType(context.Context, *CreateStoredInfoTypeRequest) (*StoredInfoType, error) { 20827 return nil, status1.Errorf(codes.Unimplemented, "method CreateStoredInfoType not implemented") 20828} 20829func (*UnimplementedDlpServiceServer) UpdateStoredInfoType(context.Context, *UpdateStoredInfoTypeRequest) (*StoredInfoType, error) { 20830 return nil, status1.Errorf(codes.Unimplemented, "method UpdateStoredInfoType not implemented") 20831} 20832func (*UnimplementedDlpServiceServer) GetStoredInfoType(context.Context, *GetStoredInfoTypeRequest) (*StoredInfoType, error) { 20833 return nil, status1.Errorf(codes.Unimplemented, "method GetStoredInfoType not implemented") 20834} 20835func (*UnimplementedDlpServiceServer) ListStoredInfoTypes(context.Context, *ListStoredInfoTypesRequest) (*ListStoredInfoTypesResponse, error) { 20836 return nil, status1.Errorf(codes.Unimplemented, "method ListStoredInfoTypes not implemented") 20837} 20838func (*UnimplementedDlpServiceServer) DeleteStoredInfoType(context.Context, *DeleteStoredInfoTypeRequest) (*empty.Empty, error) { 20839 return nil, status1.Errorf(codes.Unimplemented, "method DeleteStoredInfoType not implemented") 20840} 20841func (*UnimplementedDlpServiceServer) HybridInspectDlpJob(context.Context, *HybridInspectDlpJobRequest) (*HybridInspectResponse, error) { 20842 return nil, status1.Errorf(codes.Unimplemented, "method HybridInspectDlpJob not implemented") 20843} 20844func (*UnimplementedDlpServiceServer) FinishDlpJob(context.Context, *FinishDlpJobRequest) (*empty.Empty, error) { 20845 return nil, status1.Errorf(codes.Unimplemented, "method FinishDlpJob not implemented") 20846} 20847 20848func RegisterDlpServiceServer(s *grpc.Server, srv DlpServiceServer) { 20849 s.RegisterService(&_DlpService_serviceDesc, srv) 20850} 20851 20852func _DlpService_InspectContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 20853 in := new(InspectContentRequest) 20854 if err := dec(in); err != nil { 20855 return nil, err 20856 } 20857 if interceptor == nil { 20858 return srv.(DlpServiceServer).InspectContent(ctx, in) 20859 } 20860 info := &grpc.UnaryServerInfo{ 20861 Server: srv, 20862 FullMethod: "/google.privacy.dlp.v2.DlpService/InspectContent", 20863 } 20864 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 20865 return srv.(DlpServiceServer).InspectContent(ctx, req.(*InspectContentRequest)) 20866 } 20867 return interceptor(ctx, in, info, handler) 20868} 20869 20870func _DlpService_RedactImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 20871 in := new(RedactImageRequest) 20872 if err := dec(in); err != nil { 20873 return nil, err 20874 } 20875 if interceptor == nil { 20876 return srv.(DlpServiceServer).RedactImage(ctx, in) 20877 } 20878 info := &grpc.UnaryServerInfo{ 20879 Server: srv, 20880 FullMethod: "/google.privacy.dlp.v2.DlpService/RedactImage", 20881 } 20882 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 20883 return srv.(DlpServiceServer).RedactImage(ctx, req.(*RedactImageRequest)) 20884 } 20885 return interceptor(ctx, in, info, handler) 20886} 20887 20888func _DlpService_DeidentifyContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 20889 in := new(DeidentifyContentRequest) 20890 if err := dec(in); err != nil { 20891 return nil, err 20892 } 20893 if interceptor == nil { 20894 return srv.(DlpServiceServer).DeidentifyContent(ctx, in) 20895 } 20896 info := &grpc.UnaryServerInfo{ 20897 Server: srv, 20898 FullMethod: "/google.privacy.dlp.v2.DlpService/DeidentifyContent", 20899 } 20900 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 20901 return srv.(DlpServiceServer).DeidentifyContent(ctx, req.(*DeidentifyContentRequest)) 20902 } 20903 return interceptor(ctx, in, info, handler) 20904} 20905 20906func _DlpService_ReidentifyContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 20907 in := new(ReidentifyContentRequest) 20908 if err := dec(in); err != nil { 20909 return nil, err 20910 } 20911 if interceptor == nil { 20912 return srv.(DlpServiceServer).ReidentifyContent(ctx, in) 20913 } 20914 info := &grpc.UnaryServerInfo{ 20915 Server: srv, 20916 FullMethod: "/google.privacy.dlp.v2.DlpService/ReidentifyContent", 20917 } 20918 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 20919 return srv.(DlpServiceServer).ReidentifyContent(ctx, req.(*ReidentifyContentRequest)) 20920 } 20921 return interceptor(ctx, in, info, handler) 20922} 20923 20924func _DlpService_ListInfoTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 20925 in := new(ListInfoTypesRequest) 20926 if err := dec(in); err != nil { 20927 return nil, err 20928 } 20929 if interceptor == nil { 20930 return srv.(DlpServiceServer).ListInfoTypes(ctx, in) 20931 } 20932 info := &grpc.UnaryServerInfo{ 20933 Server: srv, 20934 FullMethod: "/google.privacy.dlp.v2.DlpService/ListInfoTypes", 20935 } 20936 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 20937 return srv.(DlpServiceServer).ListInfoTypes(ctx, req.(*ListInfoTypesRequest)) 20938 } 20939 return interceptor(ctx, in, info, handler) 20940} 20941 20942func _DlpService_CreateInspectTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 20943 in := new(CreateInspectTemplateRequest) 20944 if err := dec(in); err != nil { 20945 return nil, err 20946 } 20947 if interceptor == nil { 20948 return srv.(DlpServiceServer).CreateInspectTemplate(ctx, in) 20949 } 20950 info := &grpc.UnaryServerInfo{ 20951 Server: srv, 20952 FullMethod: "/google.privacy.dlp.v2.DlpService/CreateInspectTemplate", 20953 } 20954 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 20955 return srv.(DlpServiceServer).CreateInspectTemplate(ctx, req.(*CreateInspectTemplateRequest)) 20956 } 20957 return interceptor(ctx, in, info, handler) 20958} 20959 20960func _DlpService_UpdateInspectTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 20961 in := new(UpdateInspectTemplateRequest) 20962 if err := dec(in); err != nil { 20963 return nil, err 20964 } 20965 if interceptor == nil { 20966 return srv.(DlpServiceServer).UpdateInspectTemplate(ctx, in) 20967 } 20968 info := &grpc.UnaryServerInfo{ 20969 Server: srv, 20970 FullMethod: "/google.privacy.dlp.v2.DlpService/UpdateInspectTemplate", 20971 } 20972 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 20973 return srv.(DlpServiceServer).UpdateInspectTemplate(ctx, req.(*UpdateInspectTemplateRequest)) 20974 } 20975 return interceptor(ctx, in, info, handler) 20976} 20977 20978func _DlpService_GetInspectTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 20979 in := new(GetInspectTemplateRequest) 20980 if err := dec(in); err != nil { 20981 return nil, err 20982 } 20983 if interceptor == nil { 20984 return srv.(DlpServiceServer).GetInspectTemplate(ctx, in) 20985 } 20986 info := &grpc.UnaryServerInfo{ 20987 Server: srv, 20988 FullMethod: "/google.privacy.dlp.v2.DlpService/GetInspectTemplate", 20989 } 20990 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 20991 return srv.(DlpServiceServer).GetInspectTemplate(ctx, req.(*GetInspectTemplateRequest)) 20992 } 20993 return interceptor(ctx, in, info, handler) 20994} 20995 20996func _DlpService_ListInspectTemplates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 20997 in := new(ListInspectTemplatesRequest) 20998 if err := dec(in); err != nil { 20999 return nil, err 21000 } 21001 if interceptor == nil { 21002 return srv.(DlpServiceServer).ListInspectTemplates(ctx, in) 21003 } 21004 info := &grpc.UnaryServerInfo{ 21005 Server: srv, 21006 FullMethod: "/google.privacy.dlp.v2.DlpService/ListInspectTemplates", 21007 } 21008 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21009 return srv.(DlpServiceServer).ListInspectTemplates(ctx, req.(*ListInspectTemplatesRequest)) 21010 } 21011 return interceptor(ctx, in, info, handler) 21012} 21013 21014func _DlpService_DeleteInspectTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21015 in := new(DeleteInspectTemplateRequest) 21016 if err := dec(in); err != nil { 21017 return nil, err 21018 } 21019 if interceptor == nil { 21020 return srv.(DlpServiceServer).DeleteInspectTemplate(ctx, in) 21021 } 21022 info := &grpc.UnaryServerInfo{ 21023 Server: srv, 21024 FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteInspectTemplate", 21025 } 21026 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21027 return srv.(DlpServiceServer).DeleteInspectTemplate(ctx, req.(*DeleteInspectTemplateRequest)) 21028 } 21029 return interceptor(ctx, in, info, handler) 21030} 21031 21032func _DlpService_CreateDeidentifyTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21033 in := new(CreateDeidentifyTemplateRequest) 21034 if err := dec(in); err != nil { 21035 return nil, err 21036 } 21037 if interceptor == nil { 21038 return srv.(DlpServiceServer).CreateDeidentifyTemplate(ctx, in) 21039 } 21040 info := &grpc.UnaryServerInfo{ 21041 Server: srv, 21042 FullMethod: "/google.privacy.dlp.v2.DlpService/CreateDeidentifyTemplate", 21043 } 21044 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21045 return srv.(DlpServiceServer).CreateDeidentifyTemplate(ctx, req.(*CreateDeidentifyTemplateRequest)) 21046 } 21047 return interceptor(ctx, in, info, handler) 21048} 21049 21050func _DlpService_UpdateDeidentifyTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21051 in := new(UpdateDeidentifyTemplateRequest) 21052 if err := dec(in); err != nil { 21053 return nil, err 21054 } 21055 if interceptor == nil { 21056 return srv.(DlpServiceServer).UpdateDeidentifyTemplate(ctx, in) 21057 } 21058 info := &grpc.UnaryServerInfo{ 21059 Server: srv, 21060 FullMethod: "/google.privacy.dlp.v2.DlpService/UpdateDeidentifyTemplate", 21061 } 21062 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21063 return srv.(DlpServiceServer).UpdateDeidentifyTemplate(ctx, req.(*UpdateDeidentifyTemplateRequest)) 21064 } 21065 return interceptor(ctx, in, info, handler) 21066} 21067 21068func _DlpService_GetDeidentifyTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21069 in := new(GetDeidentifyTemplateRequest) 21070 if err := dec(in); err != nil { 21071 return nil, err 21072 } 21073 if interceptor == nil { 21074 return srv.(DlpServiceServer).GetDeidentifyTemplate(ctx, in) 21075 } 21076 info := &grpc.UnaryServerInfo{ 21077 Server: srv, 21078 FullMethod: "/google.privacy.dlp.v2.DlpService/GetDeidentifyTemplate", 21079 } 21080 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21081 return srv.(DlpServiceServer).GetDeidentifyTemplate(ctx, req.(*GetDeidentifyTemplateRequest)) 21082 } 21083 return interceptor(ctx, in, info, handler) 21084} 21085 21086func _DlpService_ListDeidentifyTemplates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21087 in := new(ListDeidentifyTemplatesRequest) 21088 if err := dec(in); err != nil { 21089 return nil, err 21090 } 21091 if interceptor == nil { 21092 return srv.(DlpServiceServer).ListDeidentifyTemplates(ctx, in) 21093 } 21094 info := &grpc.UnaryServerInfo{ 21095 Server: srv, 21096 FullMethod: "/google.privacy.dlp.v2.DlpService/ListDeidentifyTemplates", 21097 } 21098 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21099 return srv.(DlpServiceServer).ListDeidentifyTemplates(ctx, req.(*ListDeidentifyTemplatesRequest)) 21100 } 21101 return interceptor(ctx, in, info, handler) 21102} 21103 21104func _DlpService_DeleteDeidentifyTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21105 in := new(DeleteDeidentifyTemplateRequest) 21106 if err := dec(in); err != nil { 21107 return nil, err 21108 } 21109 if interceptor == nil { 21110 return srv.(DlpServiceServer).DeleteDeidentifyTemplate(ctx, in) 21111 } 21112 info := &grpc.UnaryServerInfo{ 21113 Server: srv, 21114 FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteDeidentifyTemplate", 21115 } 21116 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21117 return srv.(DlpServiceServer).DeleteDeidentifyTemplate(ctx, req.(*DeleteDeidentifyTemplateRequest)) 21118 } 21119 return interceptor(ctx, in, info, handler) 21120} 21121 21122func _DlpService_CreateJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21123 in := new(CreateJobTriggerRequest) 21124 if err := dec(in); err != nil { 21125 return nil, err 21126 } 21127 if interceptor == nil { 21128 return srv.(DlpServiceServer).CreateJobTrigger(ctx, in) 21129 } 21130 info := &grpc.UnaryServerInfo{ 21131 Server: srv, 21132 FullMethod: "/google.privacy.dlp.v2.DlpService/CreateJobTrigger", 21133 } 21134 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21135 return srv.(DlpServiceServer).CreateJobTrigger(ctx, req.(*CreateJobTriggerRequest)) 21136 } 21137 return interceptor(ctx, in, info, handler) 21138} 21139 21140func _DlpService_UpdateJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21141 in := new(UpdateJobTriggerRequest) 21142 if err := dec(in); err != nil { 21143 return nil, err 21144 } 21145 if interceptor == nil { 21146 return srv.(DlpServiceServer).UpdateJobTrigger(ctx, in) 21147 } 21148 info := &grpc.UnaryServerInfo{ 21149 Server: srv, 21150 FullMethod: "/google.privacy.dlp.v2.DlpService/UpdateJobTrigger", 21151 } 21152 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21153 return srv.(DlpServiceServer).UpdateJobTrigger(ctx, req.(*UpdateJobTriggerRequest)) 21154 } 21155 return interceptor(ctx, in, info, handler) 21156} 21157 21158func _DlpService_HybridInspectJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21159 in := new(HybridInspectJobTriggerRequest) 21160 if err := dec(in); err != nil { 21161 return nil, err 21162 } 21163 if interceptor == nil { 21164 return srv.(DlpServiceServer).HybridInspectJobTrigger(ctx, in) 21165 } 21166 info := &grpc.UnaryServerInfo{ 21167 Server: srv, 21168 FullMethod: "/google.privacy.dlp.v2.DlpService/HybridInspectJobTrigger", 21169 } 21170 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21171 return srv.(DlpServiceServer).HybridInspectJobTrigger(ctx, req.(*HybridInspectJobTriggerRequest)) 21172 } 21173 return interceptor(ctx, in, info, handler) 21174} 21175 21176func _DlpService_GetJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21177 in := new(GetJobTriggerRequest) 21178 if err := dec(in); err != nil { 21179 return nil, err 21180 } 21181 if interceptor == nil { 21182 return srv.(DlpServiceServer).GetJobTrigger(ctx, in) 21183 } 21184 info := &grpc.UnaryServerInfo{ 21185 Server: srv, 21186 FullMethod: "/google.privacy.dlp.v2.DlpService/GetJobTrigger", 21187 } 21188 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21189 return srv.(DlpServiceServer).GetJobTrigger(ctx, req.(*GetJobTriggerRequest)) 21190 } 21191 return interceptor(ctx, in, info, handler) 21192} 21193 21194func _DlpService_ListJobTriggers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21195 in := new(ListJobTriggersRequest) 21196 if err := dec(in); err != nil { 21197 return nil, err 21198 } 21199 if interceptor == nil { 21200 return srv.(DlpServiceServer).ListJobTriggers(ctx, in) 21201 } 21202 info := &grpc.UnaryServerInfo{ 21203 Server: srv, 21204 FullMethod: "/google.privacy.dlp.v2.DlpService/ListJobTriggers", 21205 } 21206 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21207 return srv.(DlpServiceServer).ListJobTriggers(ctx, req.(*ListJobTriggersRequest)) 21208 } 21209 return interceptor(ctx, in, info, handler) 21210} 21211 21212func _DlpService_DeleteJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21213 in := new(DeleteJobTriggerRequest) 21214 if err := dec(in); err != nil { 21215 return nil, err 21216 } 21217 if interceptor == nil { 21218 return srv.(DlpServiceServer).DeleteJobTrigger(ctx, in) 21219 } 21220 info := &grpc.UnaryServerInfo{ 21221 Server: srv, 21222 FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteJobTrigger", 21223 } 21224 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21225 return srv.(DlpServiceServer).DeleteJobTrigger(ctx, req.(*DeleteJobTriggerRequest)) 21226 } 21227 return interceptor(ctx, in, info, handler) 21228} 21229 21230func _DlpService_ActivateJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21231 in := new(ActivateJobTriggerRequest) 21232 if err := dec(in); err != nil { 21233 return nil, err 21234 } 21235 if interceptor == nil { 21236 return srv.(DlpServiceServer).ActivateJobTrigger(ctx, in) 21237 } 21238 info := &grpc.UnaryServerInfo{ 21239 Server: srv, 21240 FullMethod: "/google.privacy.dlp.v2.DlpService/ActivateJobTrigger", 21241 } 21242 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21243 return srv.(DlpServiceServer).ActivateJobTrigger(ctx, req.(*ActivateJobTriggerRequest)) 21244 } 21245 return interceptor(ctx, in, info, handler) 21246} 21247 21248func _DlpService_CreateDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21249 in := new(CreateDlpJobRequest) 21250 if err := dec(in); err != nil { 21251 return nil, err 21252 } 21253 if interceptor == nil { 21254 return srv.(DlpServiceServer).CreateDlpJob(ctx, in) 21255 } 21256 info := &grpc.UnaryServerInfo{ 21257 Server: srv, 21258 FullMethod: "/google.privacy.dlp.v2.DlpService/CreateDlpJob", 21259 } 21260 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21261 return srv.(DlpServiceServer).CreateDlpJob(ctx, req.(*CreateDlpJobRequest)) 21262 } 21263 return interceptor(ctx, in, info, handler) 21264} 21265 21266func _DlpService_ListDlpJobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21267 in := new(ListDlpJobsRequest) 21268 if err := dec(in); err != nil { 21269 return nil, err 21270 } 21271 if interceptor == nil { 21272 return srv.(DlpServiceServer).ListDlpJobs(ctx, in) 21273 } 21274 info := &grpc.UnaryServerInfo{ 21275 Server: srv, 21276 FullMethod: "/google.privacy.dlp.v2.DlpService/ListDlpJobs", 21277 } 21278 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21279 return srv.(DlpServiceServer).ListDlpJobs(ctx, req.(*ListDlpJobsRequest)) 21280 } 21281 return interceptor(ctx, in, info, handler) 21282} 21283 21284func _DlpService_GetDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21285 in := new(GetDlpJobRequest) 21286 if err := dec(in); err != nil { 21287 return nil, err 21288 } 21289 if interceptor == nil { 21290 return srv.(DlpServiceServer).GetDlpJob(ctx, in) 21291 } 21292 info := &grpc.UnaryServerInfo{ 21293 Server: srv, 21294 FullMethod: "/google.privacy.dlp.v2.DlpService/GetDlpJob", 21295 } 21296 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21297 return srv.(DlpServiceServer).GetDlpJob(ctx, req.(*GetDlpJobRequest)) 21298 } 21299 return interceptor(ctx, in, info, handler) 21300} 21301 21302func _DlpService_DeleteDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21303 in := new(DeleteDlpJobRequest) 21304 if err := dec(in); err != nil { 21305 return nil, err 21306 } 21307 if interceptor == nil { 21308 return srv.(DlpServiceServer).DeleteDlpJob(ctx, in) 21309 } 21310 info := &grpc.UnaryServerInfo{ 21311 Server: srv, 21312 FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteDlpJob", 21313 } 21314 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21315 return srv.(DlpServiceServer).DeleteDlpJob(ctx, req.(*DeleteDlpJobRequest)) 21316 } 21317 return interceptor(ctx, in, info, handler) 21318} 21319 21320func _DlpService_CancelDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21321 in := new(CancelDlpJobRequest) 21322 if err := dec(in); err != nil { 21323 return nil, err 21324 } 21325 if interceptor == nil { 21326 return srv.(DlpServiceServer).CancelDlpJob(ctx, in) 21327 } 21328 info := &grpc.UnaryServerInfo{ 21329 Server: srv, 21330 FullMethod: "/google.privacy.dlp.v2.DlpService/CancelDlpJob", 21331 } 21332 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21333 return srv.(DlpServiceServer).CancelDlpJob(ctx, req.(*CancelDlpJobRequest)) 21334 } 21335 return interceptor(ctx, in, info, handler) 21336} 21337 21338func _DlpService_CreateStoredInfoType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21339 in := new(CreateStoredInfoTypeRequest) 21340 if err := dec(in); err != nil { 21341 return nil, err 21342 } 21343 if interceptor == nil { 21344 return srv.(DlpServiceServer).CreateStoredInfoType(ctx, in) 21345 } 21346 info := &grpc.UnaryServerInfo{ 21347 Server: srv, 21348 FullMethod: "/google.privacy.dlp.v2.DlpService/CreateStoredInfoType", 21349 } 21350 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21351 return srv.(DlpServiceServer).CreateStoredInfoType(ctx, req.(*CreateStoredInfoTypeRequest)) 21352 } 21353 return interceptor(ctx, in, info, handler) 21354} 21355 21356func _DlpService_UpdateStoredInfoType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21357 in := new(UpdateStoredInfoTypeRequest) 21358 if err := dec(in); err != nil { 21359 return nil, err 21360 } 21361 if interceptor == nil { 21362 return srv.(DlpServiceServer).UpdateStoredInfoType(ctx, in) 21363 } 21364 info := &grpc.UnaryServerInfo{ 21365 Server: srv, 21366 FullMethod: "/google.privacy.dlp.v2.DlpService/UpdateStoredInfoType", 21367 } 21368 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21369 return srv.(DlpServiceServer).UpdateStoredInfoType(ctx, req.(*UpdateStoredInfoTypeRequest)) 21370 } 21371 return interceptor(ctx, in, info, handler) 21372} 21373 21374func _DlpService_GetStoredInfoType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21375 in := new(GetStoredInfoTypeRequest) 21376 if err := dec(in); err != nil { 21377 return nil, err 21378 } 21379 if interceptor == nil { 21380 return srv.(DlpServiceServer).GetStoredInfoType(ctx, in) 21381 } 21382 info := &grpc.UnaryServerInfo{ 21383 Server: srv, 21384 FullMethod: "/google.privacy.dlp.v2.DlpService/GetStoredInfoType", 21385 } 21386 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21387 return srv.(DlpServiceServer).GetStoredInfoType(ctx, req.(*GetStoredInfoTypeRequest)) 21388 } 21389 return interceptor(ctx, in, info, handler) 21390} 21391 21392func _DlpService_ListStoredInfoTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21393 in := new(ListStoredInfoTypesRequest) 21394 if err := dec(in); err != nil { 21395 return nil, err 21396 } 21397 if interceptor == nil { 21398 return srv.(DlpServiceServer).ListStoredInfoTypes(ctx, in) 21399 } 21400 info := &grpc.UnaryServerInfo{ 21401 Server: srv, 21402 FullMethod: "/google.privacy.dlp.v2.DlpService/ListStoredInfoTypes", 21403 } 21404 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21405 return srv.(DlpServiceServer).ListStoredInfoTypes(ctx, req.(*ListStoredInfoTypesRequest)) 21406 } 21407 return interceptor(ctx, in, info, handler) 21408} 21409 21410func _DlpService_DeleteStoredInfoType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21411 in := new(DeleteStoredInfoTypeRequest) 21412 if err := dec(in); err != nil { 21413 return nil, err 21414 } 21415 if interceptor == nil { 21416 return srv.(DlpServiceServer).DeleteStoredInfoType(ctx, in) 21417 } 21418 info := &grpc.UnaryServerInfo{ 21419 Server: srv, 21420 FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteStoredInfoType", 21421 } 21422 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21423 return srv.(DlpServiceServer).DeleteStoredInfoType(ctx, req.(*DeleteStoredInfoTypeRequest)) 21424 } 21425 return interceptor(ctx, in, info, handler) 21426} 21427 21428func _DlpService_HybridInspectDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21429 in := new(HybridInspectDlpJobRequest) 21430 if err := dec(in); err != nil { 21431 return nil, err 21432 } 21433 if interceptor == nil { 21434 return srv.(DlpServiceServer).HybridInspectDlpJob(ctx, in) 21435 } 21436 info := &grpc.UnaryServerInfo{ 21437 Server: srv, 21438 FullMethod: "/google.privacy.dlp.v2.DlpService/HybridInspectDlpJob", 21439 } 21440 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21441 return srv.(DlpServiceServer).HybridInspectDlpJob(ctx, req.(*HybridInspectDlpJobRequest)) 21442 } 21443 return interceptor(ctx, in, info, handler) 21444} 21445 21446func _DlpService_FinishDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 21447 in := new(FinishDlpJobRequest) 21448 if err := dec(in); err != nil { 21449 return nil, err 21450 } 21451 if interceptor == nil { 21452 return srv.(DlpServiceServer).FinishDlpJob(ctx, in) 21453 } 21454 info := &grpc.UnaryServerInfo{ 21455 Server: srv, 21456 FullMethod: "/google.privacy.dlp.v2.DlpService/FinishDlpJob", 21457 } 21458 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 21459 return srv.(DlpServiceServer).FinishDlpJob(ctx, req.(*FinishDlpJobRequest)) 21460 } 21461 return interceptor(ctx, in, info, handler) 21462} 21463 21464var _DlpService_serviceDesc = grpc.ServiceDesc{ 21465 ServiceName: "google.privacy.dlp.v2.DlpService", 21466 HandlerType: (*DlpServiceServer)(nil), 21467 Methods: []grpc.MethodDesc{ 21468 { 21469 MethodName: "InspectContent", 21470 Handler: _DlpService_InspectContent_Handler, 21471 }, 21472 { 21473 MethodName: "RedactImage", 21474 Handler: _DlpService_RedactImage_Handler, 21475 }, 21476 { 21477 MethodName: "DeidentifyContent", 21478 Handler: _DlpService_DeidentifyContent_Handler, 21479 }, 21480 { 21481 MethodName: "ReidentifyContent", 21482 Handler: _DlpService_ReidentifyContent_Handler, 21483 }, 21484 { 21485 MethodName: "ListInfoTypes", 21486 Handler: _DlpService_ListInfoTypes_Handler, 21487 }, 21488 { 21489 MethodName: "CreateInspectTemplate", 21490 Handler: _DlpService_CreateInspectTemplate_Handler, 21491 }, 21492 { 21493 MethodName: "UpdateInspectTemplate", 21494 Handler: _DlpService_UpdateInspectTemplate_Handler, 21495 }, 21496 { 21497 MethodName: "GetInspectTemplate", 21498 Handler: _DlpService_GetInspectTemplate_Handler, 21499 }, 21500 { 21501 MethodName: "ListInspectTemplates", 21502 Handler: _DlpService_ListInspectTemplates_Handler, 21503 }, 21504 { 21505 MethodName: "DeleteInspectTemplate", 21506 Handler: _DlpService_DeleteInspectTemplate_Handler, 21507 }, 21508 { 21509 MethodName: "CreateDeidentifyTemplate", 21510 Handler: _DlpService_CreateDeidentifyTemplate_Handler, 21511 }, 21512 { 21513 MethodName: "UpdateDeidentifyTemplate", 21514 Handler: _DlpService_UpdateDeidentifyTemplate_Handler, 21515 }, 21516 { 21517 MethodName: "GetDeidentifyTemplate", 21518 Handler: _DlpService_GetDeidentifyTemplate_Handler, 21519 }, 21520 { 21521 MethodName: "ListDeidentifyTemplates", 21522 Handler: _DlpService_ListDeidentifyTemplates_Handler, 21523 }, 21524 { 21525 MethodName: "DeleteDeidentifyTemplate", 21526 Handler: _DlpService_DeleteDeidentifyTemplate_Handler, 21527 }, 21528 { 21529 MethodName: "CreateJobTrigger", 21530 Handler: _DlpService_CreateJobTrigger_Handler, 21531 }, 21532 { 21533 MethodName: "UpdateJobTrigger", 21534 Handler: _DlpService_UpdateJobTrigger_Handler, 21535 }, 21536 { 21537 MethodName: "HybridInspectJobTrigger", 21538 Handler: _DlpService_HybridInspectJobTrigger_Handler, 21539 }, 21540 { 21541 MethodName: "GetJobTrigger", 21542 Handler: _DlpService_GetJobTrigger_Handler, 21543 }, 21544 { 21545 MethodName: "ListJobTriggers", 21546 Handler: _DlpService_ListJobTriggers_Handler, 21547 }, 21548 { 21549 MethodName: "DeleteJobTrigger", 21550 Handler: _DlpService_DeleteJobTrigger_Handler, 21551 }, 21552 { 21553 MethodName: "ActivateJobTrigger", 21554 Handler: _DlpService_ActivateJobTrigger_Handler, 21555 }, 21556 { 21557 MethodName: "CreateDlpJob", 21558 Handler: _DlpService_CreateDlpJob_Handler, 21559 }, 21560 { 21561 MethodName: "ListDlpJobs", 21562 Handler: _DlpService_ListDlpJobs_Handler, 21563 }, 21564 { 21565 MethodName: "GetDlpJob", 21566 Handler: _DlpService_GetDlpJob_Handler, 21567 }, 21568 { 21569 MethodName: "DeleteDlpJob", 21570 Handler: _DlpService_DeleteDlpJob_Handler, 21571 }, 21572 { 21573 MethodName: "CancelDlpJob", 21574 Handler: _DlpService_CancelDlpJob_Handler, 21575 }, 21576 { 21577 MethodName: "CreateStoredInfoType", 21578 Handler: _DlpService_CreateStoredInfoType_Handler, 21579 }, 21580 { 21581 MethodName: "UpdateStoredInfoType", 21582 Handler: _DlpService_UpdateStoredInfoType_Handler, 21583 }, 21584 { 21585 MethodName: "GetStoredInfoType", 21586 Handler: _DlpService_GetStoredInfoType_Handler, 21587 }, 21588 { 21589 MethodName: "ListStoredInfoTypes", 21590 Handler: _DlpService_ListStoredInfoTypes_Handler, 21591 }, 21592 { 21593 MethodName: "DeleteStoredInfoType", 21594 Handler: _DlpService_DeleteStoredInfoType_Handler, 21595 }, 21596 { 21597 MethodName: "HybridInspectDlpJob", 21598 Handler: _DlpService_HybridInspectDlpJob_Handler, 21599 }, 21600 { 21601 MethodName: "FinishDlpJob", 21602 Handler: _DlpService_FinishDlpJob_Handler, 21603 }, 21604 }, 21605 Streams: []grpc.StreamDesc{}, 21606 Metadata: "google/privacy/dlp/v2/dlp.proto", 21607} 21608