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