diff --git a/README.md b/README.md
index 1bae92df..40a6cd24 100644
--- a/README.md
+++ b/README.md
@@ -18,31 +18,8 @@ The Maven artifact coordinates (`com.google.cloud:google-cloud-dlp`) remain the
## Quickstart
-If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file:
-```xml
-
-
-
- com.google.cloud
- libraries-bom
- 26.1.4
- pom
- import
-
-
-
-
-
-
- com.google.cloud
- google-cloud-dlp
-
-
-
-```
-
-If you are using Maven without BOM, add this to your dependencies:
+If you are using Maven, add this to your pom.xml file:
```xml
@@ -54,23 +31,16 @@ If you are using Maven without BOM, add this to your dependencies:
```
-If you are using Gradle 5.x or later, add this to your dependencies:
-
-```Groovy
-implementation platform('com.google.cloud:libraries-bom:26.6.0')
-
-implementation 'com.google.cloud:google-cloud-dlp'
-```
If you are using Gradle without BOM, add this to your dependencies:
```Groovy
-implementation 'com.google.cloud:google-cloud-dlp:3.14.0'
+implementation 'com.google.cloud:google-cloud-dlp:3.15.0'
```
If you are using SBT, add this to your dependencies:
```Scala
-libraryDependencies += "com.google.cloud" % "google-cloud-dlp" % "3.14.0"
+libraryDependencies += "com.google.cloud" % "google-cloud-dlp" % "3.15.0"
```
## Authentication
@@ -108,77 +78,6 @@ use this Cloud Data Loss Prevention Client Library.
-## Samples
-
-Samples are in the [`samples/`](https://github.com/googleapis/java-dlp/tree/main/samples) directory.
-
-| Sample | Source Code | Try it |
-| --------------------------- | --------------------------------- | ------ |
-| De Identify Table Bucketing | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableBucketing.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableBucketing.java) |
-| De Identify Table Condition Info Types | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableConditionInfoTypes.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableConditionInfoTypes.java) |
-| De Identify Table Condition Masking | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableConditionMasking.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableConditionMasking.java) |
-| De Identify Table Info Types | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableInfoTypes.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableInfoTypes.java) |
-| De Identify Table Row Suppress | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableRowSuppress.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableRowSuppress.java) |
-| De Identify Table With Fpe | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableWithFpe.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableWithFpe.java) |
-| De Identify Text With Fpe | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTextWithFpe.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyTextWithFpe.java) |
-| De Identify With Date Shift | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithDateShift.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithDateShift.java) |
-| De Identify With Exception List | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithExceptionList.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithExceptionList.java) |
-| De Identify With Fpe | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithFpe.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithFpe.java) |
-| De Identify With Info Type | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithInfoType.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithInfoType.java) |
-| De Identify With Masking | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithMasking.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithMasking.java) |
-| De Identify With Redaction | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithRedaction.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithRedaction.java) |
-| De Identify With Replacement | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithReplacement.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithReplacement.java) |
-| De Identify With Simple Word List | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithSimpleWordList.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithSimpleWordList.java) |
-| Info Types List | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InfoTypesList.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InfoTypesList.java) |
-| Inspect Big Query Table | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectBigQueryTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectBigQueryTable.java) |
-| Inspect Big Query Table With Sampling | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectBigQueryTableWithSampling.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectBigQueryTableWithSampling.java) |
-| Inspect Datastore Entity | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectDatastoreEntity.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectDatastoreEntity.java) |
-| Inspect Gcs File | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectGcsFile.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectGcsFile.java) |
-| Inspect Gcs File With Sampling | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectGcsFileWithSampling.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectGcsFileWithSampling.java) |
-| Inspect Image File | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectImageFile.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectImageFile.java) |
-| Inspect Image File All Info Types | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectImageFileAllInfoTypes.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectImageFileAllInfoTypes.java) |
-| Inspect Image File Listed Info Types | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectImageFileListedInfoTypes.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectImageFileListedInfoTypes.java) |
-| Inspect Phone Number | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectPhoneNumber.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectPhoneNumber.java) |
-| Inspect String | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectString.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectString.java) |
-| Inspect String Custom Excluding Substring | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectStringCustomExcludingSubstring.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectStringCustomExcludingSubstring.java) |
-| Inspect String Custom Hotword | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectStringCustomHotword.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectStringCustomHotword.java) |
-| Inspect String Custom Omit Overlap | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectStringCustomOmitOverlap.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectStringCustomOmitOverlap.java) |
-| Inspect String Multiple Rules | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectStringMultipleRules.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectStringMultipleRules.java) |
-| Inspect String Omit Overlap | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectStringOmitOverlap.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectStringOmitOverlap.java) |
-| Inspect String With Exclusion Dict | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionDict.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionDict.java) |
-| Inspect String With Exclusion Dict Substring | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionDictSubstring.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionDictSubstring.java) |
-| Inspect String With Exclusion Regex | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionRegex.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionRegex.java) |
-| Inspect String Without Overlap | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectStringWithoutOverlap.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectStringWithoutOverlap.java) |
-| Inspect Table | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectTable.java) |
-| Inspect Text File | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectTextFile.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectTextFile.java) |
-| Inspect With Custom Regex | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectWithCustomRegex.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectWithCustomRegex.java) |
-| Inspect With Hotword Rules | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/InspectWithHotwordRules.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/InspectWithHotwordRules.java) |
-| Jobs Create | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/JobsCreate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/JobsCreate.java) |
-| Jobs Delete | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/JobsDelete.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/JobsDelete.java) |
-| Jobs Get | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/JobsGet.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/JobsGet.java) |
-| Jobs List | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/JobsList.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/JobsList.java) |
-| Quick Start | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/QuickStart.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/QuickStart.java) |
-| Re Identify Table With Fpe | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/ReIdentifyTableWithFpe.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/ReIdentifyTableWithFpe.java) |
-| Re Identify Text With Fpe | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/ReIdentifyTextWithFpe.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/ReIdentifyTextWithFpe.java) |
-| Re Identify With Fpe | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/ReIdentifyWithFpe.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/ReIdentifyWithFpe.java) |
-| Redact Image File | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/RedactImageFile.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/RedactImageFile.java) |
-| Redact Image File All Info Types | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/RedactImageFileAllInfoTypes.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/RedactImageFileAllInfoTypes.java) |
-| Redact Image File All Text | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/RedactImageFileAllText.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/RedactImageFileAllText.java) |
-| Redact Image File Colored Info Types | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/RedactImageFileColoredInfoTypes.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/RedactImageFileColoredInfoTypes.java) |
-| Redact Image File Listed Info Types | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/RedactImageFileListedInfoTypes.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/RedactImageFileListedInfoTypes.java) |
-| Risk Analysis Categorical Stats | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisCategoricalStats.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/RiskAnalysisCategoricalStats.java) |
-| Risk Analysis K Anonymity | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisKAnonymity.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/RiskAnalysisKAnonymity.java) |
-| Risk Analysis K Map | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisKMap.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/RiskAnalysisKMap.java) |
-| Risk Analysis L Diversity | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisLDiversity.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/RiskAnalysisLDiversity.java) |
-| Risk Analysis Numerical Stats | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisNumericalStats.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/RiskAnalysisNumericalStats.java) |
-| Templates Create | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/TemplatesCreate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/TemplatesCreate.java) |
-| Templates Delete | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/TemplatesDelete.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/TemplatesDelete.java) |
-| Templates List | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/TemplatesList.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/TemplatesList.java) |
-| Triggers Create | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/TriggersCreate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/TriggersCreate.java) |
-| Triggers Delete | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/TriggersDelete.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/TriggersDelete.java) |
-| Triggers List | [source code](https://github.com/googleapis/java-dlp/blob/main/samples/snippets/src/main/java/dlp/snippets/TriggersList.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-dlp&page=editor&open_in_editor=samples/snippets/src/main/java/dlp/snippets/TriggersList.java) |
-
-
## Troubleshooting
diff --git a/samples/snippets/README.md b/samples/snippets/README.md
index 2fa66e24..9da7cbc1 100644
--- a/samples/snippets/README.md
+++ b/samples/snippets/README.md
@@ -1,59 +1 @@
-# Cloud Data Loss Prevention (DLP) API Samples
-
-
-
-
-The [Data Loss Prevention API](https://cloud.google.com/dlp/docs/) provides programmatic access to
-a powerful detection engine for personally identifiable information and other privacy-sensitive data
- in unstructured data streams.
-
-## Setup
-- A Google Cloud project with billing enabled
-- [Enable](https://console.cloud.google.com/launcher/details/google/dlp.googleapis.com) the DLP API.
-- [Create a service account](https://cloud.google.com/docs/authentication/getting-started)
-and set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable pointing to the downloaded credentials file.
-
-## Running
-
-To run a specific sample, edit any variables under the `TODO(developer):` in the
-function at the top of each sample, and then execute the function as convenient.
-
-For example, if using the command line you might use the following (replacing
-`` with the name of the sample):
-```bash
-mvn exec:java -Dexec.mainClass="dlp.snippets."
-```
-
-
-## Testing
-
-### Setup
-- Ensure that `GOOGLE_APPLICATION_CREDENTIALS` points to authorized service account credentials file.
-- Set the `DLP_DEID_WRAPPED_KEY` environment variable to an AES-256 key encrypted ('wrapped') [with a Cloud Key Management Service (KMS) key](https://cloud.google.com/kms/docs/encrypt-decrypt).
-- Set the `DLP_DEID_KEY_NAME` environment variable to the path-name of the Cloud KMS key you wrapped `DLP_DEID_WRAPPED_KEY` with.
-- [Create a Google Cloud Storage bucket](https://console.cloud.google.com/storage) and upload [test.txt](src/test/resources/test.txt).
- - Set the `GCS_PATH` environment variable to point to the path for the bucket.
-- Copy and paste the data below into a CSV file and [create a BigQuery table](https://cloud.google.com/bigquery/docs/loading-data-local) from the file:
- ```$xslt
- Name,TelephoneNumber,Mystery,Age,Gender
- James,(567) 890-1234,8291 3627 8250 1234,19,Male
- Gandalf,(223) 456-7890,4231 5555 6781 9876,27,Male
- Dumbledore,(313) 337-1337,6291 8765 1095 7629,27,Male
- Joe,(452) 223-1234,3782 2288 1166 3030,35,Male
- Marie,(452) 223-1234,8291 3627 8250 1234,35,Female
- Carrie,(567) 890-1234,2253 5218 4251 4526,35,Female
- ```
- - Set the `BIGQUERY_DATASET` and `BIGQUERY_TABLE` environment values.
-- [Create a Google Cloud Pub/Sub](https://console.cloud.google.com/datastore) topic and and a subscription that is subscribed to the topic.
- - Set the `PUB_SUB_TOPIC` and `PUB_SUB_SUBSCRIPTION` environment variables to the corresponding values.
-- [Create a Google Cloud Datastore](https://console.cloud.google.com/datastore) kind and add an entity with properties:
- - `property1` : john@doe.com
- - `property2` : 343-343-3435
-- Update the Datastore kind in [InspectTests.java](src/test/java/dlp/snippets/InspectTests.java).
-
-
-### Run
-Run all tests:
-```
- mvn clean verify
-```
+The samples have been moved to [GoogleCloudPlatform/java-docs-samples](https://github.com/GoogleCloudPlatform/java-docs-samples) in PR: https://github.com/GoogleCloudPlatform/java-docs-samples/pull/7664
\ No newline at end of file
diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml
index c25e5189..dcf6fbe0 100644
--- a/samples/snippets/pom.xml
+++ b/samples/snippets/pom.xml
@@ -2,14 +2,14 @@
4.0.0
com.google.cloud
- dlp-snippets
+ -snippets
jar
Google Cloud Data Loss Prevention Snippets
https://github.com/googleapis/java-dlp
com.google.cloud.samples
@@ -23,30 +23,14 @@
UTF-8
-
-
-
-
-
- com.google.cloud
- libraries-bom
- 26.1.4
- pom
- import
-
-
-
-
+
com.google.cloud
google-cloud-dlp
+ 3.15.0
-
-
- com.google.cloud
- google-cloud-pubsub
-
+
junit
junit
@@ -59,7 +43,5 @@
1.1.3
test
-
-
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableBucketing.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableBucketing.java
deleted file mode 100644
index bf3d7082..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableBucketing.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_table_bucketing]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.FieldTransformation;
-import com.google.privacy.dlp.v2.FixedSizeBucketingConfig;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.RecordTransformations;
-import com.google.privacy.dlp.v2.Table;
-import com.google.privacy.dlp.v2.Table.Row;
-import com.google.privacy.dlp.v2.Value;
-import java.io.IOException;
-
-public class DeIdentifyTableBucketing {
-
- public static void deIdentifyTableBucketing() throws IOException {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- Table tableToDeIdentify =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("101").build())
- .addValues(Value.newBuilder().setStringValue("Charles Dickens").build())
- .addValues(Value.newBuilder().setStringValue("95").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("Jane Austen").build())
- .addValues(Value.newBuilder().setStringValue("21").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain").build())
- .addValues(Value.newBuilder().setStringValue("75").build())
- .build())
- .build();
-
- deIdentifyTableBucketing(projectId, tableToDeIdentify);
- }
-
- public static Table deIdentifyTableBucketing(String projectId, Table tableToDeIdentify)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify what content you want the service to de-identify.
- ContentItem contentItem = ContentItem.newBuilder().setTable(tableToDeIdentify).build();
-
- // Specify how the content should be de-identified.
- FixedSizeBucketingConfig fixedSizeBucketingConfig =
- FixedSizeBucketingConfig.newBuilder()
- .setBucketSize(10)
- .setLowerBound(Value.newBuilder().setIntegerValue(0).build())
- .setUpperBound(Value.newBuilder().setIntegerValue(100).build())
- .build();
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder()
- .setFixedSizeBucketingConfig(fixedSizeBucketingConfig)
- .build();
-
- // Specify field to be encrypted.
- FieldId fieldId = FieldId.newBuilder().setName("HAPPINESS SCORE").build();
-
- // Associate the encryption with the specified field.
- FieldTransformation fieldTransformation =
- FieldTransformation.newBuilder()
- .setPrimitiveTransformation(primitiveTransformation)
- .addFields(fieldId)
- .build();
- RecordTransformations transformations =
- RecordTransformations.newBuilder().addFieldTransformations(fieldTransformation).build();
-
- DeidentifyConfig deidentifyConfig =
- DeidentifyConfig.newBuilder().setRecordTransformations(transformations).build();
-
- // Combine configurations into a request for the service.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(contentItem)
- .setDeidentifyConfig(deidentifyConfig)
- .build();
-
- // Send the request and receive response from the service.
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Print the results.
- System.out.println("Table after de-identification: " + response.getItem().getTable());
-
- return response.getItem().getTable();
- }
- }
-}
-// [END dlp_deidentify_table_bucketing]
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableConditionInfoTypes.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableConditionInfoTypes.java
deleted file mode 100644
index 4fe50794..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableConditionInfoTypes.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_table_condition_infotypes]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.FieldTransformation;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeTransformations;
-import com.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.RecordCondition;
-import com.google.privacy.dlp.v2.RecordCondition.Condition;
-import com.google.privacy.dlp.v2.RecordCondition.Conditions;
-import com.google.privacy.dlp.v2.RecordCondition.Expressions;
-import com.google.privacy.dlp.v2.RecordTransformations;
-import com.google.privacy.dlp.v2.RelationalOperator;
-import com.google.privacy.dlp.v2.ReplaceWithInfoTypeConfig;
-import com.google.privacy.dlp.v2.Table;
-import com.google.privacy.dlp.v2.Table.Row;
-import com.google.privacy.dlp.v2.Value;
-import java.io.IOException;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-public class DeIdentifyTableConditionInfoTypes {
-
- public static void deIdentifyTableConditionInfoTypes() throws IOException {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- Table tableToDeIdentify =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addHeaders(FieldId.newBuilder().setName("FACTOID").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("101").build())
- .addValues(Value.newBuilder().setStringValue("Charles Dickens").build())
- .addValues(Value.newBuilder().setStringValue("95").build())
- .addValues(
- Value.newBuilder()
- .setStringValue(
- "Charles Dickens name was a curse invented by Shakespeare.")
- .build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("Jane Austen").build())
- .addValues(Value.newBuilder().setStringValue("21").build())
- .addValues(
- Value.newBuilder()
- .setStringValue("There are 14 kisses in Jane Austen's novels.")
- .build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain").build())
- .addValues(Value.newBuilder().setStringValue("75").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain loved cats.").build())
- .build())
- .build();
-
- deIdentifyTableConditionInfoTypes(projectId, tableToDeIdentify);
- }
-
- public static Table deIdentifyTableConditionInfoTypes(String projectId, Table tableToDeIdentify)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify what content you want the service to de-identify.
- ContentItem contentItem = ContentItem.newBuilder().setTable(tableToDeIdentify).build();
-
- // Specify how the content should be de-identified.
- // Select type of info to be replaced.
- InfoType infoType = InfoType.newBuilder().setName("PERSON_NAME").build();
- // Specify that findings should be replaced with corresponding info type name.
- ReplaceWithInfoTypeConfig replaceWithInfoTypeConfig =
- ReplaceWithInfoTypeConfig.getDefaultInstance();
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder()
- .setReplaceWithInfoTypeConfig(replaceWithInfoTypeConfig)
- .build();
- // Associate info type with the replacement strategy
- InfoTypeTransformation infoTypeTransformation =
- InfoTypeTransformation.newBuilder()
- .addInfoTypes(infoType)
- .setPrimitiveTransformation(primitiveTransformation)
- .build();
- InfoTypeTransformations infoTypeTransformations =
- InfoTypeTransformations.newBuilder().addTransformations(infoTypeTransformation).build();
-
- // Specify fields to be de-identified.
- List fieldIds =
- Stream.of("PATIENT", "FACTOID")
- .map(id -> FieldId.newBuilder().setName(id).build())
- .collect(Collectors.toList());
-
- // Specify when the above fields should be de-identified.
- Condition condition =
- Condition.newBuilder()
- .setField(FieldId.newBuilder().setName("AGE").build())
- .setOperator(RelationalOperator.GREATER_THAN)
- .setValue(Value.newBuilder().setIntegerValue(89).build())
- .build();
- // Apply the condition to records
- RecordCondition recordCondition =
- RecordCondition.newBuilder()
- .setExpressions(
- Expressions.newBuilder()
- .setConditions(Conditions.newBuilder().addConditions(condition).build())
- .build())
- .build();
-
- // Associate the de-identification and conditions with the specified fields.
- FieldTransformation fieldTransformation =
- FieldTransformation.newBuilder()
- .setInfoTypeTransformations(infoTypeTransformations)
- .addAllFields(fieldIds)
- .setCondition(recordCondition)
- .build();
- RecordTransformations transformations =
- RecordTransformations.newBuilder().addFieldTransformations(fieldTransformation).build();
-
- DeidentifyConfig deidentifyConfig =
- DeidentifyConfig.newBuilder().setRecordTransformations(transformations).build();
-
- // Combine configurations into a request for the service.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(contentItem)
- .setDeidentifyConfig(deidentifyConfig)
- .build();
-
- // Send the request and receive response from the service.
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Print the results.
- System.out.println("Table after de-identification: " + response.getItem().getTable());
-
- return response.getItem().getTable();
- }
- }
-}
-// [END dlp_deidentify_table_condition_infotypes]
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableConditionMasking.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableConditionMasking.java
deleted file mode 100644
index 4da5db4b..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableConditionMasking.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_table_condition_masking]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.CharacterMaskConfig;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.FieldTransformation;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.RecordCondition;
-import com.google.privacy.dlp.v2.RecordCondition.Condition;
-import com.google.privacy.dlp.v2.RecordCondition.Conditions;
-import com.google.privacy.dlp.v2.RecordCondition.Expressions;
-import com.google.privacy.dlp.v2.RecordTransformations;
-import com.google.privacy.dlp.v2.RelationalOperator;
-import com.google.privacy.dlp.v2.Table;
-import com.google.privacy.dlp.v2.Table.Row;
-import com.google.privacy.dlp.v2.Value;
-import java.io.IOException;
-
-public class DeIdentifyTableConditionMasking {
-
- public static void deIdentifyTableConditionMasking() throws IOException {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- Table tableToDeIdentify =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("101").build())
- .addValues(Value.newBuilder().setStringValue("Charles Dickens").build())
- .addValues(Value.newBuilder().setStringValue("95").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("Jane Austen").build())
- .addValues(Value.newBuilder().setStringValue("21").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain").build())
- .addValues(Value.newBuilder().setStringValue("75").build())
- .build())
- .build();
-
- deIdentifyTableConditionMasking(projectId, tableToDeIdentify);
- }
-
- public static Table deIdentifyTableConditionMasking(String projectId, Table tableToDeIdentify)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify what content you want the service to de-identify.
- ContentItem contentItem = ContentItem.newBuilder().setTable(tableToDeIdentify).build();
-
- // Specify how the content should be de-identified.
- CharacterMaskConfig characterMaskConfig =
- CharacterMaskConfig.newBuilder().setMaskingCharacter("*").build();
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder().setCharacterMaskConfig(characterMaskConfig).build();
-
- // Specify field to be de-identified.
- FieldId fieldId = FieldId.newBuilder().setName("HAPPINESS SCORE").build();
-
- // Specify when the above field should be de-identified.
- Condition condition =
- Condition.newBuilder()
- .setField(FieldId.newBuilder().setName("AGE").build())
- .setOperator(RelationalOperator.GREATER_THAN)
- .setValue(Value.newBuilder().setIntegerValue(89).build())
- .build();
- // Apply the condition to records
- RecordCondition recordCondition =
- RecordCondition.newBuilder()
- .setExpressions(
- Expressions.newBuilder()
- .setConditions(Conditions.newBuilder().addConditions(condition).build())
- .build())
- .build();
-
- // Associate the de-identification and conditions with the specified field.
- FieldTransformation fieldTransformation =
- FieldTransformation.newBuilder()
- .setPrimitiveTransformation(primitiveTransformation)
- .addFields(fieldId)
- .setCondition(recordCondition)
- .build();
- RecordTransformations transformations =
- RecordTransformations.newBuilder().addFieldTransformations(fieldTransformation).build();
-
- DeidentifyConfig deidentifyConfig =
- DeidentifyConfig.newBuilder().setRecordTransformations(transformations).build();
-
- // Combine configurations into a request for the service.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(contentItem)
- .setDeidentifyConfig(deidentifyConfig)
- .build();
-
- // Send the request and receive response from the service.
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Print the results.
- System.out.println("Table after de-identification: " + response.getItem().getTable());
-
- return response.getItem().getTable();
- }
- }
-}
-// [END dlp_deidentify_table_condition_masking]
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableInfoTypes.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableInfoTypes.java
deleted file mode 100644
index 3ea48cdb..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableInfoTypes.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_table_infotypes]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.FieldTransformation;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeTransformations;
-import com.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.RecordTransformations;
-import com.google.privacy.dlp.v2.ReplaceWithInfoTypeConfig;
-import com.google.privacy.dlp.v2.Table;
-import com.google.privacy.dlp.v2.Table.Row;
-import com.google.privacy.dlp.v2.Value;
-import java.io.IOException;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-public class DeIdentifyTableInfoTypes {
-
- public static void deIdentifyTableInfoTypes() throws IOException {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- Table tableToDeIdentify =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addHeaders(FieldId.newBuilder().setName("FACTOID").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("101").build())
- .addValues(Value.newBuilder().setStringValue("Charles Dickens").build())
- .addValues(Value.newBuilder().setStringValue("95").build())
- .addValues(
- Value.newBuilder()
- .setStringValue(
- "Charles Dickens name was a curse invented by Shakespeare.")
- .build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("Jane Austen").build())
- .addValues(Value.newBuilder().setStringValue("21").build())
- .addValues(
- Value.newBuilder()
- .setStringValue("There are 14 kisses in Jane Austen's novels.")
- .build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain").build())
- .addValues(Value.newBuilder().setStringValue("75").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain loved cats.").build())
- .build())
- .build();
-
- deIdentifyTableInfoTypes(projectId, tableToDeIdentify);
- }
-
- public static Table deIdentifyTableInfoTypes(String projectId, Table tableToDeIdentify)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify what content you want the service to de-identify.
- ContentItem contentItem = ContentItem.newBuilder().setTable(tableToDeIdentify).build();
-
- // Specify how the content should be de-identified.
- // Select type of info to be replaced.
- InfoType infoType = InfoType.newBuilder().setName("PERSON_NAME").build();
- // Specify that findings should be replaced with corresponding info type name.
- ReplaceWithInfoTypeConfig replaceWithInfoTypeConfig =
- ReplaceWithInfoTypeConfig.getDefaultInstance();
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder()
- .setReplaceWithInfoTypeConfig(replaceWithInfoTypeConfig)
- .build();
- // Associate info type with the replacement strategy
- InfoTypeTransformation infoTypeTransformation =
- InfoTypeTransformation.newBuilder()
- .addInfoTypes(infoType)
- .setPrimitiveTransformation(primitiveTransformation)
- .build();
- InfoTypeTransformations infoTypeTransformations =
- InfoTypeTransformations.newBuilder().addTransformations(infoTypeTransformation).build();
-
- // Specify fields to be de-identified.
- List fieldIds =
- Stream.of("PATIENT", "FACTOID")
- .map(id -> FieldId.newBuilder().setName(id).build())
- .collect(Collectors.toList());
-
- // Associate the de-identification and conditions with the specified field.
- FieldTransformation fieldTransformation =
- FieldTransformation.newBuilder()
- .setInfoTypeTransformations(infoTypeTransformations)
- .addAllFields(fieldIds)
- .build();
- RecordTransformations transformations =
- RecordTransformations.newBuilder().addFieldTransformations(fieldTransformation).build();
-
- DeidentifyConfig deidentifyConfig =
- DeidentifyConfig.newBuilder().setRecordTransformations(transformations).build();
-
- // Combine configurations into a request for the service.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(contentItem)
- .setDeidentifyConfig(deidentifyConfig)
- .build();
-
- // Send the request and receive response from the service.
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Print the results.
- System.out.println("Table after de-identification: " + response.getItem().getTable());
-
- return response.getItem().getTable();
- }
- }
-}
-// [END dlp_deidentify_table_infotypes]
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableRowSuppress.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableRowSuppress.java
deleted file mode 100644
index 0c02dc16..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableRowSuppress.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_table_row_suppress]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.RecordCondition;
-import com.google.privacy.dlp.v2.RecordCondition.Condition;
-import com.google.privacy.dlp.v2.RecordCondition.Conditions;
-import com.google.privacy.dlp.v2.RecordCondition.Expressions;
-import com.google.privacy.dlp.v2.RecordSuppression;
-import com.google.privacy.dlp.v2.RecordTransformations;
-import com.google.privacy.dlp.v2.RelationalOperator;
-import com.google.privacy.dlp.v2.Table;
-import com.google.privacy.dlp.v2.Table.Row;
-import com.google.privacy.dlp.v2.Value;
-import java.io.IOException;
-
-public class DeIdentifyTableRowSuppress {
-
- public static void deIdentifyTableRowSuppress() throws IOException {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- Table tableToDeIdentify =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("101").build())
- .addValues(Value.newBuilder().setStringValue("Charles Dickens").build())
- .addValues(Value.newBuilder().setStringValue("95").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("Jane Austen").build())
- .addValues(Value.newBuilder().setStringValue("21").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain").build())
- .addValues(Value.newBuilder().setStringValue("75").build())
- .build())
- .build();
-
- deIdentifyTableRowSuppress(projectId, tableToDeIdentify);
- }
-
- public static Table deIdentifyTableRowSuppress(String projectId, Table tableToDeIdentify)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify what content you want the service to de-identify.
- ContentItem contentItem = ContentItem.newBuilder().setTable(tableToDeIdentify).build();
-
- // Specify when the content should be de-identified.
- Condition condition =
- Condition.newBuilder()
- .setField(FieldId.newBuilder().setName("AGE").build())
- .setOperator(RelationalOperator.GREATER_THAN)
- .setValue(Value.newBuilder().setIntegerValue(89).build())
- .build();
- // Apply the condition to record suppression.
- RecordSuppression recordSuppressions =
- RecordSuppression.newBuilder()
- .setCondition(
- RecordCondition.newBuilder()
- .setExpressions(
- Expressions.newBuilder()
- .setConditions(
- Conditions.newBuilder().addConditions(condition).build())
- .build())
- .build())
- .build();
- // Use record suppression as the only transformation
- RecordTransformations transformations =
- RecordTransformations.newBuilder().addRecordSuppressions(recordSuppressions).build();
-
- DeidentifyConfig deidentifyConfig =
- DeidentifyConfig.newBuilder().setRecordTransformations(transformations).build();
-
- // Combine configurations into a request for the service.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(contentItem)
- .setDeidentifyConfig(deidentifyConfig)
- .build();
-
- // Send the request and receive response from the service.
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Print the results.
- System.out.println("Table after de-identification: " + response.getItem().getTable());
-
- return response.getItem().getTable();
- }
- }
-}
-// [END dlp_deidentify_table_row_suppress]
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableWithFpe.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableWithFpe.java
deleted file mode 100644
index 7fb249f6..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTableWithFpe.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_table_fpe]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.common.io.BaseEncoding;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CryptoKey;
-import com.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig;
-import com.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.FieldTransformation;
-import com.google.privacy.dlp.v2.KmsWrappedCryptoKey;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.RecordTransformations;
-import com.google.privacy.dlp.v2.Table;
-import com.google.privacy.dlp.v2.Table.Row;
-import com.google.privacy.dlp.v2.Value;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-
-public class DeIdentifyTableWithFpe {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String kmsKeyName =
- "projects/YOUR_PROJECT/"
- + "locations/YOUR_KEYRING_REGION/"
- + "keyRings/YOUR_KEYRING_NAME/"
- + "cryptoKeys/YOUR_KEY_NAME";
- String wrappedAesKey = "YOUR_ENCRYPTED_AES_256_KEY";
- Table tableToDeIdentify =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("Employee ID").build())
- .addHeaders(FieldId.newBuilder().setName("Date").build())
- .addHeaders(FieldId.newBuilder().setName("Compensation").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("11111").build())
- .addValues(Value.newBuilder().setStringValue("2015").build())
- .addValues(Value.newBuilder().setStringValue("$10").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("11111").build())
- .addValues(Value.newBuilder().setStringValue("2016").build())
- .addValues(Value.newBuilder().setStringValue("$20").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22222").build())
- .addValues(Value.newBuilder().setStringValue("2016").build())
- .addValues(Value.newBuilder().setStringValue("$15").build())
- .build())
- .build();
- deIdentifyTableWithFpe(projectId, tableToDeIdentify, kmsKeyName, wrappedAesKey);
- }
-
- public static void deIdentifyTableWithFpe(
- String projectId, Table tableToDeIdentify, String kmsKeyName, String wrappedAesKey)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify what content you want the service to de-identify.
- ContentItem contentItem = ContentItem.newBuilder().setTable(tableToDeIdentify).build();
-
- // Specify an encrypted AES-256 key and the name of the Cloud KMS key that encrypted it
- KmsWrappedCryptoKey kmsWrappedCryptoKey =
- KmsWrappedCryptoKey.newBuilder()
- .setWrappedKey(ByteString.copyFrom(BaseEncoding.base64().decode(wrappedAesKey)))
- .setCryptoKeyName(kmsKeyName)
- .build();
- CryptoKey cryptoKey = CryptoKey.newBuilder().setKmsWrapped(kmsWrappedCryptoKey).build();
-
- // Specify how the content should be encrypted.
- CryptoReplaceFfxFpeConfig cryptoReplaceFfxFpeConfig =
- CryptoReplaceFfxFpeConfig.newBuilder()
- .setCryptoKey(cryptoKey)
- // Set of characters in the input text. For more info, see
- // https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#DeidentifyTemplate.FfxCommonNativeAlphabet
- .setCommonAlphabet(FfxCommonNativeAlphabet.NUMERIC)
- .build();
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder()
- .setCryptoReplaceFfxFpeConfig(cryptoReplaceFfxFpeConfig)
- .build();
-
- // Specify field to be encrypted.
- FieldId fieldId = FieldId.newBuilder().setName("Employee ID").build();
-
- // Associate the encryption with the specified field.
- FieldTransformation fieldTransformation =
- FieldTransformation.newBuilder()
- .setPrimitiveTransformation(primitiveTransformation)
- .addFields(fieldId)
- .build();
- RecordTransformations transformations =
- RecordTransformations.newBuilder().addFieldTransformations(fieldTransformation).build();
-
- DeidentifyConfig deidentifyConfig =
- DeidentifyConfig.newBuilder().setRecordTransformations(transformations).build();
-
- // Combine configurations into a request for the service.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(contentItem)
- .setDeidentifyConfig(deidentifyConfig)
- .build();
-
- // Send the request and receive response from the service.
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Print the results.
- System.out.println(
- "Table after format-preserving encryption: " + response.getItem().getTable());
- }
- }
-}
-// [END dlp_deidentify_table_fpe]
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTextWithFpe.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTextWithFpe.java
deleted file mode 100644
index 8922db0b..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyTextWithFpe.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_text_fpe]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.common.io.BaseEncoding;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CryptoKey;
-import com.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig;
-import com.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeTransformations;
-import com.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.KmsWrappedCryptoKey;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-import java.util.Arrays;
-
-public class DeIdentifyTextWithFpe {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToDeIdentify = "I'm Gary and my email is gary@example.com";
- String kmsKeyName =
- "projects/YOUR_PROJECT/"
- + "locations/YOUR_KEYRING_REGION/"
- + "keyRings/YOUR_KEYRING_NAME/"
- + "cryptoKeys/YOUR_KEY_NAME";
- String wrappedAesKey = "YOUR_ENCRYPTED_AES_256_KEY";
- deIdentifyTextWithFpe(projectId, textToDeIdentify, kmsKeyName, wrappedAesKey);
- }
-
- public static void deIdentifyTextWithFpe(
- String projectId, String textToDeIdentify, String kmsKeyName, String wrappedAesKey)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify what content you want the service to de-identify.
- ContentItem contentItem = ContentItem.newBuilder().setValue(textToDeIdentify).build();
-
- // Specify the type of info you want the service to de-identify.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types.
- InfoType infoType = InfoType.newBuilder().setName("PHONE_NUMBER").build();
- InspectConfig inspectConfig =
- InspectConfig.newBuilder().addAllInfoTypes(Arrays.asList(infoType)).build();
-
- // Specify an encrypted AES-256 key and the name of the Cloud KMS key that encrypted it.
- KmsWrappedCryptoKey kmsWrappedCryptoKey =
- KmsWrappedCryptoKey.newBuilder()
- .setWrappedKey(ByteString.copyFrom(BaseEncoding.base64().decode(wrappedAesKey)))
- .setCryptoKeyName(kmsKeyName)
- .build();
- CryptoKey cryptoKey = CryptoKey.newBuilder().setKmsWrapped(kmsWrappedCryptoKey).build();
-
- // Specify how the info from the inspection should be encrypted.
- InfoType surrogateInfoType = InfoType.newBuilder().setName("PHONE_TOKEN").build();
- CryptoReplaceFfxFpeConfig cryptoReplaceFfxFpeConfig =
- CryptoReplaceFfxFpeConfig.newBuilder()
- .setCryptoKey(cryptoKey)
- // Set of characters in the input text. For more info, see
- // https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#DeidentifyTemplate.FfxCommonNativeAlphabet
- .setCommonAlphabet(FfxCommonNativeAlphabet.NUMERIC)
- .setSurrogateInfoType(surrogateInfoType)
- .build();
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder()
- .setCryptoReplaceFfxFpeConfig(cryptoReplaceFfxFpeConfig)
- .build();
- InfoTypeTransformation infoTypeTransformation =
- InfoTypeTransformation.newBuilder()
- .setPrimitiveTransformation(primitiveTransformation)
- .build();
- InfoTypeTransformations transformations =
- InfoTypeTransformations.newBuilder().addTransformations(infoTypeTransformation).build();
-
- DeidentifyConfig deidentifyConfig =
- DeidentifyConfig.newBuilder().setInfoTypeTransformations(transformations).build();
-
- // Combine configurations into a request for the service.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(contentItem)
- .setInspectConfig(inspectConfig)
- .setDeidentifyConfig(deidentifyConfig)
- .build();
-
- // Send the request and receive response from the service.
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Print the results.
- System.out.println(
- "Text after format-preserving encryption: " + response.getItem().getValue());
- }
- }
-}
-// [END dlp_deidentify_text_fpe]
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithDateShift.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithDateShift.java
deleted file mode 100644
index abbc2dae..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithDateShift.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_date_shift]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.common.base.Splitter;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.DateShiftConfig;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.FieldTransformation;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.RecordTransformations;
-import com.google.privacy.dlp.v2.Table;
-import com.google.privacy.dlp.v2.Value;
-import com.google.type.Date;
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
-public class DeIdentifyWithDateShift {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- Path inputCsvFile = Paths.get("path/to/your/input/file.csv");
- Path outputCsvFile = Paths.get("path/to/your/output/file.csv");
- deIdentifyWithDateShift(projectId, inputCsvFile, outputCsvFile);
- }
-
- public static void deIdentifyWithDateShift(
- String projectId, Path inputCsvFile, Path outputCsvFile) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Read the contents of the CSV file into a Table
- List headers;
- List rows;
- try (BufferedReader input = Files.newBufferedReader(inputCsvFile)) {
- // Parse and convert the first line into header names
- headers =
- Arrays.stream(input.readLine().split(","))
- .map(header -> FieldId.newBuilder().setName(header).build())
- .collect(Collectors.toList());
- // Parse the remainder of the file as Table.Rows
- rows =
- input.lines().map(DeIdentifyWithDateShift::parseLineAsRow).collect(Collectors.toList());
- }
- Table table = Table.newBuilder().addAllHeaders(headers).addAllRows(rows).build();
- ContentItem item = ContentItem.newBuilder().setTable(table).build();
-
- // Set the maximum days to shift dates backwards (lower bound) or forward (upper bound)
- DateShiftConfig dateShiftConfig =
- DateShiftConfig.newBuilder().setLowerBoundDays(5).setUpperBoundDays(5).build();
- PrimitiveTransformation transformation =
- PrimitiveTransformation.newBuilder().setDateShiftConfig(dateShiftConfig).build();
- // Specify which fields the DateShift should apply too
- List dateFields = Arrays.asList(headers.get(1), headers.get(3));
- FieldTransformation fieldTransformation =
- FieldTransformation.newBuilder()
- .addAllFields(dateFields)
- .setPrimitiveTransformation(transformation)
- .build();
- RecordTransformations recordTransformations =
- RecordTransformations.newBuilder().addFieldTransformations(fieldTransformation).build();
- // Specify the config for the de-identify request
- DeidentifyConfig deidentifyConfig =
- DeidentifyConfig.newBuilder().setRecordTransformations(recordTransformations).build();
-
- // Combine configurations into a request for the service.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setDeidentifyConfig(deidentifyConfig)
- .build();
-
- // Send the request and receive response from the service
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Write the results to the target CSV file
- try (BufferedWriter writer = Files.newBufferedWriter(outputCsvFile)) {
- Table outTable = response.getItem().getTable();
- String headerOut =
- outTable.getHeadersList().stream()
- .map(FieldId::getName)
- .collect(Collectors.joining(","));
- writer.write(headerOut + "\n");
-
- List rowOutput =
- outTable.getRowsList().stream()
- .map(row -> joinRow(row.getValuesList()))
- .collect(Collectors.toList());
- for (String line : rowOutput) {
- writer.write(line + "\n");
- }
- System.out.println("Content written to file: " + outputCsvFile.toString());
- }
- }
- }
-
- // Convert the string from the csv file into com.google.type.Date
- public static Date parseAsDate(String s) {
- LocalDate date = LocalDate.parse(s, DateTimeFormatter.ofPattern("MM/dd/yyyy"));
- return Date.newBuilder()
- .setDay(date.getDayOfMonth())
- .setMonth(date.getMonthValue())
- .setYear(date.getYear())
- .build();
- }
-
- // Each row is in the format: Name,BirthDate,CreditCardNumber,RegisterDate
- public static Table.Row parseLineAsRow(String line) {
- List values = Splitter.on(",").splitToList(line);
- Value name = Value.newBuilder().setStringValue(values.get(0)).build();
- Value birthDate = Value.newBuilder().setDateValue(parseAsDate(values.get(1))).build();
- Value creditCardNumber = Value.newBuilder().setStringValue(values.get(2)).build();
- Value registerDate = Value.newBuilder().setDateValue(parseAsDate(values.get(3))).build();
- return Table.Row.newBuilder()
- .addValues(name)
- .addValues(birthDate)
- .addValues(creditCardNumber)
- .addValues(registerDate)
- .build();
- }
-
- public static String formatDate(Date d) {
- return String.format("%s/%s/%s", d.getMonth(), d.getDay(), d.getYear());
- }
-
- public static String joinRow(List values) {
- String name = values.get(0).getStringValue();
- String birthDate = formatDate(values.get(1).getDateValue());
- String creditCardNumber = values.get(2).getStringValue();
- String registerDate = formatDate(values.get(3).getDateValue());
- return String.join(",", name, birthDate, creditCardNumber, registerDate);
- }
-}
-// [END dlp_deidentify_date_shift]
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithExceptionList.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithExceptionList.java
deleted file mode 100644
index 42c5c25d..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithExceptionList.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_exception_list]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CustomInfoType;
-import com.google.privacy.dlp.v2.CustomInfoType.Dictionary;
-import com.google.privacy.dlp.v2.CustomInfoType.Dictionary.WordList;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeTransformations;
-import com.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.ReplaceWithInfoTypeConfig;
-import java.io.IOException;
-
-public class DeIdentifyWithExceptionList {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToDeIdentify = "jack@example.org accessed customer record of user5@example.com";
- deIdentifyWithExceptionList(projectId, textToDeIdentify);
- }
-
- public static void deIdentifyWithExceptionList(String projectId, String textToDeIdentify)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
-
- // Specify what content you want the service to DeIdentify.
- ContentItem contentItem = ContentItem.newBuilder().setValue(textToDeIdentify).build();
-
- // Construct the custom word list to be detected.
- Dictionary wordList =
- Dictionary.newBuilder()
- .setWordList(
- WordList.newBuilder()
- .addWords("jack@example.org")
- .addWords("jill@example.org")
- .build())
- .build();
-
- // Construct the custom dictionary detector associated with the word list.
- InfoType developerEmail = InfoType.newBuilder().setName("DEVELOPER_EMAIL").build();
- CustomInfoType customInfoType =
- CustomInfoType.newBuilder().setInfoType(developerEmail).setDictionary(wordList).build();
-
- // Specify the word list custom info type and build-in info type the inspection will look for.
- InfoType emailAddress = InfoType.newBuilder().setName("EMAIL_ADDRESS").build();
- InspectConfig inspectConfig =
- InspectConfig.newBuilder()
- .addInfoTypes(emailAddress)
- .addCustomInfoTypes(customInfoType)
- .build();
-
- // Define type of deidentification as replacement.
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder()
- .setReplaceWithInfoTypeConfig(ReplaceWithInfoTypeConfig.getDefaultInstance())
- .build();
-
- // Associate de-identification type with info type.
- InfoTypeTransformation transformation =
- InfoTypeTransformation.newBuilder()
- .addInfoTypes(emailAddress)
- .setPrimitiveTransformation(primitiveTransformation)
- .build();
-
- // Construct the configuration for the de-id request and list all desired transformations.
- DeidentifyConfig deidentifyConfig =
- DeidentifyConfig.newBuilder()
- .setInfoTypeTransformations(
- InfoTypeTransformations.newBuilder().addTransformations(transformation))
- .build();
-
- // Combine configurations into a request for the service.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(contentItem)
- .setInspectConfig(inspectConfig)
- .setDeidentifyConfig(deidentifyConfig)
- .build();
-
- // Send the request and receive response from the service
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Print the results
- System.out.println(
- "Text after replace with infotype config: " + response.getItem().getValue());
- }
- }
-}
-// [END dlp_deidentify_exception_list]
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithFpe.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithFpe.java
deleted file mode 100644
index bb947c9a..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithFpe.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_fpe]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.common.io.BaseEncoding;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CryptoKey;
-import com.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig;
-import com.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeTransformations;
-import com.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.KmsWrappedCryptoKey;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-import java.util.Arrays;
-
-public class DeIdentifyWithFpe {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToDeIdentify = "I'm Gary and my email is gary@example.com";
- String kmsKeyName =
- "projects/YOUR_PROJECT/"
- + "locations/YOUR_KEYRING_REGION/"
- + "keyRings/YOUR_KEYRING_NAME/"
- + "cryptoKeys/YOUR_KEY_NAME";
- String wrappedAesKey = "YOUR_ENCRYPTED_AES_256_KEY";
- deIdentifyWithFpe(projectId, textToDeIdentify, kmsKeyName, wrappedAesKey);
- }
-
- public static void deIdentifyWithFpe(
- String projectId, String textToDeIdentify, String kmsKeyName, String wrappedAesKey)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify what content you want the service to DeIdentify
- ContentItem contentItem = ContentItem.newBuilder().setValue(textToDeIdentify).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- InfoType infoType = InfoType.newBuilder().setName("US_SOCIAL_SECURITY_NUMBER").build();
- InspectConfig inspectConfig =
- InspectConfig.newBuilder().addAllInfoTypes(Arrays.asList(infoType)).build();
-
- // Specify an encrypted AES-256 key and the name of the Cloud KMS key that encrypted it
- KmsWrappedCryptoKey kmsWrappedCryptoKey =
- KmsWrappedCryptoKey.newBuilder()
- .setWrappedKey(ByteString.copyFrom(BaseEncoding.base64().decode(wrappedAesKey)))
- .setCryptoKeyName(kmsKeyName)
- .build();
- CryptoKey cryptoKey = CryptoKey.newBuilder().setKmsWrapped(kmsWrappedCryptoKey).build();
-
- // Specify how the info from the inspection should be encrypted.
- InfoType surrogateInfoType = InfoType.newBuilder().setName("SSN_TOKEN").build();
- CryptoReplaceFfxFpeConfig cryptoReplaceFfxFpeConfig =
- CryptoReplaceFfxFpeConfig.newBuilder()
- .setCryptoKey(cryptoKey)
- // Set of characters in the input text. For more info, see
- // https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#DeidentifyTemplate.FfxCommonNativeAlphabet
- .setCommonAlphabet(FfxCommonNativeAlphabet.NUMERIC)
- .setSurrogateInfoType(surrogateInfoType)
- .build();
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder()
- .setCryptoReplaceFfxFpeConfig(cryptoReplaceFfxFpeConfig)
- .build();
- InfoTypeTransformation infoTypeTransformation =
- InfoTypeTransformation.newBuilder()
- .setPrimitiveTransformation(primitiveTransformation)
- .build();
- InfoTypeTransformations transformations =
- InfoTypeTransformations.newBuilder().addTransformations(infoTypeTransformation).build();
-
- DeidentifyConfig deidentifyConfig =
- DeidentifyConfig.newBuilder().setInfoTypeTransformations(transformations).build();
-
- // Combine configurations into a request for the service.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(contentItem)
- .setInspectConfig(inspectConfig)
- .setDeidentifyConfig(deidentifyConfig)
- .build();
-
- // Send the request and receive response from the service
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Print the results
- System.out.println(
- "Text after format-preserving encryption: " + response.getItem().getValue());
- }
- }
-}
-// [END dlp_deidentify_fpe]
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithInfoType.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithInfoType.java
deleted file mode 100644
index bc830dcd..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithInfoType.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_infotype]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeTransformations;
-import com.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.ReplaceWithInfoTypeConfig;
-import java.io.IOException;
-
-public class DeIdentifyWithInfoType {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect = "My email is test@example.com";
- deIdentifyWithInfoType(projectId, textToInspect);
- }
-
- public static void deIdentifyWithInfoType(String projectId, String textToRedact)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the content to be inspected.
- ContentItem item = ContentItem.newBuilder().setValue(textToRedact).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- InfoType infoType = InfoType.newBuilder().setName("EMAIL_ADDRESS").build();
- InspectConfig inspectConfig = InspectConfig.newBuilder().addInfoTypes(infoType).build();
- // Specify replacement string to be used for the finding.
- ReplaceWithInfoTypeConfig replaceWithInfoTypeConfig =
- ReplaceWithInfoTypeConfig.newBuilder().build();
- // Define type of deidentification as replacement with info type.
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder()
- .setReplaceWithInfoTypeConfig(replaceWithInfoTypeConfig)
- .build();
- // Associate deidentification type with info type.
- InfoTypeTransformation transformation =
- InfoTypeTransformation.newBuilder()
- .addInfoTypes(infoType)
- .setPrimitiveTransformation(primitiveTransformation)
- .build();
- // Construct the configuration for the Redact request and list all desired transformations.
- DeidentifyConfig redactConfig =
- DeidentifyConfig.newBuilder()
- .setInfoTypeTransformations(
- InfoTypeTransformations.newBuilder().addTransformations(transformation))
- .build();
-
- // Construct the Redact request to be sent by the client.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setDeidentifyConfig(redactConfig)
- .setInspectConfig(inspectConfig)
- .build();
-
- // Use the client to send the API request.
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Parse the response and process results
- System.out.println("Text after redaction: " + response.getItem().getValue());
- }
- }
-}
-// [END dlp_deidentify_replace]
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithMasking.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithMasking.java
deleted file mode 100644
index 5d387688..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithMasking.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_masking]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.CharacterMaskConfig;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeTransformations;
-import com.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.ReplaceWithInfoTypeConfig;
-import java.io.IOException;
-import java.util.Arrays;
-
-public class DeIdentifyWithMasking {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToDeIdentify = "My SSN is 372819127";
- deIdentifyWithMasking(projectId, textToDeIdentify);
- }
-
- public static void deIdentifyWithMasking(String projectId, String textToDeIdentify)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
-
- // Specify what content you want the service to DeIdentify
- ContentItem contentItem = ContentItem.newBuilder().setValue(textToDeIdentify).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- InfoType infoType = InfoType.newBuilder().setName("US_SOCIAL_SECURITY_NUMBER").build();
- InspectConfig inspectConfig =
- InspectConfig.newBuilder().addAllInfoTypes(Arrays.asList(infoType)).build();
-
- // Specify how the info from the inspection should be masked.
- CharacterMaskConfig characterMaskConfig =
- CharacterMaskConfig.newBuilder()
- .setMaskingCharacter("X") // Character to replace the found info with
- .setNumberToMask(5) // How many characters should be masked
- .build();
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder()
- .setReplaceWithInfoTypeConfig(ReplaceWithInfoTypeConfig.getDefaultInstance())
- .build();
- InfoTypeTransformation infoTypeTransformation =
- InfoTypeTransformation.newBuilder()
- .setPrimitiveTransformation(primitiveTransformation)
- .build();
- InfoTypeTransformations transformations =
- InfoTypeTransformations.newBuilder().addTransformations(infoTypeTransformation).build();
-
- DeidentifyConfig deidentifyConfig =
- DeidentifyConfig.newBuilder().setInfoTypeTransformations(transformations).build();
-
- // Combine configurations into a request for the service.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(contentItem)
- .setInspectConfig(inspectConfig)
- .setDeidentifyConfig(deidentifyConfig)
- .build();
-
- // Send the request and receive response from the service
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Print the results
- System.out.println("Text after masking: " + response.getItem().getValue());
- }
- }
-}
-// [END dlp_deidentify_masking]
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithRedaction.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithRedaction.java
deleted file mode 100644
index 4c7f748b..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithRedaction.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_redact]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeTransformations;
-import com.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.RedactConfig;
-
-public class DeIdentifyWithRedaction {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect =
- "My name is Alicia Abernathy, and my email address is aabernathy@example.com.";
- deIdentifyWithRedaction(projectId, textToInspect);
- }
-
- // Inspects the provided text.
- public static void deIdentifyWithRedaction(String projectId, String textToRedact) {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the content to be inspected.
- ContentItem item = ContentItem.newBuilder().setValue(textToRedact).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- InfoType infoType = InfoType.newBuilder().setName("EMAIL_ADDRESS").build();
- InspectConfig inspectConfig = InspectConfig.newBuilder().addInfoTypes(infoType).build();
- // Define type of deidentification.
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder()
- .setRedactConfig(RedactConfig.getDefaultInstance())
- .build();
- // Associate deidentification type with info type.
- InfoTypeTransformation transformation =
- InfoTypeTransformation.newBuilder()
- .addInfoTypes(infoType)
- .setPrimitiveTransformation(primitiveTransformation)
- .build();
- // Construct the configuration for the Redact request and list all desired transformations.
- DeidentifyConfig redactConfig =
- DeidentifyConfig.newBuilder()
- .setInfoTypeTransformations(
- InfoTypeTransformations.newBuilder().addTransformations(transformation))
- .build();
-
- // Construct the Redact request to be sent by the client.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setDeidentifyConfig(redactConfig)
- .setInspectConfig(inspectConfig)
- .build();
-
- // Use the client to send the API request.
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Parse the response and process results
- System.out.println("Text after redaction: " + response.getItem().getValue());
- } catch (Exception e) {
- System.out.println("Error during inspectString: \n" + e.toString());
- }
- }
-}
-// [END dlp_deidentify_redact]
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithReplacement.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithReplacement.java
deleted file mode 100644
index 3a578f05..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithReplacement.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_replace]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeTransformations;
-import com.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.ReplaceValueConfig;
-import com.google.privacy.dlp.v2.Value;
-
-public class DeIdentifyWithReplacement {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect =
- "My name is Alicia Abernathy, and my email address is aabernathy@example.com.";
- deIdentifyWithReplacement(projectId, textToInspect);
- }
-
- // Inspects the provided text.
- public static void deIdentifyWithReplacement(String projectId, String textToRedact) {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the content to be inspected.
- ContentItem item = ContentItem.newBuilder().setValue(textToRedact).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- InfoType infoType = InfoType.newBuilder().setName("EMAIL_ADDRESS").build();
- InspectConfig inspectConfig = InspectConfig.newBuilder().addInfoTypes(infoType).build();
- // Specify replacement string to be used for the finding.
- ReplaceValueConfig replaceValueConfig =
- ReplaceValueConfig.newBuilder()
- .setNewValue(Value.newBuilder().setStringValue("[email-address]").build())
- .build();
- // Define type of deidentification as replacement.
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder().setReplaceConfig(replaceValueConfig).build();
- // Associate deidentification type with info type.
- InfoTypeTransformation transformation =
- InfoTypeTransformation.newBuilder()
- .addInfoTypes(infoType)
- .setPrimitiveTransformation(primitiveTransformation)
- .build();
- // Construct the configuration for the Redact request and list all desired transformations.
- DeidentifyConfig redactConfig =
- DeidentifyConfig.newBuilder()
- .setInfoTypeTransformations(
- InfoTypeTransformations.newBuilder().addTransformations(transformation))
- .build();
-
- // Construct the Redact request to be sent by the client.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setDeidentifyConfig(redactConfig)
- .setInspectConfig(inspectConfig)
- .build();
-
- // Use the client to send the API request.
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Parse the response and process results
- System.out.println("Text after redaction: " + response.getItem().getValue());
- } catch (Exception e) {
- System.out.println("Error during inspectString: \n" + e.toString());
- }
- }
-}
-// [END dlp_deidentify_replace]
diff --git a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithSimpleWordList.java b/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithSimpleWordList.java
deleted file mode 100644
index 993277a0..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/DeIdentifyWithSimpleWordList.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_deidentify_simple_word_list]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CustomInfoType;
-import com.google.privacy.dlp.v2.CustomInfoType.Dictionary;
-import com.google.privacy.dlp.v2.CustomInfoType.Dictionary.WordList;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.DeidentifyContentRequest;
-import com.google.privacy.dlp.v2.DeidentifyContentResponse;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeTransformations;
-import com.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.ReplaceWithInfoTypeConfig;
-import java.io.IOException;
-
-public class DeIdentifyWithSimpleWordList {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToDeIdentify = "Patient was seen in RM-YELLOW then transferred to rm green.";
- deidentifyWithSimpleWordList(projectId, textToDeIdentify);
- }
-
- public static void deidentifyWithSimpleWordList(String projectId, String textToDeIdentify)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
-
- // Specify what content you want the service to DeIdentify.
- ContentItem contentItem = ContentItem.newBuilder().setValue(textToDeIdentify).build();
-
- // Construct the word list to be detected
- Dictionary wordList =
- Dictionary.newBuilder()
- .setWordList(
- WordList.newBuilder()
- .addWords("RM-GREEN")
- .addWords("RM-YELLOW")
- .addWords("RM-ORANGE")
- .build())
- .build();
-
- // Specify the word list custom info type the inspection will look for.
- InfoType infoType = InfoType.newBuilder().setName("CUSTOM_ROOM_ID").build();
- CustomInfoType customInfoType =
- CustomInfoType.newBuilder().setInfoType(infoType).setDictionary(wordList).build();
- InspectConfig inspectConfig =
- InspectConfig.newBuilder().addCustomInfoTypes(customInfoType).build();
-
- // Define type of deidentification as replacement.
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder()
- .setReplaceWithInfoTypeConfig(ReplaceWithInfoTypeConfig.getDefaultInstance())
- .build();
-
- // Associate deidentification type with info type.
- InfoTypeTransformation transformation =
- InfoTypeTransformation.newBuilder()
- .addInfoTypes(infoType)
- .setPrimitiveTransformation(primitiveTransformation)
- .build();
-
- // Construct the configuration for the Redact request and list all desired transformations.
- DeidentifyConfig deidentifyConfig =
- DeidentifyConfig.newBuilder()
- .setInfoTypeTransformations(
- InfoTypeTransformations.newBuilder().addTransformations(transformation))
- .build();
-
- // Combine configurations into a request for the service.
- DeidentifyContentRequest request =
- DeidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(contentItem)
- .setInspectConfig(inspectConfig)
- .setDeidentifyConfig(deidentifyConfig)
- .build();
-
- // Send the request and receive response from the service
- DeidentifyContentResponse response = dlp.deidentifyContent(request);
-
- // Print the results
- System.out.println(
- "Text after replace with infotype config: " + response.getItem().getValue());
- }
- }
-}
-// [END dlp_deidentify_simple_word_list]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InfoTypesList.java b/samples/snippets/src/main/java/dlp/snippets/InfoTypesList.java
deleted file mode 100644
index 43a304ea..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InfoTypesList.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_list_info_types]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.InfoTypeDescription;
-import com.google.privacy.dlp.v2.ListInfoTypesRequest;
-import com.google.privacy.dlp.v2.ListInfoTypesResponse;
-import java.io.IOException;
-
-public class InfoTypesList {
-
- public static void main(String[] args) throws IOException {
- listInfoTypes();
- }
-
- // Lists the types of sensitive information the DLP API supports.
- public static void listInfoTypes() throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpClient = DlpServiceClient.create()) {
-
- // Construct the request to be sent by the client
- ListInfoTypesRequest listInfoTypesRequest =
- ListInfoTypesRequest.newBuilder()
- // Only return infoTypes supported by certain parts of the API.
- // Supported filters are "supported_by=INSPECT" and "supported_by=RISK_ANALYSIS"
- // Defaults to "supported_by=INSPECT"
- .setFilter("supported_by=INSPECT")
- // BCP-47 language code for localized infoType friendly names.
- // Defaults to "en_US"
- .setLanguageCode("en-US")
- .build();
-
- // Use the client to send the API request.
- ListInfoTypesResponse response = dlpClient.listInfoTypes(listInfoTypesRequest);
-
- // Parse the response and process the results
- System.out.println("Infotypes found:");
- for (InfoTypeDescription infoTypeDescription : response.getInfoTypesList()) {
- System.out.println("Name : " + infoTypeDescription.getName());
- System.out.println("Display name : " + infoTypeDescription.getDisplayName());
- }
- }
- }
-}
-// [END dlp_list_info_types]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectBigQueryTable.java b/samples/snippets/src/main/java/dlp/snippets/InspectBigQueryTable.java
deleted file mode 100644
index ac6335c8..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectBigQueryTable.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_bigquery]
-
-import com.google.api.core.SettableApiFuture;
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.cloud.pubsub.v1.AckReplyConsumer;
-import com.google.cloud.pubsub.v1.MessageReceiver;
-import com.google.cloud.pubsub.v1.Subscriber;
-import com.google.privacy.dlp.v2.Action;
-import com.google.privacy.dlp.v2.BigQueryOptions;
-import com.google.privacy.dlp.v2.BigQueryTable;
-import com.google.privacy.dlp.v2.CreateDlpJobRequest;
-import com.google.privacy.dlp.v2.DlpJob;
-import com.google.privacy.dlp.v2.GetDlpJobRequest;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeStats;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectDataSourceDetails;
-import com.google.privacy.dlp.v2.InspectJobConfig;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.StorageConfig;
-import com.google.pubsub.v1.ProjectSubscriptionName;
-import com.google.pubsub.v1.PubsubMessage;
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-public class InspectBigQueryTable {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String bigQueryDatasetId = "your-bigquery-dataset-id";
- String bigQueryTableId = "your-bigquery-table-id";
- String topicId = "your-pubsub-topic-id";
- String subscriptionId = "your-pubsub-subscription-id";
- inspectBigQueryTable(projectId, bigQueryDatasetId, bigQueryTableId, topicId, subscriptionId);
- }
-
- // Inspects a BigQuery Table
- public static void inspectBigQueryTable(
- String projectId,
- String bigQueryDatasetId,
- String bigQueryTableId,
- String topicId,
- String subscriptionId)
- throws ExecutionException, InterruptedException, IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the BigQuery table to be inspected.
- BigQueryTable tableReference =
- BigQueryTable.newBuilder()
- .setProjectId(projectId)
- .setDatasetId(bigQueryDatasetId)
- .setTableId(bigQueryTableId)
- .build();
-
- BigQueryOptions bigQueryOptions =
- BigQueryOptions.newBuilder().setTableReference(tableReference).build();
-
- StorageConfig storageConfig =
- StorageConfig.newBuilder().setBigQueryOptions(bigQueryOptions).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- List infoTypes =
- Stream.of("PHONE_NUMBER", "EMAIL_ADDRESS", "CREDIT_CARD_NUMBER")
- .map(it -> InfoType.newBuilder().setName(it).build())
- .collect(Collectors.toList());
-
- // Specify how the content should be inspected.
- InspectConfig inspectConfig =
- InspectConfig.newBuilder().addAllInfoTypes(infoTypes).setIncludeQuote(true).build();
-
- // Specify the action that is triggered when the job completes.
- String pubSubTopic = String.format("projects/%s/topics/%s", projectId, topicId);
- Action.PublishToPubSub publishToPubSub =
- Action.PublishToPubSub.newBuilder().setTopic(pubSubTopic).build();
- Action action = Action.newBuilder().setPubSub(publishToPubSub).build();
-
- // Configure the long running job we want the service to perform.
- InspectJobConfig inspectJobConfig =
- InspectJobConfig.newBuilder()
- .setStorageConfig(storageConfig)
- .setInspectConfig(inspectConfig)
- .addActions(action)
- .build();
-
- // Create the request for the job configured above.
- CreateDlpJobRequest createDlpJobRequest =
- CreateDlpJobRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setInspectJob(inspectJobConfig)
- .build();
-
- // Use the client to send the request.
- final DlpJob dlpJob = dlp.createDlpJob(createDlpJobRequest);
- System.out.println("Job created: " + dlpJob.getName());
-
- // Set up a Pub/Sub subscriber to listen on the job completion status
- final SettableApiFuture done = SettableApiFuture.create();
-
- ProjectSubscriptionName subscriptionName =
- ProjectSubscriptionName.of(projectId, subscriptionId);
-
- MessageReceiver messageHandler =
- (PubsubMessage pubsubMessage, AckReplyConsumer ackReplyConsumer) -> {
- handleMessage(dlpJob, done, pubsubMessage, ackReplyConsumer);
- };
- Subscriber subscriber = Subscriber.newBuilder(subscriptionName, messageHandler).build();
- subscriber.startAsync();
-
- // Wait for job completion semi-synchronously
- // For long jobs, consider using a truly asynchronous execution model such as Cloud Functions
- try {
- done.get(15, TimeUnit.MINUTES);
- } catch (TimeoutException e) {
- System.out.println("Job was not completed after 15 minutes.");
- return;
- } finally {
- subscriber.stopAsync();
- subscriber.awaitTerminated();
- }
-
- // Get the latest state of the job from the service
- GetDlpJobRequest request = GetDlpJobRequest.newBuilder().setName(dlpJob.getName()).build();
- DlpJob completedJob = dlp.getDlpJob(request);
-
- // Parse the response and process results.
- System.out.println("Job status: " + completedJob.getState());
- InspectDataSourceDetails.Result result = completedJob.getInspectDetails().getResult();
- System.out.println("Findings: ");
- for (InfoTypeStats infoTypeStat : result.getInfoTypeStatsList()) {
- System.out.print("\tInfo type: " + infoTypeStat.getInfoType().getName());
- System.out.println("\tCount: " + infoTypeStat.getCount());
- }
- }
- }
-
- // handleMessage injects the job and settableFuture into the message reciever interface
- private static void handleMessage(
- DlpJob job,
- SettableApiFuture done,
- PubsubMessage pubsubMessage,
- AckReplyConsumer ackReplyConsumer) {
- String messageAttribute = pubsubMessage.getAttributesMap().get("DlpJobName");
- if (job.getName().equals(messageAttribute)) {
- done.set(true);
- ackReplyConsumer.ack();
- } else {
- ackReplyConsumer.nack();
- }
- }
-}
-// [END dlp_inspect_bigquery]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectBigQueryTableWithSampling.java b/samples/snippets/src/main/java/dlp/snippets/InspectBigQueryTableWithSampling.java
deleted file mode 100644
index 0c560653..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectBigQueryTableWithSampling.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_bigquery_with_sampling]
-
-import com.google.api.core.SettableApiFuture;
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.cloud.pubsub.v1.AckReplyConsumer;
-import com.google.cloud.pubsub.v1.MessageReceiver;
-import com.google.cloud.pubsub.v1.Subscriber;
-import com.google.privacy.dlp.v2.Action;
-import com.google.privacy.dlp.v2.BigQueryOptions;
-import com.google.privacy.dlp.v2.BigQueryOptions.SampleMethod;
-import com.google.privacy.dlp.v2.BigQueryTable;
-import com.google.privacy.dlp.v2.CreateDlpJobRequest;
-import com.google.privacy.dlp.v2.DlpJob;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.GetDlpJobRequest;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeStats;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectDataSourceDetails;
-import com.google.privacy.dlp.v2.InspectJobConfig;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.StorageConfig;
-import com.google.pubsub.v1.ProjectSubscriptionName;
-import com.google.pubsub.v1.PubsubMessage;
-import java.io.IOException;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-public class InspectBigQueryTableWithSampling {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String topicId = "your-pubsub-topic-id";
- String subscriptionId = "your-pubsub-subscription-id";
- inspectBigQueryTableWithSampling(projectId, topicId, subscriptionId);
- }
-
- // Inspects a BigQuery Table
- public static void inspectBigQueryTableWithSampling(
- String projectId, String topicId, String subscriptionId)
- throws ExecutionException, InterruptedException, IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the BigQuery table to be inspected.
- BigQueryTable tableReference =
- BigQueryTable.newBuilder()
- .setProjectId("bigquery-public-data")
- .setDatasetId("usa_names")
- .setTableId("usa_1910_current")
- .build();
-
- BigQueryOptions bigQueryOptions =
- BigQueryOptions.newBuilder()
- .setTableReference(tableReference)
- .setRowsLimit(1000)
- .setSampleMethod(SampleMethod.RANDOM_START)
- .addIdentifyingFields(FieldId.newBuilder().setName("name"))
- .build();
-
- StorageConfig storageConfig =
- StorageConfig.newBuilder().setBigQueryOptions(bigQueryOptions).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- InfoType infoType = InfoType.newBuilder().setName("PERSON_NAME").build();
-
- // Specify how the content should be inspected.
- InspectConfig inspectConfig =
- InspectConfig.newBuilder().addInfoTypes(infoType).setIncludeQuote(true).build();
-
- // Specify the action that is triggered when the job completes.
- String pubSubTopic = String.format("projects/%s/topics/%s", projectId, topicId);
- Action.PublishToPubSub publishToPubSub =
- Action.PublishToPubSub.newBuilder().setTopic(pubSubTopic).build();
- Action action = Action.newBuilder().setPubSub(publishToPubSub).build();
-
- // Configure the long running job we want the service to perform.
- InspectJobConfig inspectJobConfig =
- InspectJobConfig.newBuilder()
- .setStorageConfig(storageConfig)
- .setInspectConfig(inspectConfig)
- .addActions(action)
- .build();
-
- // Create the request for the job configured above.
- CreateDlpJobRequest createDlpJobRequest =
- CreateDlpJobRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setInspectJob(inspectJobConfig)
- .build();
-
- // Use the client to send the request.
- final DlpJob dlpJob = dlp.createDlpJob(createDlpJobRequest);
- System.out.println("Job created: " + dlpJob.getName());
-
- // Set up a Pub/Sub subscriber to listen on the job completion status
- final SettableApiFuture done = SettableApiFuture.create();
-
- ProjectSubscriptionName subscriptionName =
- ProjectSubscriptionName.of(projectId, subscriptionId);
-
- MessageReceiver messageHandler =
- (PubsubMessage pubsubMessage, AckReplyConsumer ackReplyConsumer) -> {
- handleMessage(dlpJob, done, pubsubMessage, ackReplyConsumer);
- };
- Subscriber subscriber = Subscriber.newBuilder(subscriptionName, messageHandler).build();
- subscriber.startAsync();
-
- // Wait for job completion semi-synchronously
- // For long jobs, consider using a truly asynchronous execution model such as Cloud Functions
- try {
- done.get(15, TimeUnit.MINUTES);
- } catch (TimeoutException e) {
- System.out.println("Job was not completed after 15 minutes.");
- return;
- } finally {
- subscriber.stopAsync();
- subscriber.awaitTerminated();
- }
-
- // Get the latest state of the job from the service
- GetDlpJobRequest request = GetDlpJobRequest.newBuilder().setName(dlpJob.getName()).build();
- DlpJob completedJob = dlp.getDlpJob(request);
-
- // Parse the response and process results.
- System.out.println("Job status: " + completedJob.getState());
- InspectDataSourceDetails.Result result = completedJob.getInspectDetails().getResult();
- System.out.println("Findings: ");
- for (InfoTypeStats infoTypeStat : result.getInfoTypeStatsList()) {
- System.out.print("\tInfo type: " + infoTypeStat.getInfoType().getName());
- System.out.println("\tCount: " + infoTypeStat.getCount());
- }
- }
- }
-
- // handleMessage injects the job and settableFuture into the message reciever interface
- private static void handleMessage(
- DlpJob job,
- SettableApiFuture done,
- PubsubMessage pubsubMessage,
- AckReplyConsumer ackReplyConsumer) {
- String messageAttribute = pubsubMessage.getAttributesMap().get("DlpJobName");
- if (job.getName().equals(messageAttribute)) {
- done.set(true);
- ackReplyConsumer.ack();
- } else {
- ackReplyConsumer.nack();
- }
- }
-}
-// [END dlp_inspect_bigquery_with_sampling]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectDatastoreEntity.java b/samples/snippets/src/main/java/dlp/snippets/InspectDatastoreEntity.java
deleted file mode 100644
index a37d2f18..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectDatastoreEntity.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_datastore]
-
-import com.google.api.core.SettableApiFuture;
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.cloud.pubsub.v1.AckReplyConsumer;
-import com.google.cloud.pubsub.v1.MessageReceiver;
-import com.google.cloud.pubsub.v1.Subscriber;
-import com.google.privacy.dlp.v2.Action;
-import com.google.privacy.dlp.v2.CreateDlpJobRequest;
-import com.google.privacy.dlp.v2.DatastoreOptions;
-import com.google.privacy.dlp.v2.DlpJob;
-import com.google.privacy.dlp.v2.GetDlpJobRequest;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeStats;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectDataSourceDetails;
-import com.google.privacy.dlp.v2.InspectJobConfig;
-import com.google.privacy.dlp.v2.KindExpression;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PartitionId;
-import com.google.privacy.dlp.v2.StorageConfig;
-import com.google.pubsub.v1.ProjectSubscriptionName;
-import com.google.pubsub.v1.PubsubMessage;
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-public class InspectDatastoreEntity {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String datastoreNamespace = "your-datastore-namespace";
- String datastoreKind = "your-datastore-kind";
- String topicId = "your-pubsub-topic-id";
- String subscriptionId = "your-pubsub-subscription-id";
- insepctDatastoreEntity(projectId, datastoreNamespace, datastoreKind, topicId, subscriptionId);
- }
-
- // Inspects a Datastore Entity.
- public static void insepctDatastoreEntity(
- String projectId,
- String datastoreNamespce,
- String datastoreKind,
- String topicId,
- String subscriptionId)
- throws ExecutionException, InterruptedException, IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the Datastore entity to be inspected.
- PartitionId partitionId =
- PartitionId.newBuilder()
- .setProjectId(projectId)
- .setNamespaceId(datastoreNamespce)
- .build();
- KindExpression kindExpression = KindExpression.newBuilder().setName(datastoreKind).build();
-
- DatastoreOptions datastoreOptions =
- DatastoreOptions.newBuilder().setKind(kindExpression).setPartitionId(partitionId).build();
-
- StorageConfig storageConfig =
- StorageConfig.newBuilder().setDatastoreOptions(datastoreOptions).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- List infoTypes =
- Stream.of("PHONE_NUMBER", "EMAIL_ADDRESS", "CREDIT_CARD_NUMBER")
- .map(it -> InfoType.newBuilder().setName(it).build())
- .collect(Collectors.toList());
-
- // Specify how the content should be inspected.
- InspectConfig inspectConfig =
- InspectConfig.newBuilder().addAllInfoTypes(infoTypes).setIncludeQuote(true).build();
-
- // Specify the action that is triggered when the job completes.
- String pubSubTopic = String.format("projects/%s/topics/%s", projectId, topicId);
- Action.PublishToPubSub publishToPubSub =
- Action.PublishToPubSub.newBuilder().setTopic(pubSubTopic).build();
- Action action = Action.newBuilder().setPubSub(publishToPubSub).build();
-
- // Configure the long running job we want the service to perform.
- InspectJobConfig inspectJobConfig =
- InspectJobConfig.newBuilder()
- .setStorageConfig(storageConfig)
- .setInspectConfig(inspectConfig)
- .addActions(action)
- .build();
-
- // Create the request for the job configured above.
- CreateDlpJobRequest createDlpJobRequest =
- CreateDlpJobRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setInspectJob(inspectJobConfig)
- .build();
-
- // Use the client to send the request.
- final DlpJob dlpJob = dlp.createDlpJob(createDlpJobRequest);
- System.out.println("Job created: " + dlpJob.getName());
-
- // Set up a Pub/Sub subscriber to listen on the job completion status
- final SettableApiFuture done = SettableApiFuture.create();
-
- ProjectSubscriptionName subscriptionName =
- ProjectSubscriptionName.of(projectId, subscriptionId);
-
- MessageReceiver messageHandler =
- (PubsubMessage pubsubMessage, AckReplyConsumer ackReplyConsumer) -> {
- handleMessage(dlpJob, done, pubsubMessage, ackReplyConsumer);
- };
- Subscriber subscriber = Subscriber.newBuilder(subscriptionName, messageHandler).build();
- subscriber.startAsync();
-
- // Wait for job completion semi-synchronously
- // For long jobs, consider using a truly asynchronous execution model such as Cloud Functions
- try {
- done.get(15, TimeUnit.MINUTES);
- } catch (TimeoutException e) {
- System.out.println("Job was not completed after 15 minutes.");
- return;
- } finally {
- subscriber.stopAsync();
- subscriber.awaitTerminated();
- }
-
- // Get the latest state of the job from the service
- GetDlpJobRequest request = GetDlpJobRequest.newBuilder().setName(dlpJob.getName()).build();
- DlpJob completedJob = dlp.getDlpJob(request);
-
- // Parse the response and process results.
- System.out.println("Job status: " + completedJob.getState());
- InspectDataSourceDetails.Result result = completedJob.getInspectDetails().getResult();
- System.out.println("Findings: ");
- for (InfoTypeStats infoTypeStat : result.getInfoTypeStatsList()) {
- System.out.print("\tInfo type: " + infoTypeStat.getInfoType().getName());
- System.out.println("\tCount: " + infoTypeStat.getCount());
- }
- }
- }
-
- // handleMessage injects the job and settableFuture into the message reciever interface
- private static void handleMessage(
- DlpJob job,
- SettableApiFuture done,
- PubsubMessage pubsubMessage,
- AckReplyConsumer ackReplyConsumer) {
- String messageAttribute = pubsubMessage.getAttributesMap().get("DlpJobName");
- if (job.getName().equals(messageAttribute)) {
- done.set(true);
- ackReplyConsumer.ack();
- } else {
- ackReplyConsumer.nack();
- }
- }
-}
-// [END dlp_inspect_datastore]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectGcsFile.java b/samples/snippets/src/main/java/dlp/snippets/InspectGcsFile.java
deleted file mode 100644
index d6efdfa9..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectGcsFile.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_gcs]
-
-import com.google.api.core.SettableApiFuture;
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.cloud.pubsub.v1.AckReplyConsumer;
-import com.google.cloud.pubsub.v1.MessageReceiver;
-import com.google.cloud.pubsub.v1.Subscriber;
-import com.google.privacy.dlp.v2.Action;
-import com.google.privacy.dlp.v2.CloudStorageOptions;
-import com.google.privacy.dlp.v2.CloudStorageOptions.FileSet;
-import com.google.privacy.dlp.v2.CreateDlpJobRequest;
-import com.google.privacy.dlp.v2.DlpJob;
-import com.google.privacy.dlp.v2.GetDlpJobRequest;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeStats;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectDataSourceDetails;
-import com.google.privacy.dlp.v2.InspectJobConfig;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.StorageConfig;
-import com.google.pubsub.v1.ProjectSubscriptionName;
-import com.google.pubsub.v1.PubsubMessage;
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-public class InspectGcsFile {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String gcsUri = "gs://" + "your-bucket-name" + "/path/to/your/file.txt";
- String topicId = "your-pubsub-topic-id";
- String subscriptionId = "your-pubsub-subscription-id";
- inspectGcsFile(projectId, gcsUri, topicId, subscriptionId);
- }
-
- // Inspects a file in a Google Cloud Storage Bucket.
- public static void inspectGcsFile(
- String projectId, String gcsUri, String topicId, String subscriptionId)
- throws ExecutionException, InterruptedException, IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the GCS file to be inspected.
- CloudStorageOptions cloudStorageOptions =
- CloudStorageOptions.newBuilder().setFileSet(FileSet.newBuilder().setUrl(gcsUri)).build();
-
- StorageConfig storageConfig =
- StorageConfig.newBuilder().setCloudStorageOptions(cloudStorageOptions).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- List infoTypes =
- Stream.of("PHONE_NUMBER", "EMAIL_ADDRESS", "CREDIT_CARD_NUMBER")
- .map(it -> InfoType.newBuilder().setName(it).build())
- .collect(Collectors.toList());
-
- // Specify how the content should be inspected.
- InspectConfig inspectConfig =
- InspectConfig.newBuilder().addAllInfoTypes(infoTypes).setIncludeQuote(true).build();
-
- // Specify the action that is triggered when the job completes.
- String pubSubTopic = String.format("projects/%s/topics/%s", projectId, topicId);
- Action.PublishToPubSub publishToPubSub =
- Action.PublishToPubSub.newBuilder().setTopic(pubSubTopic).build();
- Action action = Action.newBuilder().setPubSub(publishToPubSub).build();
-
- // Configure the long running job we want the service to perform.
- InspectJobConfig inspectJobConfig =
- InspectJobConfig.newBuilder()
- .setStorageConfig(storageConfig)
- .setInspectConfig(inspectConfig)
- .addActions(action)
- .build();
-
- // Create the request for the job configured above.
- CreateDlpJobRequest createDlpJobRequest =
- CreateDlpJobRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setInspectJob(inspectJobConfig)
- .build();
-
- // Use the client to send the request.
- final DlpJob dlpJob = dlp.createDlpJob(createDlpJobRequest);
- System.out.println("Job created: " + dlpJob.getName());
-
- // Set up a Pub/Sub subscriber to listen on the job completion status
- final SettableApiFuture done = SettableApiFuture.create();
-
- ProjectSubscriptionName subscriptionName =
- ProjectSubscriptionName.of(projectId, subscriptionId);
-
- MessageReceiver messageHandler =
- (PubsubMessage pubsubMessage, AckReplyConsumer ackReplyConsumer) -> {
- handleMessage(dlpJob, done, pubsubMessage, ackReplyConsumer);
- };
- Subscriber subscriber = Subscriber.newBuilder(subscriptionName, messageHandler).build();
- subscriber.startAsync();
-
- // Wait for job completion semi-synchronously
- // For long jobs, consider using a truly asynchronous execution model such as Cloud Functions
- try {
- done.get(15, TimeUnit.MINUTES);
- } catch (TimeoutException e) {
- System.out.println("Job was not completed after 15 minutes.");
- return;
- } finally {
- subscriber.stopAsync();
- subscriber.awaitTerminated();
- }
-
- // Get the latest state of the job from the service
- GetDlpJobRequest request = GetDlpJobRequest.newBuilder().setName(dlpJob.getName()).build();
- DlpJob completedJob = dlp.getDlpJob(request);
-
- // Parse the response and process results.
- System.out.println("Job status: " + completedJob.getState());
- InspectDataSourceDetails.Result result = completedJob.getInspectDetails().getResult();
- System.out.println("Findings: ");
- for (InfoTypeStats infoTypeStat : result.getInfoTypeStatsList()) {
- System.out.print("\tInfo type: " + infoTypeStat.getInfoType().getName());
- System.out.println("\tCount: " + infoTypeStat.getCount());
- }
- }
- }
-
- // handleMessage injects the job and settableFuture into the message reciever interface
- private static void handleMessage(
- DlpJob job,
- SettableApiFuture done,
- PubsubMessage pubsubMessage,
- AckReplyConsumer ackReplyConsumer) {
- String messageAttribute = pubsubMessage.getAttributesMap().get("DlpJobName");
- if (job.getName().equals(messageAttribute)) {
- done.set(true);
- ackReplyConsumer.ack();
- } else {
- ackReplyConsumer.nack();
- }
- }
-}
-// [END dlp_inspect_gcs]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectGcsFileWithSampling.java b/samples/snippets/src/main/java/dlp/snippets/InspectGcsFileWithSampling.java
deleted file mode 100644
index 1c08e508..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectGcsFileWithSampling.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_gcs_with_sampling]
-
-import com.google.api.core.SettableApiFuture;
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.cloud.pubsub.v1.AckReplyConsumer;
-import com.google.cloud.pubsub.v1.MessageReceiver;
-import com.google.cloud.pubsub.v1.Subscriber;
-import com.google.privacy.dlp.v2.Action;
-import com.google.privacy.dlp.v2.CloudStorageOptions;
-import com.google.privacy.dlp.v2.CloudStorageOptions.FileSet;
-import com.google.privacy.dlp.v2.CloudStorageOptions.SampleMethod;
-import com.google.privacy.dlp.v2.CreateDlpJobRequest;
-import com.google.privacy.dlp.v2.DlpJob;
-import com.google.privacy.dlp.v2.FileType;
-import com.google.privacy.dlp.v2.GetDlpJobRequest;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeStats;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectDataSourceDetails;
-import com.google.privacy.dlp.v2.InspectJobConfig;
-import com.google.privacy.dlp.v2.Likelihood;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.StorageConfig;
-import com.google.pubsub.v1.ProjectSubscriptionName;
-import com.google.pubsub.v1.PubsubMessage;
-import java.io.IOException;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-public class InspectGcsFileWithSampling {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String gcsUri = "gs://" + "your-bucket-name" + "/path/to/your/file.txt";
- String topicId = "your-pubsub-topic-id";
- String subscriptionId = "your-pubsub-subscription-id";
- inspectGcsFileWithSampling(projectId, gcsUri, topicId, subscriptionId);
- }
-
- // Inspects a file in a Google Cloud Storage Bucket.
- public static void inspectGcsFileWithSampling(
- String projectId, String gcsUri, String topicId, String subscriptionId)
- throws ExecutionException, InterruptedException, IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the GCS file to be inspected and sampling configuration
- CloudStorageOptions cloudStorageOptions =
- CloudStorageOptions.newBuilder()
- .setFileSet(FileSet.newBuilder().setUrl(gcsUri))
- .setBytesLimitPerFile(200)
- .addFileTypes(FileType.TEXT_FILE)
- .setFilesLimitPercent(90)
- .setSampleMethod(SampleMethod.RANDOM_START)
- .build();
-
- StorageConfig storageConfig =
- StorageConfig.newBuilder().setCloudStorageOptions(cloudStorageOptions).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- InfoType infoType = InfoType.newBuilder().setName("PERSON_NAME").build();
-
- // Specify how the content should be inspected.
- InspectConfig inspectConfig =
- InspectConfig.newBuilder()
- .addInfoTypes(infoType)
- .setExcludeInfoTypes(true)
- .setIncludeQuote(true)
- .setMinLikelihood(Likelihood.POSSIBLE)
- .build();
-
- // Specify the action that is triggered when the job completes.
- String pubSubTopic = String.format("projects/%s/topics/%s", projectId, topicId);
- Action.PublishToPubSub publishToPubSub =
- Action.PublishToPubSub.newBuilder().setTopic(pubSubTopic).build();
- Action action = Action.newBuilder().setPubSub(publishToPubSub).build();
-
- // Configure the long running job we want the service to perform.
- InspectJobConfig inspectJobConfig =
- InspectJobConfig.newBuilder()
- .setStorageConfig(storageConfig)
- .setInspectConfig(inspectConfig)
- .addActions(action)
- .build();
-
- // Create the request for the job configured above.
- CreateDlpJobRequest createDlpJobRequest =
- CreateDlpJobRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setInspectJob(inspectJobConfig)
- .build();
-
- // Use the client to send the request.
- final DlpJob dlpJob = dlp.createDlpJob(createDlpJobRequest);
- System.out.println("Job created: " + dlpJob.getName());
-
- // Set up a Pub/Sub subscriber to listen on the job completion status
- final SettableApiFuture done = SettableApiFuture.create();
-
- ProjectSubscriptionName subscriptionName =
- ProjectSubscriptionName.of(projectId, subscriptionId);
-
- MessageReceiver messageHandler =
- (PubsubMessage pubsubMessage, AckReplyConsumer ackReplyConsumer) -> {
- handleMessage(dlpJob, done, pubsubMessage, ackReplyConsumer);
- };
- Subscriber subscriber = Subscriber.newBuilder(subscriptionName, messageHandler).build();
- subscriber.startAsync();
-
- // Wait for job completion semi-synchronously
- // For long jobs, consider using a truly asynchronous execution model such as Cloud Functions
- try {
- done.get(15, TimeUnit.MINUTES);
- } catch (TimeoutException e) {
- System.out.println("Job was not completed after 15 minutes.");
- return;
- } finally {
- subscriber.stopAsync();
- subscriber.awaitTerminated();
- }
-
- // Get the latest state of the job from the service
- GetDlpJobRequest request = GetDlpJobRequest.newBuilder().setName(dlpJob.getName()).build();
- DlpJob completedJob = dlp.getDlpJob(request);
-
- // Parse the response and process results.
- System.out.println("Job status: " + completedJob.getState());
- InspectDataSourceDetails.Result result = completedJob.getInspectDetails().getResult();
- System.out.println("Findings: ");
- for (InfoTypeStats infoTypeStat : result.getInfoTypeStatsList()) {
- System.out.print("\tInfo type: " + infoTypeStat.getInfoType().getName());
- System.out.println("\tCount: " + infoTypeStat.getCount());
- }
- }
- }
-
- // handleMessage injects the job and settableFuture into the message reciever interface
- private static void handleMessage(
- DlpJob job,
- SettableApiFuture done,
- PubsubMessage pubsubMessage,
- AckReplyConsumer ackReplyConsumer) {
- String messageAttribute = pubsubMessage.getAttributesMap().get("DlpJobName");
- if (job.getName().equals(messageAttribute)) {
- done.set(true);
- ackReplyConsumer.ack();
- } else {
- ackReplyConsumer.nack();
- }
- }
-}
-// [END dlp_inspect_gcs_with_sampling]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectImageFile.java b/samples/snippets/src/main/java/dlp/snippets/InspectImageFile.java
deleted file mode 100644
index 2251abbf..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectImageFile.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_image_file]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.protobuf.ByteString;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class InspectImageFile {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String filePath = "path/to/image.png";
- inspectImageFile(projectId, filePath);
- }
-
- // Inspects the specified image file.
- public static void inspectImageFile(String projectId, String filePath) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ByteString fileBytes = ByteString.readFrom(new FileInputStream(filePath));
- ByteContentItem byteItem =
- ByteContentItem.newBuilder().setType(BytesType.IMAGE).setData(fileBytes).build();
- ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();
-
- // Specify the type of info the inspection will look for.
- List infoTypes = new ArrayList<>();
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- for (String typeName : new String[] {"PHONE_NUMBER", "EMAIL_ADDRESS", "CREDIT_CARD_NUMBER"}) {
- infoTypes.add(InfoType.newBuilder().setName(typeName).build());
- }
-
- // Construct the configuration for the Inspect request.
- InspectConfig config =
- InspectConfig.newBuilder().addAllInfoTypes(infoTypes).setIncludeQuote(true).build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results.
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_image_file]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectImageFileAllInfoTypes.java b/samples/snippets/src/main/java/dlp/snippets/InspectImageFileAllInfoTypes.java
deleted file mode 100644
index 87847fb7..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectImageFileAllInfoTypes.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_image_all_infotypes]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.protobuf.ByteString;
-import java.io.FileInputStream;
-import java.io.IOException;
-
-class InspectImageFileAllInfoTypes {
-
- public static void main(String[] args) throws IOException {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "my-project-id";
- String inputPath = "src/test/resources/sensitive-data-image.jpeg";
- inspectImageFileAllInfoTypes(projectId, inputPath);
- }
-
- static void inspectImageFileAllInfoTypes(String projectId, String inputPath) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the content to be inspected.
- ByteString fileBytes = ByteString.readFrom(new FileInputStream(inputPath));
- ByteContentItem byteItem =
- ByteContentItem.newBuilder().setType(BytesType.IMAGE_JPEG).setData(fileBytes).build();
-
- // Construct the Inspect request to be sent by the client.
- // Do not specify the type of info to inspect.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(ContentItem.newBuilder().setByteItem(byteItem).build())
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results.
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_image_all_infotypes]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectImageFileListedInfoTypes.java b/samples/snippets/src/main/java/dlp/snippets/InspectImageFileListedInfoTypes.java
deleted file mode 100644
index 85aa82ac..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectImageFileListedInfoTypes.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_image_listed_infotypes]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.protobuf.ByteString;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-class InspectImageFileListedInfoTypes {
-
- public static void main(String[] args) throws IOException {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "my-project-id";
- String inputPath = "src/test/resources/sensitive-data-image.jpeg";
- inspectImageFileListedInfoTypes(projectId, inputPath);
- }
-
- static void inspectImageFileListedInfoTypes(String projectId, String inputPath)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the content to be inspected.
- ByteString fileBytes = ByteString.readFrom(new FileInputStream(inputPath));
- ByteContentItem byteItem =
- ByteContentItem.newBuilder().setType(BytesType.IMAGE_JPEG).setData(fileBytes).build();
-
- // Specify the type of info the inspection will look for.
- List infoTypes = new ArrayList<>();
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- for (String typeName :
- new String[] {"US_SOCIAL_SECURITY_NUMBER", "EMAIL_ADDRESS", "PHONE_NUMBER"}) {
- infoTypes.add(InfoType.newBuilder().setName(typeName).build());
- }
-
- // Construct the configuration for the Inspect request.
- InspectConfig inspectConfig = InspectConfig.newBuilder().addAllInfoTypes(infoTypes).build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(ContentItem.newBuilder().setByteItem(byteItem).build())
- .setInspectConfig(inspectConfig)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results.
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_image_listed_infotypes]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectPhoneNumber.java b/samples/snippets/src/main/java/dlp/snippets/InspectPhoneNumber.java
deleted file mode 100644
index c707088c..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectPhoneNumber.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_phone_number]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.Likelihood;
-import com.google.privacy.dlp.v2.LocationName;
-import java.io.IOException;
-
-public class InspectPhoneNumber {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect = "My name is Gary and my email is gary@example.com";
- inspectString(projectId, textToInspect);
- }
-
- // Inspects the provided text.
- public static void inspectString(String projectId, String textToInspect) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ContentItem item = ContentItem.newBuilder().setValue(textToInspect).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- InfoType infoType = InfoType.newBuilder().setName("PHONE_NUMBER").build();
-
- // Construct the configuration for the Inspect request.
- InspectConfig config =
- InspectConfig.newBuilder()
- .setIncludeQuote(true)
- .setMinLikelihood(Likelihood.POSSIBLE)
- .addInfoTypes(infoType)
- .build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_phone_number]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectString.java b/samples/snippets/src/main/java/dlp/snippets/InspectString.java
deleted file mode 100644
index 28f0d086..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectString.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_string]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class InspectString {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect = "My name is Gary and my email is gary@example.com";
- inspectString(projectId, textToInspect);
- }
-
- // Inspects the provided text.
- public static void inspectString(String projectId, String textToInspect) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ByteContentItem byteItem =
- ByteContentItem.newBuilder()
- .setType(BytesType.TEXT_UTF8)
- .setData(ByteString.copyFromUtf8(textToInspect))
- .build();
- ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();
-
- // Specify the type of info the inspection will look for.
- List infoTypes = new ArrayList<>();
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- for (String typeName : new String[] {"PHONE_NUMBER", "EMAIL_ADDRESS", "CREDIT_CARD_NUMBER"}) {
- infoTypes.add(InfoType.newBuilder().setName(typeName).build());
- }
-
- // Construct the configuration for the Inspect request.
- InspectConfig config =
- InspectConfig.newBuilder().addAllInfoTypes(infoTypes).setIncludeQuote(true).build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_string]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectStringCustomExcludingSubstring.java b/samples/snippets/src/main/java/dlp/snippets/InspectStringCustomExcludingSubstring.java
deleted file mode 100644
index 015367d9..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectStringCustomExcludingSubstring.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_string_custom_excluding_substring]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CustomInfoType;
-import com.google.privacy.dlp.v2.CustomInfoType.Dictionary;
-import com.google.privacy.dlp.v2.CustomInfoType.Dictionary.WordList;
-import com.google.privacy.dlp.v2.CustomInfoType.Regex;
-import com.google.privacy.dlp.v2.ExclusionRule;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.InspectionRule;
-import com.google.privacy.dlp.v2.InspectionRuleSet;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.MatchingType;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-
-public class InspectStringCustomExcludingSubstring {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect = "Name: Doe, John. Name: Example, Jimmy";
- String customDetectorPattern = "[A-Z][a-z]{1,15}, [A-Z][a-z]{1,15}";
- List excludedSubstringList = Arrays.asList("Jimmy");
- inspectStringCustomExcludingSubstring(
- projectId, textToInspect, customDetectorPattern, excludedSubstringList);
- }
-
- // Inspects the provided text, avoiding matches specified in the exclusion list.
- public static void inspectStringCustomExcludingSubstring(
- String projectId,
- String textToInspect,
- String customDetectorPattern,
- List excludedSubstringList)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ByteContentItem byteItem =
- ByteContentItem.newBuilder()
- .setType(BytesType.TEXT_UTF8)
- .setData(ByteString.copyFromUtf8(textToInspect))
- .build();
- ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();
-
- // Specify the type of info the inspection will look for.
- InfoType infoType = InfoType.newBuilder().setName("CUSTOM_NAME_DETECTOR").build();
- CustomInfoType customInfoType =
- CustomInfoType.newBuilder()
- .setInfoType(infoType)
- .setRegex(Regex.newBuilder().setPattern(customDetectorPattern))
- .build();
-
- // Exclude partial matches from the specified excludedSubstringList.
- ExclusionRule exclusionRule =
- ExclusionRule.newBuilder()
- .setMatchingType(MatchingType.MATCHING_TYPE_PARTIAL_MATCH)
- .setDictionary(
- Dictionary.newBuilder()
- .setWordList(WordList.newBuilder().addAllWords(excludedSubstringList)))
- .build();
-
- // Construct a ruleset that applies the exclusion rule to the EMAIL_ADDRESSES infotype.
- InspectionRuleSet ruleSet =
- InspectionRuleSet.newBuilder()
- .addInfoTypes(infoType)
- .addRules(InspectionRule.newBuilder().setExclusionRule(exclusionRule))
- .build();
-
- // Construct the configuration for the Inspect request, including the ruleset.
- InspectConfig config =
- InspectConfig.newBuilder()
- .addCustomInfoTypes(customInfoType)
- .setIncludeQuote(true)
- .addRuleSet(ruleSet)
- .build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_string_custom_excluding_substring]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectStringCustomHotword.java b/samples/snippets/src/main/java/dlp/snippets/InspectStringCustomHotword.java
deleted file mode 100644
index 254d8f86..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectStringCustomHotword.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_string_custom_hotword]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule;
-import com.google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustment;
-import com.google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity;
-import com.google.privacy.dlp.v2.CustomInfoType.Regex;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.InspectionRule;
-import com.google.privacy.dlp.v2.InspectionRuleSet;
-import com.google.privacy.dlp.v2.Likelihood;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-
-public class InspectStringCustomHotword {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect = "patient name: John Doe";
- String customHotword = "patient";
- inspectStringCustomHotword(projectId, textToInspect, customHotword);
- }
-
- // Inspects the provided text.
- public static void inspectStringCustomHotword(
- String projectId, String textToInspect, String customHotword) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ByteContentItem byteItem =
- ByteContentItem.newBuilder()
- .setType(BytesType.TEXT_UTF8)
- .setData(ByteString.copyFromUtf8(textToInspect))
- .build();
- ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();
-
- // Increase likelihood of matches that have customHotword nearby
- HotwordRule hotwordRule =
- HotwordRule.newBuilder()
- .setHotwordRegex(Regex.newBuilder().setPattern(customHotword))
- .setProximity(Proximity.newBuilder().setWindowBefore(50))
- .setLikelihoodAdjustment(
- LikelihoodAdjustment.newBuilder().setFixedLikelihood(Likelihood.VERY_LIKELY))
- .build();
-
- // Construct a ruleset that applies the hotword rule to the PERSON_NAME infotype.
- InspectionRuleSet ruleSet =
- InspectionRuleSet.newBuilder()
- .addInfoTypes(InfoType.newBuilder().setName("PERSON_NAME").build())
- .addRules(InspectionRule.newBuilder().setHotwordRule(hotwordRule))
- .build();
-
- // Construct the configuration for the Inspect request.
- InspectConfig config =
- InspectConfig.newBuilder()
- .addInfoTypes(InfoType.newBuilder().setName("PERSON_NAME").build())
- .setIncludeQuote(true)
- .addRuleSet(ruleSet)
- .setMinLikelihood(Likelihood.VERY_LIKELY)
- .build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_string_custom_hotword]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectStringCustomOmitOverlap.java b/samples/snippets/src/main/java/dlp/snippets/InspectStringCustomOmitOverlap.java
deleted file mode 100644
index 0cf017f3..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectStringCustomOmitOverlap.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_string_custom_omit_overlap]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CustomInfoType;
-import com.google.privacy.dlp.v2.CustomInfoType.ExclusionType;
-import com.google.privacy.dlp.v2.CustomInfoType.Regex;
-import com.google.privacy.dlp.v2.ExcludeInfoTypes;
-import com.google.privacy.dlp.v2.ExclusionRule;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.InspectionRule;
-import com.google.privacy.dlp.v2.InspectionRuleSet;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.MatchingType;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-
-public class InspectStringCustomOmitOverlap {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect = "Name: Jane Doe. Name: Larry Page.";
- inspectStringCustomOmitOverlap(projectId, textToInspect);
- }
-
- // Inspects the provided text, avoiding matches specified in the exclusion list.
- public static void inspectStringCustomOmitOverlap(String projectId, String textToInspect)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ByteContentItem byteItem =
- ByteContentItem.newBuilder()
- .setType(BytesType.TEXT_UTF8)
- .setData(ByteString.copyFromUtf8(textToInspect))
- .build();
- ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();
-
- // Construct the custom infotype.
- CustomInfoType customInfoType =
- CustomInfoType.newBuilder()
- .setInfoType(InfoType.newBuilder().setName("VIP_DETECTOR"))
- .setRegex(Regex.newBuilder().setPattern("Larry Page|Sergey Brin"))
- .setExclusionType(ExclusionType.EXCLUSION_TYPE_EXCLUDE)
- .build();
-
- // Exclude matches that also match the custom infotype.
- ExclusionRule exclusionRule =
- ExclusionRule.newBuilder()
- .setExcludeInfoTypes(
- ExcludeInfoTypes.newBuilder().addInfoTypes(customInfoType.getInfoType()))
- .setMatchingType(MatchingType.MATCHING_TYPE_FULL_MATCH)
- .build();
-
- // Construct a ruleset that applies the exclusion rule to the PERSON_NAME infotype.
- InspectionRuleSet ruleSet =
- InspectionRuleSet.newBuilder()
- .addInfoTypes(InfoType.newBuilder().setName("PERSON_NAME"))
- .addRules(InspectionRule.newBuilder().setExclusionRule(exclusionRule))
- .build();
-
- // Construct the configuration for the Inspect request, including the ruleset.
- InspectConfig config =
- InspectConfig.newBuilder()
- .addInfoTypes(InfoType.newBuilder().setName("PERSON_NAME"))
- .addCustomInfoTypes(customInfoType)
- .setIncludeQuote(true)
- .addRuleSet(ruleSet)
- .build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_string_custom_omit_overlap]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectStringMultipleRules.java b/samples/snippets/src/main/java/dlp/snippets/InspectStringMultipleRules.java
deleted file mode 100644
index 821cfab1..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectStringMultipleRules.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_string_multiple_rules]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule;
-import com.google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustment;
-import com.google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity;
-import com.google.privacy.dlp.v2.CustomInfoType.Dictionary;
-import com.google.privacy.dlp.v2.CustomInfoType.Dictionary.WordList;
-import com.google.privacy.dlp.v2.CustomInfoType.Regex;
-import com.google.privacy.dlp.v2.ExclusionRule;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.InspectionRule;
-import com.google.privacy.dlp.v2.InspectionRuleSet;
-import com.google.privacy.dlp.v2.Likelihood;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.MatchingType;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-
-public class InspectStringMultipleRules {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect = "patient: Jane Doe";
- inspectStringMultipleRules(projectId, textToInspect);
- }
-
- // Inspects the provided text, avoiding matches specified in the exclusion list.
- public static void inspectStringMultipleRules(String projectId, String textToInspect)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ByteContentItem byteItem =
- ByteContentItem.newBuilder()
- .setType(BytesType.TEXT_UTF8)
- .setData(ByteString.copyFromUtf8(textToInspect))
- .build();
- ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();
-
- // Construct hotword rules
- HotwordRule patientRule =
- HotwordRule.newBuilder()
- .setHotwordRegex(Regex.newBuilder().setPattern("patient"))
- .setProximity(Proximity.newBuilder().setWindowBefore(10))
- .setLikelihoodAdjustment(
- LikelihoodAdjustment.newBuilder().setFixedLikelihood(Likelihood.VERY_LIKELY))
- .build();
-
- HotwordRule doctorRule =
- HotwordRule.newBuilder()
- .setHotwordRegex(Regex.newBuilder().setPattern("doctor"))
- .setProximity(Proximity.newBuilder().setWindowBefore(10))
- .setLikelihoodAdjustment(
- LikelihoodAdjustment.newBuilder().setFixedLikelihood(Likelihood.UNLIKELY))
- .build();
-
- // Construct exclusion rules
- ExclusionRule quasimodoRule =
- ExclusionRule.newBuilder()
- .setDictionary(
- Dictionary.newBuilder().setWordList(WordList.newBuilder().addWords("Quasimodo")))
- .setMatchingType(MatchingType.MATCHING_TYPE_PARTIAL_MATCH)
- .build();
-
- ExclusionRule redactedRule =
- ExclusionRule.newBuilder()
- .setRegex(Regex.newBuilder().setPattern("REDACTED"))
- .setMatchingType(MatchingType.MATCHING_TYPE_PARTIAL_MATCH)
- .build();
-
- // Construct a ruleset that applies the rules to the PERSON_NAME infotype.
- InspectionRuleSet ruleSet =
- InspectionRuleSet.newBuilder()
- .addInfoTypes(InfoType.newBuilder().setName("PERSON_NAME"))
- .addRules(InspectionRule.newBuilder().setHotwordRule(patientRule))
- .addRules(InspectionRule.newBuilder().setHotwordRule(doctorRule))
- .addRules(InspectionRule.newBuilder().setExclusionRule(quasimodoRule))
- .addRules(InspectionRule.newBuilder().setExclusionRule(redactedRule))
- .build();
-
- // Construct the configuration for the Inspect request, including the ruleset.
- InspectConfig config =
- InspectConfig.newBuilder()
- .addInfoTypes(InfoType.newBuilder().setName("PERSON_NAME"))
- .setIncludeQuote(true)
- .addRuleSet(ruleSet)
- .build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_string_multiple_rules]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectStringOmitOverlap.java b/samples/snippets/src/main/java/dlp/snippets/InspectStringOmitOverlap.java
deleted file mode 100644
index 83e83076..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectStringOmitOverlap.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_string_omit_overlap]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.ExcludeInfoTypes;
-import com.google.privacy.dlp.v2.ExclusionRule;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.InspectionRule;
-import com.google.privacy.dlp.v2.InspectionRuleSet;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.MatchingType;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class InspectStringOmitOverlap {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect = "james@example.com";
- inspectStringOmitOverlap(projectId, textToInspect);
- }
-
- // Inspects the provided text, avoiding matches specified in the exclusion list.
- public static void inspectStringOmitOverlap(String projectId, String textToInspect)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ByteContentItem byteItem =
- ByteContentItem.newBuilder()
- .setType(BytesType.TEXT_UTF8)
- .setData(ByteString.copyFromUtf8(textToInspect))
- .build();
- ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types.
- List infoTypes = new ArrayList<>();
- for (String typeName : new String[] {"PERSON_NAME", "EMAIL_ADDRESS"}) {
- infoTypes.add(InfoType.newBuilder().setName(typeName).build());
- }
-
- // Exclude EMAIL_ADDRESS matches
- ExclusionRule exclusionRule =
- ExclusionRule.newBuilder()
- .setExcludeInfoTypes(
- ExcludeInfoTypes.newBuilder()
- .addInfoTypes(InfoType.newBuilder().setName("EMAIL_ADDRESS")))
- .setMatchingType(MatchingType.MATCHING_TYPE_PARTIAL_MATCH)
- .build();
-
- // Construct a ruleset that applies the exclusion rule to the PERSON_NAME infotype.
- // If a PERSON_NAME match overlaps with an EMAIL_ADDRESS match, the PERSON_NAME match will
- // be excluded.
- InspectionRuleSet ruleSet =
- InspectionRuleSet.newBuilder()
- .addInfoTypes(InfoType.newBuilder().setName("PERSON_NAME"))
- .addRules(InspectionRule.newBuilder().setExclusionRule(exclusionRule))
- .build();
-
- // Construct the configuration for the Inspect request, including the ruleset.
- InspectConfig config =
- InspectConfig.newBuilder()
- .addAllInfoTypes(infoTypes)
- .setIncludeQuote(true)
- .addRuleSet(ruleSet)
- .build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_string_omit_overlap]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionDict.java b/samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionDict.java
deleted file mode 100644
index 3db32581..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionDict.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_string_with_exclusion_dict]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CustomInfoType.Dictionary;
-import com.google.privacy.dlp.v2.CustomInfoType.Dictionary.WordList;
-import com.google.privacy.dlp.v2.ExclusionRule;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.InspectionRule;
-import com.google.privacy.dlp.v2.InspectionRuleSet;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.MatchingType;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-public class InspectStringWithExclusionDict {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect = "Some email addresses: gary@example.com, example@example.com";
- List excludedMatchList = Arrays.asList("example@example.com");
- inspectStringWithExclusionDict(projectId, textToInspect, excludedMatchList);
- }
-
- // Inspects the provided text, avoiding matches specified in the exclusion list.
- public static void inspectStringWithExclusionDict(
- String projectId, String textToInspect, List excludedMatchList) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ByteContentItem byteItem =
- ByteContentItem.newBuilder()
- .setType(BytesType.TEXT_UTF8)
- .setData(ByteString.copyFromUtf8(textToInspect))
- .build();
- ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types.
- List infoTypes = new ArrayList<>();
- for (String typeName : new String[] {"PHONE_NUMBER", "EMAIL_ADDRESS", "CREDIT_CARD_NUMBER"}) {
- infoTypes.add(InfoType.newBuilder().setName(typeName).build());
- }
-
- // Exclude matches from the specified excludedMatchList.
- ExclusionRule exclusionRule =
- ExclusionRule.newBuilder()
- .setMatchingType(MatchingType.MATCHING_TYPE_FULL_MATCH)
- .setDictionary(
- Dictionary.newBuilder()
- .setWordList(WordList.newBuilder().addAllWords(excludedMatchList)))
- .build();
-
- // Construct a ruleset that applies the exclusion rule to the EMAIL_ADDRESSES infotype.
- InspectionRuleSet ruleSet =
- InspectionRuleSet.newBuilder()
- .addInfoTypes(InfoType.newBuilder().setName("EMAIL_ADDRESS"))
- .addRules(InspectionRule.newBuilder().setExclusionRule(exclusionRule))
- .build();
-
- // Construct the configuration for the Inspect request, including the ruleset.
- InspectConfig config =
- InspectConfig.newBuilder()
- .addAllInfoTypes(infoTypes)
- .setIncludeQuote(true)
- .addRuleSet(ruleSet)
- .build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_string_with_exclusion_dict]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionDictSubstring.java b/samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionDictSubstring.java
deleted file mode 100644
index 0fc065f0..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionDictSubstring.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_string_with_exclusion_dict_substring]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CustomInfoType.Dictionary;
-import com.google.privacy.dlp.v2.CustomInfoType.Dictionary.WordList;
-import com.google.privacy.dlp.v2.ExclusionRule;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.InspectionRule;
-import com.google.privacy.dlp.v2.InspectionRuleSet;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.MatchingType;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-public class InspectStringWithExclusionDictSubstring {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect = "Some email addresses: gary@example.com, TEST@example.com";
- List excludedSubstringList = Arrays.asList("TEST");
- inspectStringWithExclusionDictSubstring(projectId, textToInspect, excludedSubstringList);
- }
-
- // Inspects the provided text, avoiding matches specified in the exclusion list.
- public static void inspectStringWithExclusionDictSubstring(
- String projectId, String textToInspect, List excludedSubstringList)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ByteContentItem byteItem =
- ByteContentItem.newBuilder()
- .setType(BytesType.TEXT_UTF8)
- .setData(ByteString.copyFromUtf8(textToInspect))
- .build();
- ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types.
- List infoTypes = new ArrayList<>();
- for (String typeName :
- new String[] {"EMAIL_ADDRESS", "DOMAIN_NAME", "PHONE_NUMBER", "PERSON_NAME"}) {
- infoTypes.add(InfoType.newBuilder().setName(typeName).build());
- }
-
- // Exclude partial matches from the specified excludedSubstringList.
- ExclusionRule exclusionRule =
- ExclusionRule.newBuilder()
- .setMatchingType(MatchingType.MATCHING_TYPE_PARTIAL_MATCH)
- .setDictionary(
- Dictionary.newBuilder()
- .setWordList(WordList.newBuilder().addAllWords(excludedSubstringList)))
- .build();
-
- // Construct a ruleset that applies the exclusion rule to the EMAIL_ADDRESSES infotype.
- InspectionRuleSet ruleSet =
- InspectionRuleSet.newBuilder()
- .addAllInfoTypes(infoTypes)
- .addRules(InspectionRule.newBuilder().setExclusionRule(exclusionRule))
- .build();
-
- // Construct the configuration for the Inspect request, including the ruleset.
- InspectConfig config =
- InspectConfig.newBuilder()
- .addAllInfoTypes(infoTypes)
- .setIncludeQuote(true)
- .addRuleSet(ruleSet)
- .build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_string_with_exclusion_dict_substring]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionRegex.java b/samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionRegex.java
deleted file mode 100644
index f609a752..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectStringWithExclusionRegex.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_string_with_exclusion_regex]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CustomInfoType.Regex;
-import com.google.privacy.dlp.v2.ExclusionRule;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.InspectionRule;
-import com.google.privacy.dlp.v2.InspectionRuleSet;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.MatchingType;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class InspectStringWithExclusionRegex {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect = "Some email addresses: gary@example.com, bob@example.org";
- String excludedRegex = ".+@example.com";
- inspectStringWithExclusionRegex(projectId, textToInspect, excludedRegex);
- }
-
- // Inspects the provided text, avoiding matches specified in the exclusion list.
- public static void inspectStringWithExclusionRegex(
- String projectId, String textToInspect, String excludedRegex) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ByteContentItem byteItem =
- ByteContentItem.newBuilder()
- .setType(BytesType.TEXT_UTF8)
- .setData(ByteString.copyFromUtf8(textToInspect))
- .build();
- ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types.
- List infoTypes = new ArrayList<>();
- for (String typeName : new String[] {"PHONE_NUMBER", "EMAIL_ADDRESS", "CREDIT_CARD_NUMBER"}) {
- infoTypes.add(InfoType.newBuilder().setName(typeName).build());
- }
-
- // Exclude matches from the specified excludedMatchList.
- ExclusionRule exclusionRule =
- ExclusionRule.newBuilder()
- .setMatchingType(MatchingType.MATCHING_TYPE_FULL_MATCH)
- .setRegex(Regex.newBuilder().setPattern(excludedRegex))
- .build();
-
- // Construct a ruleset that applies the exclusion rule to the EMAIL_ADDRESSES infotype.
- InspectionRuleSet ruleSet =
- InspectionRuleSet.newBuilder()
- .addInfoTypes(InfoType.newBuilder().setName("EMAIL_ADDRESS"))
- .addRules(InspectionRule.newBuilder().setExclusionRule(exclusionRule))
- .build();
-
- // Construct the configuration for the Inspect request, including the ruleset.
- InspectConfig config =
- InspectConfig.newBuilder()
- .addAllInfoTypes(infoTypes)
- .setIncludeQuote(true)
- .addRuleSet(ruleSet)
- .build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_string_with_exclusion_regex]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectStringWithoutOverlap.java b/samples/snippets/src/main/java/dlp/snippets/InspectStringWithoutOverlap.java
deleted file mode 100644
index a1fc60e2..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectStringWithoutOverlap.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_string_without_overlap]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CustomInfoType;
-import com.google.privacy.dlp.v2.CustomInfoType.ExclusionType;
-import com.google.privacy.dlp.v2.ExcludeInfoTypes;
-import com.google.privacy.dlp.v2.ExclusionRule;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.InspectionRule;
-import com.google.privacy.dlp.v2.InspectionRuleSet;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.MatchingType;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class InspectStringWithoutOverlap {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect = "example.com is a domain, james@example.org is an email.";
- inspectStringWithoutOverlap(projectId, textToInspect);
- }
-
- // Inspects the provided text, avoiding matches specified in the exclusion list.
- public static void inspectStringWithoutOverlap(String projectId, String textToInspect)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ByteContentItem byteItem =
- ByteContentItem.newBuilder()
- .setType(BytesType.TEXT_UTF8)
- .setData(ByteString.copyFromUtf8(textToInspect))
- .build();
- ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types.
- List infoTypes = new ArrayList<>();
- for (String typeName : new String[] {"DOMAIN_NAME", "EMAIL_ADDRESS"}) {
- infoTypes.add(InfoType.newBuilder().setName(typeName).build());
- }
-
- // Define a custom info type to exclude email addresses
- CustomInfoType customInfoType =
- CustomInfoType.newBuilder()
- .setInfoType(InfoType.newBuilder().setName("EMAIL_ADDRESS"))
- .setExclusionType(ExclusionType.EXCLUSION_TYPE_EXCLUDE)
- .build();
-
- // Exclude EMAIL_ADDRESS matches
- ExclusionRule exclusionRule =
- ExclusionRule.newBuilder()
- .setExcludeInfoTypes(
- ExcludeInfoTypes.newBuilder()
- .addInfoTypes(InfoType.newBuilder().setName("EMAIL_ADDRESS")))
- .setMatchingType(MatchingType.MATCHING_TYPE_PARTIAL_MATCH)
- .build();
-
- // Construct a ruleset that applies the exclusion rule to the DOMAIN_NAME infotype.
- // If a DOMAIN_NAME match is part of an EMAIL_ADDRESS match, the DOMAIN_NAME match will
- // be excluded.
- InspectionRuleSet ruleSet =
- InspectionRuleSet.newBuilder()
- .addInfoTypes(InfoType.newBuilder().setName("DOMAIN_NAME"))
- .addRules(InspectionRule.newBuilder().setExclusionRule(exclusionRule))
- .build();
-
- // Construct the configuration for the Inspect request, including the ruleset.
- InspectConfig config =
- InspectConfig.newBuilder()
- .addAllInfoTypes(infoTypes)
- .addCustomInfoTypes(customInfoType)
- .setIncludeQuote(true)
- .addRuleSet(ruleSet)
- .build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_string_without_overlap]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectTable.java b/samples/snippets/src/main/java/dlp/snippets/InspectTable.java
deleted file mode 100644
index ad015500..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectTable.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_table]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.Table;
-import com.google.privacy.dlp.v2.Table.Row;
-import com.google.privacy.dlp.v2.Value;
-
-public class InspectTable {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- Table tableToInspect =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("name").build())
- .addHeaders(FieldId.newBuilder().setName("phone").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("John Doe").build())
- .addValues(Value.newBuilder().setStringValue("(206) 555-0123").build()))
- .build();
-
- inspectTable(projectId, tableToInspect);
- }
-
- // Inspects the provided text.
- public static void inspectTable(String projectId, Table tableToInspect) {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the table to be inspected.
- ContentItem item = ContentItem.newBuilder().setTable(tableToInspect).build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- InfoType infoType = InfoType.newBuilder().setName("PHONE_NUMBER").build();
-
- // Construct the configuration for the Inspect request.
- InspectConfig config =
- InspectConfig.newBuilder().addInfoTypes(infoType).setIncludeQuote(true).build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- } catch (Exception e) {
- System.out.println("Error during inspectString: \n" + e.toString());
- }
- }
-}
-// [END dlp_inspect_table]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectTextFile.java b/samples/snippets/src/main/java/dlp/snippets/InspectTextFile.java
deleted file mode 100644
index 872ecd94..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectTextFile.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_file]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.protobuf.ByteString;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class InspectTextFile {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String filePath = "path/to/file.txt";
- inspectTextFile(projectId, filePath);
- }
-
- // Inspects the specified text file.
- public static void inspectTextFile(String projectId, String filePath) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ByteString fileBytes = ByteString.readFrom(new FileInputStream(filePath));
- ByteContentItem byteItem =
- ByteContentItem.newBuilder().setType(BytesType.TEXT_UTF8).setData(fileBytes).build();
- ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();
-
- // Specify the type of info the inspection will look for.
- List infoTypes = new ArrayList<>();
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- for (String typeName : new String[] {"PHONE_NUMBER", "EMAIL_ADDRESS", "CREDIT_CARD_NUMBER"}) {
- infoTypes.add(InfoType.newBuilder().setName(typeName).build());
- }
-
- // Construct the configuration for the Inspect request.
- InspectConfig config =
- InspectConfig.newBuilder().addAllInfoTypes(infoTypes).setIncludeQuote(true).build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_file]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectWithCustomRegex.java b/samples/snippets/src/main/java/dlp/snippets/InspectWithCustomRegex.java
deleted file mode 100644
index 16aba55c..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectWithCustomRegex.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_custom_regex]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CustomInfoType;
-import com.google.privacy.dlp.v2.CustomInfoType.Regex;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.Likelihood;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-
-public class InspectWithCustomRegex {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect = "Patients MRN 444-5-22222";
- String customRegexPattern = "[1-9]{3}-[1-9]{1}-[1-9]{5}";
- inspectWithCustomRegex(projectId, textToInspect, customRegexPattern);
- }
-
- // Inspects a BigQuery Table
- public static void inspectWithCustomRegex(
- String projectId, String textToInspect, String customRegexPattern) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ByteContentItem byteItem =
- ByteContentItem.newBuilder()
- .setType(BytesType.TEXT_UTF8)
- .setData(ByteString.copyFromUtf8(textToInspect))
- .build();
- ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();
-
- // Specify the regex pattern the inspection will look for.
- Regex regex = Regex.newBuilder().setPattern(customRegexPattern).build();
-
- // Construct the custom regex detector.
- InfoType infoType = InfoType.newBuilder().setName("C_MRN").build();
- CustomInfoType customInfoType =
- CustomInfoType.newBuilder().setInfoType(infoType).setRegex(regex).build();
-
- // Construct the configuration for the Inspect request.
- InspectConfig config =
- InspectConfig.newBuilder()
- .addCustomInfoTypes(customInfoType)
- .setIncludeQuote(true)
- .setMinLikelihood(Likelihood.POSSIBLE)
- .build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_custom_regex]
diff --git a/samples/snippets/src/main/java/dlp/snippets/InspectWithHotwordRules.java b/samples/snippets/src/main/java/dlp/snippets/InspectWithHotwordRules.java
deleted file mode 100644
index 39c25327..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/InspectWithHotwordRules.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_inspect_hotword_rule]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CustomInfoType;
-import com.google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule;
-import com.google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustment;
-import com.google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity;
-import com.google.privacy.dlp.v2.CustomInfoType.Regex;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.InspectionRule;
-import com.google.privacy.dlp.v2.InspectionRuleSet;
-import com.google.privacy.dlp.v2.Likelihood;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-
-public class InspectWithHotwordRules {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToInspect = "Patient's MRN 444-5-22222 and just a number 333-2-33333";
- String customRegexPattern = "[1-9]{3}-[1-9]{1}-[1-9]{5}";
- String hotwordRegexPattern = "(?i)(mrn|medical)(?-i)";
- inspectWithHotwordRules(projectId, textToInspect, customRegexPattern, hotwordRegexPattern);
- }
-
- // Inspects a BigQuery Table
- public static void inspectWithHotwordRules(
- String projectId, String textToInspect, String customRegexPattern, String hotwordRegexPattern)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the type and content to be inspected.
- ByteContentItem byteItem =
- ByteContentItem.newBuilder()
- .setType(BytesType.TEXT_UTF8)
- .setData(ByteString.copyFromUtf8(textToInspect))
- .build();
- ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();
-
- // Specify the regex pattern the inspection will look for.
- Regex regex = Regex.newBuilder().setPattern(customRegexPattern).build();
-
- // Construct the custom regex detector.
- InfoType infoType = InfoType.newBuilder().setName("C_MRN").build();
- CustomInfoType customInfoType =
- CustomInfoType.newBuilder().setInfoType(infoType).setRegex(regex).build();
-
- // Specify hotword likelihood adjustment.
- LikelihoodAdjustment likelihoodAdjustment =
- LikelihoodAdjustment.newBuilder().setFixedLikelihood(Likelihood.VERY_LIKELY).build();
-
- // Specify a window around a finding to apply a detection rule.
- Proximity proximity = Proximity.newBuilder().setWindowBefore(10).build();
-
- // Construct hotword rule.
- HotwordRule hotwordRule =
- HotwordRule.newBuilder()
- .setHotwordRegex(Regex.newBuilder().setPattern(hotwordRegexPattern).build())
- .setLikelihoodAdjustment(likelihoodAdjustment)
- .setProximity(proximity)
- .build();
-
- // Construct rule set for the inspect config.
- InspectionRuleSet inspectionRuleSet =
- InspectionRuleSet.newBuilder()
- .addInfoTypes(infoType)
- .addRules(InspectionRule.newBuilder().setHotwordRule(hotwordRule))
- .build();
-
- // Construct the configuration for the Inspect request.
- InspectConfig config =
- InspectConfig.newBuilder()
- .addCustomInfoTypes(customInfoType)
- .setIncludeQuote(true)
- .setMinLikelihood(Likelihood.POSSIBLE)
- .addRuleSet(inspectionRuleSet)
- .build();
-
- // Construct the Inspect request to be sent by the client.
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(item)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- InspectContentResponse response = dlp.inspectContent(request);
-
- // Parse the response and process results
- System.out.println("Findings: " + response.getResult().getFindingsCount());
- for (Finding f : response.getResult().getFindingsList()) {
- System.out.println("\tQuote: " + f.getQuote());
- System.out.println("\tInfo type: " + f.getInfoType().getName());
- System.out.println("\tLikelihood: " + f.getLikelihood());
- }
- }
- }
-}
-// [END dlp_inspect_hotword_rule]
diff --git a/samples/snippets/src/main/java/dlp/snippets/JobsCreate.java b/samples/snippets/src/main/java/dlp/snippets/JobsCreate.java
deleted file mode 100644
index 54325579..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/JobsCreate.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_create_job]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.Action;
-import com.google.privacy.dlp.v2.CloudStorageOptions;
-import com.google.privacy.dlp.v2.CreateDlpJobRequest;
-import com.google.privacy.dlp.v2.DlpJob;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectJobConfig;
-import com.google.privacy.dlp.v2.Likelihood;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.StorageConfig;
-import com.google.privacy.dlp.v2.StorageConfig.TimespanConfig;
-import java.io.IOException;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-public class JobsCreate {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String gcsPath = "gs://" + "your-bucket-name" + "path/to/file.txt";
- createJobs(projectId, gcsPath);
- }
-
- // Creates a DLP Job
- public static void createJobs(String projectId, String gcsPath) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
-
- // Set autoPopulateTimespan to true to scan only new content
- boolean autoPopulateTimespan = true;
- TimespanConfig timespanConfig =
- TimespanConfig.newBuilder()
- .setEnableAutoPopulationOfTimespanConfig(autoPopulateTimespan)
- .build();
-
- // Specify the GCS file to be inspected.
- CloudStorageOptions cloudStorageOptions =
- CloudStorageOptions.newBuilder()
- .setFileSet(CloudStorageOptions.FileSet.newBuilder().setUrl(gcsPath))
- .build();
- StorageConfig storageConfig =
- StorageConfig.newBuilder()
- .setCloudStorageOptions(cloudStorageOptions)
- .setTimespanConfig(timespanConfig)
- .build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- List infoTypes =
- Stream.of("EMAIL_ADDRESS", "PERSON_NAME", "LOCATION", "PHONE_NUMBER")
- .map(it -> InfoType.newBuilder().setName(it).build())
- .collect(Collectors.toList());
- // The minimum likelihood required before returning a match:
- // See: https://cloud.google.com/dlp/docs/likelihood
- Likelihood minLikelihood = Likelihood.UNLIKELY;
-
- // The maximum number of findings to report (0 = server maximum)
- InspectConfig.FindingLimits findingLimits =
- InspectConfig.FindingLimits.newBuilder().setMaxFindingsPerItem(100).build();
-
- InspectConfig inspectConfig =
- InspectConfig.newBuilder()
- .addAllInfoTypes(infoTypes)
- .setIncludeQuote(true)
- .setMinLikelihood(minLikelihood)
- .setLimits(findingLimits)
- .build();
-
- // Specify the action that is triggered when the job completes.
- Action.PublishSummaryToCscc publishSummaryToCscc =
- Action.PublishSummaryToCscc.getDefaultInstance();
- Action action = Action.newBuilder().setPublishSummaryToCscc(publishSummaryToCscc).build();
-
- // Configure the inspection job we want the service to perform.
- InspectJobConfig inspectJobConfig =
- InspectJobConfig.newBuilder()
- .setInspectConfig(inspectConfig)
- .setStorageConfig(storageConfig)
- .addActions(action)
- .build();
-
- // Construct the job creation request to be sent by the client.
- CreateDlpJobRequest createDlpJobRequest =
- CreateDlpJobRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setInspectJob(inspectJobConfig)
- .build();
-
- // Send the job creation request and process the response.
- DlpJob createdDlpJob = dlpServiceClient.createDlpJob(createDlpJobRequest);
- System.out.println("Job created successfully: " + createdDlpJob.getName());
- }
- }
-}
-// [END dlp_create_job]
diff --git a/samples/snippets/src/main/java/dlp/snippets/JobsDelete.java b/samples/snippets/src/main/java/dlp/snippets/JobsDelete.java
deleted file mode 100644
index c3000d69..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/JobsDelete.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_delete_job]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.DeleteDlpJobRequest;
-import com.google.privacy.dlp.v2.DlpJobName;
-import java.io.IOException;
-
-public class JobsDelete {
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String jobId = "your-job-id";
- deleteJobs(projectId, jobId);
- }
-
- // Deletes a DLP Job with the given jobId
- public static void deleteJobs(String projectId, String jobId) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
-
- // Construct the complete job name from the projectId and jobId
- DlpJobName jobName = DlpJobName.of(projectId, jobId);
-
- // Construct the job deletion request to be sent by the client.
- DeleteDlpJobRequest deleteDlpJobRequest =
- DeleteDlpJobRequest.newBuilder().setName(jobName.toString()).build();
-
- // Send the job deletion request
- dlpServiceClient.deleteDlpJob(deleteDlpJobRequest);
- System.out.println("Job deleted successfully.");
- }
- }
-}
-// [END dlp_delete_job]
diff --git a/samples/snippets/src/main/java/dlp/snippets/JobsGet.java b/samples/snippets/src/main/java/dlp/snippets/JobsGet.java
deleted file mode 100644
index 9f43eccc..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/JobsGet.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_get_job]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.DlpJobName;
-import com.google.privacy.dlp.v2.GetDlpJobRequest;
-import java.io.IOException;
-
-public class JobsGet {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String jobId = "your-job-id";
- getJobs(projectId, jobId);
- }
-
- // Gets a DLP Job with the given jobId
- public static void getJobs(String projectId, String jobId) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
-
- // Construct the complete job name from the projectId and jobId
- DlpJobName jobName = DlpJobName.of(projectId, jobId);
-
- // Construct the get job request to be sent by the client.
- GetDlpJobRequest getDlpJobRequest =
- GetDlpJobRequest.newBuilder().setName(jobName.toString()).build();
-
- // Send the get job request
- dlpServiceClient.getDlpJob(getDlpJobRequest);
- System.out.println("Job got successfully.");
- }
- }
-}
-// [END dlp_get_job]
diff --git a/samples/snippets/src/main/java/dlp/snippets/JobsList.java b/samples/snippets/src/main/java/dlp/snippets/JobsList.java
deleted file mode 100644
index 892f58e1..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/JobsList.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_list_jobs]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.DlpJob;
-import com.google.privacy.dlp.v2.DlpJobType;
-import com.google.privacy.dlp.v2.ListDlpJobsRequest;
-import com.google.privacy.dlp.v2.LocationName;
-import java.io.IOException;
-
-public class JobsList {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- listJobs(projectId);
- }
-
- // Lists DLP jobs
- public static void listJobs(String projectId) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
-
- // Construct the request to be sent by the client.
- // For more info on filters and job types,
- // see https://cloud.google.com/dlp/docs/reference/rest/v2/projects.dlpJobs/list
- ListDlpJobsRequest listDlpJobsRequest =
- ListDlpJobsRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setFilter("state=DONE")
- .setType(DlpJobType.valueOf("INSPECT_JOB"))
- .build();
-
- // Send the request to list jobs and process the response
- DlpServiceClient.ListDlpJobsPagedResponse response =
- dlpServiceClient.listDlpJobs(listDlpJobsRequest);
-
- System.out.println("DLP jobs found:");
- for (DlpJob dlpJob : response.getPage().getValues()) {
- System.out.println(dlpJob.getName() + " -- " + dlpJob.getState());
- }
- }
- }
-}
-// [END dlp_list_jobs]
diff --git a/samples/snippets/src/main/java/dlp/snippets/QuickStart.java b/samples/snippets/src/main/java/dlp/snippets/QuickStart.java
deleted file mode 100644
index b4b724de..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/QuickStart.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright 2017 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_quickstart]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.Finding;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectContentRequest;
-import com.google.privacy.dlp.v2.InspectContentResponse;
-import com.google.privacy.dlp.v2.InspectResult;
-import com.google.privacy.dlp.v2.Likelihood;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-public class QuickStart {
-
- public static void main(String[] args) throws IOException {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- quickstart(projectId);
- }
-
- public static void quickstart(String projectId) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
- // Configure that content that will be inspected
- String text = "His name was Robert Frost";
- ByteContentItem byteContentItem =
- ByteContentItem.newBuilder()
- .setType(ByteContentItem.BytesType.TEXT_UTF8)
- .setData(ByteString.copyFromUtf8(text))
- .build();
- ContentItem contentItem = ContentItem.newBuilder().setByteItem(byteContentItem).build();
-
- // The types of information to match:
- // See: https://cloud.google.com/dlp/docs/infotypes-reference
- List infoTypes =
- Stream.of("PERSON_NAME", "US_STATE")
- .map(it -> InfoType.newBuilder().setName(it).build())
- .collect(Collectors.toList());
-
- // The minimum likelihood required before returning a match:
- // See: https://cloud.google.com/dlp/docs/likelihood
- Likelihood minLikelihood = Likelihood.POSSIBLE;
-
- // The maximum number of findings to report (0 = server maximum)
- InspectConfig.FindingLimits findingLimits =
- InspectConfig.FindingLimits.newBuilder().setMaxFindingsPerItem(0).build();
-
- // Specify the inspection configuration
- InspectConfig inspectConfig =
- InspectConfig.newBuilder()
- .addAllInfoTypes(infoTypes)
- .setMinLikelihood(minLikelihood)
- .setLimits(findingLimits)
- .setIncludeQuote(true)
- .build();
-
- // Create the request from previous configs
- InspectContentRequest request =
- InspectContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setInspectConfig(inspectConfig)
- .setItem(contentItem)
- .build();
-
- // Send the request to the service and receive the results
- InspectContentResponse response = dlpServiceClient.inspectContent(request);
-
- // Process the results
- System.out.println("Inspect of text complete: ");
- InspectResult result = response.getResult();
- if (result.getFindingsCount() < 0) {
- System.out.println("No findings.");
- return;
- }
- System.out.println("Findings: ");
- for (Finding finding : result.getFindingsList()) {
- System.out.println("\tQuote: " + finding.getQuote());
- System.out.println("\tInfo type: " + finding.getInfoType().getName());
- System.out.println("\tLikelihood: " + finding.getLikelihood());
- }
- }
- }
-}
-
-// [END dlp_quickstart]
diff --git a/samples/snippets/src/main/java/dlp/snippets/ReIdentifyTableWithFpe.java b/samples/snippets/src/main/java/dlp/snippets/ReIdentifyTableWithFpe.java
deleted file mode 100644
index 2838d96d..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/ReIdentifyTableWithFpe.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_reidentify_table_fpe]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.common.io.BaseEncoding;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CryptoKey;
-import com.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig;
-import com.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.FieldTransformation;
-import com.google.privacy.dlp.v2.KmsWrappedCryptoKey;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.RecordTransformations;
-import com.google.privacy.dlp.v2.ReidentifyContentRequest;
-import com.google.privacy.dlp.v2.ReidentifyContentResponse;
-import com.google.privacy.dlp.v2.Table;
-import com.google.privacy.dlp.v2.Table.Row;
-import com.google.privacy.dlp.v2.Value;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-
-public class ReIdentifyTableWithFpe {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String kmsKeyName =
- "projects/YOUR_PROJECT/"
- + "locations/YOUR_KEYRING_REGION/"
- + "keyRings/YOUR_KEYRING_NAME/"
- + "cryptoKeys/YOUR_KEY_NAME";
- String wrappedAesKey = "YOUR_ENCRYPTED_AES_256_KEY";
- Table tableToReIdentify =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("Employee ID").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("28777").build())
- .build())
- .build();
- reIdentifyTableWithFpe(projectId, tableToReIdentify, kmsKeyName, wrappedAesKey);
- }
-
- public static void reIdentifyTableWithFpe(
- String projectId, Table tableToReIdentify, String kmsKeyName, String wrappedAesKey)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify what content you want the service to re-identify.
- ContentItem contentItem = ContentItem.newBuilder().setTable(tableToReIdentify).build();
-
- // Specify an encrypted AES-256 key and the name of the Cloud KMS key that encrypted it.
- KmsWrappedCryptoKey kmsWrappedCryptoKey =
- KmsWrappedCryptoKey.newBuilder()
- .setWrappedKey(ByteString.copyFrom(BaseEncoding.base64().decode(wrappedAesKey)))
- .setCryptoKeyName(kmsKeyName)
- .build();
- CryptoKey cryptoKey = CryptoKey.newBuilder().setKmsWrapped(kmsWrappedCryptoKey).build();
-
- // Specify how to un-encrypt the previously de-identified information.
- CryptoReplaceFfxFpeConfig cryptoReplaceFfxFpeConfig =
- CryptoReplaceFfxFpeConfig.newBuilder()
- .setCryptoKey(cryptoKey)
- // Set of characters in the input text. For more info, see
- // https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#DeidentifyTemplate.FfxCommonNativeAlphabet
- .setCommonAlphabet(FfxCommonNativeAlphabet.NUMERIC)
- .build();
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder()
- .setCryptoReplaceFfxFpeConfig(cryptoReplaceFfxFpeConfig)
- .build();
-
- // Specify field to be decrypted.
- FieldId fieldId = FieldId.newBuilder().setName("Employee ID").build();
-
- // Associate the decryption with the specified field.
- FieldTransformation fieldTransformation =
- FieldTransformation.newBuilder()
- .setPrimitiveTransformation(primitiveTransformation)
- .addFields(fieldId)
- .build();
- RecordTransformations transformations =
- RecordTransformations.newBuilder().addFieldTransformations(fieldTransformation).build();
-
- DeidentifyConfig reidentifyConfig =
- DeidentifyConfig.newBuilder().setRecordTransformations(transformations).build();
-
- // Combine configurations into a request for the service.
- ReidentifyContentRequest request =
- ReidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(contentItem)
- .setReidentifyConfig(reidentifyConfig)
- .build();
-
- // Send the request and receive response from the service
- ReidentifyContentResponse response = dlp.reidentifyContent(request);
-
- // Print the results
- System.out.println("Table after re-identification: " + response.getItem().getValue());
- }
- }
-}
-// [END dlp_reidentify_table_fpe]
diff --git a/samples/snippets/src/main/java/dlp/snippets/ReIdentifyTextWithFpe.java b/samples/snippets/src/main/java/dlp/snippets/ReIdentifyTextWithFpe.java
deleted file mode 100644
index 1ccdb58e..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/ReIdentifyTextWithFpe.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_reidentify_text_fpe]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.common.io.BaseEncoding;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CryptoKey;
-import com.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig;
-import com.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet;
-import com.google.privacy.dlp.v2.CustomInfoType;
-import com.google.privacy.dlp.v2.CustomInfoType.SurrogateType;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeTransformations;
-import com.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.KmsWrappedCryptoKey;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.ReidentifyContentRequest;
-import com.google.privacy.dlp.v2.ReidentifyContentResponse;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-
-public class ReIdentifyTextWithFpe {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToReIdentify = "My phone number is PHONE_TOKEN(10):9617256398";
- String kmsKeyName =
- "projects/YOUR_PROJECT/"
- + "locations/YOUR_KEYRING_REGION/"
- + "keyRings/YOUR_KEYRING_NAME/"
- + "cryptoKeys/YOUR_KEY_NAME";
- String wrappedAesKey = "YOUR_ENCRYPTED_AES_256_KEY";
- reIdentifyTextWithFpe(projectId, textToReIdentify, kmsKeyName, wrappedAesKey);
- }
-
- public static void reIdentifyTextWithFpe(
- String projectId, String textToReIdentify, String kmsKeyName, String wrappedAesKey)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify what content you want the service to re-identify.
- ContentItem contentItem = ContentItem.newBuilder().setValue(textToReIdentify).build();
-
- // Specify the type of info the inspection will re-identify. This must use the same custom
- // into type that was used as a surrogate during the initial encryption.
- InfoType surrogateInfoType = InfoType.newBuilder().setName("PHONE_NUMBER").build();
-
- CustomInfoType customInfoType =
- CustomInfoType.newBuilder()
- .setInfoType(surrogateInfoType)
- .setSurrogateType(SurrogateType.getDefaultInstance())
- .build();
- InspectConfig inspectConfig =
- InspectConfig.newBuilder().addCustomInfoTypes(customInfoType).build();
-
- // Specify an encrypted AES-256 key and the name of the Cloud KMS key that encrypted it.
- KmsWrappedCryptoKey kmsWrappedCryptoKey =
- KmsWrappedCryptoKey.newBuilder()
- .setWrappedKey(ByteString.copyFrom(BaseEncoding.base64().decode(wrappedAesKey)))
- .setCryptoKeyName(kmsKeyName)
- .build();
- CryptoKey cryptoKey = CryptoKey.newBuilder().setKmsWrapped(kmsWrappedCryptoKey).build();
-
- // Specify how to un-encrypt the previously de-identified information.
- CryptoReplaceFfxFpeConfig cryptoReplaceFfxFpeConfig =
- CryptoReplaceFfxFpeConfig.newBuilder()
- .setCryptoKey(cryptoKey)
- // Set of characters in the input text. For more info, see
- // https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#DeidentifyTemplate.FfxCommonNativeAlphabet
- .setCommonAlphabet(FfxCommonNativeAlphabet.NUMERIC)
- .setSurrogateInfoType(surrogateInfoType)
- .build();
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder()
- .setCryptoReplaceFfxFpeConfig(cryptoReplaceFfxFpeConfig)
- .build();
- InfoTypeTransformation infoTypeTransformation =
- InfoTypeTransformation.newBuilder()
- .setPrimitiveTransformation(primitiveTransformation)
- .addInfoTypes(surrogateInfoType)
- .build();
- InfoTypeTransformations transformations =
- InfoTypeTransformations.newBuilder().addTransformations(infoTypeTransformation).build();
-
- DeidentifyConfig reidentifyConfig =
- DeidentifyConfig.newBuilder().setInfoTypeTransformations(transformations).build();
-
- // Combine configurations into a request for the service.
- ReidentifyContentRequest request =
- ReidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(contentItem)
- .setInspectConfig(inspectConfig)
- .setReidentifyConfig(reidentifyConfig)
- .build();
-
- // Send the request and receive response from the service
- ReidentifyContentResponse response = dlp.reidentifyContent(request);
-
- // Print the results
- System.out.println("Text after re-identification: " + response.getItem().getValue());
- }
- }
-}
-// [END dlp_reidentify_text_fpe]
diff --git a/samples/snippets/src/main/java/dlp/snippets/ReIdentifyWithFpe.java b/samples/snippets/src/main/java/dlp/snippets/ReIdentifyWithFpe.java
deleted file mode 100644
index 02c436cd..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/ReIdentifyWithFpe.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_reidentify_fpe]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.common.io.BaseEncoding;
-import com.google.privacy.dlp.v2.ContentItem;
-import com.google.privacy.dlp.v2.CryptoKey;
-import com.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig;
-import com.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet;
-import com.google.privacy.dlp.v2.CustomInfoType;
-import com.google.privacy.dlp.v2.CustomInfoType.SurrogateType;
-import com.google.privacy.dlp.v2.DeidentifyConfig;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InfoTypeTransformations;
-import com.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.KmsWrappedCryptoKey;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrimitiveTransformation;
-import com.google.privacy.dlp.v2.ReidentifyContentRequest;
-import com.google.privacy.dlp.v2.ReidentifyContentResponse;
-import com.google.protobuf.ByteString;
-import java.io.IOException;
-
-public class ReIdentifyWithFpe {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String textToReIdentify = "My SSN is SSN_TOKEN(9):731997681";
- String kmsKeyName =
- "projects/YOUR_PROJECT/"
- + "locations/YOUR_KEYRING_REGION/"
- + "keyRings/YOUR_KEYRING_NAME/"
- + "cryptoKeys/YOUR_KEY_NAME";
- String wrappedAesKey = "YOUR_ENCRYPTED_AES_256_KEY";
- reIdentifyWithFpe(projectId, textToReIdentify, kmsKeyName, wrappedAesKey);
- }
-
- public static void reIdentifyWithFpe(
- String projectId, String textToReIdentify, String kmsKeyName, String wrappedAesKey)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify what content you want the service to re-identify
- ContentItem contentItem = ContentItem.newBuilder().setValue(textToReIdentify).build();
-
- // Specify the type of info the inspection will re-identify. This must use the same custom
- // into type that was used as a surrogate during the initial encryption.
- InfoType surrogateInfoType = InfoType.newBuilder().setName("SSN_TOKEN").build();
-
- CustomInfoType customInfoType =
- CustomInfoType.newBuilder()
- .setInfoType(surrogateInfoType)
- .setSurrogateType(SurrogateType.getDefaultInstance())
- .build();
- InspectConfig inspectConfig =
- InspectConfig.newBuilder().addCustomInfoTypes(customInfoType).build();
-
- // Specify an encrypted AES-256 key and the name of the Cloud KMS key that encrypted it
- KmsWrappedCryptoKey kmsWrappedCryptoKey =
- KmsWrappedCryptoKey.newBuilder()
- .setWrappedKey(ByteString.copyFrom(BaseEncoding.base64().decode(wrappedAesKey)))
- .setCryptoKeyName(kmsKeyName)
- .build();
- CryptoKey cryptoKey = CryptoKey.newBuilder().setKmsWrapped(kmsWrappedCryptoKey).build();
-
- // Specify how to un-encrypt the previously de-identified information
- CryptoReplaceFfxFpeConfig cryptoReplaceFfxFpeConfig =
- CryptoReplaceFfxFpeConfig.newBuilder()
- .setCryptoKey(cryptoKey)
- // Set of characters in the input text. For more info, see
- // https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#DeidentifyTemplate.FfxCommonNativeAlphabet
- .setCommonAlphabet(FfxCommonNativeAlphabet.NUMERIC)
- .setSurrogateInfoType(surrogateInfoType)
- .build();
- PrimitiveTransformation primitiveTransformation =
- PrimitiveTransformation.newBuilder()
- .setCryptoReplaceFfxFpeConfig(cryptoReplaceFfxFpeConfig)
- .build();
- InfoTypeTransformation infoTypeTransformation =
- InfoTypeTransformation.newBuilder()
- .setPrimitiveTransformation(primitiveTransformation)
- .addInfoTypes(surrogateInfoType)
- .build();
- InfoTypeTransformations transformations =
- InfoTypeTransformations.newBuilder().addTransformations(infoTypeTransformation).build();
-
- DeidentifyConfig reidentifyConfig =
- DeidentifyConfig.newBuilder().setInfoTypeTransformations(transformations).build();
-
- // Combine configurations into a request for the service.
- ReidentifyContentRequest request =
- ReidentifyContentRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setItem(contentItem)
- .setInspectConfig(inspectConfig)
- .setReidentifyConfig(reidentifyConfig)
- .build();
-
- // Send the request and receive response from the service
- ReidentifyContentResponse response = dlp.reidentifyContent(request);
-
- // Print the results
- System.out.println("Text after re-identification: " + response.getItem().getValue());
- }
- }
-}
-// [END dlp_reidentify_fpe]
diff --git a/samples/snippets/src/main/java/dlp/snippets/RedactImageFile.java b/samples/snippets/src/main/java/dlp/snippets/RedactImageFile.java
deleted file mode 100644
index a872ef79..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/RedactImageFile.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_redact_image]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.Likelihood;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.RedactImageRequest;
-import com.google.privacy.dlp.v2.RedactImageResponse;
-import com.google.protobuf.ByteString;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-class RedactImageFile {
-
- public static void main(String[] args) throws IOException {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "my-project-id";
- String inputPath = "src/test/resources/test.png";
- String outputPath = "redacted.png";
- redactImageFile(projectId, inputPath, outputPath);
- }
-
- static void redactImageFile(String projectId, String inputPath, String outputPath)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the content to be inspected.
- ByteString fileBytes = ByteString.readFrom(new FileInputStream(inputPath));
- ByteContentItem byteItem =
- ByteContentItem.newBuilder().setType(BytesType.IMAGE).setData(fileBytes).build();
-
- // Specify the type of info and likelihood necessary to redact.
- List infoTypes = new ArrayList<>();
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- for (String typeName : new String[] {"PHONE_NUMBER", "EMAIL_ADDRESS", "CREDIT_CARD_NUMBER"}) {
- infoTypes.add(InfoType.newBuilder().setName(typeName).build());
- }
- InspectConfig config =
- InspectConfig.newBuilder()
- .addAllInfoTypes(infoTypes)
- .setMinLikelihood(Likelihood.LIKELY)
- .build();
-
- // Construct the Redact request to be sent by the client.
- RedactImageRequest request =
- RedactImageRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setByteItem(byteItem)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- RedactImageResponse response = dlp.redactImage(request);
-
- // Parse the response and process results.
- FileOutputStream redacted = new FileOutputStream(outputPath);
- redacted.write(response.getRedactedImage().toByteArray());
- redacted.close();
- System.out.println("Redacted image written to " + outputPath);
- }
- }
-}
-// [END dlp_redact_image]
diff --git a/samples/snippets/src/main/java/dlp/snippets/RedactImageFileAllInfoTypes.java b/samples/snippets/src/main/java/dlp/snippets/RedactImageFileAllInfoTypes.java
deleted file mode 100644
index c7223fcf..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/RedactImageFileAllInfoTypes.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_redact_image_all_infotypes]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.RedactImageRequest;
-import com.google.privacy.dlp.v2.RedactImageResponse;
-import com.google.protobuf.ByteString;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-class RedactImageFileAllInfoTypes {
-
- public static void main(String[] args) throws IOException {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "my-project-id";
- String inputPath = "src/test/resources/sensitive-data-image.jpeg";
- String outputPath = "sensitive-data-image-redacted.jpeg";
- redactImageFileAllInfoTypes(projectId, inputPath, outputPath);
- }
-
- static void redactImageFileAllInfoTypes(String projectId, String inputPath, String outputPath)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the content to be redacted.
- ByteString fileBytes = ByteString.readFrom(new FileInputStream(inputPath));
- ByteContentItem byteItem =
- ByteContentItem.newBuilder().setType(BytesType.IMAGE_JPEG).setData(fileBytes).build();
-
- // Construct the Redact request to be sent by the client.
- // Do not specify the type of info to redact.
- RedactImageRequest request =
- RedactImageRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setByteItem(byteItem)
- .build();
-
- // Use the client to send the API request.
- RedactImageResponse response = dlp.redactImage(request);
-
- // Parse the response and process results.
- FileOutputStream redacted = new FileOutputStream(outputPath);
- redacted.write(response.getRedactedImage().toByteArray());
- redacted.close();
- System.out.println("Redacted image written to " + outputPath);
- }
- }
-}
-// [END dlp_redact_image_all_infotypes]
diff --git a/samples/snippets/src/main/java/dlp/snippets/RedactImageFileAllText.java b/samples/snippets/src/main/java/dlp/snippets/RedactImageFileAllText.java
deleted file mode 100644
index c875f2e0..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/RedactImageFileAllText.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_redact_image_all_text]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.RedactImageRequest;
-import com.google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig;
-import com.google.privacy.dlp.v2.RedactImageResponse;
-import com.google.protobuf.ByteString;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-class RedactImageFileAllText {
-
- public static void main(String[] args) throws IOException {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "my-project-id";
- String inputPath = "src/test/resources/sensitive-data-image.jpeg";
- String outputPath = "sensitive-data-image-redacted.jpeg";
- redactImageFileAllText(projectId, inputPath, outputPath);
- }
-
- static void redactImageFileAllText(String projectId, String inputPath, String outputPath)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the content to be redacted.
- ByteString fileBytes = ByteString.readFrom(new FileInputStream(inputPath));
- ByteContentItem byteItem =
- ByteContentItem.newBuilder().setType(BytesType.IMAGE_JPEG).setData(fileBytes).build();
-
- // Enable redaction of all text.
- ImageRedactionConfig imageRedactionConfig =
- ImageRedactionConfig.newBuilder().setRedactAllText(true).build();
-
- // Construct the Redact request to be sent by the client.
- // Do not specify the type of info to redact.
- RedactImageRequest request =
- RedactImageRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setByteItem(byteItem)
- .addImageRedactionConfigs(imageRedactionConfig)
- .build();
-
- // Use the client to send the API request.
- RedactImageResponse response = dlp.redactImage(request);
-
- // Parse the response and process results.
- FileOutputStream redacted = new FileOutputStream(outputPath);
- redacted.write(response.getRedactedImage().toByteArray());
- redacted.close();
- System.out.println("Redacted image written to " + outputPath);
- }
- }
-}
-// [END dlp_redact_image_all_text]
diff --git a/samples/snippets/src/main/java/dlp/snippets/RedactImageFileColoredInfoTypes.java b/samples/snippets/src/main/java/dlp/snippets/RedactImageFileColoredInfoTypes.java
deleted file mode 100644
index 3ed79863..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/RedactImageFileColoredInfoTypes.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_redact_image_colored_infotypes]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.Color;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.RedactImageRequest;
-import com.google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig;
-import com.google.privacy.dlp.v2.RedactImageResponse;
-import com.google.protobuf.ByteString;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
-class RedactImageFileColoredInfoTypes {
-
- public static void main(String[] args) throws IOException {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "my-project-id";
- String inputPath = "src/test/resources/test.png";
- String outputPath = "redacted.png";
- redactImageFileColoredInfoTypes(projectId, inputPath, outputPath);
- }
-
- static void redactImageFileColoredInfoTypes(String projectId, String inputPath, String outputPath)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the content to be redacted.
- ByteString fileBytes = ByteString.readFrom(new FileInputStream(inputPath));
- ByteContentItem byteItem =
- ByteContentItem.newBuilder().setType(BytesType.IMAGE_JPEG).setData(fileBytes).build();
-
- // Define types of info to redact associate each one with a different color.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- ImageRedactionConfig ssnRedactionConfig =
- ImageRedactionConfig.newBuilder()
- .setInfoType(InfoType.newBuilder().setName("US_SOCIAL_SECURITY_NUMBER").build())
- .setRedactionColor(Color.newBuilder().setRed(.3f).setGreen(.1f).setBlue(.6f).build())
- .build();
- ImageRedactionConfig emailRedactionConfig =
- ImageRedactionConfig.newBuilder()
- .setInfoType(InfoType.newBuilder().setName("EMAIL_ADDRESS").build())
- .setRedactionColor(Color.newBuilder().setRed(.5f).setGreen(.5f).setBlue(1).build())
- .build();
- ImageRedactionConfig phoneRedactionConfig =
- ImageRedactionConfig.newBuilder()
- .setInfoType(InfoType.newBuilder().setName("PHONE_NUMBER").build())
- .setRedactionColor(Color.newBuilder().setRed(1).setGreen(0).setBlue(.6f).build())
- .build();
-
- // Create collection of all redact configurations.
- List imageRedactionConfigs =
- Arrays.asList(ssnRedactionConfig, emailRedactionConfig, phoneRedactionConfig);
-
- // List types of info to search for.
- InspectConfig config =
- InspectConfig.newBuilder()
- .addAllInfoTypes(
- imageRedactionConfigs.stream()
- .map(ImageRedactionConfig::getInfoType)
- .collect(Collectors.toList()))
- .build();
-
- // Construct the Redact request to be sent by the client.
- RedactImageRequest request =
- RedactImageRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setByteItem(byteItem)
- .addAllImageRedactionConfigs(imageRedactionConfigs)
- .setInspectConfig(config)
- .build();
-
- // Use the client to send the API request.
- RedactImageResponse response = dlp.redactImage(request);
-
- // Parse the response and process results.
- FileOutputStream redacted = new FileOutputStream(outputPath);
- redacted.write(response.getRedactedImage().toByteArray());
- redacted.close();
- System.out.println("Redacted image written to " + outputPath);
- }
- }
-}
-// [END dlp_redact_image_colored_infotypes]
diff --git a/samples/snippets/src/main/java/dlp/snippets/RedactImageFileListedInfoTypes.java b/samples/snippets/src/main/java/dlp/snippets/RedactImageFileListedInfoTypes.java
deleted file mode 100644
index e7b909b3..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/RedactImageFileListedInfoTypes.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_redact_image_listed_infotypes]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.ByteContentItem;
-import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.RedactImageRequest;
-import com.google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig;
-import com.google.privacy.dlp.v2.RedactImageResponse;
-import com.google.protobuf.ByteString;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
-class RedactImageFileListedInfoTypes {
-
- public static void main(String[] args) throws IOException {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "my-project-id";
- String inputPath = "src/test/resources/sensitive-data-image.jpeg";
- String outputPath = "sensitive-data-image-redacted.jpeg";
- redactImageFileListedInfoTypes(projectId, inputPath, outputPath);
- }
-
- static void redactImageFileListedInfoTypes(String projectId, String inputPath, String outputPath)
- throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- // Specify the content to be redacted.
- ByteString fileBytes = ByteString.readFrom(new FileInputStream(inputPath));
- ByteContentItem byteItem =
- ByteContentItem.newBuilder().setType(BytesType.IMAGE_JPEG).setData(fileBytes).build();
-
- // Specify the types of info necessary to redact.
- List infoTypes = new ArrayList<>();
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- for (String typeName :
- new String[] {"US_SOCIAL_SECURITY_NUMBER", "EMAIL_ADDRESS", "PHONE_NUMBER"}) {
- infoTypes.add(InfoType.newBuilder().setName(typeName).build());
- }
- InspectConfig inspectConfig = InspectConfig.newBuilder().addAllInfoTypes(infoTypes).build();
-
- // Prepare redaction configs.
- List imageRedactionConfigs =
- infoTypes.stream()
- .map(infoType -> ImageRedactionConfig.newBuilder().setInfoType(infoType).build())
- .collect(Collectors.toList());
-
- // Construct the Redact request to be sent by the client.
- RedactImageRequest request =
- RedactImageRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setByteItem(byteItem)
- .addAllImageRedactionConfigs(imageRedactionConfigs)
- .setInspectConfig(inspectConfig)
- .build();
-
- // Use the client to send the API request.
- RedactImageResponse response = dlp.redactImage(request);
-
- // Parse the response and process results.
- FileOutputStream redacted = new FileOutputStream(outputPath);
- redacted.write(response.getRedactedImage().toByteArray());
- redacted.close();
- System.out.println("Redacted image written to " + outputPath);
- }
- }
-}
-// [END dlp_redact_image_listed_infotypes]
diff --git a/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisCategoricalStats.java b/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisCategoricalStats.java
deleted file mode 100644
index 3a80fb2e..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisCategoricalStats.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_categorical_stats]
-
-import com.google.api.core.SettableApiFuture;
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.cloud.pubsub.v1.AckReplyConsumer;
-import com.google.cloud.pubsub.v1.MessageReceiver;
-import com.google.cloud.pubsub.v1.Subscriber;
-import com.google.privacy.dlp.v2.Action;
-import com.google.privacy.dlp.v2.Action.PublishToPubSub;
-import com.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult;
-import com.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket;
-import com.google.privacy.dlp.v2.BigQueryTable;
-import com.google.privacy.dlp.v2.CreateDlpJobRequest;
-import com.google.privacy.dlp.v2.DlpJob;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.GetDlpJobRequest;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrivacyMetric;
-import com.google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig;
-import com.google.privacy.dlp.v2.RiskAnalysisJobConfig;
-import com.google.privacy.dlp.v2.ValueFrequency;
-import com.google.pubsub.v1.ProjectSubscriptionName;
-import com.google.pubsub.v1.ProjectTopicName;
-import com.google.pubsub.v1.PubsubMessage;
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-class RiskAnalysisCategoricalStats {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String datasetId = "your-bigquery-dataset-id";
- String tableId = "your-bigquery-table-id";
- String topicId = "pub-sub-topic";
- String subscriptionId = "pub-sub-subscription";
- categoricalStatsAnalysis(projectId, datasetId, tableId, topicId, subscriptionId);
- }
-
- public static void categoricalStatsAnalysis(
- String projectId, String datasetId, String tableId, String topicId, String subscriptionId)
- throws ExecutionException, InterruptedException, IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
- // Specify the BigQuery table to analyze
- BigQueryTable bigQueryTable =
- BigQueryTable.newBuilder()
- .setProjectId(projectId)
- .setDatasetId(datasetId)
- .setTableId(tableId)
- .build();
-
- // The name of the column to analyze, which doesn't need to contain numerical data
- String columnName = "Mystery";
-
- // Configure the privacy metric for the job
- FieldId fieldId = FieldId.newBuilder().setName(columnName).build();
- CategoricalStatsConfig categoricalStatsConfig =
- CategoricalStatsConfig.newBuilder().setField(fieldId).build();
- PrivacyMetric privacyMetric =
- PrivacyMetric.newBuilder().setCategoricalStatsConfig(categoricalStatsConfig).build();
-
- // Create action to publish job status notifications over Google Cloud Pub/Sub
- ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId);
- PublishToPubSub publishToPubSub =
- PublishToPubSub.newBuilder().setTopic(topicName.toString()).build();
- Action action = Action.newBuilder().setPubSub(publishToPubSub).build();
-
- // Configure the risk analysis job to perform
- RiskAnalysisJobConfig riskAnalysisJobConfig =
- RiskAnalysisJobConfig.newBuilder()
- .setSourceTable(bigQueryTable)
- .setPrivacyMetric(privacyMetric)
- .addActions(action)
- .build();
-
- // Build the job creation request to be sent by the client
- CreateDlpJobRequest createDlpJobRequest =
- CreateDlpJobRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setRiskJob(riskAnalysisJobConfig)
- .build();
-
- // Send the request to the API using the client
- DlpJob dlpJob = dlpServiceClient.createDlpJob(createDlpJobRequest);
-
- // Set up a Pub/Sub subscriber to listen on the job completion status
- final SettableApiFuture done = SettableApiFuture.create();
-
- ProjectSubscriptionName subscriptionName =
- ProjectSubscriptionName.of(projectId, subscriptionId);
-
- MessageReceiver messageHandler =
- (PubsubMessage pubsubMessage, AckReplyConsumer ackReplyConsumer) -> {
- handleMessage(dlpJob, done, pubsubMessage, ackReplyConsumer);
- };
- Subscriber subscriber = Subscriber.newBuilder(subscriptionName, messageHandler).build();
- subscriber.startAsync();
-
- // Wait for job completion semi-synchronously
- // For long jobs, consider using a truly asynchronous execution model such as Cloud Functions
- try {
- done.get(15, TimeUnit.MINUTES);
- } catch (TimeoutException e) {
- System.out.println("Job was not completed after 15 minutes.");
- return;
- } finally {
- subscriber.stopAsync();
- subscriber.awaitTerminated();
- }
-
- // Build a request to get the completed job
- GetDlpJobRequest getDlpJobRequest =
- GetDlpJobRequest.newBuilder().setName(dlpJob.getName()).build();
-
- // Retrieve completed job status
- DlpJob completedJob = dlpServiceClient.getDlpJob(getDlpJobRequest);
- System.out.println("Job status: " + completedJob.getState());
-
- // Get the result and parse through and process the information
- CategoricalStatsResult result = completedJob.getRiskDetails().getCategoricalStatsResult();
- List histogramBucketList =
- result.getValueFrequencyHistogramBucketsList();
-
- for (CategoricalStatsHistogramBucket bucket : histogramBucketList) {
- long mostCommonFrequency = bucket.getValueFrequencyUpperBound();
- System.out.printf("Most common value occurs %d time(s).\n", mostCommonFrequency);
-
- long leastCommonFrequency = bucket.getValueFrequencyLowerBound();
- System.out.printf("Least common value occurs %d time(s).\n", leastCommonFrequency);
-
- for (ValueFrequency valueFrequency : bucket.getBucketValuesList()) {
- System.out.printf(
- "Value %s occurs %d time(s).\n",
- valueFrequency.getValue().toString(), valueFrequency.getCount());
- }
- }
- }
- }
-
- // handleMessage injects the job and settableFuture into the message reciever interface
- private static void handleMessage(
- DlpJob job,
- SettableApiFuture done,
- PubsubMessage pubsubMessage,
- AckReplyConsumer ackReplyConsumer) {
- String messageAttribute = pubsubMessage.getAttributesMap().get("DlpJobName");
- if (job.getName().equals(messageAttribute)) {
- done.set(true);
- ackReplyConsumer.ack();
- } else {
- ackReplyConsumer.nack();
- }
- }
-}
-
-// [END dlp_categorical_stats]
diff --git a/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisKAnonymity.java b/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisKAnonymity.java
deleted file mode 100644
index d0ac6b75..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisKAnonymity.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_k_anonymity]
-
-import com.google.api.core.SettableApiFuture;
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.cloud.pubsub.v1.AckReplyConsumer;
-import com.google.cloud.pubsub.v1.MessageReceiver;
-import com.google.cloud.pubsub.v1.Subscriber;
-import com.google.privacy.dlp.v2.Action;
-import com.google.privacy.dlp.v2.Action.PublishToPubSub;
-import com.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult;
-import com.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass;
-import com.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket;
-import com.google.privacy.dlp.v2.BigQueryTable;
-import com.google.privacy.dlp.v2.CreateDlpJobRequest;
-import com.google.privacy.dlp.v2.DlpJob;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.GetDlpJobRequest;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrivacyMetric;
-import com.google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig;
-import com.google.privacy.dlp.v2.RiskAnalysisJobConfig;
-import com.google.privacy.dlp.v2.Value;
-import com.google.pubsub.v1.ProjectSubscriptionName;
-import com.google.pubsub.v1.ProjectTopicName;
-import com.google.pubsub.v1.PubsubMessage;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-import java.util.stream.Collectors;
-
-@SuppressWarnings("checkstyle:AbbreviationAsWordInName")
-class RiskAnalysisKAnonymity {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String datasetId = "your-bigquery-dataset-id";
- String tableId = "your-bigquery-table-id";
- String topicId = "pub-sub-topic";
- String subscriptionId = "pub-sub-subscription";
- calculateKAnonymity(projectId, datasetId, tableId, topicId, subscriptionId);
- }
-
- public static void calculateKAnonymity(
- String projectId, String datasetId, String tableId, String topicId, String subscriptionId)
- throws ExecutionException, InterruptedException, IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
-
- // Specify the BigQuery table to analyze
- BigQueryTable bigQueryTable =
- BigQueryTable.newBuilder()
- .setProjectId(projectId)
- .setDatasetId(datasetId)
- .setTableId(tableId)
- .build();
-
- // These values represent the column names of quasi-identifiers to analyze
- List quasiIds = Arrays.asList("Age", "Mystery");
-
- // Configure the privacy metric for the job
- List quasiIdFields =
- quasiIds.stream()
- .map(columnName -> FieldId.newBuilder().setName(columnName).build())
- .collect(Collectors.toList());
- KAnonymityConfig kanonymityConfig =
- KAnonymityConfig.newBuilder().addAllQuasiIds(quasiIdFields).build();
- PrivacyMetric privacyMetric =
- PrivacyMetric.newBuilder().setKAnonymityConfig(kanonymityConfig).build();
-
- // Create action to publish job status notifications over Google Cloud Pub/Sub
- ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId);
- PublishToPubSub publishToPubSub =
- PublishToPubSub.newBuilder().setTopic(topicName.toString()).build();
- Action action = Action.newBuilder().setPubSub(publishToPubSub).build();
-
- // Configure the risk analysis job to perform
- RiskAnalysisJobConfig riskAnalysisJobConfig =
- RiskAnalysisJobConfig.newBuilder()
- .setSourceTable(bigQueryTable)
- .setPrivacyMetric(privacyMetric)
- .addActions(action)
- .build();
-
- // Build the request to be sent by the client
- CreateDlpJobRequest createDlpJobRequest =
- CreateDlpJobRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setRiskJob(riskAnalysisJobConfig)
- .build();
-
- // Send the request to the API using the client
- DlpJob dlpJob = dlpServiceClient.createDlpJob(createDlpJobRequest);
-
- // Set up a Pub/Sub subscriber to listen on the job completion status
- final SettableApiFuture done = SettableApiFuture.create();
-
- ProjectSubscriptionName subscriptionName =
- ProjectSubscriptionName.of(projectId, subscriptionId);
-
- MessageReceiver messageHandler =
- (PubsubMessage pubsubMessage, AckReplyConsumer ackReplyConsumer) -> {
- handleMessage(dlpJob, done, pubsubMessage, ackReplyConsumer);
- };
- Subscriber subscriber = Subscriber.newBuilder(subscriptionName, messageHandler).build();
- subscriber.startAsync();
-
- // Wait for job completion semi-synchronously
- // For long jobs, consider using a truly asynchronous execution model such as Cloud Functions
- try {
- done.get(15, TimeUnit.MINUTES);
- } catch (TimeoutException e) {
- System.out.println("Job was not completed after 15 minutes.");
- return;
- } finally {
- subscriber.stopAsync();
- subscriber.awaitTerminated();
- }
-
- // Build a request to get the completed job
- GetDlpJobRequest getDlpJobRequest =
- GetDlpJobRequest.newBuilder().setName(dlpJob.getName()).build();
-
- // Retrieve completed job status
- DlpJob completedJob = dlpServiceClient.getDlpJob(getDlpJobRequest);
- System.out.println("Job status: " + completedJob.getState());
-
- // Get the result and parse through and process the information
- KAnonymityResult kanonymityResult = completedJob.getRiskDetails().getKAnonymityResult();
- List histogramBucketList =
- kanonymityResult.getEquivalenceClassHistogramBucketsList();
- for (KAnonymityHistogramBucket result : histogramBucketList) {
- System.out.printf(
- "Bucket size range: [%d, %d]\n",
- result.getEquivalenceClassSizeLowerBound(), result.getEquivalenceClassSizeUpperBound());
-
- for (KAnonymityEquivalenceClass bucket : result.getBucketValuesList()) {
- List quasiIdValues =
- bucket.getQuasiIdsValuesList().stream()
- .map(Value::toString)
- .collect(Collectors.toList());
-
- System.out.println("\tQuasi-ID values: " + String.join(", ", quasiIdValues));
- System.out.println("\tClass size: " + bucket.getEquivalenceClassSize());
- }
- }
- }
- }
-
- // handleMessage injects the job and settableFuture into the message reciever interface
- private static void handleMessage(
- DlpJob job,
- SettableApiFuture done,
- PubsubMessage pubsubMessage,
- AckReplyConsumer ackReplyConsumer) {
- String messageAttribute = pubsubMessage.getAttributesMap().get("DlpJobName");
- if (job.getName().equals(messageAttribute)) {
- done.set(true);
- ackReplyConsumer.ack();
- } else {
- ackReplyConsumer.nack();
- }
- }
-}
-// [END dlp_k_anonymity]
diff --git a/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisKMap.java b/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisKMap.java
deleted file mode 100644
index 5bafb93b..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisKMap.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_k_map]
-
-import com.google.api.core.SettableApiFuture;
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.cloud.pubsub.v1.AckReplyConsumer;
-import com.google.cloud.pubsub.v1.MessageReceiver;
-import com.google.cloud.pubsub.v1.Subscriber;
-import com.google.privacy.dlp.v2.Action;
-import com.google.privacy.dlp.v2.Action.PublishToPubSub;
-import com.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult;
-import com.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket;
-import com.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues;
-import com.google.privacy.dlp.v2.BigQueryTable;
-import com.google.privacy.dlp.v2.CreateDlpJobRequest;
-import com.google.privacy.dlp.v2.DlpJob;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.GetDlpJobRequest;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrivacyMetric;
-import com.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig;
-import com.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField;
-import com.google.privacy.dlp.v2.RiskAnalysisJobConfig;
-import com.google.pubsub.v1.ProjectSubscriptionName;
-import com.google.pubsub.v1.ProjectTopicName;
-import com.google.pubsub.v1.PubsubMessage;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-import java.util.stream.Collectors;
-
-@SuppressWarnings("checkstyle:AbbreviationAsWordInName")
-class RiskAnalysisKMap {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String datasetId = "your-bigquery-dataset-id";
- String tableId = "your-bigquery-table-id";
- String topicId = "pub-sub-topic";
- String subscriptionId = "pub-sub-subscription";
- calculateKMap(projectId, datasetId, tableId, topicId, subscriptionId);
- }
-
- public static void calculateKMap(
- String projectId, String datasetId, String tableId, String topicId, String subscriptionId)
- throws ExecutionException, InterruptedException, IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
- // Specify the BigQuery table to analyze
- BigQueryTable bigQueryTable =
- BigQueryTable.newBuilder()
- .setProjectId(projectId)
- .setDatasetId(datasetId)
- .setTableId(tableId)
- .build();
-
- // These values represent the column names of quasi-identifiers to analyze
- List quasiIds = Arrays.asList("Age", "Gender");
-
- // These values represent the info types corresponding to the quasi-identifiers above
- List infoTypeNames = Arrays.asList("AGE", "GENDER");
-
- // Tag each of the quasiId column names with its corresponding infoType
- List infoTypes =
- infoTypeNames.stream()
- .map(it -> InfoType.newBuilder().setName(it).build())
- .collect(Collectors.toList());
-
- if (quasiIds.size() != infoTypes.size()) {
- throw new IllegalArgumentException("The numbers of quasi-IDs and infoTypes must be equal!");
- }
-
- List taggedFields = new ArrayList();
- for (int i = 0; i < quasiIds.size(); i++) {
- TaggedField taggedField =
- TaggedField.newBuilder()
- .setField(FieldId.newBuilder().setName(quasiIds.get(i)).build())
- .setInfoType(infoTypes.get(i))
- .build();
- taggedFields.add(taggedField);
- }
-
- // The k-map distribution region can be specified by any ISO-3166-1 region code.
- String regionCode = "US";
-
- // Configure the privacy metric for the job
- KMapEstimationConfig kmapConfig =
- KMapEstimationConfig.newBuilder()
- .addAllQuasiIds(taggedFields)
- .setRegionCode(regionCode)
- .build();
- PrivacyMetric privacyMetric =
- PrivacyMetric.newBuilder().setKMapEstimationConfig(kmapConfig).build();
-
- // Create action to publish job status notifications over Google Cloud Pub/Sub
- ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId);
- PublishToPubSub publishToPubSub =
- PublishToPubSub.newBuilder().setTopic(topicName.toString()).build();
- Action action = Action.newBuilder().setPubSub(publishToPubSub).build();
-
- // Configure the risk analysis job to perform
- RiskAnalysisJobConfig riskAnalysisJobConfig =
- RiskAnalysisJobConfig.newBuilder()
- .setSourceTable(bigQueryTable)
- .setPrivacyMetric(privacyMetric)
- .addActions(action)
- .build();
-
- // Build the request to be sent by the client
- CreateDlpJobRequest createDlpJobRequest =
- CreateDlpJobRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setRiskJob(riskAnalysisJobConfig)
- .build();
-
- // Send the request to the API using the client
- DlpJob dlpJob = dlpServiceClient.createDlpJob(createDlpJobRequest);
-
- // Set up a Pub/Sub subscriber to listen on the job completion status
- final SettableApiFuture done = SettableApiFuture.create();
-
- ProjectSubscriptionName subscriptionName =
- ProjectSubscriptionName.of(projectId, subscriptionId);
-
- MessageReceiver messageHandler =
- (PubsubMessage pubsubMessage, AckReplyConsumer ackReplyConsumer) -> {
- handleMessage(dlpJob, done, pubsubMessage, ackReplyConsumer);
- };
- Subscriber subscriber = Subscriber.newBuilder(subscriptionName, messageHandler).build();
- subscriber.startAsync();
-
- // Wait for job completion semi-synchronously
- // For long jobs, consider using a truly asynchronous execution model such as Cloud Functions
- try {
- done.get(15, TimeUnit.MINUTES);
- } catch (TimeoutException e) {
- System.out.println("Job was not completed after 15 minutes.");
- return;
- } finally {
- subscriber.stopAsync();
- subscriber.awaitTerminated();
- }
-
- // Build a request to get the completed job
- GetDlpJobRequest getDlpJobRequest =
- GetDlpJobRequest.newBuilder().setName(dlpJob.getName()).build();
-
- // Retrieve completed job status
- DlpJob completedJob = dlpServiceClient.getDlpJob(getDlpJobRequest);
- System.out.println("Job status: " + completedJob.getState());
-
- // Get the result and parse through and process the information
- KMapEstimationResult kmapResult = completedJob.getRiskDetails().getKMapEstimationResult();
-
- for (KMapEstimationHistogramBucket result : kmapResult.getKMapEstimationHistogramList()) {
- System.out.printf(
- "\tAnonymity range: [%d, %d]\n", result.getMinAnonymity(), result.getMaxAnonymity());
- System.out.printf("\tSize: %d\n", result.getBucketSize());
-
- for (KMapEstimationQuasiIdValues valueBucket : result.getBucketValuesList()) {
- List quasiIdValues =
- valueBucket.getQuasiIdsValuesList().stream()
- .map(
- value -> {
- String s = value.toString();
- return s.substring(s.indexOf(':') + 1).trim();
- })
- .collect(Collectors.toList());
-
- System.out.printf("\tValues: {%s}\n", String.join(", ", quasiIdValues));
- System.out.printf(
- "\tEstimated k-map anonymity: %d\n", valueBucket.getEstimatedAnonymity());
- }
- }
- }
- }
-
- // handleMessage injects the job and settableFuture into the message reciever interface
- private static void handleMessage(
- DlpJob job,
- SettableApiFuture done,
- PubsubMessage pubsubMessage,
- AckReplyConsumer ackReplyConsumer) {
- String messageAttribute = pubsubMessage.getAttributesMap().get("DlpJobName");
- if (job.getName().equals(messageAttribute)) {
- done.set(true);
- ackReplyConsumer.ack();
- } else {
- ackReplyConsumer.nack();
- }
- }
-}
-// [END dlp_k_map]
diff --git a/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisLDiversity.java b/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisLDiversity.java
deleted file mode 100644
index 48fdbf70..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisLDiversity.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_l_diversity]
-
-import com.google.api.core.SettableApiFuture;
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.cloud.dlp.v2.DlpServiceSettings;
-import com.google.cloud.pubsub.v1.AckReplyConsumer;
-import com.google.cloud.pubsub.v1.MessageReceiver;
-import com.google.cloud.pubsub.v1.Subscriber;
-import com.google.privacy.dlp.v2.Action;
-import com.google.privacy.dlp.v2.Action.PublishToPubSub;
-import com.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult;
-import com.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass;
-import com.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket;
-import com.google.privacy.dlp.v2.BigQueryTable;
-import com.google.privacy.dlp.v2.CreateDlpJobRequest;
-import com.google.privacy.dlp.v2.DlpJob;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.GetDlpJobRequest;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrivacyMetric;
-import com.google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig;
-import com.google.privacy.dlp.v2.RiskAnalysisJobConfig;
-import com.google.privacy.dlp.v2.Value;
-import com.google.privacy.dlp.v2.ValueFrequency;
-import com.google.pubsub.v1.ProjectSubscriptionName;
-import com.google.pubsub.v1.ProjectTopicName;
-import com.google.pubsub.v1.PubsubMessage;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-import java.util.stream.Collectors;
-import org.threeten.bp.Duration;
-
-@SuppressWarnings("checkstyle:AbbreviationAsWordInName")
-class RiskAnalysisLDiversity {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String datasetId = "your-bigquery-dataset-id";
- String tableId = "your-bigquery-table-id";
- String topicId = "pub-sub-topic";
- String subscriptionId = "pub-sub-subscription";
- calculateLDiversity(projectId, datasetId, tableId, topicId, subscriptionId);
- }
-
- public static void calculateLDiversity(
- String projectId, String datasetId, String tableId, String topicId, String subscriptionId)
- throws ExecutionException, InterruptedException, IOException {
-
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- DlpServiceSettings.Builder dlpServiceSettingsBuilder = DlpServiceSettings.newBuilder();
- dlpServiceSettingsBuilder
- .getDlpJobSettings()
- .setRetrySettings(
- dlpServiceSettingsBuilder
- .getDlpJobSettings()
- .getRetrySettings()
- .toBuilder()
- .setTotalTimeout(Duration.ofSeconds(600))
- .build());
- try (DlpServiceClient dlpServiceClient =
- DlpServiceClient.create(dlpServiceSettingsBuilder.build())) {
- // Specify the BigQuery table to analyze
- BigQueryTable bigQueryTable =
- BigQueryTable.newBuilder()
- .setProjectId(projectId)
- .setDatasetId(datasetId)
- .setTableId(tableId)
- .build();
-
- // These values represent the column names of quasi-identifiers to analyze
- List quasiIds = Arrays.asList("Age", "Mystery");
-
- // This value represents the column name to compare the quasi-identifiers against
- String sensitiveAttribute = "Name";
-
- // Configure the privacy metric for the job
- FieldId sensitiveAttributeField = FieldId.newBuilder().setName(sensitiveAttribute).build();
- List quasiIdFields =
- quasiIds.stream()
- .map(columnName -> FieldId.newBuilder().setName(columnName).build())
- .collect(Collectors.toList());
- LDiversityConfig ldiversityConfig =
- LDiversityConfig.newBuilder()
- .addAllQuasiIds(quasiIdFields)
- .setSensitiveAttribute(sensitiveAttributeField)
- .build();
- PrivacyMetric privacyMetric =
- PrivacyMetric.newBuilder().setLDiversityConfig(ldiversityConfig).build();
-
- // Create action to publish job status notifications over Google Cloud Pub/
- ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId);
- PublishToPubSub publishToPubSub =
- PublishToPubSub.newBuilder().setTopic(topicName.toString()).build();
- Action action = Action.newBuilder().setPubSub(publishToPubSub).build();
-
- // Configure the risk analysis job to perform
- RiskAnalysisJobConfig riskAnalysisJobConfig =
- RiskAnalysisJobConfig.newBuilder()
- .setSourceTable(bigQueryTable)
- .setPrivacyMetric(privacyMetric)
- .addActions(action)
- .build();
-
- // Build the request to be sent by the client
- CreateDlpJobRequest createDlpJobRequest =
- CreateDlpJobRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setRiskJob(riskAnalysisJobConfig)
- .build();
-
- // Send the request to the API using the client
- DlpJob dlpJob = dlpServiceClient.createDlpJob(createDlpJobRequest);
-
- // Set up a Pub/Sub subscriber to listen on the job completion status
- final SettableApiFuture done = SettableApiFuture.create();
-
- ProjectSubscriptionName subscriptionName =
- ProjectSubscriptionName.of(projectId, subscriptionId);
-
- MessageReceiver messageHandler =
- (PubsubMessage pubsubMessage, AckReplyConsumer ackReplyConsumer) -> {
- handleMessage(dlpJob, done, pubsubMessage, ackReplyConsumer);
- };
- Subscriber subscriber = Subscriber.newBuilder(subscriptionName, messageHandler).build();
- subscriber.startAsync();
-
- // Wait for job completion semi-synchronously
- // For long jobs, consider using a truly asynchronous execution model such as Cloud Functions
- try {
- done.get(15, TimeUnit.MINUTES);
- } catch (TimeoutException e) {
- System.out.println("Job was not completed after 15 minutes.");
- return;
- } finally {
- subscriber.stopAsync();
- subscriber.awaitTerminated();
- }
-
- // Build a request to get the completed job
- GetDlpJobRequest getDlpJobRequest =
- GetDlpJobRequest.newBuilder().setName(dlpJob.getName()).build();
-
- // Retrieve completed job status
- DlpJob completedJob = dlpServiceClient.getDlpJob(getDlpJobRequest);
- System.out.println("Job status: " + completedJob.getState());
-
- // Get the result and parse through and process the information
- LDiversityResult ldiversityResult = completedJob.getRiskDetails().getLDiversityResult();
- List histogramBucketList =
- ldiversityResult.getSensitiveValueFrequencyHistogramBucketsList();
- for (LDiversityHistogramBucket result : histogramBucketList) {
- for (LDiversityEquivalenceClass bucket : result.getBucketValuesList()) {
- List quasiIdValues =
- bucket.getQuasiIdsValuesList().stream()
- .map(Value::toString)
- .collect(Collectors.toList());
-
- System.out.println("\tQuasi-ID values: " + String.join(", ", quasiIdValues));
- System.out.println("\tClass size: " + bucket.getEquivalenceClassSize());
-
- for (ValueFrequency valueFrequency : bucket.getTopSensitiveValuesList()) {
- System.out.printf(
- "\t\tSensitive value %s occurs %d time(s).\n",
- valueFrequency.getValue().toString(), valueFrequency.getCount());
- }
- }
- }
- }
- }
-
- // handleMessage injects the job and settableFuture into the message reciever interface
- private static void handleMessage(
- DlpJob job,
- SettableApiFuture done,
- PubsubMessage pubsubMessage,
- AckReplyConsumer ackReplyConsumer) {
- String messageAttribute = pubsubMessage.getAttributesMap().get("DlpJobName");
- if (job.getName().equals(messageAttribute)) {
- done.set(true);
- ackReplyConsumer.ack();
- } else {
- ackReplyConsumer.nack();
- }
- }
-}
-// [END dlp_l_diversity]
diff --git a/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisNumericalStats.java b/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisNumericalStats.java
deleted file mode 100644
index dde9467f..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/RiskAnalysisNumericalStats.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_numerical_stats]
-
-import com.google.api.core.SettableApiFuture;
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.cloud.pubsub.v1.AckReplyConsumer;
-import com.google.cloud.pubsub.v1.MessageReceiver;
-import com.google.cloud.pubsub.v1.Subscriber;
-import com.google.privacy.dlp.v2.Action;
-import com.google.privacy.dlp.v2.Action.PublishToPubSub;
-import com.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult;
-import com.google.privacy.dlp.v2.BigQueryTable;
-import com.google.privacy.dlp.v2.CreateDlpJobRequest;
-import com.google.privacy.dlp.v2.DlpJob;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.GetDlpJobRequest;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.PrivacyMetric;
-import com.google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig;
-import com.google.privacy.dlp.v2.RiskAnalysisJobConfig;
-import com.google.privacy.dlp.v2.Value;
-import com.google.pubsub.v1.ProjectSubscriptionName;
-import com.google.pubsub.v1.ProjectTopicName;
-import com.google.pubsub.v1.PubsubMessage;
-import java.io.IOException;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-class RiskAnalysisNumericalStats {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String datasetId = "your-bigquery-dataset-id";
- String tableId = "your-bigquery-table-id";
- String topicId = "pub-sub-topic";
- String subscriptionId = "pub-sub-subscription";
- numericalStatsAnalysis(projectId, datasetId, tableId, topicId, subscriptionId);
- }
-
- public static void numericalStatsAnalysis(
- String projectId, String datasetId, String tableId, String topicId, String subscriptionId)
- throws ExecutionException, InterruptedException, IOException {
-
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
-
- // Specify the BigQuery table to analyze
- BigQueryTable bigQueryTable =
- BigQueryTable.newBuilder()
- .setTableId(tableId)
- .setDatasetId(datasetId)
- .setProjectId(projectId)
- .build();
-
- // This represents the name of the column to analyze, which must contain numerical data
- String columnName = "Age";
-
- // Configure the privacy metric for the job
- FieldId fieldId = FieldId.newBuilder().setName(columnName).build();
- NumericalStatsConfig numericalStatsConfig =
- NumericalStatsConfig.newBuilder().setField(fieldId).build();
- PrivacyMetric privacyMetric =
- PrivacyMetric.newBuilder().setNumericalStatsConfig(numericalStatsConfig).build();
-
- // Create action to publish job status notifications over Google Cloud Pub/Sub
- ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId);
- PublishToPubSub publishToPubSub =
- PublishToPubSub.newBuilder().setTopic(topicName.toString()).build();
- Action action = Action.newBuilder().setPubSub(publishToPubSub).build();
-
- // Configure the risk analysis job to perform
- RiskAnalysisJobConfig riskAnalysisJobConfig =
- RiskAnalysisJobConfig.newBuilder()
- .setSourceTable(bigQueryTable)
- .setPrivacyMetric(privacyMetric)
- .addActions(action)
- .build();
-
- CreateDlpJobRequest createDlpJobRequest =
- CreateDlpJobRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setRiskJob(riskAnalysisJobConfig)
- .build();
-
- // Send the request to the API using the client
- DlpJob dlpJob = dlpServiceClient.createDlpJob(createDlpJobRequest);
-
- // Set up a Pub/Sub subscriber to listen on the job completion status
- final SettableApiFuture done = SettableApiFuture.create();
-
- ProjectSubscriptionName subscriptionName =
- ProjectSubscriptionName.of(projectId, subscriptionId);
-
- MessageReceiver messageHandler =
- (PubsubMessage pubsubMessage, AckReplyConsumer ackReplyConsumer) -> {
- handleMessage(dlpJob, done, pubsubMessage, ackReplyConsumer);
- };
- Subscriber subscriber = Subscriber.newBuilder(subscriptionName, messageHandler).build();
- subscriber.startAsync();
-
- // Wait for job completion semi-synchronously
- // For long jobs, consider using a truly asynchronous execution model such as Cloud Functions
- try {
- done.get(15, TimeUnit.MINUTES);
- } catch (TimeoutException e) {
- System.out.println("Job was not completed after 15 minutes.");
- return;
- } finally {
- subscriber.stopAsync();
- subscriber.awaitTerminated();
- }
-
- // Build a request to get the completed job
- GetDlpJobRequest getDlpJobRequest =
- GetDlpJobRequest.newBuilder().setName(dlpJob.getName()).build();
-
- // Retrieve completed job status
- DlpJob completedJob = dlpServiceClient.getDlpJob(getDlpJobRequest);
- System.out.println("Job status: " + completedJob.getState());
-
- // Get the result and parse through and process the information
- NumericalStatsResult result = completedJob.getRiskDetails().getNumericalStatsResult();
-
- System.out.printf(
- "Value range : [%.3f, %.3f]\n",
- result.getMinValue().getFloatValue(), result.getMaxValue().getFloatValue());
-
- int percent = 1;
- Double lastValue = null;
- for (Value quantileValue : result.getQuantileValuesList()) {
- Double currentValue = quantileValue.getFloatValue();
- if (lastValue == null || !lastValue.equals(currentValue)) {
- System.out.printf("Value at %s %% quantile : %.3f", percent, currentValue);
- }
- lastValue = currentValue;
- }
- }
- }
-
- // handleMessage injects the job and settableFuture into the message reciever interface
- private static void handleMessage(
- DlpJob job,
- SettableApiFuture done,
- PubsubMessage pubsubMessage,
- AckReplyConsumer ackReplyConsumer) {
- String messageAttribute = pubsubMessage.getAttributesMap().get("DlpJobName");
- if (job.getName().equals(messageAttribute)) {
- done.set(true);
- ackReplyConsumer.ack();
- } else {
- ackReplyConsumer.nack();
- }
- }
-}
-// [END dlp_numerical_stats]
diff --git a/samples/snippets/src/main/java/dlp/snippets/TemplatesCreate.java b/samples/snippets/src/main/java/dlp/snippets/TemplatesCreate.java
deleted file mode 100644
index fe8ef939..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/TemplatesCreate.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2020 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_create_inspect_template]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.CreateInspectTemplateRequest;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectTemplate;
-import com.google.privacy.dlp.v2.LocationName;
-import java.io.IOException;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-class TemplatesCreate {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- createInspectTemplate(projectId);
- }
-
- // Creates a template to persist configuration information
- public static void createInspectTemplate(String projectId) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- List infoTypes =
- Stream.of("PHONE_NUMBER", "EMAIL_ADDRESS", "CREDIT_CARD_NUMBER")
- .map(it -> InfoType.newBuilder().setName(it).build())
- .collect(Collectors.toList());
-
- // Construct the inspection configuration for the template
- InspectConfig inspectConfig = InspectConfig.newBuilder().addAllInfoTypes(infoTypes).build();
-
- // Optionally set a display name and a description for the template
- String displayName = "Inspection Config Template";
- String description = "Save configuration for future inspection jobs";
-
- // Build the template
- InspectTemplate inspectTemplate =
- InspectTemplate.newBuilder()
- .setInspectConfig(inspectConfig)
- .setDisplayName(displayName)
- .setDescription(description)
- .build();
-
- // Create the request to be sent by the client
- CreateInspectTemplateRequest createInspectTemplateRequest =
- CreateInspectTemplateRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setInspectTemplate(inspectTemplate)
- .build();
-
- // Send the request to the API and process the response
- InspectTemplate response =
- dlpServiceClient.createInspectTemplate(createInspectTemplateRequest);
- System.out.printf("Template created: %s", response.getName());
- }
- }
-}
-// [END dlp_create_inspect_template]
diff --git a/samples/snippets/src/main/java/dlp/snippets/TemplatesDelete.java b/samples/snippets/src/main/java/dlp/snippets/TemplatesDelete.java
deleted file mode 100644
index f22c362f..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/TemplatesDelete.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2020 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_delete_inspect_template]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.DeleteInspectTemplateRequest;
-import java.io.IOException;
-
-class TemplatesDelete {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String templateId = "your-template-id";
- deleteInspectTemplate(projectId, templateId);
- }
-
- // Delete an existing template
- public static void deleteInspectTemplate(String projectId, String templateId) throws IOException {
- // Construct the template name to be deleted
- String templateName = String.format("projects/%s/inspectTemplates/%s", projectId, templateId);
-
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
-
- // Create delete template request to be sent by the client
- DeleteInspectTemplateRequest request =
- DeleteInspectTemplateRequest.newBuilder().setName(templateName).build();
-
- // Send the request with the client
- dlpServiceClient.deleteInspectTemplate(request);
- System.out.printf("Deleted template: %s\n", templateName);
- }
- }
-}
-// [END dlp_delete_inspect_template]
diff --git a/samples/snippets/src/main/java/dlp/snippets/TemplatesList.java b/samples/snippets/src/main/java/dlp/snippets/TemplatesList.java
deleted file mode 100644
index 729782f5..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/TemplatesList.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright 2020 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_list_inspect_templates]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.cloud.dlp.v2.DlpServiceClient.ListInspectTemplatesPagedResponse;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectTemplate;
-import com.google.privacy.dlp.v2.ListInspectTemplatesRequest;
-import com.google.privacy.dlp.v2.LocationName;
-import java.io.IOException;
-
-class TemplatesList {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- listInspectTemplates(projectId);
- }
-
- // Lists all templates associated with a given project
- public static void listInspectTemplates(String projectId) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
-
- // Create the request to be sent by the client
- ListInspectTemplatesRequest request =
- ListInspectTemplatesRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setPageSize(1)
- .build();
-
- // Send the request
- ListInspectTemplatesPagedResponse response = dlpServiceClient.listInspectTemplates(request);
-
- // Parse through and process the response
- System.out.println("Templates found:");
- for (InspectTemplate template : response.getPage().getResponse().getInspectTemplatesList()) {
- System.out.printf("Template name: %s\n", template.getName());
- if (template.getDisplayName() != null) {
- System.out.printf("\tDisplay name: %s \n", template.getDisplayName());
- System.out.printf("\tCreate time: %s \n", template.getCreateTime());
- System.out.printf("\tUpdate time: %s \n", template.getUpdateTime());
-
- // print inspection config
- InspectConfig inspectConfig = template.getInspectConfig();
- for (InfoType infoType : inspectConfig.getInfoTypesList()) {
- System.out.printf("\tInfoType: %s\n", infoType.getName());
- }
- System.out.printf("\tMin likelihood: %s\n", inspectConfig.getMinLikelihood());
- System.out.printf("\tLimits: %s\n", inspectConfig.getLimits().getMaxFindingsPerRequest());
- }
- }
- }
- }
-}
-// [END dlp_list_inspect_templates]
diff --git a/samples/snippets/src/main/java/dlp/snippets/TriggersCreate.java b/samples/snippets/src/main/java/dlp/snippets/TriggersCreate.java
deleted file mode 100644
index de0dd80d..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/TriggersCreate.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_create_trigger]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.CloudStorageOptions;
-import com.google.privacy.dlp.v2.CreateJobTriggerRequest;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectJobConfig;
-import com.google.privacy.dlp.v2.JobTrigger;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.Schedule;
-import com.google.privacy.dlp.v2.StorageConfig;
-import com.google.privacy.dlp.v2.StorageConfig.TimespanConfig;
-import com.google.protobuf.Duration;
-import java.io.IOException;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-public class TriggersCreate {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String gcsPath = "gs://" + "your-bucket-name" + "path/to/file.txt";
- createTrigger(projectId, gcsPath);
- }
-
- public static void createTrigger(String projectId, String gcsPath) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
-
- // Set autoPopulateTimespan to true to scan only new content
- boolean autoPopulateTimespan = true;
- TimespanConfig timespanConfig =
- TimespanConfig.newBuilder()
- .setEnableAutoPopulationOfTimespanConfig(autoPopulateTimespan)
- .build();
-
- // Specify the GCS file to be inspected.
- CloudStorageOptions cloudStorageOptions =
- CloudStorageOptions.newBuilder()
- .setFileSet(CloudStorageOptions.FileSet.newBuilder().setUrl(gcsPath))
- .build();
- StorageConfig storageConfig =
- StorageConfig.newBuilder()
- .setCloudStorageOptions(cloudStorageOptions)
- .setTimespanConfig(timespanConfig)
- .build();
-
- // Specify the type of info the inspection will look for.
- // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
- List infoTypes =
- Stream.of("PHONE_NUMBER", "EMAIL_ADDRESS", "CREDIT_CARD_NUMBER")
- .map(it -> InfoType.newBuilder().setName(it).build())
- .collect(Collectors.toList());
-
- InspectConfig inspectConfig = InspectConfig.newBuilder().addAllInfoTypes(infoTypes).build();
-
- // Configure the inspection job we want the service to perform.
- InspectJobConfig inspectJobConfig =
- InspectJobConfig.newBuilder()
- .setInspectConfig(inspectConfig)
- .setStorageConfig(storageConfig)
- .build();
-
- // Set scanPeriod to the number of days between scans (minimum: 1 day)
- int scanPeriod = 1;
-
- // Optionally set a display name of max 100 chars and a description of max 250 chars
- String displayName = "Daily Scan";
- String description = "A daily inspection for personally identifiable information.";
-
- // Schedule scan of GCS bucket every scanPeriod number of days (minimum = 1 day)
- Duration duration = Duration.newBuilder().setSeconds(scanPeriod * 24 * 3600).build();
- Schedule schedule = Schedule.newBuilder().setRecurrencePeriodDuration(duration).build();
- JobTrigger.Trigger trigger = JobTrigger.Trigger.newBuilder().setSchedule(schedule).build();
- JobTrigger jobTrigger =
- JobTrigger.newBuilder()
- .setInspectJob(inspectJobConfig)
- .setDisplayName(displayName)
- .setDescription(description)
- .setStatus(JobTrigger.Status.HEALTHY)
- .addTriggers(trigger)
- .build();
-
- // Create scan request to be sent by client
- CreateJobTriggerRequest createJobTriggerRequest =
- CreateJobTriggerRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .setJobTrigger(jobTrigger)
- .build();
-
- // Send the scan request and process the response
- JobTrigger createdJobTrigger = dlpServiceClient.createJobTrigger(createJobTriggerRequest);
-
- System.out.println("Created Trigger: " + createdJobTrigger.getName());
- System.out.println("Display Name: " + createdJobTrigger.getDisplayName());
- System.out.println("Description: " + createdJobTrigger.getDescription());
- }
- }
-}
-// [END dlp_create_trigger]
diff --git a/samples/snippets/src/main/java/dlp/snippets/TriggersDelete.java b/samples/snippets/src/main/java/dlp/snippets/TriggersDelete.java
deleted file mode 100644
index 539f2537..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/TriggersDelete.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_delete_trigger]
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.DeleteJobTriggerRequest;
-import com.google.privacy.dlp.v2.ProjectJobTriggerName;
-import java.io.IOException;
-
-class TriggersDelete {
-
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- String triggerId = "your-trigger-id";
- deleteTrigger(projectId, triggerId);
- }
-
- public static void deleteTrigger(String projectId, String triggerId) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
-
- // Get the full trigger name from the given triggerId and ProjectId
- ProjectJobTriggerName triggerName = ProjectJobTriggerName.of(projectId, triggerId);
-
- // Construct the trigger deletion request to be sent by the client
- DeleteJobTriggerRequest deleteJobTriggerRequest =
- DeleteJobTriggerRequest.newBuilder().setName(triggerName.toString()).build();
-
- // Send the trigger deletion request
- dlpServiceClient.deleteJobTrigger(deleteJobTriggerRequest);
- System.out.println("Trigger deleted: " + triggerName.toString());
- }
- }
-}
-// [END dlp_delete_trigger]
diff --git a/samples/snippets/src/main/java/dlp/snippets/TriggersList.java b/samples/snippets/src/main/java/dlp/snippets/TriggersList.java
deleted file mode 100644
index d5214639..00000000
--- a/samples/snippets/src/main/java/dlp/snippets/TriggersList.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-// [START dlp_list_triggers]
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.privacy.dlp.v2.JobTrigger;
-import com.google.privacy.dlp.v2.ListJobTriggersRequest;
-import com.google.privacy.dlp.v2.LocationName;
-import java.io.IOException;
-
-class TriggersList {
- public static void main(String[] args) throws Exception {
- // TODO(developer): Replace these variables before running the sample.
- String projectId = "your-project-id";
- listTriggers(projectId);
- }
-
- public static void listTriggers(String projectId) throws IOException {
- // Initialize client that will be used to send requests. This client only needs to be created
- // once, and can be reused for multiple requests. After completing all of your requests, call
- // the "close" method on the client to safely clean up any remaining background resources.
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
- // Build the request to be sent by the client
- ListJobTriggersRequest listJobTriggersRequest =
- ListJobTriggersRequest.newBuilder()
- .setParent(LocationName.of(projectId, "global").toString())
- .build();
-
- // Use the client to send the API request.
- DlpServiceClient.ListJobTriggersPagedResponse response =
- dlpServiceClient.listJobTriggers(listJobTriggersRequest);
-
- // Parse the response and process the results
- System.out.println("DLP triggers found:");
- for (JobTrigger trigger : response.getPage().getValues()) {
- System.out.println("Trigger: " + trigger.getName());
- System.out.println("\tCreated: " + trigger.getCreateTime());
- System.out.println("\tUpdated: " + trigger.getUpdateTime());
- if (trigger.getDisplayName() != null) {
- System.out.println("\tDisplay name: " + trigger.getDisplayName());
- }
- if (trigger.getDescription() != null) {
- System.out.println("\tDescription: " + trigger.getDescription());
- }
- System.out.println("\tStatus: " + trigger.getStatus());
- System.out.println("\tError count: " + trigger.getErrorsCount());
- }
- ;
- }
- }
-}
-// [END dlp_list_triggers]
diff --git a/samples/snippets/src/test/java/dlp/snippets/DeIdentificationTests.java b/samples/snippets/src/test/java/dlp/snippets/DeIdentificationTests.java
deleted file mode 100644
index e691444e..00000000
--- a/samples/snippets/src/test/java/dlp/snippets/DeIdentificationTests.java
+++ /dev/null
@@ -1,544 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-import static com.google.common.truth.Truth.assertThat;
-import static com.google.common.truth.Truth.assertWithMessage;
-
-import com.google.common.collect.ImmutableList;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.Table;
-import com.google.privacy.dlp.v2.Table.Row;
-import com.google.privacy.dlp.v2.Value;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-@RunWith(JUnit4.class)
-public class DeIdentificationTests extends TestBase {
-
- @Override
- protected ImmutableList requiredEnvVars() {
- return ImmutableList.of(
- "GOOGLE_APPLICATION_CREDENTIALS",
- "GOOGLE_CLOUD_PROJECT",
- "DLP_DEID_WRAPPED_KEY",
- "DLP_DEID_KEY_NAME");
- }
-
- @Test
- public void testDeIdentifyWithMasking() throws IOException {
- DeIdentifyWithMasking.deIdentifyWithMasking(PROJECT_ID, "My SSN is 372819127");
-
- String output = bout.toString();
- assertThat(output).contains("Text after masking:");
- }
-
- @Test
- public void testDeIdentifyWithFpe() throws IOException {
- DeIdentifyWithFpe.deIdentifyWithFpe(PROJECT_ID, "My SSN is 372819127", kmsKeyName, wrappedKey);
-
- String output = bout.toString();
- assertThat(output).contains("Text after format-preserving encryption:");
- }
-
- @Test
- public void testReIdentifyWithFpe() throws IOException {
- ReIdentifyWithFpe.reIdentifyWithFpe(
- PROJECT_ID, "My SSN is SSN_TOKEN(9):731997681", kmsKeyName, wrappedKey);
-
- String output = bout.toString();
- assertThat(output).contains("Text after re-identification:");
- }
-
- @Test
- public void testDeIdentifyTextWithFpe() throws IOException {
- DeIdentifyTextWithFpe.deIdentifyTextWithFpe(
- PROJECT_ID, "My phone number is 4359916732", kmsKeyName, wrappedKey);
-
- String output = bout.toString();
- assertThat(output).contains("Text after format-preserving encryption: ");
- }
-
- @Test
- public void testReIdentifyTextWithFpe() throws IOException {
- ReIdentifyTextWithFpe.reIdentifyTextWithFpe(
- PROJECT_ID, "My phone number is PHONE_TOKEN(10):9617256398", kmsKeyName, wrappedKey);
-
- String output = bout.toString();
- assertThat(output).contains("Text after re-identification: ");
- }
-
- @Test
- public void testDeIdentifyTableWithFpe() throws IOException {
- Table tableToDeIdentify =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("Employee ID").build())
- .addHeaders(FieldId.newBuilder().setName("Date").build())
- .addHeaders(FieldId.newBuilder().setName("Compensation").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("11111").build())
- .addValues(Value.newBuilder().setStringValue("2015").build())
- .addValues(Value.newBuilder().setStringValue("$10").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("11111").build())
- .addValues(Value.newBuilder().setStringValue("2016").build())
- .addValues(Value.newBuilder().setStringValue("$20").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22222").build())
- .addValues(Value.newBuilder().setStringValue("2016").build())
- .addValues(Value.newBuilder().setStringValue("$15").build())
- .build())
- .build();
-
- DeIdentifyTableWithFpe.deIdentifyTableWithFpe(
- PROJECT_ID, tableToDeIdentify, kmsKeyName, wrappedKey);
-
- String output = bout.toString();
- assertThat(output).contains("Table after format-preserving encryption:");
- }
-
- @Test
- public void testReIdentifyTableWithFpe() throws IOException {
- Table tableToReIdentify =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("Employee ID").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("28777").build())
- .build())
- .build();
-
- ReIdentifyTableWithFpe.reIdentifyTableWithFpe(
- PROJECT_ID, tableToReIdentify, kmsKeyName, wrappedKey);
-
- String output = bout.toString();
- assertThat(output).contains("Table after re-identification:");
- }
-
- @Test
- public void testDeIdentifyTableBucketing() throws IOException {
- // Transform a column based on the value of another column
- Table tableToDeIdentify =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("101").build())
- .addValues(Value.newBuilder().setStringValue("Charles Dickens").build())
- .addValues(Value.newBuilder().setStringValue("95").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("Jane Austen").build())
- .addValues(Value.newBuilder().setStringValue("21").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain").build())
- .addValues(Value.newBuilder().setStringValue("75").build())
- .build())
- .build();
- Table expectedTable =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("101").build())
- .addValues(Value.newBuilder().setStringValue("Charles Dickens").build())
- .addValues(Value.newBuilder().setStringValue("90:100").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("Jane Austen").build())
- .addValues(Value.newBuilder().setStringValue("20:30").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain").build())
- .addValues(Value.newBuilder().setStringValue("70:80").build())
- .build())
- .build();
-
- Table table = DeIdentifyTableBucketing.deIdentifyTableBucketing(PROJECT_ID, tableToDeIdentify);
-
- String output = bout.toString();
- assertThat(output).contains("Table after de-identification:");
- assertThat(table).isEqualTo(expectedTable);
- }
-
- @Test
- public void testDeIdentifyTableConditionMasking() throws IOException {
- // Transform a column based on the value of another column
- Table tableToDeIdentify =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("101").build())
- .addValues(Value.newBuilder().setStringValue("Charles Dickens").build())
- .addValues(Value.newBuilder().setStringValue("95").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("Jane Austen").build())
- .addValues(Value.newBuilder().setStringValue("21").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain").build())
- .addValues(Value.newBuilder().setStringValue("75").build())
- .build())
- .build();
- Table expectedTable =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("101").build())
- .addValues(Value.newBuilder().setStringValue("Charles Dickens").build())
- .addValues(Value.newBuilder().setStringValue("**").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("Jane Austen").build())
- .addValues(Value.newBuilder().setStringValue("21").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain").build())
- .addValues(Value.newBuilder().setStringValue("75").build())
- .build())
- .build();
-
- Table table =
- DeIdentifyTableConditionMasking.deIdentifyTableConditionMasking(
- PROJECT_ID, tableToDeIdentify);
-
- String output = bout.toString();
- assertThat(output).contains("Table after de-identification:");
- assertThat(table).isEqualTo(expectedTable);
- }
-
- @Test
- public void testDeIdentifyTableInfoTypes() throws IOException {
- // Transform findings found in column
- Table tableToDeIdentify =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addHeaders(FieldId.newBuilder().setName("FACTOID").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("101").build())
- .addValues(Value.newBuilder().setStringValue("Charles Dickens").build())
- .addValues(Value.newBuilder().setStringValue("95").build())
- .addValues(
- Value.newBuilder()
- .setStringValue(
- "Charles Dickens name was a curse invented by Shakespeare.")
- .build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("Jane Austen").build())
- .addValues(Value.newBuilder().setStringValue("21").build())
- .addValues(
- Value.newBuilder()
- .setStringValue("There are 14 kisses in Jane Austen's novels.")
- .build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain").build())
- .addValues(Value.newBuilder().setStringValue("75").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain loved cats.").build())
- .build())
- .build();
- Table expectedTable =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addHeaders(FieldId.newBuilder().setName("FACTOID").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("101").build())
- .addValues(Value.newBuilder().setStringValue("[PERSON_NAME]").build())
- .addValues(Value.newBuilder().setStringValue("95").build())
- .addValues(
- Value.newBuilder()
- .setStringValue(
- "[PERSON_NAME] name was a curse invented by [PERSON_NAME].")
- .build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("[PERSON_NAME]").build())
- .addValues(Value.newBuilder().setStringValue("21").build())
- .addValues(
- Value.newBuilder()
- .setStringValue("There are 14 kisses in [PERSON_NAME] novels.")
- .build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("[PERSON_NAME]").build())
- .addValues(Value.newBuilder().setStringValue("75").build())
- .addValues(
- Value.newBuilder().setStringValue("[PERSON_NAME] loved cats.").build())
- .build())
- .build();
-
- Table table = DeIdentifyTableInfoTypes.deIdentifyTableInfoTypes(PROJECT_ID, tableToDeIdentify);
-
- String output = bout.toString();
- assertThat(output).contains("Table after de-identification:");
- assertThat(table).isEqualTo(expectedTable);
- }
-
- @Test
- public void testDeIdentifyTableRowSuppress() throws IOException {
- // Suppress a row based on the content of a column
- Table tableToDeIdentify =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("101").build())
- .addValues(Value.newBuilder().setStringValue("Charles Dickens").build())
- .addValues(Value.newBuilder().setStringValue("95").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("Jane Austen").build())
- .addValues(Value.newBuilder().setStringValue("21").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain").build())
- .addValues(Value.newBuilder().setStringValue("75").build())
- .build())
- .build();
- Table expectedTable =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("Jane Austen").build())
- .addValues(Value.newBuilder().setStringValue("21").build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain").build())
- .addValues(Value.newBuilder().setStringValue("75").build())
- .build())
- .build();
-
- Table table =
- DeIdentifyTableRowSuppress.deIdentifyTableRowSuppress(PROJECT_ID, tableToDeIdentify);
-
- String output = bout.toString();
- assertThat(output).contains("Table after de-identification:");
- assertThat(table).isEqualTo(expectedTable);
- }
-
- @Test
- public void testDeIdentifyTableConditionsInfoTypes() throws IOException {
- // Transform findings only when specific conditions are met on another field
- Table tableToDeIdentify =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addHeaders(FieldId.newBuilder().setName("FACTOID").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("101").build())
- .addValues(Value.newBuilder().setStringValue("Charles Dickens").build())
- .addValues(Value.newBuilder().setStringValue("95").build())
- .addValues(
- Value.newBuilder()
- .setStringValue(
- "Charles Dickens name was a curse invented by Shakespeare.")
- .build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("Jane Austen").build())
- .addValues(Value.newBuilder().setStringValue("21").build())
- .addValues(
- Value.newBuilder()
- .setStringValue("There are 14 kisses in Jane Austen's novels.")
- .build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain").build())
- .addValues(Value.newBuilder().setStringValue("75").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain loved cats.").build())
- .build())
- .build();
- Table expectedTable =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("AGE").build())
- .addHeaders(FieldId.newBuilder().setName("PATIENT").build())
- .addHeaders(FieldId.newBuilder().setName("HAPPINESS SCORE").build())
- .addHeaders(FieldId.newBuilder().setName("FACTOID").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("101").build())
- .addValues(Value.newBuilder().setStringValue("[PERSON_NAME]").build())
- .addValues(Value.newBuilder().setStringValue("95").build())
- .addValues(
- Value.newBuilder()
- .setStringValue(
- "[PERSON_NAME] name was a curse invented by [PERSON_NAME].")
- .build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("22").build())
- .addValues(Value.newBuilder().setStringValue("Jane Austen").build())
- .addValues(Value.newBuilder().setStringValue("21").build())
- .addValues(
- Value.newBuilder()
- .setStringValue("There are 14 kisses in Jane Austen's novels.")
- .build())
- .build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("55").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain").build())
- .addValues(Value.newBuilder().setStringValue("75").build())
- .addValues(Value.newBuilder().setStringValue("Mark Twain loved cats.").build())
- .build())
- .build();
-
- Table table =
- DeIdentifyTableConditionInfoTypes.deIdentifyTableConditionInfoTypes(
- PROJECT_ID, tableToDeIdentify);
-
- String output = bout.toString();
- assertThat(output).contains("Table after de-identification:");
- assertThat(table).isEqualTo(expectedTable);
- }
-
- @Test
- public void testDeIdentifyWithDateShift() throws IOException {
- Path inputFile = Paths.get("src/test/resources/dates.csv");
- assertWithMessage("Input file must exist").that(inputFile.toFile().exists()).isTrue();
- Path outputFile = Paths.get("src/test/resources/results.csv");
- assertWithMessage("Output file must be writeable").that(inputFile.toFile().canWrite()).isTrue();
- DeIdentifyWithDateShift.deIdentifyWithDateShift(PROJECT_ID, inputFile, outputFile);
-
- String output = bout.toString();
- assertThat(output).contains("Content written to file: ");
-
- // Clean up test output
- Files.delete(outputFile);
- }
-
- @Test
- public void testDeIdentifyWithRedaction() throws IOException {
- DeIdentifyWithRedaction.deIdentifyWithRedaction(
- PROJECT_ID, "My name is Alicia Abernathy, and my email address is aabernathy@example.com.");
-
- String output = bout.toString();
- assertThat(output)
- .contains(
- "Text after redaction: " + "My name is Alicia Abernathy, and my email address is .");
- }
-
- @Test
- public void testDeIdentifyWithReplacement() throws IOException {
- DeIdentifyWithReplacement.deIdentifyWithReplacement(
- PROJECT_ID, "My name is Alicia Abernathy, and my email address is aabernathy@example.com.");
-
- String output = bout.toString();
- assertThat(output)
- .contains(
- "Text after redaction: "
- + "My name is Alicia Abernathy, and my email address is [email-address].");
- }
-
- @Test
- public void testDeIdentifyWithInfoType() throws IOException {
- DeIdentifyWithInfoType.deIdentifyWithInfoType(PROJECT_ID, "My email is test@example.com");
-
- String output = bout.toString();
- assertThat(output).contains("Text after redaction: " + "My email is [EMAIL_ADDRESS]");
- }
-
- @Test
- public void testDeIdentifyWithSimpleWordList() throws IOException {
- DeIdentifyWithSimpleWordList.deidentifyWithSimpleWordList(
- PROJECT_ID, "Patient was seen in RM-YELLOW then transferred to rm green.");
-
- String output = bout.toString();
- assertThat(output).contains("Text after replace with infotype config: ");
- }
-
- @Test
- public void testDeIdentifyWithExceptionList() throws IOException {
- DeIdentifyWithExceptionList.deIdentifyWithExceptionList(
- PROJECT_ID, "jack@example.org accessed customer record of user5@example.com");
-
- String output = bout.toString();
- assertThat(output).contains("Text after replace with infotype config: ");
- }
-}
diff --git a/samples/snippets/src/test/java/dlp/snippets/InfoTypesTests.java b/samples/snippets/src/test/java/dlp/snippets/InfoTypesTests.java
deleted file mode 100644
index 39792218..00000000
--- a/samples/snippets/src/test/java/dlp/snippets/InfoTypesTests.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2020 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.common.collect.ImmutableList;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-@RunWith(JUnit4.class)
-public class InfoTypesTests extends TestBase {
-
- @Override
- protected ImmutableList requiredEnvVars() {
- return ImmutableList.of("GOOGLE_APPLICATION_CREDENTIALS");
- }
-
- @Test
- public void testListInfoTypes() throws Exception {
- InfoTypesList.listInfoTypes();
- String output = bout.toString();
- assertThat(output).contains("Name");
- assertThat(output).contains("Display name");
- }
-}
diff --git a/samples/snippets/src/test/java/dlp/snippets/InspectTests.java b/samples/snippets/src/test/java/dlp/snippets/InspectTests.java
deleted file mode 100644
index 65ad56e9..00000000
--- a/samples/snippets/src/test/java/dlp/snippets/InspectTests.java
+++ /dev/null
@@ -1,368 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.api.gax.rpc.ApiException;
-import com.google.cloud.pubsub.v1.SubscriptionAdminClient;
-import com.google.cloud.pubsub.v1.TopicAdminClient;
-import com.google.common.collect.ImmutableList;
-import com.google.privacy.dlp.v2.FieldId;
-import com.google.privacy.dlp.v2.Table;
-import com.google.privacy.dlp.v2.Table.Row;
-import com.google.privacy.dlp.v2.Value;
-import com.google.pubsub.v1.ProjectSubscriptionName;
-import com.google.pubsub.v1.PushConfig;
-import com.google.pubsub.v1.TopicName;
-import java.util.Arrays;
-import java.util.UUID;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-@RunWith(JUnit4.class)
-public class InspectTests extends TestBase {
-
- // TODO: Update as ENV_VARs
- private static final String datastoreNamespace = "";
- private static final String datastoreKind = "dlp";
- private static final String DOCUMENT_INPUT_FILE = "src/test/resources/sensitive-data-image.jpg";
-
- private UUID testRunUuid = UUID.randomUUID();
- private TopicName topicName =
- TopicName.of(PROJECT_ID, String.format("%s-%s", TOPIC_ID, testRunUuid.toString()));
- private ProjectSubscriptionName subscriptionName =
- ProjectSubscriptionName.of(
- PROJECT_ID, String.format("%s-%s", SUBSCRIPTION_ID, testRunUuid.toString()));
-
- @Override
- protected ImmutableList requiredEnvVars() {
- return ImmutableList.of(
- "GOOGLE_APPLICATION_CREDENTIALS",
- "GOOGLE_CLOUD_PROJECT",
- "GCS_PATH",
- "PUB_SUB_TOPIC",
- "PUB_SUB_SUBSCRIPTION",
- "BIGQUERY_DATASET",
- "BIGQUERY_TABLE");
- }
-
- @Before
- public void before() throws Exception {
- // Create a new topic
- try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) {
- topicAdminClient.createTopic(topicName);
- }
-
- // Create a new subscription
- try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) {
- subscriptionAdminClient.createSubscription(
- subscriptionName, topicName, PushConfig.getDefaultInstance(), 0);
- }
- }
-
- @After
- public void after() throws Exception {
- // Delete the test topic
- try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) {
- topicAdminClient.deleteTopic(topicName);
- } catch (ApiException e) {
- System.err.println(String.format("Error deleting topic %s: %s", topicName.getTopic(), e));
- // Keep trying to clean up
- }
-
- // Delete the test subscription
- try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) {
- subscriptionAdminClient.deleteSubscription(subscriptionName);
- } catch (ApiException e) {
- System.err.println(
- String.format(
- "Error deleting subscription %s: %s", subscriptionName.getSubscription(), e));
- // Keep trying to clean up
- }
- }
-
- @Test
- public void testInspectPhoneNumber() throws Exception {
- InspectString.inspectString(PROJECT_ID, "My phone number is (415) 555-0890");
-
- String output = bout.toString();
- assertThat(output).contains("Info type: PHONE_NUMBER");
- }
-
- @Test
- public void testInspectString() throws Exception {
- InspectString.inspectString(PROJECT_ID, "I'm Gary and my email is gary@example.com");
-
- String output = bout.toString();
- assertThat(output).contains("Info type: EMAIL_ADDRESS");
- }
-
- @Test
- public void testInspectWithCustomRegex() throws Exception {
- InspectWithCustomRegex.inspectWithCustomRegex(
- PROJECT_ID, "Patients MRN 444-5-22222", "[1-9]{3}-[1-9]{1}-[1-9]{5}");
-
- String output = bout.toString();
- assertThat(output).contains("Info type: C_MRN");
- }
-
- @Test
- public void testInspectStringWithExclusionDict() throws Exception {
- InspectStringWithExclusionDict.inspectStringWithExclusionDict(
- PROJECT_ID,
- "Some email addresses: gary@example.com, example@example.com",
- Arrays.asList("example@example.com"));
-
- String output = bout.toString();
- assertThat(output).contains("gary@example.com");
- assertThat(output).doesNotContain("example@example.com");
- }
-
- @Test
- public void testInspectStringWithExclusionDictSubstring() throws Exception {
- InspectStringWithExclusionDictSubstring.inspectStringWithExclusionDictSubstring(
- PROJECT_ID,
- "Some email addresses: gary@example.com, TEST@example.com",
- Arrays.asList("TEST"));
-
- String output = bout.toString();
- assertThat(output).contains("gary@example.com");
- assertThat(output).doesNotContain("TEST@example.com");
- }
-
- @Test
- public void testInspectStringWithExclusionRegex() throws Exception {
- InspectStringWithExclusionRegex.inspectStringWithExclusionRegex(
- PROJECT_ID, "Some email addresses: gary@example.com, bob@example.org", ".+@example.com");
-
- String output = bout.toString();
- assertThat(output).contains("bob@example.org");
- assertThat(output).doesNotContain("gary@example.com");
- }
-
- @Test
- public void testInspectStringCustomExcludingSubstring() throws Exception {
- InspectStringCustomExcludingSubstring.inspectStringCustomExcludingSubstring(
- PROJECT_ID,
- "Name: Doe, John. Name: Example, Jimmy",
- "[A-Z][a-z]{1,15}, [A-Z][a-z]{1,15}",
- Arrays.asList("Jimmy"));
-
- String output = bout.toString();
- assertThat(output).contains("Doe, John");
- assertThat(output).doesNotContain("Example, Jimmy");
- }
-
- @Test
- public void testInspectStringCustomOmitOverlap() throws Exception {
- InspectStringCustomOmitOverlap.inspectStringCustomOmitOverlap(
- PROJECT_ID, "Name: Jane Doe. Name: Larry Page.");
-
- String output = bout.toString();
- assertThat(output).contains("Jane Doe");
- assertThat(output).doesNotContain("Larry Page");
- }
-
- @Test
- public void testInspectStringOmitOverlap() throws Exception {
- InspectStringOmitOverlap.inspectStringOmitOverlap(PROJECT_ID, "james@example.com");
-
- String output = bout.toString();
- assertThat(output).contains("EMAIL_ADDRESS");
- assertThat(output).doesNotContain("PERSON_NAME");
- }
-
- @Test
- public void testInspectStringWithoutOverlap() throws Exception {
- InspectStringWithoutOverlap.inspectStringWithoutOverlap(
- PROJECT_ID, "example.com is a domain, james@example.org is an email.");
-
- String output = bout.toString();
- assertThat(output).contains("example.com");
- assertThat(output).doesNotContain("example.org");
- }
-
- @Test
- public void testInspectTable() {
- Table tableToInspect =
- Table.newBuilder()
- .addHeaders(FieldId.newBuilder().setName("name").build())
- .addHeaders(FieldId.newBuilder().setName("phone").build())
- .addRows(
- Row.newBuilder()
- .addValues(Value.newBuilder().setStringValue("John Doe").build())
- .addValues(Value.newBuilder().setStringValue("(206) 555-0123").build()))
- .build();
- InspectTable.inspectTable(PROJECT_ID, tableToInspect);
-
- String output = bout.toString();
- assertThat(output).contains("Info type: PHONE_NUMBER");
- }
-
- @Test
- public void testInspectStringCustomHotword() throws Exception {
- InspectStringCustomHotword.inspectStringCustomHotword(
- PROJECT_ID, "patient name: John Doe", "patient");
-
- String output = bout.toString();
- assertThat(output).contains("John Doe");
- }
-
- @Test
- public void testInspectStringCustomHotwordNegativeExample() throws Exception {
- InspectStringCustomHotword.inspectStringCustomHotword(PROJECT_ID, "name: John Doe", "patient");
-
- String output = bout.toString();
- assertThat(output).doesNotContain("John Doe");
- }
-
- @Test
- public void testInspectStringMultipleRulesPatientRule() throws Exception {
- InspectStringMultipleRules.inspectStringMultipleRules(PROJECT_ID, "patient name: Jane Doe");
-
- String output = bout.toString();
- assertThat(output).contains("LIKELY");
- }
-
- @Test
- public void testInspectStringMultipleRulesDoctorRule() throws Exception {
- InspectStringMultipleRules.inspectStringMultipleRules(PROJECT_ID, "doctor: Jane Doe");
-
- String output = bout.toString();
- assertThat(output).contains("Findings: 0");
- }
-
- @Test
- public void testInspectStringMultipleRulesQuasimodoRule() throws Exception {
- InspectStringMultipleRules.inspectStringMultipleRules(PROJECT_ID, "patient: Quasimodo");
-
- String output = bout.toString();
- assertThat(output).contains("Findings: 0");
- }
-
- @Test
- public void testInspectStringMultipleRulesRedactedRule() throws Exception {
- InspectStringMultipleRules.inspectStringMultipleRules(PROJECT_ID, "name of patient: REDACTED");
-
- String output = bout.toString();
- assertThat(output).contains("Findings: 0");
- }
-
- @Test
- public void textInspectTestFile() throws Exception {
- InspectTextFile.inspectTextFile(PROJECT_ID, "src/test/resources/test.txt");
- String output = bout.toString();
- assertThat(output).contains("Info type: PHONE_NUMBER");
- assertThat(output).contains("Info type: EMAIL_ADDRESS");
- }
-
- @Test
- public void testInspectImageFile() throws Exception {
- InspectImageFile.inspectImageFile(PROJECT_ID, "src/test/resources/test.png");
-
- String output = bout.toString();
- assertThat(output).contains("Info type: PHONE_NUMBER");
- assertThat(output).contains("Info type: EMAIL_ADDRESS");
- }
-
- @Test
- public void testRedactImageAllInfoTypes() throws Exception {
- InspectImageFileAllInfoTypes.inspectImageFileAllInfoTypes(PROJECT_ID, DOCUMENT_INPUT_FILE);
-
- String output = bout.toString();
- assertThat(output).contains("Info type: PHONE_NUMBER");
- assertThat(output).contains("Info type: EMAIL_ADDRESS");
- assertThat(output).contains("Info type: DATE");
- }
-
- @Test
- public void testRedactImageListedInfoTypes() throws Exception {
- InspectImageFileListedInfoTypes.inspectImageFileListedInfoTypes(
- PROJECT_ID, DOCUMENT_INPUT_FILE);
-
- String output = bout.toString();
- assertThat(output).contains("Info type: PHONE_NUMBER");
- assertThat(output).contains("Info type: EMAIL_ADDRESS");
- assertThat(output).doesNotContain("Info type: DATE");
- }
-
- @Test
- public void testInspectGcsFile() throws Exception {
- InspectGcsFile.inspectGcsFile(
- PROJECT_ID, GCS_PATH, topicName.getTopic(), subscriptionName.getSubscription());
-
- String output = bout.toString();
- assertThat(output).contains("Job status: DONE");
- }
-
- @Test
- public void testInspectGcsFileWithSampling() throws Exception {
- InspectGcsFileWithSampling.inspectGcsFileWithSampling(
- PROJECT_ID, GCS_PATH, topicName.getTopic(), subscriptionName.getSubscription());
-
- String output = bout.toString();
- assertThat(output).contains("Job status: DONE");
- }
-
- @Test
- public void testInspectDatastoreEntity() throws Exception {
- InspectDatastoreEntity.insepctDatastoreEntity(
- PROJECT_ID,
- datastoreNamespace,
- datastoreKind,
- topicName.getTopic(),
- subscriptionName.getSubscription());
-
- String output = bout.toString();
- assertThat(output).contains("Job status: DONE");
- }
-
- @Test
- public void testInspectBigQueryTable() throws Exception {
- InspectBigQueryTable.inspectBigQueryTable(
- PROJECT_ID, DATASET_ID, TABLE_ID, topicName.getTopic(), subscriptionName.getSubscription());
-
- String output = bout.toString();
- assertThat(output).contains("Job status: DONE");
- }
-
- @Test
- public void testInspectBigQueryTableWithSampling() throws Exception {
- InspectBigQueryTableWithSampling.inspectBigQueryTableWithSampling(
- PROJECT_ID, topicName.getTopic(), subscriptionName.getSubscription());
-
- String output = bout.toString();
- assertThat(output).contains("Job status: DONE");
- }
-
- @Test
- public void testInspectWithHotwordRules() throws Exception {
- InspectWithHotwordRules.inspectWithHotwordRules(
- PROJECT_ID,
- "Patient's MRN 444-5-22222 and just a number 333-2-33333",
- "[1-9]{3}-[1-9]{1}-[1-9]{5}",
- "(?i)(mrn|medical)(?-i)");
-
- String output = bout.toString();
- assertThat(output).contains("Findings: 2");
- assertThat(output).contains("Info type: C_MRN");
- }
-}
diff --git a/samples/snippets/src/test/java/dlp/snippets/JobsTests.java b/samples/snippets/src/test/java/dlp/snippets/JobsTests.java
deleted file mode 100644
index 7a0a1355..00000000
--- a/samples/snippets/src/test/java/dlp/snippets/JobsTests.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright 2020 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.common.collect.ImmutableList;
-import com.google.privacy.dlp.v2.CloudStorageOptions;
-import com.google.privacy.dlp.v2.CloudStorageOptions.FileSet;
-import com.google.privacy.dlp.v2.CreateDlpJobRequest;
-import com.google.privacy.dlp.v2.DeleteDlpJobRequest;
-import com.google.privacy.dlp.v2.DlpJob;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectJobConfig;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.StorageConfig;
-import java.io.IOException;
-import java.util.UUID;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-@RunWith(JUnit4.class)
-public class JobsTests extends TestBase {
-
- @Override
- protected ImmutableList requiredEnvVars() {
- return ImmutableList.of("GOOGLE_APPLICATION_CREDENTIALS", "GOOGLE_CLOUD_PROJECT", "GCS_PATH");
- }
-
- private static DlpJob createJob(String jobId) throws IOException {
- try (DlpServiceClient dlp = DlpServiceClient.create()) {
- FileSet fileSet = FileSet.newBuilder().setUrl(GCS_PATH).build();
- CloudStorageOptions cloudStorageOptions =
- CloudStorageOptions.newBuilder().setFileSet(fileSet).build();
- StorageConfig storageConfig =
- StorageConfig.newBuilder().setCloudStorageOptions(cloudStorageOptions).build();
-
- InspectJobConfig inspectJobConfig =
- InspectJobConfig.newBuilder()
- .setStorageConfig(storageConfig)
- .setInspectConfig(InspectConfig.newBuilder().build())
- .build();
-
- CreateDlpJobRequest createDlpJobRequest =
- CreateDlpJobRequest.newBuilder()
- .setParent(LocationName.of(PROJECT_ID, "global").toString())
- .setInspectJob(inspectJobConfig)
- .setJobId(jobId)
- .build();
-
- return dlp.createDlpJob(createDlpJobRequest);
- }
- }
-
- @Test
- public void testCreateJobs() throws Exception {
- // Call createJobs to create a Dlp job from project id and gcs path.
- JobsCreate.createJobs(PROJECT_ID, GCS_PATH);
- String output = bout.toString();
- assertThat(output).contains("Job created successfully:");
-
- // Delete the created Dlp Job
- String dlpJobName = output.split("Job created successfully: ")[1].split("\n")[0];
- DeleteDlpJobRequest deleteDlpJobRequest =
- DeleteDlpJobRequest.newBuilder().setName(dlpJobName).build();
- try (DlpServiceClient client = DlpServiceClient.create()) {
- client.deleteDlpJob(deleteDlpJobRequest);
- }
- }
-
- @Test
- public void testGetJobs() throws Exception {
- // Create a job with a unique UUID to be gotten
- String jobId = UUID.randomUUID().toString();
- DlpJob createdDlpJob = createJob(jobId);
-
- // Get the job with the specified ID
- JobsGet.getJobs(PROJECT_ID, "i-" + jobId);
- String output = bout.toString();
- assertThat(output).contains("Job got successfully.");
-
- // Delete the created Dlp Job
- String dlpJobName = createdDlpJob.getName();
- DeleteDlpJobRequest deleteDlpJobRequest =
- DeleteDlpJobRequest.newBuilder().setName(dlpJobName).build();
- try (DlpServiceClient client = DlpServiceClient.create()) {
- client.deleteDlpJob(deleteDlpJobRequest);
- }
- }
-
- @Test
- public void testListJobs() throws Exception {
- // Call listJobs to print out a list of jobIds
- JobsList.listJobs(PROJECT_ID);
- String output = bout.toString();
-
- // Check that the output contains a list of jobs, or is empty
- assertThat(output).contains("DLP jobs found:");
- }
-
- @Test
- public void testDeleteJobs() throws Exception {
- // Create a job with a unique UUID to be deleted
- String jobId = UUID.randomUUID().toString();
- createJob(jobId);
-
- // Delete the job with the specified ID
- JobsDelete.deleteJobs(PROJECT_ID, "i-" + jobId);
- String output = bout.toString();
- assertThat(output).contains("Job deleted successfully.");
- }
-}
diff --git a/samples/snippets/src/test/java/dlp/snippets/QuickstartTests.java b/samples/snippets/src/test/java/dlp/snippets/QuickstartTests.java
deleted file mode 100644
index eb333a4a..00000000
--- a/samples/snippets/src/test/java/dlp/snippets/QuickstartTests.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.common.collect.ImmutableList;
-import java.io.IOException;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-@RunWith(JUnit4.class)
-public class QuickstartTests extends TestBase {
-
- @Override
- protected ImmutableList requiredEnvVars() {
- return ImmutableList.of("GOOGLE_APPLICATION_CREDENTIALS", "GOOGLE_CLOUD_PROJECT");
- }
-
- @Test
- public void testQuickstart() throws IOException {
- QuickStart.quickstart(PROJECT_ID);
-
- String output = bout.toString();
- assertThat(output).contains("Inspect of text complete");
- }
-}
diff --git a/samples/snippets/src/test/java/dlp/snippets/RedactTests.java b/samples/snippets/src/test/java/dlp/snippets/RedactTests.java
deleted file mode 100644
index 13c0386e..00000000
--- a/samples/snippets/src/test/java/dlp/snippets/RedactTests.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.common.collect.ImmutableList;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import org.junit.After;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-@RunWith(JUnit4.class)
-public class RedactTests extends TestBase {
-
- private static final String SIMPLE_INPUT_FILE = "src/test/resources/test.png";
- private static final String SIMPLE_OUTPUT_FILE = "redacted.png";
- private static final String DOCUMENT_INPUT_FILE = "src/test/resources/sensitive-data-image.jpg";
- private static final String DOCUMENT_OUTPUT_FILE = "sensitive-data-image-redacted.jpg";
-
- @Override
- protected ImmutableList requiredEnvVars() {
- return ImmutableList.of("GOOGLE_APPLICATION_CREDENTIALS", "GOOGLE_CLOUD_PROJECT");
- }
-
- @After
- public void after() throws IOException {
- Files.deleteIfExists(Paths.get(SIMPLE_OUTPUT_FILE));
- Files.deleteIfExists(Paths.get(DOCUMENT_OUTPUT_FILE));
- }
-
- @Test
- public void testRedactImage() throws Exception {
- RedactImageFile.redactImageFile(PROJECT_ID, SIMPLE_INPUT_FILE, SIMPLE_OUTPUT_FILE);
-
- String output = bout.toString();
- assertThat(output).contains("Redacted image written");
- }
-
- @Test
- public void testRedactImageAllInfoTypes() throws Exception {
- RedactImageFileAllInfoTypes.redactImageFileAllInfoTypes(
- PROJECT_ID, DOCUMENT_INPUT_FILE, DOCUMENT_OUTPUT_FILE);
-
- String output = bout.toString();
- assertThat(output).contains("Redacted image written");
- }
-
- @Test
- public void testRedactImageListedInfoTypes() throws Exception {
- RedactImageFileListedInfoTypes.redactImageFileListedInfoTypes(
- PROJECT_ID, DOCUMENT_INPUT_FILE, DOCUMENT_OUTPUT_FILE);
-
- String output = bout.toString();
- assertThat(output).contains("Redacted image written");
- }
-
- @Test
- public void testRedactImageColoredInfoTypes() throws Exception {
- RedactImageFileColoredInfoTypes.redactImageFileColoredInfoTypes(
- PROJECT_ID, DOCUMENT_INPUT_FILE, DOCUMENT_OUTPUT_FILE);
-
- String output = bout.toString();
- assertThat(output).contains("Redacted image written");
- }
-
- @Test
- public void testRedactImageAllText() throws Exception {
- RedactImageFileAllText.redactImageFileAllText(
- PROJECT_ID, DOCUMENT_INPUT_FILE, DOCUMENT_OUTPUT_FILE);
-
- String output = bout.toString();
- assertThat(output).contains("Redacted image written");
- }
-}
diff --git a/samples/snippets/src/test/java/dlp/snippets/RiskAnalysisTests.java b/samples/snippets/src/test/java/dlp/snippets/RiskAnalysisTests.java
deleted file mode 100644
index 548f2bfe..00000000
--- a/samples/snippets/src/test/java/dlp/snippets/RiskAnalysisTests.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright 2017 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.api.gax.rpc.ApiException;
-import com.google.cloud.pubsub.v1.SubscriptionAdminClient;
-import com.google.cloud.pubsub.v1.TopicAdminClient;
-import com.google.common.collect.ImmutableList;
-import com.google.pubsub.v1.ProjectSubscriptionName;
-import com.google.pubsub.v1.PushConfig;
-import com.google.pubsub.v1.TopicName;
-import java.util.UUID;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-@SuppressWarnings("checkstyle:AbbreviationAsWordInName")
-@RunWith(JUnit4.class)
-public class RiskAnalysisTests extends TestBase {
-
- private UUID testRunUuid = UUID.randomUUID();
- private TopicName topicName =
- TopicName.of(PROJECT_ID, String.format("%s-%s", TOPIC_ID, testRunUuid.toString()));
- private ProjectSubscriptionName subscriptionName =
- ProjectSubscriptionName.of(
- PROJECT_ID, String.format("%s-%s", SUBSCRIPTION_ID, testRunUuid.toString()));
-
- @Override
- protected ImmutableList requiredEnvVars() {
- return ImmutableList.of(
- "GOOGLE_APPLICATION_CREDENTIALS",
- "GOOGLE_CLOUD_PROJECT",
- "PUB_SUB_TOPIC",
- "PUB_SUB_SUBSCRIPTION",
- "BIGQUERY_DATASET",
- "BIGQUERY_TABLE");
- }
-
- @Before
- public void before() throws Exception {
- // Create a new topic
- try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) {
- topicAdminClient.createTopic(topicName);
- }
- // Create a new subscription
- try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) {
- subscriptionAdminClient.createSubscription(
- subscriptionName, topicName, PushConfig.getDefaultInstance(), 0);
- }
- }
-
- @After
- public void after() throws Exception {
- // Delete the test topic
- try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) {
- topicAdminClient.deleteTopic(topicName);
- } catch (ApiException e) {
- System.err.println(String.format("Error deleting topic %s: %s", topicName.getTopic(), e));
- // Keep trying to clean up
- }
-
- // Delete the test subscription
- try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) {
- subscriptionAdminClient.deleteSubscription(subscriptionName);
- } catch (ApiException e) {
- System.err.println(
- String.format(
- "Error deleting subscription %s: %s", subscriptionName.getSubscription(), e));
- // Keep trying to clean up
- }
- }
-
- @Test
- public void testNumericalStats() throws Exception {
- RiskAnalysisNumericalStats.numericalStatsAnalysis(
- PROJECT_ID, DATASET_ID, TABLE_ID, topicName.getTopic(), subscriptionName.getSubscription());
- String output = bout.toString();
- assertThat(output).contains("Value at ");
- }
-
- @Test
- public void testCategoricalStats() throws Exception {
- RiskAnalysisCategoricalStats.categoricalStatsAnalysis(
- PROJECT_ID, DATASET_ID, TABLE_ID, topicName.getTopic(), subscriptionName.getSubscription());
-
- String output = bout.toString();
-
- assertThat(output).containsMatch("Most common value occurs \\d time");
- assertThat(output).containsMatch("Least common value occurs \\d time");
- }
-
- @Test
- public void testKAnonymity() throws Exception {
- RiskAnalysisKAnonymity.calculateKAnonymity(
- PROJECT_ID, DATASET_ID, TABLE_ID, topicName.getTopic(), subscriptionName.getSubscription());
- String output = bout.toString();
- assertThat(output).containsMatch("Bucket size range: \\[\\d, \\d\\]");
- assertThat(output).contains("Quasi-ID values: integer_value: 19");
- assertThat(output).contains("Class size: 1");
- }
-
- @Test
- public void testLDiversity() throws Exception {
- RiskAnalysisLDiversity.calculateLDiversity(
- PROJECT_ID, DATASET_ID, TABLE_ID, topicName.getTopic(), subscriptionName.getSubscription());
- String output = bout.toString();
- assertThat(output).contains("Quasi-ID values: integer_value: 19");
- assertThat(output).contains("Class size: 1");
- assertThat(output).contains("Sensitive value string_value: \"James\"");
- }
-
- @Test
- public void testKMap() throws Exception {
- RiskAnalysisKMap.calculateKMap(
- PROJECT_ID, DATASET_ID, TABLE_ID, topicName.getTopic(), subscriptionName.getSubscription());
-
- String output = bout.toString();
-
- assertThat(output).containsMatch("Anonymity range: \\[\\d, \\d]");
- assertThat(output).containsMatch("Size: \\d");
- assertThat(output).containsMatch("Values: \\{\\d{2}, \"Female\"\\}");
- }
-}
diff --git a/samples/snippets/src/test/java/dlp/snippets/TemplatesTests.java b/samples/snippets/src/test/java/dlp/snippets/TemplatesTests.java
deleted file mode 100644
index 1af435a5..00000000
--- a/samples/snippets/src/test/java/dlp/snippets/TemplatesTests.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright 2020 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.common.collect.ImmutableList;
-import com.google.privacy.dlp.v2.CreateInspectTemplateRequest;
-import com.google.privacy.dlp.v2.DeleteInspectTemplateRequest;
-import com.google.privacy.dlp.v2.InfoType;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectTemplate;
-import com.google.privacy.dlp.v2.LocationName;
-import java.io.IOException;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-@RunWith(JUnit4.class)
-public class TemplatesTests extends TestBase {
-
- @Override
- protected ImmutableList requiredEnvVars() {
- return ImmutableList.of("GOOGLE_APPLICATION_CREDENTIALS", "GOOGLE_CLOUD_PROJECT");
- }
-
- private static InspectTemplate createTemplate() throws IOException {
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
- List infoTypes =
- Stream.of("PHONE_NUMBER", "EMAIL_ADDRESS", "CREDIT_CARD_NUMBER")
- .map(it -> InfoType.newBuilder().setName(it).build())
- .collect(Collectors.toList());
-
- InspectConfig inspectConfig = InspectConfig.newBuilder().addAllInfoTypes(infoTypes).build();
-
- InspectTemplate inspectTemplate =
- InspectTemplate.newBuilder().setInspectConfig(inspectConfig).build();
-
- CreateInspectTemplateRequest createInspectTemplateRequest =
- CreateInspectTemplateRequest.newBuilder()
- .setParent(LocationName.of(PROJECT_ID, "global").toString())
- .setInspectTemplate(inspectTemplate)
- .build();
-
- return dlpServiceClient.createInspectTemplate(createInspectTemplateRequest);
- }
- }
-
- @Test
- public void testCreateInspectTemplate() throws Exception {
- TemplatesCreate.createInspectTemplate(PROJECT_ID);
- String output = bout.toString();
- assertThat(output).contains("Template created: ");
-
- // Delete the created template
- String templateId = output.split("Template created: ")[1].split("\n")[0];
- DeleteInspectTemplateRequest deleteInspectTemplateRequest =
- DeleteInspectTemplateRequest.newBuilder().setName(templateId).build();
- try (DlpServiceClient client = DlpServiceClient.create()) {
- client.deleteInspectTemplate(deleteInspectTemplateRequest);
- }
- }
-
- @Test
- public void testListInspectTemplate() throws Exception {
- TemplatesList.listInspectTemplates(PROJECT_ID);
- String output = bout.toString();
- assertThat(output).contains("Templates found:");
- }
-
- @Test
- public void testDeleteInspectTemplate() throws Exception {
- // Create a template to be deleted and extract its ID
- InspectTemplate template = createTemplate();
- String templateName = template.getName();
- String templateId;
-
- Matcher matcher = Pattern.compile("inspectTemplates/").matcher(templateName);
- if (matcher.find()) {
- templateId = templateName.substring(matcher.end());
- } else {
- throw new Exception("Could not extract templateId");
- }
-
- // Delete the template with the specified ID
- TemplatesDelete.deleteInspectTemplate(PROJECT_ID, templateId);
- String output = bout.toString();
- assertThat(output).contains("Deleted template:");
- }
-}
diff --git a/samples/snippets/src/test/java/dlp/snippets/TestBase.java b/samples/snippets/src/test/java/dlp/snippets/TestBase.java
deleted file mode 100644
index 58ed908b..00000000
--- a/samples/snippets/src/test/java/dlp/snippets/TestBase.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-import static com.google.common.truth.Truth.assertWithMessage;
-
-import com.google.common.collect.ImmutableList;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-import org.junit.After;
-import org.junit.Before;
-
-/** Common base class for DLP snippet tests */
-abstract class TestBase {
-
- protected static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT");
- protected static final String GCS_PATH = System.getenv("GCS_PATH");
- protected static final String TOPIC_ID = System.getenv("PUB_SUB_TOPIC");
- protected static final String SUBSCRIPTION_ID = System.getenv("PUB_SUB_SUBSCRIPTION");
- protected static final String DATASET_ID = System.getenv("BIGQUERY_DATASET");
- protected static final String TABLE_ID = System.getenv("BIGQUERY_TABLE");
- protected static final String wrappedKey = System.getenv("DLP_DEID_WRAPPED_KEY");
- protected static final String kmsKeyName = System.getenv("DLP_DEID_KEY_NAME");
-
- protected ByteArrayOutputStream bout;
- private PrintStream originalOut = System.out;
-
- protected abstract ImmutableList requiredEnvVars();
-
- private static void requireEnvVar(String varName) {
- assertWithMessage(
- String.format("Environment variable '%s' must be set to perform these tests.", varName))
- .that(System.getenv(varName))
- .isNotEmpty();
- }
-
- @Before
- public void beforeBase() {
- requiredEnvVars().stream().forEach(TestBase::requireEnvVar);
-
- // Capture stdout
- bout = new ByteArrayOutputStream();
- System.setOut(new PrintStream(bout));
- }
-
- @After
- public void afterBase() {
- // Restore stdout
- System.setOut(originalOut);
- bout.reset();
- }
-}
diff --git a/samples/snippets/src/test/java/dlp/snippets/TriggersTests.java b/samples/snippets/src/test/java/dlp/snippets/TriggersTests.java
deleted file mode 100644
index b84710fb..00000000
--- a/samples/snippets/src/test/java/dlp/snippets/TriggersTests.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright 2020 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dlp.snippets;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.cloud.dlp.v2.DlpServiceClient;
-import com.google.common.collect.ImmutableList;
-import com.google.privacy.dlp.v2.CloudStorageOptions;
-import com.google.privacy.dlp.v2.CreateJobTriggerRequest;
-import com.google.privacy.dlp.v2.DeleteJobTriggerRequest;
-import com.google.privacy.dlp.v2.InspectConfig;
-import com.google.privacy.dlp.v2.InspectJobConfig;
-import com.google.privacy.dlp.v2.JobTrigger;
-import com.google.privacy.dlp.v2.LocationName;
-import com.google.privacy.dlp.v2.Schedule;
-import com.google.privacy.dlp.v2.StorageConfig;
-import com.google.protobuf.Duration;
-import java.io.IOException;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-@RunWith(JUnit4.class)
-public class TriggersTests extends TestBase {
-
- @Override
- protected ImmutableList requiredEnvVars() {
- return ImmutableList.of("GOOGLE_APPLICATION_CREDENTIALS", "GOOGLE_CLOUD_PROJECT", "GCS_PATH");
- }
-
- private static JobTrigger createTrigger() throws IOException {
- try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
- CloudStorageOptions cloudStorageOptions =
- CloudStorageOptions.newBuilder()
- .setFileSet(CloudStorageOptions.FileSet.newBuilder().setUrl(GCS_PATH))
- .build();
- StorageConfig storageConfig =
- StorageConfig.newBuilder().setCloudStorageOptions(cloudStorageOptions).build();
-
- InspectJobConfig inspectJobConfig =
- InspectJobConfig.newBuilder()
- .setInspectConfig(InspectConfig.newBuilder().build())
- .setStorageConfig(storageConfig)
- .build();
-
- Duration duration = Duration.newBuilder().setSeconds(24 * 3600).build();
- Schedule schedule = Schedule.newBuilder().setRecurrencePeriodDuration(duration).build();
- JobTrigger.Trigger trigger = JobTrigger.Trigger.newBuilder().setSchedule(schedule).build();
- JobTrigger jobTrigger =
- JobTrigger.newBuilder()
- .setInspectJob(inspectJobConfig)
- .setStatus(JobTrigger.Status.HEALTHY)
- .addTriggers(trigger)
- .build();
-
- CreateJobTriggerRequest createJobTriggerRequest =
- CreateJobTriggerRequest.newBuilder()
- .setParent(LocationName.of(PROJECT_ID, "global").toString())
- .setJobTrigger(jobTrigger)
- .build();
-
- return dlpServiceClient.createJobTrigger(createJobTriggerRequest);
- }
- }
-
- @Test
- public void testCreateTrigger() throws Exception {
- TriggersCreate.createTrigger(PROJECT_ID, GCS_PATH);
- String output = bout.toString();
- assertThat(output).contains("Created Trigger:");
-
- // Delete the created trigger
- String triggerId = output.split("Created Trigger: ")[1].split("\n")[0];
- DeleteJobTriggerRequest deleteJobTriggerRequest =
- DeleteJobTriggerRequest.newBuilder().setName(triggerId).build();
- try (DlpServiceClient client = DlpServiceClient.create()) {
- client.deleteJobTrigger(deleteJobTriggerRequest);
- }
- }
-
- @Test
- public void testListTrigger() throws Exception {
- TriggersList.listTriggers(PROJECT_ID);
- String output = bout.toString();
- assertThat(output).contains("DLP triggers found:");
- }
-
- @Test
- public void testDeleteTrigger() throws Exception {
- JobTrigger trigger = createTrigger();
- String triggerName = trigger.getName();
- String triggerId;
-
- Matcher matcher = Pattern.compile("jobTriggers/").matcher(triggerName);
- if (matcher.find()) {
- triggerId = triggerName.substring(matcher.end());
- } else {
- throw new Exception("Could not extract triggerID");
- }
-
- // Delete the job with the specified ID
- TriggersDelete.deleteTrigger(PROJECT_ID, triggerId);
- String output = bout.toString();
- assertThat(output).contains("Trigger deleted:");
- }
-}
diff --git a/samples/snippets/src/test/resources/dates.csv b/samples/snippets/src/test/resources/dates.csv
deleted file mode 100644
index 290a85de..00000000
--- a/samples/snippets/src/test/resources/dates.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-name,birth_date,credit_card,register_date
-Ann,01/01/1970,4532908762519852,07/21/1996
-James,03/06/1988,4301261899725540,04/09/2001
-Dan,08/14/1945,4620761856015295,11/15/2011
-Laura,11/03/1992,4564981067258901,01/04/2017
diff --git a/samples/snippets/src/test/resources/results.correct.csv b/samples/snippets/src/test/resources/results.correct.csv
deleted file mode 100644
index 5b078fe8..00000000
--- a/samples/snippets/src/test/resources/results.correct.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-name,birth_date,credit_card,register_date
-Ann,1970-01-06,4532908762519852,1996-07-26
-James,1988-03-11,4301261899725540,2001-04-14
-Dan,1945-08-19,4620761856015295,2011-11-20
-Laura,1992-11-08,4564981067258901,2017-01-09
diff --git a/samples/snippets/src/test/resources/sensitive-data-image.jpg b/samples/snippets/src/test/resources/sensitive-data-image.jpg
deleted file mode 100644
index 6e2d8454..00000000
Binary files a/samples/snippets/src/test/resources/sensitive-data-image.jpg and /dev/null differ
diff --git a/samples/snippets/src/test/resources/test.png b/samples/snippets/src/test/resources/test.png
deleted file mode 100644
index 748f46cd..00000000
Binary files a/samples/snippets/src/test/resources/test.png and /dev/null differ
diff --git a/samples/snippets/src/test/resources/test.txt b/samples/snippets/src/test/resources/test.txt
deleted file mode 100644
index f30af240..00000000
--- a/samples/snippets/src/test/resources/test.txt
+++ /dev/null
@@ -1 +0,0 @@
-My phone number is (223) 456-7890 and my email address is gary@example.com.
\ No newline at end of file