google-apis-dlp_v2 0.67.0 → 0.69.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.
@@ -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