You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

2904 regels
114 KiB

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