activate(name, body=None, x__xgafv=None)
Activate a job trigger. Causes the immediate execute of a trigger
create(parent, body, x__xgafv=None)
Creates a job trigger to run DLP actions such as scanning storage for
Deletes a job trigger.
Gets a job trigger.
list(parent, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None, filter=None)
Lists job triggers.
list_next(previous_request, previous_response)
Retrieves the next page of results.
patch(name, body, x__xgafv=None)
Updates a job trigger.
activate(name, body=None, x__xgafv=None)
Activate a job trigger. Causes the immediate execute of a trigger instead of waiting on the trigger event to occur. Args: name: string, Resource name of the trigger to activate, for example `projects/dlp-test-project/jobTriggers/53234423`. (required) body: object, The request body. The object takes the form of: { # Request message for ActivateJobTrigger. } x__xgafv: string, V1 error format. Allowed values 1 - v1 error format 2 - v2 error format Returns: An object of the form: { # Combines all of the information about a DLP job. "errors": [ # A stream of errors encountered running the job. { # Details information about an error encountered during job execution or # the results of an unsuccessful activation of the JobTrigger. # Output only field. "timestamps": [ # The times the error occurred. "A String", ], "details": { # 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). "message": "A String", # 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. "code": 42, # The status code, which should be an enum value of google.rpc.Code. "details": [ # A list of messages that carry the error details. There is a common set of # message types for APIs to use. { "a_key": "", # Properties of the object. Contains field @type with type URL. }, ], }, }, ], "name": "A String", # The server-assigned name. "inspectDetails": { # The results of an inspect DataSource job. # Results from inspecting a data source. "requestedOptions": { # The configuration used for this job. "snapshotInspectTemplate": { # The inspectTemplate contains a configuration (set of types of sensitive data # If run with an InspectTemplate, a snapshot of its state at the time of # this run. # 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. "updateTime": "A String", # The last update timestamp of a inspectTemplate, output only field. "displayName": "A String", # Display name (max 256 chars). "description": "A String", # Short description (max 256 chars). "inspectConfig": { # Configuration description of the scanning process. # The core content of the template. Configuration of the scanning process. # When used with redactContent only info_types and min_likelihood are currently # used. "excludeInfoTypes": True or False, # When true, excludes type information of the findings. "limits": { "maxFindingsPerRequest": 42, # 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. "maxFindingsPerInfoType": [ # Configuration of findings limit given for specified infoTypes. { # Max findings configuration per infoType, per content item or long # running DlpJob. "infoType": { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per # info_type should be provided. If InfoTypeLimit does not have an # info_type, the DLP API applies the limit against all info_types that # are found but not specified in another InfoTypeLimit. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "maxFindings": 42, # Max findings limit for the given infoType. }, ], "maxFindingsPerItem": 42, # Max number of findings that will be returned for each item scanned. # When set within `InspectDataSourceRequest`, # the maximum returned is 2000 regardless if this is set higher. # When set within `InspectContentRequest`, this field is ignored. }, "minLikelihood": "A String", # Only returns findings equal or above this threshold. The default is # POSSIBLE. # See https://cloud.google.com/dlp/docs/likelihood to learn more. "customInfoTypes": [ # CustomInfoTypes provided by the user. See # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. { # Custom information type provided by the user. Used to find domain-specific # sensitive information configurable to the data in question. "regex": { # Message defining a custom regular expression. # Regular expression based CustomInfoType. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "surrogateType": { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that # support reversing. # such as # [`CryptoReplaceFfxFpeConfig`](/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`. }, "infoType": { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in # infoType, when the name matches one of existing infoTypes and that infoType # is specified in `InspectContent.info_types` field. Specifying the latter # adds findings to the one detected by the system. If built-in info type is # not specified in `InspectContent.info_types` list then the name is treated # as a custom info type. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "storedType": { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in # `InspectDataSource`. Not currently supported in `InspectContent`. "name": "A String", # Resource name of the requested `StoredInfoType`, for example # `organizations/433245324/storedInfoTypes/432452342` or # `projects/project-id/storedInfoTypes/432452342`. "createTime": "A String", # Timestamp indicating when the version of the `StoredInfoType` used for # inspection was created. Output-only field, populated by the system. }, "detectionRules": [ # 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. { # 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. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, }, ], "exclusionType": "A String", # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding # to be returned. It still can be used for rules matching. "likelihood": "A String", # 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. }, ], "includeQuote": True or False, # When true, a contextual quote from the data that triggered a finding is # included in the response; see Finding.quote. "ruleSet": [ # 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. { # 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. "rules": [ # Set of rules to be applied to infoTypes. The rules are applied in order. { # A single inspection rule to be applied to infoTypes, specified in # `InspectionRuleSet`. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, "exclusionRule": { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule. # `InspectionRuleSet` are removed from results. "regex": { # Message defining a custom regular expression. # Regular expression which defines the rule. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "excludeInfoTypes": { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule. "infoTypes": [ # 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. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "matchingType": "A String", # How the rule is applied, see MatchingType documentation for details. }, }, ], "infoTypes": [ # List of infoTypes this rule set is applied to. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, ], "contentOptions": [ # List of options defining data content to scan. # If empty, text, images, and other content will be included. "A String", ], "infoTypes": [ # 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. # # The special InfoType name "ALL_BASIC" can be used to trigger all detectors, # but may change over time as new InfoTypes are added. If you need precise # control and predictability as to what detectors are run you should specify # specific InfoTypes listed in the reference. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "createTime": "A String", # The creation timestamp of a inspectTemplate, output only field. "name": "A String", # The template name. Output only. # # The template will have one of the following formats: # `projects/PROJECT_ID/inspectTemplates/TEMPLATE_ID` OR # `organizations/ORGANIZATION_ID/inspectTemplates/TEMPLATE_ID` }, "jobConfig": { "storageConfig": { # Shared message indicating Cloud storage type. # The data to scan. "datastoreOptions": { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options specification. "partitionId": { # 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 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. "projectId": "A String", # The ID of the project to which the entities belong. "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. }, "kind": { # A representation of a Datastore kind. # The kind to process. "name": "A String", # The name of the kind. }, }, "bigQueryOptions": { # Options defining BigQuery table and row identifiers. # BigQuery options specification. "excludedFields": [ # References to fields excluded from scanning. This allows you to skip # inspection of entire columns which you know have no findings. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], "rowsLimit": "A String", # 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. "sampleMethod": "A String", "identifyingFields": [ # References to fields uniquely identifying rows within the table. # Nested fields in the format, like `person.birthdate.year`, are allowed. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], "rowsLimitPercent": 42, # 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. "tableReference": { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # `: . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, }, "timespanConfig": { # Configuration of the timespan of the items to include in scanning. # Currently only supported when inspecting Google Cloud Storage and BigQuery. "timestampField": { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items. # Used for data sources like Datastore or BigQuery. # If not specified for BigQuery, table last modification timestamp # is checked against given time span. # The valid data types of the timestamp field are: # for BigQuery - timestamp, date, datetime; # for Datastore - timestamp. # Datastore entity will be scanned if the timestamp property does not exist # or its value is empty or invalid. "name": "A String", # Name describing the field. }, "endTime": "A String", # Exclude files or rows newer than this value. # If set to zero, no upper time limit is applied. "startTime": "A String", # Exclude files or rows older than this value. "enableAutoPopulationOfTimespanConfig": True or False, # 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. }, "cloudStorageOptions": { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options specification. # bucket. "bytesLimitPerFile": "A String", # 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. "sampleMethod": "A String", "fileSet": { # Set of files to scan. # The set of one or more files to scan. "url": "A String", # The Cloud Storage url of the file(s) to scan, in the format # `gs:// / `. Trailing wildcard in the path is allowed. # # If the url ends in a trailing slash, the bucket or directory represented # by the url will be scanned non-recursively (content in sub-directories # will not be scanned). This means that `gs://mybucket/` is equivalent to # `gs://mybucket/*`, and `gs://mybucket/directory/` is equivalent to # `gs://mybucket/directory/*`. # # Exactly one of `url` or `regex_file_set` must be set. "regexFileSet": { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or # `regex_file_set` must be set. # 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 `/` "excludeRegex": [ # 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. "A String", ], "bucketName": "A String", # The name of a Cloud Storage bucket. Required. "includeRegex": [ # 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. "A String", ], }, }, "bytesLimitPerFilePercent": 42, # 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. "filesLimitPercent": 42, # 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. "fileTypes": [ # 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. "A String", ], }, }, "inspectConfig": { # Configuration description of the scanning process. # How and what to scan for. # When used with redactContent only info_types and min_likelihood are currently # used. "excludeInfoTypes": True or False, # When true, excludes type information of the findings. "limits": { "maxFindingsPerRequest": 42, # 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. "maxFindingsPerInfoType": [ # Configuration of findings limit given for specified infoTypes. { # Max findings configuration per infoType, per content item or long # running DlpJob. "infoType": { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per # info_type should be provided. If InfoTypeLimit does not have an # info_type, the DLP API applies the limit against all info_types that # are found but not specified in another InfoTypeLimit. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "maxFindings": 42, # Max findings limit for the given infoType. }, ], "maxFindingsPerItem": 42, # Max number of findings that will be returned for each item scanned. # When set within `InspectDataSourceRequest`, # the maximum returned is 2000 regardless if this is set higher. # When set within `InspectContentRequest`, this field is ignored. }, "minLikelihood": "A String", # Only returns findings equal or above this threshold. The default is # POSSIBLE. # See https://cloud.google.com/dlp/docs/likelihood to learn more. "customInfoTypes": [ # CustomInfoTypes provided by the user. See # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. { # Custom information type provided by the user. Used to find domain-specific # sensitive information configurable to the data in question. "regex": { # Message defining a custom regular expression. # Regular expression based CustomInfoType. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "surrogateType": { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that # support reversing. # such as # [`CryptoReplaceFfxFpeConfig`](/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`. }, "infoType": { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in # infoType, when the name matches one of existing infoTypes and that infoType # is specified in `InspectContent.info_types` field. Specifying the latter # adds findings to the one detected by the system. If built-in info type is # not specified in `InspectContent.info_types` list then the name is treated # as a custom info type. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "storedType": { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in # `InspectDataSource`. Not currently supported in `InspectContent`. "name": "A String", # Resource name of the requested `StoredInfoType`, for example # `organizations/433245324/storedInfoTypes/432452342` or # `projects/project-id/storedInfoTypes/432452342`. "createTime": "A String", # Timestamp indicating when the version of the `StoredInfoType` used for # inspection was created. Output-only field, populated by the system. }, "detectionRules": [ # 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. { # 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. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, }, ], "exclusionType": "A String", # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding # to be returned. It still can be used for rules matching. "likelihood": "A String", # 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. }, ], "includeQuote": True or False, # When true, a contextual quote from the data that triggered a finding is # included in the response; see Finding.quote. "ruleSet": [ # 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. { # 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. "rules": [ # Set of rules to be applied to infoTypes. The rules are applied in order. { # A single inspection rule to be applied to infoTypes, specified in # `InspectionRuleSet`. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, "exclusionRule": { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule. # `InspectionRuleSet` are removed from results. "regex": { # Message defining a custom regular expression. # Regular expression which defines the rule. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "excludeInfoTypes": { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule. "infoTypes": [ # 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. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "matchingType": "A String", # How the rule is applied, see MatchingType documentation for details. }, }, ], "infoTypes": [ # List of infoTypes this rule set is applied to. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, ], "contentOptions": [ # List of options defining data content to scan. # If empty, text, images, and other content will be included. "A String", ], "infoTypes": [ # 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. # # The special InfoType name "ALL_BASIC" can be used to trigger all detectors, # but may change over time as new InfoTypes are added. If you need precise # control and predictability as to what detectors are run you should specify # specific InfoTypes listed in the reference. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "inspectTemplateName": "A String", # 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. "actions": [ # Actions to execute at the completion of the job. { # A task to execute on the completion of a job. # See https://cloud.google.com/dlp/docs/concepts-actions to learn more. "saveFindings": { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location. # OutputStorageConfig. Only a single instance of this action can be # specified. # Compatible with: Inspect, Risk "outputConfig": { # Cloud repository for storing output. "table": { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing # dataset. If table_id is not set a new one will be generated # for you with the following format: # dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for # generating the date details. # # For Inspect, each column in an existing output table must have the same # name, type, and mode of a field in the `Finding` object. # # For Risk, an existing output table should be the output of a previous # Risk analysis job run on the same source table, with the same privacy # metric and quasi-identifiers. Risk jobs that analyze the same table but # compute a different privacy metric, or use different sets of # quasi-identifiers, cannot store their results in the same table. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # ` : . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, "outputSchema": "A String", # 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. }, }, "jobNotificationEmails": { # Enable email notification to project owners and editors on jobs's # Enable email notification to project owners and editors on job's # completion/failure. # completion/failure. }, "publishSummaryToCscc": { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha). # 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 }, "pubSub": { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic. # message contains a single field, `DlpJobName`, which is equal to the # finished job's # [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob). # Compatible with: Inspect, Risk "topic": "A String", # 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}. }, }, ], }, }, "result": { # All result fields mentioned below are updated while the job is processing. # A summary of the outcome of this inspect job. "infoTypeStats": [ # Statistics of how many instances of each info type were found during # inspect job. { # Statistics regarding a specific InfoType. "count": "A String", # Number of findings for this infoType. "infoType": { # Type of information detected by the API. # The type of finding this stat is for. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, }, ], "totalEstimatedBytes": "A String", # Estimate of the number of bytes to process. "processedBytes": "A String", # Total size in bytes that were processed. }, }, "riskDetails": { # Result of a risk analysis operation request. # Results from analyzing risk of a data source. "numericalStatsResult": { # Result of the numerical stats computation. "quantileValues": [ # List of 99 values that partition the set of field values into 100 equal # sized buckets. { # 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. "floatValue": 3.14, "timestampValue": "A String", "dayOfWeekValue": "A String", "timeValue": { # 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`. "hours": 42, # 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. "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. "seconds": 42, # 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. "minutes": 42, # Minutes of hour of day. Must be from 0 to 59. }, "dateValue": { # 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`. "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without # a year. "day": 42, # 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. "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a # month and day. }, "stringValue": "A String", "booleanValue": True or False, "integerValue": "A String", }, ], "maxValue": { # Set of primitive values supported by the system. # Maximum value appearing in the column. # 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. "floatValue": 3.14, "timestampValue": "A String", "dayOfWeekValue": "A String", "timeValue": { # 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`. "hours": 42, # 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. "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. "seconds": 42, # 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. "minutes": 42, # Minutes of hour of day. Must be from 0 to 59. }, "dateValue": { # 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`. "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without # a year. "day": 42, # 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. "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a # month and day. }, "stringValue": "A String", "booleanValue": True or False, "integerValue": "A String", }, "minValue": { # Set of primitive values supported by the system. # Minimum value appearing in the column. # 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. "floatValue": 3.14, "timestampValue": "A String", "dayOfWeekValue": "A String", "timeValue": { # 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`. "hours": 42, # 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. "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. "seconds": 42, # 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. "minutes": 42, # Minutes of hour of day. Must be from 0 to 59. }, "dateValue": { # 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`. "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without # a year. "day": 42, # 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. "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a # month and day. }, "stringValue": "A String", "booleanValue": True or False, "integerValue": "A String", }, }, "kMapEstimationResult": { # Result of the reidentifiability analysis. Note that these results are an # estimation, not exact values. "kMapEstimationHistogram": [ # 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. { # 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. "bucketValues": [ # Sample of quasi-identifier tuple values in this bucket. The total # number of classes returned per bucket is capped at 20. { # A tuple of values for the quasi-identifier columns. "estimatedAnonymity": "A String", # The estimated anonymity for these quasi-identifier values. "quasiIdsValues": [ # The quasi-identifier values. { # 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. "floatValue": 3.14, "timestampValue": "A String", "dayOfWeekValue": "A String", "timeValue": { # 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`. "hours": 42, # 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. "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. "seconds": 42, # 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. "minutes": 42, # Minutes of hour of day. Must be from 0 to 59. }, "dateValue": { # 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`. "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without # a year. "day": 42, # 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. "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a # month and day. }, "stringValue": "A String", "booleanValue": True or False, "integerValue": "A String", }, ], }, ], "minAnonymity": "A String", # Always positive. "bucketValueCount": "A String", # Total number of distinct quasi-identifier tuple values in this bucket. "maxAnonymity": "A String", # Always greater than or equal to min_anonymity. "bucketSize": "A String", # Number of records within these anonymity bounds. }, ], }, "kAnonymityResult": { # Result of the k-anonymity computation. "equivalenceClassHistogramBuckets": [ # Histogram of k-anonymity equivalence classes. { "bucketValues": [ # Sample of equivalence classes in this bucket. The total number of # classes returned per bucket is capped at 20. { # The set of columns' values that share the same ldiversity value "quasiIdsValues": [ # 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. { # 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. "floatValue": 3.14, "timestampValue": "A String", "dayOfWeekValue": "A String", "timeValue": { # 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`. "hours": 42, # 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. "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. "seconds": 42, # 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. "minutes": 42, # Minutes of hour of day. Must be from 0 to 59. }, "dateValue": { # 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`. "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without # a year. "day": 42, # 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. "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a # month and day. }, "stringValue": "A String", "booleanValue": True or False, "integerValue": "A String", }, ], "equivalenceClassSize": "A String", # Size of the equivalence class, for example number of rows with the # above set of values. }, ], "bucketValueCount": "A String", # Total number of distinct equivalence classes in this bucket. "equivalenceClassSizeLowerBound": "A String", # Lower bound on the size of the equivalence classes in this bucket. "equivalenceClassSizeUpperBound": "A String", # Upper bound on the size of the equivalence classes in this bucket. "bucketSize": "A String", # Total number of equivalence classes in this bucket. }, ], }, "lDiversityResult": { # Result of the l-diversity computation. "sensitiveValueFrequencyHistogramBuckets": [ # Histogram of l-diversity equivalence class sensitive value frequencies. { "bucketValues": [ # Sample of equivalence classes in this bucket. The total number of # classes returned per bucket is capped at 20. { # The set of columns' values that share the same ldiversity value. "numDistinctSensitiveValues": "A String", # Number of distinct sensitive values in this equivalence class. "quasiIdsValues": [ # Quasi-identifier values defining the k-anonymity equivalence # class. The order is always the same as the original request. { # 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. "floatValue": 3.14, "timestampValue": "A String", "dayOfWeekValue": "A String", "timeValue": { # 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`. "hours": 42, # 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. "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. "seconds": 42, # 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. "minutes": 42, # Minutes of hour of day. Must be from 0 to 59. }, "dateValue": { # 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`. "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without # a year. "day": 42, # 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. "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a # month and day. }, "stringValue": "A String", "booleanValue": True or False, "integerValue": "A String", }, ], "topSensitiveValues": [ # Estimated frequencies of top sensitive values. { # A value of a field, including its frequency. "count": "A String", # How many times the value is contained in the field. "value": { # Set of primitive values supported by the system. # A value contained in the field in question. # 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. "floatValue": 3.14, "timestampValue": "A String", "dayOfWeekValue": "A String", "timeValue": { # 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`. "hours": 42, # 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. "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. "seconds": 42, # 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. "minutes": 42, # Minutes of hour of day. Must be from 0 to 59. }, "dateValue": { # 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`. "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without # a year. "day": 42, # 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. "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a # month and day. }, "stringValue": "A String", "booleanValue": True or False, "integerValue": "A String", }, }, ], "equivalenceClassSize": "A String", # Size of the k-anonymity equivalence class. }, ], "bucketValueCount": "A String", # Total number of distinct equivalence classes in this bucket. "bucketSize": "A String", # Total number of equivalence classes in this bucket. "sensitiveValueFrequencyUpperBound": "A String", # Upper bound on the sensitive value frequencies of the equivalence # classes in this bucket. "sensitiveValueFrequencyLowerBound": "A String", # Lower bound on the sensitive value frequencies of the equivalence # classes in this bucket. }, ], }, "requestedPrivacyMetric": { # Privacy metric to compute for reidentification risk analysis. # Privacy metric to compute. "numericalStatsConfig": { # Compute numerical stats over an individual column, including # min, max, and quantiles. "field": { # General identifier of a data field in a storage service. # Field to compute numerical stats on. Supported types are # integer, float, date, datetime, timestamp, time. "name": "A String", # Name describing the field. }, }, "kMapEstimationConfig": { # 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. # A column with a semantic tag attached. "regionCode": "A String", # ISO 3166-1 alpha-2 region code to use in the statistical modeling. # Required if no column is tagged with a region-specific InfoType (like # US_ZIP_5) or a region code. "quasiIds": [ # Fields considered to be quasi-identifiers. No two columns can have the # same tag. [required] { "field": { # General identifier of a data field in a storage service. # Identifies the column. [required] "name": "A String", # Name describing the field. }, "customTag": "A String", # 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). "infoType": { # Type of information detected by the API. # A column can be tagged with a InfoType to use the relevant public # dataset as a statistical model of population, if available. We # currently support US ZIP codes, region codes, ages and genders. # To programmatically obtain the list of supported InfoTypes, use # ListInfoTypes with the supported_by=RISK_ANALYSIS filter. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "inferred": { # A generic empty message that you can re-use to avoid defining duplicated # If no semantic tag is indicated, we infer the statistical model from # the distribution of values in the input data # 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 `{}`. }, }, ], "auxiliaryTables": [ # 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. { # 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). "relativeFrequency": { # General identifier of a data field in a storage service. # The relative frequency column must contain a floating-point number # between 0 and 1 (inclusive). Null values are assumed to be zero. # [required] "name": "A String", # Name describing the field. }, "quasiIds": [ # Quasi-identifier columns. [required] { # A quasi-identifier column has a custom_tag, used to know which column # in the data corresponds to which column in the statistical model. "field": { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, "customTag": "A String", }, ], "table": { # Message defining the location of a BigQuery table. A table is uniquely # Auxiliary table location. [required] # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # ` : . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, }, ], }, "lDiversityConfig": { # l-diversity metric, used for analysis of reidentification risk. "sensitiveAttribute": { # General identifier of a data field in a storage service. # Sensitive field for computing the l-value. "name": "A String", # Name describing the field. }, "quasiIds": [ # 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. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], }, "deltaPresenceEstimationConfig": { # δ-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. "regionCode": "A String", # ISO 3166-1 alpha-2 region code to use in the statistical modeling. # Required if no column is tagged with a region-specific InfoType (like # US_ZIP_5) or a region code. "quasiIds": [ # Fields considered to be quasi-identifiers. No two fields can have the # same tag. [required] { # A column with a semantic tag attached. "field": { # General identifier of a data field in a storage service. # Identifies the column. [required] "name": "A String", # Name describing the field. }, "customTag": "A String", # 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). "infoType": { # Type of information detected by the API. # A column can be tagged with a InfoType to use the relevant public # dataset as a statistical model of population, if available. We # currently support US ZIP codes, region codes, ages and genders. # To programmatically obtain the list of supported InfoTypes, use # ListInfoTypes with the supported_by=RISK_ANALYSIS filter. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "inferred": { # A generic empty message that you can re-use to avoid defining duplicated # If no semantic tag is indicated, we infer the statistical model from # the distribution of values in the input data # 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 `{}`. }, }, ], "auxiliaryTables": [ # 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. { # 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). "relativeFrequency": { # General identifier of a data field in a storage service. # The relative frequency column must contain a floating-point number # between 0 and 1 (inclusive). Null values are assumed to be zero. # [required] "name": "A String", # Name describing the field. }, "quasiIds": [ # Quasi-identifier columns. [required] { # A quasi-identifier column has a custom_tag, used to know which column # in the data corresponds to which column in the statistical model. "field": { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, "customTag": "A String", }, ], "table": { # Message defining the location of a BigQuery table. A table is uniquely # Auxiliary table location. [required] # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # ` : . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, }, ], }, "categoricalStatsConfig": { # Compute numerical stats over an individual column, including # number of distinct values and value count distribution. "field": { # General identifier of a data field in a storage service. # Field to compute categorical stats on. All column types are # supported except for arrays and structs. However, it may be more # informative to use NumericalStats when the field type is supported, # depending on the data. "name": "A String", # Name describing the field. }, }, "kAnonymityConfig": { # k-anonymity metric, used for analysis of reidentification risk. "entityId": { # An entity in a dataset is a field or set of fields that correspond to a # Optional message indicating that multiple rows might be associated to a # single individual. If the same entity_id is associated to multiple # quasi-identifier tuples over distinct rows, we consider the entire # collection of tuples as the composite quasi-identifier. This collection # is a multiset: the order in which the different tuples appear in the # dataset is ignored, but their frequency is taken into account. # # Important note: a maximum of 1000 rows can be associated to a single # entity ID. If more rows are associated with the same entity ID, some # might be ignored. # 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. "field": { # General identifier of a data field in a storage service. # Composite key indicating which field contains the entity identifier. "name": "A String", # Name describing the field. }, }, "quasiIds": [ # 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. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], }, }, "categoricalStatsResult": { # Result of the categorical stats computation. "valueFrequencyHistogramBuckets": [ # Histogram of value frequencies in the column. { "bucketValues": [ # Sample of value frequencies in this bucket. The total number of # values returned per bucket is capped at 20. { # A value of a field, including its frequency. "count": "A String", # How many times the value is contained in the field. "value": { # Set of primitive values supported by the system. # A value contained in the field in question. # 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. "floatValue": 3.14, "timestampValue": "A String", "dayOfWeekValue": "A String", "timeValue": { # 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`. "hours": 42, # 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. "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. "seconds": 42, # 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. "minutes": 42, # Minutes of hour of day. Must be from 0 to 59. }, "dateValue": { # 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`. "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without # a year. "day": 42, # 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. "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a # month and day. }, "stringValue": "A String", "booleanValue": True or False, "integerValue": "A String", }, }, ], "bucketValueCount": "A String", # Total number of distinct values in this bucket. "valueFrequencyUpperBound": "A String", # Upper bound on the value frequency of the values in this bucket. "valueFrequencyLowerBound": "A String", # Lower bound on the value frequency of the values in this bucket. "bucketSize": "A String", # Total number of values in this bucket. }, ], }, "deltaPresenceEstimationResult": { # Result of the δ-presence computation. Note that these results are an # estimation, not exact values. "deltaPresenceEstimationHistogram": [ # 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. { # 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. "bucketValues": [ # Sample of quasi-identifier tuple values in this bucket. The total # number of classes returned per bucket is capped at 20. { # A tuple of values for the quasi-identifier columns. "quasiIdsValues": [ # The quasi-identifier values. { # 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. "floatValue": 3.14, "timestampValue": "A String", "dayOfWeekValue": "A String", "timeValue": { # 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`. "hours": 42, # 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. "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. "seconds": 42, # 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. "minutes": 42, # Minutes of hour of day. Must be from 0 to 59. }, "dateValue": { # 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`. "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without # a year. "day": 42, # 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. "month": 42, # Month of year. Must be from 1 to 12, or 0 if specifying a year without a # month and day. }, "stringValue": "A String", "booleanValue": True or False, "integerValue": "A String", }, ], "estimatedProbability": 3.14, # 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. }, ], "bucketValueCount": "A String", # Total number of distinct quasi-identifier tuple values in this bucket. "bucketSize": "A String", # Number of records within these probability bounds. "maxProbability": 3.14, # Always greater than or equal to min_probability. "minProbability": 3.14, # Between 0 and 1. }, ], }, "requestedSourceTable": { # Message defining the location of a BigQuery table. A table is uniquely # Input dataset to compute metrics over. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # ` : . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, }, "state": "A String", # State of a job. "jobTriggerName": "A String", # If created by a job trigger, the resource name of the trigger that # instantiated the job. "startTime": "A String", # Time when the job started. "endTime": "A String", # Time when the job finished. "type": "A String", # The type of job. "createTime": "A String", # Time when the job was created. }
create(parent, body, x__xgafv=None)
Creates a job trigger to run DLP actions such as scanning storage for sensitive information on a set schedule. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. Args: parent: string, The parent resource name, for example projects/my-project-id. (required) body: object, The request body. (required) The object takes the form of: { # Request message for CreateJobTrigger. "triggerId": "A String", # 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. "jobTrigger": { # Contains a configuration to make dlp api calls on a repeating basis. # The JobTrigger to create. # See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more. "status": "A String", # A status for this trigger. [required] "updateTime": "A String", # The last update timestamp of a triggeredJob, output only field. "errors": [ # 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. Output only field. { # Details information about an error encountered during job execution or # the results of an unsuccessful activation of the JobTrigger. # Output only field. "timestamps": [ # The times the error occurred. "A String", ], "details": { # 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). "message": "A String", # 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. "code": 42, # The status code, which should be an enum value of google.rpc.Code. "details": [ # A list of messages that carry the error details. There is a common set of # message types for APIs to use. { "a_key": "", # Properties of the object. Contains field @type with type URL. }, ], }, }, ], "displayName": "A String", # Display name (max 100 chars) "description": "A String", # User provided description (max 256 chars) "inspectJob": { "storageConfig": { # Shared message indicating Cloud storage type. # The data to scan. "datastoreOptions": { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options specification. "partitionId": { # 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 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. "projectId": "A String", # The ID of the project to which the entities belong. "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. }, "kind": { # A representation of a Datastore kind. # The kind to process. "name": "A String", # The name of the kind. }, }, "bigQueryOptions": { # Options defining BigQuery table and row identifiers. # BigQuery options specification. "excludedFields": [ # References to fields excluded from scanning. This allows you to skip # inspection of entire columns which you know have no findings. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], "rowsLimit": "A String", # 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. "sampleMethod": "A String", "identifyingFields": [ # References to fields uniquely identifying rows within the table. # Nested fields in the format, like `person.birthdate.year`, are allowed. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], "rowsLimitPercent": 42, # 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. "tableReference": { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # `: . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, }, "timespanConfig": { # Configuration of the timespan of the items to include in scanning. # Currently only supported when inspecting Google Cloud Storage and BigQuery. "timestampField": { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items. # Used for data sources like Datastore or BigQuery. # If not specified for BigQuery, table last modification timestamp # is checked against given time span. # The valid data types of the timestamp field are: # for BigQuery - timestamp, date, datetime; # for Datastore - timestamp. # Datastore entity will be scanned if the timestamp property does not exist # or its value is empty or invalid. "name": "A String", # Name describing the field. }, "endTime": "A String", # Exclude files or rows newer than this value. # If set to zero, no upper time limit is applied. "startTime": "A String", # Exclude files or rows older than this value. "enableAutoPopulationOfTimespanConfig": True or False, # 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. }, "cloudStorageOptions": { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options specification. # bucket. "bytesLimitPerFile": "A String", # 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. "sampleMethod": "A String", "fileSet": { # Set of files to scan. # The set of one or more files to scan. "url": "A String", # The Cloud Storage url of the file(s) to scan, in the format # `gs:// / `. Trailing wildcard in the path is allowed. # # If the url ends in a trailing slash, the bucket or directory represented # by the url will be scanned non-recursively (content in sub-directories # will not be scanned). This means that `gs://mybucket/` is equivalent to # `gs://mybucket/*`, and `gs://mybucket/directory/` is equivalent to # `gs://mybucket/directory/*`. # # Exactly one of `url` or `regex_file_set` must be set. "regexFileSet": { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or # `regex_file_set` must be set. # 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 `/` "excludeRegex": [ # 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. "A String", ], "bucketName": "A String", # The name of a Cloud Storage bucket. Required. "includeRegex": [ # 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. "A String", ], }, }, "bytesLimitPerFilePercent": 42, # 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. "filesLimitPercent": 42, # 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. "fileTypes": [ # 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. "A String", ], }, }, "inspectConfig": { # Configuration description of the scanning process. # How and what to scan for. # When used with redactContent only info_types and min_likelihood are currently # used. "excludeInfoTypes": True or False, # When true, excludes type information of the findings. "limits": { "maxFindingsPerRequest": 42, # 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. "maxFindingsPerInfoType": [ # Configuration of findings limit given for specified infoTypes. { # Max findings configuration per infoType, per content item or long # running DlpJob. "infoType": { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per # info_type should be provided. If InfoTypeLimit does not have an # info_type, the DLP API applies the limit against all info_types that # are found but not specified in another InfoTypeLimit. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "maxFindings": 42, # Max findings limit for the given infoType. }, ], "maxFindingsPerItem": 42, # Max number of findings that will be returned for each item scanned. # When set within `InspectDataSourceRequest`, # the maximum returned is 2000 regardless if this is set higher. # When set within `InspectContentRequest`, this field is ignored. }, "minLikelihood": "A String", # Only returns findings equal or above this threshold. The default is # POSSIBLE. # See https://cloud.google.com/dlp/docs/likelihood to learn more. "customInfoTypes": [ # CustomInfoTypes provided by the user. See # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. { # Custom information type provided by the user. Used to find domain-specific # sensitive information configurable to the data in question. "regex": { # Message defining a custom regular expression. # Regular expression based CustomInfoType. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "surrogateType": { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that # support reversing. # such as # [`CryptoReplaceFfxFpeConfig`](/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`. }, "infoType": { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in # infoType, when the name matches one of existing infoTypes and that infoType # is specified in `InspectContent.info_types` field. Specifying the latter # adds findings to the one detected by the system. If built-in info type is # not specified in `InspectContent.info_types` list then the name is treated # as a custom info type. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "storedType": { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in # `InspectDataSource`. Not currently supported in `InspectContent`. "name": "A String", # Resource name of the requested `StoredInfoType`, for example # `organizations/433245324/storedInfoTypes/432452342` or # `projects/project-id/storedInfoTypes/432452342`. "createTime": "A String", # Timestamp indicating when the version of the `StoredInfoType` used for # inspection was created. Output-only field, populated by the system. }, "detectionRules": [ # 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. { # 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. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, }, ], "exclusionType": "A String", # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding # to be returned. It still can be used for rules matching. "likelihood": "A String", # 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. }, ], "includeQuote": True or False, # When true, a contextual quote from the data that triggered a finding is # included in the response; see Finding.quote. "ruleSet": [ # 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. { # 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. "rules": [ # Set of rules to be applied to infoTypes. The rules are applied in order. { # A single inspection rule to be applied to infoTypes, specified in # `InspectionRuleSet`. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, "exclusionRule": { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule. # `InspectionRuleSet` are removed from results. "regex": { # Message defining a custom regular expression. # Regular expression which defines the rule. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "excludeInfoTypes": { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule. "infoTypes": [ # 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. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "matchingType": "A String", # How the rule is applied, see MatchingType documentation for details. }, }, ], "infoTypes": [ # List of infoTypes this rule set is applied to. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, ], "contentOptions": [ # List of options defining data content to scan. # If empty, text, images, and other content will be included. "A String", ], "infoTypes": [ # 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. # # The special InfoType name "ALL_BASIC" can be used to trigger all detectors, # but may change over time as new InfoTypes are added. If you need precise # control and predictability as to what detectors are run you should specify # specific InfoTypes listed in the reference. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "inspectTemplateName": "A String", # 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. "actions": [ # Actions to execute at the completion of the job. { # A task to execute on the completion of a job. # See https://cloud.google.com/dlp/docs/concepts-actions to learn more. "saveFindings": { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location. # OutputStorageConfig. Only a single instance of this action can be # specified. # Compatible with: Inspect, Risk "outputConfig": { # Cloud repository for storing output. "table": { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing # dataset. If table_id is not set a new one will be generated # for you with the following format: # dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for # generating the date details. # # For Inspect, each column in an existing output table must have the same # name, type, and mode of a field in the `Finding` object. # # For Risk, an existing output table should be the output of a previous # Risk analysis job run on the same source table, with the same privacy # metric and quasi-identifiers. Risk jobs that analyze the same table but # compute a different privacy metric, or use different sets of # quasi-identifiers, cannot store their results in the same table. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # ` : . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, "outputSchema": "A String", # 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. }, }, "jobNotificationEmails": { # Enable email notification to project owners and editors on jobs's # Enable email notification to project owners and editors on job's # completion/failure. # completion/failure. }, "publishSummaryToCscc": { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha). # 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 }, "pubSub": { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic. # message contains a single field, `DlpJobName`, which is equal to the # finished job's # [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob). # Compatible with: Inspect, Risk "topic": "A String", # 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}. }, }, ], }, "triggers": [ # 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. { # What event needs to occur for a new job to be started. "schedule": { # Schedule for triggeredJobs. # Create a job on a repeating basis based on the elapse of time. "recurrencePeriodDuration": "A String", # 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. }, }, ], "lastRunTime": "A String", # The timestamp of the last time this trigger executed, output only field. "createTime": "A String", # The creation timestamp of a triggeredJob, output only field. "name": "A String", # Unique resource name for the triggeredJob, assigned by the service when the # triggeredJob is created, for example # `projects/dlp-test-project/triggeredJobs/53234423`. }, } x__xgafv: string, V1 error format. Allowed values 1 - v1 error format 2 - v2 error format Returns: An object of the form: { # 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. "status": "A String", # A status for this trigger. [required] "updateTime": "A String", # The last update timestamp of a triggeredJob, output only field. "errors": [ # 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. Output only field. { # Details information about an error encountered during job execution or # the results of an unsuccessful activation of the JobTrigger. # Output only field. "timestamps": [ # The times the error occurred. "A String", ], "details": { # 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). "message": "A String", # 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. "code": 42, # The status code, which should be an enum value of google.rpc.Code. "details": [ # A list of messages that carry the error details. There is a common set of # message types for APIs to use. { "a_key": "", # Properties of the object. Contains field @type with type URL. }, ], }, }, ], "displayName": "A String", # Display name (max 100 chars) "description": "A String", # User provided description (max 256 chars) "inspectJob": { "storageConfig": { # Shared message indicating Cloud storage type. # The data to scan. "datastoreOptions": { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options specification. "partitionId": { # 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 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. "projectId": "A String", # The ID of the project to which the entities belong. "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. }, "kind": { # A representation of a Datastore kind. # The kind to process. "name": "A String", # The name of the kind. }, }, "bigQueryOptions": { # Options defining BigQuery table and row identifiers. # BigQuery options specification. "excludedFields": [ # References to fields excluded from scanning. This allows you to skip # inspection of entire columns which you know have no findings. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], "rowsLimit": "A String", # 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. "sampleMethod": "A String", "identifyingFields": [ # References to fields uniquely identifying rows within the table. # Nested fields in the format, like `person.birthdate.year`, are allowed. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], "rowsLimitPercent": 42, # 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. "tableReference": { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # ` : . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, }, "timespanConfig": { # Configuration of the timespan of the items to include in scanning. # Currently only supported when inspecting Google Cloud Storage and BigQuery. "timestampField": { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items. # Used for data sources like Datastore or BigQuery. # If not specified for BigQuery, table last modification timestamp # is checked against given time span. # The valid data types of the timestamp field are: # for BigQuery - timestamp, date, datetime; # for Datastore - timestamp. # Datastore entity will be scanned if the timestamp property does not exist # or its value is empty or invalid. "name": "A String", # Name describing the field. }, "endTime": "A String", # Exclude files or rows newer than this value. # If set to zero, no upper time limit is applied. "startTime": "A String", # Exclude files or rows older than this value. "enableAutoPopulationOfTimespanConfig": True or False, # 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. }, "cloudStorageOptions": { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options specification. # bucket. "bytesLimitPerFile": "A String", # 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. "sampleMethod": "A String", "fileSet": { # Set of files to scan. # The set of one or more files to scan. "url": "A String", # The Cloud Storage url of the file(s) to scan, in the format # `gs:// / `. Trailing wildcard in the path is allowed. # # If the url ends in a trailing slash, the bucket or directory represented # by the url will be scanned non-recursively (content in sub-directories # will not be scanned). This means that `gs://mybucket/` is equivalent to # `gs://mybucket/*`, and `gs://mybucket/directory/` is equivalent to # `gs://mybucket/directory/*`. # # Exactly one of `url` or `regex_file_set` must be set. "regexFileSet": { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or # `regex_file_set` must be set. # 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 `/` "excludeRegex": [ # 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. "A String", ], "bucketName": "A String", # The name of a Cloud Storage bucket. Required. "includeRegex": [ # 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. "A String", ], }, }, "bytesLimitPerFilePercent": 42, # 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. "filesLimitPercent": 42, # 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. "fileTypes": [ # 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. "A String", ], }, }, "inspectConfig": { # Configuration description of the scanning process. # How and what to scan for. # When used with redactContent only info_types and min_likelihood are currently # used. "excludeInfoTypes": True or False, # When true, excludes type information of the findings. "limits": { "maxFindingsPerRequest": 42, # 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. "maxFindingsPerInfoType": [ # Configuration of findings limit given for specified infoTypes. { # Max findings configuration per infoType, per content item or long # running DlpJob. "infoType": { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per # info_type should be provided. If InfoTypeLimit does not have an # info_type, the DLP API applies the limit against all info_types that # are found but not specified in another InfoTypeLimit. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "maxFindings": 42, # Max findings limit for the given infoType. }, ], "maxFindingsPerItem": 42, # Max number of findings that will be returned for each item scanned. # When set within `InspectDataSourceRequest`, # the maximum returned is 2000 regardless if this is set higher. # When set within `InspectContentRequest`, this field is ignored. }, "minLikelihood": "A String", # Only returns findings equal or above this threshold. The default is # POSSIBLE. # See https://cloud.google.com/dlp/docs/likelihood to learn more. "customInfoTypes": [ # CustomInfoTypes provided by the user. See # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. { # Custom information type provided by the user. Used to find domain-specific # sensitive information configurable to the data in question. "regex": { # Message defining a custom regular expression. # Regular expression based CustomInfoType. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "surrogateType": { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that # support reversing. # such as # [`CryptoReplaceFfxFpeConfig`](/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`. }, "infoType": { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in # infoType, when the name matches one of existing infoTypes and that infoType # is specified in `InspectContent.info_types` field. Specifying the latter # adds findings to the one detected by the system. If built-in info type is # not specified in `InspectContent.info_types` list then the name is treated # as a custom info type. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "storedType": { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in # `InspectDataSource`. Not currently supported in `InspectContent`. "name": "A String", # Resource name of the requested `StoredInfoType`, for example # `organizations/433245324/storedInfoTypes/432452342` or # `projects/project-id/storedInfoTypes/432452342`. "createTime": "A String", # Timestamp indicating when the version of the `StoredInfoType` used for # inspection was created. Output-only field, populated by the system. }, "detectionRules": [ # 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. { # 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. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, }, ], "exclusionType": "A String", # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding # to be returned. It still can be used for rules matching. "likelihood": "A String", # 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. }, ], "includeQuote": True or False, # When true, a contextual quote from the data that triggered a finding is # included in the response; see Finding.quote. "ruleSet": [ # 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. { # 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. "rules": [ # Set of rules to be applied to infoTypes. The rules are applied in order. { # A single inspection rule to be applied to infoTypes, specified in # `InspectionRuleSet`. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, "exclusionRule": { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule. # `InspectionRuleSet` are removed from results. "regex": { # Message defining a custom regular expression. # Regular expression which defines the rule. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "excludeInfoTypes": { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule. "infoTypes": [ # 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. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "matchingType": "A String", # How the rule is applied, see MatchingType documentation for details. }, }, ], "infoTypes": [ # List of infoTypes this rule set is applied to. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, ], "contentOptions": [ # List of options defining data content to scan. # If empty, text, images, and other content will be included. "A String", ], "infoTypes": [ # 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. # # The special InfoType name "ALL_BASIC" can be used to trigger all detectors, # but may change over time as new InfoTypes are added. If you need precise # control and predictability as to what detectors are run you should specify # specific InfoTypes listed in the reference. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "inspectTemplateName": "A String", # 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. "actions": [ # Actions to execute at the completion of the job. { # A task to execute on the completion of a job. # See https://cloud.google.com/dlp/docs/concepts-actions to learn more. "saveFindings": { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location. # OutputStorageConfig. Only a single instance of this action can be # specified. # Compatible with: Inspect, Risk "outputConfig": { # Cloud repository for storing output. "table": { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing # dataset. If table_id is not set a new one will be generated # for you with the following format: # dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for # generating the date details. # # For Inspect, each column in an existing output table must have the same # name, type, and mode of a field in the `Finding` object. # # For Risk, an existing output table should be the output of a previous # Risk analysis job run on the same source table, with the same privacy # metric and quasi-identifiers. Risk jobs that analyze the same table but # compute a different privacy metric, or use different sets of # quasi-identifiers, cannot store their results in the same table. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # ` : . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, "outputSchema": "A String", # 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. }, }, "jobNotificationEmails": { # Enable email notification to project owners and editors on jobs's # Enable email notification to project owners and editors on job's # completion/failure. # completion/failure. }, "publishSummaryToCscc": { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha). # 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 }, "pubSub": { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic. # message contains a single field, `DlpJobName`, which is equal to the # finished job's # [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob). # Compatible with: Inspect, Risk "topic": "A String", # 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}. }, }, ], }, "triggers": [ # 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. { # What event needs to occur for a new job to be started. "schedule": { # Schedule for triggeredJobs. # Create a job on a repeating basis based on the elapse of time. "recurrencePeriodDuration": "A String", # 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. }, }, ], "lastRunTime": "A String", # The timestamp of the last time this trigger executed, output only field. "createTime": "A String", # The creation timestamp of a triggeredJob, output only field. "name": "A String", # Unique resource name for the triggeredJob, assigned by the service when the # triggeredJob is created, for example # `projects/dlp-test-project/triggeredJobs/53234423`. }
delete(name, x__xgafv=None)
Deletes a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. Args: name: string, Resource name of the project and the triggeredJob, for example `projects/dlp-test-project/jobTriggers/53234423`. (required) x__xgafv: string, V1 error format. Allowed values 1 - v1 error format 2 - v2 error format Returns: An object of the form: { # 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 `{}`. }
get(name, x__xgafv=None)
Gets a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. Args: name: string, Resource name of the project and the triggeredJob, for example `projects/dlp-test-project/jobTriggers/53234423`. (required) x__xgafv: string, V1 error format. Allowed values 1 - v1 error format 2 - v2 error format Returns: An object of the form: { # 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. "status": "A String", # A status for this trigger. [required] "updateTime": "A String", # The last update timestamp of a triggeredJob, output only field. "errors": [ # 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. Output only field. { # Details information about an error encountered during job execution or # the results of an unsuccessful activation of the JobTrigger. # Output only field. "timestamps": [ # The times the error occurred. "A String", ], "details": { # 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). "message": "A String", # 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. "code": 42, # The status code, which should be an enum value of google.rpc.Code. "details": [ # A list of messages that carry the error details. There is a common set of # message types for APIs to use. { "a_key": "", # Properties of the object. Contains field @type with type URL. }, ], }, }, ], "displayName": "A String", # Display name (max 100 chars) "description": "A String", # User provided description (max 256 chars) "inspectJob": { "storageConfig": { # Shared message indicating Cloud storage type. # The data to scan. "datastoreOptions": { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options specification. "partitionId": { # 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 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. "projectId": "A String", # The ID of the project to which the entities belong. "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. }, "kind": { # A representation of a Datastore kind. # The kind to process. "name": "A String", # The name of the kind. }, }, "bigQueryOptions": { # Options defining BigQuery table and row identifiers. # BigQuery options specification. "excludedFields": [ # References to fields excluded from scanning. This allows you to skip # inspection of entire columns which you know have no findings. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], "rowsLimit": "A String", # 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. "sampleMethod": "A String", "identifyingFields": [ # References to fields uniquely identifying rows within the table. # Nested fields in the format, like `person.birthdate.year`, are allowed. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], "rowsLimitPercent": 42, # 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. "tableReference": { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # `: . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, }, "timespanConfig": { # Configuration of the timespan of the items to include in scanning. # Currently only supported when inspecting Google Cloud Storage and BigQuery. "timestampField": { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items. # Used for data sources like Datastore or BigQuery. # If not specified for BigQuery, table last modification timestamp # is checked against given time span. # The valid data types of the timestamp field are: # for BigQuery - timestamp, date, datetime; # for Datastore - timestamp. # Datastore entity will be scanned if the timestamp property does not exist # or its value is empty or invalid. "name": "A String", # Name describing the field. }, "endTime": "A String", # Exclude files or rows newer than this value. # If set to zero, no upper time limit is applied. "startTime": "A String", # Exclude files or rows older than this value. "enableAutoPopulationOfTimespanConfig": True or False, # 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. }, "cloudStorageOptions": { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options specification. # bucket. "bytesLimitPerFile": "A String", # 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. "sampleMethod": "A String", "fileSet": { # Set of files to scan. # The set of one or more files to scan. "url": "A String", # The Cloud Storage url of the file(s) to scan, in the format # `gs:// / `. Trailing wildcard in the path is allowed. # # If the url ends in a trailing slash, the bucket or directory represented # by the url will be scanned non-recursively (content in sub-directories # will not be scanned). This means that `gs://mybucket/` is equivalent to # `gs://mybucket/*`, and `gs://mybucket/directory/` is equivalent to # `gs://mybucket/directory/*`. # # Exactly one of `url` or `regex_file_set` must be set. "regexFileSet": { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or # `regex_file_set` must be set. # 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 `/` "excludeRegex": [ # 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. "A String", ], "bucketName": "A String", # The name of a Cloud Storage bucket. Required. "includeRegex": [ # 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. "A String", ], }, }, "bytesLimitPerFilePercent": 42, # 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. "filesLimitPercent": 42, # 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. "fileTypes": [ # 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. "A String", ], }, }, "inspectConfig": { # Configuration description of the scanning process. # How and what to scan for. # When used with redactContent only info_types and min_likelihood are currently # used. "excludeInfoTypes": True or False, # When true, excludes type information of the findings. "limits": { "maxFindingsPerRequest": 42, # 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. "maxFindingsPerInfoType": [ # Configuration of findings limit given for specified infoTypes. { # Max findings configuration per infoType, per content item or long # running DlpJob. "infoType": { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per # info_type should be provided. If InfoTypeLimit does not have an # info_type, the DLP API applies the limit against all info_types that # are found but not specified in another InfoTypeLimit. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "maxFindings": 42, # Max findings limit for the given infoType. }, ], "maxFindingsPerItem": 42, # Max number of findings that will be returned for each item scanned. # When set within `InspectDataSourceRequest`, # the maximum returned is 2000 regardless if this is set higher. # When set within `InspectContentRequest`, this field is ignored. }, "minLikelihood": "A String", # Only returns findings equal or above this threshold. The default is # POSSIBLE. # See https://cloud.google.com/dlp/docs/likelihood to learn more. "customInfoTypes": [ # CustomInfoTypes provided by the user. See # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. { # Custom information type provided by the user. Used to find domain-specific # sensitive information configurable to the data in question. "regex": { # Message defining a custom regular expression. # Regular expression based CustomInfoType. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "surrogateType": { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that # support reversing. # such as # [`CryptoReplaceFfxFpeConfig`](/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`. }, "infoType": { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in # infoType, when the name matches one of existing infoTypes and that infoType # is specified in `InspectContent.info_types` field. Specifying the latter # adds findings to the one detected by the system. If built-in info type is # not specified in `InspectContent.info_types` list then the name is treated # as a custom info type. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "storedType": { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in # `InspectDataSource`. Not currently supported in `InspectContent`. "name": "A String", # Resource name of the requested `StoredInfoType`, for example # `organizations/433245324/storedInfoTypes/432452342` or # `projects/project-id/storedInfoTypes/432452342`. "createTime": "A String", # Timestamp indicating when the version of the `StoredInfoType` used for # inspection was created. Output-only field, populated by the system. }, "detectionRules": [ # 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. { # 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. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, }, ], "exclusionType": "A String", # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding # to be returned. It still can be used for rules matching. "likelihood": "A String", # 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. }, ], "includeQuote": True or False, # When true, a contextual quote from the data that triggered a finding is # included in the response; see Finding.quote. "ruleSet": [ # 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. { # 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. "rules": [ # Set of rules to be applied to infoTypes. The rules are applied in order. { # A single inspection rule to be applied to infoTypes, specified in # `InspectionRuleSet`. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, "exclusionRule": { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule. # `InspectionRuleSet` are removed from results. "regex": { # Message defining a custom regular expression. # Regular expression which defines the rule. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "excludeInfoTypes": { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule. "infoTypes": [ # 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. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "matchingType": "A String", # How the rule is applied, see MatchingType documentation for details. }, }, ], "infoTypes": [ # List of infoTypes this rule set is applied to. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, ], "contentOptions": [ # List of options defining data content to scan. # If empty, text, images, and other content will be included. "A String", ], "infoTypes": [ # 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. # # The special InfoType name "ALL_BASIC" can be used to trigger all detectors, # but may change over time as new InfoTypes are added. If you need precise # control and predictability as to what detectors are run you should specify # specific InfoTypes listed in the reference. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "inspectTemplateName": "A String", # 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. "actions": [ # Actions to execute at the completion of the job. { # A task to execute on the completion of a job. # See https://cloud.google.com/dlp/docs/concepts-actions to learn more. "saveFindings": { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location. # OutputStorageConfig. Only a single instance of this action can be # specified. # Compatible with: Inspect, Risk "outputConfig": { # Cloud repository for storing output. "table": { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing # dataset. If table_id is not set a new one will be generated # for you with the following format: # dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for # generating the date details. # # For Inspect, each column in an existing output table must have the same # name, type, and mode of a field in the `Finding` object. # # For Risk, an existing output table should be the output of a previous # Risk analysis job run on the same source table, with the same privacy # metric and quasi-identifiers. Risk jobs that analyze the same table but # compute a different privacy metric, or use different sets of # quasi-identifiers, cannot store their results in the same table. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # ` : . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, "outputSchema": "A String", # 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. }, }, "jobNotificationEmails": { # Enable email notification to project owners and editors on jobs's # Enable email notification to project owners and editors on job's # completion/failure. # completion/failure. }, "publishSummaryToCscc": { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha). # 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 }, "pubSub": { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic. # message contains a single field, `DlpJobName`, which is equal to the # finished job's # [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob). # Compatible with: Inspect, Risk "topic": "A String", # 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}. }, }, ], }, "triggers": [ # 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. { # What event needs to occur for a new job to be started. "schedule": { # Schedule for triggeredJobs. # Create a job on a repeating basis based on the elapse of time. "recurrencePeriodDuration": "A String", # 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. }, }, ], "lastRunTime": "A String", # The timestamp of the last time this trigger executed, output only field. "createTime": "A String", # The creation timestamp of a triggeredJob, output only field. "name": "A String", # Unique resource name for the triggeredJob, assigned by the service when the # triggeredJob is created, for example # `projects/dlp-test-project/triggeredJobs/53234423`. }
list(parent, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None, filter=None)
Lists job triggers. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. Args: parent: string, The parent resource name, for example `projects/my-project-id`. (required) orderBy: string, Optional comma separated list of triggeredJob fields to order by, followed by `asc` or `desc` postfix. This list is case-insensitive, default sorting order is ascending, redundant space characters are insignificant. Example: `name asc,update_time, create_time desc` Supported fields are: - `create_time`: corresponds to time the JobTrigger was created. - `update_time`: corresponds to time the JobTrigger was last updated. - `last_run_time`: corresponds to the last time the JobTrigger ran. - `name`: corresponds to JobTrigger's name. - `display_name`: corresponds to JobTrigger's display name. - `status`: corresponds to JobTrigger's status. pageSize: integer, Optional size of the page, can be limited by a server. pageToken: string, Optional page token to continue retrieval. Comes from previous call to ListJobTriggers. `order_by` field must not change for subsequent calls. x__xgafv: string, V1 error format. Allowed values 1 - v1 error format 2 - v2 error format filter: string, Optional. Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of ``. * Supported fields/values for inspect jobs: - `status` - HEALTHY|PAUSED|CANCELLED - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY - 'last_run_time` - RFC 3339 formatted timestamp, surrounded by quotation marks. Nanoseconds are ignored. - 'error_count' - Number of errors that have occurred while running. * The operator must be `=` or `!=` for status and inspected_storage. Examples: * inspected_storage = cloud_storage AND status = HEALTHY * inspected_storage = cloud_storage OR inspected_storage = bigquery * inspected_storage = cloud_storage AND (state = PAUSED OR state = HEALTHY) * last_run_time > \"2017-12-12T00:00:00+00:00\" The length of this field should be no more than 500 characters. Returns: An object of the form: { # Response message for ListJobTriggers. "nextPageToken": "A String", # If the next page is available then the next page token to be used # in following ListJobTriggers request. "jobTriggers": [ # List of triggeredJobs, up to page_size in ListJobTriggersRequest. { # 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. "status": "A String", # A status for this trigger. [required] "updateTime": "A String", # The last update timestamp of a triggeredJob, output only field. "errors": [ # 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. Output only field. { # Details information about an error encountered during job execution or # the results of an unsuccessful activation of the JobTrigger. # Output only field. "timestamps": [ # The times the error occurred. "A String", ], "details": { # 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). "message": "A String", # 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. "code": 42, # The status code, which should be an enum value of google.rpc.Code. "details": [ # A list of messages that carry the error details. There is a common set of # message types for APIs to use. { "a_key": "", # Properties of the object. Contains field @type with type URL. }, ], }, }, ], "displayName": "A String", # Display name (max 100 chars) "description": "A String", # User provided description (max 256 chars) "inspectJob": { "storageConfig": { # Shared message indicating Cloud storage type. # The data to scan. "datastoreOptions": { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options specification. "partitionId": { # 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 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. "projectId": "A String", # The ID of the project to which the entities belong. "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. }, "kind": { # A representation of a Datastore kind. # The kind to process. "name": "A String", # The name of the kind. }, }, "bigQueryOptions": { # Options defining BigQuery table and row identifiers. # BigQuery options specification. "excludedFields": [ # References to fields excluded from scanning. This allows you to skip # inspection of entire columns which you know have no findings. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], "rowsLimit": "A String", # 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. "sampleMethod": "A String", "identifyingFields": [ # References to fields uniquely identifying rows within the table. # Nested fields in the format, like `person.birthdate.year`, are allowed. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], "rowsLimitPercent": 42, # 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. "tableReference": { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # ` : . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, }, "timespanConfig": { # Configuration of the timespan of the items to include in scanning. # Currently only supported when inspecting Google Cloud Storage and BigQuery. "timestampField": { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items. # Used for data sources like Datastore or BigQuery. # If not specified for BigQuery, table last modification timestamp # is checked against given time span. # The valid data types of the timestamp field are: # for BigQuery - timestamp, date, datetime; # for Datastore - timestamp. # Datastore entity will be scanned if the timestamp property does not exist # or its value is empty or invalid. "name": "A String", # Name describing the field. }, "endTime": "A String", # Exclude files or rows newer than this value. # If set to zero, no upper time limit is applied. "startTime": "A String", # Exclude files or rows older than this value. "enableAutoPopulationOfTimespanConfig": True or False, # 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. }, "cloudStorageOptions": { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options specification. # bucket. "bytesLimitPerFile": "A String", # 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. "sampleMethod": "A String", "fileSet": { # Set of files to scan. # The set of one or more files to scan. "url": "A String", # The Cloud Storage url of the file(s) to scan, in the format # `gs:// / `. Trailing wildcard in the path is allowed. # # If the url ends in a trailing slash, the bucket or directory represented # by the url will be scanned non-recursively (content in sub-directories # will not be scanned). This means that `gs://mybucket/` is equivalent to # `gs://mybucket/*`, and `gs://mybucket/directory/` is equivalent to # `gs://mybucket/directory/*`. # # Exactly one of `url` or `regex_file_set` must be set. "regexFileSet": { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or # `regex_file_set` must be set. # 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 `/` "excludeRegex": [ # 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. "A String", ], "bucketName": "A String", # The name of a Cloud Storage bucket. Required. "includeRegex": [ # 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. "A String", ], }, }, "bytesLimitPerFilePercent": 42, # 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. "filesLimitPercent": 42, # 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. "fileTypes": [ # 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. "A String", ], }, }, "inspectConfig": { # Configuration description of the scanning process. # How and what to scan for. # When used with redactContent only info_types and min_likelihood are currently # used. "excludeInfoTypes": True or False, # When true, excludes type information of the findings. "limits": { "maxFindingsPerRequest": 42, # 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. "maxFindingsPerInfoType": [ # Configuration of findings limit given for specified infoTypes. { # Max findings configuration per infoType, per content item or long # running DlpJob. "infoType": { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per # info_type should be provided. If InfoTypeLimit does not have an # info_type, the DLP API applies the limit against all info_types that # are found but not specified in another InfoTypeLimit. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "maxFindings": 42, # Max findings limit for the given infoType. }, ], "maxFindingsPerItem": 42, # Max number of findings that will be returned for each item scanned. # When set within `InspectDataSourceRequest`, # the maximum returned is 2000 regardless if this is set higher. # When set within `InspectContentRequest`, this field is ignored. }, "minLikelihood": "A String", # Only returns findings equal or above this threshold. The default is # POSSIBLE. # See https://cloud.google.com/dlp/docs/likelihood to learn more. "customInfoTypes": [ # CustomInfoTypes provided by the user. See # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. { # Custom information type provided by the user. Used to find domain-specific # sensitive information configurable to the data in question. "regex": { # Message defining a custom regular expression. # Regular expression based CustomInfoType. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "surrogateType": { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that # support reversing. # such as # [`CryptoReplaceFfxFpeConfig`](/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`. }, "infoType": { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in # infoType, when the name matches one of existing infoTypes and that infoType # is specified in `InspectContent.info_types` field. Specifying the latter # adds findings to the one detected by the system. If built-in info type is # not specified in `InspectContent.info_types` list then the name is treated # as a custom info type. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "storedType": { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in # `InspectDataSource`. Not currently supported in `InspectContent`. "name": "A String", # Resource name of the requested `StoredInfoType`, for example # `organizations/433245324/storedInfoTypes/432452342` or # `projects/project-id/storedInfoTypes/432452342`. "createTime": "A String", # Timestamp indicating when the version of the `StoredInfoType` used for # inspection was created. Output-only field, populated by the system. }, "detectionRules": [ # 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. { # 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. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, }, ], "exclusionType": "A String", # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding # to be returned. It still can be used for rules matching. "likelihood": "A String", # 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. }, ], "includeQuote": True or False, # When true, a contextual quote from the data that triggered a finding is # included in the response; see Finding.quote. "ruleSet": [ # 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. { # 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. "rules": [ # Set of rules to be applied to infoTypes. The rules are applied in order. { # A single inspection rule to be applied to infoTypes, specified in # `InspectionRuleSet`. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, "exclusionRule": { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule. # `InspectionRuleSet` are removed from results. "regex": { # Message defining a custom regular expression. # Regular expression which defines the rule. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "excludeInfoTypes": { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule. "infoTypes": [ # 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. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "matchingType": "A String", # How the rule is applied, see MatchingType documentation for details. }, }, ], "infoTypes": [ # List of infoTypes this rule set is applied to. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, ], "contentOptions": [ # List of options defining data content to scan. # If empty, text, images, and other content will be included. "A String", ], "infoTypes": [ # 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. # # The special InfoType name "ALL_BASIC" can be used to trigger all detectors, # but may change over time as new InfoTypes are added. If you need precise # control and predictability as to what detectors are run you should specify # specific InfoTypes listed in the reference. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "inspectTemplateName": "A String", # 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. "actions": [ # Actions to execute at the completion of the job. { # A task to execute on the completion of a job. # See https://cloud.google.com/dlp/docs/concepts-actions to learn more. "saveFindings": { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location. # OutputStorageConfig. Only a single instance of this action can be # specified. # Compatible with: Inspect, Risk "outputConfig": { # Cloud repository for storing output. "table": { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing # dataset. If table_id is not set a new one will be generated # for you with the following format: # dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for # generating the date details. # # For Inspect, each column in an existing output table must have the same # name, type, and mode of a field in the `Finding` object. # # For Risk, an existing output table should be the output of a previous # Risk analysis job run on the same source table, with the same privacy # metric and quasi-identifiers. Risk jobs that analyze the same table but # compute a different privacy metric, or use different sets of # quasi-identifiers, cannot store their results in the same table. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # ` : . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, "outputSchema": "A String", # 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. }, }, "jobNotificationEmails": { # Enable email notification to project owners and editors on jobs's # Enable email notification to project owners and editors on job's # completion/failure. # completion/failure. }, "publishSummaryToCscc": { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha). # 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 }, "pubSub": { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic. # message contains a single field, `DlpJobName`, which is equal to the # finished job's # [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob). # Compatible with: Inspect, Risk "topic": "A String", # 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}. }, }, ], }, "triggers": [ # 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. { # What event needs to occur for a new job to be started. "schedule": { # Schedule for triggeredJobs. # Create a job on a repeating basis based on the elapse of time. "recurrencePeriodDuration": "A String", # 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. }, }, ], "lastRunTime": "A String", # The timestamp of the last time this trigger executed, output only field. "createTime": "A String", # The creation timestamp of a triggeredJob, output only field. "name": "A String", # Unique resource name for the triggeredJob, assigned by the service when the # triggeredJob is created, for example # `projects/dlp-test-project/triggeredJobs/53234423`. }, ], }
list_next(previous_request, previous_response)
Retrieves the next page of results. Args: previous_request: The request for the previous page. (required) previous_response: The response from the request for the previous page. (required) Returns: A request object that you can call 'execute()' on to request the next page. Returns None if there are no more items in the collection.
patch(name, body, x__xgafv=None)
Updates a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. Args: name: string, Resource name of the project and the triggeredJob, for example `projects/dlp-test-project/jobTriggers/53234423`. (required) body: object, The request body. (required) The object takes the form of: { # Request message for UpdateJobTrigger. "jobTrigger": { # Contains a configuration to make dlp api calls on a repeating basis. # New JobTrigger value. # See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more. "status": "A String", # A status for this trigger. [required] "updateTime": "A String", # The last update timestamp of a triggeredJob, output only field. "errors": [ # 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. Output only field. { # Details information about an error encountered during job execution or # the results of an unsuccessful activation of the JobTrigger. # Output only field. "timestamps": [ # The times the error occurred. "A String", ], "details": { # 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). "message": "A String", # 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. "code": 42, # The status code, which should be an enum value of google.rpc.Code. "details": [ # A list of messages that carry the error details. There is a common set of # message types for APIs to use. { "a_key": "", # Properties of the object. Contains field @type with type URL. }, ], }, }, ], "displayName": "A String", # Display name (max 100 chars) "description": "A String", # User provided description (max 256 chars) "inspectJob": { "storageConfig": { # Shared message indicating Cloud storage type. # The data to scan. "datastoreOptions": { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options specification. "partitionId": { # 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 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. "projectId": "A String", # The ID of the project to which the entities belong. "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. }, "kind": { # A representation of a Datastore kind. # The kind to process. "name": "A String", # The name of the kind. }, }, "bigQueryOptions": { # Options defining BigQuery table and row identifiers. # BigQuery options specification. "excludedFields": [ # References to fields excluded from scanning. This allows you to skip # inspection of entire columns which you know have no findings. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], "rowsLimit": "A String", # 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. "sampleMethod": "A String", "identifyingFields": [ # References to fields uniquely identifying rows within the table. # Nested fields in the format, like `person.birthdate.year`, are allowed. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], "rowsLimitPercent": 42, # 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. "tableReference": { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # `: . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, }, "timespanConfig": { # Configuration of the timespan of the items to include in scanning. # Currently only supported when inspecting Google Cloud Storage and BigQuery. "timestampField": { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items. # Used for data sources like Datastore or BigQuery. # If not specified for BigQuery, table last modification timestamp # is checked against given time span. # The valid data types of the timestamp field are: # for BigQuery - timestamp, date, datetime; # for Datastore - timestamp. # Datastore entity will be scanned if the timestamp property does not exist # or its value is empty or invalid. "name": "A String", # Name describing the field. }, "endTime": "A String", # Exclude files or rows newer than this value. # If set to zero, no upper time limit is applied. "startTime": "A String", # Exclude files or rows older than this value. "enableAutoPopulationOfTimespanConfig": True or False, # 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. }, "cloudStorageOptions": { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options specification. # bucket. "bytesLimitPerFile": "A String", # 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. "sampleMethod": "A String", "fileSet": { # Set of files to scan. # The set of one or more files to scan. "url": "A String", # The Cloud Storage url of the file(s) to scan, in the format # `gs:// / `. Trailing wildcard in the path is allowed. # # If the url ends in a trailing slash, the bucket or directory represented # by the url will be scanned non-recursively (content in sub-directories # will not be scanned). This means that `gs://mybucket/` is equivalent to # `gs://mybucket/*`, and `gs://mybucket/directory/` is equivalent to # `gs://mybucket/directory/*`. # # Exactly one of `url` or `regex_file_set` must be set. "regexFileSet": { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or # `regex_file_set` must be set. # 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 `/` "excludeRegex": [ # 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. "A String", ], "bucketName": "A String", # The name of a Cloud Storage bucket. Required. "includeRegex": [ # 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. "A String", ], }, }, "bytesLimitPerFilePercent": 42, # 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. "filesLimitPercent": 42, # 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. "fileTypes": [ # 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. "A String", ], }, }, "inspectConfig": { # Configuration description of the scanning process. # How and what to scan for. # When used with redactContent only info_types and min_likelihood are currently # used. "excludeInfoTypes": True or False, # When true, excludes type information of the findings. "limits": { "maxFindingsPerRequest": 42, # 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. "maxFindingsPerInfoType": [ # Configuration of findings limit given for specified infoTypes. { # Max findings configuration per infoType, per content item or long # running DlpJob. "infoType": { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per # info_type should be provided. If InfoTypeLimit does not have an # info_type, the DLP API applies the limit against all info_types that # are found but not specified in another InfoTypeLimit. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "maxFindings": 42, # Max findings limit for the given infoType. }, ], "maxFindingsPerItem": 42, # Max number of findings that will be returned for each item scanned. # When set within `InspectDataSourceRequest`, # the maximum returned is 2000 regardless if this is set higher. # When set within `InspectContentRequest`, this field is ignored. }, "minLikelihood": "A String", # Only returns findings equal or above this threshold. The default is # POSSIBLE. # See https://cloud.google.com/dlp/docs/likelihood to learn more. "customInfoTypes": [ # CustomInfoTypes provided by the user. See # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. { # Custom information type provided by the user. Used to find domain-specific # sensitive information configurable to the data in question. "regex": { # Message defining a custom regular expression. # Regular expression based CustomInfoType. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "surrogateType": { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that # support reversing. # such as # [`CryptoReplaceFfxFpeConfig`](/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`. }, "infoType": { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in # infoType, when the name matches one of existing infoTypes and that infoType # is specified in `InspectContent.info_types` field. Specifying the latter # adds findings to the one detected by the system. If built-in info type is # not specified in `InspectContent.info_types` list then the name is treated # as a custom info type. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "storedType": { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in # `InspectDataSource`. Not currently supported in `InspectContent`. "name": "A String", # Resource name of the requested `StoredInfoType`, for example # `organizations/433245324/storedInfoTypes/432452342` or # `projects/project-id/storedInfoTypes/432452342`. "createTime": "A String", # Timestamp indicating when the version of the `StoredInfoType` used for # inspection was created. Output-only field, populated by the system. }, "detectionRules": [ # 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. { # 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. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, }, ], "exclusionType": "A String", # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding # to be returned. It still can be used for rules matching. "likelihood": "A String", # 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. }, ], "includeQuote": True or False, # When true, a contextual quote from the data that triggered a finding is # included in the response; see Finding.quote. "ruleSet": [ # 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. { # 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. "rules": [ # Set of rules to be applied to infoTypes. The rules are applied in order. { # A single inspection rule to be applied to infoTypes, specified in # `InspectionRuleSet`. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, "exclusionRule": { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule. # `InspectionRuleSet` are removed from results. "regex": { # Message defining a custom regular expression. # Regular expression which defines the rule. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "excludeInfoTypes": { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule. "infoTypes": [ # 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. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "matchingType": "A String", # How the rule is applied, see MatchingType documentation for details. }, }, ], "infoTypes": [ # List of infoTypes this rule set is applied to. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, ], "contentOptions": [ # List of options defining data content to scan. # If empty, text, images, and other content will be included. "A String", ], "infoTypes": [ # 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. # # The special InfoType name "ALL_BASIC" can be used to trigger all detectors, # but may change over time as new InfoTypes are added. If you need precise # control and predictability as to what detectors are run you should specify # specific InfoTypes listed in the reference. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "inspectTemplateName": "A String", # 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. "actions": [ # Actions to execute at the completion of the job. { # A task to execute on the completion of a job. # See https://cloud.google.com/dlp/docs/concepts-actions to learn more. "saveFindings": { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location. # OutputStorageConfig. Only a single instance of this action can be # specified. # Compatible with: Inspect, Risk "outputConfig": { # Cloud repository for storing output. "table": { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing # dataset. If table_id is not set a new one will be generated # for you with the following format: # dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for # generating the date details. # # For Inspect, each column in an existing output table must have the same # name, type, and mode of a field in the `Finding` object. # # For Risk, an existing output table should be the output of a previous # Risk analysis job run on the same source table, with the same privacy # metric and quasi-identifiers. Risk jobs that analyze the same table but # compute a different privacy metric, or use different sets of # quasi-identifiers, cannot store their results in the same table. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # ` : . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, "outputSchema": "A String", # 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. }, }, "jobNotificationEmails": { # Enable email notification to project owners and editors on jobs's # Enable email notification to project owners and editors on job's # completion/failure. # completion/failure. }, "publishSummaryToCscc": { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha). # 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 }, "pubSub": { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic. # message contains a single field, `DlpJobName`, which is equal to the # finished job's # [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob). # Compatible with: Inspect, Risk "topic": "A String", # 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}. }, }, ], }, "triggers": [ # 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. { # What event needs to occur for a new job to be started. "schedule": { # Schedule for triggeredJobs. # Create a job on a repeating basis based on the elapse of time. "recurrencePeriodDuration": "A String", # 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. }, }, ], "lastRunTime": "A String", # The timestamp of the last time this trigger executed, output only field. "createTime": "A String", # The creation timestamp of a triggeredJob, output only field. "name": "A String", # Unique resource name for the triggeredJob, assigned by the service when the # triggeredJob is created, for example # `projects/dlp-test-project/triggeredJobs/53234423`. }, "updateMask": "A String", # Mask to control which fields get updated. } x__xgafv: string, V1 error format. Allowed values 1 - v1 error format 2 - v2 error format Returns: An object of the form: { # 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. "status": "A String", # A status for this trigger. [required] "updateTime": "A String", # The last update timestamp of a triggeredJob, output only field. "errors": [ # 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. Output only field. { # Details information about an error encountered during job execution or # the results of an unsuccessful activation of the JobTrigger. # Output only field. "timestamps": [ # The times the error occurred. "A String", ], "details": { # 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). "message": "A String", # 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. "code": 42, # The status code, which should be an enum value of google.rpc.Code. "details": [ # A list of messages that carry the error details. There is a common set of # message types for APIs to use. { "a_key": "", # Properties of the object. Contains field @type with type URL. }, ], }, }, ], "displayName": "A String", # Display name (max 100 chars) "description": "A String", # User provided description (max 256 chars) "inspectJob": { "storageConfig": { # Shared message indicating Cloud storage type. # The data to scan. "datastoreOptions": { # Options defining a data set within Google Cloud Datastore. # Google Cloud Datastore options specification. "partitionId": { # 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 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. "projectId": "A String", # The ID of the project to which the entities belong. "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong. }, "kind": { # A representation of a Datastore kind. # The kind to process. "name": "A String", # The name of the kind. }, }, "bigQueryOptions": { # Options defining BigQuery table and row identifiers. # BigQuery options specification. "excludedFields": [ # References to fields excluded from scanning. This allows you to skip # inspection of entire columns which you know have no findings. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], "rowsLimit": "A String", # 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. "sampleMethod": "A String", "identifyingFields": [ # References to fields uniquely identifying rows within the table. # Nested fields in the format, like `person.birthdate.year`, are allowed. { # General identifier of a data field in a storage service. "name": "A String", # Name describing the field. }, ], "rowsLimitPercent": 42, # 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. "tableReference": { # Message defining the location of a BigQuery table. A table is uniquely # Complete BigQuery table reference. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # ` : . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, }, "timespanConfig": { # Configuration of the timespan of the items to include in scanning. # Currently only supported when inspecting Google Cloud Storage and BigQuery. "timestampField": { # General identifier of a data field in a storage service. # Specification of the field containing the timestamp of scanned items. # Used for data sources like Datastore or BigQuery. # If not specified for BigQuery, table last modification timestamp # is checked against given time span. # The valid data types of the timestamp field are: # for BigQuery - timestamp, date, datetime; # for Datastore - timestamp. # Datastore entity will be scanned if the timestamp property does not exist # or its value is empty or invalid. "name": "A String", # Name describing the field. }, "endTime": "A String", # Exclude files or rows newer than this value. # If set to zero, no upper time limit is applied. "startTime": "A String", # Exclude files or rows older than this value. "enableAutoPopulationOfTimespanConfig": True or False, # 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. }, "cloudStorageOptions": { # Options defining a file or a set of files within a Google Cloud Storage # Google Cloud Storage options specification. # bucket. "bytesLimitPerFile": "A String", # 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. "sampleMethod": "A String", "fileSet": { # Set of files to scan. # The set of one or more files to scan. "url": "A String", # The Cloud Storage url of the file(s) to scan, in the format # `gs:// / `. Trailing wildcard in the path is allowed. # # If the url ends in a trailing slash, the bucket or directory represented # by the url will be scanned non-recursively (content in sub-directories # will not be scanned). This means that `gs://mybucket/` is equivalent to # `gs://mybucket/*`, and `gs://mybucket/directory/` is equivalent to # `gs://mybucket/directory/*`. # # Exactly one of `url` or `regex_file_set` must be set. "regexFileSet": { # Message representing a set of files in a Cloud Storage bucket. Regular # The regex-filtered set of files to scan. Exactly one of `url` or # `regex_file_set` must be set. # 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 `/` "excludeRegex": [ # 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. "A String", ], "bucketName": "A String", # The name of a Cloud Storage bucket. Required. "includeRegex": [ # 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. "A String", ], }, }, "bytesLimitPerFilePercent": 42, # 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. "filesLimitPercent": 42, # 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. "fileTypes": [ # 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. "A String", ], }, }, "inspectConfig": { # Configuration description of the scanning process. # How and what to scan for. # When used with redactContent only info_types and min_likelihood are currently # used. "excludeInfoTypes": True or False, # When true, excludes type information of the findings. "limits": { "maxFindingsPerRequest": 42, # 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. "maxFindingsPerInfoType": [ # Configuration of findings limit given for specified infoTypes. { # Max findings configuration per infoType, per content item or long # running DlpJob. "infoType": { # Type of information detected by the API. # Type of information the findings limit applies to. Only one limit per # info_type should be provided. If InfoTypeLimit does not have an # info_type, the DLP API applies the limit against all info_types that # are found but not specified in another InfoTypeLimit. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "maxFindings": 42, # Max findings limit for the given infoType. }, ], "maxFindingsPerItem": 42, # Max number of findings that will be returned for each item scanned. # When set within `InspectDataSourceRequest`, # the maximum returned is 2000 regardless if this is set higher. # When set within `InspectContentRequest`, this field is ignored. }, "minLikelihood": "A String", # Only returns findings equal or above this threshold. The default is # POSSIBLE. # See https://cloud.google.com/dlp/docs/likelihood to learn more. "customInfoTypes": [ # CustomInfoTypes provided by the user. See # https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. { # Custom information type provided by the user. Used to find domain-specific # sensitive information configurable to the data in question. "regex": { # Message defining a custom regular expression. # Regular expression based CustomInfoType. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "surrogateType": { # Message for detecting output from deidentification transformations # Message for detecting output from deidentification transformations that # support reversing. # such as # [`CryptoReplaceFfxFpeConfig`](/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`. }, "infoType": { # Type of information detected by the API. # CustomInfoType can either be a new infoType, or an extension of built-in # infoType, when the name matches one of existing infoTypes and that infoType # is specified in `InspectContent.info_types` field. Specifying the latter # adds findings to the one detected by the system. If built-in info type is # not specified in `InspectContent.info_types` list then the name is treated # as a custom info type. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # A list of phrases to detect as a CustomInfoType. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "storedType": { # A reference to a StoredInfoType to use with scanning. # Load an existing `StoredInfoType` resource for use in # `InspectDataSource`. Not currently supported in `InspectContent`. "name": "A String", # Resource name of the requested `StoredInfoType`, for example # `organizations/433245324/storedInfoTypes/432452342` or # `projects/project-id/storedInfoTypes/432452342`. "createTime": "A String", # Timestamp indicating when the version of the `StoredInfoType` used for # inspection was created. Output-only field, populated by the system. }, "detectionRules": [ # 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. { # 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. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, }, ], "exclusionType": "A String", # If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding # to be returned. It still can be used for rules matching. "likelihood": "A String", # 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. }, ], "includeQuote": True or False, # When true, a contextual quote from the data that triggered a finding is # included in the response; see Finding.quote. "ruleSet": [ # 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. { # 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. "rules": [ # Set of rules to be applied to infoTypes. The rules are applied in order. { # A single inspection rule to be applied to infoTypes, specified in # `InspectionRuleSet`. "hotwordRule": { # The rule that adjusts the likelihood of findings within a certain # Hotword-based detection rule. # proximity of hotwords. "proximity": { # Message for specifying a window around a finding to apply a detection # Proximity of the finding within which the entire hotword must reside. # The total length of the window cannot exceed 1000 characters. Note that # the finding itself will be included in the window, so that hotwords may # be used to match substrings of the finding itself. For example, the # certainty of a phone number regex "\(\d{3}\) \d{3}-\d{4}" could be # adjusted upwards if the area code is known to be the local area code of # a company office using the hotword regex "\(xxx\)", where "xxx" # is the area code in question. # rule. "windowAfter": 42, # Number of characters after the finding to consider. "windowBefore": 42, # Number of characters before the finding to consider. }, "hotwordRegex": { # Message defining a custom regular expression. # Regular expression pattern defining what qualifies as a hotword. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "likelihoodAdjustment": { # Message for specifying an adjustment to the likelihood of a finding as # Likelihood adjustment to apply to all matching findings. # part of a detection rule. "relativeLikelihood": 42, # 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`. "fixedLikelihood": "A String", # Set the likelihood of a finding to a fixed value. }, }, "exclusionRule": { # The rule that specifies conditions when findings of infoTypes specified in # Exclusion rule. # `InspectionRuleSet` are removed from results. "regex": { # Message defining a custom regular expression. # Regular expression which defines the rule. "pattern": "A String", # Pattern defining the regular expression. Its syntax # (https://github.com/google/re2/wiki/Syntax) can be found under the # google/re2 repository on GitHub. "groupIndexes": [ # The index of the submatch to extract as findings. When not # specified, the entire match is returned. No more than 3 may be included. 42, ], }, "excludeInfoTypes": { # List of exclude infoTypes. # Set of infoTypes for which findings would affect this rule. "infoTypes": [ # 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. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "dictionary": { # Custom information type based on a dictionary of words or phrases. This can # Dictionary which defines the rule. # 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. "wordList": { # Message defining a list of words or phrases to search for in the data. # List of words or phrases to search for. "words": [ # 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] "A String", ], }, "cloudStoragePath": { # Message representing a single file or path in Cloud Storage. # Newline-delimited file of words in Cloud Storage. Only a single file # is accepted. "path": "A String", # A url representing a file or path (no wildcards) in Cloud Storage. # Example: gs://[BUCKET_NAME]/dictionary.txt }, }, "matchingType": "A String", # How the rule is applied, see MatchingType documentation for details. }, }, ], "infoTypes": [ # List of infoTypes this rule set is applied to. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, ], "contentOptions": [ # List of options defining data content to scan. # If empty, text, images, and other content will be included. "A String", ], "infoTypes": [ # 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. # # The special InfoType name "ALL_BASIC" can be used to trigger all detectors, # but may change over time as new InfoTypes are added. If you need precise # control and predictability as to what detectors are run you should specify # specific InfoTypes listed in the reference. { # Type of information detected by the API. "name": "A String", # 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. InfoType names should conform to the pattern # [a-zA-Z0-9_]{1,64}. }, ], }, "inspectTemplateName": "A String", # 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. "actions": [ # Actions to execute at the completion of the job. { # A task to execute on the completion of a job. # See https://cloud.google.com/dlp/docs/concepts-actions to learn more. "saveFindings": { # If set, the detailed findings will be persisted to the specified # Save resulting findings in a provided location. # OutputStorageConfig. Only a single instance of this action can be # specified. # Compatible with: Inspect, Risk "outputConfig": { # Cloud repository for storing output. "table": { # Message defining the location of a BigQuery table. A table is uniquely # Store findings in an existing table or a new table in an existing # dataset. If table_id is not set a new one will be generated # for you with the following format: # dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for # generating the date details. # # For Inspect, each column in an existing output table must have the same # name, type, and mode of a field in the `Finding` object. # # For Risk, an existing output table should be the output of a previous # Risk analysis job run on the same source table, with the same privacy # metric and quasi-identifiers. Risk jobs that analyze the same table but # compute a different privacy metric, or use different sets of # quasi-identifiers, cannot store their results in the same table. # identified by its project_id, dataset_id, and table_name. Within a query # a table is often referenced with a string in the format of: # ` : . ` or # ` . . `. "projectId": "A String", # The Google Cloud Platform project ID of the project containing the table. # If omitted, project ID is inferred from the API call. "tableId": "A String", # Name of the table. "datasetId": "A String", # Dataset ID of the table. }, "outputSchema": "A String", # 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. }, }, "jobNotificationEmails": { # Enable email notification to project owners and editors on jobs's # Enable email notification to project owners and editors on job's # completion/failure. # completion/failure. }, "publishSummaryToCscc": { # Publish the result summary of a DlpJob to the Cloud Security # Publish summary to Cloud Security Command Center (Alpha). # 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 }, "pubSub": { # Publish a message into given Pub/Sub topic when DlpJob has completed. The # Publish a notification to a pubsub topic. # message contains a single field, `DlpJobName`, which is equal to the # finished job's # [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob). # Compatible with: Inspect, Risk "topic": "A String", # 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}. }, }, ], }, "triggers": [ # 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. { # What event needs to occur for a new job to be started. "schedule": { # Schedule for triggeredJobs. # Create a job on a repeating basis based on the elapse of time. "recurrencePeriodDuration": "A String", # 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. }, }, ], "lastRunTime": "A String", # The timestamp of the last time this trigger executed, output only field. "createTime": "A String", # The creation timestamp of a triggeredJob, output only field. "name": "A String", # Unique resource name for the triggeredJob, assigned by the service when the # triggeredJob is created, for example # `projects/dlp-test-project/triggeredJobs/53234423`. }