google-apis-dlp_v2 0.27.0 → 0.30.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.
@@ -27,13 +27,28 @@ module Google
27
27
  class GooglePrivacyDlpV2Action
28
28
  include Google::Apis::Core::Hashable
29
29
 
30
- # Enable email notification to project owners and editors on jobs's completion/
31
- # failure.
30
+ # Create a de-identified copy of the requested table or files. A
31
+ # TransformationDetail will be created for each transformation. If any rows in
32
+ # BigQuery are skipped during de-identification (transformation errors or row
33
+ # size exceeds BigQuery insert API limits) they are placed in the failure output
34
+ # table. If the original row exceeds the BigQuery insert API limit it will be
35
+ # truncated when written to the failure output table. The failure output table
36
+ # can be set in the action.deidentify.output.big_query_output.
37
+ # deidentified_failure_output_table field, if no table is set, a table will be
38
+ # automatically created in the same project and dataset as the original table.
39
+ # Compatible with: Inspect
40
+ # Corresponds to the JSON property `deidentify`
41
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Deidentify]
42
+ attr_accessor :deidentify
43
+
44
+ # Sends an email when the job completes. The email goes to IAM project owners
45
+ # and technical [Essential Contacts](https://cloud.google.com/resource-manager/
46
+ # docs/managing-notification-contacts).
32
47
  # Corresponds to the JSON property `jobNotificationEmails`
33
48
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2JobNotificationEmails]
34
49
  attr_accessor :job_notification_emails
35
50
 
36
- # Publish a message into given Pub/Sub topic when DlpJob has completed. The
51
+ # Publish a message into a given Pub/Sub topic when DlpJob has completed. The
37
52
  # message contains a single field, `DlpJobName`, which is equal to the finished
38
53
  # job's [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/
39
54
  # projects.dlpJobs#DlpJob). Compatible with: Inspect, Risk
@@ -41,15 +56,19 @@ module Google
41
56
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2PublishToPubSub]
42
57
  attr_accessor :pub_sub
43
58
 
44
- # Publish findings of a DlpJob to Data Catalog. Labels summarizing the results
45
- # of the DlpJob will be applied to the entry for the resource scanned in Data
46
- # Catalog. Any labels previously written by another DlpJob will be deleted.
47
- # InfoType naming patterns are strictly enforced when using this feature. Note
48
- # that the findings will be persisted in Data Catalog storage and are governed
49
- # by Data Catalog service-specific policy, see https://cloud.google.com/terms/
50
- # service-terms Only a single instance of this action can be specified and only
51
- # allowed if all resources being scanned are BigQuery tables. Compatible with:
52
- # Inspect
59
+ # Publish findings of a DlpJob to Data Catalog. In Data Catalog, tag templates
60
+ # are applied to the resource that Cloud DLP scanned. Data Catalog tag templates
61
+ # are stored in the same project and region where the BigQuery table exists. For
62
+ # Cloud DLP to create and apply the tag template, the Cloud DLP service agent
63
+ # must have the `roles/datacatalog.tagTemplateOwner` permission on the project.
64
+ # The tag template contains fields summarizing the results of the DlpJob. Any
65
+ # field values previously written by another DlpJob are deleted. InfoType naming
66
+ # patterns are strictly enforced when using this feature. Findings are persisted
67
+ # in Data Catalog storage and are governed by service-specific policies for Data
68
+ # Catalog. For more information, see [Service Specific Terms](https://cloud.
69
+ # google.com/terms/service-terms). Only a single instance of this action can be
70
+ # specified. This action is allowed only if all resources being scanned are
71
+ # BigQuery tables. Compatible with: Inspect
53
72
  # Corresponds to the JSON property `publishFindingsToCloudDataCatalog`
54
73
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2PublishFindingsToCloudDataCatalog]
55
74
  attr_accessor :publish_findings_to_cloud_data_catalog
@@ -57,7 +76,7 @@ module Google
57
76
  # Publish the result summary of a DlpJob to the Cloud Security Command Center (
58
77
  # CSCC Alpha). This action is only available for projects which are parts of an
59
78
  # organization and whitelisted for the alpha Cloud Security Command Center. The
60
- # action will publish count of finding instances and their info types. The
79
+ # action will publish the count of finding instances and their info types. The
61
80
  # summary of findings will be persisted in CSCC and are governed by CSCC service-
62
81
  # specific policy, see https://cloud.google.com/terms/service-terms Only a
63
82
  # single instance of this action can be specified. Compatible with: Inspect
@@ -86,6 +105,7 @@ module Google
86
105
 
87
106
  # Update properties of this object
88
107
  def update!(**args)
108
+ @deidentify = args[:deidentify] if args.key?(:deidentify)
89
109
  @job_notification_emails = args[:job_notification_emails] if args.key?(:job_notification_emails)
90
110
  @pub_sub = args[:pub_sub] if args.key?(:pub_sub)
91
111
  @publish_findings_to_cloud_data_catalog = args[:publish_findings_to_cloud_data_catalog] if args.key?(:publish_findings_to_cloud_data_catalog)
@@ -108,6 +128,32 @@ module Google
108
128
  end
109
129
  end
110
130
 
131
+ # Apply transformation to all findings.
132
+ class GooglePrivacyDlpV2AllInfoTypes
133
+ include Google::Apis::Core::Hashable
134
+
135
+ def initialize(**args)
136
+ update!(**args)
137
+ end
138
+
139
+ # Update properties of this object
140
+ def update!(**args)
141
+ end
142
+ end
143
+
144
+ # Apply to all text.
145
+ class GooglePrivacyDlpV2AllText
146
+ include Google::Apis::Core::Hashable
147
+
148
+ def initialize(**args)
149
+ update!(**args)
150
+ end
151
+
152
+ # Update properties of this object
153
+ def update!(**args)
154
+ end
155
+ end
156
+
111
157
  # Result of a risk analysis operation request.
112
158
  class GooglePrivacyDlpV2AnalyzeDataSourceRiskDetails
113
159
  include Google::Apis::Core::Hashable
