@google-cloud/dlp 5.7.0 → 5.8.0

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.
@@ -798,6 +798,43 @@ service DlpService {
798
798
  option (google.api.method_signature) = "name";
799
799
  }
800
800
 
801
+ // Lists file store data profiles for an organization.
802
+ rpc ListFileStoreDataProfiles(ListFileStoreDataProfilesRequest)
803
+ returns (ListFileStoreDataProfilesResponse) {
804
+ option (google.api.http) = {
805
+ get: "/v2/{parent=organizations/*/locations/*}/fileStoreDataProfiles"
806
+ additional_bindings {
807
+ get: "/v2/{parent=projects/*/locations/*}/fileStoreDataProfiles"
808
+ }
809
+ };
810
+ option (google.api.method_signature) = "parent";
811
+ }
812
+
813
+ // Gets a file store data profile.
814
+ rpc GetFileStoreDataProfile(GetFileStoreDataProfileRequest)
815
+ returns (FileStoreDataProfile) {
816
+ option (google.api.http) = {
817
+ get: "/v2/{name=organizations/*/locations/*/fileStoreDataProfiles/*}"
818
+ additional_bindings {
819
+ get: "/v2/{name=projects/*/locations/*/fileStoreDataProfiles/*}"
820
+ }
821
+ };
822
+ option (google.api.method_signature) = "name";
823
+ }
824
+
825
+ // Delete a FileStoreDataProfile. Will not prevent the profile from being
826
+ // regenerated if the resource is still included in a discovery configuration.
827
+ rpc DeleteFileStoreDataProfile(DeleteFileStoreDataProfileRequest)
828
+ returns (google.protobuf.Empty) {
829
+ option (google.api.http) = {
830
+ delete: "/v2/{name=organizations/*/locations/*/fileStoreDataProfiles/*}"
831
+ additional_bindings {
832
+ delete: "/v2/{name=projects/*/locations/*/fileStoreDataProfiles/*}"
833
+ }
834
+ };
835
+ option (google.api.method_signature) = "name";
836
+ }
837
+
801
838
  // Gets a table data profile.
802
839
  rpc GetTableDataProfile(GetTableDataProfileRequest)
