google-apis-dlp_v2 0.67.0 → 0.69.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -188,6 +188,19 @@ module Google
188
188
  end
189
189
  end
190
190
 
191
+ # Match discovery resources not covered by any other filter.
192
+ class GooglePrivacyDlpV2AllOtherResources
193
+ include Google::Apis::Core::Hashable
194
+
195
+ def initialize(**args)
196
+ update!(**args)
197
+ end
198
+
199
+ # Update properties of this object
200
+ def update!(**args)
201
+ end
202
+ end
203
+
191
204
  # Apply to all text.
192
205
  class GooglePrivacyDlpV2AllText
193
206
  include Google::Apis::Core::Hashable
@@ -1042,6 +1055,47 @@ module Google
1042
1055
  end
1043
1056
  end
1044
1057
 
1058
+ # Target used to match against for discovery with Cloud Storage buckets.
1059
+ class GooglePrivacyDlpV2CloudStorageDiscoveryTarget
1060
+ include Google::Apis::Core::Hashable
1061
+
1062
+ # Requirements that must be true before a file store is scanned in discovery for
1063
+ # the first time. There is an AND relationship between the top-level attributes.
1064
+ # Corresponds to the JSON property `conditions`
1065
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DiscoveryFileStoreConditions]
1066
+ attr_accessor :conditions
1067
+
1068
+ # Do not profile the tables.
1069
+ # Corresponds to the JSON property `disabled`
1070
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Disabled]
1071
+ attr_accessor :disabled
1072
+
1073
+ # Determines which buckets will have profiles generated within an organization
1074
+ # or project. Includes the ability to filter by regular expression patterns on
1075
+ # project ID and bucket name.
1076
+ # Corresponds to the JSON property `filter`
1077
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DiscoveryCloudStorageFilter]
1078
+ attr_accessor :filter
1079
+
1080
+ # How often existing buckets should have their profiles refreshed. New buckets
1081
+ # are scanned as quickly as possible depending on system capacity.
1082
+ # Corresponds to the JSON property `generationCadence`
1083
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DiscoveryCloudStorageGenerationCadence]
1084
+ attr_accessor :generation_cadence
1085
+
1086
+ def initialize(**args)
1087
+ update!(**args)
1088
+ end
1089
+
1090
+ # Update properties of this object
1091
+ def update!(**args)
1092
+ @conditions = args[:conditions] if args.key?(:conditions)
1093
+ @disabled = args[:disabled] if args.key?(:disabled)
1094
+ @filter = args[:filter] if args.key?(:filter)
1095
+ @generation_cadence = args[:generation_cadence] if args.key?(:generation_cadence)
1096
+ end
1097
+ end
1098
+
1045
1099
  # Message representing a set of files in Cloud Storage.
1046
1100
  class GooglePrivacyDlpV2CloudStorageFileSet
1047
1101
  include Google::Apis::Core::Hashable
@@ -1150,6 +1204,36 @@ module Google
1150
1204
  end
1151
1205
  end
1152
1206
 
1207
+ # A pattern to match against one or more file stores. At least one pattern must
1208
+ # be specified. Regular expressions use RE2 [syntax](https://github.com/google/
1209
+ # re2/wiki/Syntax); a guide can be found under the google/re2 repository on
1210
+ # GitHub.
1211
+ class GooglePrivacyDlpV2CloudStorageRegex
1212
+ include Google::Apis::Core::Hashable
1213
+
1214
+ # Optional. Regex to test the bucket name against. If empty, all buckets match.
1215
+ # Example: "marketing2021" or "(marketing)\d`4`" will both match the bucket gs://
1216
+ # marketing2021
1217
+ # Corresponds to the JSON property `bucketNameRegex`
1218
+ # @return [String]
1219
+ attr_accessor :bucket_name_regex
1220
+
1221
+ # Optional. For organizations, if unset, will match all projects.
1222
+ # Corresponds to the JSON property `projectIdRegex`
1223
+ # @return [String]
1224
+ attr_accessor :project_id_regex
1225
+
1226
+ def initialize(**args)
1227
+ update!(**args)
1228
+ end
1229
+
1230
+ # Update properties of this object
1231
+ def update!(**args)
1232
+ @bucket_name_regex = args[:bucket_name_regex] if args.key?(:bucket_name_regex)
1233
+ @project_id_regex = args[:project_id_regex] if args.key?(:project_id_regex)
1234
+ end
1235
+ end
1236
+
1153
1237
  # Message representing a set of files in a Cloud Storage bucket. Regular
1154
1238
  # expressions are used to allow fine-grained control over which files in the
1155
1239
  # bucket to include. Included files are those that match at least one item in `
@@ -1209,6 +1293,32 @@ module Google
1209
1293
  end
1210
1294
  end
1211
1295
 
1296
+ # Identifies a single Cloud Storage bucket.
1297
+ class GooglePrivacyDlpV2CloudStorageResourceReference
1298
+ include Google::Apis::Core::Hashable
1299
+
1300
+ # Required. The bucket to scan.
1301
+ # Corresponds to the JSON property `bucketName`
1302
+ # @return [String]
1303
+ attr_accessor :bucket_name
1304
+
1305
+ # Required. If within a project-level config, then this must match the config's
1306
+ # project id.
1307
+ # Corresponds to the JSON property `projectId`
1308
+ # @return [String]
1309
+ attr_accessor :project_id
1310
+
1311
+ def initialize(**args)
1312
+ update!(**args)
1313
+ end
1314
+
1315
+ # Update properties of this object
1316
+ def update!(**args)
1317
+ @bucket_name = args[:bucket_name] if args.key?(:bucket_name)
1318
+ @project_id = args[:project_id] if args.key?(:project_id)
1319
+ end
1320
+ end
1321
+
1212
1322
  # Represents a color in the RGB color space.