@@ -710,7 +756,7 @@ module Google
710
756
  end
711
757
  end
712
758
 
713
- # Options defining a file or a set of files within a Google Cloud Storage bucket.
759
+ # Options defining a file or a set of files within a Cloud Storage bucket.
714
760
  class GooglePrivacyDlpV2CloudStorageOptions
715
761
  include Google::Apis::Core::Hashable
716
762
 
@@ -954,8 +1000,7 @@ module Google
954
1000
  include Google::Apis::Core::Hashable
955
1001
 
956
1002
  # A string representation of the full container name. Examples: - BigQuery: '
957
- # Project:DataSetId.TableId' - Google Cloud Storage: 'gs://Bucket/folders/
958
- # filename.txt'
1003
+ # Project:DataSetId.TableId' - Cloud Storage: 'gs://Bucket/folders/filename.txt'
959
1004
  # Corresponds to the JSON property `fullPath`
960
1005
  # @return [String]
961
1006
  attr_accessor :full_path
@@ -967,34 +1012,34 @@ module Google
967
1012
  attr_accessor :project_id
968
1013
 
969
1014
  # The rest of the path after the root. Examples: - For BigQuery table `
970
- # project_id:dataset_id.table_id`, the relative path is `table_id` - Google
971
- # Cloud Storage file `gs://bucket/folder/filename.txt`, the relative path is `
972
- # folder/filename.txt`
1015
+ # project_id:dataset_id.table_id`, the relative path is `table_id` - For Cloud
1016
+ # Storage file `gs://bucket/folder/filename.txt`, the relative path is `folder/
1017
+ # filename.txt`
973
1018
  # Corresponds to the JSON property `relativePath`
974
1019
  # @return [String]
975
1020
  attr_accessor :relative_path
976
1021
 
977
1022
  # The root of the container. Examples: - For BigQuery table `project_id:
978
- # dataset_id.table_id`, the root is `dataset_id` - For Google Cloud Storage file
979
- # `gs://bucket/folder/filename.txt`, the root is `gs://bucket`
1023
+ # dataset_id.table_id`, the root is `dataset_id` - For Cloud Storage file `gs://
1024
+ # bucket/folder/filename.txt`, the root is `gs://bucket`
980
1025
  # Corresponds to the JSON property `rootPath`
981
1026
  # @return [String]
982
1027
  attr_accessor :root_path
983
1028
 
984
- # Container type, for example BigQuery or Google Cloud Storage.
1029
+ # Container type, for example BigQuery or Cloud Storage.
985
1030
  # Corresponds to the JSON property `type`
986
1031
  # @return [String]
987
1032
  attr_accessor :type
988
1033
 
989
- # Findings container modification timestamp, if applicable. For Google Cloud
990
- # Storage contains last file modification timestamp. For BigQuery table contains
991
- # last_modified_time property. For Datastore - not populated.
1034
+ # Findings container modification timestamp, if applicable. For Cloud Storage,
1035
+ # this field contains the last file modification timestamp. For a BigQuery table,
1036
+ # this field contains the last_modified_time property. For Datastore, this
1037
+ # field isn't populated.
992
1038
  # Corresponds to the JSON property `updateTime`
993
1039
  # @return [String]
994
1040
  attr_accessor :update_time
995
1041
 
996
- # Findings container version, if available ("generation" for Google Cloud
997
- # Storage).
1042
+ # Findings container version, if available ("generation" for Cloud Storage).
998
1043
  # Corresponds to the JSON property `version`
999
1044
  # @return [String]
1000
1045
  attr_accessor :version
@@ -1058,20 +1103,20 @@ module Google
1058
1103
  # formatted as follows: * BigQuery tables: ``project_id`:`dataset_id`.`table_id``
1059
1104
  # * Cloud Storage files: `gs://`bucket`/`path`` * Datastore namespace: `
1060
1105
  # namespace` Nested names could be absent if the embedded object has no string
1061
- # identifier (for an example an image contained within a document).
1106
+ # identifier (for example, an image contained within a document).
1062
1107
  # Corresponds to the JSON property `containerName`
1063
1108
  # @return [String]
1064
1109
  attr_accessor :container_name
1065
1110
 
1066
- # Findings container modification timestamp, if applicable. For Google Cloud
1067
- # Storage contains last file modification timestamp. For BigQuery table contains
1068
- # last_modified_time property. For Datastore - not populated.
1111
+ # Finding container modification timestamp, if applicable. For Cloud Storage,
1112
+ # this field contains the last file modification timestamp. For a BigQuery table,
1113
+ # this field contains the last_modified_time property. For Datastore, this
1114
+ # field isn't populated.
1069
1115
  # Corresponds to the JSON property `containerTimestamp`
1070
1116
  # @return [String]
1071
1117
  attr_accessor :container_timestamp
1072
1118
 
1073
- # Findings container version, if available ("generation" for Google Cloud
1074
- # Storage).
1119
+ # Finding container version, if available ("generation" for Cloud Storage).
1075
1120
  # Corresponds to the JSON property `containerVersion`
1076
1121
  # @return [String]
1077
1122
  attr_accessor :container_version
@@ -1711,10 +1756,10 @@ module Google
1711
1756
  end
1712
1757
  end
1713
1758
 
1714
- # The message that will be published to a Pub/Sub topic. To receive a message of
1715
- # protocol buffer schema type, convert the message data to an object of this
1716
- # proto class. https://cloud.google.com/pubsub/docs/samples/pubsub-subscribe-
1717
- # proto-messages
1759
+ # Pub/Sub topic message for a DataProfileAction.PubSubNotification event. To
1760
+ # receive a message of protocol buffer schema type, convert the message data to
1761
+ # an object of this proto class. https://cloud.google.com/pubsub/docs/samples/
1762
+ # pubsub-subscribe-proto-messages
1718
1763
  class GooglePrivacyDlpV2DataProfilePubSubMessage
1719
1764
  include Google::Apis::Core::Hashable
1720
1765
 
@@ -1740,7 +1785,7 @@ module Google
1740
1785
  end
