google-api-ruby-client/generated/google/apis/dlp_v2/classes.rb

6785 lines
286 KiB
Ruby

# Copyright 2015 Google Inc.
#
# 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
# 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:
# `<project_id>:<dataset_id>.<table_id>` or
# `<project_id>.<dataset_id>.<table_id>`.
# 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_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:
# `<project_id>:<dataset_id>.<table_id>` or
# `<project_id>.<dataset_id>.<table_id>`.
# 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:
# `<project_id>:<dataset_id>.<table_id>` or
# `<project_id>.<dataset_id>.<table_id>`.
# 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:
# `<project_id>:<dataset_id>.<table_id>` or
# `<project_id>.<dataset_id>.<table_id>`.
# 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:
# `<project_id>:<dataset_id>.<table_id>` or
# `<project_id>.<dataset_id>.<table_id>`.
# 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:
# `<project_id>:<dataset_id>.<table_id>` or
# `<project_id>.<dataset_id>.<table_id>`.
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&mdash;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://<bucket>/<path>`. 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:
# <code>0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
# ~`!@#$%^&*()_-+=`[`]|\:;"'<,>.?/</code>
# 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, e.g. a birthday. The time of day
# and time zone are either specified elsewhere or are not significant. The date
# is relative to the Proleptic Gregorian Calendar. This can represent:
# * A full date, with non-zero year, month and day values
# * A month and day value, with a zero year, e.g. an anniversary
# * A year on its own, with zero month and day values
# * A year and month value, with a zero day, e.g. 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://<bucket>/<path>`. 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
# 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)
@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:
# `<project_id>:<dataset_id>.<table_id>` or
# `<project_id>.<dataset_id>.<table_id>`.
# 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. 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
# 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:
# `<project_id>:<dataset_id>.<table_id>` or
# `<project_id>.<dataset_id>.<table_id>`.
# 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:
# `<project_id>:<dataset_id>.<table_id>` or
# `<project_id>.<dataset_id>.<table_id>`.
# 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 or rows newer than this value.
# If set to zero, no upper time limit is applied.
# Corresponds to the JSON property `endTime`
# @return [String]
attr_accessor :end_time
# Exclude files or rows older than this value.
# 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, e.g. a birthday. The time of day
# and time zone are either specified elsewhere or are not significant. The date
# is relative to the Proleptic Gregorian Calendar. This can represent:
# * A full date, with non-zero year, month and day values
# * A month and day value, with a zero year, e.g. an anniversary
# * A year on its own, with zero month and day values
# * A year and month value, with a zero day, e.g. 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, e.g. a birthday. The time of day
# and time zone are either specified elsewhere or are not significant. The date
# is relative to the Proleptic Gregorian Calendar. This can represent:
# * A full date, with non-zero year, month and day values
# * A month and day value, with a zero year, e.g. an anniversary
# * A year on its own, with zero month and day values
# * A year and month value, with a zero day, e.g. a credit card expiration date
# Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
class GoogleTypeDate
include Google::Apis::Core::Hashable
# Day of month. Must be from 1 to 31 and valid for the year and month, or 0
# if specifying a year by itself or a year and month where the day is not
# significant.
# Corresponds to the JSON property `day`
# @return [Fixnum]
attr_accessor :day
# Month of year. Must be from 1 to 12, or 0 if specifying a year without a
# month and day.
# Corresponds to the JSON property `month`
# @return [Fixnum]
attr_accessor :month
# Year of date. Must be from 1 to 9999, or 0 if specifying 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