6593 lines
		
	
	
		
			285 KiB
		
	
	
	
		
			Ruby
		
	
	
	
		
		
			
		
	
	
			6593 lines
		
	
	
		
			285 KiB
		
	
	
	
		
			Ruby
		
	
	
	
|  | # Copyright 2020 Google LLC | ||
|  | # | ||
|  | # Licensed under the Apache License, Version 2.0 (the "License"); | ||
|  | # you may not use this file except in compliance with the License. | ||
|  | # You may obtain a copy of the License at | ||
|  | # | ||
|  | #      http://www.apache.org/licenses/LICENSE-2.0 | ||
|  | # | ||
|  | # Unless required by applicable law or agreed to in writing, software | ||
|  | # distributed under the License is distributed on an "AS IS" BASIS, | ||
|  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
|  | # See the License for the specific language governing permissions and | ||
|  | # limitations under the License. | ||
|  | 
 | ||
|  | require 'date' | ||
|  | require 'google/apis/core/base_service' | ||
|  | require 'google/apis/core/json_representation' | ||
|  | require 'google/apis/core/hashable' | ||
|  | require 'google/apis/errors' | ||
|  | 
 | ||
|  | module Google | ||
|  |   module Apis | ||
|  |     module DlpV2 | ||
|  |        | ||
|  |       # A task to execute on the completion of a job. See https://cloud.google.com/dlp/ | ||
|  |       # docs/concepts-actions to learn more. | ||
|  |       class GooglePrivacyDlpV2Action | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Enable email notification to project owners and editors on jobs's completion/ | ||
|  |         # failure. | ||
|  |         # Corresponds to the JSON property `jobNotificationEmails` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2JobNotificationEmails] | ||
|  |         attr_accessor :job_notification_emails | ||
|  |        | ||
|  |         # Publish a message into given Pub/Sub topic when DlpJob has completed. The | ||
|  |         # message contains a single field, `DlpJobName`, which is equal to the finished | ||
|  |         # job's [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/ | ||
|  |         # projects.dlpJobs#DlpJob). Compatible with: Inspect, Risk | ||
|  |         # Corresponds to the JSON property `pubSub` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2PublishToPubSub] | ||
|  |         attr_accessor :pub_sub | ||
|  |        | ||
|  |         # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the | ||
|  |         # results of the DlpJob will be applied to the entry for the resource scanned in | ||
|  |         # Cloud Data Catalog. Any labels previously written by another DlpJob will be | ||
|  |         # deleted. InfoType naming patterns are strictly enforced when using this | ||
|  |         # feature. Note that the findings will be persisted in Cloud Data Catalog | ||
|  |         # storage and are governed by Data Catalog service-specific policy, see https:// | ||
|  |         # cloud.google.com/terms/service-terms Only a single instance of this action can | ||
|  |         # be specified and only allowed if all resources being scanned are BigQuery | ||
|  |         # tables. Compatible with: Inspect | ||
|  |         # Corresponds to the JSON property `publishFindingsToCloudDataCatalog` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2PublishFindingsToCloudDataCatalog] | ||
|  |         attr_accessor :publish_findings_to_cloud_data_catalog | ||
|  |        | ||
|  |         # Publish the result summary of a DlpJob to the Cloud Security Command Center ( | ||
|  |         # CSCC Alpha). This action is only available for projects which are parts of an | ||
|  |         # organization and whitelisted for the alpha Cloud Security Command Center. The | ||
|  |         # action will publish count of finding instances and their info types. The | ||
|  |         # summary of findings will be persisted in CSCC and are governed by CSCC service- | ||
|  |         # specific policy, see https://cloud.google.com/terms/service-terms Only a | ||
|  |         # single instance of this action can be specified. Compatible with: Inspect | ||
|  |         # Corresponds to the JSON property `publishSummaryToCscc` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2PublishSummaryToCscc] | ||
|  |         attr_accessor :publish_summary_to_cscc | ||
|  |        | ||
|  |         # Enable Stackdriver metric dlp.googleapis.com/finding_count. This will publish | ||
|  |         # a metric to stack driver on each infotype requested and how many findings were | ||
|  |         # found for it. CustomDetectors will be bucketed as 'Custom' under the | ||
|  |         # Stackdriver label 'info_type'. | ||
|  |         # Corresponds to the JSON property `publishToStackdriver` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2PublishToStackdriver] | ||
|  |         attr_accessor :publish_to_stackdriver | ||
|  |        | ||
|  |         # If set, the detailed findings will be persisted to the specified | ||
|  |         # OutputStorageConfig. Only a single instance of this action can be specified. | ||
|  |         # Compatible with: Inspect, Risk | ||
|  |         # Corresponds to the JSON property `saveFindings` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2SaveFindings] | ||
|  |         attr_accessor :save_findings | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @job_notification_emails = args[:job_notification_emails] if args.key?(:job_notification_emails) | ||
|  |           @pub_sub = args[:pub_sub] if args.key?(:pub_sub) | ||
|  |           @publish_findings_to_cloud_data_catalog = args[:publish_findings_to_cloud_data_catalog] if args.key?(:publish_findings_to_cloud_data_catalog) | ||
|  |           @publish_summary_to_cscc = args[:publish_summary_to_cscc] if args.key?(:publish_summary_to_cscc) | ||
|  |           @publish_to_stackdriver = args[:publish_to_stackdriver] if args.key?(:publish_to_stackdriver) | ||
|  |           @save_findings = args[:save_findings] if args.key?(:save_findings) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request message for ActivateJobTrigger. | ||
|  |       class GooglePrivacyDlpV2ActivateJobTriggerRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Result of a risk analysis operation request. | ||
|  |       class GooglePrivacyDlpV2AnalyzeDataSourceRiskDetails | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Result of the categorical stats computation. | ||
|  |         # Corresponds to the JSON property `categoricalStatsResult` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CategoricalStatsResult] | ||
|  |         attr_accessor :categorical_stats_result | ||
|  |        | ||
|  |         # Result of the δ-presence computation. Note that these results are an | ||
|  |         # estimation, not exact values. | ||
|  |         # Corresponds to the JSON property `deltaPresenceEstimationResult` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DeltaPresenceEstimationResult] | ||
|  |         attr_accessor :delta_presence_estimation_result | ||
|  |        | ||
|  |         # Result of the k-anonymity computation. | ||
|  |         # Corresponds to the JSON property `kAnonymityResult` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2KAnonymityResult] | ||
|  |         attr_accessor :k_anonymity_result | ||
|  |        | ||
|  |         # Result of the reidentifiability analysis. Note that these results are an | ||
|  |         # estimation, not exact values. | ||
|  |         # Corresponds to the JSON property `kMapEstimationResult` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2KMapEstimationResult] | ||
|  |         attr_accessor :k_map_estimation_result | ||
|  |        | ||
|  |         # Result of the l-diversity computation. | ||
|  |         # Corresponds to the JSON property `lDiversityResult` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2LDiversityResult] | ||
|  |         attr_accessor :l_diversity_result | ||
|  |        | ||
|  |         # Result of the numerical stats computation. | ||
|  |         # Corresponds to the JSON property `numericalStatsResult` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2NumericalStatsResult] | ||
|  |         attr_accessor :numerical_stats_result | ||
|  |        | ||
|  |         # Risk analysis options. | ||
|  |         # Corresponds to the JSON property `requestedOptions` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2RequestedRiskAnalysisOptions] | ||
|  |         attr_accessor :requested_options | ||
|  |        | ||
|  |         # Privacy metric to compute for reidentification risk analysis. | ||
|  |         # Corresponds to the JSON property `requestedPrivacyMetric` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2PrivacyMetric] | ||
|  |         attr_accessor :requested_privacy_metric | ||
|  |        | ||
|  |         # Message defining the location of a BigQuery table. A table is uniquely | ||
|  |         # identified by its project_id, dataset_id, and table_name. Within a query a | ||
|  |         # table is often referenced with a string in the format of: `:.` or `..`. | ||
|  |         # Corresponds to the JSON property `requestedSourceTable` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2BigQueryTable] | ||
|  |         attr_accessor :requested_source_table | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @categorical_stats_result = args[:categorical_stats_result] if args.key?(:categorical_stats_result) | ||
|  |           @delta_presence_estimation_result = args[:delta_presence_estimation_result] if args.key?(:delta_presence_estimation_result) | ||
|  |           @k_anonymity_result = args[:k_anonymity_result] if args.key?(:k_anonymity_result) | ||
|  |           @k_map_estimation_result = args[:k_map_estimation_result] if args.key?(:k_map_estimation_result) | ||
|  |           @l_diversity_result = args[:l_diversity_result] if args.key?(:l_diversity_result) | ||
|  |           @numerical_stats_result = args[:numerical_stats_result] if args.key?(:numerical_stats_result) | ||
|  |           @requested_options = args[:requested_options] if args.key?(:requested_options) | ||
|  |           @requested_privacy_metric = args[:requested_privacy_metric] if args.key?(:requested_privacy_metric) | ||
|  |           @requested_source_table = args[:requested_source_table] if args.key?(:requested_source_table) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # An auxiliary table contains statistical information on the relative frequency | ||
|  |       # of different quasi-identifiers values. It has one or several quasi-identifiers | ||
|  |       # columns, and one column that indicates the relative frequency of each quasi- | ||
|  |       # identifier tuple. If a tuple is present in the data but not in the auxiliary | ||
|  |       # table, the corresponding relative frequency is assumed to be zero (and thus, | ||
|  |       # the tuple is highly reidentifiable). | ||
|  |       class GooglePrivacyDlpV2AuxiliaryTable | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Required. Quasi-identifier columns. | ||
|  |         # Corresponds to the JSON property `quasiIds` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2QuasiIdField>] | ||
|  |         attr_accessor :quasi_ids | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `relativeFrequency` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :relative_frequency | ||
|  |        | ||
|  |         # Message defining the location of a BigQuery table. A table is uniquely | ||
|  |         # identified by its project_id, dataset_id, and table_name. Within a query a | ||
|  |         # table is often referenced with a string in the format of: `:.` or `..`. | ||
|  |         # Corresponds to the JSON property `table` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2BigQueryTable] | ||
|  |         attr_accessor :table | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @quasi_ids = args[:quasi_ids] if args.key?(:quasi_ids) | ||
|  |           @relative_frequency = args[:relative_frequency] if args.key?(:relative_frequency) | ||
|  |           @table = args[:table] if args.key?(:table) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Message defining a field of a BigQuery table. | ||
|  |       class GooglePrivacyDlpV2BigQueryField | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `field` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :field | ||
|  |        | ||
|  |         # Message defining the location of a BigQuery table. A table is uniquely | ||
|  |         # identified by its project_id, dataset_id, and table_name. Within a query a | ||
|  |         # table is often referenced with a string in the format of: `:.` or `..`. | ||
|  |         # Corresponds to the JSON property `table` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2BigQueryTable] | ||
|  |         attr_accessor :table | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @field = args[:field] if args.key?(:field) | ||
|  |           @table = args[:table] if args.key?(:table) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Row key for identifying a record in BigQuery table. | ||
|  |       class GooglePrivacyDlpV2BigQueryKey | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Row number inferred at the time the table was scanned. This value is | ||
|  |         # nondeterministic, cannot be queried, and may be null for inspection jobs. To | ||
|  |         # locate findings within a table, specify `inspect_job.storage_config. | ||
|  |         # big_query_options.identifying_fields` in `CreateDlpJobRequest`. | ||
|  |         # Corresponds to the JSON property `rowNumber` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :row_number | ||
|  |        | ||
|  |         # Message defining the location of a BigQuery table. A table is uniquely | ||
|  |         # identified by its project_id, dataset_id, and table_name. Within a query a | ||
|  |         # table is often referenced with a string in the format of: `:.` or `..`. | ||
|  |         # Corresponds to the JSON property `tableReference` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2BigQueryTable] | ||
|  |         attr_accessor :table_reference | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @row_number = args[:row_number] if args.key?(:row_number) | ||
|  |           @table_reference = args[:table_reference] if args.key?(:table_reference) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Options defining BigQuery table and row identifiers. | ||
|  |       class GooglePrivacyDlpV2BigQueryOptions | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # References to fields excluded from scanning. This allows you to skip | ||
|  |         # inspection of entire columns which you know have no findings. | ||
|  |         # Corresponds to the JSON property `excludedFields` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId>] | ||
|  |         attr_accessor :excluded_fields | ||
|  |        | ||
|  |         # Table fields that may uniquely identify a row within the table. When `actions. | ||
|  |         # saveFindings.outputConfig.table` is specified, the values of columns specified | ||
|  |         # here are available in the output table under `location.content_locations. | ||
|  |         # record_location.record_key.id_values`. Nested fields such as `person.birthdate. | ||
|  |         # year` are allowed. | ||
|  |         # Corresponds to the JSON property `identifyingFields` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId>] | ||
|  |         attr_accessor :identifying_fields | ||
|  |        | ||
|  |         # Max number of rows to scan. If the table has more rows than this value, the | ||
|  |         # rest of the rows are omitted. If not set, or if set to 0, all rows will be | ||
|  |         # scanned. Only one of rows_limit and rows_limit_percent can be specified. | ||
|  |         # Cannot be used in conjunction with TimespanConfig. | ||
|  |         # Corresponds to the JSON property `rowsLimit` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :rows_limit | ||
|  |        | ||
|  |         # Max percentage of rows to scan. The rest are omitted. The number of rows | ||
|  |         # scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and | ||
|  |         # 100 means no limit. Defaults to 0. Only one of rows_limit and | ||
|  |         # rows_limit_percent can be specified. Cannot be used in conjunction with | ||
|  |         # TimespanConfig. | ||
|  |         # Corresponds to the JSON property `rowsLimitPercent` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :rows_limit_percent | ||
|  |        | ||
|  |         #  | ||
|  |         # Corresponds to the JSON property `sampleMethod` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :sample_method | ||
|  |        | ||
|  |         # Message defining the location of a BigQuery table. A table is uniquely | ||
|  |         # identified by its project_id, dataset_id, and table_name. Within a query a | ||
|  |         # table is often referenced with a string in the format of: `:.` or `..`. | ||
|  |         # Corresponds to the JSON property `tableReference` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2BigQueryTable] | ||
|  |         attr_accessor :table_reference | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @excluded_fields = args[:excluded_fields] if args.key?(:excluded_fields) | ||
|  |           @identifying_fields = args[:identifying_fields] if args.key?(:identifying_fields) | ||
|  |           @rows_limit = args[:rows_limit] if args.key?(:rows_limit) | ||
|  |           @rows_limit_percent = args[:rows_limit_percent] if args.key?(:rows_limit_percent) | ||
|  |           @sample_method = args[:sample_method] if args.key?(:sample_method) | ||
|  |           @table_reference = args[:table_reference] if args.key?(:table_reference) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Message defining the location of a BigQuery table. A table is uniquely | ||
|  |       # identified by its project_id, dataset_id, and table_name. Within a query a | ||
|  |       # table is often referenced with a string in the format of: `:.` or `..`. | ||
|  |       class GooglePrivacyDlpV2BigQueryTable | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Dataset ID of the table. | ||
|  |         # Corresponds to the JSON property `datasetId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :dataset_id | ||
|  |        | ||
|  |         # The Google Cloud Platform project ID of the project containing the table. If | ||
|  |         # omitted, project ID is inferred from the API call. | ||
|  |         # Corresponds to the JSON property `projectId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :project_id | ||
|  |        | ||
|  |         # Name of the table. | ||
|  |         # Corresponds to the JSON property `tableId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :table_id | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @dataset_id = args[:dataset_id] if args.key?(:dataset_id) | ||
|  |           @project_id = args[:project_id] if args.key?(:project_id) | ||
|  |           @table_id = args[:table_id] if args.key?(:table_id) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Bounding box encompassing detected text within an image. | ||
|  |       class GooglePrivacyDlpV2BoundingBox | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Height of the bounding box in pixels. | ||
|  |         # Corresponds to the JSON property `height` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :height | ||
|  |        | ||
|  |         # Left coordinate of the bounding box. (0,0) is upper left. | ||
|  |         # Corresponds to the JSON property `left` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :left | ||
|  |        | ||
|  |         # Top coordinate of the bounding box. (0,0) is upper left. | ||
|  |         # Corresponds to the JSON property `top` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :top | ||
|  |        | ||
|  |         # Width of the bounding box in pixels. | ||
|  |         # Corresponds to the JSON property `width` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :width | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @height = args[:height] if args.key?(:height) | ||
|  |           @left = args[:left] if args.key?(:left) | ||
|  |           @top = args[:top] if args.key?(:top) | ||
|  |           @width = args[:width] if args.key?(:width) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Bucket is represented as a range, along with replacement values. | ||
|  |       class GooglePrivacyDlpV2Bucket | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Set of primitive values supported by the system. Note that for the purposes of | ||
|  |         # inspection or transformation, the number of bytes considered to comprise a ' | ||
|  |         # Value' is based on its representation as a UTF-8 encoded string. For example, | ||
|  |         # if 'integer_value' is set to 123456789, the number of bytes would be counted | ||
|  |         # as 9, even though an int64 only holds up to 8 bytes of data. | ||
|  |         # Corresponds to the JSON property `max` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Value] | ||
|  |         attr_accessor :max | ||
|  |        | ||
|  |         # Set of primitive values supported by the system. Note that for the purposes of | ||
|  |         # inspection or transformation, the number of bytes considered to comprise a ' | ||
|  |         # Value' is based on its representation as a UTF-8 encoded string. For example, | ||
|  |         # if 'integer_value' is set to 123456789, the number of bytes would be counted | ||
|  |         # as 9, even though an int64 only holds up to 8 bytes of data. | ||
|  |         # Corresponds to the JSON property `min` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Value] | ||
|  |         attr_accessor :min | ||
|  |        | ||
|  |         # Set of primitive values supported by the system. Note that for the purposes of | ||
|  |         # inspection or transformation, the number of bytes considered to comprise a ' | ||
|  |         # Value' is based on its representation as a UTF-8 encoded string. For example, | ||
|  |         # if 'integer_value' is set to 123456789, the number of bytes would be counted | ||
|  |         # as 9, even though an int64 only holds up to 8 bytes of data. | ||
|  |         # Corresponds to the JSON property `replacementValue` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Value] | ||
|  |         attr_accessor :replacement_value | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @max = args[:max] if args.key?(:max) | ||
|  |           @min = args[:min] if args.key?(:min) | ||
|  |           @replacement_value = args[:replacement_value] if args.key?(:replacement_value) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Generalization function that buckets values based on ranges. The ranges and | ||
|  |       # replacement values are dynamically provided by the user for custom behavior, | ||
|  |       # such as 1-30 -> LOW 31-65 -> MEDIUM 66-100 -> HIGH This can be used on data of | ||
|  |       # type: number, long, string, timestamp. If the bound `Value` type differs from | ||
|  |       # the type of data being transformed, we will first attempt converting the type | ||
|  |       # of the data to be transformed to match the type of the bound before comparing. | ||
|  |       # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. | ||
|  |       class GooglePrivacyDlpV2BucketingConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Set of buckets. Ranges must be non-overlapping. | ||
|  |         # Corresponds to the JSON property `buckets` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Bucket>] | ||
|  |         attr_accessor :buckets | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @buckets = args[:buckets] if args.key?(:buckets) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Container for bytes to inspect or redact. | ||
|  |       class GooglePrivacyDlpV2ByteContentItem | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Content data to inspect or redact. | ||
|  |         # Corresponds to the JSON property `data` | ||
|  |         # NOTE: Values are automatically base64 encoded/decoded in the client library. | ||
|  |         # @return [String] | ||
|  |         attr_accessor :data | ||
|  |        | ||
|  |         # The type of data stored in the bytes string. Default will be TEXT_UTF8. | ||
|  |         # Corresponds to the JSON property `type` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :type | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @data = args[:data] if args.key?(:data) | ||
|  |           @type = args[:type] if args.key?(:type) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # The request message for canceling a DLP job. | ||
|  |       class GooglePrivacyDlpV2CancelDlpJobRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Compute numerical stats over an individual column, including number of | ||
|  |       # distinct values and value count distribution. | ||
|  |       class GooglePrivacyDlpV2CategoricalStatsConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `field` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :field | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @field = args[:field] if args.key?(:field) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Histogram of value frequencies in the column. | ||
|  |       class GooglePrivacyDlpV2CategoricalStatsHistogramBucket | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Total number of values in this bucket. | ||
|  |         # Corresponds to the JSON property `bucketSize` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :bucket_size | ||
|  |        | ||
|  |         # Total number of distinct values in this bucket. | ||
|  |         # Corresponds to the JSON property `bucketValueCount` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :bucket_value_count | ||
|  |        | ||
|  |         # Sample of value frequencies in this bucket. The total number of values | ||
|  |         # returned per bucket is capped at 20. | ||
|  |         # Corresponds to the JSON property `bucketValues` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2ValueFrequency>] | ||
|  |         attr_accessor :bucket_values | ||
|  |        | ||
|  |         # Lower bound on the value frequency of the values in this bucket. | ||
|  |         # Corresponds to the JSON property `valueFrequencyLowerBound` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :value_frequency_lower_bound | ||
|  |        | ||
|  |         # Upper bound on the value frequency of the values in this bucket. | ||
|  |         # Corresponds to the JSON property `valueFrequencyUpperBound` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :value_frequency_upper_bound | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @bucket_size = args[:bucket_size] if args.key?(:bucket_size) | ||
|  |           @bucket_value_count = args[:bucket_value_count] if args.key?(:bucket_value_count) | ||
|  |           @bucket_values = args[:bucket_values] if args.key?(:bucket_values) | ||
|  |           @value_frequency_lower_bound = args[:value_frequency_lower_bound] if args.key?(:value_frequency_lower_bound) | ||
|  |           @value_frequency_upper_bound = args[:value_frequency_upper_bound] if args.key?(:value_frequency_upper_bound) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Result of the categorical stats computation. | ||
|  |       class GooglePrivacyDlpV2CategoricalStatsResult | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Histogram of value frequencies in the column. | ||
|  |         # Corresponds to the JSON property `valueFrequencyHistogramBuckets` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2CategoricalStatsHistogramBucket>] | ||
|  |         attr_accessor :value_frequency_histogram_buckets | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @value_frequency_histogram_buckets = args[:value_frequency_histogram_buckets] if args.key?(:value_frequency_histogram_buckets) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Partially mask a string by replacing a given number of characters with a fixed | ||
|  |       # character. Masking can start from the beginning or end of the string. This can | ||
|  |       # be used on data of any type (numbers, longs, and so on) and when de- | ||
|  |       # identifying structured data we'll attempt to preserve the original data's type. | ||
|  |       # (This allows you to take a long like 123 and modify it to a string like **3. | ||
|  |       class GooglePrivacyDlpV2CharacterMaskConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # When masking a string, items in this list will be skipped when replacing | ||
|  |         # characters. For example, if the input string is `555-555-5555` and you | ||
|  |         # instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP | ||
|  |         # returns `***-**5-5555`. | ||
|  |         # Corresponds to the JSON property `charactersToIgnore` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2CharsToIgnore>] | ||
|  |         attr_accessor :characters_to_ignore | ||
|  |        | ||
|  |         # Character to use to mask the sensitive values—for example, `*` for an | ||
|  |         # alphabetic string such as a name, or `0` for a numeric string such as ZIP code | ||
|  |         # or credit card number. This string must have a length of 1. If not supplied, | ||
|  |         # this value defaults to `*` for strings, and `0` for digits. | ||
|  |         # Corresponds to the JSON property `maskingCharacter` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :masking_character | ||
|  |        | ||
|  |         # Number of characters to mask. If not set, all matching chars will be masked. | ||
|  |         # Skipped characters do not count towards this tally. | ||
|  |         # Corresponds to the JSON property `numberToMask` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :number_to_mask | ||
|  |        | ||
|  |         # Mask characters in reverse order. For example, if `masking_character` is `0`, ` | ||
|  |         # number_to_mask` is `14`, and `reverse_order` is `false`, then the input string | ||
|  |         # `1234-5678-9012-3456` is masked as `00000000000000-3456`. If ` | ||
|  |         # masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is ` | ||
|  |         # true`, then the string `12345` is masked as `12***`. | ||
|  |         # Corresponds to the JSON property `reverseOrder` | ||
|  |         # @return [Boolean] | ||
|  |         attr_accessor :reverse_order | ||
|  |         alias_method :reverse_order?, :reverse_order | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @characters_to_ignore = args[:characters_to_ignore] if args.key?(:characters_to_ignore) | ||
|  |           @masking_character = args[:masking_character] if args.key?(:masking_character) | ||
|  |           @number_to_mask = args[:number_to_mask] if args.key?(:number_to_mask) | ||
|  |           @reverse_order = args[:reverse_order] if args.key?(:reverse_order) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Characters to skip when doing deidentification of a value. These will be left | ||
|  |       # alone and skipped. | ||
|  |       class GooglePrivacyDlpV2CharsToIgnore | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Characters to not transform when masking. | ||
|  |         # Corresponds to the JSON property `charactersToSkip` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :characters_to_skip | ||
|  |        | ||
|  |         # Common characters to not transform when masking. Useful to avoid removing | ||
|  |         # punctuation. | ||
|  |         # Corresponds to the JSON property `commonCharactersToIgnore` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :common_characters_to_ignore | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @characters_to_skip = args[:characters_to_skip] if args.key?(:characters_to_skip) | ||
|  |           @common_characters_to_ignore = args[:common_characters_to_ignore] if args.key?(:common_characters_to_ignore) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Message representing a set of files in Cloud Storage. | ||
|  |       class GooglePrivacyDlpV2CloudStorageFileSet | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The url, in the format `gs:///`. Trailing wildcard in the path is allowed. | ||
|  |         # Corresponds to the JSON property `url` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :url | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @url = args[:url] if args.key?(:url) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Options defining a file or a set of files within a Google Cloud Storage bucket. | ||
|  |       class GooglePrivacyDlpV2CloudStorageOptions | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Max number of bytes to scan from a file. If a scanned file's size is bigger | ||
|  |         # than this value then the rest of the bytes are omitted. Only one of | ||
|  |         # bytes_limit_per_file and bytes_limit_per_file_percent can be specified. | ||
|  |         # Corresponds to the JSON property `bytesLimitPerFile` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :bytes_limit_per_file | ||
|  |        | ||
|  |         # Max percentage of bytes to scan from a file. The rest are omitted. The number | ||
|  |         # of bytes scanned is rounded down. Must be between 0 and 100, inclusively. Both | ||
|  |         # 0 and 100 means no limit. Defaults to 0. Only one of bytes_limit_per_file and | ||
|  |         # bytes_limit_per_file_percent can be specified. | ||
|  |         # Corresponds to the JSON property `bytesLimitPerFilePercent` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :bytes_limit_per_file_percent | ||
|  |        | ||
|  |         # Set of files to scan. | ||
|  |         # Corresponds to the JSON property `fileSet` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FileSet] | ||
|  |         attr_accessor :file_set | ||
|  |        | ||
|  |         # List of file type groups to include in the scan. If empty, all files are | ||
|  |         # scanned and available data format processors are applied. In addition, the | ||
|  |         # binary content of the selected files is always scanned as well. Images are | ||
|  |         # scanned only as binary if the specified region does not support image | ||
|  |         # inspection and no file_types were specified. Image inspection is restricted to | ||
|  |         # 'global', 'us', 'asia', and 'europe'. | ||
|  |         # Corresponds to the JSON property `fileTypes` | ||
|  |         # @return [Array<String>] | ||
|  |         attr_accessor :file_types | ||
|  |        | ||
|  |         # Limits the number of files to scan to this percentage of the input FileSet. | ||
|  |         # Number of files scanned is rounded down. Must be between 0 and 100, | ||
|  |         # inclusively. Both 0 and 100 means no limit. Defaults to 0. | ||
|  |         # Corresponds to the JSON property `filesLimitPercent` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :files_limit_percent | ||
|  |        | ||
|  |         #  | ||
|  |         # Corresponds to the JSON property `sampleMethod` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :sample_method | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @bytes_limit_per_file = args[:bytes_limit_per_file] if args.key?(:bytes_limit_per_file) | ||
|  |           @bytes_limit_per_file_percent = args[:bytes_limit_per_file_percent] if args.key?(:bytes_limit_per_file_percent) | ||
|  |           @file_set = args[:file_set] if args.key?(:file_set) | ||
|  |           @file_types = args[:file_types] if args.key?(:file_types) | ||
|  |           @files_limit_percent = args[:files_limit_percent] if args.key?(:files_limit_percent) | ||
|  |           @sample_method = args[:sample_method] if args.key?(:sample_method) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Message representing a single file or path in Cloud Storage. | ||
|  |       class GooglePrivacyDlpV2CloudStoragePath | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A url representing a file or path (no wildcards) in Cloud Storage. Example: gs: | ||
|  |         # //[BUCKET_NAME]/dictionary.txt | ||
|  |         # Corresponds to the JSON property `path` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :path | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @path = args[:path] if args.key?(:path) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Message representing a set of files in a Cloud Storage bucket. Regular | ||
|  |       # expressions are used to allow fine-grained control over which files in the | ||
|  |       # bucket to include. Included files are those that match at least one item in ` | ||
|  |       # include_regex` and do not match any items in `exclude_regex`. Note that a file | ||
|  |       # that matches items from both lists will _not_ be included. For a match to | ||
|  |       # occur, the entire file path (i.e., everything in the url after the bucket name) | ||
|  |       # must match the regular expression. For example, given the input ``bucket_name: | ||
|  |       # "mybucket", include_regex: ["directory1/.*"], exclude_regex: ["directory1/ | ||
|  |       # excluded.*"]``: * `gs://mybucket/directory1/myfile` will be included * `gs:// | ||
|  |       # mybucket/directory1/directory2/myfile` will be included (`.*` matches across `/ | ||
|  |       # `) * `gs://mybucket/directory0/directory1/myfile` will _not_ be included (the | ||
|  |       # full path doesn't match any items in `include_regex`) * `gs://mybucket/ | ||
|  |       # directory1/excludedfile` will _not_ be included (the path matches an item in ` | ||
|  |       # exclude_regex`) If `include_regex` is left empty, it will match all files by | ||
|  |       # default (this is equivalent to setting `include_regex: [".*"]`). Some other | ||
|  |       # common use cases: * ``bucket_name: "mybucket", exclude_regex: [".*\.pdf"]`` | ||
|  |       # will include all files in `mybucket` except for .pdf files * ``bucket_name: " | ||
|  |       # mybucket", include_regex: ["directory/[^/]+"]`` will include all files | ||
|  |       # directly under `gs://mybucket/directory/`, without matching across `/` | ||
|  |       class GooglePrivacyDlpV2CloudStorageRegexFileSet | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The name of a Cloud Storage bucket. Required. | ||
|  |         # Corresponds to the JSON property `bucketName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :bucket_name | ||
|  |        | ||
|  |         # A list of regular expressions matching file paths to exclude. All files in the | ||
|  |         # bucket that match at least one of these regular expressions will be excluded | ||
|  |         # from the scan. Regular expressions use RE2 [syntax](https://github.com/google/ | ||
|  |         # re2/wiki/Syntax); a guide can be found under the google/re2 repository on | ||
|  |         # GitHub. | ||
|  |         # Corresponds to the JSON property `excludeRegex` | ||
|  |         # @return [Array<String>] | ||
|  |         attr_accessor :exclude_regex | ||
|  |        | ||
|  |         # A list of regular expressions matching file paths to include. All files in the | ||
|  |         # bucket that match at least one of these regular expressions will be included | ||
|  |         # in the set of files, except for those that also match an item in ` | ||
|  |         # exclude_regex`. Leaving this field empty will match all files by default (this | ||
|  |         # is equivalent to including `.*` in the list). Regular expressions use RE2 [ | ||
|  |         # syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found under | ||
|  |         # the google/re2 repository on GitHub. | ||
|  |         # Corresponds to the JSON property `includeRegex` | ||
|  |         # @return [Array<String>] | ||
|  |         attr_accessor :include_regex | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @bucket_name = args[:bucket_name] if args.key?(:bucket_name) | ||
|  |           @exclude_regex = args[:exclude_regex] if args.key?(:exclude_regex) | ||
|  |           @include_regex = args[:include_regex] if args.key?(:include_regex) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Represents a color in the RGB color space. | ||
|  |       class GooglePrivacyDlpV2Color | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The amount of blue in the color as a value in the interval [0, 1]. | ||
|  |         # Corresponds to the JSON property `blue` | ||
|  |         # @return [Float] | ||
|  |         attr_accessor :blue | ||
|  |        | ||
|  |         # The amount of green in the color as a value in the interval [0, 1]. | ||
|  |         # Corresponds to the JSON property `green` | ||
|  |         # @return [Float] | ||
|  |         attr_accessor :green | ||
|  |        | ||
|  |         # The amount of red in the color as a value in the interval [0, 1]. | ||
|  |         # Corresponds to the JSON property `red` | ||
|  |         # @return [Float] | ||
|  |         attr_accessor :red | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @blue = args[:blue] if args.key?(:blue) | ||
|  |           @green = args[:green] if args.key?(:green) | ||
|  |           @red = args[:red] if args.key?(:red) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # The field type of `value` and `field` do not need to match to be considered | ||
|  |       # equal, but not all comparisons are possible. EQUAL_TO and NOT_EQUAL_TO attempt | ||
|  |       # to compare even with incompatible types, but all other comparisons are invalid | ||
|  |       # with incompatible types. A `value` of type: - `string` can be compared against | ||
|  |       # all other types - `boolean` can only be compared against other booleans - ` | ||
|  |       # integer` can be compared against doubles or a string if the string value can | ||
|  |       # be parsed as an integer. - `double` can be compared against integers or a | ||
|  |       # string if the string can be parsed as a double. - `Timestamp` can be compared | ||
|  |       # against strings in RFC 3339 date string format. - `TimeOfDay` can be compared | ||
|  |       # against timestamps and strings in the format of 'HH:mm:ss'. If we fail to | ||
|  |       # compare do to type mismatch, a warning will be given and the condition will | ||
|  |       # evaluate to false. | ||
|  |       class GooglePrivacyDlpV2Condition | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `field` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :field | ||
|  |        | ||
|  |         # Required. Operator used to compare the field or infoType to the value. | ||
|  |         # Corresponds to the JSON property `operator` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :operator | ||
|  |        | ||
|  |         # Set of primitive values supported by the system. Note that for the purposes of | ||
|  |         # inspection or transformation, the number of bytes considered to comprise a ' | ||
|  |         # Value' is based on its representation as a UTF-8 encoded string. For example, | ||
|  |         # if 'integer_value' is set to 123456789, the number of bytes would be counted | ||
|  |         # as 9, even though an int64 only holds up to 8 bytes of data. | ||
|  |         # Corresponds to the JSON property `value` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Value] | ||
|  |         attr_accessor :value | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @field = args[:field] if args.key?(:field) | ||
|  |           @operator = args[:operator] if args.key?(:operator) | ||
|  |           @value = args[:value] if args.key?(:value) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A collection of conditions. | ||
|  |       class GooglePrivacyDlpV2Conditions | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A collection of conditions. | ||
|  |         # Corresponds to the JSON property `conditions` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Condition>] | ||
|  |         attr_accessor :conditions | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @conditions = args[:conditions] if args.key?(:conditions) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Represents a container that may contain DLP findings. Examples of a container | ||
|  |       # include a file, table, or database record. | ||
|  |       class GooglePrivacyDlpV2Container | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A string representation of the full container name. Examples: - BigQuery: ' | ||
|  |         # Project:DataSetId.TableId' - Google Cloud Storage: 'gs://Bucket/folders/ | ||
|  |         # filename.txt' | ||
|  |         # Corresponds to the JSON property `fullPath` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :full_path | ||
|  |        | ||
|  |         # Project where the finding was found. Can be different from the project that | ||
|  |         # owns the finding. | ||
|  |         # Corresponds to the JSON property `projectId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :project_id | ||
|  |        | ||
|  |         # The rest of the path after the root. Examples: - For BigQuery table ` | ||
|  |         # project_id:dataset_id.table_id`, the relative path is `table_id` - Google | ||
|  |         # Cloud Storage file `gs://bucket/folder/filename.txt`, the relative path is ` | ||
|  |         # folder/filename.txt` | ||
|  |         # Corresponds to the JSON property `relativePath` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :relative_path | ||
|  |        | ||
|  |         # The root of the container. Examples: - For BigQuery table `project_id: | ||
|  |         # dataset_id.table_id`, the root is `dataset_id` - For Google Cloud Storage file | ||
|  |         # `gs://bucket/folder/filename.txt`, the root is `gs://bucket` | ||
|  |         # Corresponds to the JSON property `rootPath` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :root_path | ||
|  |        | ||
|  |         # Container type, for example BigQuery or Google Cloud Storage. | ||
|  |         # Corresponds to the JSON property `type` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :type | ||
|  |        | ||
|  |         # Findings container modification timestamp, if applicable. For Google Cloud | ||
|  |         # Storage contains last file modification timestamp. For BigQuery table contains | ||
|  |         # last_modified_time property. For Datastore - not populated. | ||
|  |         # Corresponds to the JSON property `updateTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :update_time | ||
|  |        | ||
|  |         # Findings container version, if available ("generation" for Google Cloud | ||
|  |         # Storage). | ||
|  |         # Corresponds to the JSON property `version` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :version | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @full_path = args[:full_path] if args.key?(:full_path) | ||
|  |           @project_id = args[:project_id] if args.key?(:project_id) | ||
|  |           @relative_path = args[:relative_path] if args.key?(:relative_path) | ||
|  |           @root_path = args[:root_path] if args.key?(:root_path) | ||
|  |           @type = args[:type] if args.key?(:type) | ||
|  |           @update_time = args[:update_time] if args.key?(:update_time) | ||
|  |           @version = args[:version] if args.key?(:version) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Container structure for the content to inspect. | ||
|  |       class GooglePrivacyDlpV2ContentItem | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Container for bytes to inspect or redact. | ||
|  |         # Corresponds to the JSON property `byteItem` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ByteContentItem] | ||
|  |         attr_accessor :byte_item | ||
|  |        | ||
|  |         # Structured content to inspect. Up to 50,000 `Value`s per request allowed. See | ||
|  |         # https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to learn | ||
|  |         # more. | ||
|  |         # Corresponds to the JSON property `table` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Table] | ||
|  |         attr_accessor :table | ||
|  |        | ||
|  |         # String data to inspect or redact. | ||
|  |         # Corresponds to the JSON property `value` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :value | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @byte_item = args[:byte_item] if args.key?(:byte_item) | ||
|  |           @table = args[:table] if args.key?(:table) | ||
|  |           @value = args[:value] if args.key?(:value) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Precise location of the finding within a document, record, image, or metadata | ||
|  |       # container. | ||
|  |       class GooglePrivacyDlpV2ContentLocation | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Name of the container where the finding is located. The top level name is the | ||
|  |         # source file name or table name. Names of some common storage containers are | ||
|  |         # formatted as follows: * BigQuery tables: ``project_id`:`dataset_id`.`table_id`` | ||
|  |         # * Cloud Storage files: `gs://`bucket`/`path`` * Datastore namespace: ` | ||
|  |         # namespace` Nested names could be absent if the embedded object has no string | ||
|  |         # identifier (for an example an image contained within a document). | ||
|  |         # Corresponds to the JSON property `containerName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :container_name | ||
|  |        | ||
|  |         # Findings container modification timestamp, if applicable. For Google Cloud | ||
|  |         # Storage contains last file modification timestamp. For BigQuery table contains | ||
|  |         # last_modified_time property. For Datastore - not populated. | ||
|  |         # Corresponds to the JSON property `containerTimestamp` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :container_timestamp | ||
|  |        | ||
|  |         # Findings container version, if available ("generation" for Google Cloud | ||
|  |         # Storage). | ||
|  |         # Corresponds to the JSON property `containerVersion` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :container_version | ||
|  |        | ||
|  |         # Location of a finding within a document. | ||
|  |         # Corresponds to the JSON property `documentLocation` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DocumentLocation] | ||
|  |         attr_accessor :document_location | ||
|  |        | ||
|  |         # Location of the finding within an image. | ||
|  |         # Corresponds to the JSON property `imageLocation` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ImageLocation] | ||
|  |         attr_accessor :image_location | ||
|  |        | ||
|  |         # Metadata Location | ||
|  |         # Corresponds to the JSON property `metadataLocation` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2MetadataLocation] | ||
|  |         attr_accessor :metadata_location | ||
|  |        | ||
|  |         # Location of a finding within a row or record. | ||
|  |         # Corresponds to the JSON property `recordLocation` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2RecordLocation] | ||
|  |         attr_accessor :record_location | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @container_name = args[:container_name] if args.key?(:container_name) | ||
|  |           @container_timestamp = args[:container_timestamp] if args.key?(:container_timestamp) | ||
|  |           @container_version = args[:container_version] if args.key?(:container_version) | ||
|  |           @document_location = args[:document_location] if args.key?(:document_location) | ||
|  |           @image_location = args[:image_location] if args.key?(:image_location) | ||
|  |           @metadata_location = args[:metadata_location] if args.key?(:metadata_location) | ||
|  |           @record_location = args[:record_location] if args.key?(:record_location) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request message for CreateDeidentifyTemplate. | ||
|  |       class GooglePrivacyDlpV2CreateDeidentifyTemplateRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # DeidentifyTemplates contains instructions on how to de-identify content. See | ||
|  |         # https://cloud.google.com/dlp/docs/concepts-templates to learn more. | ||
|  |         # Corresponds to the JSON property `deidentifyTemplate` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DeidentifyTemplate] | ||
|  |         attr_accessor :deidentify_template | ||
|  |        | ||
|  |         # Deprecated. This field has no effect. | ||
|  |         # Corresponds to the JSON property `locationId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :location_id | ||
|  |        | ||
|  |         # The template id can contain uppercase and lowercase letters, numbers, and | ||
|  |         # hyphens; that is, it must match the regular expression: `[a-zA-Z\d-_]+`. The | ||
|  |         # maximum length is 100 characters. Can be empty to allow the system to generate | ||
|  |         # one. | ||
|  |         # Corresponds to the JSON property `templateId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :template_id | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @deidentify_template = args[:deidentify_template] if args.key?(:deidentify_template) | ||
|  |           @location_id = args[:location_id] if args.key?(:location_id) | ||
|  |           @template_id = args[:template_id] if args.key?(:template_id) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request message for CreateDlpJobRequest. Used to initiate long running jobs | ||
|  |       # such as calculating risk metrics or inspecting Google Cloud Storage. | ||
|  |       class GooglePrivacyDlpV2CreateDlpJobRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Controls what and how to inspect for findings. | ||
|  |         # Corresponds to the JSON property `inspectJob` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectJobConfig] | ||
|  |         attr_accessor :inspect_job | ||
|  |        | ||
|  |         # The job id can contain uppercase and lowercase letters, numbers, and hyphens; | ||
|  |         # that is, it must match the regular expression: `[a-zA-Z\d-_]+`. The maximum | ||
|  |         # length is 100 characters. Can be empty to allow the system to generate one. | ||
|  |         # Corresponds to the JSON property `jobId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :job_id | ||
|  |        | ||
|  |         # Deprecated. This field has no effect. | ||
|  |         # Corresponds to the JSON property `locationId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :location_id | ||
|  |        | ||
|  |         # Configuration for a risk analysis job. See https://cloud.google.com/dlp/docs/ | ||
|  |         # concepts-risk-analysis to learn more. | ||
|  |         # Corresponds to the JSON property `riskJob` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2RiskAnalysisJobConfig] | ||
|  |         attr_accessor :risk_job | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @inspect_job = args[:inspect_job] if args.key?(:inspect_job) | ||
|  |           @job_id = args[:job_id] if args.key?(:job_id) | ||
|  |           @location_id = args[:location_id] if args.key?(:location_id) | ||
|  |           @risk_job = args[:risk_job] if args.key?(:risk_job) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request message for CreateInspectTemplate. | ||
|  |       class GooglePrivacyDlpV2CreateInspectTemplateRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The inspectTemplate contains a configuration (set of types of sensitive data | ||
|  |         # to be detected) to be used anywhere you otherwise would normally specify | ||
|  |         # InspectConfig. See https://cloud.google.com/dlp/docs/concepts-templates to | ||
|  |         # learn more. | ||
|  |         # Corresponds to the JSON property `inspectTemplate` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectTemplate] | ||
|  |         attr_accessor :inspect_template | ||
|  |        | ||
|  |         # Deprecated. This field has no effect. | ||
|  |         # Corresponds to the JSON property `locationId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :location_id | ||
|  |        | ||
|  |         # The template id can contain uppercase and lowercase letters, numbers, and | ||
|  |         # hyphens; that is, it must match the regular expression: `[a-zA-Z\d-_]+`. The | ||
|  |         # maximum length is 100 characters. Can be empty to allow the system to generate | ||
|  |         # one. | ||
|  |         # Corresponds to the JSON property `templateId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :template_id | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @inspect_template = args[:inspect_template] if args.key?(:inspect_template) | ||
|  |           @location_id = args[:location_id] if args.key?(:location_id) | ||
|  |           @template_id = args[:template_id] if args.key?(:template_id) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request message for CreateJobTrigger. | ||
|  |       class GooglePrivacyDlpV2CreateJobTriggerRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Contains a configuration to make dlp api calls on a repeating basis. See https: | ||
|  |         # //cloud.google.com/dlp/docs/concepts-job-triggers to learn more. | ||
|  |         # Corresponds to the JSON property `jobTrigger` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2JobTrigger] | ||
|  |         attr_accessor :job_trigger | ||
|  |        | ||
|  |         # Deprecated. This field has no effect. | ||
|  |         # Corresponds to the JSON property `locationId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :location_id | ||
|  |        | ||
|  |         # The trigger id can contain uppercase and lowercase letters, numbers, and | ||
|  |         # hyphens; that is, it must match the regular expression: `[a-zA-Z\d-_]+`. The | ||
|  |         # maximum length is 100 characters. Can be empty to allow the system to generate | ||
|  |         # one. | ||
|  |         # Corresponds to the JSON property `triggerId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :trigger_id | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @job_trigger = args[:job_trigger] if args.key?(:job_trigger) | ||
|  |           @location_id = args[:location_id] if args.key?(:location_id) | ||
|  |           @trigger_id = args[:trigger_id] if args.key?(:trigger_id) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request message for CreateStoredInfoType. | ||
|  |       class GooglePrivacyDlpV2CreateStoredInfoTypeRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Configuration for stored infoTypes. All fields and subfield are provided by | ||
|  |         # the user. For more information, see https://cloud.google.com/dlp/docs/creating- | ||
|  |         # custom-infotypes. | ||
|  |         # Corresponds to the JSON property `config` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2StoredInfoTypeConfig] | ||
|  |         attr_accessor :config | ||
|  |        | ||
|  |         # Deprecated. This field has no effect. | ||
|  |         # Corresponds to the JSON property `locationId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :location_id | ||
|  |        | ||
|  |         # The storedInfoType ID can contain uppercase and lowercase letters, numbers, | ||
|  |         # and hyphens; that is, it must match the regular expression: `[a-zA-Z\d-_]+`. | ||
|  |         # The maximum length is 100 characters. Can be empty to allow the system to | ||
|  |         # generate one. | ||
|  |         # Corresponds to the JSON property `storedInfoTypeId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :stored_info_type_id | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @config = args[:config] if args.key?(:config) | ||
|  |           @location_id = args[:location_id] if args.key?(:location_id) | ||
|  |           @stored_info_type_id = args[:stored_info_type_id] if args.key?(:stored_info_type_id) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Pseudonymization method that generates deterministic encryption for the given | ||
|  |       # input. Outputs a base64 encoded representation of the encrypted output. Uses | ||
|  |       # AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. | ||
|  |       class GooglePrivacyDlpV2CryptoDeterministicConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `context` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :context | ||
|  |        | ||
|  |         # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) | ||
|  |         # stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an | ||
|  |         # appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot | ||
|  |         # unwrap the data crypto key. | ||
|  |         # Corresponds to the JSON property `cryptoKey` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CryptoKey] | ||
|  |         attr_accessor :crypto_key | ||
|  |        | ||
|  |         # Type of information detected by the API. | ||
|  |         # Corresponds to the JSON property `surrogateInfoType` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType] | ||
|  |         attr_accessor :surrogate_info_type | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @context = args[:context] if args.key?(:context) | ||
|  |           @crypto_key = args[:crypto_key] if args.key?(:crypto_key) | ||
|  |           @surrogate_info_type = args[:surrogate_info_type] if args.key?(:surrogate_info_type) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Pseudonymization method that generates surrogates via cryptographic hashing. | ||
|  |       # Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 | ||
|  |       # encoded representation of the hashed output (for example, | ||
|  |       # L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and | ||
|  |       # integer values can be hashed. See https://cloud.google.com/dlp/docs/ | ||
|  |       # pseudonymization to learn more. | ||
|  |       class GooglePrivacyDlpV2CryptoHashConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) | ||
|  |         # stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an | ||
|  |         # appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot | ||
|  |         # unwrap the data crypto key. | ||
|  |         # Corresponds to the JSON property `cryptoKey` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CryptoKey] | ||
|  |         attr_accessor :crypto_key | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @crypto_key = args[:crypto_key] if args.key?(:crypto_key) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) | ||
|  |       # stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an | ||
|  |       # appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot | ||
|  |       # unwrap the data crypto key. | ||
|  |       class GooglePrivacyDlpV2CryptoKey | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Include to use an existing data crypto key wrapped by KMS. The wrapped key | ||
|  |         # must be a 128/192/256 bit key. Authorization requires the following IAM | ||
|  |         # permissions when sending a request to perform a crypto transformation using a | ||
|  |         # kms-wrapped crypto key: dlp.kms.encrypt | ||
|  |         # Corresponds to the JSON property `kmsWrapped` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2KmsWrappedCryptoKey] | ||
|  |         attr_accessor :kms_wrapped | ||
|  |        | ||
|  |         # Use this to have a random data crypto key generated. It will be discarded | ||
|  |         # after the request finishes. | ||
|  |         # Corresponds to the JSON property `transient` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TransientCryptoKey] | ||
|  |         attr_accessor :transient | ||
|  |        | ||
|  |         # Using raw keys is prone to security risks due to accidentally leaking the key. | ||
|  |         # Choose another type of key if possible. | ||
|  |         # Corresponds to the JSON property `unwrapped` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2UnwrappedCryptoKey] | ||
|  |         attr_accessor :unwrapped | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @kms_wrapped = args[:kms_wrapped] if args.key?(:kms_wrapped) | ||
|  |           @transient = args[:transient] if args.key?(:transient) | ||
|  |           @unwrapped = args[:unwrapped] if args.key?(:unwrapped) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Replaces an identifier with a surrogate using Format Preserving Encryption ( | ||
|  |       # FPE) with the FFX mode of operation; however when used in the ` | ||
|  |       # ReidentifyContent` API method, it serves the opposite function by reversing | ||
|  |       # the surrogate back into the original identifier. The identifier must be | ||
|  |       # encoded as ASCII. For a given crypto key and context, the same identifier will | ||
|  |       # be replaced with the same surrogate. Identifiers must be at least two | ||
|  |       # characters long. In the case that the identifier is the empty string, it will | ||
|  |       # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn | ||
|  |       # more. Note: We recommend using CryptoDeterministicConfig for all use cases | ||
|  |       # which do not require preserving the input alphabet space and size, plus | ||
|  |       # warrant referential integrity. | ||
|  |       class GooglePrivacyDlpV2CryptoReplaceFfxFpeConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Common alphabets. | ||
|  |         # Corresponds to the JSON property `commonAlphabet` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :common_alphabet | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `context` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :context | ||
|  |        | ||
|  |         # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) | ||
|  |         # stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an | ||
|  |         # appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot | ||
|  |         # unwrap the data crypto key. | ||
|  |         # Corresponds to the JSON property `cryptoKey` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CryptoKey] | ||
|  |         attr_accessor :crypto_key | ||
|  |        | ||
|  |         # This is supported by mapping these to the alphanumeric characters that the FFX | ||
|  |         # mode natively supports. This happens before/after encryption/decryption. Each | ||
|  |         # character listed must appear only once. Number of characters must be in the | ||
|  |         # range [2, 95]. This must be encoded as ASCII. The order of characters does not | ||
|  |         # matter. The full list of allowed characters is: | ||
|  |         # 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^&*()_-+= | ||
|  |         # `[`]|\:;"'<,>.?/ | ||
|  |         # Corresponds to the JSON property `customAlphabet` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :custom_alphabet | ||
|  |        | ||
|  |         # The native way to select the alphabet. Must be in the range [2, 95]. | ||
|  |         # Corresponds to the JSON property `radix` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :radix | ||
|  |        | ||
|  |         # Type of information detected by the API. | ||
|  |         # Corresponds to the JSON property `surrogateInfoType` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType] | ||
|  |         attr_accessor :surrogate_info_type | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @common_alphabet = args[:common_alphabet] if args.key?(:common_alphabet) | ||
|  |           @context = args[:context] if args.key?(:context) | ||
|  |           @crypto_key = args[:crypto_key] if args.key?(:crypto_key) | ||
|  |           @custom_alphabet = args[:custom_alphabet] if args.key?(:custom_alphabet) | ||
|  |           @radix = args[:radix] if args.key?(:radix) | ||
|  |           @surrogate_info_type = args[:surrogate_info_type] if args.key?(:surrogate_info_type) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Custom information type provided by the user. Used to find domain-specific | ||
|  |       # sensitive information configurable to the data in question. | ||
|  |       class GooglePrivacyDlpV2CustomInfoType | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Set of detection rules to apply to all findings of this CustomInfoType. Rules | ||
|  |         # are applied in order that they are specified. Not supported for the ` | ||
|  |         # surrogate_type` CustomInfoType. | ||
|  |         # Corresponds to the JSON property `detectionRules` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2DetectionRule>] | ||
|  |         attr_accessor :detection_rules | ||
|  |        | ||
|  |         # Custom information type based on a dictionary of words or phrases. This can be | ||
|  |         # used to match sensitive information specific to the data, such as a list of | ||
|  |         # employee IDs or job titles. Dictionary words are case-insensitive and all | ||
|  |         # characters other than letters and digits in the unicode [Basic Multilingual | ||
|  |         # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29# | ||
|  |         # Basic_Multilingual_Plane) will be replaced with whitespace when scanning for | ||
|  |         # matches, so the dictionary phrase "Sam Johnson" will match all three phrases " | ||
|  |         # sam johnson", "Sam, Johnson", and "Sam (Johnson)". Additionally, the | ||
|  |         # characters surrounding any match must be of a different type than the adjacent | ||
|  |         # characters within the word, so letters must be next to non-letters and digits | ||
|  |         # next to non-digits. For example, the dictionary word "jen" will match the | ||
|  |         # first three letters of the text "jen123" but will return no matches for " | ||
|  |         # jennifer". Dictionary words containing a large number of characters that are | ||
|  |         # not letters or digits may result in unexpected findings because such | ||
|  |         # characters are treated as whitespace. The [limits](https://cloud.google.com/ | ||
|  |         # dlp/limits) page contains details about the size limits of dictionaries. For | ||
|  |         # dictionaries that do not fit within these constraints, consider using ` | ||
|  |         # LargeCustomDictionaryConfig` in the `StoredInfoType` API. | ||
|  |         # Corresponds to the JSON property `dictionary` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Dictionary] | ||
|  |         attr_accessor :dictionary | ||
|  |        | ||
|  |         # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding to be | ||
|  |         # returned. It still can be used for rules matching. | ||
|  |         # Corresponds to the JSON property `exclusionType` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :exclusion_type | ||
|  |        | ||
|  |         # Type of information detected by the API. | ||
|  |         # Corresponds to the JSON property `infoType` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType] | ||
|  |         attr_accessor :info_type | ||
|  |        | ||
|  |         # Likelihood to return for this CustomInfoType. This base value can be altered | ||
|  |         # by a detection rule if the finding meets the criteria specified by the rule. | ||
|  |         # Defaults to `VERY_LIKELY` if not specified. | ||
|  |         # Corresponds to the JSON property `likelihood` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :likelihood | ||
|  |        | ||
|  |         # Message defining a custom regular expression. | ||
|  |         # Corresponds to the JSON property `regex` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Regex] | ||
|  |         attr_accessor :regex | ||
|  |        | ||
|  |         # A reference to a StoredInfoType to use with scanning. | ||
|  |         # Corresponds to the JSON property `storedType` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2StoredType] | ||
|  |         attr_accessor :stored_type | ||
|  |        | ||
|  |         # Message for detecting output from deidentification transformations such as [` | ||
|  |         # CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/ | ||
|  |         # v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig). These types | ||
|  |         # of transformations are those that perform pseudonymization, thereby producing | ||
|  |         # a "surrogate" as output. This should be used in conjunction with a field on | ||
|  |         # the transformation such as `surrogate_info_type`. This CustomInfoType does not | ||
|  |         # support the use of `detection_rules`. | ||
|  |         # Corresponds to the JSON property `surrogateType` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2SurrogateType] | ||
|  |         attr_accessor :surrogate_type | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @detection_rules = args[:detection_rules] if args.key?(:detection_rules) | ||
|  |           @dictionary = args[:dictionary] if args.key?(:dictionary) | ||
|  |           @exclusion_type = args[:exclusion_type] if args.key?(:exclusion_type) | ||
|  |           @info_type = args[:info_type] if args.key?(:info_type) | ||
|  |           @likelihood = args[:likelihood] if args.key?(:likelihood) | ||
|  |           @regex = args[:regex] if args.key?(:regex) | ||
|  |           @stored_type = args[:stored_type] if args.key?(:stored_type) | ||
|  |           @surrogate_type = args[:surrogate_type] if args.key?(:surrogate_type) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Record key for a finding in Cloud Datastore. | ||
|  |       class GooglePrivacyDlpV2DatastoreKey | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A unique identifier for a Datastore entity. If a key's partition ID or any of | ||
|  |         # its path kinds or names are reserved/read-only, the key is reserved/read-only. | ||
|  |         # A reserved/read-only key is forbidden in certain documented contexts. | ||
|  |         # Corresponds to the JSON property `entityKey` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Key] | ||
|  |         attr_accessor :entity_key | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @entity_key = args[:entity_key] if args.key?(:entity_key) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Options defining a data set within Google Cloud Datastore. | ||
|  |       class GooglePrivacyDlpV2DatastoreOptions | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A representation of a Datastore kind. | ||
|  |         # Corresponds to the JSON property `kind` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2KindExpression] | ||
|  |         attr_accessor :kind | ||
|  |        | ||
|  |         # Datastore partition ID. A partition ID identifies a grouping of entities. The | ||
|  |         # grouping is always by project and namespace, however the namespace ID may be | ||
|  |         # empty. A partition ID contains several dimensions: project ID and namespace ID. | ||
|  |         # Corresponds to the JSON property `partitionId` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2PartitionId] | ||
|  |         attr_accessor :partition_id | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @kind = args[:kind] if args.key?(:kind) | ||
|  |           @partition_id = args[:partition_id] if args.key?(:partition_id) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Shifts dates by random number of days, with option to be consistent for the | ||
|  |       # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to | ||
|  |       # learn more. | ||
|  |       class GooglePrivacyDlpV2DateShiftConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `context` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :context | ||
|  |        | ||
|  |         # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) | ||
|  |         # stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an | ||
|  |         # appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot | ||
|  |         # unwrap the data crypto key. | ||
|  |         # Corresponds to the JSON property `cryptoKey` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CryptoKey] | ||
|  |         attr_accessor :crypto_key | ||
|  |        | ||
|  |         # Required. For example, -5 means shift date to at most 5 days back in the past. | ||
|  |         # Corresponds to the JSON property `lowerBoundDays` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :lower_bound_days | ||
|  |        | ||
|  |         # Required. Range of shift in days. Actual shift will be selected at random | ||
|  |         # within this range (inclusive ends). Negative means shift to earlier in time. | ||
|  |         # Must not be more than 365250 days (1000 years) each direction. For example, 3 | ||
|  |         # means shift date to at most 3 days into the future. | ||
|  |         # Corresponds to the JSON property `upperBoundDays` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :upper_bound_days | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @context = args[:context] if args.key?(:context) | ||
|  |           @crypto_key = args[:crypto_key] if args.key?(:crypto_key) | ||
|  |           @lower_bound_days = args[:lower_bound_days] if args.key?(:lower_bound_days) | ||
|  |           @upper_bound_days = args[:upper_bound_days] if args.key?(:upper_bound_days) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Message for a date time object. e.g. 2018-01-01, 5th August. | ||
|  |       class GooglePrivacyDlpV2DateTime | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Represents a whole or partial calendar date, such as a birthday. The time of | ||
|  |         # day and time zone are either specified elsewhere or are insignificant. The | ||
|  |         # date is relative to the Gregorian Calendar. This can represent one of the | ||
|  |         # following: * A full date, with non-zero year, month, and day values * A month | ||
|  |         # and day value, with a zero year, such as an anniversary * A year on its own, | ||
|  |         # with zero month and day values * A year and month value, with a zero day, such | ||
|  |         # as a credit card expiration date Related types are google.type.TimeOfDay and ` | ||
|  |         # google.protobuf.Timestamp`. | ||
|  |         # Corresponds to the JSON property `date` | ||
|  |         # @return [Google::Apis::DlpV2::GoogleTypeDate] | ||
|  |         attr_accessor :date | ||
|  |        | ||
|  |         # Day of week | ||
|  |         # Corresponds to the JSON property `dayOfWeek` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :day_of_week | ||
|  |        | ||
|  |         # Represents a time of day. The date and time zone are either not significant or | ||
|  |         # are specified elsewhere. An API may choose to allow leap seconds. Related | ||
|  |         # types are google.type.Date and `google.protobuf.Timestamp`. | ||
|  |         # Corresponds to the JSON property `time` | ||
|  |         # @return [Google::Apis::DlpV2::GoogleTypeTimeOfDay] | ||
|  |         attr_accessor :time | ||
|  |        | ||
|  |         # Time zone of the date time object. | ||
|  |         # Corresponds to the JSON property `timeZone` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TimeZone] | ||
|  |         attr_accessor :time_zone | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @date = args[:date] if args.key?(:date) | ||
|  |           @day_of_week = args[:day_of_week] if args.key?(:day_of_week) | ||
|  |           @time = args[:time] if args.key?(:time) | ||
|  |           @time_zone = args[:time_zone] if args.key?(:time_zone) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # The configuration that controls how the data will change. | ||
|  |       class GooglePrivacyDlpV2DeidentifyConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A type of transformation that will scan unstructured text and apply various ` | ||
|  |         # PrimitiveTransformation`s to each finding, where the transformation is applied | ||
|  |         # to only values that were identified as a specific info_type. | ||
|  |         # Corresponds to the JSON property `infoTypeTransformations` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InfoTypeTransformations] | ||
|  |         attr_accessor :info_type_transformations | ||
|  |        | ||
|  |         # A type of transformation that is applied over structured data such as a table. | ||
|  |         # Corresponds to the JSON property `recordTransformations` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2RecordTransformations] | ||
|  |         attr_accessor :record_transformations | ||
|  |        | ||
|  |         # How to handle transformation errors during de-identification. A transformation | ||
|  |         # error occurs when the requested transformation is incompatible with the data. | ||
|  |         # For example, trying to de-identify an IP address using a `DateShift` | ||
|  |         # transformation would result in a transformation error, since date info cannot | ||
|  |         # be extracted from an IP address. Information about any incompatible | ||
|  |         # transformations, and how they were handled, is returned in the response as | ||
|  |         # part of the `TransformationOverviews`. | ||
|  |         # Corresponds to the JSON property `transformationErrorHandling` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TransformationErrorHandling] | ||
|  |         attr_accessor :transformation_error_handling | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @info_type_transformations = args[:info_type_transformations] if args.key?(:info_type_transformations) | ||
|  |           @record_transformations = args[:record_transformations] if args.key?(:record_transformations) | ||
|  |           @transformation_error_handling = args[:transformation_error_handling] if args.key?(:transformation_error_handling) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request to de-identify a list of items. | ||
|  |       class GooglePrivacyDlpV2DeidentifyContentRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The configuration that controls how the data will change. | ||
|  |         # Corresponds to the JSON property `deidentifyConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DeidentifyConfig] | ||
|  |         attr_accessor :deidentify_config | ||
|  |        | ||
|  |         # Template to use. Any configuration directly specified in deidentify_config | ||
|  |         # will override those set in the template. Singular fields that are set in this | ||
|  |         # request will replace their corresponding fields in the template. Repeated | ||
|  |         # fields are appended. Singular sub-messages and groups are recursively merged. | ||
|  |         # Corresponds to the JSON property `deidentifyTemplateName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :deidentify_template_name | ||
|  |        | ||
|  |         # Configuration description of the scanning process. When used with | ||
|  |         # redactContent only info_types and min_likelihood are currently used. | ||
|  |         # Corresponds to the JSON property `inspectConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectConfig] | ||
|  |         attr_accessor :inspect_config | ||
|  |        | ||
|  |         # Template to use. Any configuration directly specified in inspect_config will | ||
|  |         # override those set in the template. Singular fields that are set in this | ||
|  |         # request will replace their corresponding fields in the template. Repeated | ||
|  |         # fields are appended. Singular sub-messages and groups are recursively merged. | ||
|  |         # Corresponds to the JSON property `inspectTemplateName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :inspect_template_name | ||
|  |        | ||
|  |         # Container structure for the content to inspect. | ||
|  |         # Corresponds to the JSON property `item` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ContentItem] | ||
|  |         attr_accessor :item | ||
|  |        | ||
|  |         # Deprecated. This field has no effect. | ||
|  |         # Corresponds to the JSON property `locationId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :location_id | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @deidentify_config = args[:deidentify_config] if args.key?(:deidentify_config) | ||
|  |           @deidentify_template_name = args[:deidentify_template_name] if args.key?(:deidentify_template_name) | ||
|  |           @inspect_config = args[:inspect_config] if args.key?(:inspect_config) | ||
|  |           @inspect_template_name = args[:inspect_template_name] if args.key?(:inspect_template_name) | ||
|  |           @item = args[:item] if args.key?(:item) | ||
|  |           @location_id = args[:location_id] if args.key?(:location_id) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Results of de-identifying a ContentItem. | ||
|  |       class GooglePrivacyDlpV2DeidentifyContentResponse | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Container structure for the content to inspect. | ||
|  |         # Corresponds to the JSON property `item` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ContentItem] | ||
|  |         attr_accessor :item | ||
|  |        | ||
|  |         # Overview of the modifications that occurred. | ||
|  |         # Corresponds to the JSON property `overview` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TransformationOverview] | ||
|  |         attr_accessor :overview | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @item = args[:item] if args.key?(:item) | ||
|  |           @overview = args[:overview] if args.key?(:overview) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # DeidentifyTemplates contains instructions on how to de-identify content. See | ||
|  |       # https://cloud.google.com/dlp/docs/concepts-templates to learn more. | ||
|  |       class GooglePrivacyDlpV2DeidentifyTemplate | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Output only. The creation timestamp of an inspectTemplate. | ||
|  |         # Corresponds to the JSON property `createTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :create_time | ||
|  |        | ||
|  |         # The configuration that controls how the data will change. | ||
|  |         # Corresponds to the JSON property `deidentifyConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DeidentifyConfig] | ||
|  |         attr_accessor :deidentify_config | ||
|  |        | ||
|  |         # Short description (max 256 chars). | ||
|  |         # Corresponds to the JSON property `description` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :description | ||
|  |        | ||
|  |         # Display name (max 256 chars). | ||
|  |         # Corresponds to the JSON property `displayName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :display_name | ||
|  |        | ||
|  |         # Output only. The template name. The template will have one of the following | ||
|  |         # formats: `projects/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID` OR ` | ||
|  |         # organizations/ORGANIZATION_ID/deidentifyTemplates/TEMPLATE_ID` | ||
|  |         # Corresponds to the JSON property `name` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :name | ||
|  |        | ||
|  |         # Output only. The last update timestamp of an inspectTemplate. | ||
|  |         # Corresponds to the JSON property `updateTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :update_time | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @create_time = args[:create_time] if args.key?(:create_time) | ||
|  |           @deidentify_config = args[:deidentify_config] if args.key?(:deidentify_config) | ||
|  |           @description = args[:description] if args.key?(:description) | ||
|  |           @display_name = args[:display_name] if args.key?(:display_name) | ||
|  |           @name = args[:name] if args.key?(:name) | ||
|  |           @update_time = args[:update_time] if args.key?(:update_time) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # δ-presence metric, used to estimate how likely it is for an attacker to figure | ||
|  |       # out that one given individual appears in a de-identified dataset. Similarly to | ||
|  |       # the k-map metric, we cannot compute δ-presence exactly without knowing the | ||
|  |       # attack dataset, so we use a statistical model instead. | ||
|  |       class GooglePrivacyDlpV2DeltaPresenceEstimationConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Several auxiliary tables can be used in the analysis. Each custom_tag used to | ||
|  |         # tag a quasi-identifiers field must appear in exactly one field of one | ||
|  |         # auxiliary table. | ||
|  |         # Corresponds to the JSON property `auxiliaryTables` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2StatisticalTable>] | ||
|  |         attr_accessor :auxiliary_tables | ||
|  |        | ||
|  |         # Required. Fields considered to be quasi-identifiers. No two fields can have | ||
|  |         # the same tag. | ||
|  |         # Corresponds to the JSON property `quasiIds` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2QuasiId>] | ||
|  |         attr_accessor :quasi_ids | ||
|  |        | ||
|  |         # ISO 3166-1 alpha-2 region code to use in the statistical modeling. Set if no | ||
|  |         # column is tagged with a region-specific InfoType (like US_ZIP_5) or a region | ||
|  |         # code. | ||
|  |         # Corresponds to the JSON property `regionCode` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :region_code | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @auxiliary_tables = args[:auxiliary_tables] if args.key?(:auxiliary_tables) | ||
|  |           @quasi_ids = args[:quasi_ids] if args.key?(:quasi_ids) | ||
|  |           @region_code = args[:region_code] if args.key?(:region_code) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A DeltaPresenceEstimationHistogramBucket message with the following values: | ||
|  |       # min_probability: 0.1 max_probability: 0.2 frequency: 42 means that there are | ||
|  |       # 42 records for which δ is in [0.1, 0.2). An important particular case is when | ||
|  |       # min_probability = max_probability = 1: then, every individual who shares this | ||
|  |       # quasi-identifier combination is in the dataset. | ||
|  |       class GooglePrivacyDlpV2DeltaPresenceEstimationHistogramBucket | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Number of records within these probability bounds. | ||
|  |         # Corresponds to the JSON property `bucketSize` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :bucket_size | ||
|  |        | ||
|  |         # Total number of distinct quasi-identifier tuple values in this bucket. | ||
|  |         # Corresponds to the JSON property `bucketValueCount` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :bucket_value_count | ||
|  |        | ||
|  |         # Sample of quasi-identifier tuple values in this bucket. The total number of | ||
|  |         # classes returned per bucket is capped at 20. | ||
|  |         # Corresponds to the JSON property `bucketValues` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2DeltaPresenceEstimationQuasiIdValues>] | ||
|  |         attr_accessor :bucket_values | ||
|  |        | ||
|  |         # Always greater than or equal to min_probability. | ||
|  |         # Corresponds to the JSON property `maxProbability` | ||
|  |         # @return [Float] | ||
|  |         attr_accessor :max_probability | ||
|  |        | ||
|  |         # Between 0 and 1. | ||
|  |         # Corresponds to the JSON property `minProbability` | ||
|  |         # @return [Float] | ||
|  |         attr_accessor :min_probability | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @bucket_size = args[:bucket_size] if args.key?(:bucket_size) | ||
|  |           @bucket_value_count = args[:bucket_value_count] if args.key?(:bucket_value_count) | ||
|  |           @bucket_values = args[:bucket_values] if args.key?(:bucket_values) | ||
|  |           @max_probability = args[:max_probability] if args.key?(:max_probability) | ||
|  |           @min_probability = args[:min_probability] if args.key?(:min_probability) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A tuple of values for the quasi-identifier columns. | ||
|  |       class GooglePrivacyDlpV2DeltaPresenceEstimationQuasiIdValues | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The estimated probability that a given individual sharing these quasi- | ||
|  |         # identifier values is in the dataset. This value, typically called δ, is the | ||
|  |         # ratio between the number of records in the dataset with these quasi-identifier | ||
|  |         # values, and the total number of individuals (inside *and* outside the dataset) | ||
|  |         # with these quasi-identifier values. For example, if there are 15 individuals | ||
|  |         # in the dataset who share the same quasi-identifier values, and an estimated | ||
|  |         # 100 people in the entire population with these values, then δ is 0.15. | ||
|  |         # Corresponds to the JSON property `estimatedProbability` | ||
|  |         # @return [Float] | ||
|  |         attr_accessor :estimated_probability | ||
|  |        | ||
|  |         # The quasi-identifier values. | ||
|  |         # Corresponds to the JSON property `quasiIdsValues` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Value>] | ||
|  |         attr_accessor :quasi_ids_values | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @estimated_probability = args[:estimated_probability] if args.key?(:estimated_probability) | ||
|  |           @quasi_ids_values = args[:quasi_ids_values] if args.key?(:quasi_ids_values) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Result of the δ-presence computation. Note that these results are an | ||
|  |       # estimation, not exact values. | ||
|  |       class GooglePrivacyDlpV2DeltaPresenceEstimationResult | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The intervals [min_probability, max_probability) do not overlap. If a value | ||
|  |         # doesn't correspond to any such interval, the associated frequency is zero. For | ||
|  |         # example, the following records: `min_probability: 0, max_probability: 0.1, | ||
|  |         # frequency: 17` `min_probability: 0.2, max_probability: 0.3, frequency: 42` ` | ||
|  |         # min_probability: 0.3, max_probability: 0.4, frequency: 99` mean that there are | ||
|  |         # no record with an estimated probability in [0.1, 0.2) nor larger or equal to 0. | ||
|  |         # 4. | ||
|  |         # Corresponds to the JSON property `deltaPresenceEstimationHistogram` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2DeltaPresenceEstimationHistogramBucket>] | ||
|  |         attr_accessor :delta_presence_estimation_histogram | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @delta_presence_estimation_histogram = args[:delta_presence_estimation_histogram] if args.key?(:delta_presence_estimation_histogram) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Deprecated; use `InspectionRuleSet` instead. Rule for modifying a ` | ||
|  |       # CustomInfoType` to alter behavior under certain circumstances, depending on | ||
|  |       # the specific details of the rule. Not supported for the `surrogate_type` | ||
|  |       # custom infoType. | ||
|  |       class GooglePrivacyDlpV2DetectionRule | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The rule that adjusts the likelihood of findings within a certain proximity of | ||
|  |         # hotwords. | ||
|  |         # Corresponds to the JSON property `hotwordRule` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2HotwordRule] | ||
|  |         attr_accessor :hotword_rule | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @hotword_rule = args[:hotword_rule] if args.key?(:hotword_rule) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Custom information type based on a dictionary of words or phrases. This can be | ||
|  |       # used to match sensitive information specific to the data, such as a list of | ||
|  |       # employee IDs or job titles. Dictionary words are case-insensitive and all | ||
|  |       # characters other than letters and digits in the unicode [Basic Multilingual | ||
|  |       # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29# | ||
|  |       # Basic_Multilingual_Plane) will be replaced with whitespace when scanning for | ||
|  |       # matches, so the dictionary phrase "Sam Johnson" will match all three phrases " | ||
|  |       # sam johnson", "Sam, Johnson", and "Sam (Johnson)". Additionally, the | ||
|  |       # characters surrounding any match must be of a different type than the adjacent | ||
|  |       # characters within the word, so letters must be next to non-letters and digits | ||
|  |       # next to non-digits. For example, the dictionary word "jen" will match the | ||
|  |       # first three letters of the text "jen123" but will return no matches for " | ||
|  |       # jennifer". Dictionary words containing a large number of characters that are | ||
|  |       # not letters or digits may result in unexpected findings because such | ||
|  |       # characters are treated as whitespace. The [limits](https://cloud.google.com/ | ||
|  |       # dlp/limits) page contains details about the size limits of dictionaries. For | ||
|  |       # dictionaries that do not fit within these constraints, consider using ` | ||
|  |       # LargeCustomDictionaryConfig` in the `StoredInfoType` API. | ||
|  |       class GooglePrivacyDlpV2Dictionary | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Message representing a single file or path in Cloud Storage. | ||
|  |         # Corresponds to the JSON property `cloudStoragePath` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CloudStoragePath] | ||
|  |         attr_accessor :cloud_storage_path | ||
|  |        | ||
|  |         # Message defining a list of words or phrases to search for in the data. | ||
|  |         # Corresponds to the JSON property `wordList` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2WordList] | ||
|  |         attr_accessor :word_list | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @cloud_storage_path = args[:cloud_storage_path] if args.key?(:cloud_storage_path) | ||
|  |           @word_list = args[:word_list] if args.key?(:word_list) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Combines all of the information about a DLP job. | ||
|  |       class GooglePrivacyDlpV2DlpJob | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Time when the job was created. | ||
|  |         # Corresponds to the JSON property `createTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :create_time | ||
|  |        | ||
|  |         # Time when the job finished. | ||
|  |         # Corresponds to the JSON property `endTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :end_time | ||
|  |        | ||
|  |         # A stream of errors encountered running the job. | ||
|  |         # Corresponds to the JSON property `errors` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Error>] | ||
|  |         attr_accessor :errors | ||
|  |        | ||
|  |         # The results of an inspect DataSource job. | ||
|  |         # Corresponds to the JSON property `inspectDetails` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectDataSourceDetails] | ||
|  |         attr_accessor :inspect_details | ||
|  |        | ||
|  |         # If created by a job trigger, the resource name of the trigger that | ||
|  |         # instantiated the job. | ||
|  |         # Corresponds to the JSON property `jobTriggerName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :job_trigger_name | ||
|  |        | ||
|  |         # The server-assigned name. | ||
|  |         # Corresponds to the JSON property `name` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :name | ||
|  |        | ||
|  |         # Result of a risk analysis operation request. | ||
|  |         # Corresponds to the JSON property `riskDetails` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2AnalyzeDataSourceRiskDetails] | ||
|  |         attr_accessor :risk_details | ||
|  |        | ||
|  |         # Time when the job started. | ||
|  |         # Corresponds to the JSON property `startTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :start_time | ||
|  |        | ||
|  |         # State of a job. | ||
|  |         # Corresponds to the JSON property `state` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :state | ||
|  |        | ||
|  |         # The type of job. | ||
|  |         # Corresponds to the JSON property `type` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :type | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @create_time = args[:create_time] if args.key?(:create_time) | ||
|  |           @end_time = args[:end_time] if args.key?(:end_time) | ||
|  |           @errors = args[:errors] if args.key?(:errors) | ||
|  |           @inspect_details = args[:inspect_details] if args.key?(:inspect_details) | ||
|  |           @job_trigger_name = args[:job_trigger_name] if args.key?(:job_trigger_name) | ||
|  |           @name = args[:name] if args.key?(:name) | ||
|  |           @risk_details = args[:risk_details] if args.key?(:risk_details) | ||
|  |           @start_time = args[:start_time] if args.key?(:start_time) | ||
|  |           @state = args[:state] if args.key?(:state) | ||
|  |           @type = args[:type] if args.key?(:type) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Location of a finding within a document. | ||
|  |       class GooglePrivacyDlpV2DocumentLocation | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Offset of the line, from the beginning of the file, where the finding is | ||
|  |         # located. | ||
|  |         # Corresponds to the JSON property `fileOffset` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :file_offset | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @file_offset = args[:file_offset] if args.key?(:file_offset) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # An entity in a dataset is a field or set of fields that correspond to a single | ||
|  |       # person. For example, in medical records the `EntityId` might be a patient | ||
|  |       # identifier, or for financial records it might be an account identifier. This | ||
|  |       # message is used when generalizations or analysis must take into account that | ||
|  |       # multiple rows correspond to the same entity. | ||
|  |       class GooglePrivacyDlpV2EntityId | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `field` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :field | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @field = args[:field] if args.key?(:field) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Details information about an error encountered during job execution or the | ||
|  |       # results of an unsuccessful activation of the JobTrigger. | ||
|  |       class GooglePrivacyDlpV2Error | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The `Status` type defines a logical error model that is suitable for different | ||
|  |         # programming environments, including REST APIs and RPC APIs. It is used by [ | ||
|  |         # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of | ||
|  |         # data: error code, error message, and error details. You can find out more | ||
|  |         # about this error model and how to work with it in the [API Design Guide](https: | ||
|  |         # //cloud.google.com/apis/design/errors). | ||
|  |         # Corresponds to the JSON property `details` | ||
|  |         # @return [Google::Apis::DlpV2::GoogleRpcStatus] | ||
|  |         attr_accessor :details | ||
|  |        | ||
|  |         # The times the error occurred. | ||
|  |         # Corresponds to the JSON property `timestamps` | ||
|  |         # @return [Array<String>] | ||
|  |         attr_accessor :timestamps | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @details = args[:details] if args.key?(:details) | ||
|  |           @timestamps = args[:timestamps] if args.key?(:timestamps) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # List of exclude infoTypes. | ||
|  |       class GooglePrivacyDlpV2ExcludeInfoTypes | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # InfoType list in ExclusionRule rule drops a finding when it overlaps or | ||
|  |         # contained within with a finding of an infoType from this list. For example, | ||
|  |         # for `InspectionRuleSet.info_types` containing "PHONE_NUMBER"` and ` | ||
|  |         # exclusion_rule` containing `exclude_info_types.info_types` with "EMAIL_ADDRESS" | ||
|  |         # the phone number findings are dropped if they overlap with EMAIL_ADDRESS | ||
|  |         # finding. That leads to "555-222-2222@example.org" to generate only a single | ||
|  |         # finding, namely email address. | ||
|  |         # Corresponds to the JSON property `infoTypes` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType>] | ||
|  |         attr_accessor :info_types | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @info_types = args[:info_types] if args.key?(:info_types) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # The rule that specifies conditions when findings of infoTypes specified in ` | ||
|  |       # InspectionRuleSet` are removed from results. | ||
|  |       class GooglePrivacyDlpV2ExclusionRule | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Custom information type based on a dictionary of words or phrases. This can be | ||
|  |         # used to match sensitive information specific to the data, such as a list of | ||
|  |         # employee IDs or job titles. Dictionary words are case-insensitive and all | ||
|  |         # characters other than letters and digits in the unicode [Basic Multilingual | ||
|  |         # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29# | ||
|  |         # Basic_Multilingual_Plane) will be replaced with whitespace when scanning for | ||
|  |         # matches, so the dictionary phrase "Sam Johnson" will match all three phrases " | ||
|  |         # sam johnson", "Sam, Johnson", and "Sam (Johnson)". Additionally, the | ||
|  |         # characters surrounding any match must be of a different type than the adjacent | ||
|  |         # characters within the word, so letters must be next to non-letters and digits | ||
|  |         # next to non-digits. For example, the dictionary word "jen" will match the | ||
|  |         # first three letters of the text "jen123" but will return no matches for " | ||
|  |         # jennifer". Dictionary words containing a large number of characters that are | ||
|  |         # not letters or digits may result in unexpected findings because such | ||
|  |         # characters are treated as whitespace. The [limits](https://cloud.google.com/ | ||
|  |         # dlp/limits) page contains details about the size limits of dictionaries. For | ||
|  |         # dictionaries that do not fit within these constraints, consider using ` | ||
|  |         # LargeCustomDictionaryConfig` in the `StoredInfoType` API. | ||
|  |         # Corresponds to the JSON property `dictionary` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Dictionary] | ||
|  |         attr_accessor :dictionary | ||
|  |        | ||
|  |         # List of exclude infoTypes. | ||
|  |         # Corresponds to the JSON property `excludeInfoTypes` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ExcludeInfoTypes] | ||
|  |         attr_accessor :exclude_info_types | ||
|  |        | ||
|  |         # How the rule is applied, see MatchingType documentation for details. | ||
|  |         # Corresponds to the JSON property `matchingType` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :matching_type | ||
|  |        | ||
|  |         # Message defining a custom regular expression. | ||
|  |         # Corresponds to the JSON property `regex` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Regex] | ||
|  |         attr_accessor :regex | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @dictionary = args[:dictionary] if args.key?(:dictionary) | ||
|  |           @exclude_info_types = args[:exclude_info_types] if args.key?(:exclude_info_types) | ||
|  |           @matching_type = args[:matching_type] if args.key?(:matching_type) | ||
|  |           @regex = args[:regex] if args.key?(:regex) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # An expression, consisting or an operator and conditions. | ||
|  |       class GooglePrivacyDlpV2Expressions | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A collection of conditions. | ||
|  |         # Corresponds to the JSON property `conditions` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Conditions] | ||
|  |         attr_accessor :conditions | ||
|  |        | ||
|  |         # The operator to apply to the result of conditions. Default and currently only | ||
|  |         # supported value is `AND`. | ||
|  |         # Corresponds to the JSON property `logicalOperator` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :logical_operator | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @conditions = args[:conditions] if args.key?(:conditions) | ||
|  |           @logical_operator = args[:logical_operator] if args.key?(:logical_operator) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # General identifier of a data field in a storage service. | ||
|  |       class GooglePrivacyDlpV2FieldId | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Name describing the field. | ||
|  |         # Corresponds to the JSON property `name` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :name | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @name = args[:name] if args.key?(:name) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # The transformation to apply to the field. | ||
|  |       class GooglePrivacyDlpV2FieldTransformation | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A condition for determining whether a transformation should be applied to a | ||
|  |         # field. | ||
|  |         # Corresponds to the JSON property `condition` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2RecordCondition] | ||
|  |         attr_accessor :condition | ||
|  |        | ||
|  |         # Required. Input field(s) to apply the transformation to. | ||
|  |         # Corresponds to the JSON property `fields` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId>] | ||
|  |         attr_accessor :fields | ||
|  |        | ||
|  |         # A type of transformation that will scan unstructured text and apply various ` | ||
|  |         # PrimitiveTransformation`s to each finding, where the transformation is applied | ||
|  |         # to only values that were identified as a specific info_type. | ||
|  |         # Corresponds to the JSON property `infoTypeTransformations` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InfoTypeTransformations] | ||
|  |         attr_accessor :info_type_transformations | ||
|  |        | ||
|  |         # A rule for transforming a value. | ||
|  |         # Corresponds to the JSON property `primitiveTransformation` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2PrimitiveTransformation] | ||
|  |         attr_accessor :primitive_transformation | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @condition = args[:condition] if args.key?(:condition) | ||
|  |           @fields = args[:fields] if args.key?(:fields) | ||
|  |           @info_type_transformations = args[:info_type_transformations] if args.key?(:info_type_transformations) | ||
|  |           @primitive_transformation = args[:primitive_transformation] if args.key?(:primitive_transformation) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Set of files to scan. | ||
|  |       class GooglePrivacyDlpV2FileSet | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Message representing a set of files in a Cloud Storage bucket. Regular | ||
|  |         # expressions are used to allow fine-grained control over which files in the | ||
|  |         # bucket to include. Included files are those that match at least one item in ` | ||
|  |         # include_regex` and do not match any items in `exclude_regex`. Note that a file | ||
|  |         # that matches items from both lists will _not_ be included. For a match to | ||
|  |         # occur, the entire file path (i.e., everything in the url after the bucket name) | ||
|  |         # must match the regular expression. For example, given the input ``bucket_name: | ||
|  |         # "mybucket", include_regex: ["directory1/.*"], exclude_regex: ["directory1/ | ||
|  |         # excluded.*"]``: * `gs://mybucket/directory1/myfile` will be included * `gs:// | ||
|  |         # mybucket/directory1/directory2/myfile` will be included (`.*` matches across `/ | ||
|  |         # `) * `gs://mybucket/directory0/directory1/myfile` will _not_ be included (the | ||
|  |         # full path doesn't match any items in `include_regex`) * `gs://mybucket/ | ||
|  |         # directory1/excludedfile` will _not_ be included (the path matches an item in ` | ||
|  |         # exclude_regex`) If `include_regex` is left empty, it will match all files by | ||
|  |         # default (this is equivalent to setting `include_regex: [".*"]`). Some other | ||
|  |         # common use cases: * ``bucket_name: "mybucket", exclude_regex: [".*\.pdf"]`` | ||
|  |         # will include all files in `mybucket` except for .pdf files * ``bucket_name: " | ||
|  |         # mybucket", include_regex: ["directory/[^/]+"]`` will include all files | ||
|  |         # directly under `gs://mybucket/directory/`, without matching across `/` | ||
|  |         # Corresponds to the JSON property `regexFileSet` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CloudStorageRegexFileSet] | ||
|  |         attr_accessor :regex_file_set | ||
|  |        | ||
|  |         # The Cloud Storage url of the file(s) to scan, in the format `gs:///`. Trailing | ||
|  |         # wildcard in the path is allowed. If the url ends in a trailing slash, the | ||
|  |         # bucket or directory represented by the url will be scanned non-recursively ( | ||
|  |         # content in sub-directories will not be scanned). This means that `gs:// | ||
|  |         # mybucket/` is equivalent to `gs://mybucket/*`, and `gs://mybucket/directory/` | ||
|  |         # is equivalent to `gs://mybucket/directory/*`. Exactly one of `url` or ` | ||
|  |         # regex_file_set` must be set. | ||
|  |         # Corresponds to the JSON property `url` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :url | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @regex_file_set = args[:regex_file_set] if args.key?(:regex_file_set) | ||
|  |           @url = args[:url] if args.key?(:url) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Represents a piece of potentially sensitive content. | ||
|  |       class GooglePrivacyDlpV2Finding | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Timestamp when finding was detected. | ||
|  |         # Corresponds to the JSON property `createTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :create_time | ||
|  |        | ||
|  |         # The unique finding id. | ||
|  |         # Corresponds to the JSON property `findingId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :finding_id | ||
|  |        | ||
|  |         # Type of information detected by the API. | ||
|  |         # Corresponds to the JSON property `infoType` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType] | ||
|  |         attr_accessor :info_type | ||
|  |        | ||
|  |         # Time the job started that produced this finding. | ||
|  |         # Corresponds to the JSON property `jobCreateTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :job_create_time | ||
|  |        | ||
|  |         # The job that stored the finding. | ||
|  |         # Corresponds to the JSON property `jobName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :job_name | ||
|  |        | ||
|  |         # The labels associated with this `Finding`. Label keys must be between 1 and 63 | ||
|  |         # characters long and must conform to the following regular expression: `[a-z]([- | ||
|  |         # a-z0-9]*[a-z0-9])?`. Label values must be between 0 and 63 characters long and | ||
|  |         # must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. No | ||
|  |         # more than 10 labels can be associated with a given finding. Examples: * `" | ||
|  |         # environment" : "production"` * `"pipeline" : "etl"` | ||
|  |         # Corresponds to the JSON property `labels` | ||
|  |         # @return [Hash<String,String>] | ||
|  |         attr_accessor :labels | ||
|  |        | ||
|  |         # Confidence of how likely it is that the `info_type` is correct. | ||
|  |         # Corresponds to the JSON property `likelihood` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :likelihood | ||
|  |        | ||
|  |         # Specifies the location of the finding. | ||
|  |         # Corresponds to the JSON property `location` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Location] | ||
|  |         attr_accessor :location | ||
|  |        | ||
|  |         # Resource name in format projects/`project`/locations/`location`/findings/` | ||
|  |         # finding` Populated only when viewing persisted findings. | ||
|  |         # Corresponds to the JSON property `name` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :name | ||
|  |        | ||
|  |         # The content that was found. Even if the content is not textual, it may be | ||
|  |         # converted to a textual representation here. Provided if `include_quote` is | ||
|  |         # true and the finding is less than or equal to 4096 bytes long. If the finding | ||
|  |         # exceeds 4096 bytes in length, the quote may be omitted. | ||
|  |         # Corresponds to the JSON property `quote` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :quote | ||
|  |        | ||
|  |         # Message for infoType-dependent details parsed from quote. | ||
|  |         # Corresponds to the JSON property `quoteInfo` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2QuoteInfo] | ||
|  |         attr_accessor :quote_info | ||
|  |        | ||
|  |         # The job that stored the finding. | ||
|  |         # Corresponds to the JSON property `resourceName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :resource_name | ||
|  |        | ||
|  |         # Job trigger name, if applicable, for this finding. | ||
|  |         # Corresponds to the JSON property `triggerName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :trigger_name | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @create_time = args[:create_time] if args.key?(:create_time) | ||
|  |           @finding_id = args[:finding_id] if args.key?(:finding_id) | ||
|  |           @info_type = args[:info_type] if args.key?(:info_type) | ||
|  |           @job_create_time = args[:job_create_time] if args.key?(:job_create_time) | ||
|  |           @job_name = args[:job_name] if args.key?(:job_name) | ||
|  |           @labels = args[:labels] if args.key?(:labels) | ||
|  |           @likelihood = args[:likelihood] if args.key?(:likelihood) | ||
|  |           @location = args[:location] if args.key?(:location) | ||
|  |           @name = args[:name] if args.key?(:name) | ||
|  |           @quote = args[:quote] if args.key?(:quote) | ||
|  |           @quote_info = args[:quote_info] if args.key?(:quote_info) | ||
|  |           @resource_name = args[:resource_name] if args.key?(:resource_name) | ||
|  |           @trigger_name = args[:trigger_name] if args.key?(:trigger_name) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Configuration to control the number of findings returned. | ||
|  |       class GooglePrivacyDlpV2FindingLimits | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Configuration of findings limit given for specified infoTypes. | ||
|  |         # Corresponds to the JSON property `maxFindingsPerInfoType` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2InfoTypeLimit>] | ||
|  |         attr_accessor :max_findings_per_info_type | ||
|  |        | ||
|  |         # Max number of findings that will be returned for each item scanned. When set | ||
|  |         # within `InspectJobConfig`, the maximum returned is 2000 regardless if this is | ||
|  |         # set higher. When set within `InspectContentRequest`, this field is ignored. | ||
|  |         # Corresponds to the JSON property `maxFindingsPerItem` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :max_findings_per_item | ||
|  |        | ||
|  |         # Max number of findings that will be returned per request/job. When set within ` | ||
|  |         # InspectContentRequest`, the maximum returned is 2000 regardless if this is set | ||
|  |         # higher. | ||
|  |         # Corresponds to the JSON property `maxFindingsPerRequest` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :max_findings_per_request | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @max_findings_per_info_type = args[:max_findings_per_info_type] if args.key?(:max_findings_per_info_type) | ||
|  |           @max_findings_per_item = args[:max_findings_per_item] if args.key?(:max_findings_per_item) | ||
|  |           @max_findings_per_request = args[:max_findings_per_request] if args.key?(:max_findings_per_request) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # The request message for finishing a DLP hybrid job. | ||
|  |       class GooglePrivacyDlpV2FinishDlpJobRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Buckets values based on fixed size ranges. The Bucketing transformation can | ||
|  |       # provide all of this functionality, but requires more configuration. This | ||
|  |       # message is provided as a convenience to the user for simple bucketing | ||
|  |       # strategies. The transformed value will be a hyphenated string of `lower_bound`- | ||
|  |       # `upper_bound`, i.e if lower_bound = 10 and upper_bound = 20 all values that | ||
|  |       # are within this bucket will be replaced with "10-20". This can be used on data | ||
|  |       # of type: double, long. If the bound Value type differs from the type of data | ||
|  |       # being transformed, we will first attempt converting the type of the data to be | ||
|  |       # transformed to match the type of the bound before comparing. See https://cloud. | ||
|  |       # google.com/dlp/docs/concepts-bucketing to learn more. | ||
|  |       class GooglePrivacyDlpV2FixedSizeBucketingConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Required. Size of each bucket (except for minimum and maximum buckets). So if ` | ||
|  |         # lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the | ||
|  |         # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, | ||
|  |         # 70-80, 80-89, 89+. Precision up to 2 decimals works. | ||
|  |         # Corresponds to the JSON property `bucketSize` | ||
|  |         # @return [Float] | ||
|  |         attr_accessor :bucket_size | ||
|  |        | ||
|  |         # Set of primitive values supported by the system. Note that for the purposes of | ||
|  |         # inspection or transformation, the number of bytes considered to comprise a ' | ||
|  |         # Value' is based on its representation as a UTF-8 encoded string. For example, | ||
|  |         # if 'integer_value' is set to 123456789, the number of bytes would be counted | ||
|  |         # as 9, even though an int64 only holds up to 8 bytes of data. | ||
|  |         # Corresponds to the JSON property `lowerBound` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Value] | ||
|  |         attr_accessor :lower_bound | ||
|  |        | ||
|  |         # Set of primitive values supported by the system. Note that for the purposes of | ||
|  |         # inspection or transformation, the number of bytes considered to comprise a ' | ||
|  |         # Value' is based on its representation as a UTF-8 encoded string. For example, | ||
|  |         # if 'integer_value' is set to 123456789, the number of bytes would be counted | ||
|  |         # as 9, even though an int64 only holds up to 8 bytes of data. | ||
|  |         # Corresponds to the JSON property `upperBound` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Value] | ||
|  |         attr_accessor :upper_bound | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @bucket_size = args[:bucket_size] if args.key?(:bucket_size) | ||
|  |           @lower_bound = args[:lower_bound] if args.key?(:lower_bound) | ||
|  |           @upper_bound = args[:upper_bound] if args.key?(:upper_bound) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # The rule that adjusts the likelihood of findings within a certain proximity of | ||
|  |       # hotwords. | ||
|  |       class GooglePrivacyDlpV2HotwordRule | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Message defining a custom regular expression. | ||
|  |         # Corresponds to the JSON property `hotwordRegex` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Regex] | ||
|  |         attr_accessor :hotword_regex | ||
|  |        | ||
|  |         # Message for specifying an adjustment to the likelihood of a finding as part of | ||
|  |         # a detection rule. | ||
|  |         # Corresponds to the JSON property `likelihoodAdjustment` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2LikelihoodAdjustment] | ||
|  |         attr_accessor :likelihood_adjustment | ||
|  |        | ||
|  |         # Message for specifying a window around a finding to apply a detection rule. | ||
|  |         # Corresponds to the JSON property `proximity` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Proximity] | ||
|  |         attr_accessor :proximity | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @hotword_regex = args[:hotword_regex] if args.key?(:hotword_regex) | ||
|  |           @likelihood_adjustment = args[:likelihood_adjustment] if args.key?(:likelihood_adjustment) | ||
|  |           @proximity = args[:proximity] if args.key?(:proximity) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # An individual hybrid item to inspect. Will be stored temporarily during | ||
|  |       # processing. | ||
|  |       class GooglePrivacyDlpV2HybridContentItem | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Populate to associate additional data with each finding. | ||
|  |         # Corresponds to the JSON property `findingDetails` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2HybridFindingDetails] | ||
|  |         attr_accessor :finding_details | ||
|  |        | ||
|  |         # Container structure for the content to inspect. | ||
|  |         # Corresponds to the JSON property `item` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ContentItem] | ||
|  |         attr_accessor :item | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @finding_details = args[:finding_details] if args.key?(:finding_details) | ||
|  |           @item = args[:item] if args.key?(:item) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Populate to associate additional data with each finding. | ||
|  |       class GooglePrivacyDlpV2HybridFindingDetails | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Represents a container that may contain DLP findings. Examples of a container | ||
|  |         # include a file, table, or database record. | ||
|  |         # Corresponds to the JSON property `containerDetails` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Container] | ||
|  |         attr_accessor :container_details | ||
|  |        | ||
|  |         # Offset in bytes of the line, from the beginning of the file, where the finding | ||
|  |         # is located. Populate if the item being scanned is only part of a bigger item, | ||
|  |         # such as a shard of a file and you want to track the absolute position of the | ||
|  |         # finding. | ||
|  |         # Corresponds to the JSON property `fileOffset` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :file_offset | ||
|  |        | ||
|  |         # Labels to represent user provided metadata about the data being inspected. If | ||
|  |         # configured by the job, some key values may be required. The labels associated | ||
|  |         # with `Finding`'s produced by hybrid inspection. Label keys must be between 1 | ||
|  |         # and 63 characters long and must conform to the following regular expression: `[ | ||
|  |         # a-z]([-a-z0-9]*[a-z0-9])?`. Label values must be between 0 and 63 characters | ||
|  |         # long and must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?` | ||
|  |         # . No more than 10 labels can be associated with a given finding. Examples: * `" | ||
|  |         # environment" : "production"` * `"pipeline" : "etl"` | ||
|  |         # Corresponds to the JSON property `labels` | ||
|  |         # @return [Hash<String,String>] | ||
|  |         attr_accessor :labels | ||
|  |        | ||
|  |         # Offset of the row for tables. Populate if the row(s) being scanned are part of | ||
|  |         # a bigger dataset and you want to keep track of their absolute position. | ||
|  |         # Corresponds to the JSON property `rowOffset` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :row_offset | ||
|  |        | ||
|  |         # Instructions regarding the table content being inspected. | ||
|  |         # Corresponds to the JSON property `tableOptions` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TableOptions] | ||
|  |         attr_accessor :table_options | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @container_details = args[:container_details] if args.key?(:container_details) | ||
|  |           @file_offset = args[:file_offset] if args.key?(:file_offset) | ||
|  |           @labels = args[:labels] if args.key?(:labels) | ||
|  |           @row_offset = args[:row_offset] if args.key?(:row_offset) | ||
|  |           @table_options = args[:table_options] if args.key?(:table_options) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request to search for potentially sensitive info in a custom location. | ||
|  |       class GooglePrivacyDlpV2HybridInspectDlpJobRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # An individual hybrid item to inspect. Will be stored temporarily during | ||
|  |         # processing. | ||
|  |         # Corresponds to the JSON property `hybridItem` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2HybridContentItem] | ||
|  |         attr_accessor :hybrid_item | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @hybrid_item = args[:hybrid_item] if args.key?(:hybrid_item) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request to search for potentially sensitive info in a custom location. | ||
|  |       class GooglePrivacyDlpV2HybridInspectJobTriggerRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # An individual hybrid item to inspect. Will be stored temporarily during | ||
|  |         # processing. | ||
|  |         # Corresponds to the JSON property `hybridItem` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2HybridContentItem] | ||
|  |         attr_accessor :hybrid_item | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @hybrid_item = args[:hybrid_item] if args.key?(:hybrid_item) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Quota exceeded errors will be thrown once quota has been met. | ||
|  |       class GooglePrivacyDlpV2HybridInspectResponse | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Statistics related to processing hybrid inspect requests. | ||
|  |       class GooglePrivacyDlpV2HybridInspectStatistics | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The number of hybrid inspection requests aborted because the job ran out of | ||
|  |         # quota or was ended before they could be processed. | ||
|  |         # Corresponds to the JSON property `abortedCount` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :aborted_count | ||
|  |        | ||
|  |         # The number of hybrid requests currently being processed. Only populated when | ||
|  |         # called via method `getDlpJob`. A burst of traffic may cause hybrid inspect | ||
|  |         # requests to be enqueued. Processing will take place as quickly as possible, | ||
|  |         # but resource limitations may impact how long a request is enqueued for. | ||
|  |         # Corresponds to the JSON property `pendingCount` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :pending_count | ||
|  |        | ||
|  |         # The number of hybrid inspection requests processed within this job. | ||
|  |         # Corresponds to the JSON property `processedCount` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :processed_count | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @aborted_count = args[:aborted_count] if args.key?(:aborted_count) | ||
|  |           @pending_count = args[:pending_count] if args.key?(:pending_count) | ||
|  |           @processed_count = args[:processed_count] if args.key?(:processed_count) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Configuration to control jobs where the content being inspected is outside of | ||
|  |       # Google Cloud Platform. | ||
|  |       class GooglePrivacyDlpV2HybridOptions | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A short description of where the data is coming from. Will be stored once in | ||
|  |         # the job. 256 max length. | ||
|  |         # Corresponds to the JSON property `description` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :description | ||
|  |        | ||
|  |         # To organize findings, these labels will be added to each finding. Label keys | ||
|  |         # must be between 1 and 63 characters long and must conform to the following | ||
|  |         # regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. Label values must be between | ||
|  |         # 0 and 63 characters long and must conform to the regular expression `([a-z]([- | ||
|  |         # a-z0-9]*[a-z0-9])?)?`. No more than 10 labels can be associated with a given | ||
|  |         # finding. Examples: * `"environment" : "production"` * `"pipeline" : "etl"` | ||
|  |         # Corresponds to the JSON property `labels` | ||
|  |         # @return [Hash<String,String>] | ||
|  |         attr_accessor :labels | ||
|  |        | ||
|  |         # These are labels that each inspection request must include within their ' | ||
|  |         # finding_labels' map. Request may contain others, but any missing one of these | ||
|  |         # will be rejected. Label keys must be between 1 and 63 characters long and must | ||
|  |         # conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. No | ||
|  |         # more than 10 keys can be required. | ||
|  |         # Corresponds to the JSON property `requiredFindingLabelKeys` | ||
|  |         # @return [Array<String>] | ||
|  |         attr_accessor :required_finding_label_keys | ||
|  |        | ||
|  |         # Instructions regarding the table content being inspected. | ||
|  |         # Corresponds to the JSON property `tableOptions` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TableOptions] | ||
|  |         attr_accessor :table_options | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @description = args[:description] if args.key?(:description) | ||
|  |           @labels = args[:labels] if args.key?(:labels) | ||
|  |           @required_finding_label_keys = args[:required_finding_label_keys] if args.key?(:required_finding_label_keys) | ||
|  |           @table_options = args[:table_options] if args.key?(:table_options) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Location of the finding within an image. | ||
|  |       class GooglePrivacyDlpV2ImageLocation | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Bounding boxes locating the pixels within the image containing the finding. | ||
|  |         # Corresponds to the JSON property `boundingBoxes` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2BoundingBox>] | ||
|  |         attr_accessor :bounding_boxes | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @bounding_boxes = args[:bounding_boxes] if args.key?(:bounding_boxes) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Configuration for determining how redaction of images should occur. | ||
|  |       class GooglePrivacyDlpV2ImageRedactionConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Type of information detected by the API. | ||
|  |         # Corresponds to the JSON property `infoType` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType] | ||
|  |         attr_accessor :info_type | ||
|  |        | ||
|  |         # If true, all text found in the image, regardless whether it matches an | ||
|  |         # info_type, is redacted. Only one should be provided. | ||
|  |         # Corresponds to the JSON property `redactAllText` | ||
|  |         # @return [Boolean] | ||
|  |         attr_accessor :redact_all_text | ||
|  |         alias_method :redact_all_text?, :redact_all_text | ||
|  |        | ||
|  |         # Represents a color in the RGB color space. | ||
|  |         # Corresponds to the JSON property `redactionColor` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Color] | ||
|  |         attr_accessor :redaction_color | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @info_type = args[:info_type] if args.key?(:info_type) | ||
|  |           @redact_all_text = args[:redact_all_text] if args.key?(:redact_all_text) | ||
|  |           @redaction_color = args[:redaction_color] if args.key?(:redaction_color) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Type of information detected by the API. | ||
|  |       class GooglePrivacyDlpV2InfoType | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Name of the information type. Either a name of your choosing when creating a | ||
|  |         # CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/ | ||
|  |         # docs/infotypes-reference when specifying a built-in type. When sending Cloud | ||
|  |         # DLP results to Data Catalog, infoType names should conform to the pattern `[A- | ||
|  |         # Za-z0-9$-_]`1,64``. | ||
|  |         # Corresponds to the JSON property `name` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :name | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @name = args[:name] if args.key?(:name) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # InfoType description. | ||
|  |       class GooglePrivacyDlpV2InfoTypeDescription | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Description of the infotype. Translated when language is provided in the | ||
|  |         # request. | ||
|  |         # Corresponds to the JSON property `description` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :description | ||
|  |        | ||
|  |         # Human readable form of the infoType name. | ||
|  |         # Corresponds to the JSON property `displayName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :display_name | ||
|  |        | ||
|  |         # Internal name of the infoType. | ||
|  |         # Corresponds to the JSON property `name` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :name | ||
|  |        | ||
|  |         # Which parts of the API supports this InfoType. | ||
|  |         # Corresponds to the JSON property `supportedBy` | ||
|  |         # @return [Array<String>] | ||
|  |         attr_accessor :supported_by | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @description = args[:description] if args.key?(:description) | ||
|  |           @display_name = args[:display_name] if args.key?(:display_name) | ||
|  |           @name = args[:name] if args.key?(:name) | ||
|  |           @supported_by = args[:supported_by] if args.key?(:supported_by) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Max findings configuration per infoType, per content item or long running | ||
|  |       # DlpJob. | ||
|  |       class GooglePrivacyDlpV2InfoTypeLimit | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Type of information detected by the API. | ||
|  |         # Corresponds to the JSON property `infoType` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType] | ||
|  |         attr_accessor :info_type | ||
|  |        | ||
|  |         # Max findings limit for the given infoType. | ||
|  |         # Corresponds to the JSON property `maxFindings` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :max_findings | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @info_type = args[:info_type] if args.key?(:info_type) | ||
|  |           @max_findings = args[:max_findings] if args.key?(:max_findings) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Statistics regarding a specific InfoType. | ||
|  |       class GooglePrivacyDlpV2InfoTypeStats | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Number of findings for this infoType. | ||
|  |         # Corresponds to the JSON property `count` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :count | ||
|  |        | ||
|  |         # Type of information detected by the API. | ||
|  |         # Corresponds to the JSON property `infoType` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType] | ||
|  |         attr_accessor :info_type | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @count = args[:count] if args.key?(:count) | ||
|  |           @info_type = args[:info_type] if args.key?(:info_type) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A transformation to apply to text that is identified as a specific info_type. | ||
|  |       class GooglePrivacyDlpV2InfoTypeTransformation | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # InfoTypes to apply the transformation to. An empty list will cause this | ||
|  |         # transformation to apply to all findings that correspond to infoTypes that were | ||
|  |         # requested in `InspectConfig`. | ||
|  |         # Corresponds to the JSON property `infoTypes` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType>] | ||
|  |         attr_accessor :info_types | ||
|  |        | ||
|  |         # A rule for transforming a value. | ||
|  |         # Corresponds to the JSON property `primitiveTransformation` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2PrimitiveTransformation] | ||
|  |         attr_accessor :primitive_transformation | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @info_types = args[:info_types] if args.key?(:info_types) | ||
|  |           @primitive_transformation = args[:primitive_transformation] if args.key?(:primitive_transformation) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A type of transformation that will scan unstructured text and apply various ` | ||
|  |       # PrimitiveTransformation`s to each finding, where the transformation is applied | ||
|  |       # to only values that were identified as a specific info_type. | ||
|  |       class GooglePrivacyDlpV2InfoTypeTransformations | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Required. Transformation for each infoType. Cannot specify more than one for a | ||
|  |         # given infoType. | ||
|  |         # Corresponds to the JSON property `transformations` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2InfoTypeTransformation>] | ||
|  |         attr_accessor :transformations | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @transformations = args[:transformations] if args.key?(:transformations) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Configuration description of the scanning process. When used with | ||
|  |       # redactContent only info_types and min_likelihood are currently used. | ||
|  |       class GooglePrivacyDlpV2InspectConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # List of options defining data content to scan. If empty, text, images, and | ||
|  |         # other content will be included. | ||
|  |         # Corresponds to the JSON property `contentOptions` | ||
|  |         # @return [Array<String>] | ||
|  |         attr_accessor :content_options | ||
|  |        | ||
|  |         # CustomInfoTypes provided by the user. See https://cloud.google.com/dlp/docs/ | ||
|  |         # creating-custom-infotypes to learn more. | ||
|  |         # Corresponds to the JSON property `customInfoTypes` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2CustomInfoType>] | ||
|  |         attr_accessor :custom_info_types | ||
|  |        | ||
|  |         # When true, excludes type information of the findings. | ||
|  |         # Corresponds to the JSON property `excludeInfoTypes` | ||
|  |         # @return [Boolean] | ||
|  |         attr_accessor :exclude_info_types | ||
|  |         alias_method :exclude_info_types?, :exclude_info_types | ||
|  |        | ||
|  |         # When true, a contextual quote from the data that triggered a finding is | ||
|  |         # included in the response; see Finding.quote. | ||
|  |         # Corresponds to the JSON property `includeQuote` | ||
|  |         # @return [Boolean] | ||
|  |         attr_accessor :include_quote | ||
|  |         alias_method :include_quote?, :include_quote | ||
|  |        | ||
|  |         # Restricts what info_types to look for. The values must correspond to InfoType | ||
|  |         # values returned by ListInfoTypes or listed at https://cloud.google.com/dlp/ | ||
|  |         # docs/infotypes-reference. When no InfoTypes or CustomInfoTypes are specified | ||
|  |         # in a request, the system may automatically choose what detectors to run. By | ||
|  |         # default this may be all types, but may change over time as detectors are | ||
|  |         # updated. If you need precise control and predictability as to what detectors | ||
|  |         # are run you should specify specific InfoTypes listed in the reference, | ||
|  |         # otherwise a default list will be used, which may change over time. | ||
|  |         # Corresponds to the JSON property `infoTypes` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType>] | ||
|  |         attr_accessor :info_types | ||
|  |        | ||
|  |         # Configuration to control the number of findings returned. | ||
|  |         # Corresponds to the JSON property `limits` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FindingLimits] | ||
|  |         attr_accessor :limits | ||
|  |        | ||
|  |         # Only returns findings equal or above this threshold. The default is POSSIBLE. | ||
|  |         # See https://cloud.google.com/dlp/docs/likelihood to learn more. | ||
|  |         # Corresponds to the JSON property `minLikelihood` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :min_likelihood | ||
|  |        | ||
|  |         # Set of rules to apply to the findings for this InspectConfig. Exclusion rules, | ||
|  |         # contained in the set are executed in the end, other rules are executed in the | ||
|  |         # order they are specified for each info type. | ||
|  |         # Corresponds to the JSON property `ruleSet` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2InspectionRuleSet>] | ||
|  |         attr_accessor :rule_set | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @content_options = args[:content_options] if args.key?(:content_options) | ||
|  |           @custom_info_types = args[:custom_info_types] if args.key?(:custom_info_types) | ||
|  |           @exclude_info_types = args[:exclude_info_types] if args.key?(:exclude_info_types) | ||
|  |           @include_quote = args[:include_quote] if args.key?(:include_quote) | ||
|  |           @info_types = args[:info_types] if args.key?(:info_types) | ||
|  |           @limits = args[:limits] if args.key?(:limits) | ||
|  |           @min_likelihood = args[:min_likelihood] if args.key?(:min_likelihood) | ||
|  |           @rule_set = args[:rule_set] if args.key?(:rule_set) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request to search for potentially sensitive info in a ContentItem. | ||
|  |       class GooglePrivacyDlpV2InspectContentRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Configuration description of the scanning process. When used with | ||
|  |         # redactContent only info_types and min_likelihood are currently used. | ||
|  |         # Corresponds to the JSON property `inspectConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectConfig] | ||
|  |         attr_accessor :inspect_config | ||
|  |        | ||
|  |         # Template to use. Any configuration directly specified in inspect_config will | ||
|  |         # override those set in the template. Singular fields that are set in this | ||
|  |         # request will replace their corresponding fields in the template. Repeated | ||
|  |         # fields are appended. Singular sub-messages and groups are recursively merged. | ||
|  |         # Corresponds to the JSON property `inspectTemplateName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :inspect_template_name | ||
|  |        | ||
|  |         # Container structure for the content to inspect. | ||
|  |         # Corresponds to the JSON property `item` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ContentItem] | ||
|  |         attr_accessor :item | ||
|  |        | ||
|  |         # Deprecated. This field has no effect. | ||
|  |         # Corresponds to the JSON property `locationId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :location_id | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @inspect_config = args[:inspect_config] if args.key?(:inspect_config) | ||
|  |           @inspect_template_name = args[:inspect_template_name] if args.key?(:inspect_template_name) | ||
|  |           @item = args[:item] if args.key?(:item) | ||
|  |           @location_id = args[:location_id] if args.key?(:location_id) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Results of inspecting an item. | ||
|  |       class GooglePrivacyDlpV2InspectContentResponse | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # All the findings for a single scanned item. | ||
|  |         # Corresponds to the JSON property `result` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectResult] | ||
|  |         attr_accessor :result | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @result = args[:result] if args.key?(:result) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # The results of an inspect DataSource job. | ||
|  |       class GooglePrivacyDlpV2InspectDataSourceDetails | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Snapshot of the inspection configuration. | ||
|  |         # Corresponds to the JSON property `requestedOptions` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2RequestedOptions] | ||
|  |         attr_accessor :requested_options | ||
|  |        | ||
|  |         # All result fields mentioned below are updated while the job is processing. | ||
|  |         # Corresponds to the JSON property `result` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Result] | ||
|  |         attr_accessor :result | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @requested_options = args[:requested_options] if args.key?(:requested_options) | ||
|  |           @result = args[:result] if args.key?(:result) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Controls what and how to inspect for findings. | ||
|  |       class GooglePrivacyDlpV2InspectJobConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Actions to execute at the completion of the job. | ||
|  |         # Corresponds to the JSON property `actions` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Action>] | ||
|  |         attr_accessor :actions | ||
|  |        | ||
|  |         # Configuration description of the scanning process. When used with | ||
|  |         # redactContent only info_types and min_likelihood are currently used. | ||
|  |         # Corresponds to the JSON property `inspectConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectConfig] | ||
|  |         attr_accessor :inspect_config | ||
|  |        | ||
|  |         # If provided, will be used as the default for all values in InspectConfig. ` | ||
|  |         # inspect_config` will be merged into the values persisted as part of the | ||
|  |         # template. | ||
|  |         # Corresponds to the JSON property `inspectTemplateName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :inspect_template_name | ||
|  |        | ||
|  |         # Shared message indicating Cloud storage type. | ||
|  |         # Corresponds to the JSON property `storageConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2StorageConfig] | ||
|  |         attr_accessor :storage_config | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @actions = args[:actions] if args.key?(:actions) | ||
|  |           @inspect_config = args[:inspect_config] if args.key?(:inspect_config) | ||
|  |           @inspect_template_name = args[:inspect_template_name] if args.key?(:inspect_template_name) | ||
|  |           @storage_config = args[:storage_config] if args.key?(:storage_config) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # All the findings for a single scanned item. | ||
|  |       class GooglePrivacyDlpV2InspectResult | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # List of findings for an item. | ||
|  |         # Corresponds to the JSON property `findings` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Finding>] | ||
|  |         attr_accessor :findings | ||
|  |        | ||
|  |         # If true, then this item might have more findings than were returned, and the | ||
|  |         # findings returned are an arbitrary subset of all findings. The findings list | ||
|  |         # might be truncated because the input items were too large, or because the | ||
|  |         # server reached the maximum amount of resources allowed for a single API call. | ||
|  |         # For best results, divide the input into smaller batches. | ||
|  |         # Corresponds to the JSON property `findingsTruncated` | ||
|  |         # @return [Boolean] | ||
|  |         attr_accessor :findings_truncated | ||
|  |         alias_method :findings_truncated?, :findings_truncated | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @findings = args[:findings] if args.key?(:findings) | ||
|  |           @findings_truncated = args[:findings_truncated] if args.key?(:findings_truncated) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # The inspectTemplate contains a configuration (set of types of sensitive data | ||
|  |       # to be detected) to be used anywhere you otherwise would normally specify | ||
|  |       # InspectConfig. See https://cloud.google.com/dlp/docs/concepts-templates to | ||
|  |       # learn more. | ||
|  |       class GooglePrivacyDlpV2InspectTemplate | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Output only. The creation timestamp of an inspectTemplate. | ||
|  |         # Corresponds to the JSON property `createTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :create_time | ||
|  |        | ||
|  |         # Short description (max 256 chars). | ||
|  |         # Corresponds to the JSON property `description` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :description | ||
|  |        | ||
|  |         # Display name (max 256 chars). | ||
|  |         # Corresponds to the JSON property `displayName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :display_name | ||
|  |        | ||
|  |         # Configuration description of the scanning process. When used with | ||
|  |         # redactContent only info_types and min_likelihood are currently used. | ||
|  |         # Corresponds to the JSON property `inspectConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectConfig] | ||
|  |         attr_accessor :inspect_config | ||
|  |        | ||
|  |         # Output only. The template name. The template will have one of the following | ||
|  |         # formats: `projects/PROJECT_ID/inspectTemplates/TEMPLATE_ID` OR `organizations/ | ||
|  |         # ORGANIZATION_ID/inspectTemplates/TEMPLATE_ID`; | ||
|  |         # Corresponds to the JSON property `name` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :name | ||
|  |        | ||
|  |         # Output only. The last update timestamp of an inspectTemplate. | ||
|  |         # Corresponds to the JSON property `updateTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :update_time | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @create_time = args[:create_time] if args.key?(:create_time) | ||
|  |           @description = args[:description] if args.key?(:description) | ||
|  |           @display_name = args[:display_name] if args.key?(:display_name) | ||
|  |           @inspect_config = args[:inspect_config] if args.key?(:inspect_config) | ||
|  |           @name = args[:name] if args.key?(:name) | ||
|  |           @update_time = args[:update_time] if args.key?(:update_time) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A single inspection rule to be applied to infoTypes, specified in ` | ||
|  |       # InspectionRuleSet`. | ||
|  |       class GooglePrivacyDlpV2InspectionRule | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The rule that specifies conditions when findings of infoTypes specified in ` | ||
|  |         # InspectionRuleSet` are removed from results. | ||
|  |         # Corresponds to the JSON property `exclusionRule` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ExclusionRule] | ||
|  |         attr_accessor :exclusion_rule | ||
|  |        | ||
|  |         # The rule that adjusts the likelihood of findings within a certain proximity of | ||
|  |         # hotwords. | ||
|  |         # Corresponds to the JSON property `hotwordRule` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2HotwordRule] | ||
|  |         attr_accessor :hotword_rule | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @exclusion_rule = args[:exclusion_rule] if args.key?(:exclusion_rule) | ||
|  |           @hotword_rule = args[:hotword_rule] if args.key?(:hotword_rule) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Rule set for modifying a set of infoTypes to alter behavior under certain | ||
|  |       # circumstances, depending on the specific details of the rules within the set. | ||
|  |       class GooglePrivacyDlpV2InspectionRuleSet | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # List of infoTypes this rule set is applied to. | ||
|  |         # Corresponds to the JSON property `infoTypes` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType>] | ||
|  |         attr_accessor :info_types | ||
|  |        | ||
|  |         # Set of rules to be applied to infoTypes. The rules are applied in order. | ||
|  |         # Corresponds to the JSON property `rules` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2InspectionRule>] | ||
|  |         attr_accessor :rules | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @info_types = args[:info_types] if args.key?(:info_types) | ||
|  |           @rules = args[:rules] if args.key?(:rules) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Enable email notification to project owners and editors on jobs's completion/ | ||
|  |       # failure. | ||
|  |       class GooglePrivacyDlpV2JobNotificationEmails | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Contains a configuration to make dlp api calls on a repeating basis. See https: | ||
|  |       # //cloud.google.com/dlp/docs/concepts-job-triggers to learn more. | ||
|  |       class GooglePrivacyDlpV2JobTrigger | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Output only. The creation timestamp of a triggeredJob. | ||
|  |         # Corresponds to the JSON property `createTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :create_time | ||
|  |        | ||
|  |         # User provided description (max 256 chars) | ||
|  |         # Corresponds to the JSON property `description` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :description | ||
|  |        | ||
|  |         # Display name (max 100 chars) | ||
|  |         # Corresponds to the JSON property `displayName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :display_name | ||
|  |        | ||
|  |         # Output only. A stream of errors encountered when the trigger was activated. | ||
|  |         # Repeated errors may result in the JobTrigger automatically being paused. Will | ||
|  |         # return the last 100 errors. Whenever the JobTrigger is modified this list will | ||
|  |         # be cleared. | ||
|  |         # Corresponds to the JSON property `errors` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Error>] | ||
|  |         attr_accessor :errors | ||
|  |        | ||
|  |         # Controls what and how to inspect for findings. | ||
|  |         # Corresponds to the JSON property `inspectJob` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectJobConfig] | ||
|  |         attr_accessor :inspect_job | ||
|  |        | ||
|  |         # Output only. The timestamp of the last time this trigger executed. | ||
|  |         # Corresponds to the JSON property `lastRunTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :last_run_time | ||
|  |        | ||
|  |         # Unique resource name for the triggeredJob, assigned by the service when the | ||
|  |         # triggeredJob is created, for example `projects/dlp-test-project/jobTriggers/ | ||
|  |         # 53234423`. | ||
|  |         # Corresponds to the JSON property `name` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :name | ||
|  |        | ||
|  |         # Required. A status for this trigger. | ||
|  |         # Corresponds to the JSON property `status` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :status | ||
|  |        | ||
|  |         # A list of triggers which will be OR'ed together. Only one in the list needs to | ||
|  |         # trigger for a job to be started. The list may contain only a single Schedule | ||
|  |         # trigger and must have at least one object. | ||
|  |         # Corresponds to the JSON property `triggers` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Trigger>] | ||
|  |         attr_accessor :triggers | ||
|  |        | ||
|  |         # Output only. The last update timestamp of a triggeredJob. | ||
|  |         # Corresponds to the JSON property `updateTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :update_time | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @create_time = args[:create_time] if args.key?(:create_time) | ||
|  |           @description = args[:description] if args.key?(:description) | ||
|  |           @display_name = args[:display_name] if args.key?(:display_name) | ||
|  |           @errors = args[:errors] if args.key?(:errors) | ||
|  |           @inspect_job = args[:inspect_job] if args.key?(:inspect_job) | ||
|  |           @last_run_time = args[:last_run_time] if args.key?(:last_run_time) | ||
|  |           @name = args[:name] if args.key?(:name) | ||
|  |           @status = args[:status] if args.key?(:status) | ||
|  |           @triggers = args[:triggers] if args.key?(:triggers) | ||
|  |           @update_time = args[:update_time] if args.key?(:update_time) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # k-anonymity metric, used for analysis of reidentification risk. | ||
|  |       class GooglePrivacyDlpV2KAnonymityConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # An entity in a dataset is a field or set of fields that correspond to a single | ||
|  |         # person. For example, in medical records the `EntityId` might be a patient | ||
|  |         # identifier, or for financial records it might be an account identifier. This | ||
|  |         # message is used when generalizations or analysis must take into account that | ||
|  |         # multiple rows correspond to the same entity. | ||
|  |         # Corresponds to the JSON property `entityId` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2EntityId] | ||
|  |         attr_accessor :entity_id | ||
|  |        | ||
|  |         # Set of fields to compute k-anonymity over. When multiple fields are specified, | ||
|  |         # they are considered a single composite key. Structs and repeated data types | ||
|  |         # are not supported; however, nested fields are supported so long as they are | ||
|  |         # not structs themselves or nested within a repeated field. | ||
|  |         # Corresponds to the JSON property `quasiIds` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId>] | ||
|  |         attr_accessor :quasi_ids | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @entity_id = args[:entity_id] if args.key?(:entity_id) | ||
|  |           @quasi_ids = args[:quasi_ids] if args.key?(:quasi_ids) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # The set of columns' values that share the same ldiversity value | ||
|  |       class GooglePrivacyDlpV2KAnonymityEquivalenceClass | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Size of the equivalence class, for example number of rows with the above set | ||
|  |         # of values. | ||
|  |         # Corresponds to the JSON property `equivalenceClassSize` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :equivalence_class_size | ||
|  |        | ||
|  |         # Set of values defining the equivalence class. One value per quasi-identifier | ||
|  |         # column in the original KAnonymity metric message. The order is always the same | ||
|  |         # as the original request. | ||
|  |         # Corresponds to the JSON property `quasiIdsValues` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Value>] | ||
|  |         attr_accessor :quasi_ids_values | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @equivalence_class_size = args[:equivalence_class_size] if args.key?(:equivalence_class_size) | ||
|  |           @quasi_ids_values = args[:quasi_ids_values] if args.key?(:quasi_ids_values) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Histogram of k-anonymity equivalence classes. | ||
|  |       class GooglePrivacyDlpV2KAnonymityHistogramBucket | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Total number of equivalence classes in this bucket. | ||
|  |         # Corresponds to the JSON property `bucketSize` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :bucket_size | ||
|  |        | ||
|  |         # Total number of distinct equivalence classes in this bucket. | ||
|  |         # Corresponds to the JSON property `bucketValueCount` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :bucket_value_count | ||
|  |        | ||
|  |         # Sample of equivalence classes in this bucket. The total number of classes | ||
|  |         # returned per bucket is capped at 20. | ||
|  |         # Corresponds to the JSON property `bucketValues` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2KAnonymityEquivalenceClass>] | ||
|  |         attr_accessor :bucket_values | ||
|  |        | ||
|  |         # Lower bound on the size of the equivalence classes in this bucket. | ||
|  |         # Corresponds to the JSON property `equivalenceClassSizeLowerBound` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :equivalence_class_size_lower_bound | ||
|  |        | ||
|  |         # Upper bound on the size of the equivalence classes in this bucket. | ||
|  |         # Corresponds to the JSON property `equivalenceClassSizeUpperBound` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :equivalence_class_size_upper_bound | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @bucket_size = args[:bucket_size] if args.key?(:bucket_size) | ||
|  |           @bucket_value_count = args[:bucket_value_count] if args.key?(:bucket_value_count) | ||
|  |           @bucket_values = args[:bucket_values] if args.key?(:bucket_values) | ||
|  |           @equivalence_class_size_lower_bound = args[:equivalence_class_size_lower_bound] if args.key?(:equivalence_class_size_lower_bound) | ||
|  |           @equivalence_class_size_upper_bound = args[:equivalence_class_size_upper_bound] if args.key?(:equivalence_class_size_upper_bound) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Result of the k-anonymity computation. | ||
|  |       class GooglePrivacyDlpV2KAnonymityResult | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Histogram of k-anonymity equivalence classes. | ||
|  |         # Corresponds to the JSON property `equivalenceClassHistogramBuckets` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2KAnonymityHistogramBucket>] | ||
|  |         attr_accessor :equivalence_class_histogram_buckets | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @equivalence_class_histogram_buckets = args[:equivalence_class_histogram_buckets] if args.key?(:equivalence_class_histogram_buckets) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Reidentifiability metric. This corresponds to a risk model similar to what is | ||
|  |       # called "journalist risk" in the literature, except the attack dataset is | ||
|  |       # statistically modeled instead of being perfectly known. This can be done using | ||
|  |       # publicly available data (like the US Census), or using a custom statistical | ||
|  |       # model (indicated as one or several BigQuery tables), or by extrapolating from | ||
|  |       # the distribution of values in the input dataset. | ||
|  |       class GooglePrivacyDlpV2KMapEstimationConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Several auxiliary tables can be used in the analysis. Each custom_tag used to | ||
|  |         # tag a quasi-identifiers column must appear in exactly one column of one | ||
|  |         # auxiliary table. | ||
|  |         # Corresponds to the JSON property `auxiliaryTables` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2AuxiliaryTable>] | ||
|  |         attr_accessor :auxiliary_tables | ||
|  |        | ||
|  |         # Required. Fields considered to be quasi-identifiers. No two columns can have | ||
|  |         # the same tag. | ||
|  |         # Corresponds to the JSON property `quasiIds` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2TaggedField>] | ||
|  |         attr_accessor :quasi_ids | ||
|  |        | ||
|  |         # ISO 3166-1 alpha-2 region code to use in the statistical modeling. Set if no | ||
|  |         # column is tagged with a region-specific InfoType (like US_ZIP_5) or a region | ||
|  |         # code. | ||
|  |         # Corresponds to the JSON property `regionCode` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :region_code | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @auxiliary_tables = args[:auxiliary_tables] if args.key?(:auxiliary_tables) | ||
|  |           @quasi_ids = args[:quasi_ids] if args.key?(:quasi_ids) | ||
|  |           @region_code = args[:region_code] if args.key?(:region_code) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A KMapEstimationHistogramBucket message with the following values: | ||
|  |       # min_anonymity: 3 max_anonymity: 5 frequency: 42 means that there are 42 | ||
|  |       # records whose quasi-identifier values correspond to 3, 4 or 5 people in the | ||
|  |       # overlying population. An important particular case is when min_anonymity = | ||
|  |       # max_anonymity = 1: the frequency field then corresponds to the number of | ||
|  |       # uniquely identifiable records. | ||
|  |       class GooglePrivacyDlpV2KMapEstimationHistogramBucket | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Number of records within these anonymity bounds. | ||
|  |         # Corresponds to the JSON property `bucketSize` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :bucket_size | ||
|  |        | ||
|  |         # Total number of distinct quasi-identifier tuple values in this bucket. | ||
|  |         # Corresponds to the JSON property `bucketValueCount` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :bucket_value_count | ||
|  |        | ||
|  |         # Sample of quasi-identifier tuple values in this bucket. The total number of | ||
|  |         # classes returned per bucket is capped at 20. | ||
|  |         # Corresponds to the JSON property `bucketValues` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2KMapEstimationQuasiIdValues>] | ||
|  |         attr_accessor :bucket_values | ||
|  |        | ||
|  |         # Always greater than or equal to min_anonymity. | ||
|  |         # Corresponds to the JSON property `maxAnonymity` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :max_anonymity | ||
|  |        | ||
|  |         # Always positive. | ||
|  |         # Corresponds to the JSON property `minAnonymity` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :min_anonymity | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @bucket_size = args[:bucket_size] if args.key?(:bucket_size) | ||
|  |           @bucket_value_count = args[:bucket_value_count] if args.key?(:bucket_value_count) | ||
|  |           @bucket_values = args[:bucket_values] if args.key?(:bucket_values) | ||
|  |           @max_anonymity = args[:max_anonymity] if args.key?(:max_anonymity) | ||
|  |           @min_anonymity = args[:min_anonymity] if args.key?(:min_anonymity) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A tuple of values for the quasi-identifier columns. | ||
|  |       class GooglePrivacyDlpV2KMapEstimationQuasiIdValues | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The estimated anonymity for these quasi-identifier values. | ||
|  |         # Corresponds to the JSON property `estimatedAnonymity` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :estimated_anonymity | ||
|  |        | ||
|  |         # The quasi-identifier values. | ||
|  |         # Corresponds to the JSON property `quasiIdsValues` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Value>] | ||
|  |         attr_accessor :quasi_ids_values | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @estimated_anonymity = args[:estimated_anonymity] if args.key?(:estimated_anonymity) | ||
|  |           @quasi_ids_values = args[:quasi_ids_values] if args.key?(:quasi_ids_values) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Result of the reidentifiability analysis. Note that these results are an | ||
|  |       # estimation, not exact values. | ||
|  |       class GooglePrivacyDlpV2KMapEstimationResult | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The intervals [min_anonymity, max_anonymity] do not overlap. If a value doesn' | ||
|  |         # t correspond to any such interval, the associated frequency is zero. For | ||
|  |         # example, the following records: `min_anonymity: 1, max_anonymity: 1, frequency: | ||
|  |         # 17` `min_anonymity: 2, max_anonymity: 3, frequency: 42` `min_anonymity: 5, | ||
|  |         # max_anonymity: 10, frequency: 99` mean that there are no record with an | ||
|  |         # estimated anonymity of 4, 5, or larger than 10. | ||
|  |         # Corresponds to the JSON property `kMapEstimationHistogram` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2KMapEstimationHistogramBucket>] | ||
|  |         attr_accessor :k_map_estimation_histogram | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @k_map_estimation_histogram = args[:k_map_estimation_histogram] if args.key?(:k_map_estimation_histogram) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A unique identifier for a Datastore entity. If a key's partition ID or any of | ||
|  |       # its path kinds or names are reserved/read-only, the key is reserved/read-only. | ||
|  |       # A reserved/read-only key is forbidden in certain documented contexts. | ||
|  |       class GooglePrivacyDlpV2Key | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Datastore partition ID. A partition ID identifies a grouping of entities. The | ||
|  |         # grouping is always by project and namespace, however the namespace ID may be | ||
|  |         # empty. A partition ID contains several dimensions: project ID and namespace ID. | ||
|  |         # Corresponds to the JSON property `partitionId` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2PartitionId] | ||
|  |         attr_accessor :partition_id | ||
|  |        | ||
|  |         # The entity path. An entity path consists of one or more elements composed of a | ||
|  |         # kind and a string or numerical identifier, which identify entities. The first | ||
|  |         # element identifies a _root entity_, the second element identifies a _child_ of | ||
|  |         # the root entity, the third element identifies a child of the second entity, | ||
|  |         # and so forth. The entities identified by all prefixes of the path are called | ||
|  |         # the element's _ancestors_. A path can never be empty, and a path can have at | ||
|  |         # most 100 elements. | ||
|  |         # Corresponds to the JSON property `path` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2PathElement>] | ||
|  |         attr_accessor :path | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @partition_id = args[:partition_id] if args.key?(:partition_id) | ||
|  |           @path = args[:path] if args.key?(:path) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A representation of a Datastore kind. | ||
|  |       class GooglePrivacyDlpV2KindExpression | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The name of the kind. | ||
|  |         # Corresponds to the JSON property `name` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :name | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @name = args[:name] if args.key?(:name) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Include to use an existing data crypto key wrapped by KMS. The wrapped key | ||
|  |       # must be a 128/192/256 bit key. Authorization requires the following IAM | ||
|  |       # permissions when sending a request to perform a crypto transformation using a | ||
|  |       # kms-wrapped crypto key: dlp.kms.encrypt | ||
|  |       class GooglePrivacyDlpV2KmsWrappedCryptoKey | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Required. The resource name of the KMS CryptoKey to use for unwrapping. | ||
|  |         # Corresponds to the JSON property `cryptoKeyName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :crypto_key_name | ||
|  |        | ||
|  |         # Required. The wrapped data crypto key. | ||
|  |         # Corresponds to the JSON property `wrappedKey` | ||
|  |         # NOTE: Values are automatically base64 encoded/decoded in the client library. | ||
|  |         # @return [String] | ||
|  |         attr_accessor :wrapped_key | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @crypto_key_name = args[:crypto_key_name] if args.key?(:crypto_key_name) | ||
|  |           @wrapped_key = args[:wrapped_key] if args.key?(:wrapped_key) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # l-diversity metric, used for analysis of reidentification risk. | ||
|  |       class GooglePrivacyDlpV2LDiversityConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Set of quasi-identifiers indicating how equivalence classes are defined for | ||
|  |         # the l-diversity computation. When multiple fields are specified, they are | ||
|  |         # considered a single composite key. | ||
|  |         # Corresponds to the JSON property `quasiIds` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId>] | ||
|  |         attr_accessor :quasi_ids | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `sensitiveAttribute` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :sensitive_attribute | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @quasi_ids = args[:quasi_ids] if args.key?(:quasi_ids) | ||
|  |           @sensitive_attribute = args[:sensitive_attribute] if args.key?(:sensitive_attribute) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # The set of columns' values that share the same ldiversity value. | ||
|  |       class GooglePrivacyDlpV2LDiversityEquivalenceClass | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Size of the k-anonymity equivalence class. | ||
|  |         # Corresponds to the JSON property `equivalenceClassSize` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :equivalence_class_size | ||
|  |        | ||
|  |         # Number of distinct sensitive values in this equivalence class. | ||
|  |         # Corresponds to the JSON property `numDistinctSensitiveValues` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :num_distinct_sensitive_values | ||
|  |        | ||
|  |         # Quasi-identifier values defining the k-anonymity equivalence class. The order | ||
|  |         # is always the same as the original request. | ||
|  |         # Corresponds to the JSON property `quasiIdsValues` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Value>] | ||
|  |         attr_accessor :quasi_ids_values | ||
|  |        | ||
|  |         # Estimated frequencies of top sensitive values. | ||
|  |         # Corresponds to the JSON property `topSensitiveValues` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2ValueFrequency>] | ||
|  |         attr_accessor :top_sensitive_values | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @equivalence_class_size = args[:equivalence_class_size] if args.key?(:equivalence_class_size) | ||
|  |           @num_distinct_sensitive_values = args[:num_distinct_sensitive_values] if args.key?(:num_distinct_sensitive_values) | ||
|  |           @quasi_ids_values = args[:quasi_ids_values] if args.key?(:quasi_ids_values) | ||
|  |           @top_sensitive_values = args[:top_sensitive_values] if args.key?(:top_sensitive_values) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Histogram of l-diversity equivalence class sensitive value frequencies. | ||
|  |       class GooglePrivacyDlpV2LDiversityHistogramBucket | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Total number of equivalence classes in this bucket. | ||
|  |         # Corresponds to the JSON property `bucketSize` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :bucket_size | ||
|  |        | ||
|  |         # Total number of distinct equivalence classes in this bucket. | ||
|  |         # Corresponds to the JSON property `bucketValueCount` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :bucket_value_count | ||
|  |        | ||
|  |         # Sample of equivalence classes in this bucket. The total number of classes | ||
|  |         # returned per bucket is capped at 20. | ||
|  |         # Corresponds to the JSON property `bucketValues` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2LDiversityEquivalenceClass>] | ||
|  |         attr_accessor :bucket_values | ||
|  |        | ||
|  |         # Lower bound on the sensitive value frequencies of the equivalence classes in | ||
|  |         # this bucket. | ||
|  |         # Corresponds to the JSON property `sensitiveValueFrequencyLowerBound` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :sensitive_value_frequency_lower_bound | ||
|  |        | ||
|  |         # Upper bound on the sensitive value frequencies of the equivalence classes in | ||
|  |         # this bucket. | ||
|  |         # Corresponds to the JSON property `sensitiveValueFrequencyUpperBound` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :sensitive_value_frequency_upper_bound | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @bucket_size = args[:bucket_size] if args.key?(:bucket_size) | ||
|  |           @bucket_value_count = args[:bucket_value_count] if args.key?(:bucket_value_count) | ||
|  |           @bucket_values = args[:bucket_values] if args.key?(:bucket_values) | ||
|  |           @sensitive_value_frequency_lower_bound = args[:sensitive_value_frequency_lower_bound] if args.key?(:sensitive_value_frequency_lower_bound) | ||
|  |           @sensitive_value_frequency_upper_bound = args[:sensitive_value_frequency_upper_bound] if args.key?(:sensitive_value_frequency_upper_bound) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Result of the l-diversity computation. | ||
|  |       class GooglePrivacyDlpV2LDiversityResult | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Histogram of l-diversity equivalence class sensitive value frequencies. | ||
|  |         # Corresponds to the JSON property `sensitiveValueFrequencyHistogramBuckets` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2LDiversityHistogramBucket>] | ||
|  |         attr_accessor :sensitive_value_frequency_histogram_buckets | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @sensitive_value_frequency_histogram_buckets = args[:sensitive_value_frequency_histogram_buckets] if args.key?(:sensitive_value_frequency_histogram_buckets) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Configuration for a custom dictionary created from a data source of any size | ||
|  |       # up to the maximum size defined in the [limits](https://cloud.google.com/dlp/ | ||
|  |       # limits) page. The artifacts of dictionary creation are stored in the specified | ||
|  |       # Google Cloud Storage location. Consider using `CustomInfoType.Dictionary` for | ||
|  |       # smaller dictionaries that satisfy the size requirements. | ||
|  |       class GooglePrivacyDlpV2LargeCustomDictionaryConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Message defining a field of a BigQuery table. | ||
|  |         # Corresponds to the JSON property `bigQueryField` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2BigQueryField] | ||
|  |         attr_accessor :big_query_field | ||
|  |        | ||
|  |         # Message representing a set of files in Cloud Storage. | ||
|  |         # Corresponds to the JSON property `cloudStorageFileSet` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CloudStorageFileSet] | ||
|  |         attr_accessor :cloud_storage_file_set | ||
|  |        | ||
|  |         # Message representing a single file or path in Cloud Storage. | ||
|  |         # Corresponds to the JSON property `outputPath` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CloudStoragePath] | ||
|  |         attr_accessor :output_path | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @big_query_field = args[:big_query_field] if args.key?(:big_query_field) | ||
|  |           @cloud_storage_file_set = args[:cloud_storage_file_set] if args.key?(:cloud_storage_file_set) | ||
|  |           @output_path = args[:output_path] if args.key?(:output_path) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Summary statistics of a custom dictionary. | ||
|  |       class GooglePrivacyDlpV2LargeCustomDictionaryStats | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Approximate number of distinct phrases in the dictionary. | ||
|  |         # Corresponds to the JSON property `approxNumPhrases` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :approx_num_phrases | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @approx_num_phrases = args[:approx_num_phrases] if args.key?(:approx_num_phrases) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Skips the data without modifying it if the requested transformation would | ||
|  |       # cause an error. For example, if a `DateShift` transformation were applied an | ||
|  |       # an IP address, this mode would leave the IP address unchanged in the response. | ||
|  |       class GooglePrivacyDlpV2LeaveUntransformed | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Message for specifying an adjustment to the likelihood of a finding as part of | ||
|  |       # a detection rule. | ||
|  |       class GooglePrivacyDlpV2LikelihoodAdjustment | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Set the likelihood of a finding to a fixed value. | ||
|  |         # Corresponds to the JSON property `fixedLikelihood` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :fixed_likelihood | ||
|  |        | ||
|  |         # Increase or decrease the likelihood by the specified number of levels. For | ||
|  |         # example, if a finding would be `POSSIBLE` without the detection rule and ` | ||
|  |         # relative_likelihood` is 1, then it is upgraded to `LIKELY`, while a value of - | ||
|  |         # 1 would downgrade it to `UNLIKELY`. Likelihood may never drop below ` | ||
|  |         # VERY_UNLIKELY` or exceed `VERY_LIKELY`, so applying an adjustment of 1 | ||
|  |         # followed by an adjustment of -1 when base likelihood is `VERY_LIKELY` will | ||
|  |         # result in a final likelihood of `LIKELY`. | ||
|  |         # Corresponds to the JSON property `relativeLikelihood` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :relative_likelihood | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @fixed_likelihood = args[:fixed_likelihood] if args.key?(:fixed_likelihood) | ||
|  |           @relative_likelihood = args[:relative_likelihood] if args.key?(:relative_likelihood) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Response message for ListDeidentifyTemplates. | ||
|  |       class GooglePrivacyDlpV2ListDeidentifyTemplatesResponse | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # List of deidentify templates, up to page_size in | ||
|  |         # ListDeidentifyTemplatesRequest. | ||
|  |         # Corresponds to the JSON property `deidentifyTemplates` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2DeidentifyTemplate>] | ||
|  |         attr_accessor :deidentify_templates | ||
|  |        | ||
|  |         # If the next page is available then the next page token to be used in following | ||
|  |         # ListDeidentifyTemplates request. | ||
|  |         # Corresponds to the JSON property `nextPageToken` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :next_page_token | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @deidentify_templates = args[:deidentify_templates] if args.key?(:deidentify_templates) | ||
|  |           @next_page_token = args[:next_page_token] if args.key?(:next_page_token) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # The response message for listing DLP jobs. | ||
|  |       class GooglePrivacyDlpV2ListDlpJobsResponse | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A list of DlpJobs that matches the specified filter in the request. | ||
|  |         # Corresponds to the JSON property `jobs` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2DlpJob>] | ||
|  |         attr_accessor :jobs | ||
|  |        | ||
|  |         # The standard List next-page token. | ||
|  |         # Corresponds to the JSON property `nextPageToken` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :next_page_token | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @jobs = args[:jobs] if args.key?(:jobs) | ||
|  |           @next_page_token = args[:next_page_token] if args.key?(:next_page_token) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Response to the ListInfoTypes request. | ||
|  |       class GooglePrivacyDlpV2ListInfoTypesResponse | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Set of sensitive infoTypes. | ||
|  |         # Corresponds to the JSON property `infoTypes` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2InfoTypeDescription>] | ||
|  |         attr_accessor :info_types | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @info_types = args[:info_types] if args.key?(:info_types) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Response message for ListInspectTemplates. | ||
|  |       class GooglePrivacyDlpV2ListInspectTemplatesResponse | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # List of inspectTemplates, up to page_size in ListInspectTemplatesRequest. | ||
|  |         # Corresponds to the JSON property `inspectTemplates` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2InspectTemplate>] | ||
|  |         attr_accessor :inspect_templates | ||
|  |        | ||
|  |         # If the next page is available then the next page token to be used in following | ||
|  |         # ListInspectTemplates request. | ||
|  |         # Corresponds to the JSON property `nextPageToken` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :next_page_token | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @inspect_templates = args[:inspect_templates] if args.key?(:inspect_templates) | ||
|  |           @next_page_token = args[:next_page_token] if args.key?(:next_page_token) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Response message for ListJobTriggers. | ||
|  |       class GooglePrivacyDlpV2ListJobTriggersResponse | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # List of triggeredJobs, up to page_size in ListJobTriggersRequest. | ||
|  |         # Corresponds to the JSON property `jobTriggers` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2JobTrigger>] | ||
|  |         attr_accessor :job_triggers | ||
|  |        | ||
|  |         # If the next page is available then the next page token to be used in following | ||
|  |         # ListJobTriggers request. | ||
|  |         # Corresponds to the JSON property `nextPageToken` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :next_page_token | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @job_triggers = args[:job_triggers] if args.key?(:job_triggers) | ||
|  |           @next_page_token = args[:next_page_token] if args.key?(:next_page_token) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Response message for ListStoredInfoTypes. | ||
|  |       class GooglePrivacyDlpV2ListStoredInfoTypesResponse | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # If the next page is available then the next page token to be used in following | ||
|  |         # ListStoredInfoTypes request. | ||
|  |         # Corresponds to the JSON property `nextPageToken` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :next_page_token | ||
|  |        | ||
|  |         # List of storedInfoTypes, up to page_size in ListStoredInfoTypesRequest. | ||
|  |         # Corresponds to the JSON property `storedInfoTypes` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2StoredInfoType>] | ||
|  |         attr_accessor :stored_info_types | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @next_page_token = args[:next_page_token] if args.key?(:next_page_token) | ||
|  |           @stored_info_types = args[:stored_info_types] if args.key?(:stored_info_types) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Specifies the location of the finding. | ||
|  |       class GooglePrivacyDlpV2Location | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Generic half-open interval [start, end) | ||
|  |         # Corresponds to the JSON property `byteRange` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Range] | ||
|  |         attr_accessor :byte_range | ||
|  |        | ||
|  |         # Generic half-open interval [start, end) | ||
|  |         # Corresponds to the JSON property `codepointRange` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Range] | ||
|  |         attr_accessor :codepoint_range | ||
|  |        | ||
|  |         # Represents a container that may contain DLP findings. Examples of a container | ||
|  |         # include a file, table, or database record. | ||
|  |         # Corresponds to the JSON property `container` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Container] | ||
|  |         attr_accessor :container | ||
|  |        | ||
|  |         # List of nested objects pointing to the precise location of the finding within | ||
|  |         # the file or record. | ||
|  |         # Corresponds to the JSON property `contentLocations` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2ContentLocation>] | ||
|  |         attr_accessor :content_locations | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @byte_range = args[:byte_range] if args.key?(:byte_range) | ||
|  |           @codepoint_range = args[:codepoint_range] if args.key?(:codepoint_range) | ||
|  |           @container = args[:container] if args.key?(:container) | ||
|  |           @content_locations = args[:content_locations] if args.key?(:content_locations) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Job trigger option for hybrid jobs. Jobs must be manually created and finished. | ||
|  |       class GooglePrivacyDlpV2Manual | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Metadata Location | ||
|  |       class GooglePrivacyDlpV2MetadataLocation | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Storage metadata label to indicate which metadata entry contains findings. | ||
|  |         # Corresponds to the JSON property `storageLabel` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2StorageMetadataLabel] | ||
|  |         attr_accessor :storage_label | ||
|  |        | ||
|  |         # Type of metadata containing the finding. | ||
|  |         # Corresponds to the JSON property `type` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :type | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @storage_label = args[:storage_label] if args.key?(:storage_label) | ||
|  |           @type = args[:type] if args.key?(:type) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Compute numerical stats over an individual column, including min, max, and | ||
|  |       # quantiles. | ||
|  |       class GooglePrivacyDlpV2NumericalStatsConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `field` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :field | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @field = args[:field] if args.key?(:field) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Result of the numerical stats computation. | ||
|  |       class GooglePrivacyDlpV2NumericalStatsResult | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Set of primitive values supported by the system. Note that for the purposes of | ||
|  |         # inspection or transformation, the number of bytes considered to comprise a ' | ||
|  |         # Value' is based on its representation as a UTF-8 encoded string. For example, | ||
|  |         # if 'integer_value' is set to 123456789, the number of bytes would be counted | ||
|  |         # as 9, even though an int64 only holds up to 8 bytes of data. | ||
|  |         # Corresponds to the JSON property `maxValue` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Value] | ||
|  |         attr_accessor :max_value | ||
|  |        | ||
|  |         # Set of primitive values supported by the system. Note that for the purposes of | ||
|  |         # inspection or transformation, the number of bytes considered to comprise a ' | ||
|  |         # Value' is based on its representation as a UTF-8 encoded string. For example, | ||
|  |         # if 'integer_value' is set to 123456789, the number of bytes would be counted | ||
|  |         # as 9, even though an int64 only holds up to 8 bytes of data. | ||
|  |         # Corresponds to the JSON property `minValue` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Value] | ||
|  |         attr_accessor :min_value | ||
|  |        | ||
|  |         # List of 99 values that partition the set of field values into 100 equal sized | ||
|  |         # buckets. | ||
|  |         # Corresponds to the JSON property `quantileValues` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Value>] | ||
|  |         attr_accessor :quantile_values | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @max_value = args[:max_value] if args.key?(:max_value) | ||
|  |           @min_value = args[:min_value] if args.key?(:min_value) | ||
|  |           @quantile_values = args[:quantile_values] if args.key?(:quantile_values) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Cloud repository for storing output. | ||
|  |       class GooglePrivacyDlpV2OutputStorageConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Schema used for writing the findings for Inspect jobs. This field is only used | ||
|  |         # for Inspect and must be unspecified for Risk jobs. Columns are derived from | ||
|  |         # the `Finding` object. If appending to an existing table, any columns from the | ||
|  |         # predefined schema that are missing will be added. No columns in the existing | ||
|  |         # table will be deleted. If unspecified, then all available columns will be used | ||
|  |         # for a new table or an (existing) table with no schema, and no changes will be | ||
|  |         # made to an existing table that has a schema. Only for use with external | ||
|  |         # storage. | ||
|  |         # Corresponds to the JSON property `outputSchema` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :output_schema | ||
|  |        | ||
|  |         # Message defining the location of a BigQuery table. A table is uniquely | ||
|  |         # identified by its project_id, dataset_id, and table_name. Within a query a | ||
|  |         # table is often referenced with a string in the format of: `:.` or `..`. | ||
|  |         # Corresponds to the JSON property `table` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2BigQueryTable] | ||
|  |         attr_accessor :table | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @output_schema = args[:output_schema] if args.key?(:output_schema) | ||
|  |           @table = args[:table] if args.key?(:table) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Datastore partition ID. A partition ID identifies a grouping of entities. The | ||
|  |       # grouping is always by project and namespace, however the namespace ID may be | ||
|  |       # empty. A partition ID contains several dimensions: project ID and namespace ID. | ||
|  |       class GooglePrivacyDlpV2PartitionId | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # If not empty, the ID of the namespace to which the entities belong. | ||
|  |         # Corresponds to the JSON property `namespaceId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :namespace_id | ||
|  |        | ||
|  |         # The ID of the project to which the entities belong. | ||
|  |         # Corresponds to the JSON property `projectId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :project_id | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @namespace_id = args[:namespace_id] if args.key?(:namespace_id) | ||
|  |           @project_id = args[:project_id] if args.key?(:project_id) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A (kind, ID/name) pair used to construct a key path. If either name or ID is | ||
|  |       # set, the element is complete. If neither is set, the element is incomplete. | ||
|  |       class GooglePrivacyDlpV2PathElement | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The auto-allocated ID of the entity. Never equal to zero. Values less than | ||
|  |         # zero are discouraged and may not be supported in the future. | ||
|  |         # Corresponds to the JSON property `id` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :id | ||
|  |        | ||
|  |         # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. | ||
|  |         # A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `""` | ||
|  |         # . | ||
|  |         # Corresponds to the JSON property `kind` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :kind | ||
|  |        | ||
|  |         # The name of the entity. A name matching regex `__.*__` is reserved/read-only. | ||
|  |         # A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `""`. | ||
|  |         # Corresponds to the JSON property `name` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :name | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @id = args[:id] if args.key?(:id) | ||
|  |           @kind = args[:kind] if args.key?(:kind) | ||
|  |           @name = args[:name] if args.key?(:name) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A rule for transforming a value. | ||
|  |       class GooglePrivacyDlpV2PrimitiveTransformation | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Generalization function that buckets values based on ranges. The ranges and | ||
|  |         # replacement values are dynamically provided by the user for custom behavior, | ||
|  |         # such as 1-30 -> LOW 31-65 -> MEDIUM 66-100 -> HIGH This can be used on data of | ||
|  |         # type: number, long, string, timestamp. If the bound `Value` type differs from | ||
|  |         # the type of data being transformed, we will first attempt converting the type | ||
|  |         # of the data to be transformed to match the type of the bound before comparing. | ||
|  |         # See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. | ||
|  |         # Corresponds to the JSON property `bucketingConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2BucketingConfig] | ||
|  |         attr_accessor :bucketing_config | ||
|  |        | ||
|  |         # Partially mask a string by replacing a given number of characters with a fixed | ||
|  |         # character. Masking can start from the beginning or end of the string. This can | ||
|  |         # be used on data of any type (numbers, longs, and so on) and when de- | ||
|  |         # identifying structured data we'll attempt to preserve the original data's type. | ||
|  |         # (This allows you to take a long like 123 and modify it to a string like **3. | ||
|  |         # Corresponds to the JSON property `characterMaskConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CharacterMaskConfig] | ||
|  |         attr_accessor :character_mask_config | ||
|  |        | ||
|  |         # Pseudonymization method that generates deterministic encryption for the given | ||
|  |         # input. Outputs a base64 encoded representation of the encrypted output. Uses | ||
|  |         # AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297. | ||
|  |         # Corresponds to the JSON property `cryptoDeterministicConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CryptoDeterministicConfig] | ||
|  |         attr_accessor :crypto_deterministic_config | ||
|  |        | ||
|  |         # Pseudonymization method that generates surrogates via cryptographic hashing. | ||
|  |         # Uses SHA-256. The key size must be either 32 or 64 bytes. Outputs a base64 | ||
|  |         # encoded representation of the hashed output (for example, | ||
|  |         # L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). Currently, only string and | ||
|  |         # integer values can be hashed. See https://cloud.google.com/dlp/docs/ | ||
|  |         # pseudonymization to learn more. | ||
|  |         # Corresponds to the JSON property `cryptoHashConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CryptoHashConfig] | ||
|  |         attr_accessor :crypto_hash_config | ||
|  |        | ||
|  |         # Replaces an identifier with a surrogate using Format Preserving Encryption ( | ||
|  |         # FPE) with the FFX mode of operation; however when used in the ` | ||
|  |         # ReidentifyContent` API method, it serves the opposite function by reversing | ||
|  |         # the surrogate back into the original identifier. The identifier must be | ||
|  |         # encoded as ASCII. For a given crypto key and context, the same identifier will | ||
|  |         # be replaced with the same surrogate. Identifiers must be at least two | ||
|  |         # characters long. In the case that the identifier is the empty string, it will | ||
|  |         # be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn | ||
|  |         # more. Note: We recommend using CryptoDeterministicConfig for all use cases | ||
|  |         # which do not require preserving the input alphabet space and size, plus | ||
|  |         # warrant referential integrity. | ||
|  |         # Corresponds to the JSON property `cryptoReplaceFfxFpeConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CryptoReplaceFfxFpeConfig] | ||
|  |         attr_accessor :crypto_replace_ffx_fpe_config | ||
|  |        | ||
|  |         # Shifts dates by random number of days, with option to be consistent for the | ||
|  |         # same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to | ||
|  |         # learn more. | ||
|  |         # Corresponds to the JSON property `dateShiftConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DateShiftConfig] | ||
|  |         attr_accessor :date_shift_config | ||
|  |        | ||
|  |         # Buckets values based on fixed size ranges. The Bucketing transformation can | ||
|  |         # provide all of this functionality, but requires more configuration. This | ||
|  |         # message is provided as a convenience to the user for simple bucketing | ||
|  |         # strategies. The transformed value will be a hyphenated string of `lower_bound`- | ||
|  |         # `upper_bound`, i.e if lower_bound = 10 and upper_bound = 20 all values that | ||
|  |         # are within this bucket will be replaced with "10-20". This can be used on data | ||
|  |         # of type: double, long. If the bound Value type differs from the type of data | ||
|  |         # being transformed, we will first attempt converting the type of the data to be | ||
|  |         # transformed to match the type of the bound before comparing. See https://cloud. | ||
|  |         # google.com/dlp/docs/concepts-bucketing to learn more. | ||
|  |         # Corresponds to the JSON property `fixedSizeBucketingConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FixedSizeBucketingConfig] | ||
|  |         attr_accessor :fixed_size_bucketing_config | ||
|  |        | ||
|  |         # Redact a given value. For example, if used with an `InfoTypeTransformation` | ||
|  |         # transforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the | ||
|  |         # output would be 'My phone number is '. | ||
|  |         # Corresponds to the JSON property `redactConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2RedactConfig] | ||
|  |         attr_accessor :redact_config | ||
|  |        | ||
|  |         # Replace each input value with a given `Value`. | ||
|  |         # Corresponds to the JSON property `replaceConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ReplaceValueConfig] | ||
|  |         attr_accessor :replace_config | ||
|  |        | ||
|  |         # Replace each matching finding with the name of the info_type. | ||
|  |         # Corresponds to the JSON property `replaceWithInfoTypeConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ReplaceWithInfoTypeConfig] | ||
|  |         attr_accessor :replace_with_info_type_config | ||
|  |        | ||
|  |         # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a | ||
|  |         # portion of the value. | ||
|  |         # Corresponds to the JSON property `timePartConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TimePartConfig] | ||
|  |         attr_accessor :time_part_config | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @bucketing_config = args[:bucketing_config] if args.key?(:bucketing_config) | ||
|  |           @character_mask_config = args[:character_mask_config] if args.key?(:character_mask_config) | ||
|  |           @crypto_deterministic_config = args[:crypto_deterministic_config] if args.key?(:crypto_deterministic_config) | ||
|  |           @crypto_hash_config = args[:crypto_hash_config] if args.key?(:crypto_hash_config) | ||
|  |           @crypto_replace_ffx_fpe_config = args[:crypto_replace_ffx_fpe_config] if args.key?(:crypto_replace_ffx_fpe_config) | ||
|  |           @date_shift_config = args[:date_shift_config] if args.key?(:date_shift_config) | ||
|  |           @fixed_size_bucketing_config = args[:fixed_size_bucketing_config] if args.key?(:fixed_size_bucketing_config) | ||
|  |           @redact_config = args[:redact_config] if args.key?(:redact_config) | ||
|  |           @replace_config = args[:replace_config] if args.key?(:replace_config) | ||
|  |           @replace_with_info_type_config = args[:replace_with_info_type_config] if args.key?(:replace_with_info_type_config) | ||
|  |           @time_part_config = args[:time_part_config] if args.key?(:time_part_config) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Privacy metric to compute for reidentification risk analysis. | ||
|  |       class GooglePrivacyDlpV2PrivacyMetric | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Compute numerical stats over an individual column, including number of | ||
|  |         # distinct values and value count distribution. | ||
|  |         # Corresponds to the JSON property `categoricalStatsConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CategoricalStatsConfig] | ||
|  |         attr_accessor :categorical_stats_config | ||
|  |        | ||
|  |         # δ-presence metric, used to estimate how likely it is for an attacker to figure | ||
|  |         # out that one given individual appears in a de-identified dataset. Similarly to | ||
|  |         # the k-map metric, we cannot compute δ-presence exactly without knowing the | ||
|  |         # attack dataset, so we use a statistical model instead. | ||
|  |         # Corresponds to the JSON property `deltaPresenceEstimationConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DeltaPresenceEstimationConfig] | ||
|  |         attr_accessor :delta_presence_estimation_config | ||
|  |        | ||
|  |         # k-anonymity metric, used for analysis of reidentification risk. | ||
|  |         # Corresponds to the JSON property `kAnonymityConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2KAnonymityConfig] | ||
|  |         attr_accessor :k_anonymity_config | ||
|  |        | ||
|  |         # Reidentifiability metric. This corresponds to a risk model similar to what is | ||
|  |         # called "journalist risk" in the literature, except the attack dataset is | ||
|  |         # statistically modeled instead of being perfectly known. This can be done using | ||
|  |         # publicly available data (like the US Census), or using a custom statistical | ||
|  |         # model (indicated as one or several BigQuery tables), or by extrapolating from | ||
|  |         # the distribution of values in the input dataset. | ||
|  |         # Corresponds to the JSON property `kMapEstimationConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2KMapEstimationConfig] | ||
|  |         attr_accessor :k_map_estimation_config | ||
|  |        | ||
|  |         # l-diversity metric, used for analysis of reidentification risk. | ||
|  |         # Corresponds to the JSON property `lDiversityConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2LDiversityConfig] | ||
|  |         attr_accessor :l_diversity_config | ||
|  |        | ||
|  |         # Compute numerical stats over an individual column, including min, max, and | ||
|  |         # quantiles. | ||
|  |         # Corresponds to the JSON property `numericalStatsConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2NumericalStatsConfig] | ||
|  |         attr_accessor :numerical_stats_config | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @categorical_stats_config = args[:categorical_stats_config] if args.key?(:categorical_stats_config) | ||
|  |           @delta_presence_estimation_config = args[:delta_presence_estimation_config] if args.key?(:delta_presence_estimation_config) | ||
|  |           @k_anonymity_config = args[:k_anonymity_config] if args.key?(:k_anonymity_config) | ||
|  |           @k_map_estimation_config = args[:k_map_estimation_config] if args.key?(:k_map_estimation_config) | ||
|  |           @l_diversity_config = args[:l_diversity_config] if args.key?(:l_diversity_config) | ||
|  |           @numerical_stats_config = args[:numerical_stats_config] if args.key?(:numerical_stats_config) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Message for specifying a window around a finding to apply a detection rule. | ||
|  |       class GooglePrivacyDlpV2Proximity | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Number of characters after the finding to consider. | ||
|  |         # Corresponds to the JSON property `windowAfter` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :window_after | ||
|  |        | ||
|  |         # Number of characters before the finding to consider. | ||
|  |         # Corresponds to the JSON property `windowBefore` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :window_before | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @window_after = args[:window_after] if args.key?(:window_after) | ||
|  |           @window_before = args[:window_before] if args.key?(:window_before) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Publish findings of a DlpJob to Cloud Data Catalog. Labels summarizing the | ||
|  |       # results of the DlpJob will be applied to the entry for the resource scanned in | ||
|  |       # Cloud Data Catalog. Any labels previously written by another DlpJob will be | ||
|  |       # deleted. InfoType naming patterns are strictly enforced when using this | ||
|  |       # feature. Note that the findings will be persisted in Cloud Data Catalog | ||
|  |       # storage and are governed by Data Catalog service-specific policy, see https:// | ||
|  |       # cloud.google.com/terms/service-terms Only a single instance of this action can | ||
|  |       # be specified and only allowed if all resources being scanned are BigQuery | ||
|  |       # tables. Compatible with: Inspect | ||
|  |       class GooglePrivacyDlpV2PublishFindingsToCloudDataCatalog | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Publish the result summary of a DlpJob to the Cloud Security Command Center ( | ||
|  |       # CSCC Alpha). This action is only available for projects which are parts of an | ||
|  |       # organization and whitelisted for the alpha Cloud Security Command Center. The | ||
|  |       # action will publish count of finding instances and their info types. The | ||
|  |       # summary of findings will be persisted in CSCC and are governed by CSCC service- | ||
|  |       # specific policy, see https://cloud.google.com/terms/service-terms Only a | ||
|  |       # single instance of this action can be specified. Compatible with: Inspect | ||
|  |       class GooglePrivacyDlpV2PublishSummaryToCscc | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Publish a message into given Pub/Sub topic when DlpJob has completed. The | ||
|  |       # message contains a single field, `DlpJobName`, which is equal to the finished | ||
|  |       # job's [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/ | ||
|  |       # projects.dlpJobs#DlpJob). Compatible with: Inspect, Risk | ||
|  |       class GooglePrivacyDlpV2PublishToPubSub | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Cloud Pub/Sub topic to send notifications to. The topic must have given | ||
|  |         # publishing access rights to the DLP API service account executing the long | ||
|  |         # running DlpJob sending the notifications. Format is projects/`project`/topics/` | ||
|  |         # topic`. | ||
|  |         # Corresponds to the JSON property `topic` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :topic | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @topic = args[:topic] if args.key?(:topic) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Enable Stackdriver metric dlp.googleapis.com/finding_count. This will publish | ||
|  |       # a metric to stack driver on each infotype requested and how many findings were | ||
|  |       # found for it. CustomDetectors will be bucketed as 'Custom' under the | ||
|  |       # Stackdriver label 'info_type'. | ||
|  |       class GooglePrivacyDlpV2PublishToStackdriver | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A column with a semantic tag attached. | ||
|  |       class GooglePrivacyDlpV2QuasiId | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A column can be tagged with a custom tag. In this case, the user must indicate | ||
|  |         # an auxiliary table that contains statistical information on the possible | ||
|  |         # values of this column (below). | ||
|  |         # Corresponds to the JSON property `customTag` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :custom_tag | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `field` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :field | ||
|  |        | ||
|  |         # A generic empty message that you can re-use to avoid defining duplicated empty | ||
|  |         # messages in your APIs. A typical example is to use it as the request or the | ||
|  |         # response type of an API method. For instance: service Foo ` rpc Bar(google. | ||
|  |         # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for | ||
|  |         # `Empty` is empty JSON object ````. | ||
|  |         # Corresponds to the JSON property `inferred` | ||
|  |         # @return [Google::Apis::DlpV2::GoogleProtobufEmpty] | ||
|  |         attr_accessor :inferred | ||
|  |        | ||
|  |         # Type of information detected by the API. | ||
|  |         # Corresponds to the JSON property `infoType` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType] | ||
|  |         attr_accessor :info_type | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @custom_tag = args[:custom_tag] if args.key?(:custom_tag) | ||
|  |           @field = args[:field] if args.key?(:field) | ||
|  |           @inferred = args[:inferred] if args.key?(:inferred) | ||
|  |           @info_type = args[:info_type] if args.key?(:info_type) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A quasi-identifier column has a custom_tag, used to know which column in the | ||
|  |       # data corresponds to which column in the statistical model. | ||
|  |       class GooglePrivacyDlpV2QuasiIdField | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A auxiliary field. | ||
|  |         # Corresponds to the JSON property `customTag` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :custom_tag | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `field` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :field | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @custom_tag = args[:custom_tag] if args.key?(:custom_tag) | ||
|  |           @field = args[:field] if args.key?(:field) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A quasi-identifier column has a custom_tag, used to know which column in the | ||
|  |       # data corresponds to which column in the statistical model. | ||
|  |       class GooglePrivacyDlpV2QuasiIdentifierField | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A column can be tagged with a custom tag. In this case, the user must indicate | ||
|  |         # an auxiliary table that contains statistical information on the possible | ||
|  |         # values of this column (below). | ||
|  |         # Corresponds to the JSON property `customTag` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :custom_tag | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `field` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :field | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @custom_tag = args[:custom_tag] if args.key?(:custom_tag) | ||
|  |           @field = args[:field] if args.key?(:field) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Message for infoType-dependent details parsed from quote. | ||
|  |       class GooglePrivacyDlpV2QuoteInfo | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Message for a date time object. e.g. 2018-01-01, 5th August. | ||
|  |         # Corresponds to the JSON property `dateTime` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DateTime] | ||
|  |         attr_accessor :date_time | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @date_time = args[:date_time] if args.key?(:date_time) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Generic half-open interval [start, end) | ||
|  |       class GooglePrivacyDlpV2Range | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Index of the last character of the range (exclusive). | ||
|  |         # Corresponds to the JSON property `end` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :end | ||
|  |        | ||
|  |         # Index of the first character of the range (inclusive). | ||
|  |         # Corresponds to the JSON property `start` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :start | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @end = args[:end] if args.key?(:end) | ||
|  |           @start = args[:start] if args.key?(:start) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A condition for determining whether a transformation should be applied to a | ||
|  |       # field. | ||
|  |       class GooglePrivacyDlpV2RecordCondition | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # An expression, consisting or an operator and conditions. | ||
|  |         # Corresponds to the JSON property `expressions` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Expressions] | ||
|  |         attr_accessor :expressions | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @expressions = args[:expressions] if args.key?(:expressions) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Message for a unique key indicating a record that contains a finding. | ||
|  |       class GooglePrivacyDlpV2RecordKey | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Row key for identifying a record in BigQuery table. | ||
|  |         # Corresponds to the JSON property `bigQueryKey` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2BigQueryKey] | ||
|  |         attr_accessor :big_query_key | ||
|  |        | ||
|  |         # Record key for a finding in Cloud Datastore. | ||
|  |         # Corresponds to the JSON property `datastoreKey` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DatastoreKey] | ||
|  |         attr_accessor :datastore_key | ||
|  |        | ||
|  |         # Values of identifying columns in the given row. Order of values matches the | ||
|  |         # order of `identifying_fields` specified in the scanning request. | ||
|  |         # Corresponds to the JSON property `idValues` | ||
|  |         # @return [Array<String>] | ||
|  |         attr_accessor :id_values | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @big_query_key = args[:big_query_key] if args.key?(:big_query_key) | ||
|  |           @datastore_key = args[:datastore_key] if args.key?(:datastore_key) | ||
|  |           @id_values = args[:id_values] if args.key?(:id_values) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Location of a finding within a row or record. | ||
|  |       class GooglePrivacyDlpV2RecordLocation | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `fieldId` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :field_id | ||
|  |        | ||
|  |         # Message for a unique key indicating a record that contains a finding. | ||
|  |         # Corresponds to the JSON property `recordKey` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2RecordKey] | ||
|  |         attr_accessor :record_key | ||
|  |        | ||
|  |         # Location of a finding within a table. | ||
|  |         # Corresponds to the JSON property `tableLocation` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TableLocation] | ||
|  |         attr_accessor :table_location | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @field_id = args[:field_id] if args.key?(:field_id) | ||
|  |           @record_key = args[:record_key] if args.key?(:record_key) | ||
|  |           @table_location = args[:table_location] if args.key?(:table_location) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Configuration to suppress records whose suppression conditions evaluate to | ||
|  |       # true. | ||
|  |       class GooglePrivacyDlpV2RecordSuppression | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A condition for determining whether a transformation should be applied to a | ||
|  |         # field. | ||
|  |         # Corresponds to the JSON property `condition` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2RecordCondition] | ||
|  |         attr_accessor :condition | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @condition = args[:condition] if args.key?(:condition) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A type of transformation that is applied over structured data such as a table. | ||
|  |       class GooglePrivacyDlpV2RecordTransformations | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Transform the record by applying various field transformations. | ||
|  |         # Corresponds to the JSON property `fieldTransformations` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FieldTransformation>] | ||
|  |         attr_accessor :field_transformations | ||
|  |        | ||
|  |         # Configuration defining which records get suppressed entirely. Records that | ||
|  |         # match any suppression rule are omitted from the output. | ||
|  |         # Corresponds to the JSON property `recordSuppressions` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2RecordSuppression>] | ||
|  |         attr_accessor :record_suppressions | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @field_transformations = args[:field_transformations] if args.key?(:field_transformations) | ||
|  |           @record_suppressions = args[:record_suppressions] if args.key?(:record_suppressions) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Redact a given value. For example, if used with an `InfoTypeTransformation` | ||
|  |       # transforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the | ||
|  |       # output would be 'My phone number is '. | ||
|  |       class GooglePrivacyDlpV2RedactConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request to search for potentially sensitive info in an image and redact it by | ||
|  |       # covering it with a colored rectangle. | ||
|  |       class GooglePrivacyDlpV2RedactImageRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Container for bytes to inspect or redact. | ||
|  |         # Corresponds to the JSON property `byteItem` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ByteContentItem] | ||
|  |         attr_accessor :byte_item | ||
|  |        | ||
|  |         # The configuration for specifying what content to redact from images. | ||
|  |         # Corresponds to the JSON property `imageRedactionConfigs` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2ImageRedactionConfig>] | ||
|  |         attr_accessor :image_redaction_configs | ||
|  |        | ||
|  |         # Whether the response should include findings along with the redacted image. | ||
|  |         # Corresponds to the JSON property `includeFindings` | ||
|  |         # @return [Boolean] | ||
|  |         attr_accessor :include_findings | ||
|  |         alias_method :include_findings?, :include_findings | ||
|  |        | ||
|  |         # Configuration description of the scanning process. When used with | ||
|  |         # redactContent only info_types and min_likelihood are currently used. | ||
|  |         # Corresponds to the JSON property `inspectConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectConfig] | ||
|  |         attr_accessor :inspect_config | ||
|  |        | ||
|  |         # Deprecated. This field has no effect. | ||
|  |         # Corresponds to the JSON property `locationId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :location_id | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @byte_item = args[:byte_item] if args.key?(:byte_item) | ||
|  |           @image_redaction_configs = args[:image_redaction_configs] if args.key?(:image_redaction_configs) | ||
|  |           @include_findings = args[:include_findings] if args.key?(:include_findings) | ||
|  |           @inspect_config = args[:inspect_config] if args.key?(:inspect_config) | ||
|  |           @location_id = args[:location_id] if args.key?(:location_id) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Results of redacting an image. | ||
|  |       class GooglePrivacyDlpV2RedactImageResponse | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # If an image was being inspected and the InspectConfig's include_quote was set | ||
|  |         # to true, then this field will include all text, if any, that was found in the | ||
|  |         # image. | ||
|  |         # Corresponds to the JSON property `extractedText` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :extracted_text | ||
|  |        | ||
|  |         # All the findings for a single scanned item. | ||
|  |         # Corresponds to the JSON property `inspectResult` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectResult] | ||
|  |         attr_accessor :inspect_result | ||
|  |        | ||
|  |         # The redacted image. The type will be the same as the original image. | ||
|  |         # Corresponds to the JSON property `redactedImage` | ||
|  |         # NOTE: Values are automatically base64 encoded/decoded in the client library. | ||
|  |         # @return [String] | ||
|  |         attr_accessor :redacted_image | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @extracted_text = args[:extracted_text] if args.key?(:extracted_text) | ||
|  |           @inspect_result = args[:inspect_result] if args.key?(:inspect_result) | ||
|  |           @redacted_image = args[:redacted_image] if args.key?(:redacted_image) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Message defining a custom regular expression. | ||
|  |       class GooglePrivacyDlpV2Regex | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The index of the submatch to extract as findings. When not specified, the | ||
|  |         # entire match is returned. No more than 3 may be included. | ||
|  |         # Corresponds to the JSON property `groupIndexes` | ||
|  |         # @return [Array<Fixnum>] | ||
|  |         attr_accessor :group_indexes | ||
|  |        | ||
|  |         # Pattern defining the regular expression. Its syntax (https://github.com/google/ | ||
|  |         # re2/wiki/Syntax) can be found under the google/re2 repository on GitHub. | ||
|  |         # Corresponds to the JSON property `pattern` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :pattern | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @group_indexes = args[:group_indexes] if args.key?(:group_indexes) | ||
|  |           @pattern = args[:pattern] if args.key?(:pattern) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request to re-identify an item. | ||
|  |       class GooglePrivacyDlpV2ReidentifyContentRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Configuration description of the scanning process. When used with | ||
|  |         # redactContent only info_types and min_likelihood are currently used. | ||
|  |         # Corresponds to the JSON property `inspectConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectConfig] | ||
|  |         attr_accessor :inspect_config | ||
|  |        | ||
|  |         # Template to use. Any configuration directly specified in `inspect_config` will | ||
|  |         # override those set in the template. Singular fields that are set in this | ||
|  |         # request will replace their corresponding fields in the template. Repeated | ||
|  |         # fields are appended. Singular sub-messages and groups are recursively merged. | ||
|  |         # Corresponds to the JSON property `inspectTemplateName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :inspect_template_name | ||
|  |        | ||
|  |         # Container structure for the content to inspect. | ||
|  |         # Corresponds to the JSON property `item` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ContentItem] | ||
|  |         attr_accessor :item | ||
|  |        | ||
|  |         # Deprecated. This field has no effect. | ||
|  |         # Corresponds to the JSON property `locationId` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :location_id | ||
|  |        | ||
|  |         # The configuration that controls how the data will change. | ||
|  |         # Corresponds to the JSON property `reidentifyConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DeidentifyConfig] | ||
|  |         attr_accessor :reidentify_config | ||
|  |        | ||
|  |         # Template to use. References an instance of `DeidentifyTemplate`. Any | ||
|  |         # configuration directly specified in `reidentify_config` or `inspect_config` | ||
|  |         # will override those set in the template. The `DeidentifyTemplate` used must | ||
|  |         # include only reversible transformations. Singular fields that are set in this | ||
|  |         # request will replace their corresponding fields in the template. Repeated | ||
|  |         # fields are appended. Singular sub-messages and groups are recursively merged. | ||
|  |         # Corresponds to the JSON property `reidentifyTemplateName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :reidentify_template_name | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @inspect_config = args[:inspect_config] if args.key?(:inspect_config) | ||
|  |           @inspect_template_name = args[:inspect_template_name] if args.key?(:inspect_template_name) | ||
|  |           @item = args[:item] if args.key?(:item) | ||
|  |           @location_id = args[:location_id] if args.key?(:location_id) | ||
|  |           @reidentify_config = args[:reidentify_config] if args.key?(:reidentify_config) | ||
|  |           @reidentify_template_name = args[:reidentify_template_name] if args.key?(:reidentify_template_name) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Results of re-identifying a item. | ||
|  |       class GooglePrivacyDlpV2ReidentifyContentResponse | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Container structure for the content to inspect. | ||
|  |         # Corresponds to the JSON property `item` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ContentItem] | ||
|  |         attr_accessor :item | ||
|  |        | ||
|  |         # Overview of the modifications that occurred. | ||
|  |         # Corresponds to the JSON property `overview` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TransformationOverview] | ||
|  |         attr_accessor :overview | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @item = args[:item] if args.key?(:item) | ||
|  |           @overview = args[:overview] if args.key?(:overview) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Replace each input value with a given `Value`. | ||
|  |       class GooglePrivacyDlpV2ReplaceValueConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Set of primitive values supported by the system. Note that for the purposes of | ||
|  |         # inspection or transformation, the number of bytes considered to comprise a ' | ||
|  |         # Value' is based on its representation as a UTF-8 encoded string. For example, | ||
|  |         # if 'integer_value' is set to 123456789, the number of bytes would be counted | ||
|  |         # as 9, even though an int64 only holds up to 8 bytes of data. | ||
|  |         # Corresponds to the JSON property `newValue` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Value] | ||
|  |         attr_accessor :new_value | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @new_value = args[:new_value] if args.key?(:new_value) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Replace each matching finding with the name of the info_type. | ||
|  |       class GooglePrivacyDlpV2ReplaceWithInfoTypeConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Snapshot of the inspection configuration. | ||
|  |       class GooglePrivacyDlpV2RequestedOptions | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Controls what and how to inspect for findings. | ||
|  |         # Corresponds to the JSON property `jobConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectJobConfig] | ||
|  |         attr_accessor :job_config | ||
|  |        | ||
|  |         # The inspectTemplate contains a configuration (set of types of sensitive data | ||
|  |         # to be detected) to be used anywhere you otherwise would normally specify | ||
|  |         # InspectConfig. See https://cloud.google.com/dlp/docs/concepts-templates to | ||
|  |         # learn more. | ||
|  |         # Corresponds to the JSON property `snapshotInspectTemplate` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectTemplate] | ||
|  |         attr_accessor :snapshot_inspect_template | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @job_config = args[:job_config] if args.key?(:job_config) | ||
|  |           @snapshot_inspect_template = args[:snapshot_inspect_template] if args.key?(:snapshot_inspect_template) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Risk analysis options. | ||
|  |       class GooglePrivacyDlpV2RequestedRiskAnalysisOptions | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Configuration for a risk analysis job. See https://cloud.google.com/dlp/docs/ | ||
|  |         # concepts-risk-analysis to learn more. | ||
|  |         # Corresponds to the JSON property `jobConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2RiskAnalysisJobConfig] | ||
|  |         attr_accessor :job_config | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @job_config = args[:job_config] if args.key?(:job_config) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # All result fields mentioned below are updated while the job is processing. | ||
|  |       class GooglePrivacyDlpV2Result | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Statistics related to processing hybrid inspect requests. | ||
|  |         # Corresponds to the JSON property `hybridStats` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2HybridInspectStatistics] | ||
|  |         attr_accessor :hybrid_stats | ||
|  |        | ||
|  |         # Statistics of how many instances of each info type were found during inspect | ||
|  |         # job. | ||
|  |         # Corresponds to the JSON property `infoTypeStats` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2InfoTypeStats>] | ||
|  |         attr_accessor :info_type_stats | ||
|  |        | ||
|  |         # Total size in bytes that were processed. | ||
|  |         # Corresponds to the JSON property `processedBytes` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :processed_bytes | ||
|  |        | ||
|  |         # Estimate of the number of bytes to process. | ||
|  |         # Corresponds to the JSON property `totalEstimatedBytes` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :total_estimated_bytes | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @hybrid_stats = args[:hybrid_stats] if args.key?(:hybrid_stats) | ||
|  |           @info_type_stats = args[:info_type_stats] if args.key?(:info_type_stats) | ||
|  |           @processed_bytes = args[:processed_bytes] if args.key?(:processed_bytes) | ||
|  |           @total_estimated_bytes = args[:total_estimated_bytes] if args.key?(:total_estimated_bytes) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Configuration for a risk analysis job. See https://cloud.google.com/dlp/docs/ | ||
|  |       # concepts-risk-analysis to learn more. | ||
|  |       class GooglePrivacyDlpV2RiskAnalysisJobConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Actions to execute at the completion of the job. Are executed in the order | ||
|  |         # provided. | ||
|  |         # Corresponds to the JSON property `actions` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Action>] | ||
|  |         attr_accessor :actions | ||
|  |        | ||
|  |         # Privacy metric to compute for reidentification risk analysis. | ||
|  |         # Corresponds to the JSON property `privacyMetric` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2PrivacyMetric] | ||
|  |         attr_accessor :privacy_metric | ||
|  |        | ||
|  |         # Message defining the location of a BigQuery table. A table is uniquely | ||
|  |         # identified by its project_id, dataset_id, and table_name. Within a query a | ||
|  |         # table is often referenced with a string in the format of: `:.` or `..`. | ||
|  |         # Corresponds to the JSON property `sourceTable` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2BigQueryTable] | ||
|  |         attr_accessor :source_table | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @actions = args[:actions] if args.key?(:actions) | ||
|  |           @privacy_metric = args[:privacy_metric] if args.key?(:privacy_metric) | ||
|  |           @source_table = args[:source_table] if args.key?(:source_table) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Values of the row. | ||
|  |       class GooglePrivacyDlpV2Row | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Individual cells. | ||
|  |         # Corresponds to the JSON property `values` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Value>] | ||
|  |         attr_accessor :values | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @values = args[:values] if args.key?(:values) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # If set, the detailed findings will be persisted to the specified | ||
|  |       # OutputStorageConfig. Only a single instance of this action can be specified. | ||
|  |       # Compatible with: Inspect, Risk | ||
|  |       class GooglePrivacyDlpV2SaveFindings | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Cloud repository for storing output. | ||
|  |         # Corresponds to the JSON property `outputConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2OutputStorageConfig] | ||
|  |         attr_accessor :output_config | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @output_config = args[:output_config] if args.key?(:output_config) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Schedule for triggeredJobs. | ||
|  |       class GooglePrivacyDlpV2Schedule | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # With this option a job is started a regular periodic basis. For example: every | ||
|  |         # day (86400 seconds). A scheduled start time will be skipped if the previous | ||
|  |         # execution has not ended when its scheduled time occurs. This value must be set | ||
|  |         # to a time duration greater than or equal to 1 day and can be no longer than 60 | ||
|  |         # days. | ||
|  |         # Corresponds to the JSON property `recurrencePeriodDuration` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :recurrence_period_duration | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @recurrence_period_duration = args[:recurrence_period_duration] if args.key?(:recurrence_period_duration) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # An auxiliary table containing statistical information on the relative | ||
|  |       # frequency of different quasi-identifiers values. It has one or several quasi- | ||
|  |       # identifiers columns, and one column that indicates the relative frequency of | ||
|  |       # each quasi-identifier tuple. If a tuple is present in the data but not in the | ||
|  |       # auxiliary table, the corresponding relative frequency is assumed to be zero ( | ||
|  |       # and thus, the tuple is highly reidentifiable). | ||
|  |       class GooglePrivacyDlpV2StatisticalTable | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Required. Quasi-identifier columns. | ||
|  |         # Corresponds to the JSON property `quasiIds` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2QuasiIdentifierField>] | ||
|  |         attr_accessor :quasi_ids | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `relativeFrequency` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :relative_frequency | ||
|  |        | ||
|  |         # Message defining the location of a BigQuery table. A table is uniquely | ||
|  |         # identified by its project_id, dataset_id, and table_name. Within a query a | ||
|  |         # table is often referenced with a string in the format of: `:.` or `..`. | ||
|  |         # Corresponds to the JSON property `table` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2BigQueryTable] | ||
|  |         attr_accessor :table | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @quasi_ids = args[:quasi_ids] if args.key?(:quasi_ids) | ||
|  |           @relative_frequency = args[:relative_frequency] if args.key?(:relative_frequency) | ||
|  |           @table = args[:table] if args.key?(:table) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Shared message indicating Cloud storage type. | ||
|  |       class GooglePrivacyDlpV2StorageConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Options defining BigQuery table and row identifiers. | ||
|  |         # Corresponds to the JSON property `bigQueryOptions` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2BigQueryOptions] | ||
|  |         attr_accessor :big_query_options | ||
|  |        | ||
|  |         # Options defining a file or a set of files within a Google Cloud Storage bucket. | ||
|  |         # Corresponds to the JSON property `cloudStorageOptions` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2CloudStorageOptions] | ||
|  |         attr_accessor :cloud_storage_options | ||
|  |        | ||
|  |         # Options defining a data set within Google Cloud Datastore. | ||
|  |         # Corresponds to the JSON property `datastoreOptions` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DatastoreOptions] | ||
|  |         attr_accessor :datastore_options | ||
|  |        | ||
|  |         # Configuration to control jobs where the content being inspected is outside of | ||
|  |         # Google Cloud Platform. | ||
|  |         # Corresponds to the JSON property `hybridOptions` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2HybridOptions] | ||
|  |         attr_accessor :hybrid_options | ||
|  |        | ||
|  |         # Configuration of the timespan of the items to include in scanning. Currently | ||
|  |         # only supported when inspecting Google Cloud Storage and BigQuery. | ||
|  |         # Corresponds to the JSON property `timespanConfig` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2TimespanConfig] | ||
|  |         attr_accessor :timespan_config | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @big_query_options = args[:big_query_options] if args.key?(:big_query_options) | ||
|  |           @cloud_storage_options = args[:cloud_storage_options] if args.key?(:cloud_storage_options) | ||
|  |           @datastore_options = args[:datastore_options] if args.key?(:datastore_options) | ||
|  |           @hybrid_options = args[:hybrid_options] if args.key?(:hybrid_options) | ||
|  |           @timespan_config = args[:timespan_config] if args.key?(:timespan_config) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Storage metadata label to indicate which metadata entry contains findings. | ||
|  |       class GooglePrivacyDlpV2StorageMetadataLabel | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         #  | ||
|  |         # Corresponds to the JSON property `key` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :key | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @key = args[:key] if args.key?(:key) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # StoredInfoType resource message that contains information about the current | ||
|  |       # version and any pending updates. | ||
|  |       class GooglePrivacyDlpV2StoredInfoType | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Version of a StoredInfoType, including the configuration used to build it, | ||
|  |         # create timestamp, and current state. | ||
|  |         # Corresponds to the JSON property `currentVersion` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2StoredInfoTypeVersion] | ||
|  |         attr_accessor :current_version | ||
|  |        | ||
|  |         # Resource name. | ||
|  |         # Corresponds to the JSON property `name` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :name | ||
|  |        | ||
|  |         # Pending versions of the stored info type. Empty if no versions are pending. | ||
|  |         # Corresponds to the JSON property `pendingVersions` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2StoredInfoTypeVersion>] | ||
|  |         attr_accessor :pending_versions | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @current_version = args[:current_version] if args.key?(:current_version) | ||
|  |           @name = args[:name] if args.key?(:name) | ||
|  |           @pending_versions = args[:pending_versions] if args.key?(:pending_versions) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Configuration for stored infoTypes. All fields and subfield are provided by | ||
|  |       # the user. For more information, see https://cloud.google.com/dlp/docs/creating- | ||
|  |       # custom-infotypes. | ||
|  |       class GooglePrivacyDlpV2StoredInfoTypeConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Description of the StoredInfoType (max 256 characters). | ||
|  |         # Corresponds to the JSON property `description` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :description | ||
|  |        | ||
|  |         # Custom information type based on a dictionary of words or phrases. This can be | ||
|  |         # used to match sensitive information specific to the data, such as a list of | ||
|  |         # employee IDs or job titles. Dictionary words are case-insensitive and all | ||
|  |         # characters other than letters and digits in the unicode [Basic Multilingual | ||
|  |         # Plane](https://en.wikipedia.org/wiki/Plane_%28Unicode%29# | ||
|  |         # Basic_Multilingual_Plane) will be replaced with whitespace when scanning for | ||
|  |         # matches, so the dictionary phrase "Sam Johnson" will match all three phrases " | ||
|  |         # sam johnson", "Sam, Johnson", and "Sam (Johnson)". Additionally, the | ||
|  |         # characters surrounding any match must be of a different type than the adjacent | ||
|  |         # characters within the word, so letters must be next to non-letters and digits | ||
|  |         # next to non-digits. For example, the dictionary word "jen" will match the | ||
|  |         # first three letters of the text "jen123" but will return no matches for " | ||
|  |         # jennifer". Dictionary words containing a large number of characters that are | ||
|  |         # not letters or digits may result in unexpected findings because such | ||
|  |         # characters are treated as whitespace. The [limits](https://cloud.google.com/ | ||
|  |         # dlp/limits) page contains details about the size limits of dictionaries. For | ||
|  |         # dictionaries that do not fit within these constraints, consider using ` | ||
|  |         # LargeCustomDictionaryConfig` in the `StoredInfoType` API. | ||
|  |         # Corresponds to the JSON property `dictionary` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Dictionary] | ||
|  |         attr_accessor :dictionary | ||
|  |        | ||
|  |         # Display name of the StoredInfoType (max 256 characters). | ||
|  |         # Corresponds to the JSON property `displayName` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :display_name | ||
|  |        | ||
|  |         # Configuration for a custom dictionary created from a data source of any size | ||
|  |         # up to the maximum size defined in the [limits](https://cloud.google.com/dlp/ | ||
|  |         # limits) page. The artifacts of dictionary creation are stored in the specified | ||
|  |         # Google Cloud Storage location. Consider using `CustomInfoType.Dictionary` for | ||
|  |         # smaller dictionaries that satisfy the size requirements. | ||
|  |         # Corresponds to the JSON property `largeCustomDictionary` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2LargeCustomDictionaryConfig] | ||
|  |         attr_accessor :large_custom_dictionary | ||
|  |        | ||
|  |         # Message defining a custom regular expression. | ||
|  |         # Corresponds to the JSON property `regex` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Regex] | ||
|  |         attr_accessor :regex | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @description = args[:description] if args.key?(:description) | ||
|  |           @dictionary = args[:dictionary] if args.key?(:dictionary) | ||
|  |           @display_name = args[:display_name] if args.key?(:display_name) | ||
|  |           @large_custom_dictionary = args[:large_custom_dictionary] if args.key?(:large_custom_dictionary) | ||
|  |           @regex = args[:regex] if args.key?(:regex) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Statistics for a StoredInfoType. | ||
|  |       class GooglePrivacyDlpV2StoredInfoTypeStats | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Summary statistics of a custom dictionary. | ||
|  |         # Corresponds to the JSON property `largeCustomDictionary` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2LargeCustomDictionaryStats] | ||
|  |         attr_accessor :large_custom_dictionary | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @large_custom_dictionary = args[:large_custom_dictionary] if args.key?(:large_custom_dictionary) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Version of a StoredInfoType, including the configuration used to build it, | ||
|  |       # create timestamp, and current state. | ||
|  |       class GooglePrivacyDlpV2StoredInfoTypeVersion | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Configuration for stored infoTypes. All fields and subfield are provided by | ||
|  |         # the user. For more information, see https://cloud.google.com/dlp/docs/creating- | ||
|  |         # custom-infotypes. | ||
|  |         # Corresponds to the JSON property `config` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2StoredInfoTypeConfig] | ||
|  |         attr_accessor :config | ||
|  |        | ||
|  |         # Create timestamp of the version. Read-only, determined by the system when the | ||
|  |         # version is created. | ||
|  |         # Corresponds to the JSON property `createTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :create_time | ||
|  |        | ||
|  |         # Errors that occurred when creating this storedInfoType version, or anomalies | ||
|  |         # detected in the storedInfoType data that render it unusable. Only the five | ||
|  |         # most recent errors will be displayed, with the most recent error appearing | ||
|  |         # first. For example, some of the data for stored custom dictionaries is put in | ||
|  |         # the user's Google Cloud Storage bucket, and if this data is modified or | ||
|  |         # deleted by the user or another system, the dictionary becomes invalid. If any | ||
|  |         # errors occur, fix the problem indicated by the error message and use the | ||
|  |         # UpdateStoredInfoType API method to create another version of the | ||
|  |         # storedInfoType to continue using it, reusing the same `config` if it was not | ||
|  |         # the source of the error. | ||
|  |         # Corresponds to the JSON property `errors` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Error>] | ||
|  |         attr_accessor :errors | ||
|  |        | ||
|  |         # Stored info type version state. Read-only, updated by the system during | ||
|  |         # dictionary creation. | ||
|  |         # Corresponds to the JSON property `state` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :state | ||
|  |        | ||
|  |         # Statistics for a StoredInfoType. | ||
|  |         # Corresponds to the JSON property `stats` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2StoredInfoTypeStats] | ||
|  |         attr_accessor :stats | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @config = args[:config] if args.key?(:config) | ||
|  |           @create_time = args[:create_time] if args.key?(:create_time) | ||
|  |           @errors = args[:errors] if args.key?(:errors) | ||
|  |           @state = args[:state] if args.key?(:state) | ||
|  |           @stats = args[:stats] if args.key?(:stats) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A reference to a StoredInfoType to use with scanning. | ||
|  |       class GooglePrivacyDlpV2StoredType | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Timestamp indicating when the version of the `StoredInfoType` used for | ||
|  |         # inspection was created. Output-only field, populated by the system. | ||
|  |         # Corresponds to the JSON property `createTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :create_time | ||
|  |        | ||
|  |         # Resource name of the requested `StoredInfoType`, for example `organizations/ | ||
|  |         # 433245324/storedInfoTypes/432452342` or `projects/project-id/storedInfoTypes/ | ||
|  |         # 432452342`. | ||
|  |         # Corresponds to the JSON property `name` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :name | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @create_time = args[:create_time] if args.key?(:create_time) | ||
|  |           @name = args[:name] if args.key?(:name) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A collection that informs the user the number of times a particular ` | ||
|  |       # TransformationResultCode` and error details occurred. | ||
|  |       class GooglePrivacyDlpV2SummaryResult | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Outcome of the transformation. | ||
|  |         # Corresponds to the JSON property `code` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :code | ||
|  |        | ||
|  |         # Number of transformations counted by this result. | ||
|  |         # Corresponds to the JSON property `count` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :count | ||
|  |        | ||
|  |         # A place for warnings or errors to show up if a transformation didn't work as | ||
|  |         # expected. | ||
|  |         # Corresponds to the JSON property `details` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :details | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @code = args[:code] if args.key?(:code) | ||
|  |           @count = args[:count] if args.key?(:count) | ||
|  |           @details = args[:details] if args.key?(:details) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Message for detecting output from deidentification transformations such as [` | ||
|  |       # CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/ | ||
|  |       # v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig). These types | ||
|  |       # of transformations are those that perform pseudonymization, thereby producing | ||
|  |       # a "surrogate" as output. This should be used in conjunction with a field on | ||
|  |       # the transformation such as `surrogate_info_type`. This CustomInfoType does not | ||
|  |       # support the use of `detection_rules`. | ||
|  |       class GooglePrivacyDlpV2SurrogateType | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Structured content to inspect. Up to 50,000 `Value`s per request allowed. See | ||
|  |       # https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to learn | ||
|  |       # more. | ||
|  |       class GooglePrivacyDlpV2Table | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Headers of the table. | ||
|  |         # Corresponds to the JSON property `headers` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId>] | ||
|  |         attr_accessor :headers | ||
|  |        | ||
|  |         # Rows of the table. | ||
|  |         # Corresponds to the JSON property `rows` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2Row>] | ||
|  |         attr_accessor :rows | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @headers = args[:headers] if args.key?(:headers) | ||
|  |           @rows = args[:rows] if args.key?(:rows) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Location of a finding within a table. | ||
|  |       class GooglePrivacyDlpV2TableLocation | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The zero-based index of the row where the finding is located. Only populated | ||
|  |         # for resources that have a natural ordering, not BigQuery. In BigQuery, to | ||
|  |         # identify the row a finding came from, populate BigQueryOptions. | ||
|  |         # identifying_fields with your primary key column names and when you store the | ||
|  |         # findings the value of those columns will be stored inside of Finding. | ||
|  |         # Corresponds to the JSON property `rowIndex` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :row_index | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @row_index = args[:row_index] if args.key?(:row_index) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Instructions regarding the table content being inspected. | ||
|  |       class GooglePrivacyDlpV2TableOptions | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The columns that are the primary keys for table objects included in | ||
|  |         # ContentItem. A copy of this cell's value will stored alongside alongside each | ||
|  |         # finding so that the finding can be traced to the specific row it came from. No | ||
|  |         # more than 3 may be provided. | ||
|  |         # Corresponds to the JSON property `identifyingFields` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId>] | ||
|  |         attr_accessor :identifying_fields | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @identifying_fields = args[:identifying_fields] if args.key?(:identifying_fields) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A column with a semantic tag attached. | ||
|  |       class GooglePrivacyDlpV2TaggedField | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # A column can be tagged with a custom tag. In this case, the user must indicate | ||
|  |         # an auxiliary table that contains statistical information on the possible | ||
|  |         # values of this column (below). | ||
|  |         # Corresponds to the JSON property `customTag` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :custom_tag | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `field` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :field | ||
|  |        | ||
|  |         # A generic empty message that you can re-use to avoid defining duplicated empty | ||
|  |         # messages in your APIs. A typical example is to use it as the request or the | ||
|  |         # response type of an API method. For instance: service Foo ` rpc Bar(google. | ||
|  |         # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for | ||
|  |         # `Empty` is empty JSON object ````. | ||
|  |         # Corresponds to the JSON property `inferred` | ||
|  |         # @return [Google::Apis::DlpV2::GoogleProtobufEmpty] | ||
|  |         attr_accessor :inferred | ||
|  |        | ||
|  |         # Type of information detected by the API. | ||
|  |         # Corresponds to the JSON property `infoType` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType] | ||
|  |         attr_accessor :info_type | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @custom_tag = args[:custom_tag] if args.key?(:custom_tag) | ||
|  |           @field = args[:field] if args.key?(:field) | ||
|  |           @inferred = args[:inferred] if args.key?(:inferred) | ||
|  |           @info_type = args[:info_type] if args.key?(:info_type) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Throw an error and fail the request when a transformation error occurs. | ||
|  |       class GooglePrivacyDlpV2ThrowError | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a | ||
|  |       # portion of the value. | ||
|  |       class GooglePrivacyDlpV2TimePartConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The part of the time to keep. | ||
|  |         # Corresponds to the JSON property `partToExtract` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :part_to_extract | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @part_to_extract = args[:part_to_extract] if args.key?(:part_to_extract) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Time zone of the date time object. | ||
|  |       class GooglePrivacyDlpV2TimeZone | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Set only if the offset can be determined. Positive for time ahead of UTC. E.g. | ||
|  |         # For "UTC-9", this value is -540. | ||
|  |         # Corresponds to the JSON property `offsetMinutes` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :offset_minutes | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @offset_minutes = args[:offset_minutes] if args.key?(:offset_minutes) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Configuration of the timespan of the items to include in scanning. Currently | ||
|  |       # only supported when inspecting Google Cloud Storage and BigQuery. | ||
|  |       class GooglePrivacyDlpV2TimespanConfig | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # When the job is started by a JobTrigger we will automatically figure out a | ||
|  |         # valid start_time to avoid scanning files that have not been modified since the | ||
|  |         # last time the JobTrigger executed. This will be based on the time of the | ||
|  |         # execution of the last run of the JobTrigger. | ||
|  |         # Corresponds to the JSON property `enableAutoPopulationOfTimespanConfig` | ||
|  |         # @return [Boolean] | ||
|  |         attr_accessor :enable_auto_population_of_timespan_config | ||
|  |         alias_method :enable_auto_population_of_timespan_config?, :enable_auto_population_of_timespan_config | ||
|  |        | ||
|  |         # Exclude files, tables, or rows newer than this value. If not set, no upper | ||
|  |         # time limit is applied. | ||
|  |         # Corresponds to the JSON property `endTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :end_time | ||
|  |        | ||
|  |         # Exclude files, tables, or rows older than this value. If not set, no lower | ||
|  |         # time limit is applied. | ||
|  |         # Corresponds to the JSON property `startTime` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :start_time | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `timestampField` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :timestamp_field | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @enable_auto_population_of_timespan_config = args[:enable_auto_population_of_timespan_config] if args.key?(:enable_auto_population_of_timespan_config) | ||
|  |           @end_time = args[:end_time] if args.key?(:end_time) | ||
|  |           @start_time = args[:start_time] if args.key?(:start_time) | ||
|  |           @timestamp_field = args[:timestamp_field] if args.key?(:timestamp_field) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # How to handle transformation errors during de-identification. A transformation | ||
|  |       # error occurs when the requested transformation is incompatible with the data. | ||
|  |       # For example, trying to de-identify an IP address using a `DateShift` | ||
|  |       # transformation would result in a transformation error, since date info cannot | ||
|  |       # be extracted from an IP address. Information about any incompatible | ||
|  |       # transformations, and how they were handled, is returned in the response as | ||
|  |       # part of the `TransformationOverviews`. | ||
|  |       class GooglePrivacyDlpV2TransformationErrorHandling | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Skips the data without modifying it if the requested transformation would | ||
|  |         # cause an error. For example, if a `DateShift` transformation were applied an | ||
|  |         # an IP address, this mode would leave the IP address unchanged in the response. | ||
|  |         # Corresponds to the JSON property `leaveUntransformed` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2LeaveUntransformed] | ||
|  |         attr_accessor :leave_untransformed | ||
|  |        | ||
|  |         # Throw an error and fail the request when a transformation error occurs. | ||
|  |         # Corresponds to the JSON property `throwError` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2ThrowError] | ||
|  |         attr_accessor :throw_error | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @leave_untransformed = args[:leave_untransformed] if args.key?(:leave_untransformed) | ||
|  |           @throw_error = args[:throw_error] if args.key?(:throw_error) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Overview of the modifications that occurred. | ||
|  |       class GooglePrivacyDlpV2TransformationOverview | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Transformations applied to the dataset. | ||
|  |         # Corresponds to the JSON property `transformationSummaries` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2TransformationSummary>] | ||
|  |         attr_accessor :transformation_summaries | ||
|  |        | ||
|  |         # Total size in bytes that were transformed in some way. | ||
|  |         # Corresponds to the JSON property `transformedBytes` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :transformed_bytes | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @transformation_summaries = args[:transformation_summaries] if args.key?(:transformation_summaries) | ||
|  |           @transformed_bytes = args[:transformed_bytes] if args.key?(:transformed_bytes) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Summary of a single transformation. Only one of 'transformation', ' | ||
|  |       # field_transformation', or 'record_suppress' will be set. | ||
|  |       class GooglePrivacyDlpV2TransformationSummary | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # General identifier of a data field in a storage service. | ||
|  |         # Corresponds to the JSON property `field` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2FieldId] | ||
|  |         attr_accessor :field | ||
|  |        | ||
|  |         # The field transformation that was applied. If multiple field transformations | ||
|  |         # are requested for a single field, this list will contain all of them; | ||
|  |         # otherwise, only one is supplied. | ||
|  |         # Corresponds to the JSON property `fieldTransformations` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2FieldTransformation>] | ||
|  |         attr_accessor :field_transformations | ||
|  |        | ||
|  |         # Type of information detected by the API. | ||
|  |         # Corresponds to the JSON property `infoType` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InfoType] | ||
|  |         attr_accessor :info_type | ||
|  |        | ||
|  |         # Configuration to suppress records whose suppression conditions evaluate to | ||
|  |         # true. | ||
|  |         # Corresponds to the JSON property `recordSuppress` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2RecordSuppression] | ||
|  |         attr_accessor :record_suppress | ||
|  |        | ||
|  |         # Collection of all transformations that took place or had an error. | ||
|  |         # Corresponds to the JSON property `results` | ||
|  |         # @return [Array<Google::Apis::DlpV2::GooglePrivacyDlpV2SummaryResult>] | ||
|  |         attr_accessor :results | ||
|  |        | ||
|  |         # A rule for transforming a value. | ||
|  |         # Corresponds to the JSON property `transformation` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2PrimitiveTransformation] | ||
|  |         attr_accessor :transformation | ||
|  |        | ||
|  |         # Total size in bytes that were transformed in some way. | ||
|  |         # Corresponds to the JSON property `transformedBytes` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :transformed_bytes | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @field = args[:field] if args.key?(:field) | ||
|  |           @field_transformations = args[:field_transformations] if args.key?(:field_transformations) | ||
|  |           @info_type = args[:info_type] if args.key?(:info_type) | ||
|  |           @record_suppress = args[:record_suppress] if args.key?(:record_suppress) | ||
|  |           @results = args[:results] if args.key?(:results) | ||
|  |           @transformation = args[:transformation] if args.key?(:transformation) | ||
|  |           @transformed_bytes = args[:transformed_bytes] if args.key?(:transformed_bytes) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Use this to have a random data crypto key generated. It will be discarded | ||
|  |       # after the request finishes. | ||
|  |       class GooglePrivacyDlpV2TransientCryptoKey | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Required. Name of the key. This is an arbitrary string used to differentiate | ||
|  |         # different keys. A unique key is generated per name: two separate ` | ||
|  |         # TransientCryptoKey` protos share the same generated key if their names are the | ||
|  |         # same. When the data crypto key is generated, this name is not used in any way ( | ||
|  |         # repeating the api call will result in a different key being generated). | ||
|  |         # Corresponds to the JSON property `name` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :name | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @name = args[:name] if args.key?(:name) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # What event needs to occur for a new job to be started. | ||
|  |       class GooglePrivacyDlpV2Trigger | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Job trigger option for hybrid jobs. Jobs must be manually created and finished. | ||
|  |         # Corresponds to the JSON property `manual` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Manual] | ||
|  |         attr_accessor :manual | ||
|  |        | ||
|  |         # Schedule for triggeredJobs. | ||
|  |         # Corresponds to the JSON property `schedule` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Schedule] | ||
|  |         attr_accessor :schedule | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @manual = args[:manual] if args.key?(:manual) | ||
|  |           @schedule = args[:schedule] if args.key?(:schedule) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Using raw keys is prone to security risks due to accidentally leaking the key. | ||
|  |       # Choose another type of key if possible. | ||
|  |       class GooglePrivacyDlpV2UnwrappedCryptoKey | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Required. A 128/192/256 bit key. | ||
|  |         # Corresponds to the JSON property `key` | ||
|  |         # NOTE: Values are automatically base64 encoded/decoded in the client library. | ||
|  |         # @return [String] | ||
|  |         attr_accessor :key | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @key = args[:key] if args.key?(:key) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request message for UpdateDeidentifyTemplate. | ||
|  |       class GooglePrivacyDlpV2UpdateDeidentifyTemplateRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # DeidentifyTemplates contains instructions on how to de-identify content. See | ||
|  |         # https://cloud.google.com/dlp/docs/concepts-templates to learn more. | ||
|  |         # Corresponds to the JSON property `deidentifyTemplate` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2DeidentifyTemplate] | ||
|  |         attr_accessor :deidentify_template | ||
|  |        | ||
|  |         # Mask to control which fields get updated. | ||
|  |         # Corresponds to the JSON property `updateMask` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :update_mask | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @deidentify_template = args[:deidentify_template] if args.key?(:deidentify_template) | ||
|  |           @update_mask = args[:update_mask] if args.key?(:update_mask) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request message for UpdateInspectTemplate. | ||
|  |       class GooglePrivacyDlpV2UpdateInspectTemplateRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The inspectTemplate contains a configuration (set of types of sensitive data | ||
|  |         # to be detected) to be used anywhere you otherwise would normally specify | ||
|  |         # InspectConfig. See https://cloud.google.com/dlp/docs/concepts-templates to | ||
|  |         # learn more. | ||
|  |         # Corresponds to the JSON property `inspectTemplate` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2InspectTemplate] | ||
|  |         attr_accessor :inspect_template | ||
|  |        | ||
|  |         # Mask to control which fields get updated. | ||
|  |         # Corresponds to the JSON property `updateMask` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :update_mask | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @inspect_template = args[:inspect_template] if args.key?(:inspect_template) | ||
|  |           @update_mask = args[:update_mask] if args.key?(:update_mask) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request message for UpdateJobTrigger. | ||
|  |       class GooglePrivacyDlpV2UpdateJobTriggerRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Contains a configuration to make dlp api calls on a repeating basis. See https: | ||
|  |         # //cloud.google.com/dlp/docs/concepts-job-triggers to learn more. | ||
|  |         # Corresponds to the JSON property `jobTrigger` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2JobTrigger] | ||
|  |         attr_accessor :job_trigger | ||
|  |        | ||
|  |         # Mask to control which fields get updated. | ||
|  |         # Corresponds to the JSON property `updateMask` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :update_mask | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @job_trigger = args[:job_trigger] if args.key?(:job_trigger) | ||
|  |           @update_mask = args[:update_mask] if args.key?(:update_mask) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Request message for UpdateStoredInfoType. | ||
|  |       class GooglePrivacyDlpV2UpdateStoredInfoTypeRequest | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Configuration for stored infoTypes. All fields and subfield are provided by | ||
|  |         # the user. For more information, see https://cloud.google.com/dlp/docs/creating- | ||
|  |         # custom-infotypes. | ||
|  |         # Corresponds to the JSON property `config` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2StoredInfoTypeConfig] | ||
|  |         attr_accessor :config | ||
|  |        | ||
|  |         # Mask to control which fields get updated. | ||
|  |         # Corresponds to the JSON property `updateMask` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :update_mask | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @config = args[:config] if args.key?(:config) | ||
|  |           @update_mask = args[:update_mask] if args.key?(:update_mask) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Set of primitive values supported by the system. Note that for the purposes of | ||
|  |       # inspection or transformation, the number of bytes considered to comprise a ' | ||
|  |       # Value' is based on its representation as a UTF-8 encoded string. For example, | ||
|  |       # if 'integer_value' is set to 123456789, the number of bytes would be counted | ||
|  |       # as 9, even though an int64 only holds up to 8 bytes of data. | ||
|  |       class GooglePrivacyDlpV2Value | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # boolean | ||
|  |         # Corresponds to the JSON property `booleanValue` | ||
|  |         # @return [Boolean] | ||
|  |         attr_accessor :boolean_value | ||
|  |         alias_method :boolean_value?, :boolean_value | ||
|  |        | ||
|  |         # Represents a whole or partial calendar date, such as a birthday. The time of | ||
|  |         # day and time zone are either specified elsewhere or are insignificant. The | ||
|  |         # date is relative to the Gregorian Calendar. This can represent one of the | ||
|  |         # following: * A full date, with non-zero year, month, and day values * A month | ||
|  |         # and day value, with a zero year, such as an anniversary * A year on its own, | ||
|  |         # with zero month and day values * A year and month value, with a zero day, such | ||
|  |         # as a credit card expiration date Related types are google.type.TimeOfDay and ` | ||
|  |         # google.protobuf.Timestamp`. | ||
|  |         # Corresponds to the JSON property `dateValue` | ||
|  |         # @return [Google::Apis::DlpV2::GoogleTypeDate] | ||
|  |         attr_accessor :date_value | ||
|  |        | ||
|  |         # day of week | ||
|  |         # Corresponds to the JSON property `dayOfWeekValue` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :day_of_week_value | ||
|  |        | ||
|  |         # float | ||
|  |         # Corresponds to the JSON property `floatValue` | ||
|  |         # @return [Float] | ||
|  |         attr_accessor :float_value | ||
|  |        | ||
|  |         # integer | ||
|  |         # Corresponds to the JSON property `integerValue` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :integer_value | ||
|  |        | ||
|  |         # string | ||
|  |         # Corresponds to the JSON property `stringValue` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :string_value | ||
|  |        | ||
|  |         # Represents a time of day. The date and time zone are either not significant or | ||
|  |         # are specified elsewhere. An API may choose to allow leap seconds. Related | ||
|  |         # types are google.type.Date and `google.protobuf.Timestamp`. | ||
|  |         # Corresponds to the JSON property `timeValue` | ||
|  |         # @return [Google::Apis::DlpV2::GoogleTypeTimeOfDay] | ||
|  |         attr_accessor :time_value | ||
|  |        | ||
|  |         # timestamp | ||
|  |         # Corresponds to the JSON property `timestampValue` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :timestamp_value | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @boolean_value = args[:boolean_value] if args.key?(:boolean_value) | ||
|  |           @date_value = args[:date_value] if args.key?(:date_value) | ||
|  |           @day_of_week_value = args[:day_of_week_value] if args.key?(:day_of_week_value) | ||
|  |           @float_value = args[:float_value] if args.key?(:float_value) | ||
|  |           @integer_value = args[:integer_value] if args.key?(:integer_value) | ||
|  |           @string_value = args[:string_value] if args.key?(:string_value) | ||
|  |           @time_value = args[:time_value] if args.key?(:time_value) | ||
|  |           @timestamp_value = args[:timestamp_value] if args.key?(:timestamp_value) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A value of a field, including its frequency. | ||
|  |       class GooglePrivacyDlpV2ValueFrequency | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # How many times the value is contained in the field. | ||
|  |         # Corresponds to the JSON property `count` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :count | ||
|  |        | ||
|  |         # Set of primitive values supported by the system. Note that for the purposes of | ||
|  |         # inspection or transformation, the number of bytes considered to comprise a ' | ||
|  |         # Value' is based on its representation as a UTF-8 encoded string. For example, | ||
|  |         # if 'integer_value' is set to 123456789, the number of bytes would be counted | ||
|  |         # as 9, even though an int64 only holds up to 8 bytes of data. | ||
|  |         # Corresponds to the JSON property `value` | ||
|  |         # @return [Google::Apis::DlpV2::GooglePrivacyDlpV2Value] | ||
|  |         attr_accessor :value | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @count = args[:count] if args.key?(:count) | ||
|  |           @value = args[:value] if args.key?(:value) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Message defining a list of words or phrases to search for in the data. | ||
|  |       class GooglePrivacyDlpV2WordList | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Words or phrases defining the dictionary. The dictionary must contain at least | ||
|  |         # one phrase and every phrase must contain at least 2 characters that are | ||
|  |         # letters or digits. [required] | ||
|  |         # Corresponds to the JSON property `words` | ||
|  |         # @return [Array<String>] | ||
|  |         attr_accessor :words | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @words = args[:words] if args.key?(:words) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # A generic empty message that you can re-use to avoid defining duplicated empty | ||
|  |       # messages in your APIs. A typical example is to use it as the request or the | ||
|  |       # response type of an API method. For instance: service Foo ` rpc Bar(google. | ||
|  |       # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for | ||
|  |       # `Empty` is empty JSON object ````. | ||
|  |       class GoogleProtobufEmpty | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # The `Status` type defines a logical error model that is suitable for different | ||
|  |       # programming environments, including REST APIs and RPC APIs. It is used by [ | ||
|  |       # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of | ||
|  |       # data: error code, error message, and error details. You can find out more | ||
|  |       # about this error model and how to work with it in the [API Design Guide](https: | ||
|  |       # //cloud.google.com/apis/design/errors). | ||
|  |       class GoogleRpcStatus | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # The status code, which should be an enum value of google.rpc.Code. | ||
|  |         # Corresponds to the JSON property `code` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :code | ||
|  |        | ||
|  |         # A list of messages that carry the error details. There is a common set of | ||
|  |         # message types for APIs to use. | ||
|  |         # Corresponds to the JSON property `details` | ||
|  |         # @return [Array<Hash<String,Object>>] | ||
|  |         attr_accessor :details | ||
|  |        | ||
|  |         # A developer-facing error message, which should be in English. Any user-facing | ||
|  |         # error message should be localized and sent in the google.rpc.Status.details | ||
|  |         # field, or localized by the client. | ||
|  |         # Corresponds to the JSON property `message` | ||
|  |         # @return [String] | ||
|  |         attr_accessor :message | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @code = args[:code] if args.key?(:code) | ||
|  |           @details = args[:details] if args.key?(:details) | ||
|  |           @message = args[:message] if args.key?(:message) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Represents a whole or partial calendar date, such as a birthday. The time of | ||
|  |       # day and time zone are either specified elsewhere or are insignificant. The | ||
|  |       # date is relative to the Gregorian Calendar. This can represent one of the | ||
|  |       # following: * A full date, with non-zero year, month, and day values * A month | ||
|  |       # and day value, with a zero year, such as an anniversary * A year on its own, | ||
|  |       # with zero month and day values * A year and month value, with a zero day, such | ||
|  |       # as a credit card expiration date Related types are google.type.TimeOfDay and ` | ||
|  |       # google.protobuf.Timestamp`. | ||
|  |       class GoogleTypeDate | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to | ||
|  |         # specify a year by itself or a year and month where the day isn't significant. | ||
|  |         # Corresponds to the JSON property `day` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :day | ||
|  |        | ||
|  |         # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month | ||
|  |         # and day. | ||
|  |         # Corresponds to the JSON property `month` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :month | ||
|  |        | ||
|  |         # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a | ||
|  |         # year. | ||
|  |         # Corresponds to the JSON property `year` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :year | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @day = args[:day] if args.key?(:day) | ||
|  |           @month = args[:month] if args.key?(:month) | ||
|  |           @year = args[:year] if args.key?(:year) | ||
|  |         end | ||
|  |       end | ||
|  |        | ||
|  |       # Represents a time of day. The date and time zone are either not significant or | ||
|  |       # are specified elsewhere. An API may choose to allow leap seconds. Related | ||
|  |       # types are google.type.Date and `google.protobuf.Timestamp`. | ||
|  |       class GoogleTypeTimeOfDay | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to | ||
|  |         # allow the value "24:00:00" for scenarios like business closing time. | ||
|  |         # Corresponds to the JSON property `hours` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :hours | ||
|  |        | ||
|  |         # Minutes of hour of day. Must be from 0 to 59. | ||
|  |         # Corresponds to the JSON property `minutes` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :minutes | ||
|  |        | ||
|  |         # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. | ||
|  |         # Corresponds to the JSON property `nanos` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :nanos | ||
|  |        | ||
|  |         # Seconds of minutes of the time. Must normally be from 0 to 59. An API may | ||
|  |         # allow the value 60 if it allows leap-seconds. | ||
|  |         # Corresponds to the JSON property `seconds` | ||
|  |         # @return [Fixnum] | ||
|  |         attr_accessor :seconds | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |           @hours = args[:hours] if args.key?(:hours) | ||
|  |           @minutes = args[:minutes] if args.key?(:minutes) | ||
|  |           @nanos = args[:nanos] if args.key?(:nanos) | ||
|  |           @seconds = args[:seconds] if args.key?(:seconds) | ||
|  |         end | ||
|  |       end | ||
|  |     end | ||
|  |   end | ||
|  | end |