1741
1786
 
1742
1787
  # Score is a summary of all elements in the data profile. A higher number means
1743
- # more risky.
1788
+ # more risk.
1744
1789
  class GooglePrivacyDlpV2DataRiskLevel
1745
1790
  include Google::Apis::Core::Hashable
1746
1791
 
@@ -1898,10 +1943,72 @@ module Google
1898
1943
  end
1899
1944
  end
1900
1945
 
1946
+ # Create a de-identified copy of the requested table or files. A
1947
+ # TransformationDetail will be created for each transformation. If any rows in
1948
+ # BigQuery are skipped during de-identification (transformation errors or row
1949
+ # size exceeds BigQuery insert API limits) they are placed in the failure output
1950
+ # table. If the original row exceeds the BigQuery insert API limit it will be
1951
+ # truncated when written to the failure output table. The failure output table
1952
+ # can be set in the action.deidentify.output.big_query_output.
1953
+ # deidentified_failure_output_table field, if no table is set, a table will be
1954
+ # automatically created in the same project and dataset as the original table.
1955
+ # Compatible with: Inspect
1956
+ class GooglePrivacyDlpV2Deidentify
1957
+ include Google::Apis::Core::Hashable
1958
+
1959
+ # Required. User settable Cloud Storage bucket and folders to store de-
1960
+ # identified files. This field must be set for cloud storage deidentification.
1961
+ # The output Cloud Storage bucket must be different from the input bucket. De-
1962
+ # identified files will overwrite files in the output path. Form of: gs://bucket/
1963
+ # folder/ or gs://bucket
1964
+ # Corresponds to the JSON property `cloudStorageOutput`
1965
+ # @return [String]
1966
+ attr_accessor :cloud_storage_output
1967
+
1968
+ # List of user-specified file type groups to transform. If specified, only the
1969
+ # files with these filetypes will be transformed. If empty, all supported files
1970
+ # will be transformed. Supported types may be automatically added over time. If
1971
+ # a file type is set in this field that isn't supported by the Deidentify action
1972
+ # then the job will fail and will not be successfully created/started. Currently
1973
+ # the only filetypes supported are: IMAGES, TEXT_FILES, CSV, TSV.
1974
+ # Corresponds to the JSON property `fileTypesToTransform`
1975
+ # @return [Array<String>]
1976
+ attr_accessor :file_types_to_transform
1977
+
1978
+ # User specified templates and configs for how to deidentify structured,
1979
+ # unstructures, and image files. User must provide either a unstructured
1980
+ # deidentify template or at least one redact image config.
1981
+ # Corresponds to the JSON property `transformationConfig`
1982
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TransformationConfig]
1983
+ attr_accessor :transformation_config
1984
+
1985
+ # Config for storing transformation details.
1986
+ # Corresponds to the JSON property `transformationDetailsStorageConfig`
1987
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TransformationDetailsStorageConfig]
1988
+ attr_accessor :transformation_details_storage_config
1989
+
1990
+ def initialize(**args)
1991
+ update!(**args)
1992
+ end
1993
+
1994
+ # Update properties of this object
1995
+ def update!(**args)
1996
+ @cloud_storage_output = args[:cloud_storage_output] if args.key?(:cloud_storage_output)
1997
+ @file_types_to_transform = args[:file_types_to_transform] if args.key?(:file_types_to_transform)
1998
+ @transformation_config = args[:transformation_config] if args.key?(:transformation_config)
1999
+ @transformation_details_storage_config = args[:transformation_details_storage_config] if args.key?(:transformation_details_storage_config)
2000
+ end
2001
+ end
2002
+
1901
2003
  # The configuration that controls how the data will change.
1902
2004
  class GooglePrivacyDlpV2DeidentifyConfig
1903
2005
  include Google::Apis::Core::Hashable
1904
2006
 
2007
+ # A type of transformation that is applied over images.
2008
+ # Corresponds to the JSON property `imageTransformations`
2009
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ImageTransformations]
2010
+ attr_accessor :image_transformations
2011
+
1905
2012
  # A type of transformation that will scan unstructured text and apply various `
1906
2013
  # PrimitiveTransformation`s to each finding, where the transformation is applied
1907
2014
  # to only values that were identified as a specific info_type.
@@ -1931,13 +2038,14 @@ module Google
1931
2038
 
1932
2039
  # Update properties of this object
1933
2040
  def update!(**args)
2041
+ @image_transformations = args[:image_transformations] if args.key?(:image_transformations)
1934
2042
  @info_type_transformations = args[:info_type_transformations] if args.key?(:info_type_transformations)
1935
2043
  @record_transformations = args[:record_transformations] if args.key?(:record_transformations)
1936
2044
  @transformation_error_handling = args[:transformation_error_handling] if args.key?(:transformation_error_handling)
1937
2045
  end
1938
2046
  end
1939
2047
 
1940
- # Request to de-identify a list of items.
2048
+ # Request to de-identify a ContentItem.
1941
2049
  class GooglePrivacyDlpV2DeidentifyContentRequest
1942
2050
  include Google::Apis::Core::Hashable
1943
2051
 
@@ -2427,7 +2535,7 @@ module Google
2427
2535
  end
2428
2536
  end
2429
2537
 
2430
- # List of exclude infoTypes.
2538
+ # List of excluded infoTypes.
2431
2539
  class GooglePrivacyDlpV2ExcludeInfoTypes
2432
2540
  include Google::Apis::Core::Hashable
2433
2541
 
@@ -2479,7 +2587,7 @@ module Google
2479
2587
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Dictionary]
2480
2588
  attr_accessor :dictionary
2481
2589
 
2482
- # List of exclude infoTypes.
2590
+ # List of excluded infoTypes.
2483
2591
  # Corresponds to the JSON property `excludeInfoTypes`
2484
2592
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ExcludeInfoTypes]
2485
2593
  attr_accessor :exclude_info_types
@@ -2529,7 +2637,7 @@ module Google
2529
2637
  end
2530
2638
  end
2531
2639
 