1213
1323
  class GooglePrivacyDlpV2Color
1214
1324
  include Google::Apis::Core::Hashable
@@ -2193,6 +2303,11 @@ module Google
2193
2303
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ColumnDataProfile]
2194
2304
  attr_accessor :column_profile
2195
2305
 
2306
+ # The profile for a file store. * Cloud Storage: maps 1:1 with a bucket.
2307
+ # Corresponds to the JSON property `fileStoreProfile`
2308
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FileStoreDataProfile]
2309
+ attr_accessor :file_store_profile
2310
+
2196
2311
  # The profile for a scanned table.
2197
2312
  # Corresponds to the JSON property `tableProfile`
2198
2313
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TableDataProfile]
@@ -2205,6 +2320,7 @@ module Google
2205
2320
  # Update properties of this object
2206
2321
  def update!(**args)
2207
2322
  @column_profile = args[:column_profile] if args.key?(:column_profile)
2323
+ @file_store_profile = args[:file_store_profile] if args.key?(:file_store_profile)
2208
2324
  @table_profile = args[:table_profile] if args.key?(:table_profile)
2209
2325
  end
2210
2326
  end
@@ -2317,7 +2433,7 @@ module Google
2317
2433
  class GooglePrivacyDlpV2DataProfileLocation
2318
2434
  include Google::Apis::Core::Hashable
2319
2435
 
2320
- # The ID of the Folder within an organization to scan.
2436
+ # The ID of the folder within an organization to scan.
2321
2437
  # Corresponds to the JSON property `folderId`
2322
2438
  # @return [Fixnum]
2323
2439
  attr_accessor :folder_id
@@ -2368,6 +2484,11 @@ module Google
2368
2484
  # @return [String]
2369
2485
  attr_accessor :event
2370
2486
 
2487
+ # The profile for a file store. * Cloud Storage: maps 1:1 with a bucket.
2488
+ # Corresponds to the JSON property `fileStoreProfile`
2489
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FileStoreDataProfile]
2490
+ attr_accessor :file_store_profile
2491
+
2371
2492
  # The profile for a scanned table.
2372
2493
  # Corresponds to the JSON property `profile`
2373
2494
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TableDataProfile]
@@ -2380,6 +2501,7 @@ module Google
2380
2501
  # Update properties of this object
2381
2502
  def update!(**args)
2382
2503
  @event = args[:event] if args.key?(:event)
2504
+ @file_store_profile = args[:file_store_profile] if args.key?(:file_store_profile)
2383
2505
  @profile = args[:profile] if args.key?(:profile)
2384
2506
  end
2385
2507
  end
@@ -2703,7 +2825,7 @@ module Google
2703
2825
  include Google::Apis::Core::Hashable
2704
2826
 
2705
2827
  # Required. User settable Cloud Storage bucket and folders to store de-
2706
- # identified files. This field must be set for cloud storage deidentification.
2828
+ # identified files. This field must be set for Cloud Storage deidentification.
2707
2829
  # The output Cloud Storage bucket must be different from the input bucket. De-
2708
2830
  # identified files will overwrite files in the output path. Form of: gs://bucket/
2709
2831
  # folder/ or gs://bucket
@@ -2712,11 +2834,11 @@ module Google
2712
2834
  attr_accessor :cloud_storage_output
2713
2835
 
2714
2836
  # List of user-specified file type groups to transform. If specified, only the
2715
- # files with these filetypes will be transformed. If empty, all supported files
2837
+ # files with these file types will be transformed. If empty, all supported files
2716
2838
  # will be transformed. Supported types may be automatically added over time. If
2717
2839
  # a file type is set in this field that isn't supported by the Deidentify action
2718
2840
  # then the job will fail and will not be successfully created/started. Currently
2719
- # the only filetypes supported are: IMAGES, TEXT_FILES, CSV, TSV.
2841
+ # the only file types supported are: IMAGES, TEXT_FILES, CSV, TSV.
2720
2842
  # Corresponds to the JSON property `fileTypesToTransform`
2721
2843
  # @return [Array<String>]
2722
2844
  attr_accessor :file_types_to_transform
@@ -3372,6 +3494,99 @@ module Google
3372
3494
  end
3373
3495
  end
3374
3496
 