803
840
  returns (TableDataProfile) {
@@ -1174,6 +1211,15 @@ message ByteContentItem {
1174
1211
 
1175
1212
  // tsv
1176
1213
  TSV = 13;
1214
+
1215
+ // Audio file types. Only used for profiling.
1216
+ AUDIO = 15;
1217
+
1218
+ // Video file types. Only used for profiling.
1219
+ VIDEO = 16;
1220
+
1221
+ // Executable file types. Only used for profiling.
1222
+ EXECUTABLE = 17;
1177
1223
  }
1178
1224
 
1179
1225
  // The type of data stored in the bytes string. Default will be TEXT_UTF8.
@@ -1288,6 +1334,7 @@ message Finding {
1288
1334
  // No more than 10 labels can be associated with a given finding.
1289
1335
  //
1290
1336
  // Examples:
1337
+ //
1291
1338
  // * `"environment" : "production"`
1292
1339
  // * `"pipeline" : "etl"`
1293
1340
  map<string, string> labels = 10;
@@ -1519,9 +1566,9 @@ message RedactImageRequest {
1519
1566
  // processing
1520
1567
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
1521
1568
  //
1522
- // + Projects scope, location specified:<br/>
1569
+ // + Projects scope, location specified:
1523
1570
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
1524
- // + Projects scope, no location specified (defaults to global):<br/>
1571
+ // + Projects scope, no location specified (defaults to global):
1525
1572
  // `projects/`<var>PROJECT_ID</var>
1526
1573
  //
1527
1574
  // The following example `parent` string specifies a parent project with the
@@ -1584,9 +1631,9 @@ message DeidentifyContentRequest {
1584
1631
  // processing
1585
1632
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
1586
1633
  //
1587
- // + Projects scope, location specified:<br/>
1634
+ // + Projects scope, location specified:
1588
1635
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
1589
- // + Projects scope, no location specified (defaults to global):<br/>
1636
+ // + Projects scope, no location specified (defaults to global):
1590
1637
  // `projects/`<var>PROJECT_ID</var>
1591
1638
  //
1592
1639
  // The following example `parent` string specifies a parent project with the
@@ -1653,9 +1700,9 @@ message ReidentifyContentRequest {
1653
1700
  // processing
1654
1701
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
1655
1702
  //
1656
- // + Projects scope, location specified:<br/>
1703
+ // + Projects scope, location specified:
1657
1704
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
1658
- // + Projects scope, no location specified (defaults to global):<br/>
1705
+ // + Projects scope, no location specified (defaults to global):
1659
1706
  // `projects/`<var>PROJECT_ID</var>
1660
1707
  //
1661
1708
  // The following example `parent` string specifies a parent project with the
@@ -1725,9 +1772,9 @@ message InspectContentRequest {
1725
1772
  // processing
1726
1773
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
1727
1774
  //
1728
- // + Projects scope, location specified:<br/>
1775
+ // + Projects scope, location specified:
1729
1776
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
1730
- // + Projects scope, no location specified (defaults to global):<br/>
1777
+ // + Projects scope, no location specified (defaults to global):
1731
1778
  // `projects/`<var>PROJECT_ID</var>
1732
1779
  //
1733
1780
  // The following example `parent` string specifies a parent project with the
@@ -1878,6 +1925,9 @@ message DataProfileBigQueryRowSchema {
1878
1925
 
1879
1926
  // Column data profile column
1880
1927
  ColumnDataProfile column_profile = 2;
1928
+
1929
+ // File store data profile column.
1930
+ FileStoreDataProfile file_store_profile = 3;
1881
1931
  }
1882
1932
  }
1883
1933
 
@@ -1986,12 +2036,18 @@ message InfoTypeCategory {
1986
2036
  // The infoType is typically used in Argentina.
1987
2037
  ARGENTINA = 2;
1988
2038
 
2039
+ // The infoType is typically used in Armenia.
2040
+ ARMENIA = 51;
2041
+
1989
2042
  // The infoType is typically used in Australia.
1990
2043
  AUSTRALIA = 3;
1991
2044
 
1992
2045
  // The infoType is typically used in Azerbaijan.
1993
2046
  AZERBAIJAN = 48;
1994
2047
 
2048
+ // The infoType is typically used in Belarus.
2049
+ BELARUS = 50;
2050
+
1995
2051
  // The infoType is typically used in Belgium.
1996
2052
  BELGIUM = 4;
1997
2053
 
@@ -3200,9 +3256,10 @@ message FixedSizeBucketingConfig {
3200
3256
 
3201
3257
  // Generalization function that buckets values based on ranges. The ranges and
3202
3258
  // replacement values are dynamically provided by the user for custom behavior,
3203
- // such as 1-30 -> LOW 31-65 -> MEDIUM 66-100 -> HIGH
3204
- // This can be used on
3205
- // data of type: number, long, string, timestamp.
3259
+ // such as 1-30 -> LOW, 31-65 -> MEDIUM, 66-100 -> HIGH.
3260
+ //
3261
+ // This can be used on data of type: number, long, string, timestamp.
3262
+ //
3206
3263
  // If the bound `Value` type differs from the type of data being transformed, we
3207
3264
  // will first attempt converting the type of the data to be transformed to match
3208
3265
  // the type of the bound before comparing.
@@ -3933,12 +3990,27 @@ message DeidentifyTemplate {
3933
3990
  // Details information about an error encountered during job execution or
3934
3991
  // the results of an unsuccessful activation of the JobTrigger.
3935
3992
  message Error {
3993
+ // Additional information about the error.
3994
+ enum ErrorExtraInfo {
3995
+ // Unused.
3996
+ ERROR_INFO_UNSPECIFIED = 0;
3997
+
3998
+ // Image scan is not available in the region.
3999
+ IMAGE_SCAN_UNAVAILABLE_IN_REGION = 1;
4000
+
4001
+ // File store cluster is not supported for profile generation.
4002
+ FILE_STORE_CLUSTER_UNSUPPORTED = 2;
4003
+ }
4004
+
3936
4005
  // Detailed error codes and messages.
3937
4006
  google.rpc.Status details = 1;
3938
4007
 
3939
4008
  // The times the error occurred. List includes the oldest timestamp and the
3940
4009
  // last 9 timestamps.
3941
4010
  repeated google.protobuf.Timestamp timestamps = 2;
4011
+
4012
+ // Additional information about the error.
4013
+ ErrorExtraInfo extra_info = 4;
3942
4014
  }
3943
4015
 
3944
4016
  // Contains a configuration to make API calls on a repeating basis.
@@ -4114,7 +4186,7 @@ message Action {
4114
4186
  // Where to store the output.
4115
4187
  oneof output {
4116
4188
  // Required. User settable Cloud Storage bucket and folders to store
4117
- // de-identified files. This field must be set for cloud storage
4189
+ // de-identified files. This field must be set for Cloud Storage
4118
4190
  // deidentification. The output Cloud Storage bucket must be different
4119
4191
  // from the input bucket. De-identified files will overwrite files in the
4120
4192
  // output path.
@@ -4124,12 +4196,12 @@ message Action {
4124
4196
  }
4125
4197
 
4126
4198
  // List of user-specified file type groups to transform. If specified, only
4127
- // the files with these filetypes will be transformed. If empty, all
4199
+ // the files with these file types will be transformed. If empty, all
4128
4200
  // supported files will be transformed. Supported types may be automatically
4129
4201
  // added over time. If a file type is set in this field that isn't supported
4130
4202
  // by the Deidentify action then the job will fail and will not be
4131
- // successfully created/started. Currently the only filetypes supported are:
4132
- // IMAGES, TEXT_FILES, CSV, TSV.
4203
+ // successfully created/started. Currently the only file types supported
4204
+ // are: IMAGES, TEXT_FILES, CSV, TSV.
4133
4205
  repeated FileType file_types_to_transform = 8;
4134
4206
  }
4135
4207
 
@@ -4208,13 +4280,13 @@ message CreateInspectTemplateRequest {
4208
4280
  // (project or organization) and whether you have [specified a processing
4209
4281
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4210
4282
  //
4211
- // + Projects scope, location specified:<br/>
4283
+ // + Projects scope, location specified:
4212
4284
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4213
- // + Projects scope, no location specified (defaults to global):<br/>
4285
+ // + Projects scope, no location specified (defaults to global):
4214
4286
  // `projects/`<var>PROJECT_ID</var>
4215
- // + Organizations scope, location specified:<br/>
4287
+ // + Organizations scope, location specified:
4216
4288
  // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
4217
- // + Organizations scope, no location specified (defaults to global):<br/>
4289
+ // + Organizations scope, no location specified (defaults to global):
4218
4290
  // `organizations/`<var>ORG_ID</var>
4219
4291
  //
4220
4292
  // The following example `parent` string specifies a parent project with the
@@ -4282,13 +4354,13 @@ message ListInspectTemplatesRequest {
4282
4354
  // (project or organization) and whether you have [specified a processing
4283
4355
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4284
4356
  //
4285
- // + Projects scope, location specified:<br/>
4357
+ // + Projects scope, location specified:
4286
4358
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4287
- // + Projects scope, no location specified (defaults to global):<br/>
4359
+ // + Projects scope, no location specified (defaults to global):
4288
4360
  // `projects/`<var>PROJECT_ID</var>
4289
- // + Organizations scope, location specified:<br/>
4361
+ // + Organizations scope, location specified:
4290
4362
  // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
4291
- // + Organizations scope, no location specified (defaults to global):<br/>
4363
+ // + Organizations scope, no location specified (defaults to global):
4292
4364
  // `organizations/`<var>ORG_ID</var>
4293
4365
  //
4294
4366
  // The following example `parent` string specifies a parent project with the
@@ -4311,7 +4383,7 @@ message ListInspectTemplatesRequest {
4311
4383
  // returns a page of max size 100.
4312
4384
  int32 page_size = 3;
4313
4385
 
4314
- // Comma separated list of fields to order by,
4386
+ // Comma-separated list of fields to order by,
4315
4387
  // followed by `asc` or `desc` postfix. This list is case insensitive. The
4316
4388
  // default sorting order is ascending. Redundant space characters are
4317
4389
  // insignificant.
@@ -4361,9 +4433,9 @@ message CreateJobTriggerRequest {
4361
4433
  // processing
4362
4434
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4363
4435
  //
4364
- // + Projects scope, location specified:<br/>
4436
+ // + Projects scope, location specified:
4365
4437
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4366
- // + Projects scope, no location specified (defaults to global):<br/>
4438
+ // + Projects scope, no location specified (defaults to global):
4367
4439
  // `projects/`<var>PROJECT_ID</var>
4368
4440
  //
4369
4441
  // The following example `parent` string specifies a parent project with the
@@ -4431,8 +4503,13 @@ message GetJobTriggerRequest {
4431
4503
  message CreateDiscoveryConfigRequest {
4432
4504
  // Required. Parent resource name.
4433
4505
  //
4434
- // The format of this value is as follows:
4435
- // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4506
+ // The format of this value varies depending on the scope of the request
4507
+ // (project or organization):
4508
+ //
4509
+ // + Projects scope:
4510
+ // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4511
+ // + Organizations scope:
4512
+ // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
4436
4513
  //
4437
4514
  // The following example `parent` string specifies a parent project with the
4438
4515
  // identifier `example-project`, and specifies the `europe-west3` location
@@ -4513,7 +4590,7 @@ message ListDiscoveryConfigsRequest {
4513
4590
  // Size of the page. This value can be limited by a server.
4514
4591
  int32 page_size = 3;
4515
4592
 
4516
- // Comma separated list of config fields to order by,
4593
+ // Comma-separated list of config fields to order by,
4517
4594
  // followed by `asc` or `desc` postfix. This list is case insensitive. The
4518
4595
  // default sorting order is ascending. Redundant space characters are
4519
4596
  // insignificant.
@@ -4560,9 +4637,9 @@ message CreateDlpJobRequest {
4560
4637
  // processing
4561
4638
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4562
4639
  //
4563
- // + Projects scope, location specified:<br/>
4640
+ // + Projects scope, location specified:
4564
4641
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4565
- // + Projects scope, no location specified (defaults to global):<br/>
4642
+ // + Projects scope, no location specified (defaults to global):
4566
4643
  // `projects/`<var>PROJECT_ID</var>
4567
4644
  //
4568
4645
  // The following example `parent` string specifies a parent project with the
@@ -4605,9 +4682,9 @@ message ListJobTriggersRequest {
4605
4682
  // processing
4606
4683
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4607
4684
  //
4608
- // + Projects scope, location specified:<br/>
4685
+ // + Projects scope, location specified:
4609
4686
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4610
- // + Projects scope, no location specified (defaults to global):<br/>
4687
+ // + Projects scope, no location specified (defaults to global):
4611
4688
  // `projects/`<var>PROJECT_ID</var>
4612
4689
  //
4613
4690
  // The following example `parent` string specifies a parent project with the
@@ -4630,7 +4707,7 @@ message ListJobTriggersRequest {
4630
4707
  // Size of the page. This value can be limited by a server.
4631
4708
  int32 page_size = 3;
4632
4709
 
4633
- // Comma separated list of triggeredJob fields to order by,
4710
+ // Comma-separated list of triggeredJob fields to order by,
4634
4711
  // followed by `asc` or `desc` postfix. This list is case insensitive. The
4635
4712
  // default sorting order is ascending. Redundant space characters are
4636
4713
  // insignificant.
@@ -4748,6 +4825,9 @@ message DataProfileAction {
4748
4825
 
4749
4826
  // The name of the profiled resource.
4750
4827
  RESOURCE_NAME = 2;
4828
+
4829
+ // The full file store data profile.
4830
+ FILE_STORE_PROFILE = 3;
4751
4831
  }
4752
4832
 
4753
4833
  // Cloud Pub/Sub topic to send notifications to.
@@ -4925,7 +5005,7 @@ message DataProfileLocation {
4925
5005
  // The ID of an organization to scan.
4926
5006
  int64 organization_id = 1;
4927
5007
 
4928
- // The ID of the Folder within an organization to scan.
5008
+ // The ID of the folder within an organization to scan.
4929
5009
  int64 folder_id = 2;
4930
5010
  }
4931
5011
  }
@@ -5040,6 +5120,10 @@ message DiscoveryTarget {
5040
5120
  // resource metadata and reports them as vulnerabilities to Security Command
5041
5121
  // Center. Only one target of this type is allowed.
5042
5122
  SecretsDiscoveryTarget secrets_target = 3;
5123
+
5124
+ // Cloud Storage target for Discovery. The first target to match a table
5125
+ // will be the one applied.
5126
+ CloudStorageDiscoveryTarget cloud_storage_target = 4;
5043
5127
  }
5044
5128
  }
5045
5129
 
@@ -5157,6 +5241,11 @@ message DiscoveryGenerationCadence {
5157
5241
 
5158
5242
  // Governs when to update data profiles when a table is modified.
5159
5243
  DiscoveryTableModifiedCadence table_modified_cadence = 2;
5244
+
5245
+ // Governs when to update data profiles when the inspection rules
5246
+ // defined by the `InspectTemplate` change.
5247
+ // If not set, changing the template will not cause a data profile to update.
5248
+ DiscoveryInspectTemplateModifiedCadence inspect_template_modified_cadence = 3;
5160
5249
  }
5161
5250
 
5162
5251
  // The cadence at which to update data profiles when a table is modified.
@@ -5208,6 +5297,14 @@ enum BigQuerySchemaModification {
5208
5297
  SCHEMA_REMOVED_COLUMNS = 2;
5209
5298
  }
5210
5299
 
5300
+ // The cadence at which to update data profiles when the inspection rules
5301
+ // defined by the `InspectTemplate` change.
5302
+ message DiscoveryInspectTemplateModifiedCadence {
5303
+ // How frequently data profiles can be updated when the template is modified.
5304
+ // Defaults to never.
5305
+ DataProfileUpdateFrequency frequency = 1;
5306
+ }
5307
+
5211
5308
  // Target used to match against for discovery with Cloud SQL tables.
5212
5309
  message CloudSqlDiscoveryTarget {
5213
5310
  // Required. The tables the discovery cadence applies to. The first target
@@ -5410,6 +5507,225 @@ message DiscoveryCloudSqlGenerationCadence {
5410
5507
  // Security Command Center.
5411
5508
  message SecretsDiscoveryTarget {}
5412
5509
 
5510
+ // Target used to match against for discovery with Cloud Storage buckets.
5511
+ message CloudStorageDiscoveryTarget {
5512
+ // Required. The buckets the generation_cadence applies to. The first target
5513
+ // with a matching filter will be the one to apply to a bucket.
5514
+ DiscoveryCloudStorageFilter filter = 1
5515
+ [(google.api.field_behavior) = REQUIRED];
5516
+
5517
+ // Optional. In addition to matching the filter, these conditions must be true
5518
+ // before a profile is generated.
5519
+ DiscoveryFileStoreConditions conditions = 4
5520
+ [(google.api.field_behavior) = OPTIONAL];
5521
+
5522
+ // How often and when to update profiles.
5523
+ oneof cadence {
5524
+ // Optional. How often and when to update profiles. New buckets that match
5525
+ // both the filter and conditions are scanned as quickly as possible
5526
+ // depending on system capacity.
5527
+ DiscoveryCloudStorageGenerationCadence generation_cadence = 2
5528
+ [(google.api.field_behavior) = OPTIONAL];
5529
+
5530
+ // Optional. Disable profiling for buckets that match this filter.
5531
+ Disabled disabled = 3 [(google.api.field_behavior) = OPTIONAL];
5532
+ }
5533
+ }
5534
+
5535
+ // Determines which buckets will have profiles generated within an organization
5536
+ // or project. Includes the ability to filter by regular expression patterns
5537
+ // on project ID and bucket name.
5538
+ message DiscoveryCloudStorageFilter {
5539
+ // Whether the filter applies to a specific set of buckets or all
5540
+ // other buckets within the location being profiled. The first
5541
+ // filter to match will be applied, regardless of the condition. If none is
5542
+ // set, will default to `others`.
5543
+ oneof filter {
5544
+ // Optional. A specific set of buckets for this filter to apply to.
5545
+ FileStoreCollection collection = 1 [(google.api.field_behavior) = OPTIONAL];
5546
+
5547
+ // Optional. The bucket to scan. Targets including this can only include one
5548
+ // target (the target with this bucket). This enables profiling the contents
5549
+ // of a single bucket, while the other options allow for easy profiling of
5550
+ // many bucets within a project or an organization.
5551
+ CloudStorageResourceReference cloud_storage_resource_reference = 2
5552
+ [(google.api.field_behavior) = OPTIONAL];
5553
+
5554
+ // Optional. Catch-all. This should always be the last target in the list
5555
+ // because anything above it will apply first. Should only appear once in a
5556
+ // configuration. If none is specified, a default one will be added
5557
+ // automatically.
5558
+ AllOtherResources others = 100 [(google.api.field_behavior) = OPTIONAL];
5559
+ }
5560
+ }
5561
+
5562
+ // Match file stores (e.g. buckets) using regex filters.
5563
+ message FileStoreCollection {
5564
+ // The first filter containing a pattern that matches a file store will
5565
+ // be used.
5566
+ oneof pattern {
5567
+ // Optional. A collection of regular expressions to match a file store
5568
+ // against.
5569
+ FileStoreRegexes include_regexes = 1
5570
+ [(google.api.field_behavior) = OPTIONAL];
5571
+ }
5572
+ }
5573
+
5574
+ // A collection of regular expressions to determine what file store to match
5575
+ // against.
5576
+ message FileStoreRegexes {
5577
+ // Required. The group of regular expression patterns to match against one or
5578
+ // more file stores. Maximum of 100 entries. The sum of all regular
5579
+ // expression's length can't exceed 10 KiB.
5580
+ repeated FileStoreRegex patterns = 1 [(google.api.field_behavior) = REQUIRED];
5581
+ }
5582
+
5583
+ // A pattern to match against one or more file stores.
5584
+ message FileStoreRegex {
5585
+ // The type of resource regex to use.
5586
+ oneof resource_regex {
5587
+ // Optional. Regex for Cloud Storage.
5588
+ CloudStorageRegex cloud_storage_regex = 1
5589
+ [(google.api.field_behavior) = OPTIONAL];
5590
+ }
5591
+ }
5592
+
5593
+ // A pattern to match against one or more file stores. At least one
5594
+ // pattern must be specified. Regular expressions use RE2
5595
+ // [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
5596
+ // under the google/re2 repository on GitHub.
5597
+ message CloudStorageRegex {
5598
+ // Optional. For organizations, if unset, will match all projects.
5599
+ string project_id_regex = 1 [(google.api.field_behavior) = OPTIONAL];
5600
+
5601
+ // Optional. Regex to test the bucket name against. If empty, all buckets
5602
+ // match. Example: "marketing2021" or "(marketing)\d{4}" will both match the
5603
+ // bucket gs://marketing2021
5604
+ string bucket_name_regex = 2 [(google.api.field_behavior) = OPTIONAL];
5605
+ }
5606
+
5607
+ // Identifies a single Cloud Storage bucket.
5608
+ message CloudStorageResourceReference {
5609
+ // Required. The bucket to scan.
5610
+ string bucket_name = 1 [(google.api.field_behavior) = REQUIRED];
5611
+
5612
+ // Required. If within a project-level config, then this must match the
5613
+ // config's project id.
5614
+ string project_id = 2 [(google.api.field_behavior) = REQUIRED];
5615
+ }
5616
+
5617
+ // How often existing buckets should have their profiles refreshed.
5618
+ // New buckets are scanned as quickly as possible depending on system
5619
+ // capacity.
5620
+ message DiscoveryCloudStorageGenerationCadence {
5621
+ // Optional. Data changes in Cloud Storage can't trigger reprofiling. If you
5622
+ // set this field, profiles are refreshed at this frequency regardless of
5623
+ // whether the underlying buckets have changed. Defaults to never.
5624
+ DataProfileUpdateFrequency refresh_frequency = 1
5625
+ [(google.api.field_behavior) = OPTIONAL];
5626
+
5627
+ // Optional. Governs when to update data profiles when the inspection rules
5628
+ // defined by the `InspectTemplate` change.
5629
+ // If not set, changing the template will not cause a data profile to update.
5630
+ DiscoveryInspectTemplateModifiedCadence inspect_template_modified_cadence = 2
5631
+ [(google.api.field_behavior) = OPTIONAL];
5632
+ }
5633
+
5634
+ // Requirements that must be true before a Cloud Storage bucket or object is
5635
+ // scanned in discovery for the first time. There is an AND relationship between
5636
+ // the top-level attributes.
5637
+ message DiscoveryCloudStorageConditions {
5638
+ // The attribute of an object. See
5639
+ // https://cloud.google.com/storage/docs/storage-classes for more information
5640
+ // on storage classes.
5641
+ enum CloudStorageObjectAttribute {
5642
+ // Unused.
5643
+ CLOUD_STORAGE_OBJECT_ATTRIBUTE_UNSPECIFIED = 0;
5644
+
5645
+ // Scan objects regardless of the attribute.
5646
+ ALL_SUPPORTED_OBJECTS = 1;
5647
+
5648
+ // Scan objects with the standard storage class.
5649
+ STANDARD = 2;
5650
+
5651
+ // Scan objects with the nearline storage class. This will incur retrieval
5652
+ // fees.
5653
+ NEARLINE = 3;
5654
+
5655
+ // Scan objects with the coldline storage class. This will incur retrieval
5656
+ // fees.
5657
+ COLDLINE = 4;
5658
+
5659
+ // Scan objects with the archive storage class. This will incur retrieval
5660
+ // fees.
5661
+ ARCHIVE = 5;
5662
+
5663
+ // Scan objects with the regional storage class.
5664
+ REGIONAL = 6;
5665
+
5666
+ // Scan objects with the multi-regional storage class.
5667
+ MULTI_REGIONAL = 7;
5668
+
5669
+ // Scan objects with the dual-regional storage class. This will incur
5670
+ // retrieval fees.
5671
+ DURABLE_REDUCED_AVAILABILITY = 8;
5672
+ }
5673
+
5674
+ // The attribute of a bucket.
5675
+ enum CloudStorageBucketAttribute {
5676
+ // Unused.
5677
+ CLOUD_STORAGE_BUCKET_ATTRIBUTE_UNSPECIFIED = 0;
5678
+
5679
+ // Scan buckets regardless of the attribute.
5680
+ ALL_SUPPORTED_BUCKETS = 1;
5681
+
5682
+ // Buckets with autoclass disabled
5683
+ // (https://cloud.google.com/storage/docs/autoclass). Only one of
5684
+ // AUTOCLASS_DISABLED or AUTOCLASS_ENABLED should be set.
5685
+ AUTOCLASS_DISABLED = 2;
5686
+
5687
+ // Buckets with autoclass enabled
5688
+ // (https://cloud.google.com/storage/docs/autoclass). Only one of
5689
+ // AUTOCLASS_DISABLED or AUTOCLASS_ENABLED should be set. Scanning
5690
+ // Autoclass-enabled buckets can affect object storage classes.
5691
+ AUTOCLASS_ENABLED = 3;
5692
+ }
5693
+
5694
+ // Required. Only objects with the specified attributes will be scanned. If an
5695
+ // object has one of the specified attributes but is inside an excluded
5696
+ // bucket, it will not be scanned. Defaults to [ALL_SUPPORTED_OBJECTS]. A
5697
+ // profile will be created even if no objects match the
5698
+ // included_object_attributes.
5699
+ repeated CloudStorageObjectAttribute included_object_attributes = 1
5700
+ [(google.api.field_behavior) = REQUIRED];
5701
+
5702
+ // Required. Only objects with the specified attributes will be scanned.
5703
+ // Defaults to [ALL_SUPPORTED_BUCKETS] if unset.
5704
+ repeated CloudStorageBucketAttribute included_bucket_attributes = 2
5705
+ [(google.api.field_behavior) = REQUIRED];
5706
+ }
5707
+
5708
+ // Requirements that must be true before a file store is scanned in discovery
5709
+ // for the first time. There is an AND relationship between the top-level
5710
+ // attributes.
5711
+ message DiscoveryFileStoreConditions {
5712
+ // Optional. File store must have been created after this date. Used to avoid
5713
+ // backfilling.
5714
+ google.protobuf.Timestamp created_after = 1
5715
+ [(google.api.field_behavior) = OPTIONAL];
5716
+
5717
+ // Optional. Minimum age a file store must have. If set, the value must be 1
5718
+ // hour or greater.
5719
+ google.protobuf.Duration min_age = 2 [(google.api.field_behavior) = OPTIONAL];
5720
+
5721
+ // File store specific conditions.
5722
+ oneof conditions {
5723
+ // Optional. Cloud Storage conditions.
5724
+ DiscoveryCloudStorageConditions cloud_storage_conditions = 3
5725
+ [(google.api.field_behavior) = OPTIONAL];
5726
+ }
5727
+ }
5728
+
5413
5729
  // The location to begin a discovery scan. Denotes an organization ID or folder
5414
5730
  // ID within an organization.
5415
5731
  message DiscoveryStartingLocation {
@@ -5418,11 +5734,14 @@ message DiscoveryStartingLocation {
5418
5734
  // The ID of an organization to scan.
5419
5735
  int64 organization_id = 1;
5420
5736
 
5421
- // The ID of the Folder within an organization to scan.
5737
+ // The ID of the folder within an organization to scan.
5422
5738
  int64 folder_id = 2;
5423
5739
  }
5424
5740
  }
5425
5741
 
5742
+ // Match discovery resources not covered by any other filter.
5743
+ message AllOtherResources {}
5744
+
5426
5745
  // Combines all of the information about a DLP job.
5427
5746
  message DlpJob {
5428
5747
  option (google.api.resource) = {
@@ -5517,9 +5836,9 @@ message ListDlpJobsRequest {
5517
5836
  // processing
5518
5837
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5519
5838
  //
5520
- // + Projects scope, location specified:<br/>
5839
+ // + Projects scope, location specified:
5521
5840
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5522
- // + Projects scope, no location specified (defaults to global):<br/>
5841
+ // + Projects scope, no location specified (defaults to global):
5523
5842
  // `projects/`<var>PROJECT_ID</var>
5524
5843
  //
5525
5844
  // The following example `parent` string specifies a parent project with the
@@ -5573,7 +5892,7 @@ message ListDlpJobsRequest {
5573
5892
  // The type of job. Defaults to `DlpJobType.INSPECT`
5574
5893
  DlpJobType type = 5;
5575
5894
 
5576
- // Comma separated list of fields to order by,
5895
+ // Comma-separated list of fields to order by,
5577
5896
  // followed by `asc` or `desc` postfix. This list is case insensitive. The
5578
5897
  // default sorting order is ascending. Redundant space characters are
5579
5898
  // insignificant.
@@ -5636,13 +5955,13 @@ message CreateDeidentifyTemplateRequest {
5636
5955
  // (project or organization) and whether you have [specified a processing
5637
5956
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5638
5957
  //
5639
- // + Projects scope, location specified:<br/>
5958
+ // + Projects scope, location specified:
5640
5959
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5641
- // + Projects scope, no location specified (defaults to global):<br/>
5960
+ // + Projects scope, no location specified (defaults to global):
5642
5961
  // `projects/`<var>PROJECT_ID</var>
5643
- // + Organizations scope, location specified:<br/>
5962
+ // + Organizations scope, location specified:
5644
5963
  // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
5645
- // + Organizations scope, no location specified (defaults to global):<br/>
5964
+ // + Organizations scope, no location specified (defaults to global):
5646
5965
  // `organizations/`<var>ORG_ID</var>
5647
5966
  //
5648
5967
  // The following example `parent` string specifies a parent project with the
@@ -5712,13 +6031,13 @@ message ListDeidentifyTemplatesRequest {
5712
6031
  // (project or organization) and whether you have [specified a processing
5713
6032
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5714
6033
  //
5715
- // + Projects scope, location specified:<br/>
6034
+ // + Projects scope, location specified:
5716
6035
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5717
- // + Projects scope, no location specified (defaults to global):<br/>
6036
+ // + Projects scope, no location specified (defaults to global):
5718
6037
  // `projects/`<var>PROJECT_ID</var>
5719
- // + Organizations scope, location specified:<br/>
6038
+ // + Organizations scope, location specified:
5720
6039
  // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
5721
- // + Organizations scope, no location specified (defaults to global):<br/>
6040
+ // + Organizations scope, no location specified (defaults to global):
5722
6041
  // `organizations/`<var>ORG_ID</var>
5723
6042
  //
5724
6043
  // The following example `parent` string specifies a parent project with the
@@ -5741,7 +6060,7 @@ message ListDeidentifyTemplatesRequest {
5741
6060
  // returns a page of max size 100.
5742
6061
  int32 page_size = 3;
5743
6062
 
5744
- // Comma separated list of fields to order by,
6063
+ // Comma-separated list of fields to order by,
5745
6064
  // followed by `asc` or `desc` postfix. This list is case insensitive. The
5746
6065
  // default sorting order is ascending. Redundant space characters are
5747
6066
  // insignificant.
@@ -5909,13 +6228,13 @@ message CreateStoredInfoTypeRequest {
5909
6228
  // (project or organization) and whether you have [specified a processing
5910
6229
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5911
6230
  //
5912
- // + Projects scope, location specified:<br/>
6231
+ // + Projects scope, location specified:
5913
6232
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5914
- // + Projects scope, no location specified (defaults to global):<br/>
6233
+ // + Projects scope, no location specified (defaults to global):
5915
6234
  // `projects/`<var>PROJECT_ID</var>
5916
- // + Organizations scope, location specified:<br/>
6235
+ // + Organizations scope, location specified:
5917
6236
  // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
5918
- // + Organizations scope, no location specified (defaults to global):<br/>
6237
+ // + Organizations scope, no location specified (defaults to global):
5919
6238
  // `organizations/`<var>ORG_ID</var>
5920
6239
  //
5921
6240
  // The following example `parent` string specifies a parent project with the
@@ -5985,9 +6304,9 @@ message ListStoredInfoTypesRequest {
5985
6304
  // (project or organization) and whether you have [specified a processing
5986
6305
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5987
6306
  //
5988
- // + Projects scope, location specified:<br/>
6307
+ // + Projects scope, location specified:
5989
6308
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5990
- // + Projects scope, no location specified (defaults to global):<br/>
6309
+ // + Projects scope, no location specified (defaults to global):
5991
6310
  // `projects/`<var>PROJECT_ID</var>
5992
6311
  //
5993
6312
  // The following example `parent` string specifies a parent project with the
@@ -6010,7 +6329,7 @@ message ListStoredInfoTypesRequest {
6010
6329
  // returns a page of max size 100.
6011
6330
  int32 page_size = 3;
6012
6331
 
6013
- // Comma separated list of fields to order by,
6332
+ // Comma-separated list of fields to order by,
6014
6333
  // followed by `asc` or `desc` postfix. This list is case insensitive. The
6015
6334
  // default sorting order is ascending. Redundant space characters are
6016
6335
  // insignificant.
@@ -6126,6 +6445,7 @@ message HybridFindingDetails {
6126
6445
  // No more than 10 labels can be associated with a given finding.
6127
6446
  //
6128
6447
  // Examples:
6448
+ //
6129
6449
  // * `"environment" : "production"`
6130
6450
  // * `"pipeline" : "etl"`
6131
6451
  map<string, string> labels = 5;
@@ -6273,7 +6593,7 @@ message ListProjectDataProfilesRequest {
6273
6593
  // returns a page of max size 100.
6274
6594
  int32 page_size = 3;
6275
6595
 
6276
- // Comma separated list of fields to order by, followed by `asc` or `desc`
6596
+ // Comma-separated list of fields to order by, followed by `asc` or `desc`
6277
6597
  // postfix. This list is case insensitive. The default sorting order is
6278
6598
  // ascending. Redundant space characters are insignificant. Only one order
6279
6599
  // field at a time is allowed.
@@ -6343,7 +6663,7 @@ message ListTableDataProfilesRequest {
6343
6663
  // returns a page of max size 100.
6344
6664
  int32 page_size = 3;
6345
6665
 
6346
- // Comma separated list of fields to order by, followed by `asc` or `desc`
6666
+ // Comma-separated list of fields to order by, followed by `asc` or `desc`
6347
6667
  // postfix. This list is case insensitive. The default sorting order is
6348
6668
  // ascending. Redundant space characters are insignificant. Only one order
6349
6669
  // field at a time is allowed.
@@ -6424,12 +6744,13 @@ message ListColumnDataProfilesRequest {
6424
6744
  // returns a page of max size 100.
6425
6745
  int32 page_size = 3;
6426
6746
 
6427
- // Comma separated list of fields to order by, followed by `asc` or `desc`
6747
+ // Comma-separated list of fields to order by, followed by `asc` or `desc`
6428
6748
  // postfix. This list is case insensitive. The default sorting order is
6429
6749
  // ascending. Redundant space characters are insignificant. Only one order
6430
6750
  // field at a time is allowed.
6431
6751
  //
6432
6752
  // Examples:
6753
+ //
6433
6754
  // * `project_id asc`
6434
6755
  // * `table_id`
6435
6756
  // * `sensitivity_level desc`
@@ -6500,6 +6821,9 @@ message DataRiskLevel {
6500
6821
  // data found.
6501
6822
  RISK_LOW = 10;
6502
6823
 
6824
+ // Unable to determine risk.
6825
+ RISK_UNKNOWN = 12;
6826
+
6503
6827
  // Medium risk - Sensitive data may be present but additional access or fine
6504
6828
  // grain access restrictions appear to be present. Consider limiting
6505
6829
  // access even further or transform data to mask.
@@ -6541,6 +6865,12 @@ message ProjectDataProfile {
6541
6865
 
6542
6866
  // Success or error status of the last attempt to profile the project.
6543
6867
  ProfileStatus profile_status = 7;
6868
+
6869
+ // The number of table data profiles generated for this project.
6870
+ int64 table_data_profile_count = 9;
6871
+
6872
+ // The number of file store data profiles generated for this project.
6873
+ int64 file_store_data_profile_count = 10;
6544
6874
  }
6545
6875
 
6546
6876
  // How broadly the data in the resource has been shared. New items may be added
@@ -6554,7 +6884,7 @@ enum ResourceVisibility {
6554
6884
 
6555
6885
  // May contain public items.
6556
6886
  // For example, if a Cloud Storage bucket has uniform bucket level access
6557
- // disabled, some objects inside it may be public.
6887
+ // disabled, some objects inside it may be public, but none are known yet.
6558
6888
  RESOURCE_VISIBILITY_INCONCLUSIVE = 15;
6559
6889
 
6560
6890
  // Visible only to specific users.
@@ -6613,7 +6943,7 @@ message TableDataProfile {
6613
6943
  // The resource type that was profiled.
6614
6944
  DataSourceType data_source_type = 36;
6615
6945
 
6616
- // The resource name to the project data profile for this table.
6946
+ // The resource name of the project data profile for this table.
6617
6947
  string project_data_profile = 2;
6618
6948
 
6619
6949
  // The Google Cloud project ID that owns the resource.
@@ -6936,6 +7266,164 @@ message ColumnDataProfile {
6936
7266
  ColumnPolicyState policy_state = 15;
6937
7267
  }
6938
7268
 
7269
+ // The profile for a file store.
7270
+ //
7271
+ // * Cloud Storage: maps 1:1 with a bucket.
7272
+ message FileStoreDataProfile {
7273
+ option (google.api.resource) = {
7274
+ type: "dlp.googleapis.com/FileStoreDataProfile"
7275
+ pattern: "organizations/{organization}/locations/{location}/fileStoreDataProfiles/{file_store_data_profile}"
7276
+ pattern: "projects/{project}/locations/{location}/fileStoreDataProfiles/{file_store_data_profile}"
7277
+ };
7278
+
7279
+ // Possible states of a profile. New items may be added.
7280
+ enum State {
7281
+ // Unused.
7282
+ STATE_UNSPECIFIED = 0;
7283
+
7284
+ // The profile is currently running. Once a profile has finished it will
7285
+ // transition to DONE.
7286
+ RUNNING = 1;
7287
+
7288
+ // The profile is no longer generating.
7289
+ // If profile_status.status.code is 0, the profile succeeded, otherwise, it
7290
+ // failed.
7291
+ DONE = 2;
7292
+ }
7293
+
7294
+ // The name of the profile.
7295
+ string name = 1;
7296
+
7297
+ // The resource type that was profiled.
7298
+ DataSourceType data_source_type = 2;
7299
+
7300
+ // The resource name of the project data profile for this file store.
7301
+ string project_data_profile = 3;
7302
+
7303
+ // The Google Cloud project ID that owns the resource.
7304
+ string project_id = 4;
7305
+
7306
+ // The location of the file store.
7307
+ //
7308
+ // * Cloud Storage:
7309
+ // https://cloud.google.com/storage/docs/locations#available-locations
7310
+ string file_store_location = 5;
7311
+
7312
+ // For resources that have multiple storage locations, these are those
7313
+ // regions. For Cloud Storage this is the list of regions chosen for
7314
+ // dual-region storage. `file_store_location` will normally be the
7315
+ // corresponding multi-region for the list of individual locations. The first
7316
+ // region is always picked as the processing and storage location for the data
7317
+ // profile.
7318
+ repeated string data_storage_locations = 19;
7319
+
7320
+ // The location type of the bucket (region, dual-region, multi-region, etc).
7321
+ // If dual-region, expect data_storage_locations to be populated.
7322
+ string location_type = 20;
7323
+
7324
+ // The file store path.
7325
+ //
7326
+ // * Cloud Storage: `gs://{bucket}`
7327
+ string file_store_path = 6;
7328
+
7329
+ // The resource name of the resource profiled.
7330
+ // https://cloud.google.com/apis/design/resource_names#full_resource_name
7331
+ string full_resource = 24;
7332
+
7333
+ // The snapshot of the configurations used to generate the profile.
7334
+ DataProfileConfigSnapshot config_snapshot = 7;
7335
+
7336
+ // Success or error status from the most recent profile generation attempt.
7337
+ // May be empty if the profile is still being generated.
7338
+ ProfileStatus profile_status = 8;
7339
+
7340
+ // State of a profile.
7341
+ State state = 9;
7342
+
7343
+ // The last time the profile was generated.
7344
+ google.protobuf.Timestamp profile_last_generated = 10;
7345
+
7346
+ // How broadly a resource has been shared.
7347
+ ResourceVisibility resource_visibility = 11;
7348
+
7349
+ // The sensitivity score of this resource.
7350
+ SensitivityScore sensitivity_score = 12;
7351
+
7352
+ // The data risk level of this resource.
7353
+ DataRiskLevel data_risk_level = 13;
7354
+
7355
+ // The time the file store was first created.
7356
+ google.protobuf.Timestamp create_time = 14;
7357
+
7358
+ // The time the file store was last modified.
7359
+ google.protobuf.Timestamp last_modified_time = 15;
7360
+
7361
+ // FileClusterSummary per each cluster.
7362
+ repeated FileClusterSummary file_cluster_summaries = 16;
7363
+
7364
+ // Attributes of the resource being profiled.
7365
+ // Currently used attributes:
7366
+ //
7367
+ // * customer_managed_encryption: boolean
7368
+ // - true: the resource is encrypted with a customer-managed key.
7369
+ // - false: the resource is encrypted with a provider-managed key.
7370
+ map<string, Value> resource_attributes = 17;
7371
+
7372
+ // The labels applied to the resource at the time the profile was generated.
7373
+ map<string, string> resource_labels = 18;
7374
+
7375
+ // InfoTypes detected in this file store.
7376
+ repeated FileStoreInfoTypeSummary file_store_info_type_summaries = 21;
7377
+
7378
+ // The file store does not have any files.
7379
+ bool file_store_is_empty = 23;
7380
+ }
7381
+
7382
+ // Information regarding the discovered InfoType.
7383
+ message FileStoreInfoTypeSummary {
7384
+ // The InfoType seen.
7385
+ InfoType info_type = 1;
7386
+ }
7387
+
7388
+ // Information regarding the discovered file extension.
7389
+ message FileExtensionInfo {
7390
+ // The file extension if set. (aka .pdf, .jpg, .txt)
7391
+ string file_extension = 1;
7392
+ }
7393
+
7394
+ // The file cluster summary.
7395
+ message FileClusterSummary {
7396
+ // The file cluster type.
7397
+ FileClusterType file_cluster_type = 1;
7398
+
7399
+ // InfoTypes detected in this cluster.
7400
+ repeated FileStoreInfoTypeSummary file_store_info_type_summaries = 2;
7401
+
7402
+ // The sensitivity score of this cluster. The score will be SENSITIVITY_LOW
7403
+ // if nothing has been scanned.
7404
+ SensitivityScore sensitivity_score = 3;
7405
+
7406
+ // The data risk level of this cluster. RISK_LOW if nothing has been
7407
+ // scanned.
7408
+ DataRiskLevel data_risk_level = 4;
7409
+
7410
+ // A list of errors detected while scanning this cluster. The list is
7411
+ // truncated to 10 per cluster.
7412
+ repeated Error errors = 6;
7413
+
7414
+ // A sample of file types scanned in this cluster. Empty if no files were
7415
+ // scanned.
7416
+ repeated FileExtensionInfo file_extensions_scanned = 7;
7417
+
7418
+ // A sample of file types seen in this cluster. Empty if no files were seen.
7419
+ repeated FileExtensionInfo file_extensions_seen = 8;
7420
+
7421
+ // True if no files exist in this cluster. If the bucket had more files than
7422
+ // could be listed, this will be false even if no files for this cluster
7423
+ // were seen and file_extensions_seen is empty.
7424
+ bool no_files_exist = 9;
7425
+ }
7426
+
6939
7427
  // Request to get a project data profile.
6940
7428
  message GetProjectDataProfileRequest {
6941
7429
  // Required. Resource name, for example
@@ -6948,6 +7436,112 @@ message GetProjectDataProfileRequest {
6948
7436
  ];
6949
7437
  }
6950
7438
 
7439
+ // Request to get a file store data profile.
7440
+ message GetFileStoreDataProfileRequest {
7441
+ // Required. Resource name, for example
7442
+ // `organizations/12345/locations/us/fileStoreDataProfiles/53234423`.
7443
+ string name = 1 [
7444
+ (google.api.field_behavior) = REQUIRED,
7445
+ (google.api.resource_reference) = {
7446
+ type: "dlp.googleapis.com/ProjectDataProfile"
7447
+ }
7448
+ ];
7449
+ }
7450
+
7451
+ // Request to list the file store profiles generated for a given organization or
7452
+ // project.
7453
+ message ListFileStoreDataProfilesRequest {
7454
+ // Required. Resource name of the organization or project, for
7455
+ // example `organizations/433245324/locations/europe` or
7456
+ // `projects/project-id/locations/asia`.
7457
+ string parent = 1 [
7458
+ (google.api.field_behavior) = REQUIRED,
7459
+ (google.api.resource_reference) = {
7460
+ child_type: "dlp.googleapis.com/FileStoreDataProfile"
7461
+ }
7462
+ ];
7463
+
7464
+ // Optional. Page token to continue retrieval.
7465
+ string page_token = 2 [(google.api.field_behavior) = OPTIONAL];
7466
+
7467
+ // Optional. Size of the page. This value can be limited by the server. If
7468
+ // zero, server returns a page of max size 100.
7469
+ int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
7470
+
7471
+ // Optional. Comma-separated list of fields to order by, followed by `asc` or
7472
+ // `desc` postfix. This list is case insensitive. The default sorting order is
7473
+ // ascending. Redundant space characters are insignificant. Only one order
7474
+ // field at a time is allowed.
7475
+ //
7476
+ // Examples:
7477
+ //
7478
+ // * `project_id asc`
7479
+ // * `name`
7480
+ // * `sensitivity_level desc`
7481
+ //
7482
+ // Supported fields are:
7483
+ //
7484
+ // - `project_id`: The Google Cloud project ID.
7485
+ // - `sensitivity_level`: How sensitive the data in a table is, at most.
7486
+ // - `data_risk_level`: How much risk is associated with this data.
7487
+ // - `profile_last_generated`: When the profile was last updated in epoch
7488
+ // seconds.
7489
+ // - `last_modified`: The last time the resource was modified.
7490
+ // - `resource_visibility`: Visibility restriction for this resource.
7491
+ // - `name`: The name of the profile.
7492
+ // - `create_time`: The time the file store was first created.
7493
+ string order_by = 4 [(google.api.field_behavior) = OPTIONAL];
7494
+
7495
+ // Optional. Allows filtering.
7496
+ //
7497
+ // Supported syntax:
7498
+ //
7499
+ // * Filter expressions are made up of one or more restrictions.
7500
+ // * Restrictions can be combined by `AND` or `OR` logical operators. A
7501
+ // sequence of restrictions implicitly uses `AND`.
7502
+ // * A restriction has the form of `{field} {operator} {value}`.
7503
+ // * Supported fields/values:
7504
+ // - `project_id` - The Google Cloud project ID.
7505
+ // - `file_store_path` - The path like "gs://bucket".
7506
+ // - `sensitivity_level` - HIGH|MODERATE|LOW
7507
+ // - `data_risk_level` - HIGH|MODERATE|LOW
7508
+ // - `resource_visibility`: PUBLIC|RESTRICTED
7509
+ // - `status_code` - an RPC status code as defined in
7510
+ // https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto
7511
+ // * The operator must be `=` or `!=`.
7512
+ //
7513
+ // Examples:
7514
+ //
7515
+ // * `project_id = 12345 AND status_code = 1`
7516
+ // * `project_id = 12345 AND sensitivity_level = HIGH`
7517
+ // * `project_id = 12345 AND resource_visibility = PUBLIC`
7518
+ // * `file_store_path = "gs://mybucket"`
7519
+ //
7520
+ // The length of this field should be no more than 500 characters.
7521
+ string filter = 5 [(google.api.field_behavior) = OPTIONAL];
7522
+ }
7523
+
7524
+ // List of file store data profiles generated for a given organization or
7525
+ // project.
7526
+ message ListFileStoreDataProfilesResponse {
7527
+ // List of data profiles.
7528
+ repeated FileStoreDataProfile file_store_data_profiles = 1;
7529
+
7530
+ // The next page token.
7531
+ string next_page_token = 2;
7532
+ }
7533
+
7534
+ // Request message for DeleteFileStoreProfile.
7535
+ message DeleteFileStoreDataProfileRequest {
7536
+ // Required. Resource name of the file store data profile.
7537
+ string name = 1 [
7538
+ (google.api.field_behavior) = REQUIRED,
7539
+ (google.api.resource_reference) = {
7540
+ type: "dlp.googleapis.com/FileStoreDataProfile"
7541
+ }
7542
+ ];
7543
+ }
7544
+
6951
7545
  // Request to get a table data profile.
6952
7546
  message GetTableDataProfileRequest {
6953
7547
  // Required. Resource name, for example
@@ -7032,6 +7626,11 @@ message DataProfilePubSubMessage {
7032
7626
  // `full_resource` will be populated.
7033
7627
  TableDataProfile profile = 1;
7034
7628
 
7629
+ // If `DetailLevel` is `FILE_STORE_PROFILE` this will be fully populated.
7630
+ // Otherwise, if `DetailLevel` is `RESOURCE_NAME`, then only `name` and
7631
+ // `file_store_path` will be populated.
7632
+ FileStoreDataProfile file_store_profile = 3;
7633
+
7035
7634
  // The event that caused the Pub/Sub message to be sent.
7036
7635
  DataProfileAction.EventType event = 2;
7037
7636
  }
@@ -7288,3 +7887,46 @@ message DataSourceType {
7288
7887
  // Current values: google/bigquery/table, google/project
7289
7888
  string data_source = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
7290
7889
  }
7890
+
7891
+ // Message used to identify file cluster type being profiled.
7892
+ message FileClusterType {
7893
+ // Cluster type. Each cluster corresponds to a set of file types.
7894
+ // Over time new types may be added.
7895
+ enum Cluster {
7896
+ // Unused.
7897
+ CLUSTER_UNSPECIFIED = 0;
7898
+
7899
+ // Unsupported files.
7900
+ CLUSTER_UNKNOWN = 1;
7901
+
7902
+ // Plain text.
7903
+ CLUSTER_TEXT = 2;
7904
+
7905
+ // Structured data like CSV, TSV etc.
7906
+ CLUSTER_STRUCTURED_DATA = 3;
7907
+
7908
+ // Source code.
7909
+ CLUSTER_SOURCE_CODE = 4;
7910
+
7911
+ // Rich document like docx, xlsx etc.
7912
+ CLUSTER_RICH_DOCUMENT = 5;
7913
+
7914
+ // Images like jpeg, bmp.
7915
+ CLUSTER_IMAGE = 6;
7916
+
7917
+ // Archives and containers like .zip, .tar etc.
7918
+ CLUSTER_ARCHIVE = 7;
7919
+
7920
+ // Multimedia like .mp4, .avi etc.
7921
+ CLUSTER_MULTIMEDIA = 8;
7922
+
7923
+ // Executable files like .exe, .class, .apk etc.
7924
+ CLUSTER_EXECUTABLE = 9;
7925
+ }
7926
+
7927
+ // File cluster type.
7928
+ oneof file_cluster_type {
7929
+ // Cluster type.
7930
+ Cluster cluster = 1;
7931
+ }
7932
+ }