2532
- # An expression, consisting or an operator and conditions.
2640
+ # An expression, consisting of an operator and conditions.
2533
2641
  class GooglePrivacyDlpV2Expressions
2534
2642
  include Google::Apis::Core::Hashable
2535
2643
 
@@ -2767,7 +2875,10 @@ module Google
2767
2875
  end
2768
2876
 
2769
2877
  # Configuration to control the number of findings returned for inspection. This
2770
- # is not used for de-identification or data profiling.
2878
+ # is not used for de-identification or data profiling. When redacting sensitive
2879
+ # data from images, finding limits don't apply. They can cause unexpected or
2880
+ # inconsistent results, where only some data is redacted. Don't include finding
2881
+ # limits in RedactImage requests. Otherwise, Cloud DLP returns an error.
2771
2882
  class GooglePrivacyDlpV2FindingLimits
2772
2883
  include Google::Apis::Core::Hashable
2773
2884
 
@@ -3168,6 +3279,62 @@ module Google
3168
3279
  end
3169
3280
  end
3170
3281
 
3282
+ # Configuration for determining how redaction of images should occur.
3283
+ class GooglePrivacyDlpV2ImageTransformation
3284
+ include Google::Apis::Core::Hashable
3285
+
3286
+ # Apply transformation to all findings.
3287
+ # Corresponds to the JSON property `allInfoTypes`
3288
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2AllInfoTypes]
3289
+ attr_accessor :all_info_types
3290
+
3291
+ # Apply to all text.
3292
+ # Corresponds to the JSON property `allText`
3293
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2AllText]
3294
+ attr_accessor :all_text
3295
+
3296
+ # Represents a color in the RGB color space.
3297
+ # Corresponds to the JSON property `redactionColor`
3298
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Color]
3299
+ attr_accessor :redaction_color
3300
+
3301
+ # Apply transformation to the selected info_types.
3302
+ # Corresponds to the JSON property `selectedInfoTypes`
3303
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2SelectedInfoTypes]
3304
+ attr_accessor :selected_info_types
3305
+
3306
+ def initialize(**args)
3307
+ update!(**args)
3308
+ end
3309
+
3310
+ # Update properties of this object
3311
+ def update!(**args)
3312
+ @all_info_types = args[:all_info_types] if args.key?(:all_info_types)
3313
+ @all_text = args[:all_text] if args.key?(:all_text)
3314
+ @redaction_color = args[:redaction_color] if args.key?(:redaction_color)
3315
+ @selected_info_types = args[:selected_info_types] if args.key?(:selected_info_types)
3316
+ end
3317
+ end
3318
+
3319
+ # A type of transformation that is applied over images.
3320
+ class GooglePrivacyDlpV2ImageTransformations
3321
+ include Google::Apis::Core::Hashable
3322
+
3323
+ #
3324
+ # Corresponds to the JSON property `transforms`
3325
+ # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2ImageTransformation>]
3326
+ attr_accessor :transforms
3327
+
3328
+ def initialize(**args)
3329
+ update!(**args)
3330
+ end
3331
+
3332
+ # Update properties of this object
3333
+ def update!(**args)
3334
+ @transforms = args[:transforms] if args.key?(:transforms)
3335
+ end
3336
+ end
3337
+
3171
3338
  # Type of information detected by the API.
3172
3339
  class GooglePrivacyDlpV2InfoType
3173
3340
  include Google::Apis::Core::Hashable
@@ -3260,6 +3427,11 @@ module Google
3260
3427
  # @return [Array<String>]
3261
3428
  attr_accessor :supported_by
3262
3429
 
3430
+ # A list of available versions for the infotype.
3431
+ # Corresponds to the JSON property `versions`
3432
+ # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2VersionDescription>]
3433
+ attr_accessor :versions
3434
+
3263
3435
  def initialize(**args)
3264
3436
  update!(**args)
3265
3437
  end
@@ -3271,6 +3443,7 @@ module Google
3271
3443
  @display_name = args[:display_name] if args.key?(:display_name)
3272
3444
  @name = args[:name] if args.key?(:name)
3273
3445
  @supported_by = args[:supported_by] if args.key?(:supported_by)
3446
+ @versions = args[:versions] if args.key?(:versions)
3274
3447
  end
3275
3448
  end
3276
3449
 
@@ -3444,7 +3617,10 @@ module Google
3444
3617
  attr_accessor :info_types
3445
3618
 
3446
3619
  # Configuration to control the number of findings returned for inspection. This
3447
- # is not used for de-identification or data profiling.
3620
+ # is not used for de-identification or data profiling. When redacting sensitive
3621
+ # data from images, finding limits don't apply. They can cause unexpected or
3622
+ # inconsistent results, where only some data is redacted. Don't include finding
3623
+ # limits in RedactImage requests. Otherwise, Cloud DLP returns an error.
3448
3624
  # Corresponds to the JSON property `limits`
3449
3625
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FindingLimits]
3450
3626
  attr_accessor :limits
@@ -3743,8 +3919,9 @@ module Google
3743
3919
  end
3744
3920
  end
3745
3921
 
3746
- # Enable email notification to project owners and editors on jobs's completion/
3747
- # failure.
3922
+ # Sends an email when the job completes. The email goes to IAM project owners
3923
+ # and technical [Essential Contacts](https://cloud.google.com/resource-manager/
3924
+ # docs/managing-notification-contacts).
3748
3925
  class GooglePrivacyDlpV2JobNotificationEmails
3749
3926
  include Google::Apis::Core::Hashable
3750
3927
 
@@ -4320,8 +4497,8 @@ module Google
4320
4497
  # Configuration for a custom dictionary created from a data source of any size
4321
4498
  # up to the maximum size defined in the [limits](https://cloud.google.com/dlp/
4322
4499
  # limits) page. The artifacts of dictionary creation are stored in the specified
4323
- # Google Cloud Storage location. Consider using `CustomInfoType.Dictionary` for
4324
- # smaller dictionaries that satisfy the size requirements.
4500
+ # Cloud Storage location. Consider using `CustomInfoType.Dictionary` for smaller
4501
+ # dictionaries that satisfy the size requirements.
4325
4502
  class GooglePrivacyDlpV2LargeCustomDictionaryConfig