3497
+ # Requirements that must be true before a Cloud Storage bucket or object is
3498
+ # scanned in discovery for the first time. There is an AND relationship between
3499
+ # the top-level attributes.
3500
+ class GooglePrivacyDlpV2DiscoveryCloudStorageConditions
3501
+ include Google::Apis::Core::Hashable
3502
+
3503
+ # Required. Only objects with the specified attributes will be scanned. Defaults
3504
+ # to [ALL_SUPPORTED_BUCKETS] if unset.
3505
+ # Corresponds to the JSON property `includedBucketAttributes`
3506
+ # @return [Array<String>]
3507
+ attr_accessor :included_bucket_attributes
3508
+
3509
+ # Required. Only objects with the specified attributes will be scanned. If an
3510
+ # object has one of the specified attributes but is inside an excluded bucket,
3511
+ # it will not be scanned. Defaults to [ALL_SUPPORTED_OBJECTS]. A profile will be
3512
+ # created even if no objects match the included_object_attributes.
3513
+ # Corresponds to the JSON property `includedObjectAttributes`
3514
+ # @return [Array<String>]
3515
+ attr_accessor :included_object_attributes
3516
+
3517
+ def initialize(**args)
3518
+ update!(**args)
3519
+ end
3520
+
3521
+ # Update properties of this object
3522
+ def update!(**args)
3523
+ @included_bucket_attributes = args[:included_bucket_attributes] if args.key?(:included_bucket_attributes)
3524
+ @included_object_attributes = args[:included_object_attributes] if args.key?(:included_object_attributes)
3525
+ end
3526
+ end
3527
+
3528
+ # Determines which buckets will have profiles generated within an organization
3529
+ # or project. Includes the ability to filter by regular expression patterns on
3530
+ # project ID and bucket name.
3531
+ class GooglePrivacyDlpV2DiscoveryCloudStorageFilter
3532
+ include Google::Apis::Core::Hashable
3533
+
3534
+ # Identifies a single Cloud Storage bucket.
3535
+ # Corresponds to the JSON property `cloudStorageResourceReference`
3536
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CloudStorageResourceReference]
3537
+ attr_accessor :cloud_storage_resource_reference
3538
+
3539
+ # Match file stores (e.g. buckets) using regex filters.
3540
+ # Corresponds to the JSON property `collection`
3541
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FileStoreCollection]
3542
+ attr_accessor :collection
3543
+
3544
+ # Match discovery resources not covered by any other filter.
3545
+ # Corresponds to the JSON property `others`
3546
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2AllOtherResources]
3547
+ attr_accessor :others
3548
+
3549
+ def initialize(**args)
3550
+ update!(**args)
3551
+ end
3552
+
3553
+ # Update properties of this object
3554
+ def update!(**args)
3555
+ @cloud_storage_resource_reference = args[:cloud_storage_resource_reference] if args.key?(:cloud_storage_resource_reference)
3556
+ @collection = args[:collection] if args.key?(:collection)
3557
+ @others = args[:others] if args.key?(:others)
3558
+ end
3559
+ end
3560
+
3561
+ # How often existing buckets should have their profiles refreshed. New buckets
3562
+ # are scanned as quickly as possible depending on system capacity.
3563
+ class GooglePrivacyDlpV2DiscoveryCloudStorageGenerationCadence
3564
+ include Google::Apis::Core::Hashable
3565
+
3566
+ # The cadence at which to update data profiles when the inspection rules defined
3567
+ # by the `InspectTemplate` change.
3568
+ # Corresponds to the JSON property `inspectTemplateModifiedCadence`
3569
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DiscoveryInspectTemplateModifiedCadence]
3570
+ attr_accessor :inspect_template_modified_cadence
3571
+
3572
+ # Optional. Data changes in Cloud Storage can't trigger reprofiling. If you set
3573
+ # this field, profiles are refreshed at this frequency regardless of whether the
3574
+ # underlying buckets have changed. Defaults to never.
3575
+ # Corresponds to the JSON property `refreshFrequency`
3576
+ # @return [String]
3577
+ attr_accessor :refresh_frequency
3578
+
3579
+ def initialize(**args)
3580
+ update!(**args)
3581
+ end
3582
+
3583
+ # Update properties of this object
3584
+ def update!(**args)
3585
+ @inspect_template_modified_cadence = args[:inspect_template_modified_cadence] if args.key?(:inspect_template_modified_cadence)
3586
+ @refresh_frequency = args[:refresh_frequency] if args.key?(:refresh_frequency)
3587
+ end
3588
+ end
3589
+
3375
3590
  # Configuration for discovery to scan resources for profile generation. Only one
3376
3591
  # discovery configuration may exist per organization, folder, or project. The
3377
3592
  # generated data profiles are retained according to the [data retention policy] (
@@ -3469,12 +3684,54 @@ module Google
3469
3684
  end
3470
3685
  end
3471
3686
 
3687
+ # Requirements that must be true before a file store is scanned in discovery for
3688
+ # the first time. There is an AND relationship between the top-level attributes.
3689
+ class GooglePrivacyDlpV2DiscoveryFileStoreConditions
3690
+ include Google::Apis::Core::Hashable
3691
+
3692
+ # Requirements that must be true before a Cloud Storage bucket or object is
3693
+ # scanned in discovery for the first time. There is an AND relationship between
3694
+ # the top-level attributes.
3695
+ # Corresponds to the JSON property `cloudStorageConditions`
3696
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DiscoveryCloudStorageConditions]
3697
+ attr_accessor :cloud_storage_conditions
3698
+
3699
+ # Optional. File store must have been created after this date. Used to avoid
3700
+ # backfilling.
3701
+ # Corresponds to the JSON property `createdAfter`
3702
+ # @return [String]
3703
+ attr_accessor :created_after
3704
+
3705
+ # Optional. Minimum age a file store must have. If set, the value must be 1 hour
3706
+ # or greater.
3707
+ # Corresponds to the JSON property `minAge`
3708
+ # @return [String]
3709
+ attr_accessor :min_age
3710
+
3711
+ def initialize(**args)
3712
+ update!(**args)
3713
+ end
3714
+
3715
+ # Update properties of this object
3716
+ def update!(**args)
3717
+ @cloud_storage_conditions = args[:cloud_storage_conditions] if args.key?(:cloud_storage_conditions)
3718
+ @created_after = args[:created_after] if args.key?(:created_after)
3719
+ @min_age = args[:min_age] if args.key?(:min_age)
3720
+ end
3721
+ end
3722
+
3472
3723
  # What must take place for a profile to be updated and how frequently it should
