@google-cloud/dlp 5.6.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
@@ -1853,7 +1900,7 @@ message InspectDataSourceDetails {
1853
1900
  // inspect job.
1854
1901
  repeated InfoTypeStats info_type_stats = 3;
1855
1902
 
1856
- // Number of rows scanned post sampling and time filtering (Applicable for
1903
+ // Number of rows scanned after sampling and time filtering (applicable for
1857
1904
  // row based stores such as BigQuery).
1858
1905
  int64 num_rows_processed = 5;
1859
1906
 
@@ -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,9 +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
 
2045
+ // The infoType is typically used in Azerbaijan.
2046
+ AZERBAIJAN = 48;
2047
+
2048
+ // The infoType is typically used in Belarus.
2049
+ BELARUS = 50;
2050
+
1992
2051
  // The infoType is typically used in Belgium.
1993
2052
  BELGIUM = 4;
1994
2053
 
@@ -3197,9 +3256,10 @@ message FixedSizeBucketingConfig {
3197
3256
 
3198
3257
  // Generalization function that buckets values based on ranges. The ranges and
3199
3258
  // replacement values are dynamically provided by the user for custom behavior,
3200
- // such as 1-30 -> LOW 31-65 -> MEDIUM 66-100 -> HIGH
3201
- // This can be used on
3202
- // 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
+ //
3203
3263
  // If the bound `Value` type differs from the type of data being transformed, we
3204
3264
  // will first attempt converting the type of the data to be transformed to match
3205
3265
  // the type of the bound before comparing.
@@ -3930,15 +3990,30 @@ message DeidentifyTemplate {
3930
3990
  // Details information about an error encountered during job execution or
3931
3991
  // the results of an unsuccessful activation of the JobTrigger.
3932
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
+
3933
4005
  // Detailed error codes and messages.
3934
4006
  google.rpc.Status details = 1;
3935
4007
 
3936
4008
  // The times the error occurred. List includes the oldest timestamp and the
3937
4009
  // last 9 timestamps.
3938
4010
  repeated google.protobuf.Timestamp timestamps = 2;
4011
+
4012
+ // Additional information about the error.
4013
+ ErrorExtraInfo extra_info = 4;
3939
4014
  }
3940
4015
 
3941
- // Contains a configuration to make api calls on a repeating basis.
4016
+ // Contains a configuration to make API calls on a repeating basis.
3942
4017
  // See
3943
4018
  // https://cloud.google.com/sensitive-data-protection/docs/concepts-job-triggers
3944
4019
  // to learn more.
@@ -4111,7 +4186,7 @@ message Action {
4111
4186
  // Where to store the output.
4112
4187
  oneof output {
4113
4188
  // Required. User settable Cloud Storage bucket and folders to store
4114
- // de-identified files. This field must be set for cloud storage
4189
+ // de-identified files. This field must be set for Cloud Storage
4115
4190
  // deidentification. The output Cloud Storage bucket must be different
4116
4191
  // from the input bucket. De-identified files will overwrite files in the
4117
4192
  // output path.
@@ -4121,12 +4196,12 @@ message Action {
4121
4196
  }
4122
4197
 
4123
4198
  // List of user-specified file type groups to transform. If specified, only
4124
- // the files with these filetypes will be transformed. If empty, all
4199
+ // the files with these file types will be transformed. If empty, all
4125
4200
  // supported files will be transformed. Supported types may be automatically
4126
4201
  // added over time. If a file type is set in this field that isn't supported
4127
4202
  // by the Deidentify action then the job will fail and will not be
4128
- // successfully created/started. Currently the only filetypes supported are:
4129
- // IMAGES, TEXT_FILES, CSV, TSV.
4203
+ // successfully created/started. Currently the only file types supported
4204
+ // are: IMAGES, TEXT_FILES, CSV, TSV.
4130
4205
  repeated FileType file_types_to_transform = 8;
4131
4206
  }
4132
4207
 
@@ -4205,13 +4280,13 @@ message CreateInspectTemplateRequest {
4205
4280
  // (project or organization) and whether you have [specified a processing
4206
4281
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4207
4282
  //
4208
- // + Projects scope, location specified:<br/>
4283
+ // + Projects scope, location specified:
4209
4284
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4210
- // + Projects scope, no location specified (defaults to global):<br/>
4285
+ // + Projects scope, no location specified (defaults to global):
4211
4286
  // `projects/`<var>PROJECT_ID</var>
4212
- // + Organizations scope, location specified:<br/>
4287
+ // + Organizations scope, location specified:
4213
4288
  // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
4214
- // + Organizations scope, no location specified (defaults to global):<br/>
4289
+ // + Organizations scope, no location specified (defaults to global):
4215
4290
  // `organizations/`<var>ORG_ID</var>
4216
4291
  //
4217
4292
  // The following example `parent` string specifies a parent project with the
@@ -4279,13 +4354,13 @@ message ListInspectTemplatesRequest {
4279
4354
  // (project or organization) and whether you have [specified a processing
4280
4355
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4281
4356
  //
4282
- // + Projects scope, location specified:<br/>
4357
+ // + Projects scope, location specified:
4283
4358
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4284
- // + Projects scope, no location specified (defaults to global):<br/>
4359
+ // + Projects scope, no location specified (defaults to global):
4285
4360
  // `projects/`<var>PROJECT_ID</var>
4286
- // + Organizations scope, location specified:<br/>
4361
+ // + Organizations scope, location specified:
4287
4362
  // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
4288
- // + Organizations scope, no location specified (defaults to global):<br/>
4363
+ // + Organizations scope, no location specified (defaults to global):
4289
4364
  // `organizations/`<var>ORG_ID</var>
4290
4365
  //
4291
4366
  // The following example `parent` string specifies a parent project with the
@@ -4308,7 +4383,7 @@ message ListInspectTemplatesRequest {
4308
4383
  // returns a page of max size 100.
4309
4384
  int32 page_size = 3;
4310
4385
 
4311
- // Comma separated list of fields to order by,
4386
+ // Comma-separated list of fields to order by,
4312
4387
  // followed by `asc` or `desc` postfix. This list is case insensitive. The
4313
4388
  // default sorting order is ascending. Redundant space characters are
4314
4389
  // insignificant.
@@ -4358,9 +4433,9 @@ message CreateJobTriggerRequest {
4358
4433
  // processing
4359
4434
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4360
4435
  //
4361
- // + Projects scope, location specified:<br/>
4436
+ // + Projects scope, location specified:
4362
4437
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4363
- // + Projects scope, no location specified (defaults to global):<br/>
4438
+ // + Projects scope, no location specified (defaults to global):
4364
4439
  // `projects/`<var>PROJECT_ID</var>
4365
4440
  //
4366
4441
  // The following example `parent` string specifies a parent project with the
@@ -4428,8 +4503,13 @@ message GetJobTriggerRequest {
4428
4503
  message CreateDiscoveryConfigRequest {
4429
4504
  // Required. Parent resource name.
4430
4505
  //
4431
- // The format of this value is as follows:
4432
- // `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>
4433
4513
  //
4434
4514
  // The following example `parent` string specifies a parent project with the
4435
4515
  // identifier `example-project`, and specifies the `europe-west3` location
@@ -4510,7 +4590,7 @@ message ListDiscoveryConfigsRequest {
4510
4590
  // Size of the page. This value can be limited by a server.
4511
4591
  int32 page_size = 3;
4512
4592
 
4513
- // Comma separated list of config fields to order by,
4593
+ // Comma-separated list of config fields to order by,
4514
4594
  // followed by `asc` or `desc` postfix. This list is case insensitive. The
4515
4595
  // default sorting order is ascending. Redundant space characters are
4516
4596
  // insignificant.
@@ -4557,9 +4637,9 @@ message CreateDlpJobRequest {
4557
4637
  // processing
4558
4638
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4559
4639
  //
4560
- // + Projects scope, location specified:<br/>
4640
+ // + Projects scope, location specified:
4561
4641
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4562
- // + Projects scope, no location specified (defaults to global):<br/>
4642
+ // + Projects scope, no location specified (defaults to global):
4563
4643
  // `projects/`<var>PROJECT_ID</var>
4564
4644
  //
4565
4645
  // The following example `parent` string specifies a parent project with the
@@ -4602,9 +4682,9 @@ message ListJobTriggersRequest {
4602
4682
  // processing
4603
4683
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4604
4684
  //
4605
- // + Projects scope, location specified:<br/>
4685
+ // + Projects scope, location specified:
4606
4686
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4607
- // + Projects scope, no location specified (defaults to global):<br/>
4687
+ // + Projects scope, no location specified (defaults to global):
4608
4688
  // `projects/`<var>PROJECT_ID</var>
4609
4689
  //
4610
4690
  // The following example `parent` string specifies a parent project with the
@@ -4627,7 +4707,7 @@ message ListJobTriggersRequest {
4627
4707
  // Size of the page. This value can be limited by a server.
4628
4708
  int32 page_size = 3;
4629
4709
 
4630
- // Comma separated list of triggeredJob fields to order by,
4710
+ // Comma-separated list of triggeredJob fields to order by,
4631
4711
  // followed by `asc` or `desc` postfix. This list is case insensitive. The
4632
4712
  // default sorting order is ascending. Redundant space characters are
4633
4713
  // insignificant.
@@ -4745,6 +4825,9 @@ message DataProfileAction {
4745
4825
 
4746
4826
  // The name of the profiled resource.
4747
4827
  RESOURCE_NAME = 2;
4828
+
4829
+ // The full file store data profile.
4830
+ FILE_STORE_PROFILE = 3;
4748
4831
  }
4749
4832
 
4750
4833
  // Cloud Pub/Sub topic to send notifications to.
@@ -4773,13 +4856,9 @@ message DataProfileAction {
4773
4856
  // New profile (not a re-profile).
4774
4857
  NEW_PROFILE = 1;
4775
4858
 
4776
- // Changed one of the following profile metrics:
4777
- // * Data risk score
4778
- // * Sensitivity score
4779
- // * Resource visibility
4780
- // * Encryption type
4781
- // * Predicted infoTypes
4782
- // * Other infoTypes
4859
+ // One of the following profile metrics changed: Data risk score,
4860
+ // Sensitivity score, Resource visibility, Encryption type, Predicted
4861
+ // infoTypes, Other infoTypes
4783
4862
  CHANGED_PROFILE = 2;
4784
4863
 
4785
4864
  // Table data risk score or sensitivity score increased.
@@ -4926,7 +5005,7 @@ message DataProfileLocation {
4926
5005
  // The ID of an organization to scan.
4927
5006
  int64 organization_id = 1;
4928
5007
 
4929
- // The ID of the Folder within an organization to scan.
5008
+ // The ID of the folder within an organization to scan.
4930
5009
  int64 folder_id = 2;
4931
5010
  }
4932
5011
  }
@@ -5036,6 +5115,15 @@ message DiscoveryTarget {
5036
5115
  // Cloud SQL target for Discovery. The first target to match a table will be
5037
5116
  // the one applied.
5038
5117
  CloudSqlDiscoveryTarget cloud_sql_target = 2;
5118
+
5119
+ // Discovery target that looks for credentials and secrets stored in cloud
5120
+ // resource metadata and reports them as vulnerabilities to Security Command
5121
+ // Center. Only one target of this type is allowed.
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;
5039
5127
  }
5040
5128
  }
5041
5129
 
@@ -5088,6 +5176,11 @@ message DiscoveryBigQueryFilter {
5088
5176
  // configuration. If none is specified, a default one will be added
5089
5177
  // automatically.
5090
5178
  AllOtherBigQueryTables other_tables = 2;
5179
+
5180
+ // The table to scan. Discovery configurations including this can only
5181
+ // include one DiscoveryTarget (the DiscoveryTarget with this
5182
+ // TableReference).
5183
+ TableReference table_reference = 3;
5091
5184
  }
5092
5185
  }
5093
5186
 
@@ -5148,6 +5241,11 @@ message DiscoveryGenerationCadence {
5148
5241
 
5149
5242
  // Governs when to update data profiles when a table is modified.
5150
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;
5151
5249
  }
5152
5250
 
5153
5251
  // The cadence at which to update data profiles when a table is modified.
@@ -5199,6 +5297,14 @@ enum BigQuerySchemaModification {
5199
5297
  SCHEMA_REMOVED_COLUMNS = 2;
5200
5298
  }
5201
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
+
5202
5308
  // Target used to match against for discovery with Cloud SQL tables.
5203
5309
  message CloudSqlDiscoveryTarget {
5204
5310
  // Required. The tables the discovery cadence applies to. The first target
@@ -5272,7 +5378,7 @@ message DatabaseResourceRegexes {
5272
5378
  // under the google/re2 repository on GitHub.
5273
5379
  message DatabaseResourceRegex {
5274
5380
  // For organizations, if unset, will match all projects. Has no effect
5275
- // for Data Profile configurations created within a project.
5381
+ // for configurations created within a project.
5276
5382
  string project_id_regex = 1;
5277
5383
 
5278
5384
  // Regex to test the instance name against. If empty, all instances match.
@@ -5294,12 +5400,19 @@ message AllOtherDatabaseResources {}
5294
5400
  // Identifies a single database resource, like a table within a database.
5295
5401
  message DatabaseResourceReference {
5296
5402
  // Required. If within a project-level config, then this must match the
5297
- // config's project id.
5403
+ // config's project ID.
5298
5404
  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
5299
5405
 
5300
5406
  // Required. The instance where this resource is located. For example: Cloud
5301
- // SQL's instance id.
5407
+ // SQL instance ID.
5302
5408
  string instance = 2 [(google.api.field_behavior) = REQUIRED];
5409
+
5410
+ // Required. Name of a database within the instance.
5411
+ string database = 3 [(google.api.field_behavior) = REQUIRED];
5412
+
5413
+ // Required. Name of a database resource, for example, a table within the
5414
+ // database.
5415
+ string database_resource = 4 [(google.api.field_behavior) = REQUIRED];
5303
5416
  }
5304
5417
 
5305
5418
  // Requirements that must be true before a table is profiled for the
@@ -5313,10 +5426,10 @@ message DiscoveryCloudSqlConditions {
5313
5426
  // Include all supported database engines.
5314
5427
  ALL_SUPPORTED_DATABASE_ENGINES = 1;
5315
5428
 
5316
- // MySql database.
5429
+ // MySQL database.
5317
5430
  MYSQL = 2;
5318
5431
 
5319
- // PostGres database.
5432
+ // PostgreSQL database.
5320
5433
  POSTGRES = 3;
5321
5434
  }
5322
5435
 
@@ -5347,14 +5460,14 @@ message DiscoveryCloudSqlConditions {
5347
5460
  // New tables are scanned as quickly as possible depending on system
5348
5461
  // capacity.
5349
5462
  message DiscoveryCloudSqlGenerationCadence {
5350
- // How frequency to modify the profile when the table's schema is modified.
5463
+ // How frequently to modify the profile when the table's schema is modified.
5351
5464
  message SchemaModifiedCadence {
5352
5465
  // The type of modification that causes a profile update.
5353
5466
  enum CloudSqlSchemaModification {
5354
5467
  // Unused.
5355
5468
  SQL_SCHEMA_MODIFICATION_UNSPECIFIED = 0;
5356
5469
 
5357
- // New columns has appeared.
5470
+ // New columns have appeared.
5358
5471
  NEW_COLUMNS = 1;
5359
5472
 
5360
5473
  // Columns have been removed from the table.
@@ -5375,11 +5488,244 @@ message DiscoveryCloudSqlGenerationCadence {
5375
5488
 
5376
5489
  // Data changes (non-schema changes) in Cloud SQL tables can't trigger
5377
5490
  // reprofiling. If you set this field, profiles are refreshed at this
5378
- // frequency regardless of whether the underlying tables have changes.
5491
+ // frequency regardless of whether the underlying tables have changed.
5379
5492
  // Defaults to never.
5380
5493
  DataProfileUpdateFrequency refresh_frequency = 2;
5381
5494
  }
5382
5495
 
5496
+ // Discovery target for credentials and secrets in cloud resource metadata.
5497
+ //
5498
+ // This target does not include any filtering or frequency controls. Cloud
5499
+ // DLP will scan cloud resource metadata for secrets daily.
5500
+ //
5501
+ // No inspect template should be included in the discovery config for a
5502
+ // security benchmarks scan. Instead, the built-in list of secrets and
5503
+ // credentials infoTypes will be used (see
5504
+ // https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference#credentials_and_secrets).
5505
+ //
5506
+ // Credentials and secrets discovered will be reported as vulnerabilities to
5507
+ // Security Command Center.
5508
+ message SecretsDiscoveryTarget {}
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
+
5383
5729
  // The location to begin a discovery scan. Denotes an organization ID or folder
5384
5730
  // ID within an organization.
5385
5731
  message DiscoveryStartingLocation {
@@ -5388,11 +5734,14 @@ message DiscoveryStartingLocation {
5388
5734
  // The ID of an organization to scan.
5389
5735
  int64 organization_id = 1;
5390
5736
 
5391
- // The ID of the Folder within an organization to scan.
5737
+ // The ID of the folder within an organization to scan.
5392
5738
  int64 folder_id = 2;
5393
5739
  }
5394
5740
  }
5395
5741
 
5742
+ // Match discovery resources not covered by any other filter.
5743
+ message AllOtherResources {}
5744
+
5396
5745
  // Combines all of the information about a DLP job.
5397
5746
  message DlpJob {
5398
5747
  option (google.api.resource) = {
@@ -5487,9 +5836,9 @@ message ListDlpJobsRequest {
5487
5836
  // processing
5488
5837
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5489
5838
  //
5490
- // + Projects scope, location specified:<br/>
5839
+ // + Projects scope, location specified:
5491
5840
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5492
- // + Projects scope, no location specified (defaults to global):<br/>
5841
+ // + Projects scope, no location specified (defaults to global):
5493
5842
  // `projects/`<var>PROJECT_ID</var>
5494
5843
  //
5495
5844
  // The following example `parent` string specifies a parent project with the
@@ -5543,7 +5892,7 @@ message ListDlpJobsRequest {
5543
5892
  // The type of job. Defaults to `DlpJobType.INSPECT`
5544
5893
  DlpJobType type = 5;
5545
5894
 
5546
- // Comma separated list of fields to order by,
5895
+ // Comma-separated list of fields to order by,
5547
5896
  // followed by `asc` or `desc` postfix. This list is case insensitive. The
5548
5897
  // default sorting order is ascending. Redundant space characters are
5549
5898
  // insignificant.
@@ -5606,13 +5955,13 @@ message CreateDeidentifyTemplateRequest {
5606
5955
  // (project or organization) and whether you have [specified a processing
5607
5956
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5608
5957
  //
5609
- // + Projects scope, location specified:<br/>
5958
+ // + Projects scope, location specified:
5610
5959
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5611
- // + Projects scope, no location specified (defaults to global):<br/>
5960
+ // + Projects scope, no location specified (defaults to global):
5612
5961
  // `projects/`<var>PROJECT_ID</var>
5613
- // + Organizations scope, location specified:<br/>
5962
+ // + Organizations scope, location specified:
5614
5963
  // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
5615
- // + Organizations scope, no location specified (defaults to global):<br/>
5964
+ // + Organizations scope, no location specified (defaults to global):
5616
5965
  // `organizations/`<var>ORG_ID</var>
5617
5966
  //
5618
5967
  // The following example `parent` string specifies a parent project with the
@@ -5682,13 +6031,13 @@ message ListDeidentifyTemplatesRequest {
5682
6031
  // (project or organization) and whether you have [specified a processing
5683
6032
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5684
6033
  //
5685
- // + Projects scope, location specified:<br/>
6034
+ // + Projects scope, location specified:
5686
6035
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5687
- // + Projects scope, no location specified (defaults to global):<br/>
6036
+ // + Projects scope, no location specified (defaults to global):
5688
6037
  // `projects/`<var>PROJECT_ID</var>
5689
- // + Organizations scope, location specified:<br/>
6038
+ // + Organizations scope, location specified:
5690
6039
  // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
5691
- // + Organizations scope, no location specified (defaults to global):<br/>
6040
+ // + Organizations scope, no location specified (defaults to global):
5692
6041
  // `organizations/`<var>ORG_ID</var>
5693
6042
  //
5694
6043
  // The following example `parent` string specifies a parent project with the
@@ -5711,7 +6060,7 @@ message ListDeidentifyTemplatesRequest {
5711
6060
  // returns a page of max size 100.
5712
6061
  int32 page_size = 3;
5713
6062
 
5714
- // Comma separated list of fields to order by,
6063
+ // Comma-separated list of fields to order by,
5715
6064
  // followed by `asc` or `desc` postfix. This list is case insensitive. The
5716
6065
  // default sorting order is ascending. Redundant space characters are
5717
6066
  // insignificant.
@@ -5879,13 +6228,13 @@ message CreateStoredInfoTypeRequest {
5879
6228
  // (project or organization) and whether you have [specified a processing
5880
6229
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5881
6230
  //
5882
- // + Projects scope, location specified:<br/>
6231
+ // + Projects scope, location specified:
5883
6232
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5884
- // + Projects scope, no location specified (defaults to global):<br/>
6233
+ // + Projects scope, no location specified (defaults to global):
5885
6234
  // `projects/`<var>PROJECT_ID</var>
5886
- // + Organizations scope, location specified:<br/>
6235
+ // + Organizations scope, location specified:
5887
6236
  // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
5888
- // + Organizations scope, no location specified (defaults to global):<br/>
6237
+ // + Organizations scope, no location specified (defaults to global):
5889
6238
  // `organizations/`<var>ORG_ID</var>
5890
6239
  //
5891
6240
  // The following example `parent` string specifies a parent project with the
@@ -5955,9 +6304,9 @@ message ListStoredInfoTypesRequest {
5955
6304
  // (project or organization) and whether you have [specified a processing
5956
6305
  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5957
6306
  //
5958
- // + Projects scope, location specified:<br/>
6307
+ // + Projects scope, location specified:
5959
6308
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5960
- // + Projects scope, no location specified (defaults to global):<br/>
6309
+ // + Projects scope, no location specified (defaults to global):
5961
6310
  // `projects/`<var>PROJECT_ID</var>
5962
6311
  //
5963
6312
  // The following example `parent` string specifies a parent project with the
@@ -5980,7 +6329,7 @@ message ListStoredInfoTypesRequest {
5980
6329
  // returns a page of max size 100.
5981
6330
  int32 page_size = 3;
5982
6331
 
5983
- // Comma separated list of fields to order by,
6332
+ // Comma-separated list of fields to order by,
5984
6333
  // followed by `asc` or `desc` postfix. This list is case insensitive. The
5985
6334
  // default sorting order is ascending. Redundant space characters are
5986
6335
  // insignificant.
@@ -6096,6 +6445,7 @@ message HybridFindingDetails {
6096
6445
  // No more than 10 labels can be associated with a given finding.
6097
6446
  //
6098
6447
  // Examples:
6448
+ //
6099
6449
  // * `"environment" : "production"`
6100
6450
  // * `"pipeline" : "etl"`
6101
6451
  map<string, string> labels = 5;
@@ -6243,7 +6593,7 @@ message ListProjectDataProfilesRequest {
6243
6593
  // returns a page of max size 100.
6244
6594
  int32 page_size = 3;
6245
6595
 
6246
- // 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`
6247
6597
  // postfix. This list is case insensitive. The default sorting order is
6248
6598
  // ascending. Redundant space characters are insignificant. Only one order
6249
6599
  // field at a time is allowed.
@@ -6313,7 +6663,7 @@ message ListTableDataProfilesRequest {
6313
6663
  // returns a page of max size 100.
6314
6664
  int32 page_size = 3;
6315
6665
 
6316
- // 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`
6317
6667
  // postfix. This list is case insensitive. The default sorting order is
6318
6668
  // ascending. Redundant space characters are insignificant. Only one order
6319
6669
  // field at a time is allowed.
@@ -6394,12 +6744,13 @@ message ListColumnDataProfilesRequest {
6394
6744
  // returns a page of max size 100.
6395
6745
  int32 page_size = 3;
6396
6746
 
6397
- // 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`
6398
6748
  // postfix. This list is case insensitive. The default sorting order is
6399
6749
  // ascending. Redundant space characters are insignificant. Only one order
6400
6750
  // field at a time is allowed.
6401
6751
  //
6402
6752
  // Examples:
6753
+ //
6403
6754
  // * `project_id asc`
6404
6755
  // * `table_id`
6405
6756
  // * `sensitivity_level desc`
@@ -6470,6 +6821,9 @@ message DataRiskLevel {
6470
6821
  // data found.
6471
6822
  RISK_LOW = 10;
6472
6823
 
6824
+ // Unable to determine risk.
6825
+ RISK_UNKNOWN = 12;
6826
+
6473
6827
  // Medium risk - Sensitive data may be present but additional access or fine
6474
6828
  // grain access restrictions appear to be present. Consider limiting
6475
6829
  // access even further or transform data to mask.
@@ -6511,6 +6865,12 @@ message ProjectDataProfile {
6511
6865
 
6512
6866
  // Success or error status of the last attempt to profile the project.
6513
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;
6514
6874
  }
6515
6875
 
6516
6876
  // How broadly the data in the resource has been shared. New items may be added
@@ -6523,8 +6883,8 @@ enum ResourceVisibility {
6523
6883
  RESOURCE_VISIBILITY_PUBLIC = 10;
6524
6884
 
6525
6885
  // May contain public items.
6526
- // For example, if a GCS bucket has uniform bucket level access disabled, some
6527
- // objects inside it may be public.
6886
+ // For example, if a Cloud Storage bucket has uniform bucket level access
6887
+ // disabled, some objects inside it may be public, but none are known yet.
6528
6888
  RESOURCE_VISIBILITY_INCONCLUSIVE = 15;
6529
6889
 
6530
6890
  // Visible only to specific users.
@@ -6583,7 +6943,7 @@ message TableDataProfile {
6583
6943
  // The resource type that was profiled.
6584
6944
  DataSourceType data_source_type = 36;
6585
6945
 
6586
- // The resource name to the project data profile for this table.
6946
+ // The resource name of the project data profile for this table.
6587
6947
  string project_data_profile = 2;
6588
6948
 
6589
6949
  // The Google Cloud project ID that owns the resource.
@@ -6906,6 +7266,164 @@ message ColumnDataProfile {
6906
7266
  ColumnPolicyState policy_state = 15;
6907
7267
  }
6908
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
+
6909
7427
  // Request to get a project data profile.
6910
7428
  message GetProjectDataProfileRequest {
6911
7429
  // Required. Resource name, for example
@@ -6918,6 +7436,112 @@ message GetProjectDataProfileRequest {
6918
7436
  ];
6919
7437
  }
6920
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
+
6921
7545
  // Request to get a table data profile.
6922
7546
  message GetTableDataProfileRequest {
6923
7547
  // Required. Resource name, for example
@@ -7002,6 +7626,11 @@ message DataProfilePubSubMessage {
7002
7626
  // `full_resource` will be populated.
7003
7627
  TableDataProfile profile = 1;
7004
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
+
7005
7634
  // The event that caused the Pub/Sub message to be sent.
7006
7635
  DataProfileAction.EventType event = 2;
7007
7636
  }
@@ -7049,8 +7678,7 @@ message ListConnectionsRequest {
7049
7678
  // results. If set, all other request fields must match the original request.
7050
7679
  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
7051
7680
 
7052
- // Optional. * Supported fields/values
7053
- // - `state` - MISSING|AVAILABLE|ERROR
7681
+ // Optional. Supported field/value: `state` - MISSING|AVAILABLE|ERROR
7054
7682
  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
7055
7683
  }
7056
7684
 
@@ -7072,8 +7700,7 @@ message SearchConnectionsRequest {
7072
7700
  // results. If set, all other request fields must match the original request.
7073
7701
  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
7074
7702
 
7075
- // Optional. * Supported fields/values
7076
- // - `state` - MISSING|AVAILABLE|ERROR
7703
+ // Optional. Supported field/value: - `state` - MISSING|AVAILABLE|ERROR
7077
7704
  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
7078
7705
  }
7079
7706
 
@@ -7168,10 +7795,10 @@ enum ConnectionState {
7168
7795
  // A configured connection that encountered errors during its last use. It
7169
7796
  // will not be used again until it is set to AVAILABLE.
7170
7797
  //
7171
- // If the resolution requires external action, then a request to set the
7172
- // status to AVAILABLE will mark this connection for use. Otherwise, any
7173
- // changes to the connection properties will automatically mark it as
7174
- // AVAILABLE.
7798
+ // If the resolution requires external action, then the client must send a
7799
+ // request to set the status to AVAILABLE when the connection is ready for
7800
+ // use. If the resolution doesn't require external action, then any changes to
7801
+ // the connection properties will automatically mark it as AVAILABLE.
7175
7802
  ERROR = 3;
7176
7803
  }
7177
7804
 
@@ -7189,8 +7816,8 @@ message SecretManagerCredential {
7189
7816
  [(google.api.field_behavior) = REQUIRED];
7190
7817
  }
7191
7818
 
7192
- // Use IAM auth to connect. This requires the Cloud SQL IAM feature to be
7193
- // enabled on the instance, which is not the default for Cloud SQL.
7819
+ // Use IAM authentication to connect. This requires the Cloud SQL IAM feature
7820
+ // to be enabled on the instance, which is not the default for Cloud SQL.
7194
7821
  // See https://cloud.google.com/sql/docs/postgres/authentication and
7195
7822
  // https://cloud.google.com/sql/docs/mysql/authentication.
7196
7823
  message CloudSqlIamCredential {}
@@ -7200,13 +7827,13 @@ message CloudSqlProperties {
7200
7827
  // Database engine of a Cloud SQL instance.
7201
7828
  // New values may be added over time.
7202
7829
  enum DatabaseEngine {
7203
- // An engine that is not currently supported by SDP.
7830
+ // An engine that is not currently supported by Sensitive Data Protection.
7204
7831
  DATABASE_ENGINE_UNKNOWN = 0;
7205
7832
 
7206
7833
  // Cloud SQL for MySQL instance.
7207
7834
  DATABASE_ENGINE_MYSQL = 1;
7208
7835
 
7209
- // Cloud SQL for Postgres instance.
7836
+ // Cloud SQL for PostgreSQL instance.
7210
7837
  DATABASE_ENGINE_POSTGRES = 2;
7211
7838
  }
7212
7839
 
@@ -7260,3 +7887,46 @@ message DataSourceType {
7260
7887
  // Current values: google/bigquery/table, google/project
7261
7888
  string data_source = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
7262
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
+ }