4326
4503
  include Google::Apis::Core::Hashable
4327
4504
 
@@ -5164,15 +5341,19 @@ module Google
5164
5341
  end
5165
5342
  end
5166
5343
 
5167
- # Publish findings of a DlpJob to Data Catalog. Labels summarizing the results
5168
- # of the DlpJob will be applied to the entry for the resource scanned in Data
5169
- # Catalog. Any labels previously written by another DlpJob will be deleted.
5170
- # InfoType naming patterns are strictly enforced when using this feature. Note
5171
- # that the findings will be persisted in Data Catalog storage and are governed
5172
- # by Data Catalog service-specific policy, see https://cloud.google.com/terms/
5173
- # service-terms Only a single instance of this action can be specified and only
5174
- # allowed if all resources being scanned are BigQuery tables. Compatible with:
5175
- # Inspect
5344
+ # Publish findings of a DlpJob to Data Catalog. In Data Catalog, tag templates
5345
+ # are applied to the resource that Cloud DLP scanned. Data Catalog tag templates
5346
+ # are stored in the same project and region where the BigQuery table exists. For
5347
+ # Cloud DLP to create and apply the tag template, the Cloud DLP service agent
5348
+ # must have the `roles/datacatalog.tagTemplateOwner` permission on the project.
5349
+ # The tag template contains fields summarizing the results of the DlpJob. Any
5350
+ # field values previously written by another DlpJob are deleted. InfoType naming
5351
+ # patterns are strictly enforced when using this feature. Findings are persisted
5352
+ # in Data Catalog storage and are governed by service-specific policies for Data
5353
+ # Catalog. For more information, see [Service Specific Terms](https://cloud.
5354
+ # google.com/terms/service-terms). Only a single instance of this action can be
5355
+ # specified. This action is allowed only if all resources being scanned are
5356
+ # BigQuery tables. Compatible with: Inspect
5176
5357
  class GooglePrivacyDlpV2PublishFindingsToCloudDataCatalog
5177
5358
  include Google::Apis::Core::Hashable
5178
5359
 
@@ -5188,7 +5369,7 @@ module Google
5188
5369
  # Publish the result summary of a DlpJob to the Cloud Security Command Center (
5189
5370
  # CSCC Alpha). This action is only available for projects which are parts of an
5190
5371
  # organization and whitelisted for the alpha Cloud Security Command Center. The
5191
- # action will publish count of finding instances and their info types. The
5372
+ # action will publish the count of finding instances and their info types. The
5192
5373
  # summary of findings will be persisted in CSCC and are governed by CSCC service-
5193
5374
  # specific policy, see https://cloud.google.com/terms/service-terms Only a
5194
5375
  # single instance of this action can be specified. Compatible with: Inspect
@@ -5204,7 +5385,7 @@ module Google
5204
5385
  end
5205
5386
  end
5206
5387
 
5207
- # Publish a message into given Pub/Sub topic when DlpJob has completed. The
5388
+ # Publish a message into a given Pub/Sub topic when DlpJob has completed. The
5208
5389
  # message contains a single field, `DlpJobName`, which is equal to the finished
5209
5390
  # job's [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/
5210
5391
  # projects.dlpJobs#DlpJob). Compatible with: Inspect, Risk
@@ -5390,7 +5571,7 @@ module Google
5390
5571
  class GooglePrivacyDlpV2RecordCondition
5391
5572
  include Google::Apis::Core::Hashable
5392
5573
 
5393
- # An expression, consisting or an operator and conditions.
5574
+ # An expression, consisting of an operator and conditions.
5394
5575
  # Corresponds to the JSON property `expressions`
5395
5576
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Expressions]
5396
5577
  attr_accessor :expressions
@@ -5489,6 +5670,37 @@ module Google
5489
5670
  end
5490
5671
  end
5491
5672
 
5673
+ #
5674
+ class GooglePrivacyDlpV2RecordTransformation
5675
+ include Google::Apis::Core::Hashable
5676
+
5677
+ # Findings container modification timestamp, if applicable.
5678
+ # Corresponds to the JSON property `containerTimestamp`
5679
+ # @return [String]
5680
+ attr_accessor :container_timestamp
5681
+
5682
+ # Container version, if available ("generation" for Cloud Storage).
5683
+ # Corresponds to the JSON property `containerVersion`
5684
+ # @return [String]
5685
+ attr_accessor :container_version
5686
+
5687
+ # General identifier of a data field in a storage service.
5688
+ # Corresponds to the JSON property `fieldId`
5689
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId]
5690
+ attr_accessor :field_id
5691
+
5692
+ def initialize(**args)
5693
+ update!(**args)
5694
+ end
5695
+
5696
+ # Update properties of this object
5697
+ def update!(**args)
5698
+ @container_timestamp = args[:container_timestamp] if args.key?(:container_timestamp)
5699
+ @container_version = args[:container_version] if args.key?(:container_version)
5700
+ @field_id = args[:field_id] if args.key?(:field_id)
5701
+ end
5702
+ end
5703
+
5492
5704
  # A type of transformation that is applied over structured data such as a table.
5493
5705
  class GooglePrivacyDlpV2RecordTransformations
5494
5706
  include Google::Apis::Core::Hashable
@@ -5695,7 +5907,7 @@ module Google
5695
5907
  end
5696
5908
  end
5697
5909
 
5698
- # Results of re-identifying a item.
5910
+ # Results of re-identifying an item.
5699
5911
  class GooglePrivacyDlpV2ReidentifyContentResponse
5700
5912
  include Google::Apis::Core::Hashable
5701
5913
 
@@ -5940,11 +6152,11 @@ module Google
5940
6152
  class GooglePrivacyDlpV2Schedule
5941
6153
  include Google::Apis::Core::Hashable
5942
6154
 