3473
3724
  # occur. New tables are scanned as quickly as possible depending on system
3474
3725
  # capacity.
3475
3726
  class GooglePrivacyDlpV2DiscoveryGenerationCadence
3476
3727
  include Google::Apis::Core::Hashable
3477
3728
 
3729
+ # The cadence at which to update data profiles when the inspection rules defined
3730
+ # by the `InspectTemplate` change.
3731
+ # Corresponds to the JSON property `inspectTemplateModifiedCadence`
3732
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DiscoveryInspectTemplateModifiedCadence]
3733
+ attr_accessor :inspect_template_modified_cadence
3734
+
3478
3735
  # The cadence at which to update data profiles when a schema is modified.
3479
3736
  # Corresponds to the JSON property `schemaModifiedCadence`
3480
3737
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DiscoverySchemaModifiedCadence]
@@ -3491,11 +3748,33 @@ module Google
3491
3748
 
3492
3749
  # Update properties of this object
3493
3750
  def update!(**args)
3751
+ @inspect_template_modified_cadence = args[:inspect_template_modified_cadence] if args.key?(:inspect_template_modified_cadence)
3494
3752
  @schema_modified_cadence = args[:schema_modified_cadence] if args.key?(:schema_modified_cadence)
3495
3753
  @table_modified_cadence = args[:table_modified_cadence] if args.key?(:table_modified_cadence)
3496
3754
  end
3497
3755
  end
3498
3756
 
3757
+ # The cadence at which to update data profiles when the inspection rules defined
3758
+ # by the `InspectTemplate` change.
3759
+ class GooglePrivacyDlpV2DiscoveryInspectTemplateModifiedCadence
3760
+ include Google::Apis::Core::Hashable
3761
+
3762
+ # How frequently data profiles can be updated when the template is modified.
3763
+ # Defaults to never.
3764
+ # Corresponds to the JSON property `frequency`
3765
+ # @return [String]
3766
+ attr_accessor :frequency
3767
+
3768
+ def initialize(**args)
3769
+ update!(**args)
3770
+ end
3771
+
3772
+ # Update properties of this object
3773
+ def update!(**args)
3774
+ @frequency = args[:frequency] if args.key?(:frequency)
3775
+ end
3776
+ end
3777
+
3499
3778
  # The cadence at which to update data profiles when a schema is modified.
3500
3779
  class GooglePrivacyDlpV2DiscoverySchemaModifiedCadence
3501
3780
  include Google::Apis::Core::Hashable
@@ -3528,7 +3807,7 @@ module Google
3528
3807
  class GooglePrivacyDlpV2DiscoveryStartingLocation
3529
3808
  include Google::Apis::Core::Hashable
3530
3809
 
3531
- # The ID of the Folder within an organization to scan.
3810
+ # The ID of the folder within an organization to scan.
3532
3811
  # Corresponds to the JSON property `folderId`
3533
3812
  # @return [Fixnum]
3534
3813
  attr_accessor :folder_id
@@ -3590,6 +3869,11 @@ module Google
3590
3869
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CloudSqlDiscoveryTarget]
3591
3870
  attr_accessor :cloud_sql_target
3592
3871
 
3872
+ # Target used to match against for discovery with Cloud Storage buckets.
3873
+ # Corresponds to the JSON property `cloudStorageTarget`
3874
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CloudStorageDiscoveryTarget]
3875
+ attr_accessor :cloud_storage_target
3876
+
3593
3877
  # Discovery target for credentials and secrets in cloud resource metadata. This
3594
3878
  # target does not include any filtering or frequency controls. Cloud DLP will
3595
3879
  # scan cloud resource metadata for secrets daily. No inspect template should be
@@ -3610,6 +3894,7 @@ module Google
3610
3894
  def update!(**args)
3611
3895
  @big_query_target = args[:big_query_target] if args.key?(:big_query_target)
3612
3896
  @cloud_sql_target = args[:cloud_sql_target] if args.key?(:cloud_sql_target)
3897
+ @cloud_storage_target = args[:cloud_storage_target] if args.key?(:cloud_storage_target)
3613
3898
  @secrets_target = args[:secrets_target] if args.key?(:secrets_target)
3614
3899
  end
3615
3900
  end
@@ -3758,6 +4043,11 @@ module Google
3758
4043
  # @return [Google::Apis::DlpV2::GoogleRpcStatus]
3759
4044
  attr_accessor :details
3760
4045
 
4046
+ # Additional information about the error.
4047
+ # Corresponds to the JSON property `extraInfo`
4048
+ # @return [String]
4049
+ attr_accessor :extra_info
4050
+
3761
4051
  # The times the error occurred. List includes the oldest timestamp and the last
