1// Code generated by protoc-gen-go. DO NOT EDIT. 2// source: google/privacy/dlp/v2/storage.proto 3 4package dlp 5 6import ( 7 fmt "fmt" 8 math "math" 9 10 proto "github.com/golang/protobuf/proto" 11 timestamp "github.com/golang/protobuf/ptypes/timestamp" 12 _ "google.golang.org/genproto/googleapis/api/annotations" 13) 14 15// Reference imports to suppress errors if they are not otherwise used. 16var _ = proto.Marshal 17var _ = fmt.Errorf 18var _ = math.Inf 19 20// This is a compile-time assertion to ensure that this generated file 21// is compatible with the proto package it is being compiled against. 22// A compilation error at this line likely means your copy of the 23// proto package needs to be updated. 24const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package 25 26// Categorization of results based on how likely they are to represent a match, 27// based on the number of elements they contain which imply a match. 28type Likelihood int32 29 30const ( 31 // Default value; same as POSSIBLE. 32 Likelihood_LIKELIHOOD_UNSPECIFIED Likelihood = 0 33 // Few matching elements. 34 Likelihood_VERY_UNLIKELY Likelihood = 1 35 Likelihood_UNLIKELY Likelihood = 2 36 // Some matching elements. 37 Likelihood_POSSIBLE Likelihood = 3 38 Likelihood_LIKELY Likelihood = 4 39 // Many matching elements. 40 Likelihood_VERY_LIKELY Likelihood = 5 41) 42 43var Likelihood_name = map[int32]string{ 44 0: "LIKELIHOOD_UNSPECIFIED", 45 1: "VERY_UNLIKELY", 46 2: "UNLIKELY", 47 3: "POSSIBLE", 48 4: "LIKELY", 49 5: "VERY_LIKELY", 50} 51 52var Likelihood_value = map[string]int32{ 53 "LIKELIHOOD_UNSPECIFIED": 0, 54 "VERY_UNLIKELY": 1, 55 "UNLIKELY": 2, 56 "POSSIBLE": 3, 57 "LIKELY": 4, 58 "VERY_LIKELY": 5, 59} 60 61func (x Likelihood) String() string { 62 return proto.EnumName(Likelihood_name, int32(x)) 63} 64 65func (Likelihood) EnumDescriptor() ([]byte, []int) { 66 return fileDescriptor_ab5e749073e1398d, []int{0} 67} 68 69// Definitions of file type groups to scan. 70type FileType int32 71 72const ( 73 // Includes all files. 74 FileType_FILE_TYPE_UNSPECIFIED FileType = 0 75 // Includes all file extensions not covered by text file types. 76 FileType_BINARY_FILE FileType = 1 77 // Included file extensions: 78 // asc, brf, c, cc, cpp, csv, cxx, c++, cs, css, dart, eml, go, h, hh, hpp, 79 // hxx, h++, hs, html, htm, shtml, shtm, xhtml, lhs, ini, java, js, json, 80 // ocaml, md, mkd, markdown, m, ml, mli, pl, pm, php, phtml, pht, py, pyw, 81 // rb, rbw, rs, rc, scala, sh, sql, tex, txt, text, tsv, vcard, vcs, wml, 82 // xml, xsl, xsd, yml, yaml. 83 FileType_TEXT_FILE FileType = 2 84 // Included file extensions: 85 // bmp, gif, jpg, jpeg, jpe, png. 86 // bytes_limit_per_file has no effect on image files. 87 FileType_IMAGE FileType = 3 88 // Included file extensions: 89 // avro 90 FileType_AVRO FileType = 7 91) 92 93var FileType_name = map[int32]string{ 94 0: "FILE_TYPE_UNSPECIFIED", 95 1: "BINARY_FILE", 96 2: "TEXT_FILE", 97 3: "IMAGE", 98 7: "AVRO", 99} 100 101var FileType_value = map[string]int32{ 102 "FILE_TYPE_UNSPECIFIED": 0, 103 "BINARY_FILE": 1, 104 "TEXT_FILE": 2, 105 "IMAGE": 3, 106 "AVRO": 7, 107} 108 109func (x FileType) String() string { 110 return proto.EnumName(FileType_name, int32(x)) 111} 112 113func (FileType) EnumDescriptor() ([]byte, []int) { 114 return fileDescriptor_ab5e749073e1398d, []int{1} 115} 116 117type CustomInfoType_ExclusionType int32 118 119const ( 120 // A finding of this custom info type will not be excluded from results. 121 CustomInfoType_EXCLUSION_TYPE_UNSPECIFIED CustomInfoType_ExclusionType = 0 122 // A finding of this custom info type will be excluded from final results, 123 // but can still affect rule execution. 124 CustomInfoType_EXCLUSION_TYPE_EXCLUDE CustomInfoType_ExclusionType = 1 125) 126 127var CustomInfoType_ExclusionType_name = map[int32]string{ 128 0: "EXCLUSION_TYPE_UNSPECIFIED", 129 1: "EXCLUSION_TYPE_EXCLUDE", 130} 131 132var CustomInfoType_ExclusionType_value = map[string]int32{ 133 "EXCLUSION_TYPE_UNSPECIFIED": 0, 134 "EXCLUSION_TYPE_EXCLUDE": 1, 135} 136 137func (x CustomInfoType_ExclusionType) String() string { 138 return proto.EnumName(CustomInfoType_ExclusionType_name, int32(x)) 139} 140 141func (CustomInfoType_ExclusionType) EnumDescriptor() ([]byte, []int) { 142 return fileDescriptor_ab5e749073e1398d, []int{2, 0} 143} 144 145// How to sample bytes if not all bytes are scanned. Meaningful only when used 146// in conjunction with bytes_limit_per_file. If not specified, scanning would 147// start from the top. 148type CloudStorageOptions_SampleMethod int32 149 150const ( 151 CloudStorageOptions_SAMPLE_METHOD_UNSPECIFIED CloudStorageOptions_SampleMethod = 0 152 // Scan from the top (default). 153 CloudStorageOptions_TOP CloudStorageOptions_SampleMethod = 1 154 // For each file larger than bytes_limit_per_file, randomly pick the offset 155 // to start scanning. The scanned bytes are contiguous. 156 CloudStorageOptions_RANDOM_START CloudStorageOptions_SampleMethod = 2 157) 158 159var CloudStorageOptions_SampleMethod_name = map[int32]string{ 160 0: "SAMPLE_METHOD_UNSPECIFIED", 161 1: "TOP", 162 2: "RANDOM_START", 163} 164 165var CloudStorageOptions_SampleMethod_value = map[string]int32{ 166 "SAMPLE_METHOD_UNSPECIFIED": 0, 167 "TOP": 1, 168 "RANDOM_START": 2, 169} 170 171func (x CloudStorageOptions_SampleMethod) String() string { 172 return proto.EnumName(CloudStorageOptions_SampleMethod_name, int32(x)) 173} 174 175func (CloudStorageOptions_SampleMethod) EnumDescriptor() ([]byte, []int) { 176 return fileDescriptor_ab5e749073e1398d, []int{8, 0} 177} 178 179// How to sample rows if not all rows are scanned. Meaningful only when used 180// in conjunction with either rows_limit or rows_limit_percent. If not 181// specified, scanning would start from the top. 182type BigQueryOptions_SampleMethod int32 183 184const ( 185 BigQueryOptions_SAMPLE_METHOD_UNSPECIFIED BigQueryOptions_SampleMethod = 0 186 // Scan from the top (default). 187 BigQueryOptions_TOP BigQueryOptions_SampleMethod = 1 188 // Randomly pick the row to start scanning. The scanned rows are contiguous. 189 BigQueryOptions_RANDOM_START BigQueryOptions_SampleMethod = 2 190) 191 192var BigQueryOptions_SampleMethod_name = map[int32]string{ 193 0: "SAMPLE_METHOD_UNSPECIFIED", 194 1: "TOP", 195 2: "RANDOM_START", 196} 197 198var BigQueryOptions_SampleMethod_value = map[string]int32{ 199 "SAMPLE_METHOD_UNSPECIFIED": 0, 200 "TOP": 1, 201 "RANDOM_START": 2, 202} 203 204func (x BigQueryOptions_SampleMethod) String() string { 205 return proto.EnumName(BigQueryOptions_SampleMethod_name, int32(x)) 206} 207 208func (BigQueryOptions_SampleMethod) EnumDescriptor() ([]byte, []int) { 209 return fileDescriptor_ab5e749073e1398d, []int{11, 0} 210} 211 212// Type of information detected by the API. 213type InfoType struct { 214 // Name of the information type. Either a name of your choosing when 215 // creating a CustomInfoType, or one of the names listed 216 // at https://cloud.google.com/dlp/docs/infotypes-reference when specifying 217 // a built-in type. InfoType names should conform to the pattern 218 // [a-zA-Z0-9_]{1,64}. 219 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 220 XXX_NoUnkeyedLiteral struct{} `json:"-"` 221 XXX_unrecognized []byte `json:"-"` 222 XXX_sizecache int32 `json:"-"` 223} 224 225func (m *InfoType) Reset() { *m = InfoType{} } 226func (m *InfoType) String() string { return proto.CompactTextString(m) } 227func (*InfoType) ProtoMessage() {} 228func (*InfoType) Descriptor() ([]byte, []int) { 229 return fileDescriptor_ab5e749073e1398d, []int{0} 230} 231 232func (m *InfoType) XXX_Unmarshal(b []byte) error { 233 return xxx_messageInfo_InfoType.Unmarshal(m, b) 234} 235func (m *InfoType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 236 return xxx_messageInfo_InfoType.Marshal(b, m, deterministic) 237} 238func (m *InfoType) XXX_Merge(src proto.Message) { 239 xxx_messageInfo_InfoType.Merge(m, src) 240} 241func (m *InfoType) XXX_Size() int { 242 return xxx_messageInfo_InfoType.Size(m) 243} 244func (m *InfoType) XXX_DiscardUnknown() { 245 xxx_messageInfo_InfoType.DiscardUnknown(m) 246} 247 248var xxx_messageInfo_InfoType proto.InternalMessageInfo 249 250func (m *InfoType) GetName() string { 251 if m != nil { 252 return m.Name 253 } 254 return "" 255} 256 257// A reference to a StoredInfoType to use with scanning. 258type StoredType struct { 259 // Resource name of the requested `StoredInfoType`, for example 260 // `organizations/433245324/storedInfoTypes/432452342` or 261 // `projects/project-id/storedInfoTypes/432452342`. 262 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 263 // Timestamp indicating when the version of the `StoredInfoType` used for 264 // inspection was created. Output-only field, populated by the system. 265 CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 266 XXX_NoUnkeyedLiteral struct{} `json:"-"` 267 XXX_unrecognized []byte `json:"-"` 268 XXX_sizecache int32 `json:"-"` 269} 270 271func (m *StoredType) Reset() { *m = StoredType{} } 272func (m *StoredType) String() string { return proto.CompactTextString(m) } 273func (*StoredType) ProtoMessage() {} 274func (*StoredType) Descriptor() ([]byte, []int) { 275 return fileDescriptor_ab5e749073e1398d, []int{1} 276} 277 278func (m *StoredType) XXX_Unmarshal(b []byte) error { 279 return xxx_messageInfo_StoredType.Unmarshal(m, b) 280} 281func (m *StoredType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 282 return xxx_messageInfo_StoredType.Marshal(b, m, deterministic) 283} 284func (m *StoredType) XXX_Merge(src proto.Message) { 285 xxx_messageInfo_StoredType.Merge(m, src) 286} 287func (m *StoredType) XXX_Size() int { 288 return xxx_messageInfo_StoredType.Size(m) 289} 290func (m *StoredType) XXX_DiscardUnknown() { 291 xxx_messageInfo_StoredType.DiscardUnknown(m) 292} 293 294var xxx_messageInfo_StoredType proto.InternalMessageInfo 295 296func (m *StoredType) GetName() string { 297 if m != nil { 298 return m.Name 299 } 300 return "" 301} 302 303func (m *StoredType) GetCreateTime() *timestamp.Timestamp { 304 if m != nil { 305 return m.CreateTime 306 } 307 return nil 308} 309 310// Custom information type provided by the user. Used to find domain-specific 311// sensitive information configurable to the data in question. 312type CustomInfoType struct { 313 // CustomInfoType can either be a new infoType, or an extension of built-in 314 // infoType, when the name matches one of existing infoTypes and that infoType 315 // is specified in `InspectContent.info_types` field. Specifying the latter 316 // adds findings to the one detected by the system. If built-in info type is 317 // not specified in `InspectContent.info_types` list then the name is treated 318 // as a custom info type. 319 InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"` 320 // Likelihood to return for this CustomInfoType. This base value can be 321 // altered by a detection rule if the finding meets the criteria specified by 322 // the rule. Defaults to `VERY_LIKELY` if not specified. 323 Likelihood Likelihood `protobuf:"varint,6,opt,name=likelihood,proto3,enum=google.privacy.dlp.v2.Likelihood" json:"likelihood,omitempty"` 324 // Types that are valid to be assigned to Type: 325 // *CustomInfoType_Dictionary_ 326 // *CustomInfoType_Regex_ 327 // *CustomInfoType_SurrogateType_ 328 // *CustomInfoType_StoredType 329 Type isCustomInfoType_Type `protobuf_oneof:"type"` 330 // Set of detection rules to apply to all findings of this CustomInfoType. 331 // Rules are applied in order that they are specified. Not supported for the 332 // `surrogate_type` CustomInfoType. 333 DetectionRules []*CustomInfoType_DetectionRule `protobuf:"bytes,7,rep,name=detection_rules,json=detectionRules,proto3" json:"detection_rules,omitempty"` 334 // If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding 335 // to be returned. It still can be used for rules matching. 336 ExclusionType CustomInfoType_ExclusionType `protobuf:"varint,8,opt,name=exclusion_type,json=exclusionType,proto3,enum=google.privacy.dlp.v2.CustomInfoType_ExclusionType" json:"exclusion_type,omitempty"` 337 XXX_NoUnkeyedLiteral struct{} `json:"-"` 338 XXX_unrecognized []byte `json:"-"` 339 XXX_sizecache int32 `json:"-"` 340} 341 342func (m *CustomInfoType) Reset() { *m = CustomInfoType{} } 343func (m *CustomInfoType) String() string { return proto.CompactTextString(m) } 344func (*CustomInfoType) ProtoMessage() {} 345func (*CustomInfoType) Descriptor() ([]byte, []int) { 346 return fileDescriptor_ab5e749073e1398d, []int{2} 347} 348 349func (m *CustomInfoType) XXX_Unmarshal(b []byte) error { 350 return xxx_messageInfo_CustomInfoType.Unmarshal(m, b) 351} 352func (m *CustomInfoType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 353 return xxx_messageInfo_CustomInfoType.Marshal(b, m, deterministic) 354} 355func (m *CustomInfoType) XXX_Merge(src proto.Message) { 356 xxx_messageInfo_CustomInfoType.Merge(m, src) 357} 358func (m *CustomInfoType) XXX_Size() int { 359 return xxx_messageInfo_CustomInfoType.Size(m) 360} 361func (m *CustomInfoType) XXX_DiscardUnknown() { 362 xxx_messageInfo_CustomInfoType.DiscardUnknown(m) 363} 364 365var xxx_messageInfo_CustomInfoType proto.InternalMessageInfo 366 367func (m *CustomInfoType) GetInfoType() *InfoType { 368 if m != nil { 369 return m.InfoType 370 } 371 return nil 372} 373 374func (m *CustomInfoType) GetLikelihood() Likelihood { 375 if m != nil { 376 return m.Likelihood 377 } 378 return Likelihood_LIKELIHOOD_UNSPECIFIED 379} 380 381type isCustomInfoType_Type interface { 382 isCustomInfoType_Type() 383} 384 385type CustomInfoType_Dictionary_ struct { 386 Dictionary *CustomInfoType_Dictionary `protobuf:"bytes,2,opt,name=dictionary,proto3,oneof"` 387} 388 389type CustomInfoType_Regex_ struct { 390 Regex *CustomInfoType_Regex `protobuf:"bytes,3,opt,name=regex,proto3,oneof"` 391} 392 393type CustomInfoType_SurrogateType_ struct { 394 SurrogateType *CustomInfoType_SurrogateType `protobuf:"bytes,4,opt,name=surrogate_type,json=surrogateType,proto3,oneof"` 395} 396 397type CustomInfoType_StoredType struct { 398 StoredType *StoredType `protobuf:"bytes,5,opt,name=stored_type,json=storedType,proto3,oneof"` 399} 400 401func (*CustomInfoType_Dictionary_) isCustomInfoType_Type() {} 402 403func (*CustomInfoType_Regex_) isCustomInfoType_Type() {} 404 405func (*CustomInfoType_SurrogateType_) isCustomInfoType_Type() {} 406 407func (*CustomInfoType_StoredType) isCustomInfoType_Type() {} 408 409func (m *CustomInfoType) GetType() isCustomInfoType_Type { 410 if m != nil { 411 return m.Type 412 } 413 return nil 414} 415 416func (m *CustomInfoType) GetDictionary() *CustomInfoType_Dictionary { 417 if x, ok := m.GetType().(*CustomInfoType_Dictionary_); ok { 418 return x.Dictionary 419 } 420 return nil 421} 422 423func (m *CustomInfoType) GetRegex() *CustomInfoType_Regex { 424 if x, ok := m.GetType().(*CustomInfoType_Regex_); ok { 425 return x.Regex 426 } 427 return nil 428} 429 430func (m *CustomInfoType) GetSurrogateType() *CustomInfoType_SurrogateType { 431 if x, ok := m.GetType().(*CustomInfoType_SurrogateType_); ok { 432 return x.SurrogateType 433 } 434 return nil 435} 436 437func (m *CustomInfoType) GetStoredType() *StoredType { 438 if x, ok := m.GetType().(*CustomInfoType_StoredType); ok { 439 return x.StoredType 440 } 441 return nil 442} 443 444func (m *CustomInfoType) GetDetectionRules() []*CustomInfoType_DetectionRule { 445 if m != nil { 446 return m.DetectionRules 447 } 448 return nil 449} 450 451func (m *CustomInfoType) GetExclusionType() CustomInfoType_ExclusionType { 452 if m != nil { 453 return m.ExclusionType 454 } 455 return CustomInfoType_EXCLUSION_TYPE_UNSPECIFIED 456} 457 458// XXX_OneofWrappers is for the internal use of the proto package. 459func (*CustomInfoType) XXX_OneofWrappers() []interface{} { 460 return []interface{}{ 461 (*CustomInfoType_Dictionary_)(nil), 462 (*CustomInfoType_Regex_)(nil), 463 (*CustomInfoType_SurrogateType_)(nil), 464 (*CustomInfoType_StoredType)(nil), 465 } 466} 467 468// Custom information type based on a dictionary of words or phrases. This can 469// be used to match sensitive information specific to the data, such as a list 470// of employee IDs or job titles. 471// 472// Dictionary words are case-insensitive and all characters other than letters 473// and digits in the unicode [Basic Multilingual 474// Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29#Basic_Multilingual_Plane) 475// will be replaced with whitespace when scanning for matches, so the 476// dictionary phrase "Sam Johnson" will match all three phrases "sam johnson", 477// "Sam, Johnson", and "Sam (Johnson)". Additionally, the characters 478// surrounding any match must be of a different type than the adjacent 479// characters within the word, so letters must be next to non-letters and 480// digits next to non-digits. For example, the dictionary word "jen" will 481// match the first three letters of the text "jen123" but will return no 482// matches for "jennifer". 483// 484// Dictionary words containing a large number of characters that are not 485// letters or digits may result in unexpected findings because such characters 486// are treated as whitespace. The 487// [limits](https://cloud.google.com/dlp/limits) page contains details about 488// the size limits of dictionaries. For dictionaries that do not fit within 489// these constraints, consider using `LargeCustomDictionaryConfig` in the 490// `StoredInfoType` API. 491type CustomInfoType_Dictionary struct { 492 // Types that are valid to be assigned to Source: 493 // *CustomInfoType_Dictionary_WordList_ 494 // *CustomInfoType_Dictionary_CloudStoragePath 495 Source isCustomInfoType_Dictionary_Source `protobuf_oneof:"source"` 496 XXX_NoUnkeyedLiteral struct{} `json:"-"` 497 XXX_unrecognized []byte `json:"-"` 498 XXX_sizecache int32 `json:"-"` 499} 500 501func (m *CustomInfoType_Dictionary) Reset() { *m = CustomInfoType_Dictionary{} } 502func (m *CustomInfoType_Dictionary) String() string { return proto.CompactTextString(m) } 503func (*CustomInfoType_Dictionary) ProtoMessage() {} 504func (*CustomInfoType_Dictionary) Descriptor() ([]byte, []int) { 505 return fileDescriptor_ab5e749073e1398d, []int{2, 0} 506} 507 508func (m *CustomInfoType_Dictionary) XXX_Unmarshal(b []byte) error { 509 return xxx_messageInfo_CustomInfoType_Dictionary.Unmarshal(m, b) 510} 511func (m *CustomInfoType_Dictionary) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 512 return xxx_messageInfo_CustomInfoType_Dictionary.Marshal(b, m, deterministic) 513} 514func (m *CustomInfoType_Dictionary) XXX_Merge(src proto.Message) { 515 xxx_messageInfo_CustomInfoType_Dictionary.Merge(m, src) 516} 517func (m *CustomInfoType_Dictionary) XXX_Size() int { 518 return xxx_messageInfo_CustomInfoType_Dictionary.Size(m) 519} 520func (m *CustomInfoType_Dictionary) XXX_DiscardUnknown() { 521 xxx_messageInfo_CustomInfoType_Dictionary.DiscardUnknown(m) 522} 523 524var xxx_messageInfo_CustomInfoType_Dictionary proto.InternalMessageInfo 525 526type isCustomInfoType_Dictionary_Source interface { 527 isCustomInfoType_Dictionary_Source() 528} 529 530type CustomInfoType_Dictionary_WordList_ struct { 531 WordList *CustomInfoType_Dictionary_WordList `protobuf:"bytes,1,opt,name=word_list,json=wordList,proto3,oneof"` 532} 533 534type CustomInfoType_Dictionary_CloudStoragePath struct { 535 CloudStoragePath *CloudStoragePath `protobuf:"bytes,3,opt,name=cloud_storage_path,json=cloudStoragePath,proto3,oneof"` 536} 537 538func (*CustomInfoType_Dictionary_WordList_) isCustomInfoType_Dictionary_Source() {} 539 540func (*CustomInfoType_Dictionary_CloudStoragePath) isCustomInfoType_Dictionary_Source() {} 541 542func (m *CustomInfoType_Dictionary) GetSource() isCustomInfoType_Dictionary_Source { 543 if m != nil { 544 return m.Source 545 } 546 return nil 547} 548 549func (m *CustomInfoType_Dictionary) GetWordList() *CustomInfoType_Dictionary_WordList { 550 if x, ok := m.GetSource().(*CustomInfoType_Dictionary_WordList_); ok { 551 return x.WordList 552 } 553 return nil 554} 555 556func (m *CustomInfoType_Dictionary) GetCloudStoragePath() *CloudStoragePath { 557 if x, ok := m.GetSource().(*CustomInfoType_Dictionary_CloudStoragePath); ok { 558 return x.CloudStoragePath 559 } 560 return nil 561} 562 563// XXX_OneofWrappers is for the internal use of the proto package. 564func (*CustomInfoType_Dictionary) XXX_OneofWrappers() []interface{} { 565 return []interface{}{ 566 (*CustomInfoType_Dictionary_WordList_)(nil), 567 (*CustomInfoType_Dictionary_CloudStoragePath)(nil), 568 } 569} 570 571// Message defining a list of words or phrases to search for in the data. 572type CustomInfoType_Dictionary_WordList struct { 573 // Words or phrases defining the dictionary. The dictionary must contain 574 // at least one phrase and every phrase must contain at least 2 characters 575 // that are letters or digits. [required] 576 Words []string `protobuf:"bytes,1,rep,name=words,proto3" json:"words,omitempty"` 577 XXX_NoUnkeyedLiteral struct{} `json:"-"` 578 XXX_unrecognized []byte `json:"-"` 579 XXX_sizecache int32 `json:"-"` 580} 581 582func (m *CustomInfoType_Dictionary_WordList) Reset() { *m = CustomInfoType_Dictionary_WordList{} } 583func (m *CustomInfoType_Dictionary_WordList) String() string { return proto.CompactTextString(m) } 584func (*CustomInfoType_Dictionary_WordList) ProtoMessage() {} 585func (*CustomInfoType_Dictionary_WordList) Descriptor() ([]byte, []int) { 586 return fileDescriptor_ab5e749073e1398d, []int{2, 0, 0} 587} 588 589func (m *CustomInfoType_Dictionary_WordList) XXX_Unmarshal(b []byte) error { 590 return xxx_messageInfo_CustomInfoType_Dictionary_WordList.Unmarshal(m, b) 591} 592func (m *CustomInfoType_Dictionary_WordList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 593 return xxx_messageInfo_CustomInfoType_Dictionary_WordList.Marshal(b, m, deterministic) 594} 595func (m *CustomInfoType_Dictionary_WordList) XXX_Merge(src proto.Message) { 596 xxx_messageInfo_CustomInfoType_Dictionary_WordList.Merge(m, src) 597} 598func (m *CustomInfoType_Dictionary_WordList) XXX_Size() int { 599 return xxx_messageInfo_CustomInfoType_Dictionary_WordList.Size(m) 600} 601func (m *CustomInfoType_Dictionary_WordList) XXX_DiscardUnknown() { 602 xxx_messageInfo_CustomInfoType_Dictionary_WordList.DiscardUnknown(m) 603} 604 605var xxx_messageInfo_CustomInfoType_Dictionary_WordList proto.InternalMessageInfo 606 607func (m *CustomInfoType_Dictionary_WordList) GetWords() []string { 608 if m != nil { 609 return m.Words 610 } 611 return nil 612} 613 614// Message defining a custom regular expression. 615type CustomInfoType_Regex struct { 616 // Pattern defining the regular expression. Its syntax 617 // (https://github.com/google/re2/wiki/Syntax) can be found under the 618 // google/re2 repository on GitHub. 619 Pattern string `protobuf:"bytes,1,opt,name=pattern,proto3" json:"pattern,omitempty"` 620 // The index of the submatch to extract as findings. When not 621 // specified, the entire match is returned. No more than 3 may be included. 622 GroupIndexes []int32 `protobuf:"varint,2,rep,packed,name=group_indexes,json=groupIndexes,proto3" json:"group_indexes,omitempty"` 623 XXX_NoUnkeyedLiteral struct{} `json:"-"` 624 XXX_unrecognized []byte `json:"-"` 625 XXX_sizecache int32 `json:"-"` 626} 627 628func (m *CustomInfoType_Regex) Reset() { *m = CustomInfoType_Regex{} } 629func (m *CustomInfoType_Regex) String() string { return proto.CompactTextString(m) } 630func (*CustomInfoType_Regex) ProtoMessage() {} 631func (*CustomInfoType_Regex) Descriptor() ([]byte, []int) { 632 return fileDescriptor_ab5e749073e1398d, []int{2, 1} 633} 634 635func (m *CustomInfoType_Regex) XXX_Unmarshal(b []byte) error { 636 return xxx_messageInfo_CustomInfoType_Regex.Unmarshal(m, b) 637} 638func (m *CustomInfoType_Regex) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 639 return xxx_messageInfo_CustomInfoType_Regex.Marshal(b, m, deterministic) 640} 641func (m *CustomInfoType_Regex) XXX_Merge(src proto.Message) { 642 xxx_messageInfo_CustomInfoType_Regex.Merge(m, src) 643} 644func (m *CustomInfoType_Regex) XXX_Size() int { 645 return xxx_messageInfo_CustomInfoType_Regex.Size(m) 646} 647func (m *CustomInfoType_Regex) XXX_DiscardUnknown() { 648 xxx_messageInfo_CustomInfoType_Regex.DiscardUnknown(m) 649} 650 651var xxx_messageInfo_CustomInfoType_Regex proto.InternalMessageInfo 652 653func (m *CustomInfoType_Regex) GetPattern() string { 654 if m != nil { 655 return m.Pattern 656 } 657 return "" 658} 659 660func (m *CustomInfoType_Regex) GetGroupIndexes() []int32 { 661 if m != nil { 662 return m.GroupIndexes 663 } 664 return nil 665} 666 667// Message for detecting output from deidentification transformations 668// such as 669// [`CryptoReplaceFfxFpeConfig`](/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig). 670// These types of transformations are 671// those that perform pseudonymization, thereby producing a "surrogate" as 672// output. This should be used in conjunction with a field on the 673// transformation such as `surrogate_info_type`. This CustomInfoType does 674// not support the use of `detection_rules`. 675type CustomInfoType_SurrogateType struct { 676 XXX_NoUnkeyedLiteral struct{} `json:"-"` 677 XXX_unrecognized []byte `json:"-"` 678 XXX_sizecache int32 `json:"-"` 679} 680 681func (m *CustomInfoType_SurrogateType) Reset() { *m = CustomInfoType_SurrogateType{} } 682func (m *CustomInfoType_SurrogateType) String() string { return proto.CompactTextString(m) } 683func (*CustomInfoType_SurrogateType) ProtoMessage() {} 684func (*CustomInfoType_SurrogateType) Descriptor() ([]byte, []int) { 685 return fileDescriptor_ab5e749073e1398d, []int{2, 2} 686} 687 688func (m *CustomInfoType_SurrogateType) XXX_Unmarshal(b []byte) error { 689 return xxx_messageInfo_CustomInfoType_SurrogateType.Unmarshal(m, b) 690} 691func (m *CustomInfoType_SurrogateType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 692 return xxx_messageInfo_CustomInfoType_SurrogateType.Marshal(b, m, deterministic) 693} 694func (m *CustomInfoType_SurrogateType) XXX_Merge(src proto.Message) { 695 xxx_messageInfo_CustomInfoType_SurrogateType.Merge(m, src) 696} 697func (m *CustomInfoType_SurrogateType) XXX_Size() int { 698 return xxx_messageInfo_CustomInfoType_SurrogateType.Size(m) 699} 700func (m *CustomInfoType_SurrogateType) XXX_DiscardUnknown() { 701 xxx_messageInfo_CustomInfoType_SurrogateType.DiscardUnknown(m) 702} 703 704var xxx_messageInfo_CustomInfoType_SurrogateType proto.InternalMessageInfo 705 706// Deprecated; use `InspectionRuleSet` instead. Rule for modifying a 707// `CustomInfoType` to alter behavior under certain circumstances, depending 708// on the specific details of the rule. Not supported for the `surrogate_type` 709// custom infoType. 710type CustomInfoType_DetectionRule struct { 711 // Types that are valid to be assigned to Type: 712 // *CustomInfoType_DetectionRule_HotwordRule_ 713 Type isCustomInfoType_DetectionRule_Type `protobuf_oneof:"type"` 714 XXX_NoUnkeyedLiteral struct{} `json:"-"` 715 XXX_unrecognized []byte `json:"-"` 716 XXX_sizecache int32 `json:"-"` 717} 718 719func (m *CustomInfoType_DetectionRule) Reset() { *m = CustomInfoType_DetectionRule{} } 720func (m *CustomInfoType_DetectionRule) String() string { return proto.CompactTextString(m) } 721func (*CustomInfoType_DetectionRule) ProtoMessage() {} 722func (*CustomInfoType_DetectionRule) Descriptor() ([]byte, []int) { 723 return fileDescriptor_ab5e749073e1398d, []int{2, 3} 724} 725 726func (m *CustomInfoType_DetectionRule) XXX_Unmarshal(b []byte) error { 727 return xxx_messageInfo_CustomInfoType_DetectionRule.Unmarshal(m, b) 728} 729func (m *CustomInfoType_DetectionRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 730 return xxx_messageInfo_CustomInfoType_DetectionRule.Marshal(b, m, deterministic) 731} 732func (m *CustomInfoType_DetectionRule) XXX_Merge(src proto.Message) { 733 xxx_messageInfo_CustomInfoType_DetectionRule.Merge(m, src) 734} 735func (m *CustomInfoType_DetectionRule) XXX_Size() int { 736 return xxx_messageInfo_CustomInfoType_DetectionRule.Size(m) 737} 738func (m *CustomInfoType_DetectionRule) XXX_DiscardUnknown() { 739 xxx_messageInfo_CustomInfoType_DetectionRule.DiscardUnknown(m) 740} 741 742var xxx_messageInfo_CustomInfoType_DetectionRule proto.InternalMessageInfo 743 744type isCustomInfoType_DetectionRule_Type interface { 745 isCustomInfoType_DetectionRule_Type() 746} 747 748type CustomInfoType_DetectionRule_HotwordRule_ struct { 749 HotwordRule *CustomInfoType_DetectionRule_HotwordRule `protobuf:"bytes,1,opt,name=hotword_rule,json=hotwordRule,proto3,oneof"` 750} 751 752func (*CustomInfoType_DetectionRule_HotwordRule_) isCustomInfoType_DetectionRule_Type() {} 753 754func (m *CustomInfoType_DetectionRule) GetType() isCustomInfoType_DetectionRule_Type { 755 if m != nil { 756 return m.Type 757 } 758 return nil 759} 760 761func (m *CustomInfoType_DetectionRule) GetHotwordRule() *CustomInfoType_DetectionRule_HotwordRule { 762 if x, ok := m.GetType().(*CustomInfoType_DetectionRule_HotwordRule_); ok { 763 return x.HotwordRule 764 } 765 return nil 766} 767 768// XXX_OneofWrappers is for the internal use of the proto package. 769func (*CustomInfoType_DetectionRule) XXX_OneofWrappers() []interface{} { 770 return []interface{}{ 771 (*CustomInfoType_DetectionRule_HotwordRule_)(nil), 772 } 773} 774 775// Message for specifying a window around a finding to apply a detection 776// rule. 777type CustomInfoType_DetectionRule_Proximity struct { 778 // Number of characters before the finding to consider. 779 WindowBefore int32 `protobuf:"varint,1,opt,name=window_before,json=windowBefore,proto3" json:"window_before,omitempty"` 780 // Number of characters after the finding to consider. 781 WindowAfter int32 `protobuf:"varint,2,opt,name=window_after,json=windowAfter,proto3" json:"window_after,omitempty"` 782 XXX_NoUnkeyedLiteral struct{} `json:"-"` 783 XXX_unrecognized []byte `json:"-"` 784 XXX_sizecache int32 `json:"-"` 785} 786 787func (m *CustomInfoType_DetectionRule_Proximity) Reset() { 788 *m = CustomInfoType_DetectionRule_Proximity{} 789} 790func (m *CustomInfoType_DetectionRule_Proximity) String() string { return proto.CompactTextString(m) } 791func (*CustomInfoType_DetectionRule_Proximity) ProtoMessage() {} 792func (*CustomInfoType_DetectionRule_Proximity) Descriptor() ([]byte, []int) { 793 return fileDescriptor_ab5e749073e1398d, []int{2, 3, 0} 794} 795 796func (m *CustomInfoType_DetectionRule_Proximity) XXX_Unmarshal(b []byte) error { 797 return xxx_messageInfo_CustomInfoType_DetectionRule_Proximity.Unmarshal(m, b) 798} 799func (m *CustomInfoType_DetectionRule_Proximity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 800 return xxx_messageInfo_CustomInfoType_DetectionRule_Proximity.Marshal(b, m, deterministic) 801} 802func (m *CustomInfoType_DetectionRule_Proximity) XXX_Merge(src proto.Message) { 803 xxx_messageInfo_CustomInfoType_DetectionRule_Proximity.Merge(m, src) 804} 805func (m *CustomInfoType_DetectionRule_Proximity) XXX_Size() int { 806 return xxx_messageInfo_CustomInfoType_DetectionRule_Proximity.Size(m) 807} 808func (m *CustomInfoType_DetectionRule_Proximity) XXX_DiscardUnknown() { 809 xxx_messageInfo_CustomInfoType_DetectionRule_Proximity.DiscardUnknown(m) 810} 811 812var xxx_messageInfo_CustomInfoType_DetectionRule_Proximity proto.InternalMessageInfo 813 814func (m *CustomInfoType_DetectionRule_Proximity) GetWindowBefore() int32 { 815 if m != nil { 816 return m.WindowBefore 817 } 818 return 0 819} 820 821func (m *CustomInfoType_DetectionRule_Proximity) GetWindowAfter() int32 { 822 if m != nil { 823 return m.WindowAfter 824 } 825 return 0 826} 827 828// Message for specifying an adjustment to the likelihood of a finding as 829// part of a detection rule. 830type CustomInfoType_DetectionRule_LikelihoodAdjustment struct { 831 // Types that are valid to be assigned to Adjustment: 832 // *CustomInfoType_DetectionRule_LikelihoodAdjustment_FixedLikelihood 833 // *CustomInfoType_DetectionRule_LikelihoodAdjustment_RelativeLikelihood 834 Adjustment isCustomInfoType_DetectionRule_LikelihoodAdjustment_Adjustment `protobuf_oneof:"adjustment"` 835 XXX_NoUnkeyedLiteral struct{} `json:"-"` 836 XXX_unrecognized []byte `json:"-"` 837 XXX_sizecache int32 `json:"-"` 838} 839 840func (m *CustomInfoType_DetectionRule_LikelihoodAdjustment) Reset() { 841 *m = CustomInfoType_DetectionRule_LikelihoodAdjustment{} 842} 843func (m *CustomInfoType_DetectionRule_LikelihoodAdjustment) String() string { 844 return proto.CompactTextString(m) 845} 846func (*CustomInfoType_DetectionRule_LikelihoodAdjustment) ProtoMessage() {} 847func (*CustomInfoType_DetectionRule_LikelihoodAdjustment) Descriptor() ([]byte, []int) { 848 return fileDescriptor_ab5e749073e1398d, []int{2, 3, 1} 849} 850 851func (m *CustomInfoType_DetectionRule_LikelihoodAdjustment) XXX_Unmarshal(b []byte) error { 852 return xxx_messageInfo_CustomInfoType_DetectionRule_LikelihoodAdjustment.Unmarshal(m, b) 853} 854func (m *CustomInfoType_DetectionRule_LikelihoodAdjustment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 855 return xxx_messageInfo_CustomInfoType_DetectionRule_LikelihoodAdjustment.Marshal(b, m, deterministic) 856} 857func (m *CustomInfoType_DetectionRule_LikelihoodAdjustment) XXX_Merge(src proto.Message) { 858 xxx_messageInfo_CustomInfoType_DetectionRule_LikelihoodAdjustment.Merge(m, src) 859} 860func (m *CustomInfoType_DetectionRule_LikelihoodAdjustment) XXX_Size() int { 861 return xxx_messageInfo_CustomInfoType_DetectionRule_LikelihoodAdjustment.Size(m) 862} 863func (m *CustomInfoType_DetectionRule_LikelihoodAdjustment) XXX_DiscardUnknown() { 864 xxx_messageInfo_CustomInfoType_DetectionRule_LikelihoodAdjustment.DiscardUnknown(m) 865} 866 867var xxx_messageInfo_CustomInfoType_DetectionRule_LikelihoodAdjustment proto.InternalMessageInfo 868 869type isCustomInfoType_DetectionRule_LikelihoodAdjustment_Adjustment interface { 870 isCustomInfoType_DetectionRule_LikelihoodAdjustment_Adjustment() 871} 872 873type CustomInfoType_DetectionRule_LikelihoodAdjustment_FixedLikelihood struct { 874 FixedLikelihood Likelihood `protobuf:"varint,1,opt,name=fixed_likelihood,json=fixedLikelihood,proto3,enum=google.privacy.dlp.v2.Likelihood,oneof"` 875} 876 877type CustomInfoType_DetectionRule_LikelihoodAdjustment_RelativeLikelihood struct { 878 RelativeLikelihood int32 `protobuf:"varint,2,opt,name=relative_likelihood,json=relativeLikelihood,proto3,oneof"` 879} 880 881func (*CustomInfoType_DetectionRule_LikelihoodAdjustment_FixedLikelihood) isCustomInfoType_DetectionRule_LikelihoodAdjustment_Adjustment() { 882} 883 884func (*CustomInfoType_DetectionRule_LikelihoodAdjustment_RelativeLikelihood) isCustomInfoType_DetectionRule_LikelihoodAdjustment_Adjustment() { 885} 886 887func (m *CustomInfoType_DetectionRule_LikelihoodAdjustment) GetAdjustment() isCustomInfoType_DetectionRule_LikelihoodAdjustment_Adjustment { 888 if m != nil { 889 return m.Adjustment 890 } 891 return nil 892} 893 894func (m *CustomInfoType_DetectionRule_LikelihoodAdjustment) GetFixedLikelihood() Likelihood { 895 if x, ok := m.GetAdjustment().(*CustomInfoType_DetectionRule_LikelihoodAdjustment_FixedLikelihood); ok { 896 return x.FixedLikelihood 897 } 898 return Likelihood_LIKELIHOOD_UNSPECIFIED 899} 900 901func (m *CustomInfoType_DetectionRule_LikelihoodAdjustment) GetRelativeLikelihood() int32 { 902 if x, ok := m.GetAdjustment().(*CustomInfoType_DetectionRule_LikelihoodAdjustment_RelativeLikelihood); ok { 903 return x.RelativeLikelihood 904 } 905 return 0 906} 907 908// XXX_OneofWrappers is for the internal use of the proto package. 909func (*CustomInfoType_DetectionRule_LikelihoodAdjustment) XXX_OneofWrappers() []interface{} { 910 return []interface{}{ 911 (*CustomInfoType_DetectionRule_LikelihoodAdjustment_FixedLikelihood)(nil), 912 (*CustomInfoType_DetectionRule_LikelihoodAdjustment_RelativeLikelihood)(nil), 913 } 914} 915 916// The rule that adjusts the likelihood of findings within a certain 917// proximity of hotwords. 918type CustomInfoType_DetectionRule_HotwordRule struct { 919 // Regular expression pattern defining what qualifies as a hotword. 920 HotwordRegex *CustomInfoType_Regex `protobuf:"bytes,1,opt,name=hotword_regex,json=hotwordRegex,proto3" json:"hotword_regex,omitempty"` 921 // Proximity of the finding within which the entire hotword must reside. 922 // The total length of the window cannot exceed 1000 characters. Note that 923 // the finding itself will be included in the window, so that hotwords may 924 // be used to match substrings of the finding itself. For example, the 925 // certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be 926 // adjusted upwards if the area code is known to be the local area code of 927 // a company office using the hotword regex "\(xxx\)", where "xxx" 928 // is the area code in question. 929 Proximity *CustomInfoType_DetectionRule_Proximity `protobuf:"bytes,2,opt,name=proximity,proto3" json:"proximity,omitempty"` 930 // Likelihood adjustment to apply to all matching findings. 931 LikelihoodAdjustment *CustomInfoType_DetectionRule_LikelihoodAdjustment `protobuf:"bytes,3,opt,name=likelihood_adjustment,json=likelihoodAdjustment,proto3" json:"likelihood_adjustment,omitempty"` 932 XXX_NoUnkeyedLiteral struct{} `json:"-"` 933 XXX_unrecognized []byte `json:"-"` 934 XXX_sizecache int32 `json:"-"` 935} 936 937func (m *CustomInfoType_DetectionRule_HotwordRule) Reset() { 938 *m = CustomInfoType_DetectionRule_HotwordRule{} 939} 940func (m *CustomInfoType_DetectionRule_HotwordRule) String() string { return proto.CompactTextString(m) } 941func (*CustomInfoType_DetectionRule_HotwordRule) ProtoMessage() {} 942func (*CustomInfoType_DetectionRule_HotwordRule) Descriptor() ([]byte, []int) { 943 return fileDescriptor_ab5e749073e1398d, []int{2, 3, 2} 944} 945 946func (m *CustomInfoType_DetectionRule_HotwordRule) XXX_Unmarshal(b []byte) error { 947 return xxx_messageInfo_CustomInfoType_DetectionRule_HotwordRule.Unmarshal(m, b) 948} 949func (m *CustomInfoType_DetectionRule_HotwordRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 950 return xxx_messageInfo_CustomInfoType_DetectionRule_HotwordRule.Marshal(b, m, deterministic) 951} 952func (m *CustomInfoType_DetectionRule_HotwordRule) XXX_Merge(src proto.Message) { 953 xxx_messageInfo_CustomInfoType_DetectionRule_HotwordRule.Merge(m, src) 954} 955func (m *CustomInfoType_DetectionRule_HotwordRule) XXX_Size() int { 956 return xxx_messageInfo_CustomInfoType_DetectionRule_HotwordRule.Size(m) 957} 958func (m *CustomInfoType_DetectionRule_HotwordRule) XXX_DiscardUnknown() { 959 xxx_messageInfo_CustomInfoType_DetectionRule_HotwordRule.DiscardUnknown(m) 960} 961 962var xxx_messageInfo_CustomInfoType_DetectionRule_HotwordRule proto.InternalMessageInfo 963 964func (m *CustomInfoType_DetectionRule_HotwordRule) GetHotwordRegex() *CustomInfoType_Regex { 965 if m != nil { 966 return m.HotwordRegex 967 } 968 return nil 969} 970 971func (m *CustomInfoType_DetectionRule_HotwordRule) GetProximity() *CustomInfoType_DetectionRule_Proximity { 972 if m != nil { 973 return m.Proximity 974 } 975 return nil 976} 977 978func (m *CustomInfoType_DetectionRule_HotwordRule) GetLikelihoodAdjustment() *CustomInfoType_DetectionRule_LikelihoodAdjustment { 979 if m != nil { 980 return m.LikelihoodAdjustment 981 } 982 return nil 983} 984 985// General identifier of a data field in a storage service. 986type FieldId struct { 987 // Name describing the field. 988 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 989 XXX_NoUnkeyedLiteral struct{} `json:"-"` 990 XXX_unrecognized []byte `json:"-"` 991 XXX_sizecache int32 `json:"-"` 992} 993 994func (m *FieldId) Reset() { *m = FieldId{} } 995func (m *FieldId) String() string { return proto.CompactTextString(m) } 996func (*FieldId) ProtoMessage() {} 997func (*FieldId) Descriptor() ([]byte, []int) { 998 return fileDescriptor_ab5e749073e1398d, []int{3} 999} 1000 1001func (m *FieldId) XXX_Unmarshal(b []byte) error { 1002 return xxx_messageInfo_FieldId.Unmarshal(m, b) 1003} 1004func (m *FieldId) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1005 return xxx_messageInfo_FieldId.Marshal(b, m, deterministic) 1006} 1007func (m *FieldId) XXX_Merge(src proto.Message) { 1008 xxx_messageInfo_FieldId.Merge(m, src) 1009} 1010func (m *FieldId) XXX_Size() int { 1011 return xxx_messageInfo_FieldId.Size(m) 1012} 1013func (m *FieldId) XXX_DiscardUnknown() { 1014 xxx_messageInfo_FieldId.DiscardUnknown(m) 1015} 1016 1017var xxx_messageInfo_FieldId proto.InternalMessageInfo 1018 1019func (m *FieldId) GetName() string { 1020 if m != nil { 1021 return m.Name 1022 } 1023 return "" 1024} 1025 1026// Datastore partition ID. 1027// A partition ID identifies a grouping of entities. The grouping is always 1028// by project and namespace, however the namespace ID may be empty. 1029// 1030// A partition ID contains several dimensions: 1031// project ID and namespace ID. 1032type PartitionId struct { 1033 // The ID of the project to which the entities belong. 1034 ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` 1035 // If not empty, the ID of the namespace to which the entities belong. 1036 NamespaceId string `protobuf:"bytes,4,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` 1037 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1038 XXX_unrecognized []byte `json:"-"` 1039 XXX_sizecache int32 `json:"-"` 1040} 1041 1042func (m *PartitionId) Reset() { *m = PartitionId{} } 1043func (m *PartitionId) String() string { return proto.CompactTextString(m) } 1044func (*PartitionId) ProtoMessage() {} 1045func (*PartitionId) Descriptor() ([]byte, []int) { 1046 return fileDescriptor_ab5e749073e1398d, []int{4} 1047} 1048 1049func (m *PartitionId) XXX_Unmarshal(b []byte) error { 1050 return xxx_messageInfo_PartitionId.Unmarshal(m, b) 1051} 1052func (m *PartitionId) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1053 return xxx_messageInfo_PartitionId.Marshal(b, m, deterministic) 1054} 1055func (m *PartitionId) XXX_Merge(src proto.Message) { 1056 xxx_messageInfo_PartitionId.Merge(m, src) 1057} 1058func (m *PartitionId) XXX_Size() int { 1059 return xxx_messageInfo_PartitionId.Size(m) 1060} 1061func (m *PartitionId) XXX_DiscardUnknown() { 1062 xxx_messageInfo_PartitionId.DiscardUnknown(m) 1063} 1064 1065var xxx_messageInfo_PartitionId proto.InternalMessageInfo 1066 1067func (m *PartitionId) GetProjectId() string { 1068 if m != nil { 1069 return m.ProjectId 1070 } 1071 return "" 1072} 1073 1074func (m *PartitionId) GetNamespaceId() string { 1075 if m != nil { 1076 return m.NamespaceId 1077 } 1078 return "" 1079} 1080 1081// A representation of a Datastore kind. 1082type KindExpression struct { 1083 // The name of the kind. 1084 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1085 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1086 XXX_unrecognized []byte `json:"-"` 1087 XXX_sizecache int32 `json:"-"` 1088} 1089 1090func (m *KindExpression) Reset() { *m = KindExpression{} } 1091func (m *KindExpression) String() string { return proto.CompactTextString(m) } 1092func (*KindExpression) ProtoMessage() {} 1093func (*KindExpression) Descriptor() ([]byte, []int) { 1094 return fileDescriptor_ab5e749073e1398d, []int{5} 1095} 1096 1097func (m *KindExpression) XXX_Unmarshal(b []byte) error { 1098 return xxx_messageInfo_KindExpression.Unmarshal(m, b) 1099} 1100func (m *KindExpression) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1101 return xxx_messageInfo_KindExpression.Marshal(b, m, deterministic) 1102} 1103func (m *KindExpression) XXX_Merge(src proto.Message) { 1104 xxx_messageInfo_KindExpression.Merge(m, src) 1105} 1106func (m *KindExpression) XXX_Size() int { 1107 return xxx_messageInfo_KindExpression.Size(m) 1108} 1109func (m *KindExpression) XXX_DiscardUnknown() { 1110 xxx_messageInfo_KindExpression.DiscardUnknown(m) 1111} 1112 1113var xxx_messageInfo_KindExpression proto.InternalMessageInfo 1114 1115func (m *KindExpression) GetName() string { 1116 if m != nil { 1117 return m.Name 1118 } 1119 return "" 1120} 1121 1122// Options defining a data set within Google Cloud Datastore. 1123type DatastoreOptions struct { 1124 // A partition ID identifies a grouping of entities. The grouping is always 1125 // by project and namespace, however the namespace ID may be empty. 1126 PartitionId *PartitionId `protobuf:"bytes,1,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"` 1127 // The kind to process. 1128 Kind *KindExpression `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` 1129 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1130 XXX_unrecognized []byte `json:"-"` 1131 XXX_sizecache int32 `json:"-"` 1132} 1133 1134func (m *DatastoreOptions) Reset() { *m = DatastoreOptions{} } 1135func (m *DatastoreOptions) String() string { return proto.CompactTextString(m) } 1136func (*DatastoreOptions) ProtoMessage() {} 1137func (*DatastoreOptions) Descriptor() ([]byte, []int) { 1138 return fileDescriptor_ab5e749073e1398d, []int{6} 1139} 1140 1141func (m *DatastoreOptions) XXX_Unmarshal(b []byte) error { 1142 return xxx_messageInfo_DatastoreOptions.Unmarshal(m, b) 1143} 1144func (m *DatastoreOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1145 return xxx_messageInfo_DatastoreOptions.Marshal(b, m, deterministic) 1146} 1147func (m *DatastoreOptions) XXX_Merge(src proto.Message) { 1148 xxx_messageInfo_DatastoreOptions.Merge(m, src) 1149} 1150func (m *DatastoreOptions) XXX_Size() int { 1151 return xxx_messageInfo_DatastoreOptions.Size(m) 1152} 1153func (m *DatastoreOptions) XXX_DiscardUnknown() { 1154 xxx_messageInfo_DatastoreOptions.DiscardUnknown(m) 1155} 1156 1157var xxx_messageInfo_DatastoreOptions proto.InternalMessageInfo 1158 1159func (m *DatastoreOptions) GetPartitionId() *PartitionId { 1160 if m != nil { 1161 return m.PartitionId 1162 } 1163 return nil 1164} 1165 1166func (m *DatastoreOptions) GetKind() *KindExpression { 1167 if m != nil { 1168 return m.Kind 1169 } 1170 return nil 1171} 1172 1173// Message representing a set of files in a Cloud Storage bucket. Regular 1174// expressions are used to allow fine-grained control over which files in the 1175// bucket to include. 1176// 1177// Included files are those that match at least one item in `include_regex` and 1178// do not match any items in `exclude_regex`. Note that a file that matches 1179// items from both lists will _not_ be included. For a match to occur, the 1180// entire file path (i.e., everything in the url after the bucket name) must 1181// match the regular expression. 1182// 1183// For example, given the input `{bucket_name: "mybucket", include_regex: 1184// ["directory1/.*"], exclude_regex: 1185// ["directory1/excluded.*"]}`: 1186// 1187// * `gs://mybucket/directory1/myfile` will be included 1188// * `gs://mybucket/directory1/directory2/myfile` will be included (`.*` matches 1189// across `/`) 1190// * `gs://mybucket/directory0/directory1/myfile` will _not_ be included (the 1191// full path doesn't match any items in `include_regex`) 1192// * `gs://mybucket/directory1/excludedfile` will _not_ be included (the path 1193// matches an item in `exclude_regex`) 1194// 1195// If `include_regex` is left empty, it will match all files by default 1196// (this is equivalent to setting `include_regex: [".*"]`). 1197// 1198// Some other common use cases: 1199// 1200// * `{bucket_name: "mybucket", exclude_regex: [".*\.pdf"]}` will include all 1201// files in `mybucket` except for .pdf files 1202// * `{bucket_name: "mybucket", include_regex: ["directory/[^/]+"]}` will 1203// include all files directly under `gs://mybucket/directory/`, without matching 1204// across `/` 1205type CloudStorageRegexFileSet struct { 1206 // The name of a Cloud Storage bucket. Required. 1207 BucketName string `protobuf:"bytes,1,opt,name=bucket_name,json=bucketName,proto3" json:"bucket_name,omitempty"` 1208 // A list of regular expressions matching file paths to include. All files in 1209 // the bucket that match at least one of these regular expressions will be 1210 // included in the set of files, except for those that also match an item in 1211 // `exclude_regex`. Leaving this field empty will match all files by default 1212 // (this is equivalent to including `.*` in the list). 1213 // 1214 // Regular expressions use RE2 1215 // [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found 1216 // under the google/re2 repository on GitHub. 1217 IncludeRegex []string `protobuf:"bytes,2,rep,name=include_regex,json=includeRegex,proto3" json:"include_regex,omitempty"` 1218 // A list of regular expressions matching file paths to exclude. All files in 1219 // the bucket that match at least one of these regular expressions will be 1220 // excluded from the scan. 1221 // 1222 // Regular expressions use RE2 1223 // [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found 1224 // under the google/re2 repository on GitHub. 1225 ExcludeRegex []string `protobuf:"bytes,3,rep,name=exclude_regex,json=excludeRegex,proto3" json:"exclude_regex,omitempty"` 1226 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1227 XXX_unrecognized []byte `json:"-"` 1228 XXX_sizecache int32 `json:"-"` 1229} 1230 1231func (m *CloudStorageRegexFileSet) Reset() { *m = CloudStorageRegexFileSet{} } 1232func (m *CloudStorageRegexFileSet) String() string { return proto.CompactTextString(m) } 1233func (*CloudStorageRegexFileSet) ProtoMessage() {} 1234func (*CloudStorageRegexFileSet) Descriptor() ([]byte, []int) { 1235 return fileDescriptor_ab5e749073e1398d, []int{7} 1236} 1237 1238func (m *CloudStorageRegexFileSet) XXX_Unmarshal(b []byte) error { 1239 return xxx_messageInfo_CloudStorageRegexFileSet.Unmarshal(m, b) 1240} 1241func (m *CloudStorageRegexFileSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1242 return xxx_messageInfo_CloudStorageRegexFileSet.Marshal(b, m, deterministic) 1243} 1244func (m *CloudStorageRegexFileSet) XXX_Merge(src proto.Message) { 1245 xxx_messageInfo_CloudStorageRegexFileSet.Merge(m, src) 1246} 1247func (m *CloudStorageRegexFileSet) XXX_Size() int { 1248 return xxx_messageInfo_CloudStorageRegexFileSet.Size(m) 1249} 1250func (m *CloudStorageRegexFileSet) XXX_DiscardUnknown() { 1251 xxx_messageInfo_CloudStorageRegexFileSet.DiscardUnknown(m) 1252} 1253 1254var xxx_messageInfo_CloudStorageRegexFileSet proto.InternalMessageInfo 1255 1256func (m *CloudStorageRegexFileSet) GetBucketName() string { 1257 if m != nil { 1258 return m.BucketName 1259 } 1260 return "" 1261} 1262 1263func (m *CloudStorageRegexFileSet) GetIncludeRegex() []string { 1264 if m != nil { 1265 return m.IncludeRegex 1266 } 1267 return nil 1268} 1269 1270func (m *CloudStorageRegexFileSet) GetExcludeRegex() []string { 1271 if m != nil { 1272 return m.ExcludeRegex 1273 } 1274 return nil 1275} 1276 1277// Options defining a file or a set of files within a Google Cloud Storage 1278// bucket. 1279type CloudStorageOptions struct { 1280 // The set of one or more files to scan. 1281 FileSet *CloudStorageOptions_FileSet `protobuf:"bytes,1,opt,name=file_set,json=fileSet,proto3" json:"file_set,omitempty"` 1282 // Max number of bytes to scan from a file. If a scanned file's size is bigger 1283 // than this value then the rest of the bytes are omitted. Only one 1284 // of bytes_limit_per_file and bytes_limit_per_file_percent can be specified. 1285 BytesLimitPerFile int64 `protobuf:"varint,4,opt,name=bytes_limit_per_file,json=bytesLimitPerFile,proto3" json:"bytes_limit_per_file,omitempty"` 1286 // Max percentage of bytes to scan from a file. The rest are omitted. The 1287 // number of bytes scanned is rounded down. Must be between 0 and 100, 1288 // inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one 1289 // of bytes_limit_per_file and bytes_limit_per_file_percent can be specified. 1290 BytesLimitPerFilePercent int32 `protobuf:"varint,8,opt,name=bytes_limit_per_file_percent,json=bytesLimitPerFilePercent,proto3" json:"bytes_limit_per_file_percent,omitempty"` 1291 // List of file type groups to include in the scan. 1292 // If empty, all files are scanned and available data format processors 1293 // are applied. In addition, the binary content of the selected files 1294 // is always scanned as well. 1295 FileTypes []FileType `protobuf:"varint,5,rep,packed,name=file_types,json=fileTypes,proto3,enum=google.privacy.dlp.v2.FileType" json:"file_types,omitempty"` 1296 SampleMethod CloudStorageOptions_SampleMethod `protobuf:"varint,6,opt,name=sample_method,json=sampleMethod,proto3,enum=google.privacy.dlp.v2.CloudStorageOptions_SampleMethod" json:"sample_method,omitempty"` 1297 // Limits the number of files to scan to this percentage of the input FileSet. 1298 // Number of files scanned is rounded down. Must be between 0 and 100, 1299 // inclusively. Both 0 and 100 means no limit. Defaults to 0. 1300 FilesLimitPercent int32 `protobuf:"varint,7,opt,name=files_limit_percent,json=filesLimitPercent,proto3" json:"files_limit_percent,omitempty"` 1301 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1302 XXX_unrecognized []byte `json:"-"` 1303 XXX_sizecache int32 `json:"-"` 1304} 1305 1306func (m *CloudStorageOptions) Reset() { *m = CloudStorageOptions{} } 1307func (m *CloudStorageOptions) String() string { return proto.CompactTextString(m) } 1308func (*CloudStorageOptions) ProtoMessage() {} 1309func (*CloudStorageOptions) Descriptor() ([]byte, []int) { 1310 return fileDescriptor_ab5e749073e1398d, []int{8} 1311} 1312 1313func (m *CloudStorageOptions) XXX_Unmarshal(b []byte) error { 1314 return xxx_messageInfo_CloudStorageOptions.Unmarshal(m, b) 1315} 1316func (m *CloudStorageOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1317 return xxx_messageInfo_CloudStorageOptions.Marshal(b, m, deterministic) 1318} 1319func (m *CloudStorageOptions) XXX_Merge(src proto.Message) { 1320 xxx_messageInfo_CloudStorageOptions.Merge(m, src) 1321} 1322func (m *CloudStorageOptions) XXX_Size() int { 1323 return xxx_messageInfo_CloudStorageOptions.Size(m) 1324} 1325func (m *CloudStorageOptions) XXX_DiscardUnknown() { 1326 xxx_messageInfo_CloudStorageOptions.DiscardUnknown(m) 1327} 1328 1329var xxx_messageInfo_CloudStorageOptions proto.InternalMessageInfo 1330 1331func (m *CloudStorageOptions) GetFileSet() *CloudStorageOptions_FileSet { 1332 if m != nil { 1333 return m.FileSet 1334 } 1335 return nil 1336} 1337 1338func (m *CloudStorageOptions) GetBytesLimitPerFile() int64 { 1339 if m != nil { 1340 return m.BytesLimitPerFile 1341 } 1342 return 0 1343} 1344 1345func (m *CloudStorageOptions) GetBytesLimitPerFilePercent() int32 { 1346 if m != nil { 1347 return m.BytesLimitPerFilePercent 1348 } 1349 return 0 1350} 1351 1352func (m *CloudStorageOptions) GetFileTypes() []FileType { 1353 if m != nil { 1354 return m.FileTypes 1355 } 1356 return nil 1357} 1358 1359func (m *CloudStorageOptions) GetSampleMethod() CloudStorageOptions_SampleMethod { 1360 if m != nil { 1361 return m.SampleMethod 1362 } 1363 return CloudStorageOptions_SAMPLE_METHOD_UNSPECIFIED 1364} 1365 1366func (m *CloudStorageOptions) GetFilesLimitPercent() int32 { 1367 if m != nil { 1368 return m.FilesLimitPercent 1369 } 1370 return 0 1371} 1372 1373// Set of files to scan. 1374type CloudStorageOptions_FileSet struct { 1375 // The Cloud Storage url of the file(s) to scan, in the format 1376 // `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed. 1377 // 1378 // If the url ends in a trailing slash, the bucket or directory represented 1379 // by the url will be scanned non-recursively (content in sub-directories 1380 // will not be scanned). This means that `gs://mybucket/` is equivalent to 1381 // `gs://mybucket/*`, and `gs://mybucket/directory/` is equivalent to 1382 // `gs://mybucket/directory/*`. 1383 // 1384 // Exactly one of `url` or `regex_file_set` must be set. 1385 Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` 1386 // The regex-filtered set of files to scan. Exactly one of `url` or 1387 // `regex_file_set` must be set. 1388 RegexFileSet *CloudStorageRegexFileSet `protobuf:"bytes,2,opt,name=regex_file_set,json=regexFileSet,proto3" json:"regex_file_set,omitempty"` 1389 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1390 XXX_unrecognized []byte `json:"-"` 1391 XXX_sizecache int32 `json:"-"` 1392} 1393 1394func (m *CloudStorageOptions_FileSet) Reset() { *m = CloudStorageOptions_FileSet{} } 1395func (m *CloudStorageOptions_FileSet) String() string { return proto.CompactTextString(m) } 1396func (*CloudStorageOptions_FileSet) ProtoMessage() {} 1397func (*CloudStorageOptions_FileSet) Descriptor() ([]byte, []int) { 1398 return fileDescriptor_ab5e749073e1398d, []int{8, 0} 1399} 1400 1401func (m *CloudStorageOptions_FileSet) XXX_Unmarshal(b []byte) error { 1402 return xxx_messageInfo_CloudStorageOptions_FileSet.Unmarshal(m, b) 1403} 1404func (m *CloudStorageOptions_FileSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1405 return xxx_messageInfo_CloudStorageOptions_FileSet.Marshal(b, m, deterministic) 1406} 1407func (m *CloudStorageOptions_FileSet) XXX_Merge(src proto.Message) { 1408 xxx_messageInfo_CloudStorageOptions_FileSet.Merge(m, src) 1409} 1410func (m *CloudStorageOptions_FileSet) XXX_Size() int { 1411 return xxx_messageInfo_CloudStorageOptions_FileSet.Size(m) 1412} 1413func (m *CloudStorageOptions_FileSet) XXX_DiscardUnknown() { 1414 xxx_messageInfo_CloudStorageOptions_FileSet.DiscardUnknown(m) 1415} 1416 1417var xxx_messageInfo_CloudStorageOptions_FileSet proto.InternalMessageInfo 1418 1419func (m *CloudStorageOptions_FileSet) GetUrl() string { 1420 if m != nil { 1421 return m.Url 1422 } 1423 return "" 1424} 1425 1426func (m *CloudStorageOptions_FileSet) GetRegexFileSet() *CloudStorageRegexFileSet { 1427 if m != nil { 1428 return m.RegexFileSet 1429 } 1430 return nil 1431} 1432 1433// Message representing a set of files in Cloud Storage. 1434type CloudStorageFileSet struct { 1435 // The url, in the format `gs://<bucket>/<path>`. Trailing wildcard in the 1436 // path is allowed. 1437 Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` 1438 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1439 XXX_unrecognized []byte `json:"-"` 1440 XXX_sizecache int32 `json:"-"` 1441} 1442 1443func (m *CloudStorageFileSet) Reset() { *m = CloudStorageFileSet{} } 1444func (m *CloudStorageFileSet) String() string { return proto.CompactTextString(m) } 1445func (*CloudStorageFileSet) ProtoMessage() {} 1446func (*CloudStorageFileSet) Descriptor() ([]byte, []int) { 1447 return fileDescriptor_ab5e749073e1398d, []int{9} 1448} 1449 1450func (m *CloudStorageFileSet) XXX_Unmarshal(b []byte) error { 1451 return xxx_messageInfo_CloudStorageFileSet.Unmarshal(m, b) 1452} 1453func (m *CloudStorageFileSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1454 return xxx_messageInfo_CloudStorageFileSet.Marshal(b, m, deterministic) 1455} 1456func (m *CloudStorageFileSet) XXX_Merge(src proto.Message) { 1457 xxx_messageInfo_CloudStorageFileSet.Merge(m, src) 1458} 1459func (m *CloudStorageFileSet) XXX_Size() int { 1460 return xxx_messageInfo_CloudStorageFileSet.Size(m) 1461} 1462func (m *CloudStorageFileSet) XXX_DiscardUnknown() { 1463 xxx_messageInfo_CloudStorageFileSet.DiscardUnknown(m) 1464} 1465 1466var xxx_messageInfo_CloudStorageFileSet proto.InternalMessageInfo 1467 1468func (m *CloudStorageFileSet) GetUrl() string { 1469 if m != nil { 1470 return m.Url 1471 } 1472 return "" 1473} 1474 1475// Message representing a single file or path in Cloud Storage. 1476type CloudStoragePath struct { 1477 // A url representing a file or path (no wildcards) in Cloud Storage. 1478 // Example: gs://[BUCKET_NAME]/dictionary.txt 1479 Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` 1480 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1481 XXX_unrecognized []byte `json:"-"` 1482 XXX_sizecache int32 `json:"-"` 1483} 1484 1485func (m *CloudStoragePath) Reset() { *m = CloudStoragePath{} } 1486func (m *CloudStoragePath) String() string { return proto.CompactTextString(m) } 1487func (*CloudStoragePath) ProtoMessage() {} 1488func (*CloudStoragePath) Descriptor() ([]byte, []int) { 1489 return fileDescriptor_ab5e749073e1398d, []int{10} 1490} 1491 1492func (m *CloudStoragePath) XXX_Unmarshal(b []byte) error { 1493 return xxx_messageInfo_CloudStoragePath.Unmarshal(m, b) 1494} 1495func (m *CloudStoragePath) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1496 return xxx_messageInfo_CloudStoragePath.Marshal(b, m, deterministic) 1497} 1498func (m *CloudStoragePath) XXX_Merge(src proto.Message) { 1499 xxx_messageInfo_CloudStoragePath.Merge(m, src) 1500} 1501func (m *CloudStoragePath) XXX_Size() int { 1502 return xxx_messageInfo_CloudStoragePath.Size(m) 1503} 1504func (m *CloudStoragePath) XXX_DiscardUnknown() { 1505 xxx_messageInfo_CloudStoragePath.DiscardUnknown(m) 1506} 1507 1508var xxx_messageInfo_CloudStoragePath proto.InternalMessageInfo 1509 1510func (m *CloudStoragePath) GetPath() string { 1511 if m != nil { 1512 return m.Path 1513 } 1514 return "" 1515} 1516 1517// Options defining BigQuery table and row identifiers. 1518type BigQueryOptions struct { 1519 // Complete BigQuery table reference. 1520 TableReference *BigQueryTable `protobuf:"bytes,1,opt,name=table_reference,json=tableReference,proto3" json:"table_reference,omitempty"` 1521 // References to fields uniquely identifying rows within the table. 1522 // Nested fields in the format, like `person.birthdate.year`, are allowed. 1523 IdentifyingFields []*FieldId `protobuf:"bytes,2,rep,name=identifying_fields,json=identifyingFields,proto3" json:"identifying_fields,omitempty"` 1524 // Max number of rows to scan. If the table has more rows than this value, the 1525 // rest of the rows are omitted. If not set, or if set to 0, all rows will be 1526 // scanned. Only one of rows_limit and rows_limit_percent can be specified. 1527 // Cannot be used in conjunction with TimespanConfig. 1528 RowsLimit int64 `protobuf:"varint,3,opt,name=rows_limit,json=rowsLimit,proto3" json:"rows_limit,omitempty"` 1529 // Max percentage of rows to scan. The rest are omitted. The number of rows 1530 // scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and 1531 // 100 means no limit. Defaults to 0. Only one of rows_limit and 1532 // rows_limit_percent can be specified. Cannot be used in conjunction with 1533 // TimespanConfig. 1534 RowsLimitPercent int32 `protobuf:"varint,6,opt,name=rows_limit_percent,json=rowsLimitPercent,proto3" json:"rows_limit_percent,omitempty"` 1535 SampleMethod BigQueryOptions_SampleMethod `protobuf:"varint,4,opt,name=sample_method,json=sampleMethod,proto3,enum=google.privacy.dlp.v2.BigQueryOptions_SampleMethod" json:"sample_method,omitempty"` 1536 // References to fields excluded from scanning. This allows you to skip 1537 // inspection of entire columns which you know have no findings. 1538 ExcludedFields []*FieldId `protobuf:"bytes,5,rep,name=excluded_fields,json=excludedFields,proto3" json:"excluded_fields,omitempty"` 1539 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1540 XXX_unrecognized []byte `json:"-"` 1541 XXX_sizecache int32 `json:"-"` 1542} 1543 1544func (m *BigQueryOptions) Reset() { *m = BigQueryOptions{} } 1545func (m *BigQueryOptions) String() string { return proto.CompactTextString(m) } 1546func (*BigQueryOptions) ProtoMessage() {} 1547func (*BigQueryOptions) Descriptor() ([]byte, []int) { 1548 return fileDescriptor_ab5e749073e1398d, []int{11} 1549} 1550 1551func (m *BigQueryOptions) XXX_Unmarshal(b []byte) error { 1552 return xxx_messageInfo_BigQueryOptions.Unmarshal(m, b) 1553} 1554func (m *BigQueryOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1555 return xxx_messageInfo_BigQueryOptions.Marshal(b, m, deterministic) 1556} 1557func (m *BigQueryOptions) XXX_Merge(src proto.Message) { 1558 xxx_messageInfo_BigQueryOptions.Merge(m, src) 1559} 1560func (m *BigQueryOptions) XXX_Size() int { 1561 return xxx_messageInfo_BigQueryOptions.Size(m) 1562} 1563func (m *BigQueryOptions) XXX_DiscardUnknown() { 1564 xxx_messageInfo_BigQueryOptions.DiscardUnknown(m) 1565} 1566 1567var xxx_messageInfo_BigQueryOptions proto.InternalMessageInfo 1568 1569func (m *BigQueryOptions) GetTableReference() *BigQueryTable { 1570 if m != nil { 1571 return m.TableReference 1572 } 1573 return nil 1574} 1575 1576func (m *BigQueryOptions) GetIdentifyingFields() []*FieldId { 1577 if m != nil { 1578 return m.IdentifyingFields 1579 } 1580 return nil 1581} 1582 1583func (m *BigQueryOptions) GetRowsLimit() int64 { 1584 if m != nil { 1585 return m.RowsLimit 1586 } 1587 return 0 1588} 1589 1590func (m *BigQueryOptions) GetRowsLimitPercent() int32 { 1591 if m != nil { 1592 return m.RowsLimitPercent 1593 } 1594 return 0 1595} 1596 1597func (m *BigQueryOptions) GetSampleMethod() BigQueryOptions_SampleMethod { 1598 if m != nil { 1599 return m.SampleMethod 1600 } 1601 return BigQueryOptions_SAMPLE_METHOD_UNSPECIFIED 1602} 1603 1604func (m *BigQueryOptions) GetExcludedFields() []*FieldId { 1605 if m != nil { 1606 return m.ExcludedFields 1607 } 1608 return nil 1609} 1610 1611// Shared message indicating Cloud storage type. 1612type StorageConfig struct { 1613 // Types that are valid to be assigned to Type: 1614 // *StorageConfig_DatastoreOptions 1615 // *StorageConfig_CloudStorageOptions 1616 // *StorageConfig_BigQueryOptions 1617 Type isStorageConfig_Type `protobuf_oneof:"type"` 1618 TimespanConfig *StorageConfig_TimespanConfig `protobuf:"bytes,6,opt,name=timespan_config,json=timespanConfig,proto3" json:"timespan_config,omitempty"` 1619 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1620 XXX_unrecognized []byte `json:"-"` 1621 XXX_sizecache int32 `json:"-"` 1622} 1623 1624func (m *StorageConfig) Reset() { *m = StorageConfig{} } 1625func (m *StorageConfig) String() string { return proto.CompactTextString(m) } 1626func (*StorageConfig) ProtoMessage() {} 1627func (*StorageConfig) Descriptor() ([]byte, []int) { 1628 return fileDescriptor_ab5e749073e1398d, []int{12} 1629} 1630 1631func (m *StorageConfig) XXX_Unmarshal(b []byte) error { 1632 return xxx_messageInfo_StorageConfig.Unmarshal(m, b) 1633} 1634func (m *StorageConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1635 return xxx_messageInfo_StorageConfig.Marshal(b, m, deterministic) 1636} 1637func (m *StorageConfig) XXX_Merge(src proto.Message) { 1638 xxx_messageInfo_StorageConfig.Merge(m, src) 1639} 1640func (m *StorageConfig) XXX_Size() int { 1641 return xxx_messageInfo_StorageConfig.Size(m) 1642} 1643func (m *StorageConfig) XXX_DiscardUnknown() { 1644 xxx_messageInfo_StorageConfig.DiscardUnknown(m) 1645} 1646 1647var xxx_messageInfo_StorageConfig proto.InternalMessageInfo 1648 1649type isStorageConfig_Type interface { 1650 isStorageConfig_Type() 1651} 1652 1653type StorageConfig_DatastoreOptions struct { 1654 DatastoreOptions *DatastoreOptions `protobuf:"bytes,2,opt,name=datastore_options,json=datastoreOptions,proto3,oneof"` 1655} 1656 1657type StorageConfig_CloudStorageOptions struct { 1658 CloudStorageOptions *CloudStorageOptions `protobuf:"bytes,3,opt,name=cloud_storage_options,json=cloudStorageOptions,proto3,oneof"` 1659} 1660 1661type StorageConfig_BigQueryOptions struct { 1662 BigQueryOptions *BigQueryOptions `protobuf:"bytes,4,opt,name=big_query_options,json=bigQueryOptions,proto3,oneof"` 1663} 1664 1665func (*StorageConfig_DatastoreOptions) isStorageConfig_Type() {} 1666 1667func (*StorageConfig_CloudStorageOptions) isStorageConfig_Type() {} 1668 1669func (*StorageConfig_BigQueryOptions) isStorageConfig_Type() {} 1670 1671func (m *StorageConfig) GetType() isStorageConfig_Type { 1672 if m != nil { 1673 return m.Type 1674 } 1675 return nil 1676} 1677 1678func (m *StorageConfig) GetDatastoreOptions() *DatastoreOptions { 1679 if x, ok := m.GetType().(*StorageConfig_DatastoreOptions); ok { 1680 return x.DatastoreOptions 1681 } 1682 return nil 1683} 1684 1685func (m *StorageConfig) GetCloudStorageOptions() *CloudStorageOptions { 1686 if x, ok := m.GetType().(*StorageConfig_CloudStorageOptions); ok { 1687 return x.CloudStorageOptions 1688 } 1689 return nil 1690} 1691 1692func (m *StorageConfig) GetBigQueryOptions() *BigQueryOptions { 1693 if x, ok := m.GetType().(*StorageConfig_BigQueryOptions); ok { 1694 return x.BigQueryOptions 1695 } 1696 return nil 1697} 1698 1699func (m *StorageConfig) GetTimespanConfig() *StorageConfig_TimespanConfig { 1700 if m != nil { 1701 return m.TimespanConfig 1702 } 1703 return nil 1704} 1705 1706// XXX_OneofWrappers is for the internal use of the proto package. 1707func (*StorageConfig) XXX_OneofWrappers() []interface{} { 1708 return []interface{}{ 1709 (*StorageConfig_DatastoreOptions)(nil), 1710 (*StorageConfig_CloudStorageOptions)(nil), 1711 (*StorageConfig_BigQueryOptions)(nil), 1712 } 1713} 1714 1715// Configuration of the timespan of the items to include in scanning. 1716// Currently only supported when inspecting Google Cloud Storage and BigQuery. 1717type StorageConfig_TimespanConfig struct { 1718 // Exclude files or rows older than this value. 1719 StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 1720 // Exclude files or rows newer than this value. 1721 // If set to zero, no upper time limit is applied. 1722 EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` 1723 // Specification of the field containing the timestamp of scanned items. 1724 // Used for data sources like Datastore or BigQuery. 1725 // If not specified for BigQuery, table last modification timestamp 1726 // is checked against given time span. 1727 // The valid data types of the timestamp field are: 1728 // for BigQuery - timestamp, date, datetime; 1729 // for Datastore - timestamp. 1730 // Datastore entity will be scanned if the timestamp property does not exist 1731 // or its value is empty or invalid. 1732 TimestampField *FieldId `protobuf:"bytes,3,opt,name=timestamp_field,json=timestampField,proto3" json:"timestamp_field,omitempty"` 1733 // When the job is started by a JobTrigger we will automatically figure out 1734 // a valid start_time to avoid scanning files that have not been modified 1735 // since the last time the JobTrigger executed. This will be based on the 1736 // time of the execution of the last run of the JobTrigger. 1737 EnableAutoPopulationOfTimespanConfig bool `protobuf:"varint,4,opt,name=enable_auto_population_of_timespan_config,json=enableAutoPopulationOfTimespanConfig,proto3" json:"enable_auto_population_of_timespan_config,omitempty"` 1738 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1739 XXX_unrecognized []byte `json:"-"` 1740 XXX_sizecache int32 `json:"-"` 1741} 1742 1743func (m *StorageConfig_TimespanConfig) Reset() { *m = StorageConfig_TimespanConfig{} } 1744func (m *StorageConfig_TimespanConfig) String() string { return proto.CompactTextString(m) } 1745func (*StorageConfig_TimespanConfig) ProtoMessage() {} 1746func (*StorageConfig_TimespanConfig) Descriptor() ([]byte, []int) { 1747 return fileDescriptor_ab5e749073e1398d, []int{12, 0} 1748} 1749 1750func (m *StorageConfig_TimespanConfig) XXX_Unmarshal(b []byte) error { 1751 return xxx_messageInfo_StorageConfig_TimespanConfig.Unmarshal(m, b) 1752} 1753func (m *StorageConfig_TimespanConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1754 return xxx_messageInfo_StorageConfig_TimespanConfig.Marshal(b, m, deterministic) 1755} 1756func (m *StorageConfig_TimespanConfig) XXX_Merge(src proto.Message) { 1757 xxx_messageInfo_StorageConfig_TimespanConfig.Merge(m, src) 1758} 1759func (m *StorageConfig_TimespanConfig) XXX_Size() int { 1760 return xxx_messageInfo_StorageConfig_TimespanConfig.Size(m) 1761} 1762func (m *StorageConfig_TimespanConfig) XXX_DiscardUnknown() { 1763 xxx_messageInfo_StorageConfig_TimespanConfig.DiscardUnknown(m) 1764} 1765 1766var xxx_messageInfo_StorageConfig_TimespanConfig proto.InternalMessageInfo 1767 1768func (m *StorageConfig_TimespanConfig) GetStartTime() *timestamp.Timestamp { 1769 if m != nil { 1770 return m.StartTime 1771 } 1772 return nil 1773} 1774 1775func (m *StorageConfig_TimespanConfig) GetEndTime() *timestamp.Timestamp { 1776 if m != nil { 1777 return m.EndTime 1778 } 1779 return nil 1780} 1781 1782func (m *StorageConfig_TimespanConfig) GetTimestampField() *FieldId { 1783 if m != nil { 1784 return m.TimestampField 1785 } 1786 return nil 1787} 1788 1789func (m *StorageConfig_TimespanConfig) GetEnableAutoPopulationOfTimespanConfig() bool { 1790 if m != nil { 1791 return m.EnableAutoPopulationOfTimespanConfig 1792 } 1793 return false 1794} 1795 1796// Row key for identifying a record in BigQuery table. 1797type BigQueryKey struct { 1798 // Complete BigQuery table reference. 1799 TableReference *BigQueryTable `protobuf:"bytes,1,opt,name=table_reference,json=tableReference,proto3" json:"table_reference,omitempty"` 1800 // Absolute number of the row from the beginning of the table at the time 1801 // of scanning. 1802 RowNumber int64 `protobuf:"varint,2,opt,name=row_number,json=rowNumber,proto3" json:"row_number,omitempty"` 1803 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1804 XXX_unrecognized []byte `json:"-"` 1805 XXX_sizecache int32 `json:"-"` 1806} 1807 1808func (m *BigQueryKey) Reset() { *m = BigQueryKey{} } 1809func (m *BigQueryKey) String() string { return proto.CompactTextString(m) } 1810func (*BigQueryKey) ProtoMessage() {} 1811func (*BigQueryKey) Descriptor() ([]byte, []int) { 1812 return fileDescriptor_ab5e749073e1398d, []int{13} 1813} 1814 1815func (m *BigQueryKey) XXX_Unmarshal(b []byte) error { 1816 return xxx_messageInfo_BigQueryKey.Unmarshal(m, b) 1817} 1818func (m *BigQueryKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1819 return xxx_messageInfo_BigQueryKey.Marshal(b, m, deterministic) 1820} 1821func (m *BigQueryKey) XXX_Merge(src proto.Message) { 1822 xxx_messageInfo_BigQueryKey.Merge(m, src) 1823} 1824func (m *BigQueryKey) XXX_Size() int { 1825 return xxx_messageInfo_BigQueryKey.Size(m) 1826} 1827func (m *BigQueryKey) XXX_DiscardUnknown() { 1828 xxx_messageInfo_BigQueryKey.DiscardUnknown(m) 1829} 1830 1831var xxx_messageInfo_BigQueryKey proto.InternalMessageInfo 1832 1833func (m *BigQueryKey) GetTableReference() *BigQueryTable { 1834 if m != nil { 1835 return m.TableReference 1836 } 1837 return nil 1838} 1839 1840func (m *BigQueryKey) GetRowNumber() int64 { 1841 if m != nil { 1842 return m.RowNumber 1843 } 1844 return 0 1845} 1846 1847// Record key for a finding in Cloud Datastore. 1848type DatastoreKey struct { 1849 // Datastore entity key. 1850 EntityKey *Key `protobuf:"bytes,1,opt,name=entity_key,json=entityKey,proto3" json:"entity_key,omitempty"` 1851 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1852 XXX_unrecognized []byte `json:"-"` 1853 XXX_sizecache int32 `json:"-"` 1854} 1855 1856func (m *DatastoreKey) Reset() { *m = DatastoreKey{} } 1857func (m *DatastoreKey) String() string { return proto.CompactTextString(m) } 1858func (*DatastoreKey) ProtoMessage() {} 1859func (*DatastoreKey) Descriptor() ([]byte, []int) { 1860 return fileDescriptor_ab5e749073e1398d, []int{14} 1861} 1862 1863func (m *DatastoreKey) XXX_Unmarshal(b []byte) error { 1864 return xxx_messageInfo_DatastoreKey.Unmarshal(m, b) 1865} 1866func (m *DatastoreKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1867 return xxx_messageInfo_DatastoreKey.Marshal(b, m, deterministic) 1868} 1869func (m *DatastoreKey) XXX_Merge(src proto.Message) { 1870 xxx_messageInfo_DatastoreKey.Merge(m, src) 1871} 1872func (m *DatastoreKey) XXX_Size() int { 1873 return xxx_messageInfo_DatastoreKey.Size(m) 1874} 1875func (m *DatastoreKey) XXX_DiscardUnknown() { 1876 xxx_messageInfo_DatastoreKey.DiscardUnknown(m) 1877} 1878 1879var xxx_messageInfo_DatastoreKey proto.InternalMessageInfo 1880 1881func (m *DatastoreKey) GetEntityKey() *Key { 1882 if m != nil { 1883 return m.EntityKey 1884 } 1885 return nil 1886} 1887 1888// A unique identifier for a Datastore entity. 1889// If a key's partition ID or any of its path kinds or names are 1890// reserved/read-only, the key is reserved/read-only. 1891// A reserved/read-only key is forbidden in certain documented contexts. 1892type Key struct { 1893 // Entities are partitioned into subsets, currently identified by a project 1894 // ID and namespace ID. 1895 // Queries are scoped to a single partition. 1896 PartitionId *PartitionId `protobuf:"bytes,1,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"` 1897 // The entity path. 1898 // An entity path consists of one or more elements composed of a kind and a 1899 // string or numerical identifier, which identify entities. The first 1900 // element identifies a _root entity_, the second element identifies 1901 // a _child_ of the root entity, the third element identifies a child of the 1902 // second entity, and so forth. The entities identified by all prefixes of 1903 // the path are called the element's _ancestors_. 1904 // 1905 // A path can never be empty, and a path can have at most 100 elements. 1906 Path []*Key_PathElement `protobuf:"bytes,2,rep,name=path,proto3" json:"path,omitempty"` 1907 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1908 XXX_unrecognized []byte `json:"-"` 1909 XXX_sizecache int32 `json:"-"` 1910} 1911 1912func (m *Key) Reset() { *m = Key{} } 1913func (m *Key) String() string { return proto.CompactTextString(m) } 1914func (*Key) ProtoMessage() {} 1915func (*Key) Descriptor() ([]byte, []int) { 1916 return fileDescriptor_ab5e749073e1398d, []int{15} 1917} 1918 1919func (m *Key) XXX_Unmarshal(b []byte) error { 1920 return xxx_messageInfo_Key.Unmarshal(m, b) 1921} 1922func (m *Key) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1923 return xxx_messageInfo_Key.Marshal(b, m, deterministic) 1924} 1925func (m *Key) XXX_Merge(src proto.Message) { 1926 xxx_messageInfo_Key.Merge(m, src) 1927} 1928func (m *Key) XXX_Size() int { 1929 return xxx_messageInfo_Key.Size(m) 1930} 1931func (m *Key) XXX_DiscardUnknown() { 1932 xxx_messageInfo_Key.DiscardUnknown(m) 1933} 1934 1935var xxx_messageInfo_Key proto.InternalMessageInfo 1936 1937func (m *Key) GetPartitionId() *PartitionId { 1938 if m != nil { 1939 return m.PartitionId 1940 } 1941 return nil 1942} 1943 1944func (m *Key) GetPath() []*Key_PathElement { 1945 if m != nil { 1946 return m.Path 1947 } 1948 return nil 1949} 1950 1951// A (kind, ID/name) pair used to construct a key path. 1952// 1953// If either name or ID is set, the element is complete. 1954// If neither is set, the element is incomplete. 1955type Key_PathElement struct { 1956 // The kind of the entity. 1957 // A kind matching regex `__.*__` is reserved/read-only. 1958 // A kind must not contain more than 1500 bytes when UTF-8 encoded. 1959 // Cannot be `""`. 1960 Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"` 1961 // The type of ID. 1962 // 1963 // Types that are valid to be assigned to IdType: 1964 // *Key_PathElement_Id 1965 // *Key_PathElement_Name 1966 IdType isKey_PathElement_IdType `protobuf_oneof:"id_type"` 1967 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1968 XXX_unrecognized []byte `json:"-"` 1969 XXX_sizecache int32 `json:"-"` 1970} 1971 1972func (m *Key_PathElement) Reset() { *m = Key_PathElement{} } 1973func (m *Key_PathElement) String() string { return proto.CompactTextString(m) } 1974func (*Key_PathElement) ProtoMessage() {} 1975func (*Key_PathElement) Descriptor() ([]byte, []int) { 1976 return fileDescriptor_ab5e749073e1398d, []int{15, 0} 1977} 1978 1979func (m *Key_PathElement) XXX_Unmarshal(b []byte) error { 1980 return xxx_messageInfo_Key_PathElement.Unmarshal(m, b) 1981} 1982func (m *Key_PathElement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1983 return xxx_messageInfo_Key_PathElement.Marshal(b, m, deterministic) 1984} 1985func (m *Key_PathElement) XXX_Merge(src proto.Message) { 1986 xxx_messageInfo_Key_PathElement.Merge(m, src) 1987} 1988func (m *Key_PathElement) XXX_Size() int { 1989 return xxx_messageInfo_Key_PathElement.Size(m) 1990} 1991func (m *Key_PathElement) XXX_DiscardUnknown() { 1992 xxx_messageInfo_Key_PathElement.DiscardUnknown(m) 1993} 1994 1995var xxx_messageInfo_Key_PathElement proto.InternalMessageInfo 1996 1997func (m *Key_PathElement) GetKind() string { 1998 if m != nil { 1999 return m.Kind 2000 } 2001 return "" 2002} 2003 2004type isKey_PathElement_IdType interface { 2005 isKey_PathElement_IdType() 2006} 2007 2008type Key_PathElement_Id struct { 2009 Id int64 `protobuf:"varint,2,opt,name=id,proto3,oneof"` 2010} 2011 2012type Key_PathElement_Name struct { 2013 Name string `protobuf:"bytes,3,opt,name=name,proto3,oneof"` 2014} 2015 2016func (*Key_PathElement_Id) isKey_PathElement_IdType() {} 2017 2018func (*Key_PathElement_Name) isKey_PathElement_IdType() {} 2019 2020func (m *Key_PathElement) GetIdType() isKey_PathElement_IdType { 2021 if m != nil { 2022 return m.IdType 2023 } 2024 return nil 2025} 2026 2027func (m *Key_PathElement) GetId() int64 { 2028 if x, ok := m.GetIdType().(*Key_PathElement_Id); ok { 2029 return x.Id 2030 } 2031 return 0 2032} 2033 2034func (m *Key_PathElement) GetName() string { 2035 if x, ok := m.GetIdType().(*Key_PathElement_Name); ok { 2036 return x.Name 2037 } 2038 return "" 2039} 2040 2041// XXX_OneofWrappers is for the internal use of the proto package. 2042func (*Key_PathElement) XXX_OneofWrappers() []interface{} { 2043 return []interface{}{ 2044 (*Key_PathElement_Id)(nil), 2045 (*Key_PathElement_Name)(nil), 2046 } 2047} 2048 2049// Message for a unique key indicating a record that contains a finding. 2050type RecordKey struct { 2051 // Types that are valid to be assigned to Type: 2052 // *RecordKey_DatastoreKey 2053 // *RecordKey_BigQueryKey 2054 Type isRecordKey_Type `protobuf_oneof:"type"` 2055 // Values of identifying columns in the given row. Order of values matches 2056 // the order of field identifiers specified in the scanning request. 2057 IdValues []string `protobuf:"bytes,5,rep,name=id_values,json=idValues,proto3" json:"id_values,omitempty"` 2058 XXX_NoUnkeyedLiteral struct{} `json:"-"` 2059 XXX_unrecognized []byte `json:"-"` 2060 XXX_sizecache int32 `json:"-"` 2061} 2062 2063func (m *RecordKey) Reset() { *m = RecordKey{} } 2064func (m *RecordKey) String() string { return proto.CompactTextString(m) } 2065func (*RecordKey) ProtoMessage() {} 2066func (*RecordKey) Descriptor() ([]byte, []int) { 2067 return fileDescriptor_ab5e749073e1398d, []int{16} 2068} 2069 2070func (m *RecordKey) XXX_Unmarshal(b []byte) error { 2071 return xxx_messageInfo_RecordKey.Unmarshal(m, b) 2072} 2073func (m *RecordKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 2074 return xxx_messageInfo_RecordKey.Marshal(b, m, deterministic) 2075} 2076func (m *RecordKey) XXX_Merge(src proto.Message) { 2077 xxx_messageInfo_RecordKey.Merge(m, src) 2078} 2079func (m *RecordKey) XXX_Size() int { 2080 return xxx_messageInfo_RecordKey.Size(m) 2081} 2082func (m *RecordKey) XXX_DiscardUnknown() { 2083 xxx_messageInfo_RecordKey.DiscardUnknown(m) 2084} 2085 2086var xxx_messageInfo_RecordKey proto.InternalMessageInfo 2087 2088type isRecordKey_Type interface { 2089 isRecordKey_Type() 2090} 2091 2092type RecordKey_DatastoreKey struct { 2093 DatastoreKey *DatastoreKey `protobuf:"bytes,2,opt,name=datastore_key,json=datastoreKey,proto3,oneof"` 2094} 2095 2096type RecordKey_BigQueryKey struct { 2097 BigQueryKey *BigQueryKey `protobuf:"bytes,3,opt,name=big_query_key,json=bigQueryKey,proto3,oneof"` 2098} 2099 2100func (*RecordKey_DatastoreKey) isRecordKey_Type() {} 2101 2102func (*RecordKey_BigQueryKey) isRecordKey_Type() {} 2103 2104func (m *RecordKey) GetType() isRecordKey_Type { 2105 if m != nil { 2106 return m.Type 2107 } 2108 return nil 2109} 2110 2111func (m *RecordKey) GetDatastoreKey() *DatastoreKey { 2112 if x, ok := m.GetType().(*RecordKey_DatastoreKey); ok { 2113 return x.DatastoreKey 2114 } 2115 return nil 2116} 2117 2118func (m *RecordKey) GetBigQueryKey() *BigQueryKey { 2119 if x, ok := m.GetType().(*RecordKey_BigQueryKey); ok { 2120 return x.BigQueryKey 2121 } 2122 return nil 2123} 2124 2125func (m *RecordKey) GetIdValues() []string { 2126 if m != nil { 2127 return m.IdValues 2128 } 2129 return nil 2130} 2131 2132// XXX_OneofWrappers is for the internal use of the proto package. 2133func (*RecordKey) XXX_OneofWrappers() []interface{} { 2134 return []interface{}{ 2135 (*RecordKey_DatastoreKey)(nil), 2136 (*RecordKey_BigQueryKey)(nil), 2137 } 2138} 2139 2140// Message defining the location of a BigQuery table. A table is uniquely 2141// identified by its project_id, dataset_id, and table_name. Within a query 2142// a table is often referenced with a string in the format of: 2143// `<project_id>:<dataset_id>.<table_id>` or 2144// `<project_id>.<dataset_id>.<table_id>`. 2145type BigQueryTable struct { 2146 // The Google Cloud Platform project ID of the project containing the table. 2147 // If omitted, project ID is inferred from the API call. 2148 ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` 2149 // Dataset ID of the table. 2150 DatasetId string `protobuf:"bytes,2,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"` 2151 // Name of the table. 2152 TableId string `protobuf:"bytes,3,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` 2153 XXX_NoUnkeyedLiteral struct{} `json:"-"` 2154 XXX_unrecognized []byte `json:"-"` 2155 XXX_sizecache int32 `json:"-"` 2156} 2157 2158func (m *BigQueryTable) Reset() { *m = BigQueryTable{} } 2159func (m *BigQueryTable) String() string { return proto.CompactTextString(m) } 2160func (*BigQueryTable) ProtoMessage() {} 2161func (*BigQueryTable) Descriptor() ([]byte, []int) { 2162 return fileDescriptor_ab5e749073e1398d, []int{17} 2163} 2164 2165func (m *BigQueryTable) XXX_Unmarshal(b []byte) error { 2166 return xxx_messageInfo_BigQueryTable.Unmarshal(m, b) 2167} 2168func (m *BigQueryTable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 2169 return xxx_messageInfo_BigQueryTable.Marshal(b, m, deterministic) 2170} 2171func (m *BigQueryTable) XXX_Merge(src proto.Message) { 2172 xxx_messageInfo_BigQueryTable.Merge(m, src) 2173} 2174func (m *BigQueryTable) XXX_Size() int { 2175 return xxx_messageInfo_BigQueryTable.Size(m) 2176} 2177func (m *BigQueryTable) XXX_DiscardUnknown() { 2178 xxx_messageInfo_BigQueryTable.DiscardUnknown(m) 2179} 2180 2181var xxx_messageInfo_BigQueryTable proto.InternalMessageInfo 2182 2183func (m *BigQueryTable) GetProjectId() string { 2184 if m != nil { 2185 return m.ProjectId 2186 } 2187 return "" 2188} 2189 2190func (m *BigQueryTable) GetDatasetId() string { 2191 if m != nil { 2192 return m.DatasetId 2193 } 2194 return "" 2195} 2196 2197func (m *BigQueryTable) GetTableId() string { 2198 if m != nil { 2199 return m.TableId 2200 } 2201 return "" 2202} 2203 2204// Message defining a field of a BigQuery table. 2205type BigQueryField struct { 2206 // Source table of the field. 2207 Table *BigQueryTable `protobuf:"bytes,1,opt,name=table,proto3" json:"table,omitempty"` 2208 // Designated field in the BigQuery table. 2209 Field *FieldId `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"` 2210 XXX_NoUnkeyedLiteral struct{} `json:"-"` 2211 XXX_unrecognized []byte `json:"-"` 2212 XXX_sizecache int32 `json:"-"` 2213} 2214 2215func (m *BigQueryField) Reset() { *m = BigQueryField{} } 2216func (m *BigQueryField) String() string { return proto.CompactTextString(m) } 2217func (*BigQueryField) ProtoMessage() {} 2218func (*BigQueryField) Descriptor() ([]byte, []int) { 2219 return fileDescriptor_ab5e749073e1398d, []int{18} 2220} 2221 2222func (m *BigQueryField) XXX_Unmarshal(b []byte) error { 2223 return xxx_messageInfo_BigQueryField.Unmarshal(m, b) 2224} 2225func (m *BigQueryField) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 2226 return xxx_messageInfo_BigQueryField.Marshal(b, m, deterministic) 2227} 2228func (m *BigQueryField) XXX_Merge(src proto.Message) { 2229 xxx_messageInfo_BigQueryField.Merge(m, src) 2230} 2231func (m *BigQueryField) XXX_Size() int { 2232 return xxx_messageInfo_BigQueryField.Size(m) 2233} 2234func (m *BigQueryField) XXX_DiscardUnknown() { 2235 xxx_messageInfo_BigQueryField.DiscardUnknown(m) 2236} 2237 2238var xxx_messageInfo_BigQueryField proto.InternalMessageInfo 2239 2240func (m *BigQueryField) GetTable() *BigQueryTable { 2241 if m != nil { 2242 return m.Table 2243 } 2244 return nil 2245} 2246 2247func (m *BigQueryField) GetField() *FieldId { 2248 if m != nil { 2249 return m.Field 2250 } 2251 return nil 2252} 2253 2254// An entity in a dataset is a field or set of fields that correspond to a 2255// single person. For example, in medical records the `EntityId` might be a 2256// patient identifier, or for financial records it might be an account 2257// identifier. This message is used when generalizations or analysis must take 2258// into account that multiple rows correspond to the same entity. 2259type EntityId struct { 2260 // Composite key indicating which field contains the entity identifier. 2261 Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` 2262 XXX_NoUnkeyedLiteral struct{} `json:"-"` 2263 XXX_unrecognized []byte `json:"-"` 2264 XXX_sizecache int32 `json:"-"` 2265} 2266 2267func (m *EntityId) Reset() { *m = EntityId{} } 2268func (m *EntityId) String() string { return proto.CompactTextString(m) } 2269func (*EntityId) ProtoMessage() {} 2270func (*EntityId) Descriptor() ([]byte, []int) { 2271 return fileDescriptor_ab5e749073e1398d, []int{19} 2272} 2273 2274func (m *EntityId) XXX_Unmarshal(b []byte) error { 2275 return xxx_messageInfo_EntityId.Unmarshal(m, b) 2276} 2277func (m *EntityId) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 2278 return xxx_messageInfo_EntityId.Marshal(b, m, deterministic) 2279} 2280func (m *EntityId) XXX_Merge(src proto.Message) { 2281 xxx_messageInfo_EntityId.Merge(m, src) 2282} 2283func (m *EntityId) XXX_Size() int { 2284 return xxx_messageInfo_EntityId.Size(m) 2285} 2286func (m *EntityId) XXX_DiscardUnknown() { 2287 xxx_messageInfo_EntityId.DiscardUnknown(m) 2288} 2289 2290var xxx_messageInfo_EntityId proto.InternalMessageInfo 2291 2292func (m *EntityId) GetField() *FieldId { 2293 if m != nil { 2294 return m.Field 2295 } 2296 return nil 2297} 2298 2299func init() { 2300 proto.RegisterEnum("google.privacy.dlp.v2.Likelihood", Likelihood_name, Likelihood_value) 2301 proto.RegisterEnum("google.privacy.dlp.v2.FileType", FileType_name, FileType_value) 2302 proto.RegisterEnum("google.privacy.dlp.v2.CustomInfoType_ExclusionType", CustomInfoType_ExclusionType_name, CustomInfoType_ExclusionType_value) 2303 proto.RegisterEnum("google.privacy.dlp.v2.CloudStorageOptions_SampleMethod", CloudStorageOptions_SampleMethod_name, CloudStorageOptions_SampleMethod_value) 2304 proto.RegisterEnum("google.privacy.dlp.v2.BigQueryOptions_SampleMethod", BigQueryOptions_SampleMethod_name, BigQueryOptions_SampleMethod_value) 2305 proto.RegisterType((*InfoType)(nil), "google.privacy.dlp.v2.InfoType") 2306 proto.RegisterType((*StoredType)(nil), "google.privacy.dlp.v2.StoredType") 2307 proto.RegisterType((*CustomInfoType)(nil), "google.privacy.dlp.v2.CustomInfoType") 2308 proto.RegisterType((*CustomInfoType_Dictionary)(nil), "google.privacy.dlp.v2.CustomInfoType.Dictionary") 2309 proto.RegisterType((*CustomInfoType_Dictionary_WordList)(nil), "google.privacy.dlp.v2.CustomInfoType.Dictionary.WordList") 2310 proto.RegisterType((*CustomInfoType_Regex)(nil), "google.privacy.dlp.v2.CustomInfoType.Regex") 2311 proto.RegisterType((*CustomInfoType_SurrogateType)(nil), "google.privacy.dlp.v2.CustomInfoType.SurrogateType") 2312 proto.RegisterType((*CustomInfoType_DetectionRule)(nil), "google.privacy.dlp.v2.CustomInfoType.DetectionRule") 2313 proto.RegisterType((*CustomInfoType_DetectionRule_Proximity)(nil), "google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity") 2314 proto.RegisterType((*CustomInfoType_DetectionRule_LikelihoodAdjustment)(nil), "google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustment") 2315 proto.RegisterType((*CustomInfoType_DetectionRule_HotwordRule)(nil), "google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule") 2316 proto.RegisterType((*FieldId)(nil), "google.privacy.dlp.v2.FieldId") 2317 proto.RegisterType((*PartitionId)(nil), "google.privacy.dlp.v2.PartitionId") 2318 proto.RegisterType((*KindExpression)(nil), "google.privacy.dlp.v2.KindExpression") 2319 proto.RegisterType((*DatastoreOptions)(nil), "google.privacy.dlp.v2.DatastoreOptions") 2320 proto.RegisterType((*CloudStorageRegexFileSet)(nil), "google.privacy.dlp.v2.CloudStorageRegexFileSet") 2321 proto.RegisterType((*CloudStorageOptions)(nil), "google.privacy.dlp.v2.CloudStorageOptions") 2322 proto.RegisterType((*CloudStorageOptions_FileSet)(nil), "google.privacy.dlp.v2.CloudStorageOptions.FileSet") 2323 proto.RegisterType((*CloudStorageFileSet)(nil), "google.privacy.dlp.v2.CloudStorageFileSet") 2324 proto.RegisterType((*CloudStoragePath)(nil), "google.privacy.dlp.v2.CloudStoragePath") 2325 proto.RegisterType((*BigQueryOptions)(nil), "google.privacy.dlp.v2.BigQueryOptions") 2326 proto.RegisterType((*StorageConfig)(nil), "google.privacy.dlp.v2.StorageConfig") 2327 proto.RegisterType((*StorageConfig_TimespanConfig)(nil), "google.privacy.dlp.v2.StorageConfig.TimespanConfig") 2328 proto.RegisterType((*BigQueryKey)(nil), "google.privacy.dlp.v2.BigQueryKey") 2329 proto.RegisterType((*DatastoreKey)(nil), "google.privacy.dlp.v2.DatastoreKey") 2330 proto.RegisterType((*Key)(nil), "google.privacy.dlp.v2.Key") 2331 proto.RegisterType((*Key_PathElement)(nil), "google.privacy.dlp.v2.Key.PathElement") 2332 proto.RegisterType((*RecordKey)(nil), "google.privacy.dlp.v2.RecordKey") 2333 proto.RegisterType((*BigQueryTable)(nil), "google.privacy.dlp.v2.BigQueryTable") 2334 proto.RegisterType((*BigQueryField)(nil), "google.privacy.dlp.v2.BigQueryField") 2335 proto.RegisterType((*EntityId)(nil), "google.privacy.dlp.v2.EntityId") 2336} 2337 2338func init() { 2339 proto.RegisterFile("google/privacy/dlp/v2/storage.proto", fileDescriptor_ab5e749073e1398d) 2340} 2341 2342var fileDescriptor_ab5e749073e1398d = []byte{ 2343 // 2072 bytes of a gzipped FileDescriptorProto 2344 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0xdd, 0x72, 0x1b, 0x49, 2345 0x15, 0xd6, 0x48, 0x96, 0x25, 0x1d, 0xfd, 0x58, 0x6e, 0x3b, 0x5b, 0x8a, 0xd8, 0x24, 0x5e, 0x39, 2346 0x64, 0x4d, 0xa0, 0x24, 0xf0, 0x42, 0x41, 0x76, 0x61, 0x41, 0xb2, 0xe4, 0x48, 0xf8, 0x47, 0xa2, 2347 0xa5, 0x38, 0x3f, 0x98, 0x1a, 0x46, 0x9a, 0x96, 0x3c, 0x9b, 0xd1, 0xcc, 0x30, 0xd3, 0xb2, 0xad, 2348 0xa2, 0xb8, 0xe0, 0x82, 0x6b, 0x6e, 0x78, 0x04, 0xaa, 0xa8, 0xa2, 0x78, 0x02, 0xb8, 0xe7, 0x82, 2349 0x87, 0xa0, 0x6a, 0x2f, 0x29, 0x5e, 0x62, 0xab, 0x7f, 0x66, 0x34, 0x52, 0xac, 0x44, 0x4e, 0xe5, 2350 0x6e, 0xfa, 0xf4, 0xf9, 0x4e, 0xf7, 0x39, 0xe7, 0xeb, 0xd3, 0xa7, 0x07, 0x76, 0x47, 0xb6, 0x3d, 2351 0x32, 0x49, 0xc5, 0x71, 0x8d, 0x4b, 0x6d, 0x30, 0xad, 0xe8, 0xa6, 0x53, 0xb9, 0xdc, 0xaf, 0x78, 2352 0xd4, 0x76, 0xb5, 0x11, 0x29, 0x3b, 0xae, 0x4d, 0x6d, 0x74, 0x47, 0x28, 0x95, 0xa5, 0x52, 0x59, 2353 0x37, 0x9d, 0xf2, 0xe5, 0x7e, 0xf1, 0x63, 0x89, 0xd5, 0x1c, 0xa3, 0xa2, 0x59, 0x96, 0x4d, 0x35, 2354 0x6a, 0xd8, 0x96, 0x27, 0x40, 0xc5, 0x07, 0x81, 0x65, 0x9b, 0xda, 0xfd, 0xc9, 0xb0, 0x42, 0x8d, 2355 0x31, 0xf1, 0xa8, 0x36, 0x76, 0x84, 0x42, 0xe9, 0x3e, 0x24, 0x5b, 0xd6, 0xd0, 0xee, 0x4d, 0x1d, 2356 0x82, 0x10, 0xac, 0x59, 0xda, 0x98, 0x14, 0x94, 0x1d, 0x65, 0x2f, 0x85, 0xf9, 0x77, 0xe9, 0x37, 2357 0x00, 0x5d, 0x6a, 0xbb, 0x44, 0x5f, 0xa6, 0x81, 0xbe, 0x80, 0xf4, 0xc0, 0x25, 0x1a, 0x25, 0x2a, 2358 0xb3, 0x5d, 0x88, 0xee, 0x28, 0x7b, 0xe9, 0xfd, 0x62, 0x39, 0xd8, 0xad, 0x58, 0xb8, 0xdc, 0xf3, 2359 0x17, 0xc6, 0x20, 0xd4, 0x99, 0xa0, 0xf4, 0x75, 0x16, 0x72, 0x07, 0x13, 0x8f, 0xda, 0xe3, 0x60, 2360 0x17, 0x3f, 0x85, 0x94, 0x61, 0x0d, 0x6d, 0x95, 0x4e, 0x1d, 0xb1, 0x50, 0x7a, 0xff, 0x41, 0xf9, 2361 0x46, 0xdf, 0xcb, 0x3e, 0x06, 0x27, 0x0d, 0x1f, 0x5d, 0x05, 0x30, 0x8d, 0xd7, 0xc4, 0x34, 0x2e, 2362 0x6c, 0x5b, 0x2f, 0xac, 0xef, 0x28, 0x7b, 0xb9, 0xfd, 0x4f, 0x96, 0xc0, 0x8f, 0x03, 0x45, 0x1c, 2363 0x02, 0x21, 0x0c, 0xa0, 0x1b, 0x03, 0x16, 0x45, 0xcd, 0x9d, 0x4a, 0x7f, 0xbe, 0xbf, 0xc4, 0xc4, 2364 0xfc, 0xde, 0xcb, 0xf5, 0x00, 0xd7, 0x8c, 0xe0, 0x90, 0x15, 0x74, 0x00, 0x71, 0x97, 0x8c, 0xc8, 2365 0x75, 0x21, 0xc6, 0xcd, 0x7d, 0x77, 0x35, 0x73, 0x98, 0x41, 0x9a, 0x11, 0x2c, 0xb0, 0xe8, 0x1c, 2366 0x72, 0xde, 0xc4, 0x75, 0xed, 0x11, 0x0f, 0x36, 0x0b, 0xcf, 0x1a, 0xb7, 0xf6, 0xd9, 0x6a, 0xd6, 2367 0xba, 0x3e, 0x96, 0x8d, 0x9a, 0x11, 0x9c, 0xf5, 0xc2, 0x02, 0x54, 0x87, 0xb4, 0xc7, 0x33, 0x2d, 2368 0x4c, 0xc7, 0xb9, 0xe9, 0x65, 0xa1, 0x9b, 0x71, 0x82, 0x39, 0xea, 0xcd, 0x18, 0x72, 0x0e, 0x1b, 2369 0x3a, 0xa1, 0x84, 0x3b, 0xae, 0xba, 0x13, 0x93, 0x78, 0x85, 0xc4, 0x4e, 0x6c, 0xf5, 0x4d, 0xd6, 2370 0x7d, 0x30, 0x9e, 0x98, 0x04, 0xe7, 0xf4, 0xf0, 0xd0, 0x43, 0xaf, 0x20, 0x47, 0xae, 0x07, 0xe6, 2371 0xc4, 0x63, 0xd6, 0xf9, 0x36, 0x93, 0x3c, 0xc3, 0x2b, 0x1a, 0x6f, 0xf8, 0x58, 0x4e, 0x9a, 0x2c, 2372 0x09, 0x0f, 0x8b, 0xff, 0x57, 0x00, 0x66, 0xf9, 0x43, 0x2f, 0x20, 0x75, 0x65, 0xbb, 0xba, 0x6a, 2373 0x1a, 0x1e, 0x95, 0x34, 0x7c, 0x72, 0x5b, 0x12, 0x94, 0x9f, 0xdb, 0xae, 0x7e, 0x6c, 0x78, 0xb4, 2374 0x19, 0xc1, 0xc9, 0x2b, 0xf9, 0x8d, 0x9e, 0x03, 0x1a, 0x98, 0xf6, 0x44, 0x57, 0xe5, 0xf9, 0x56, 2375 0x1d, 0x8d, 0x5e, 0x48, 0x62, 0x7c, 0xba, 0x6c, 0x09, 0x06, 0xe8, 0x0a, 0xfd, 0x8e, 0x46, 0x2f, 2376 0x9a, 0x11, 0x9c, 0x1f, 0x2c, 0xc8, 0x8a, 0x3b, 0x90, 0xf4, 0x17, 0x44, 0xdb, 0x10, 0x67, 0x0b, 2377 0x7a, 0x05, 0x65, 0x27, 0xb6, 0x97, 0xc2, 0x62, 0x50, 0x4b, 0xc2, 0xba, 0x67, 0x4f, 0xdc, 0x01, 2378 0x29, 0x1e, 0x42, 0x9c, 0xb3, 0x0b, 0x15, 0x20, 0xe1, 0x68, 0x94, 0x12, 0xd7, 0x92, 0xa7, 0xda, 2379 0x1f, 0xa2, 0x5d, 0xc8, 0x8e, 0x5c, 0x7b, 0xe2, 0xa8, 0x86, 0xa5, 0x93, 0x6b, 0xe2, 0x15, 0xa2, 2380 0x3b, 0xb1, 0xbd, 0x38, 0xce, 0x70, 0x61, 0x4b, 0xc8, 0x8a, 0x1b, 0x90, 0x9d, 0xe3, 0x55, 0xf1, 2381 0x9f, 0x71, 0xc8, 0xce, 0x25, 0x11, 0xe9, 0x90, 0xb9, 0xb0, 0x29, 0x0f, 0x26, 0x23, 0x84, 0x0c, 2382 0xe6, 0xcf, 0xdf, 0x83, 0x0f, 0xe5, 0xa6, 0xb0, 0xc3, 0xbe, 0x9b, 0x11, 0x9c, 0xbe, 0x98, 0x0d, 2383 0x8b, 0x5d, 0x48, 0x75, 0x5c, 0xfb, 0xda, 0x18, 0x1b, 0x74, 0xca, 0xb6, 0x7e, 0x65, 0x58, 0xba, 2384 0x7d, 0xa5, 0xf6, 0xc9, 0xd0, 0x76, 0xc5, 0x9a, 0x71, 0x9c, 0x11, 0xc2, 0x1a, 0x97, 0xa1, 0x4f, 2385 0x40, 0x8e, 0x55, 0x6d, 0x48, 0x89, 0xcb, 0x4f, 0x7a, 0x1c, 0xa7, 0x85, 0xac, 0xca, 0x44, 0xc5, 2386 0xbf, 0x29, 0xb0, 0x3d, 0xab, 0x12, 0x55, 0xfd, 0xab, 0x89, 0x47, 0xc7, 0xc4, 0xa2, 0xe8, 0x14, 2387 0xf2, 0x43, 0xe3, 0x9a, 0x30, 0x7a, 0x04, 0xc5, 0x46, 0x59, 0xb1, 0xd8, 0x34, 0x23, 0x78, 0x83, 2388 0x83, 0x67, 0x22, 0xf4, 0x03, 0xd8, 0x72, 0x89, 0xa9, 0x51, 0xe3, 0x92, 0x84, 0x4d, 0xf2, 0x2d, 2389 0x35, 0x23, 0x18, 0xf9, 0x93, 0x33, 0x48, 0x2d, 0x03, 0xa0, 0x05, 0x1b, 0x2a, 0xfe, 0x2b, 0x0a, 2390 0xe9, 0x50, 0x74, 0x50, 0x07, 0xb2, 0x41, 0xd0, 0x79, 0xe1, 0x51, 0x6e, 0x5d, 0x78, 0xb0, 0x9f, 2391 0x36, 0x41, 0x94, 0x5f, 0x43, 0xca, 0xf1, 0x03, 0x2c, 0xab, 0xe2, 0xcf, 0xde, 0x27, 0x87, 0x41, 2392 0x96, 0xf0, 0xcc, 0x1e, 0xfa, 0x03, 0xdc, 0x99, 0xb9, 0xad, 0xce, 0xfc, 0x92, 0xc7, 0xa2, 0xf9, 2393 0x3e, 0x0b, 0xdd, 0x94, 0x38, 0xbc, 0x6d, 0xde, 0x20, 0xad, 0xad, 0xc3, 0x1a, 0xab, 0x26, 0xa5, 2394 0x23, 0xc8, 0xce, 0xd5, 0x08, 0x74, 0x1f, 0x8a, 0x8d, 0x17, 0x07, 0xc7, 0xcf, 0xba, 0xad, 0xf6, 2395 0xa9, 0xda, 0x7b, 0xd9, 0x69, 0xa8, 0xcf, 0x4e, 0xbb, 0x9d, 0xc6, 0x41, 0xeb, 0xb0, 0xd5, 0xa8, 2396 0xe7, 0x23, 0xa8, 0x08, 0x1f, 0x2d, 0xcc, 0xf3, 0x61, 0xbd, 0x91, 0x57, 0x02, 0xa3, 0xf7, 0x20, 2397 0x71, 0x68, 0x10, 0x53, 0x6f, 0xe9, 0x37, 0xde, 0xb0, 0x6d, 0x48, 0x77, 0x34, 0x97, 0x1a, 0x6c, 2398 0xdf, 0x2d, 0x1d, 0xdd, 0x03, 0x70, 0x5c, 0xfb, 0x2b, 0x32, 0xa0, 0xaa, 0x21, 0x08, 0x90, 0xe2, 2399 0x81, 0x62, 0x92, 0x96, 0xce, 0x48, 0xcb, 0x50, 0x9e, 0xa3, 0x0d, 0x08, 0x53, 0x58, 0xe3, 0x0a, 2400 0xe9, 0x40, 0xd6, 0xd2, 0x4b, 0x0f, 0x21, 0x77, 0x64, 0x58, 0x7a, 0xe3, 0xda, 0x71, 0x89, 0xc7, 2401 0x3c, 0xb9, 0x71, 0xd9, 0xbf, 0x28, 0x90, 0xaf, 0x6b, 0x54, 0xe3, 0xb5, 0xbb, 0xed, 0xf0, 0xa6, 2402 0x01, 0x35, 0x20, 0xe3, 0xf8, 0x7b, 0x61, 0xd6, 0x05, 0x69, 0x4a, 0x4b, 0xa2, 0x1f, 0xda, 0x36, 2403 0x4e, 0x3b, 0x21, 0x1f, 0x9e, 0xc0, 0xda, 0x6b, 0xc3, 0xd2, 0x25, 0x4b, 0xbe, 0xbd, 0x04, 0x3e, 2404 0xbf, 0x49, 0xcc, 0x21, 0xa5, 0x3f, 0x29, 0x50, 0x08, 0x17, 0x3b, 0xce, 0xbd, 0x43, 0xc3, 0x24, 2405 0x5d, 0x42, 0xd1, 0x03, 0x48, 0xf7, 0x27, 0x83, 0xd7, 0x84, 0xaa, 0x21, 0x77, 0x40, 0x88, 0x4e, 2406 0x59, 0x2f, 0xb2, 0x0b, 0x59, 0xc3, 0x1a, 0x98, 0x13, 0x9d, 0x48, 0xd6, 0x47, 0x79, 0xf5, 0xcb, 2407 0x48, 0xa1, 0x20, 0xf2, 0x2e, 0x88, 0xca, 0x1f, 0x28, 0xc5, 0x84, 0x92, 0x14, 0x72, 0xa5, 0xd2, 2408 0xd7, 0x6b, 0xb0, 0x15, 0xde, 0x87, 0x1f, 0xa1, 0x13, 0x48, 0x0e, 0x0d, 0x93, 0xa8, 0x1e, 0xf1, 2409 0x6f, 0x85, 0xfd, 0x15, 0x4a, 0xb6, 0x44, 0x97, 0xa5, 0x23, 0x38, 0x31, 0x94, 0x1e, 0x55, 0x60, 2410 0xbb, 0x3f, 0xa5, 0xc4, 0x53, 0x4d, 0x76, 0x0e, 0x54, 0x87, 0xb8, 0x2a, 0x9b, 0xe2, 0x69, 0x8d, 2411 0xe1, 0x4d, 0x3e, 0x77, 0xcc, 0xa6, 0x3a, 0xc4, 0x65, 0x60, 0xf4, 0x25, 0x7c, 0x7c, 0x13, 0x80, 2412 0x7d, 0x0c, 0xd8, 0x79, 0x49, 0xf2, 0x22, 0x56, 0x78, 0x03, 0xd8, 0x11, 0xf3, 0xe8, 0x4b, 0x00, 2413 0xae, 0xcf, 0x98, 0xe9, 0x15, 0xe2, 0x3b, 0xb1, 0xbd, 0xdc, 0xd2, 0xf6, 0x8a, 0xe1, 0xf8, 0x4d, 2414 0x99, 0x1a, 0xca, 0x2f, 0x0f, 0x9d, 0x43, 0xd6, 0xd3, 0xc6, 0x8e, 0x49, 0xd4, 0x31, 0xa1, 0x17, 2415 0x41, 0x8b, 0xf5, 0xe3, 0x5b, 0x04, 0xa1, 0xcb, 0xf1, 0x27, 0x1c, 0x8e, 0x33, 0x5e, 0x68, 0x84, 2416 0xca, 0xb0, 0xc5, 0x96, 0x0a, 0x79, 0xc7, 0x9d, 0x4a, 0x70, 0xa7, 0x36, 0xf9, 0x94, 0xef, 0x14, 2417 0x9b, 0x28, 0xba, 0xec, 0x68, 0x89, 0x48, 0xe6, 0x21, 0x36, 0x71, 0x4d, 0xc9, 0x09, 0xf6, 0x89, 2418 0x9e, 0x41, 0x8e, 0xe7, 0x57, 0x0d, 0x12, 0x26, 0xf8, 0x58, 0x59, 0x61, 0xaf, 0x61, 0xda, 0xe1, 2419 0x8c, 0x1b, 0x1a, 0x95, 0x9a, 0x90, 0x09, 0x7b, 0x80, 0xee, 0xc1, 0xdd, 0x6e, 0xf5, 0xa4, 0x73, 2420 0xdc, 0x50, 0x4f, 0x1a, 0xbd, 0x66, 0xbb, 0xbe, 0x50, 0x21, 0x12, 0x10, 0xeb, 0xb5, 0x3b, 0x79, 2421 0x05, 0xe5, 0x21, 0x83, 0xab, 0xa7, 0xf5, 0xf6, 0x89, 0xda, 0xed, 0x55, 0x71, 0x2f, 0x1f, 0x2d, 2422 0x7d, 0x3a, 0x4f, 0xb1, 0xa5, 0x9e, 0x94, 0x1e, 0x41, 0x7e, 0xb1, 0x01, 0x60, 0x67, 0x9a, 0xf7, 2423 0x0d, 0xf2, 0x4c, 0xb3, 0xef, 0xd2, 0xff, 0x62, 0xb0, 0x51, 0x33, 0x46, 0xbf, 0x9a, 0x10, 0x77, 2424 0x3a, 0x23, 0xec, 0x06, 0xd5, 0xfa, 0x26, 0xe3, 0xfa, 0x90, 0xb8, 0xc4, 0x1a, 0xf8, 0x17, 0xf0, 2425 0xc3, 0x25, 0x61, 0xf0, 0x0d, 0xf4, 0x18, 0x0a, 0xe7, 0x38, 0x18, 0xfb, 0x58, 0x74, 0x02, 0xc8, 2426 0xd0, 0x89, 0x45, 0x8d, 0xe1, 0xd4, 0xb0, 0x46, 0xea, 0x90, 0x15, 0x36, 0xd1, 0x19, 0xa4, 0xf7, 2427 0xef, 0x2f, 0xe5, 0x11, 0xaf, 0x7e, 0x78, 0x33, 0x84, 0xe4, 0x32, 0x8f, 0x55, 0x3b, 0xd7, 0xbe, 2428 0x92, 0xf9, 0xe6, 0xc5, 0x3e, 0x86, 0x53, 0x4c, 0xc2, 0xd3, 0x8c, 0xbe, 0x07, 0x68, 0x36, 0x1d, 2429 0xd0, 0x61, 0x9d, 0xd3, 0x21, 0x1f, 0xa8, 0xf9, 0xdc, 0x7e, 0xb1, 0xc8, 0xcd, 0xb5, 0xb7, 0x36, 2430 0x87, 0x0b, 0x91, 0x7a, 0x1b, 0x2f, 0x9f, 0xc2, 0x86, 0xac, 0x0e, 0xba, 0xef, 0x72, 0x7c, 0x25, 2431 0x97, 0x73, 0x3e, 0x4c, 0xf8, 0xfb, 0x01, 0xc9, 0xf3, 0x8f, 0x38, 0x64, 0x25, 0x1f, 0x0e, 0x6c, 2432 0x6b, 0x68, 0x8c, 0xd0, 0x19, 0x6c, 0xea, 0x7e, 0x41, 0x57, 0x6d, 0xe1, 0x94, 0xa4, 0xfc, 0xb2, 2433 0xb6, 0x72, 0xf1, 0x02, 0x60, 0x6d, 0xa5, 0xbe, 0x78, 0x29, 0xfc, 0x16, 0xee, 0xcc, 0xf7, 0xab, 2434 0xbe, 0x6d, 0x71, 0x37, 0x3f, 0x5e, 0xfd, 0xe8, 0x37, 0x23, 0x78, 0x6b, 0x70, 0x43, 0x51, 0xed, 2435 0xc1, 0x66, 0xdf, 0x18, 0xa9, 0xbf, 0x63, 0xd9, 0x08, 0xac, 0x8b, 0xb7, 0xcd, 0xa3, 0xd5, 0x92, 2436 0xc7, 0x7a, 0xaa, 0xfe, 0x02, 0xf3, 0xcf, 0x61, 0x83, 0xbf, 0x76, 0x1d, 0xcd, 0x52, 0x07, 0x3c, 2437 0x44, 0x9c, 0x39, 0xcb, 0x9f, 0x22, 0x73, 0xe1, 0x14, 0x0f, 0x56, 0x47, 0xb3, 0xc4, 0x10, 0xe7, 2438 0xe8, 0xdc, 0xb8, 0xf8, 0xd7, 0x28, 0xe4, 0xe6, 0x55, 0xd0, 0x13, 0x00, 0x8f, 0x6a, 0x2e, 0x15, 2439 0x0f, 0x61, 0xe5, 0x9d, 0x0f, 0xe1, 0x14, 0xd7, 0x66, 0x63, 0xf4, 0x23, 0x48, 0x12, 0x4b, 0x5f, 2440 0xf5, 0x05, 0x9d, 0x20, 0x96, 0xce, 0x61, 0x4f, 0xa5, 0x8b, 0x4c, 0x2a, 0x88, 0x29, 0x93, 0xf2, 2441 0x4e, 0x5e, 0x06, 0x30, 0x2e, 0x41, 0xcf, 0xe1, 0x3b, 0xc4, 0xe2, 0x65, 0x42, 0x9b, 0x50, 0x5b, 2442 0x75, 0x6c, 0x67, 0x62, 0xf2, 0x1f, 0x09, 0xaa, 0x3d, 0x54, 0x17, 0xa3, 0xc8, 0x32, 0x93, 0xc4, 2443 0x0f, 0x05, 0xa0, 0x3a, 0xa1, 0x76, 0x27, 0x50, 0x6f, 0x0f, 0xe7, 0x63, 0x12, 0x34, 0x41, 0xbf, 2444 0x87, 0xb4, 0x9f, 0xb2, 0x23, 0x32, 0xfd, 0xd0, 0x55, 0x49, 0x94, 0x11, 0xd5, 0x9a, 0x8c, 0xfb, 2445 0xb2, 0x91, 0x17, 0x65, 0xe4, 0x94, 0x0b, 0x4a, 0x2d, 0xc8, 0x04, 0x4c, 0x67, 0xab, 0x3f, 0x01, 2446 0x60, 0x85, 0x88, 0x4e, 0xd5, 0xd7, 0x64, 0xfa, 0x66, 0xa2, 0xe6, 0xbb, 0x14, 0x32, 0xc5, 0x29, 2447 0xa1, 0x7d, 0x44, 0xa6, 0xa5, 0xff, 0x2a, 0x10, 0x63, 0x26, 0x3e, 0x50, 0xa7, 0xf4, 0xb9, 0xac, 2448 0xe2, 0xa2, 0x80, 0x3e, 0x5a, 0xbe, 0x87, 0x32, 0x2b, 0xfa, 0x0d, 0x93, 0xf0, 0x26, 0x96, 0x63, 2449 0x8a, 0x3d, 0xd6, 0x38, 0x06, 0x42, 0x76, 0x21, 0xf0, 0xa6, 0x4b, 0x5e, 0x08, 0xec, 0x1b, 0xe5, 2450 0x21, 0x2a, 0x9b, 0xc8, 0x58, 0x33, 0x82, 0xa3, 0x86, 0x8e, 0xb6, 0x65, 0x2b, 0xc8, 0x68, 0x92, 2451 0x6a, 0x46, 0x44, 0x33, 0x58, 0x4b, 0x41, 0xc2, 0x10, 0xef, 0xfe, 0xd2, 0xbf, 0x15, 0x48, 0x61, 2452 0x32, 0xb0, 0x5d, 0x9d, 0xb9, 0xf9, 0x4b, 0xc8, 0xce, 0x6a, 0x0a, 0x0b, 0x96, 0x20, 0xe7, 0xee, 2453 0xbb, 0xea, 0xc9, 0x11, 0x99, 0x36, 0x23, 0x38, 0xa3, 0x87, 0xa3, 0xde, 0x84, 0xec, 0xec, 0x94, 2454 0x33, 0x5b, 0xb1, 0xb7, 0xc6, 0x2c, 0x44, 0x17, 0xf6, 0xd6, 0xeb, 0x87, 0xd8, 0xf3, 0x2d, 0x48, 2455 0x19, 0xba, 0x7a, 0xa9, 0x99, 0x13, 0xd9, 0xc3, 0xa4, 0x70, 0xd2, 0xd0, 0xcf, 0xf8, 0x38, 0x60, 2456 0xdc, 0x05, 0x64, 0xe7, 0x48, 0xb3, 0xd0, 0x59, 0x2b, 0x8b, 0x9d, 0xf5, 0x3d, 0x00, 0xbe, 0x5d, 2457 0x12, 0x6e, 0xbc, 0xa5, 0xa4, 0xa5, 0xa3, 0xbb, 0x90, 0x14, 0x8c, 0x35, 0xc4, 0x19, 0x4b, 0xe1, 2458 0x04, 0x1f, 0xb7, 0xf4, 0xd2, 0x1f, 0x95, 0xd9, 0x52, 0xe2, 0x38, 0x7d, 0x0e, 0x71, 0x3e, 0x79, 2459 0x2b, 0x52, 0x0b, 0x08, 0xfa, 0x21, 0xc4, 0xc5, 0x49, 0x8e, 0xae, 0x74, 0x92, 0x85, 0x72, 0xe9, 2460 0x17, 0x90, 0x6c, 0x70, 0x92, 0xb6, 0xf4, 0x99, 0x05, 0xe5, 0x16, 0x16, 0x1e, 0x53, 0x80, 0xd0, 2461 0x83, 0xb4, 0x08, 0x1f, 0x1d, 0xb7, 0x8e, 0x1a, 0xc7, 0xad, 0x66, 0xfb, 0x8d, 0x5b, 0x69, 0x13, 2462 0xb2, 0x67, 0x0d, 0xfc, 0x52, 0x7d, 0x76, 0xca, 0x55, 0x5e, 0xe6, 0x15, 0x94, 0x81, 0x64, 0x30, 2463 0x8a, 0xb2, 0x51, 0xa7, 0xdd, 0xed, 0xb6, 0x6a, 0xc7, 0x8d, 0x7c, 0x0c, 0x01, 0xac, 0xcb, 0x99, 2464 0x35, 0xb4, 0x01, 0x69, 0x0e, 0x95, 0x82, 0xf8, 0xe3, 0x57, 0x90, 0xf4, 0xdb, 0x4c, 0x74, 0x17, 2465 0xee, 0x1c, 0xb6, 0x8e, 0x1b, 0x37, 0xbd, 0xb3, 0x36, 0x20, 0x5d, 0x6b, 0x9d, 0x56, 0xf1, 0x4b, 2466 0x95, 0x69, 0xe4, 0x15, 0x94, 0x85, 0x54, 0xaf, 0xf1, 0xa2, 0x27, 0x86, 0x51, 0x94, 0x82, 0x78, 2467 0xeb, 0xa4, 0xfa, 0x94, 0x2d, 0x97, 0x84, 0xb5, 0xea, 0x19, 0x6e, 0xe7, 0x13, 0xb5, 0x3f, 0x2b, 2468 0x70, 0x77, 0x60, 0x8f, 0x6f, 0x76, 0xbf, 0x06, 0x75, 0xd3, 0xf1, 0x1b, 0x2a, 0xe5, 0xd5, 0x4f, 2469 0xa4, 0xd2, 0xc8, 0x36, 0x35, 0x6b, 0x54, 0xb6, 0xdd, 0x51, 0x65, 0x44, 0x2c, 0x5e, 0x7b, 0x2b, 2470 0x62, 0x4a, 0x73, 0x0c, 0x6f, 0xe1, 0x0f, 0xed, 0x17, 0xba, 0xe9, 0xfc, 0x3d, 0xba, 0xf5, 0x54, 2471 0x40, 0xf9, 0x85, 0x57, 0xae, 0x9b, 0x4e, 0xf9, 0x6c, 0xff, 0x3f, 0xbe, 0xf4, 0x9c, 0x4b, 0xcf, 2472 0xeb, 0xa6, 0x73, 0x7e, 0xb6, 0xdf, 0x5f, 0xe7, 0x06, 0x3f, 0xfb, 0x26, 0x00, 0x00, 0xff, 0xff, 2473 0x06, 0x01, 0x23, 0x9a, 0xf1, 0x15, 0x00, 0x00, 2474} 2475