5943
- # With this option a job is started a regular periodic basis. For example: every
5944
- # day (86400 seconds). A scheduled start time will be skipped if the previous
5945
- # execution has not ended when its scheduled time occurs. This value must be set
5946
- # to a time duration greater than or equal to 1 day and can be no longer than 60
5947
- # days.
6155
+ # With this option a job is started on a regular periodic basis. For example:
6156
+ # every day (86400 seconds). A scheduled start time will be skipped if the
6157
+ # previous execution has not ended when its scheduled time occurs. This value
6158
+ # must be set to a time duration greater than or equal to 1 day and can be no
6159
+ # longer than 60 days.
5948
6160
  # Corresponds to the JSON property `recurrencePeriodDuration`
5949
6161
  # @return [String]
5950
6162
  attr_accessor :recurrence_period_duration
@@ -5959,6 +6171,26 @@ module Google
5959
6171
  end
5960
6172
  end
5961
6173
 
6174
+ # Apply transformation to the selected info_types.
6175
+ class GooglePrivacyDlpV2SelectedInfoTypes
6176
+ include Google::Apis::Core::Hashable
6177
+
6178
+ # Required. InfoTypes to apply the transformation to. Required. Provided
6179
+ # InfoType must be unique within the ImageTransformations message.
6180
+ # Corresponds to the JSON property `infoTypes`
6181
+ # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType>]
6182
+ attr_accessor :info_types
6183
+
6184
+ def initialize(**args)
6185
+ update!(**args)
6186
+ end
6187
+
6188
+ # Update properties of this object
6189
+ def update!(**args)
6190
+ @info_types = args[:info_types] if args.key?(:info_types)
6191
+ end
6192
+ end
6193
+
5962
6194
  # Score is a summary of all elements in the data profile. A higher number means
5963
6195
  # more sensitive.
5964
6196
  class GooglePrivacyDlpV2SensitivityScore
@@ -6026,7 +6258,7 @@ module Google
6026
6258
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2BigQueryOptions]
6027
6259
  attr_accessor :big_query_options
6028
6260
 
6029
- # Options defining a file or a set of files within a Google Cloud Storage bucket.
6261
+ # Options defining a file or a set of files within a Cloud Storage bucket.
6030
6262
  # Corresponds to the JSON property `cloudStorageOptions`
6031
6263
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CloudStorageOptions]
6032
6264
  attr_accessor :cloud_storage_options
@@ -6043,7 +6275,7 @@ module Google
6043
6275
  attr_accessor :hybrid_options
6044
6276
 
6045
6277
  # Configuration of the timespan of the items to include in scanning. Currently
6046
- # only supported when inspecting Google Cloud Storage and BigQuery.
6278
+ # only supported when inspecting Cloud Storage and BigQuery.
6047
6279
  # Corresponds to the JSON property `timespanConfig`
6048
6280
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TimespanConfig]
6049
6281
  attr_accessor :timespan_config
@@ -6155,8 +6387,8 @@ module Google
6155
6387
  # Configuration for a custom dictionary created from a data source of any size
6156
6388
  # up to the maximum size defined in the [limits](https://cloud.google.com/dlp/
6157
6389
  # limits) page. The artifacts of dictionary creation are stored in the specified
6158
- # Google Cloud Storage location. Consider using `CustomInfoType.Dictionary` for
6159
- # smaller dictionaries that satisfy the size requirements.
6390
+ # Cloud Storage location. Consider using `CustomInfoType.Dictionary` for smaller
6391
+ # dictionaries that satisfy the size requirements.
6160
6392
  # Corresponds to the JSON property `largeCustomDictionary`
6161
6393
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2LargeCustomDictionaryConfig]
6162
6394
  attr_accessor :large_custom_dictionary
@@ -6221,9 +6453,9 @@ module Google
6221
6453
  # detected in the storedInfoType data that render it unusable. Only the five
6222
6454
  # most recent errors will be displayed, with the most recent error appearing
6223
6455
  # first. For example, some of the data for stored custom dictionaries is put in
6224
- # the user's Google Cloud Storage bucket, and if this data is modified or
6225
- # deleted by the user or another system, the dictionary becomes invalid. If any
6226
- # errors occur, fix the problem indicated by the error message and use the
6456
+ # the user's Cloud Storage bucket, and if this data is modified or deleted by
6457
+ # the user or another system, the dictionary becomes invalid. If any errors
6458
+ # occur, fix the problem indicated by the error message and use the
6227
6459
  # UpdateStoredInfoType API method to create another version of the
6228
6460
  # storedInfoType to continue using it, reusing the same `config` if it was not
6229
6461
  # the source of the error.
@@ -6378,7 +6610,7 @@ module Google
6378
6610
  attr_accessor :create_time
6379
6611
 
6380
6612
  # Score is a summary of all elements in the data profile. A higher number means
6381
- # more risky.
6613
+ # more risk.
6382
6614
  # Corresponds to the JSON property `dataRiskLevel`
6383
6615
  # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DataRiskLevel]
6384
6616
  attr_accessor :data_risk_level
@@ -6672,7 +6904,7 @@ module Google
6672
6904
  end
6673
6905
 
6674
6906
  # Configuration of the timespan of the items to include in scanning. Currently
6675
- # only supported when inspecting Google Cloud Storage and BigQuery.
6907
+ # only supported when inspecting Cloud Storage and BigQuery.
6676
6908
  class GooglePrivacyDlpV2TimespanConfig
6677
6909
  include Google::Apis::Core::Hashable
6678
6910
 
@@ -6715,6 +6947,176 @@ module Google
6715
6947
  end
6716
6948
  end
6717
6949
 