3762
4052
  # 9 timestamps.
3763
4053
  # Corresponds to the JSON property `timestamps`
@@ -3771,6 +4061,7 @@ module Google
3771
4061
  # Update properties of this object
3772
4062
  def update!(**args)
3773
4063
  @details = args[:details] if args.key?(:details)
4064
+ @extra_info = args[:extra_info] if args.key?(:extra_info)
3774
4065
  @timestamps = args[:timestamps] if args.key?(:timestamps)
3775
4066
  end
3776
4067
  end
@@ -4000,6 +4291,111 @@ module Google
4000
4291
  end
4001
4292
  end
4002
4293
 
4294
+ # The file cluster summary.
4295
+ class GooglePrivacyDlpV2FileClusterSummary
4296
+ include Google::Apis::Core::Hashable
4297
+
4298
+ # Score is a summary of all elements in the data profile. A higher number means
4299
+ # more risk.
4300
+ # Corresponds to the JSON property `dataRiskLevel`
4301
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DataRiskLevel]
4302
+ attr_accessor :data_risk_level
4303
+
4304
+ # A list of errors detected while scanning this cluster. The list is truncated
4305
+ # to 10 per cluster.
4306
+ # Corresponds to the JSON property `errors`
4307
+ # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Error>]
4308
+ attr_accessor :errors
4309
+
4310
+ # Message used to identify file cluster type being profiled.
4311
+ # Corresponds to the JSON property `fileClusterType`
4312
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FileClusterType]
4313
+ attr_accessor :file_cluster_type
4314
+
4315
+ # A sample of file types scanned in this cluster. Empty if no files were scanned.
4316
+ # Corresponds to the JSON property `fileExtensionsScanned`
4317
+ # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FileExtensionInfo>]
4318
+ attr_accessor :file_extensions_scanned
4319
+
4320
+ # A sample of file types seen in this cluster. Empty if no files were seen.
4321
+ # Corresponds to the JSON property `fileExtensionsSeen`
4322
+ # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FileExtensionInfo>]
4323
+ attr_accessor :file_extensions_seen
4324
+
4325
+ # InfoTypes detected in this cluster.
4326
+ # Corresponds to the JSON property `fileStoreInfoTypeSummaries`
4327
+ # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FileStoreInfoTypeSummary>]
4328
+ attr_accessor :file_store_info_type_summaries
4329
+
4330
+ # True if no files exist in this cluster. If the bucket had more files than
4331
+ # could be listed, this will be false even if no files for this cluster were
4332
+ # seen and file_extensions_seen is empty.
4333
+ # Corresponds to the JSON property `noFilesExist`
4334
+ # @return [Boolean]
4335
+ attr_accessor :no_files_exist
4336
+ alias_method :no_files_exist?, :no_files_exist
4337
+
4338
+ # Score is calculated from of all elements in the data profile. A higher level
4339
+ # means the data is more sensitive.
4340
+ # Corresponds to the JSON property `sensitivityScore`
4341
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2SensitivityScore]
4342
+ attr_accessor :sensitivity_score
4343
+
4344
+ def initialize(**args)
4345
+ update!(**args)
4346
+ end
4347
+
4348
+ # Update properties of this object
4349
+ def update!(**args)
4350
+ @data_risk_level = args[:data_risk_level] if args.key?(:data_risk_level)
4351
+ @errors = args[:errors] if args.key?(:errors)
4352
+ @file_cluster_type = args[:file_cluster_type] if args.key?(:file_cluster_type)
4353
+ @file_extensions_scanned = args[:file_extensions_scanned] if args.key?(:file_extensions_scanned)
4354
+ @file_extensions_seen = args[:file_extensions_seen] if args.key?(:file_extensions_seen)
4355
+ @file_store_info_type_summaries = args[:file_store_info_type_summaries] if args.key?(:file_store_info_type_summaries)
4356
+ @no_files_exist = args[:no_files_exist] if args.key?(:no_files_exist)
4357
+ @sensitivity_score = args[:sensitivity_score] if args.key?(:sensitivity_score)
4358
+ end
4359
+ end
4360
+
4361
+ # Message used to identify file cluster type being profiled.
4362
+ class GooglePrivacyDlpV2FileClusterType
4363
+ include Google::Apis::Core::Hashable
4364
+
4365
+ # Cluster type.
4366
+ # Corresponds to the JSON property `cluster`
4367
+ # @return [String]
4368
+ attr_accessor :cluster
4369
+
4370
+ def initialize(**args)
4371
+ update!(**args)
4372
+ end
4373
+
4374
+ # Update properties of this object
4375
+ def update!(**args)
4376
+ @cluster = args[:cluster] if args.key?(:cluster)
4377
+ end
4378
+ end
4379
+
4380
+ # Information regarding the discovered file extension.
4381
+ class GooglePrivacyDlpV2FileExtensionInfo
4382
+ include Google::Apis::Core::Hashable
4383
+
4384
+ # The file extension if set. (aka .pdf, .jpg, .txt)
4385
+ # Corresponds to the JSON property `fileExtension`
4386
+ # @return [String]
4387
+ attr_accessor :file_extension
4388
+
4389
+ def initialize(**args)
4390
+ update!(**args)
4391
+ end
4392
+
4393
+ # Update properties of this object
4394
+ def update!(**args)
4395
+ @file_extension = args[:file_extension] if args.key?(:file_extension)
4396
+ end
4397
+ end
4398
+
4003
4399
  # Set of files to scan.
