@google-cloud/dlp 3.3.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,38 @@
4
4
 
5
5
  [1]: https://www.npmjs.com/package/PACKAGE NAME?activeTab=versions
6
6
 
7
+ ## [4.0.1](https://github.com/googleapis/nodejs-dlp/compare/v4.0.0...v4.0.1) (2022-06-07)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * **deps:** update dependency @google-cloud/pubsub to v3 ([#715](https://github.com/googleapis/nodejs-dlp/issues/715)) ([c8636f8](https://github.com/googleapis/nodejs-dlp/commit/c8636f84d844b594ffd11dd7bfbf5f73b56ee729))
13
+
14
+ ## [4.0.0](https://github.com/googleapis/nodejs-dlp/compare/v3.5.0...v4.0.0) (2022-05-20)
15
+
16
+
17
+ ### ⚠ BREAKING CHANGES
18
+
19
+ * update library to use Node 12 (#713)
20
+
21
+ ### Build System
22
+
23
+ * update library to use Node 12 ([#713](https://github.com/googleapis/nodejs-dlp/issues/713)) ([2999561](https://github.com/googleapis/nodejs-dlp/commit/2999561d3c1b1f4de78fb11a8c916e2bb06a92a5))
24
+
25
+ ## [3.5.0](https://github.com/googleapis/nodejs-dlp/compare/v3.4.0...v3.5.0) (2022-04-01)
26
+
27
+
28
+ ### Features
29
+
30
+ * add DataProfilePubSubMessage supporting pub/sub integration ([#695](https://github.com/googleapis/nodejs-dlp/issues/695)) ([918b6cd](https://github.com/googleapis/nodejs-dlp/commit/918b6cd8ba8669e7c029ae7b4d3d01858121b9f6))
31
+
32
+ ## [3.4.0](https://github.com/googleapis/nodejs-dlp/compare/v3.3.0...v3.4.0) (2022-03-25)
33
+
34
+
35
+ ### Features
36
+
37
+ * new Bytes and File types: POWERPOINT and EXCEL ([#693](https://github.com/googleapis/nodejs-dlp/issues/693)) ([ed3dc42](https://github.com/googleapis/nodejs-dlp/commit/ed3dc42bce256100a62528481c7ec10362f7fa93))
38
+
7
39
  ## [3.3.0](https://www.github.com/googleapis/nodejs-dlp/compare/v3.2.1...v3.3.0) (2021-12-03)
8
40
 
9
41
 
package/README.md CHANGED
@@ -4,9 +4,8 @@
4
4
 
5
5
  # [Cloud Data Loss Prevention: Node.js Client](https://github.com/googleapis/nodejs-dlp)
6
6
 
7
- [![release level](https://img.shields.io/badge/release%20level-general%20availability%20%28GA%29-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages)
7
+ [![release level](https://img.shields.io/badge/release%20level-stable-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages)
8
8
  [![npm version](https://img.shields.io/npm/v/@google-cloud/dlp.svg)](https://www.npmjs.org/package/@google-cloud/dlp)
9
- [![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-dlp/main.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-dlp)
10
9
 
11
10
 
12
11
 
@@ -166,37 +165,38 @@ also contains samples.
166
165
  Our client libraries follow the [Node.js release schedule](https://nodejs.org/en/about/releases/).
167
166
  Libraries are compatible with all current _active_ and _maintenance_ versions of
168
167
  Node.js.
168
+ If you are using an end-of-life version of Node.js, we recommend that you update
169
+ as soon as possible to an actively supported LTS version.
169
170
 
170
- Client libraries targeting some end-of-life versions of Node.js are available, and
171
- can be installed via npm [dist-tags](https://docs.npmjs.com/cli/dist-tag).
172
- The dist-tags follow the naming convention `legacy-(version)`.
173
-
174
- _Legacy Node.js versions are supported as a best effort:_
175
-
176
- * Legacy versions will not be tested in continuous integration.
177
- * Some security patches may not be able to be backported.
178
- * Dependencies will not be kept up-to-date, and features will not be backported.
171
+ Google's client libraries support legacy versions of Node.js runtimes on a
172
+ best-efforts basis with the following warnings:
179
173
 
180
- #### Legacy tags available
174
+ * Legacy versions are not tested in continuous integration.
175
+ * Some security patches and features cannot be backported.
176
+ * Dependencies cannot be kept up-to-date.
181
177
 
182
- * `legacy-8`: install client libraries from this dist-tag for versions
183
- compatible with Node.js 8.
178
+ Client libraries targeting some end-of-life versions of Node.js are available, and
179
+ can be installed through npm [dist-tags](https://docs.npmjs.com/cli/dist-tag).
180
+ The dist-tags follow the naming convention `legacy-(version)`.
181
+ For example, `npm install @google-cloud/dlp@legacy-8` installs client libraries
182
+ for versions compatible with Node.js 8.
184
183
 
185
184
  ## Versioning
186
185
 
187
186
  This library follows [Semantic Versioning](http://semver.org/).
188
187
 
189
188
 
190
- This library is considered to be **General Availability (GA)**. This means it
191
- is stable; the code surface will not change in backwards-incompatible ways
189
+
190
+ This library is considered to be **stable**. The code surface will not change in backwards-incompatible ways
192
191
  unless absolutely necessary (e.g. because of critical security issues) or with
193
- an extensive deprecation period. Issues and requests against **GA** libraries
192
+ an extensive deprecation period. Issues and requests against **stable** libraries
194
193
  are addressed with the highest priority.
195
194
 
196
195
 
197
196
 
198
197
 
199
198
 
199
+
200
200
  More Information: [Google Cloud Platform Launch Stages][launch_stages]
201
201
 
202
202
  [launch_stages]: https://cloud.google.com/terms/launch-stages
@@ -1,4 +1,4 @@
1
- // Copyright 2021 Google LLC
1
+ // Copyright 2022 Google LLC
2
2
  //
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@ syntax = "proto3";
16
16
 
17
17
  package google.privacy.dlp.v2;
18
18
 
19
+ import "google/api/annotations.proto";
19
20
  import "google/api/client.proto";
20
21
  import "google/api/field_behavior.proto";
21
22
  import "google/api/resource.proto";
@@ -28,7 +29,6 @@ import "google/rpc/status.proto";
28
29
  import "google/type/date.proto";
29
30
  import "google/type/dayofweek.proto";
30
31
  import "google/type/timeofday.proto";
31
- import "google/api/annotations.proto";
32
32
 
33
33
  option csharp_namespace = "Google.Cloud.Dlp.V2";
34
34
  option go_package = "google.golang.org/genproto/googleapis/privacy/dlp/v2;dlp";
@@ -719,8 +719,8 @@ message InspectionRuleSet {
719
719
  // When used with redactContent only info_types and min_likelihood are currently
720
720
  // used.
721
721
  message InspectConfig {
722
- // Configuration to control the number of findings returned. Cannot be set if
723
- // de-identification is requested.
722
+ // Configuration to control the number of findings returned for inspection.
723
+ // This is not used for de-identification or data profiling.
724
724
  message FindingLimits {
725
725
  // Max findings configuration per infoType, per content item or long
726
726
  // running DlpJob.
@@ -769,21 +769,23 @@ message InspectConfig {
769
769
  Likelihood min_likelihood = 2;
770
770
 
771
771
  // Configuration to control the number of findings returned.
772
+ // This is not used for data profiling.
772
773
  FindingLimits limits = 3;
773
774
 
774
775
  // When true, a contextual quote from the data that triggered a finding is
775
776
  // included in the response; see Finding.quote.
777
+ // This is not used for data profiling.
776
778
  bool include_quote = 4;
777
779
 
778
780
  // When true, excludes type information of the findings.
781
+ // This is not used for data profiling.
779
782
  bool exclude_info_types = 5;
780
783
 
781
784
  // CustomInfoTypes provided by the user. See
782
785
  // https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
783
786
  repeated CustomInfoType custom_info_types = 6;
784
787
 
785
- // List of options defining data content to scan.
786
- // If empty, text, images, and other content will be included.
788
+ // Deprecated and unused.
787
789
  repeated ContentOption content_options = 8;
788
790
 
789
791
  // Set of rules to apply to the findings for this InspectConfig.
@@ -825,6 +827,12 @@ message ByteContentItem {
825
827
  // pdf
826
828
  PDF = 8;
827
829
 
830
+ // pptx, pptm, potx, potm, pot
831
+ POWERPOINT_DOCUMENT = 9;
832
+
833
+ // xlsx, xlsm, xltx, xltm
834
+ EXCEL_DOCUMENT = 10;
835
+
828
836
  // avro
829
837
  AVRO = 11;
830
838
 
@@ -2857,6 +2865,18 @@ message TransformationOverview {
2857
2865
  // Only one of 'transformation', 'field_transformation', or 'record_suppress'
2858
2866
  // will be set.
2859
2867
  message TransformationSummary {
2868
+ // Possible outcomes of transformations.
2869
+ enum TransformationResultCode {
2870
+ // Unused
2871
+ TRANSFORMATION_RESULT_CODE_UNSPECIFIED = 0;
2872
+
2873
+ // Transformation completed without an error.
2874
+ SUCCESS = 1;
2875
+
2876
+ // Transformation had an error.
2877
+ ERROR = 2;
2878
+ }
2879
+
2860
2880
  // A collection that informs the user the number of times a particular
2861
2881
  // `TransformationResultCode` and error details occurred.
2862
2882
  message SummaryResult {
@@ -2871,18 +2891,6 @@ message TransformationSummary {
2871
2891
  string details = 3;
2872
2892
  }
2873
2893
 
2874
- // Possible outcomes of transformations.
2875
- enum TransformationResultCode {
2876
- // Unused
2877
- TRANSFORMATION_RESULT_CODE_UNSPECIFIED = 0;
2878
-
2879
- // Transformation completed without an error.
2880
- SUCCESS = 1;
2881
-
2882
- // Transformation had an error.
2883
- ERROR = 2;
2884
- }
2885
-
2886
2894
  // Set if the transformation was limited to a specific InfoType.
2887
2895
  InfoType info_type = 1;
2888
2896
 
@@ -3578,6 +3586,134 @@ message InspectJobConfig {
3578
3586
  repeated Action actions = 4;
3579
3587
  }
3580
3588
 
3589
+ // A task to execute when a data profile has been generated.
3590
+ message DataProfileAction {
3591
+ // If set, the detailed data profiles will be persisted to the location
3592
+ // of your choice whenever updated.
3593
+ message Export {
3594
+ // Store all table and column profiles in an existing table or a new table
3595
+ // in an existing dataset. Each re-generation will result in a new row in
3596
+ // BigQuery.
3597
+ BigQueryTable profile_table = 1;
3598
+ }
3599
+
3600
+ // Send a Pub/Sub message into the given Pub/Sub topic to connect other
3601
+ // systems to data profile generation. The message payload data will
3602
+ // be the byte serialization of `DataProfilePubSubMessage`.
3603
+ message PubSubNotification {
3604
+ // The levels of detail that can be included in the Pub/Sub message.
3605
+ enum DetailLevel {
3606
+ // Unused.
3607
+ DETAIL_LEVEL_UNSPECIFIED = 0;
3608
+
3609
+ // The full table data profile.
3610
+ TABLE_PROFILE = 1;
3611
+
3612
+ // The resource name of the table.
3613
+ RESOURCE_NAME = 2;
3614
+ }
3615
+
3616
+ // Cloud Pub/Sub topic to send notifications to.
3617
+ // Format is projects/{project}/topics/{topic}.
3618
+ string topic = 1;
3619
+
3620
+ // The type of event that triggers a Pub/Sub. At most one
3621
+ // `PubSubNotification` per EventType is permitted.
3622
+ EventType event = 2;
3623
+
3624
+ // Conditions (e.g., data risk or sensitivity level) for triggering a
3625
+ // Pub/Sub.
3626
+ DataProfilePubSubCondition pubsub_condition = 3;
3627
+
3628
+ // How much data to include in the Pub/Sub message. If the user wishes to
3629
+ // limit the size of the message, they can use resource_name and fetch the
3630
+ // profile fields they wish to. Per table profile (not per column).
3631
+ DetailLevel detail_of_message = 4;
3632
+ }
3633
+
3634
+ // Types of event that can trigger an action.
3635
+ enum EventType {
3636
+ // Unused.
3637
+ EVENT_TYPE_UNSPECIFIED = 0;
3638
+
3639
+ // New profile (not a re-profile).
3640
+ NEW_PROFILE = 1;
3641
+
3642
+ // Changed one of the following profile metrics:
3643
+ // * Table data risk score
3644
+ // * Table sensitivity score
3645
+ // * Table resource visibility
3646
+ // * Table encryption type
3647
+ // * Table predicted infoTypes
3648
+ // * Table other infoTypes
3649
+ CHANGED_PROFILE = 2;
3650
+
3651
+ // Table data risk score or sensitivity score increased.
3652
+ SCORE_INCREASED = 3;
3653
+
3654
+ // A user (non-internal) error occurred.
3655
+ ERROR_CHANGED = 4;
3656
+ }
3657
+
3658
+ oneof action {
3659
+ // Export data profiles into a provided location.
3660
+ Export export_data = 1;
3661
+
3662
+ // Publish a message into the Pub/Sub topic.
3663
+ PubSubNotification pub_sub_notification = 2;
3664
+ }
3665
+ }
3666
+
3667
+ // Configuration for setting up a job to scan resources for profile generation.
3668
+ // Only one data profile configuration may exist per organization, folder,
3669
+ // or project.
3670
+ //
3671
+ // The generated data profiles are retained according to the
3672
+ // [data retention policy]
3673
+ // (https://cloud.google.com/dlp/docs/data-profiles#retention).
3674
+ message DataProfileJobConfig {
3675
+ // The data to scan.
3676
+ DataProfileLocation location = 1;
3677
+
3678
+ // The project that will run the scan. The DLP service
3679
+ // account that exists within this project must have access to all resources
3680
+ // that are profiled, and the Cloud DLP API must be enabled.
3681
+ string project_id = 5;
3682
+
3683
+ // Detection logic for profile generation.
3684
+ //
3685
+ // Not all template features are used by profiles. FindingLimits,
3686
+ // include_quote and exclude_info_types have no impact on
3687
+ // data profiling.
3688
+ //
3689
+ // Multiple templates may be provided if there is data in multiple regions.
3690
+ // At most one template must be specified per-region (including "global").
3691
+ // Each region is scanned using the applicable template. If no region-specific
3692
+ // template is specified, but a "global" template is specified, it will be
3693
+ // copied to that region and used instead. If no global or region-specific
3694
+ // template is provided for a region with data, that region's data will not be
3695
+ // scanned.
3696
+ //
3697
+ // For more information, see
3698
+ // https://cloud.google.com/dlp/docs/data-profiles#data_residency.
3699
+ repeated string inspect_templates = 7;
3700
+
3701
+ // Actions to execute at the completion of the job.
3702
+ repeated DataProfileAction data_profile_actions = 6;
3703
+ }
3704
+
3705
+ // The data that will be profiled.
3706
+ message DataProfileLocation {
3707
+ // The location to be scanned.
3708
+ oneof location {
3709
+ // The ID of an organization to scan.
3710
+ int64 organization_id = 1;
3711
+
3712
+ // The ID of the Folder within an organization to scan.
3713
+ int64 folder_id = 2;
3714
+ }
3715
+ }
3716
+
3581
3717
  // Combines all of the information about a DLP job.
3582
3718
  message DlpJob {
3583
3719
  option (google.api.resource) = {
@@ -4352,7 +4488,7 @@ enum MatchingType {
4352
4488
  MATCHING_TYPE_INVERSE_MATCH = 3;
4353
4489
  }
4354
4490
 
4355
- // Options describing which parts of the provided content should be scanned.
4491
+ // Deprecated and unused.
4356
4492
  enum ContentOption {
4357
4493
  // Includes entire content of a file or a data stream.
4358
4494
  CONTENT_UNSPECIFIED = 0;
@@ -4417,3 +4553,274 @@ enum StoredInfoTypeState {
4417
4553
  // use the `UpdateStoredInfoType` method to create a new version.
4418
4554
  INVALID = 4;
4419
4555
  }
4556
+
4557
+ // Score is a summary of all elements in the data profile.
4558
+ // A higher number means more sensitive.
4559
+ message SensitivityScore {
4560
+ // Various score levels for resources.
4561
+ enum SensitivityScoreLevel {
4562
+ // Unused.
4563
+ SENSITIVITY_SCORE_UNSPECIFIED = 0;
4564
+
4565
+ // No sensitive information detected. Limited access.
4566
+ SENSITIVITY_LOW = 10;
4567
+
4568
+ // Medium risk - PII, potentially sensitive data, or fields with free-text
4569
+ // data that are at higher risk of having intermittent sensitive data.
4570
+ // Consider limiting access.
4571
+ SENSITIVITY_MODERATE = 20;
4572
+
4573
+ // High risk – SPII may be present. Exfiltration of data may lead to user
4574
+ // data loss. Re-identification of users may be possible. Consider limiting
4575
+ // usage and or removing SPII.
4576
+ SENSITIVITY_HIGH = 30;
4577
+ }
4578
+
4579
+ // The score applied to the resource.
4580
+ SensitivityScoreLevel score = 1;
4581
+ }
4582
+
4583
+ // Score is a summary of all elements in the data profile.
4584
+ // A higher number means more risky.
4585
+ message DataRiskLevel {
4586
+ // Various score levels for resources.
4587
+ enum DataRiskLevelScore {
4588
+ // Unused.
4589
+ RISK_SCORE_UNSPECIFIED = 0;
4590
+
4591
+ // Low risk - Lower indication of sensitive data that appears to have
4592
+ // additional access restrictions in place or no indication of sensitive
4593
+ // data found.
4594
+ RISK_LOW = 10;
4595
+
4596
+ // Medium risk - Sensitive data may be present but additional access or fine
4597
+ // grain access restrictions appears to be present. Consider limiting
4598
+ // access even further or transforming data to mask.
4599
+ RISK_MODERATE = 20;
4600
+
4601
+ // High risk – SPII may be present. Access controls may include public
4602
+ // ACLs. Exfiltration of data may lead to user data loss. Re-identification
4603
+ // of users may be possible. Consider limiting usage and or removing SPII.
4604
+ RISK_HIGH = 30;
4605
+ }
4606
+
4607
+ // The score applied to the resource.
4608
+ DataRiskLevelScore score = 1;
4609
+ }
4610
+
4611
+ // How broadly a resource has been shared. New items may be added over time.
4612
+ // A higher number means more restricted.
4613
+ enum ResourceVisibility {
4614
+ // Unused.
4615
+ RESOURCE_VISIBILITY_UNSPECIFIED = 0;
4616
+
4617
+ // Visible to any user.
4618
+ RESOURCE_VISIBILITY_PUBLIC = 10;
4619
+
4620
+ // Visible only to specific users.
4621
+ RESOURCE_VISIBILITY_RESTRICTED = 20;
4622
+ }
4623
+
4624
+ // Snapshot of the configurations used to generate the profile.
4625
+ message DataProfileConfigSnapshot {
4626
+ // A copy of the inspection config used to generate this profile. This
4627
+ // is a copy of the inspect_template specified in `DataProfileJobConfig`.
4628
+ InspectConfig inspect_config = 2;
4629
+
4630
+ // A copy of the configuration used to generate this profile.
4631
+ DataProfileJobConfig data_profile_job = 3;
4632
+ }
4633
+
4634
+ // The profile for a scanned table.
4635
+ message TableDataProfile {
4636
+ // Possible states of a profile. New items may be added.
4637
+ enum State {
4638
+ // Unused.
4639
+ STATE_UNSPECIFIED = 0;
4640
+
4641
+ // The profile is currently running. Once a profile has finished it will
4642
+ // transition to DONE.
4643
+ RUNNING = 1;
4644
+
4645
+ // The profile is no longer generating.
4646
+ // If profile_status.status.code is 0, the profile succeeded, otherwise, it
4647
+ // failed.
4648
+ DONE = 2;
4649
+ }
4650
+
4651
+ // The name of the profile.
4652
+ string name = 1;
4653
+
4654
+ // The resource name to the project data profile for this table.
4655
+ string project_data_profile = 2;
4656
+
4657
+ // The GCP project ID that owns the BigQuery dataset.
4658
+ string dataset_project_id = 24;
4659
+
4660
+ // The BigQuery location where the dataset's data is stored.
4661
+ // See https://cloud.google.com/bigquery/docs/locations for supported
4662
+ // locations.
4663
+ string dataset_location = 29;
4664
+
4665
+ // The BigQuery dataset ID.
4666
+ string dataset_id = 25;
4667
+
4668
+ // The BigQuery table ID.
4669
+ string table_id = 26;
4670
+
4671
+ // The resource name of the table.
4672
+ // https://cloud.google.com/apis/design/resource_names#full_resource_name
4673
+ string full_resource = 3;
4674
+
4675
+ // Success or error status from the most recent profile generation attempt.
4676
+ // May be empty if the profile is still being generated.
4677
+ ProfileStatus profile_status = 21;
4678
+
4679
+ // State of a profile.
4680
+ State state = 22;
4681
+
4682
+ // The sensitivity score of this table.
4683
+ SensitivityScore sensitivity_score = 5;
4684
+
4685
+ // The data risk level of this table.
4686
+ DataRiskLevel data_risk_level = 6;
4687
+
4688
+ // The infoTypes predicted from this table's data.
4689
+ repeated InfoTypeSummary predicted_info_types = 27;
4690
+
4691
+ // Other infoTypes found in this table's data.
4692
+ repeated OtherInfoTypeSummary other_info_types = 28;
4693
+
4694
+ // The snapshot of the configurations used to generate the profile.
4695
+ DataProfileConfigSnapshot config_snapshot = 7;
4696
+
4697
+ // The time when this table was last modified
4698
+ google.protobuf.Timestamp last_modified_time = 8;
4699
+
4700
+ // Optional. The time when this table expires.
4701
+ google.protobuf.Timestamp expiration_time = 9;
4702
+
4703
+ // The number of columns profiled in the table.
4704
+ int64 scanned_column_count = 10;
4705
+
4706
+ // The number of columns skipped in the table because of an error.
4707
+ int64 failed_column_count = 11;
4708
+
4709
+ // The size of the table when the profile was generated.
4710
+ int64 table_size_bytes = 12;
4711
+
4712
+ // Number of rows in the table when the profile was generated.
4713
+ int64 row_count = 13;
4714
+
4715
+ // How the table is encrypted.
4716
+ EncryptionStatus encryption_status = 14;
4717
+
4718
+ // How broadly a resource has been shared.
4719
+ ResourceVisibility resource_visibility = 15;
4720
+
4721
+ // The last time the profile was generated.
4722
+ google.protobuf.Timestamp profile_last_generated = 16;
4723
+
4724
+ // The labels applied to the resource at the time the profile was generated.
4725
+ map<string, string> resource_labels = 17;
4726
+
4727
+ // The time at which the table was created.
4728
+ google.protobuf.Timestamp create_time = 23;
4729
+ }
4730
+
4731
+ message ProfileStatus {
4732
+ // Profiling status code and optional message
4733
+ google.rpc.Status status = 1;
4734
+
4735
+ // Time when the profile generation status was updated
4736
+ google.protobuf.Timestamp timestamp = 3;
4737
+ }
4738
+
4739
+ // How a resource is encrypted.
4740
+ enum EncryptionStatus {
4741
+ // Unused.
4742
+ ENCRYPTION_STATUS_UNSPECIFIED = 0;
4743
+
4744
+ // Google manages server-side encryption keys on your behalf.
4745
+ ENCRYPTION_GOOGLE_MANAGED = 1;
4746
+
4747
+ // Customer provides the key.
4748
+ ENCRYPTION_CUSTOMER_MANAGED = 2;
4749
+ }
4750
+
4751
+ // The infoType details for this column.
4752
+ message InfoTypeSummary {
4753
+ // The infoType.
4754
+ InfoType info_type = 1;
4755
+ }
4756
+
4757
+ // Infotype details for other infoTypes found within a column.
4758
+ message OtherInfoTypeSummary {
4759
+ // The other infoType.
4760
+ InfoType info_type = 1;
4761
+ }
4762
+
4763
+ // A condition for determining whether a PubSub should be triggered.
4764
+ message DataProfilePubSubCondition {
4765
+ // Various score levels for resources.
4766
+ enum ProfileScoreBucket {
4767
+ // Unused.
4768
+ PROFILE_SCORE_BUCKET_UNSPECIFIED = 0;
4769
+
4770
+ // High risk/sensitivity detected.
4771
+ HIGH = 1;
4772
+
4773
+ // Medium or high risk/sensitivity detected.
4774
+ MEDIUM_OR_HIGH = 2;
4775
+ }
4776
+
4777
+ // A condition consisting of a value.
4778
+ message PubSubCondition {
4779
+ // The value for the condition to trigger.
4780
+ oneof value {
4781
+ // The minimum data risk score that triggers the condition.
4782
+ ProfileScoreBucket minimum_risk_score = 1;
4783
+
4784
+ // The minimum sensitivity level that triggers the condition.
4785
+ ProfileScoreBucket minimum_sensitivity_score = 2;
4786
+ }
4787
+ }
4788
+
4789
+ // An expression, consisting of an operator and conditions.
4790
+ message PubSubExpressions {
4791
+ // Logical operators for conditional checks.
4792
+ enum PubSubLogicalOperator {
4793
+ // Unused.
4794
+ LOGICAL_OPERATOR_UNSPECIFIED = 0;
4795
+
4796
+ // Conditional OR.
4797
+ OR = 1;
4798
+
4799
+ // Conditional AND.
4800
+ AND = 2;
4801
+ }
4802
+
4803
+ // The operator to apply to the collection of conditions.
4804
+ PubSubLogicalOperator logical_operator = 1;
4805
+
4806
+ // Conditions to apply to the expression.
4807
+ repeated PubSubCondition conditions = 2;
4808
+ }
4809
+
4810
+ // An expression.
4811
+ PubSubExpressions expressions = 1;
4812
+ }
4813
+
4814
+ // The message that will be published to a Pub/Sub topic.
4815
+ // To receive a message of protocol buffer schema type, convert the message data
4816
+ // to an object of this proto class.
4817
+ // https://cloud.google.com/pubsub/docs/samples/pubsub-subscribe-proto-messages
4818
+ message DataProfilePubSubMessage {
4819
+ // If `DetailLevel` is `TABLE_PROFILE` this will be fully populated.
4820
+ // Otherwise, if `DetailLevel` is `RESOURCE_NAME`, then only `name` and
4821
+ // `full_resource` will be populated.
4822
+ TableDataProfile profile = 1;
4823
+
4824
+ // The event that caused the Pub/Sub message to be sent.
4825
+ DataProfileAction.EventType event = 2;
4826
+ }