6950
+ # User specified templates and configs for how to deidentify structured,
6951
+ # unstructures, and image files. User must provide either a unstructured
6952
+ # deidentify template or at least one redact image config.
6953
+ class GooglePrivacyDlpV2TransformationConfig
6954
+ include Google::Apis::Core::Hashable
6955
+
6956
+ # De-identify template. If this template is specified, it will serve as the
6957
+ # default de-identify template. This template cannot contain `
6958
+ # record_transformations` since it can be used for unstructured content such as
6959
+ # free-form text files. If this template is not set, a default `
6960
+ # ReplaceWithInfoTypeConfig` will be used to de-identify unstructured content.
6961
+ # Corresponds to the JSON property `deidentifyTemplate`
6962
+ # @return [String]
6963
+ attr_accessor :deidentify_template
6964
+
6965
+ # Image redact template. If this template is specified, it will serve as the de-
6966
+ # identify template for images. If this template is not set, all findings in the
6967
+ # image will be redacted with a black box.
6968
+ # Corresponds to the JSON property `imageRedactTemplate`
6969
+ # @return [String]
6970
+ attr_accessor :image_redact_template
6971
+
6972
+ # Structured de-identify template. If this template is specified, it will serve
6973
+ # as the de-identify template for structured content such as delimited files and
6974
+ # tables. If this template is not set but the `deidentify_template` is set, then
6975
+ # `deidentify_template` will also apply to the structured content. If neither
6976
+ # template is set, a default `ReplaceWithInfoTypeConfig` will be used to de-
6977
+ # identify structured content.
6978
+ # Corresponds to the JSON property `structuredDeidentifyTemplate`
6979
+ # @return [String]
6980
+ attr_accessor :structured_deidentify_template
6981
+
6982
+ def initialize(**args)
6983
+ update!(**args)
6984
+ end
6985
+
6986
+ # Update properties of this object
6987
+ def update!(**args)
6988
+ @deidentify_template = args[:deidentify_template] if args.key?(:deidentify_template)
6989
+ @image_redact_template = args[:image_redact_template] if args.key?(:image_redact_template)
6990
+ @structured_deidentify_template = args[:structured_deidentify_template] if args.key?(:structured_deidentify_template)
6991
+ end
6992
+ end
6993
+
6994
+ # A flattened description of a `PrimitiveTransformation` or `RecordSuppression`.
6995
+ class GooglePrivacyDlpV2TransformationDescription
6996
+ include Google::Apis::Core::Hashable
6997
+
6998
+ # A human-readable string representation of the `RecordCondition` corresponding
6999
+ # to this transformation. Set if a `RecordCondition` was used to determine
7000
+ # whether or not to apply this transformation. Examples: * (age_field > 85) * (
7001
+ # age_field <= 18) * (zip_field exists) * (zip_field == 01234) && (city_field !=
7002
+ # "Springville") * (zip_field == 01234) && (age_field <= 18) && (city_field
7003
+ # exists)
7004
+ # Corresponds to the JSON property `condition`
7005
+ # @return [String]
7006
+ attr_accessor :condition
7007
+
7008
+ # A description of the transformation. This is empty for a RECORD_SUPPRESSION,
7009
+ # or is the output of calling toString() on the `PrimitiveTransformation`
7010
+ # protocol buffer message for any other type of transformation.
7011
+ # Corresponds to the JSON property `description`
7012
+ # @return [String]
7013
+ attr_accessor :description
7014
+
7015
+ # Type of information detected by the API.
7016
+ # Corresponds to the JSON property `infoType`
7017
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType]
7018
+ attr_accessor :info_type
7019
+
7020
+ # The transformation type.
7021
+ # Corresponds to the JSON property `type`
7022
+ # @return [String]
7023
+ attr_accessor :type
7024
+
7025
+ def initialize(**args)
7026
+ update!(**args)
7027
+ end
7028
+
7029
+ # Update properties of this object
7030
+ def update!(**args)
7031
+ @condition = args[:condition] if args.key?(:condition)
7032
+ @description = args[:description] if args.key?(:description)
7033
+ @info_type = args[:info_type] if args.key?(:info_type)
7034
+ @type = args[:type] if args.key?(:type)
7035
+ end
7036
+ end
7037
+
7038
+ # Details about a single transformation. This object contains a description of
7039
+ # the transformation, information about whether the transformation was
7040
+ # successfully applied, and the precise location where the transformation
7041
+ # occurred. These details are stored in a user-specified BigQuery table.
7042
+ class GooglePrivacyDlpV2TransformationDetails
7043
+ include Google::Apis::Core::Hashable
7044
+
7045
+ # The top level name of the container where the transformation is located (this
7046
+ # will be the source file name or table name).
7047
+ # Corresponds to the JSON property `containerName`
7048
+ # @return [String]
7049
+ attr_accessor :container_name
7050
+
7051
+ # The name of the job that completed the transformation.
7052
+ # Corresponds to the JSON property `resourceName`
7053
+ # @return [String]
7054
+ attr_accessor :resource_name
7055
+
7056
+ # Status of the transformation, if transformation was not successful, this will
7057
+ # specify what caused it to fail, otherwise it will show that the transformation
7058
+ # was successful.
7059
+ # Corresponds to the JSON property `statusDetails`
7060
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TransformationResultStatus]
7061
+ attr_accessor :status_details
7062
+
7063
+ # Description of transformation. This would only contain more than one element
7064
+ # if there were multiple matching transformations and which one to apply was
7065
+ # ambiguous. Not set for states that contain no transformation, currently only
7066
+ # state that contains no transformation is TransformationResultStateType.
7067
+ # METADATA_UNRETRIEVABLE.
7068
+ # Corresponds to the JSON property `transformation`
7069
+ # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2TransformationDescription>]
7070
+ attr_accessor :transformation
7071
+
7072
+ # Specifies the location of a transformation.
7073
+ # Corresponds to the JSON property `transformationLocation`
7074
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TransformationLocation]
7075
+ attr_accessor :transformation_location
7076
+
7077
+ # The number of bytes that were transformed. If transformation was unsuccessful
7078
+ # or did not take place because there was no content to transform, this will be
7079
+ # zero.
7080
+ # Corresponds to the JSON property `transformedBytes`
7081
+ # @return [Fixnum]
7082
+ attr_accessor :transformed_bytes
7083
+
7084
+ def initialize(**args)
7085
+ update!(**args)
7086
+ end
7087
+
7088
+ # Update properties of this object
7089
+ def update!(**args)
7090
+ @container_name = args[:container_name] if args.key?(:container_name)
7091
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
7092
+ @status_details = args[:status_details] if args.key?(:status_details)
7093
+ @transformation = args[:transformation] if args.key?(:transformation)
7094
+ @transformation_location = args[:transformation_location] if args.key?(:transformation_location)
7095
+ @transformed_bytes = args[:transformed_bytes] if args.key?(:transformed_bytes)
7096
+ end
7097
+ end
7098
+
7099
+ # Config for storing transformation details.
7100
+ class GooglePrivacyDlpV2TransformationDetailsStorageConfig
7101
+ include Google::Apis::Core::Hashable
7102
+
7103
+ # Message defining the location of a BigQuery table. A table is uniquely
7104
+ # identified by its project_id, dataset_id, and table_name. Within a query a
7105
+ # table is often referenced with a string in the format of: `:.` or `..`.
7106
+ # Corresponds to the JSON property `table`
7107
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2BigQueryTable]
7108
+ attr_accessor :table
7109
+
7110
+ def initialize(**args)
7111
+ update!(**args)
7112
+ end
7113
+
7114
+ # Update properties of this object
7115
+ def update!(**args)
7116
+ @table = args[:table] if args.key?(:table)
7117
+ end
7118
+ end
7119
+
6718
7120
  # How to handle transformation errors during de-identification. A transformation