4004
4400
  class GooglePrivacyDlpV2FileSet
4005
4401
  include Google::Apis::Core::Hashable
@@ -4049,6 +4445,253 @@ module Google
4049
4445
  end
4050
4446
  end
4051
4447
 
4448
+ # Match file stores (e.g. buckets) using regex filters.
4449
+ class GooglePrivacyDlpV2FileStoreCollection
4450
+ include Google::Apis::Core::Hashable
4451
+
4452
+ # A collection of regular expressions to determine what file store to match
4453
+ # against.
4454
+ # Corresponds to the JSON property `includeRegexes`
4455
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FileStoreRegexes]
4456
+ attr_accessor :include_regexes
4457
+
4458
+ def initialize(**args)
4459
+ update!(**args)
4460
+ end
4461
+
4462
+ # Update properties of this object
4463
+ def update!(**args)
4464
+ @include_regexes = args[:include_regexes] if args.key?(:include_regexes)
4465
+ end
4466
+ end
4467
+
4468
+ # The profile for a file store. * Cloud Storage: maps 1:1 with a bucket.
4469
+ class GooglePrivacyDlpV2FileStoreDataProfile
4470
+ include Google::Apis::Core::Hashable
4471
+
4472
+ # Snapshot of the configurations used to generate the profile.
4473
+ # Corresponds to the JSON property `configSnapshot`
4474
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DataProfileConfigSnapshot]
4475
+ attr_accessor :config_snapshot
4476
+
4477
+ # The time the file store was first created.
4478
+ # Corresponds to the JSON property `createTime`
4479
+ # @return [String]
4480
+ attr_accessor :create_time
4481
+
4482
+ # Score is a summary of all elements in the data profile. A higher number means
4483
+ # more risk.
4484
+ # Corresponds to the JSON property `dataRiskLevel`
4485
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DataRiskLevel]
4486
+ attr_accessor :data_risk_level
4487
+
4488
+ # Message used to identify the type of resource being profiled.
4489
+ # Corresponds to the JSON property `dataSourceType`
4490
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DataSourceType]
4491
+ attr_accessor :data_source_type
4492
+
4493
+ # For resources that have multiple storage locations, these are those regions.
4494
+ # For Cloud Storage this is the list of regions chosen for dual-region storage. `
4495
+ # file_store_location` will normally be the corresponding multi-region for the
4496
+ # list of individual locations. The first region is always picked as the
4497
+ # processing and storage location for the data profile.
4498
+ # Corresponds to the JSON property `dataStorageLocations`
4499
+ # @return [Array<String>]
4500
+ attr_accessor :data_storage_locations
4501
+
4502
+ # FileClusterSummary per each cluster.
4503
+ # Corresponds to the JSON property `fileClusterSummaries`
4504
+ # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FileClusterSummary>]
4505
+ attr_accessor :file_cluster_summaries
4506
+
4507
+ # InfoTypes detected in this file store.
4508
+ # Corresponds to the JSON property `fileStoreInfoTypeSummaries`
4509
+ # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FileStoreInfoTypeSummary>]
4510
+ attr_accessor :file_store_info_type_summaries
4511
+
4512
+ # The file store does not have any files.
4513
+ # Corresponds to the JSON property `fileStoreIsEmpty`
4514
+ # @return [Boolean]
4515
+ attr_accessor :file_store_is_empty
4516
+ alias_method :file_store_is_empty?, :file_store_is_empty
4517
+
4518
+ # The location of the file store. * Cloud Storage: https://cloud.google.com/
4519
+ # storage/docs/locations#available-locations
4520
+ # Corresponds to the JSON property `fileStoreLocation`
4521
+ # @return [String]
4522
+ attr_accessor :file_store_location
4523
+
4524
+ # The file store path. * Cloud Storage: `gs://`bucket``
4525
+ # Corresponds to the JSON property `fileStorePath`
4526
+ # @return [String]
4527
+ attr_accessor :file_store_path
4528
+
4529
+ # The resource name of the resource profiled. https://cloud.google.com/apis/
4530
+ # design/resource_names#full_resource_name
4531
+ # Corresponds to the JSON property `fullResource`
4532
+ # @return [String]
4533
+ attr_accessor :full_resource
4534
+
4535
+ # The time the file store was last modified.
4536
+ # Corresponds to the JSON property `lastModifiedTime`
4537
+ # @return [String]
4538
+ attr_accessor :last_modified_time
4539
+
4540
+ # The location type of the bucket (region, dual-region, multi-region, etc). If
4541
+ # dual-region, expect data_storage_locations to be populated.
4542
+ # Corresponds to the JSON property `locationType`
4543
+ # @return [String]
4544
+ attr_accessor :location_type
4545
+
4546
+ # The name of the profile.
4547
+ # Corresponds to the JSON property `name`
4548
+ # @return [String]
4549
+ attr_accessor :name
4550
+
4551
+ # The last time the profile was generated.
4552
+ # Corresponds to the JSON property `profileLastGenerated`
4553
+ # @return [String]
4554
+ attr_accessor :profile_last_generated
4555
+
4556
+ # Success or errors for the profile generation.
4557
+ # Corresponds to the JSON property `profileStatus`
4558
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ProfileStatus]
4559
+ attr_accessor :profile_status
4560
+
4561
+ # The resource name of the project data profile for this file store.
4562
+ # Corresponds to the JSON property `projectDataProfile`
4563
+ # @return [String]
4564
+ attr_accessor :project_data_profile
4565
+
4566
+ # The Google Cloud project ID that owns the resource.
4567
+ # Corresponds to the JSON property `projectId`
4568
+ # @return [String]
4569
+ attr_accessor :project_id
4570
+
4571
+ # Attributes of the resource being profiled. Currently used attributes: *
4572
+ # customer_managed_encryption: boolean - true: the resource is encrypted with a
4573
+ # customer-managed key. - false: the resource is encrypted with a provider-
4574
+ # managed key.
4575
+ # Corresponds to the JSON property `resourceAttributes`
4576
+ # @return [Hash<String,Google::Apis::DlpV2::GooglePrivacyDlpV2Value>]
4577
+ attr_accessor :resource_attributes
4578
+
4579
+ # The labels applied to the resource at the time the profile was generated.
4580
+ # Corresponds to the JSON property `resourceLabels`
4581
+ # @return [Hash<String,String>]
4582
+ attr_accessor :resource_labels
4583
+
4584
+ # How broadly a resource has been shared.
4585
+ # Corresponds to the JSON property `resourceVisibility`
4586
+ # @return [String]
4587
+ attr_accessor :resource_visibility
4588
+
4589
+ # Score is calculated from of all elements in the data profile. A higher level
4590
+ # means the data is more sensitive.
4591
+ # Corresponds to the JSON property `sensitivityScore`
4592
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2SensitivityScore]
4593
+ attr_accessor :sensitivity_score
4594
+
4595
+ # State of a profile.
4596
+ # Corresponds to the JSON property `state`
4597
+ # @return [String]
4598
+ attr_accessor :state
4599
+
4600
+ def initialize(**args)
4601
+ update!(**args)
4602
+ end
4603
+
4604
+ # Update properties of this object
4605
+ def update!(**args)
4606
+ @config_snapshot = args[:config_snapshot] if args.key?(:config_snapshot)
4607
+ @create_time = args[:create_time] if args.key?(:create_time)
4608
+ @data_risk_level = args[:data_risk_level] if args.key?(:data_risk_level)
4609
+ @data_source_type = args[:data_source_type] if args.key?(:data_source_type)
4610
+ @data_storage_locations = args[:data_storage_locations] if args.key?(:data_storage_locations)
4611
+ @file_cluster_summaries = args[:file_cluster_summaries] if args.key?(:file_cluster_summaries)
4612
+ @file_store_info_type_summaries = args[:file_store_info_type_summaries] if args.key?(:file_store_info_type_summaries)
4613
+ @file_store_is_empty = args[:file_store_is_empty] if args.key?(:file_store_is_empty)
4614
+ @file_store_location = args[:file_store_location] if args.key?(:file_store_location)
4615
+ @file_store_path = args[:file_store_path] if args.key?(:file_store_path)
4616
+ @full_resource = args[:full_resource] if args.key?(:full_resource)
4617
+ @last_modified_time = args[:last_modified_time] if args.key?(:last_modified_time)
4618
+ @location_type = args[:location_type] if args.key?(:location_type)
4619
+ @name = args[:name] if args.key?(:name)
4620
+ @profile_last_generated = args[:profile_last_generated] if args.key?(:profile_last_generated)
4621
+ @profile_status = args[:profile_status] if args.key?(:profile_status)
4622
+ @project_data_profile = args[:project_data_profile] if args.key?(:project_data_profile)
4623
+ @project_id = args[:project_id] if args.key?(:project_id)
4624
+ @resource_attributes = args[:resource_attributes] if args.key?(:resource_attributes)
4625
+ @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
4626
+ @resource_visibility = args[:resource_visibility] if args.key?(:resource_visibility)
4627
+ @sensitivity_score = args[:sensitivity_score] if args.key?(:sensitivity_score)
4628
+ @state = args[:state] if args.key?(:state)
4629
+ end
4630
+ end
4631
+
4632
+ # Information regarding the discovered InfoType.
4633
+ class GooglePrivacyDlpV2FileStoreInfoTypeSummary
4634
+ include Google::Apis::Core::Hashable
4635
+
4636
+ # Type of information detected by the API.
4637
+ # Corresponds to the JSON property `infoType`
4638
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType]
4639
+ attr_accessor :info_type
4640
+
4641
+ def initialize(**args)
4642
+ update!(**args)
4643
+ end
4644
+
4645
+ # Update properties of this object
4646
+ def update!(**args)
4647
+ @info_type = args[:info_type] if args.key?(:info_type)
4648
+ end
4649
+ end
4650
+
4651
+ # A pattern to match against one or more file stores.
4652
+ class GooglePrivacyDlpV2FileStoreRegex
4653
+ include Google::Apis::Core::Hashable
4654
+
4655
+ # A pattern to match against one or more file stores. At least one pattern must
4656
+ # be specified. Regular expressions use RE2 [syntax](https://github.com/google/
4657
+ # re2/wiki/Syntax); a guide can be found under the google/re2 repository on
4658
+ # GitHub.
4659
+ # Corresponds to the JSON property `cloudStorageRegex`
4660
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CloudStorageRegex]
4661
+ attr_accessor :cloud_storage_regex
4662
+
4663
+ def initialize(**args)
4664
+ update!(**args)
4665
+ end
4666
+
4667
+ # Update properties of this object
4668
+ def update!(**args)
4669
+ @cloud_storage_regex = args[:cloud_storage_regex] if args.key?(:cloud_storage_regex)
4670
+ end
4671
+ end
4672
+
4673
+ # A collection of regular expressions to determine what file store to match
4674
+ # against.
4675
+ class GooglePrivacyDlpV2FileStoreRegexes
4676
+ include Google::Apis::Core::Hashable
4677
+
4678
+ # Required. The group of regular expression patterns to match against one or
4679
+ # more file stores. Maximum of 100 entries. The sum of all regular expression's
4680
+ # length can't exceed 10 KiB.
4681
+ # Corresponds to the JSON property `patterns`
4682
+ # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FileStoreRegex>]
4683
+ attr_accessor :patterns
4684
+
4685
+ def initialize(**args)
4686
+ update!(**args)
4687
+ end
4688
+
4689
+ # Update properties of this object
4690
+ def update!(**args)
4691
+ @patterns = args[:patterns] if args.key?(:patterns)
4692
+ end
4693
+ end
4694
+
4052
4695
  # Represents a piece of potentially sensitive content.
4053
4696
  class GooglePrivacyDlpV2Finding
4054
4697
  include Google::Apis::Core::Hashable
@@ -6062,6 +6705,31 @@ module Google
6062
6705
  end
6063
6706
  end
6064
6707
 
6708
+ # List of file store data profiles generated for a given organization or project.
6709
+ class GooglePrivacyDlpV2ListFileStoreDataProfilesResponse
6710
+ include Google::Apis::Core::Hashable
6711
+
6712
+ # List of data profiles.
6713
+ # Corresponds to the JSON property `fileStoreDataProfiles`
6714
+ # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FileStoreDataProfile>]
6715
+ attr_accessor :file_store_data_profiles
6716
+
6717
+ # The next page token.
6718
+ # Corresponds to the JSON property `nextPageToken`
6719
+ # @return [String]
6720
+ attr_accessor :next_page_token
6721
+
6722
+ def initialize(**args)
6723
+ update!(**args)
6724
+ end
6725
+
6726
+ # Update properties of this object
6727
+ def update!(**args)
6728
+ @file_store_data_profiles = args[:file_store_data_profiles] if args.key?(:file_store_data_profiles)
6729
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
6730
+ end
6731
+ end
6732
+
6065
6733
  # Response to the ListInfoTypes request.
6066
6734
  class GooglePrivacyDlpV2ListInfoTypesResponse