6719
7121
  # error occurs when the requested transformation is incompatible with the data.
6720
7122
  # For example, trying to de-identify an IP address using a `DateShift`
@@ -6748,6 +7150,42 @@ module Google
6748
7150
  end
6749
7151
  end
6750
7152
 
7153
+ # Specifies the location of a transformation.
7154
+ class GooglePrivacyDlpV2TransformationLocation
7155
+ include Google::Apis::Core::Hashable
7156
+
7157
+ # Information about the functionality of the container where this finding
7158
+ # occurred, if available.
7159
+ # Corresponds to the JSON property `containerType`
7160
+ # @return [String]
7161
+ attr_accessor :container_type
7162
+
7163
+ # For infotype transformations, link to the corresponding findings ID so that
7164
+ # location information does not need to be duplicated. Each findings ID
7165
+ # correlates to an entry in the findings output table, this table only gets
7166
+ # created when users specify to save findings (add the save findings action to
7167
+ # the request).
7168
+ # Corresponds to the JSON property `findingId`
7169
+ # @return [String]
7170
+ attr_accessor :finding_id
7171
+
7172
+ # For record transformations, provide a field and container information.
7173
+ # Corresponds to the JSON property `recordTransformation`
7174
+ # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2RecordTransformation]
7175
+ attr_accessor :record_transformation
7176
+
7177
+ def initialize(**args)
7178
+ update!(**args)
7179
+ end
7180
+
7181
+ # Update properties of this object
7182
+ def update!(**args)
7183
+ @container_type = args[:container_type] if args.key?(:container_type)
7184
+ @finding_id = args[:finding_id] if args.key?(:finding_id)
7185
+ @record_transformation = args[:record_transformation] if args.key?(:record_transformation)
7186
+ end
7187
+ end
7188
+
6751
7189
  # Overview of the modifications that occurred.
6752
7190
  class GooglePrivacyDlpV2TransformationOverview
6753
7191
  include Google::Apis::Core::Hashable
@@ -6773,6 +7211,37 @@ module Google
6773
7211
  end
6774
7212
  end
6775
7213
 
7214
+ #
7215
+ class GooglePrivacyDlpV2TransformationResultStatus
7216
+ include Google::Apis::Core::Hashable
7217
+
7218
+ # The `Status` type defines a logical error model that is suitable for different
7219
+ # programming environments, including REST APIs and RPC APIs. It is used by [
7220
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
7221
+ # data: error code, error message, and error details. You can find out more
7222
+ # about this error model and how to work with it in the [API Design Guide](https:
7223
+ # //cloud.google.com/apis/design/errors).
7224
+ # Corresponds to the JSON property `details`
7225
+ # @return [Google::Apis::DlpV2::GoogleRpcStatus]
7226
+ attr_accessor :details
7227
+
7228
+ # Transformation result status type, this will be either SUCCESS, or it will be
7229
+ # the reason for why the transformation was not completely successful.
7230
+ # Corresponds to the JSON property `resultStatusType`
7231
+ # @return [String]
7232
+ attr_accessor :result_status_type
7233
+
7234
+ def initialize(**args)
7235
+ update!(**args)
7236
+ end
7237
+
7238
+ # Update properties of this object
7239
+ def update!(**args)
7240
+ @details = args[:details] if args.key?(:details)
7241
+ @result_status_type = args[:result_status_type] if args.key?(:result_status_type)
7242
+ end
7243
+ end
7244
+
6776
7245
  # Summary of a single transformation. Only one of 'transformation', '
6777
7246
  # field_transformation', or 'record_suppress' will be set.
6778
7247
  class GooglePrivacyDlpV2TransformationSummary
@@ -7113,6 +7582,31 @@ module Google
7113
7582
  end
7114
7583
  end
7115
7584
 
7585
+ # Details about each available version for an infotype.
7586
+ class GooglePrivacyDlpV2VersionDescription
7587
+ include Google::Apis::Core::Hashable
7588
+
7589
+ # Description of the version.
7590
+ # Corresponds to the JSON property `description`
7591
+ # @return [String]
7592
+ attr_accessor :description
7593
+
7594
+ # Name of the version
7595
+ # Corresponds to the JSON property `version`
7596
+ # @return [String]
7597
+ attr_accessor :version
7598
+
7599
+ def initialize(**args)
7600
+ update!(**args)
7601
+ end
7602
+
7603
+ # Update properties of this object
7604
+ def update!(**args)
7605
+ @description = args[:description] if args.key?(:description)
7606
+ @version = args[:version] if args.key?(:version)
7607
+ end
7608
+ end
7609
+
7116
7610
  # Message defining a list of words or phrases to search for in the data.
7117
7611
  class GooglePrivacyDlpV2WordList
7118
7612
  include Google::Apis::Core::Hashable