6067
6735
  include Google::Apis::Core::Hashable
@@ -6761,6 +7429,11 @@ module Google
6761
7429
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DataRiskLevel]
6762
7430
  attr_accessor :data_risk_level
6763
7431
 
7432
+ # The number of file store data profiles generated for this project.
7433
+ # Corresponds to the JSON property `fileStoreDataProfileCount`
7434
+ # @return [Fixnum]
7435
+ attr_accessor :file_store_data_profile_count
7436
+
6764
7437
  # The resource name of the profile.
6765
7438
  # Corresponds to the JSON property `name`
6766
7439
  # @return [String]
@@ -6787,6 +7460,11 @@ module Google
6787
7460
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2SensitivityScore]
6788
7461
  attr_accessor :sensitivity_score
6789
7462
 
7463
+ # The number of table data profiles generated for this project.
7464
+ # Corresponds to the JSON property `tableDataProfileCount`
7465
+ # @return [Fixnum]
7466
+ attr_accessor :table_data_profile_count
7467
+
6790
7468
  def initialize(**args)
6791
7469
  update!(**args)
6792
7470
  end
@@ -6794,11 +7472,13 @@ module Google
6794
7472
  # Update properties of this object
6795
7473
  def update!(**args)
6796
7474
  @data_risk_level = args[:data_risk_level] if args.key?(:data_risk_level)
7475
+ @file_store_data_profile_count = args[:file_store_data_profile_count] if args.key?(:file_store_data_profile_count)
6797
7476
  @name = args[:name] if args.key?(:name)
6798
7477
  @profile_last_generated = args[:profile_last_generated] if args.key?(:profile_last_generated)
6799
7478
  @profile_status = args[:profile_status] if args.key?(:profile_status)
6800
7479
  @project_id = args[:project_id] if args.key?(:project_id)
6801
7480
  @sensitivity_score = args[:sensitivity_score] if args.key?(:sensitivity_score)
7481
+ @table_data_profile_count = args[:table_data_profile_count] if args.key?(:table_data_profile_count)
6802
7482
  end
6803
7483
  end
6804
7484
 
@@ -8418,7 +9098,7 @@ module Google
8418
9098
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ProfileStatus]
8419
9099
  attr_accessor :profile_status
8420
9100
 
8421
- # The resource name to the project data profile for this table.
9101
+ # The resource name of the project data profile for this table.
8422
9102
  # Corresponds to the JSON property `projectDataProfile`
8423
9103
  # @return [String]
8424
9104
  attr_accessor :project_data_profile