diff --git a/packages/google-privacy-dlp/package-lock.json b/packages/google-privacy-dlp/package-lock.json index 265fecb1777..37590213f60 100644 --- a/packages/google-privacy-dlp/package-lock.json +++ b/packages/google-privacy-dlp/package-lock.json @@ -2069,26 +2069,19 @@ "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s=" }, "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz", + "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", "dev": true, "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } + "acorn": "^5.0.3" } }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, "requires": { "co": "^4.6.0", "fast-deep-equal": "^1.0.0", @@ -2097,9 +2090,9 @@ } }, "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", "dev": true }, "align-text": { @@ -2387,26 +2380,20 @@ "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "requires": { - "lodash": "^4.17.10" - } - }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", @@ -2416,7 +2403,8 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, "atob": { "version": "2.1.1", @@ -2606,12 +2594,14 @@ "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true }, "aws4": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", + "dev": true }, "axios": { "version": "0.18.0", @@ -3121,6 +3111,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, "optional": true, "requires": { "tweetnacl": "^0.14.3" @@ -3405,7 +3396,8 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true }, "catharsis": { "version": "0.8.9", @@ -3624,7 +3616,8 @@ "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true }, "co-with-promise": { "version": "4.6.0", @@ -3699,6 +3692,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -3731,18 +3725,6 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, "concordance": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/concordance/-/concordance-3.0.0.tgz", @@ -3878,6 +3860,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -4034,7 +4017,8 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true }, "detect-indent": { "version": "4.0.0", @@ -4152,6 +4136,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, "optional": true, "requires": { "jsbn": "~0.1.0" @@ -4221,6 +4206,30 @@ "is-arrayish": "^0.2.1" } }, + "es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" + } + }, "es5-ext": { "version": "0.10.45", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", @@ -4363,57 +4372,82 @@ } }, "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.0.1.tgz", + "integrity": "sha512-D5nG2rErquLUstgUaxJlWB5+gu+U/3VDY0fk/Iuq8y9CUFy/7Y6oF4N2cR1tV8knzQvciIbfqfohd359xTLIKQ==", "dev": true, "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", + "ajv": "^6.5.0", + "babel-code-frame": "^6.26.0", "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", + "cross-spawn": "^6.0.5", "debug": "^3.1.0", "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", + "eslint-scope": "^4.0.0", "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", + "espree": "^4.0.0", + "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^2.0.0", "functional-red-black-tree": "^1.0.1", "glob": "^7.1.2", - "globals": "^11.0.1", + "globals": "^11.5.0", "ignore": "^3.3.3", "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", + "inquirer": "^5.2.0", + "is-resolvable": "^1.1.0", + "js-yaml": "^3.11.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", "optionator": "^0.8.2", "path-is-inside": "^1.0.2", "pluralize": "^7.0.0", "progress": "^2.0.0", - "regexpp": "^1.0.1", + "regexpp": "^1.1.0", "require-uncached": "^1.0.3", - "semver": "^5.3.0", + "semver": "^5.5.0", + "string.prototype.matchall": "^2.0.0", "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" + "strip-json-comments": "^2.0.1", + "table": "^4.0.3", + "text-table": "^0.2.0" }, "dependencies": { + "ajv": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", + "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" + } + }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -4423,12 +4457,24 @@ "ms": "2.0.0" } }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, "globals": { "version": "11.7.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", "dev": true }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -4491,9 +4537,9 @@ } }, "eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", + "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { "esrecurse": "^4.1.0", @@ -4580,13 +4626,13 @@ } }, "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz", + "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", "dev": true, "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "^5.6.0", + "acorn-jsx": "^4.1.1" } }, "esprima": { @@ -4837,12 +4883,14 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true }, "fast-deep-equal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true }, "fast-diff": { "version": "1.1.2", @@ -4866,7 +4914,8 @@ "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", @@ -5008,12 +5057,14 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true }, "form-data": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "1.0.6", @@ -5589,6 +5640,12 @@ } } }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, "function-name-support": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/function-name-support/-/function-name-support-0.2.0.tgz", @@ -5644,6 +5701,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -5764,31 +5822,21 @@ "retry-axios": "^0.3.2" } }, - "google-auto-auth": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.10.1.tgz", - "integrity": "sha512-iIqSbY7Ypd32mnHGbYctp80vZzXoDlvI9gEfvtl3kmyy5HzOcrZCIGCBdSlIzRsg7nHpQiHE3Zl6Ycur6TSodQ==", - "requires": { - "async": "^2.3.0", - "gcp-metadata": "^0.6.1", - "google-auth-library": "^1.3.1", - "request": "^2.79.0" - } - }, "google-gax": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-0.16.1.tgz", - "integrity": "sha512-eP7UUkKvaHmmvCrr+rxzkIOeEKOnXmoib7/AkENDAuqlC9T2+lWlzwpthDRnitQcV8SblDMzsk73YPMPCDwPyQ==", + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-0.17.1.tgz", + "integrity": "sha512-fAKvFx++SRr6bGWamWuVOkJzJnQqMgpJkhaB2oEwfFJ91rbFgEmIPRmZZ/MeIVVFUOuHUVyZ8nwjm5peyTZJ6g==", "requires": { - "duplexify": "^3.5.4", - "extend": "^3.0.0", - "globby": "^8.0.0", - "google-auto-auth": "^0.10.0", - "google-proto-files": "^0.15.0", - "grpc": "^1.10.0", - "is-stream-ended": "^0.1.0", - "lodash": "^4.17.2", - "protobufjs": "^6.8.0", + "duplexify": "^3.6.0", + "extend": "^3.0.1", + "globby": "^8.0.1", + "google-auth-library": "^1.6.1", + "google-proto-files": "^0.16.0", + "grpc": "^1.12.2", + "is-stream-ended": "^0.1.4", + "lodash": "^4.17.10", + "protobufjs": "^6.8.6", + "retry-request": "^4.0.0", "through2": "^2.0.3" } }, @@ -5802,28 +5850,13 @@ } }, "google-proto-files": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.15.1.tgz", - "integrity": "sha512-ebtmWgi/ooR5Nl63qRVZZ6VLM6JOb5zTNxTT/ZAU8yfMOdcauoOZNNMOVg0pCmTjqWXeuuVbgPP0CwO5UHHzBQ==", + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.16.1.tgz", + "integrity": "sha512-ykdhaYDiU/jlyrkzZDPemraKwVIgLT31XMHVNSJW//R9VED56hqSDRMx1Jlxbf0O4iDZnBWQ0JQLHbM2r5+wuA==", "requires": { - "globby": "^7.1.1", + "globby": "^8.0.0", "power-assert": "^1.4.4", "protobufjs": "^6.8.0" - }, - "dependencies": { - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - } } }, "got": { @@ -6351,17 +6384,28 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true }, "har-validator": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, "requires": { "ajv": "^5.1.0", "har-schema": "^2.0.0" } }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", @@ -6389,6 +6433,12 @@ "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", "dev": true }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, "has-to-string-tag-x": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", @@ -6479,6 +6529,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -6591,22 +6642,21 @@ } }, "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", + "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", "dev": true, "requires": { "ansi-escapes": "^3.0.0", "chalk": "^2.0.0", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", - "external-editor": "^2.0.4", + "external-editor": "^2.1.0", "figures": "^2.0.0", "lodash": "^4.3.0", "mute-stream": "0.0.7", "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", + "rxjs": "^5.5.2", "string-width": "^2.1.0", "strip-ansi": "^4.0.0", "through": "^2.3.6" @@ -6731,6 +6781,12 @@ "builtin-modules": "^1.0.0" } }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "dev": true + }, "is-ci": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", @@ -6758,6 +6814,12 @@ } } }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -6969,6 +7031,15 @@ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", "dev": true }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -6992,10 +7063,17 @@ "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true }, "is-url": { "version": "1.2.4", @@ -7033,7 +7111,8 @@ "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true }, "istanbul-lib-coverage": { "version": "2.0.0", @@ -7107,6 +7186,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, "optional": true }, "jsdoc": { @@ -7158,12 +7238,14 @@ "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true }, "json-schema-traverse": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -7174,7 +7256,8 @@ "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true }, "json5": { "version": "0.5.1", @@ -7195,6 +7278,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -7702,12 +7786,14 @@ "mime-db": { "version": "1.33.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true }, "mime-types": { "version": "2.1.18", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dev": true, "requires": { "mime-db": "~1.33.0" } @@ -7887,6 +7973,12 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, + "nice-try": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "dev": true + }, "nise": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.2.tgz", @@ -10015,7 +10107,8 @@ "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true }, "object-assign": { "version": "4.1.1", @@ -10398,7 +10491,8 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true }, "pify": { "version": "3.0.0", @@ -10708,12 +10802,14 @@ "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true }, "query-string": { "version": "5.1.1", @@ -10880,6 +10976,15 @@ "safe-regex": "^1.1.0" } }, + "regexp.prototype.flags": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", + "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2" + } + }, "regexpp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", @@ -10969,6 +11074,7 @@ "version": "2.87.0", "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.6.0", @@ -11100,6 +11206,14 @@ "resolved": "https://registry.npmjs.org/retry-axios/-/retry-axios-0.3.2.tgz", "integrity": "sha512-jp4YlI0qyDFfXiXGhkCOliBN1G7fRH03Nqy8YdShzGqbY5/9S2x/IR6C88ls2DFkbWuL3ASkP7QD3pVrNpPgwQ==" }, + "retry-request": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.0.0.tgz", + "integrity": "sha512-S4HNLaWcMP6r8E4TMH52Y7/pM8uNayOcTDDQNBwsCccL1uI+Ol2TljxRDPzaNfbhOB30+XWP5NnZkB3LiJxi1w==", + "requires": { + "through2": "^2.0.0" + } + }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", @@ -11128,19 +11242,21 @@ "is-promise": "^2.1.0" } }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "rxjs": { + "version": "5.5.11", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz", + "integrity": "sha512-3bjO7UwWfA2CV7lmwYMBzj4fQ6Cq+ftHc2MvUe+WMS7wcdJ1LosDWmdjPQanYp2dBRj572p7PeU81JUxHKOcBA==", "dev": true, "requires": { - "rx-lite": "*" + "symbol-observable": "1.0.1" + }, + "dependencies": { + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + } } }, "safe-buffer": { @@ -11159,7 +11275,8 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "samsam": { "version": "1.3.0", @@ -11509,6 +11626,7 @@ "version": "1.14.2", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -11573,6 +11691,19 @@ "strip-ansi": "^3.0.0" } }, + "string.prototype.matchall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz", + "integrity": "sha512-WoZ+B2ypng1dp4iFLF2kmZlwwlE19gmjgKuhL1FJfDgCREWb3ye3SDVHSzLH6bxfnvYmkCxbzkmWcQZHA4P//Q==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.10.0", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "regexp.prototype.flags": "^1.2.0" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -11734,31 +11865,55 @@ "dev": true }, "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", + "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", "dev": true, "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", + "ajv": "^6.0.1", + "ajv-keywords": "^3.0.0", "chalk": "^2.1.0", "lodash": "^4.17.4", "slice-ansi": "1.0.0", "string-width": "^2.1.1" }, "dependencies": { + "ajv": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", + "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" + } + }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -11891,6 +12046,7 @@ "version": "2.3.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, "requires": { "punycode": "^1.4.1" } @@ -11922,6 +12078,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -11930,6 +12087,7 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, "optional": true }, "type-check": { @@ -11952,12 +12110,6 @@ "resolved": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz", "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=" }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", @@ -12182,6 +12334,23 @@ "xdg-basedir": "^3.0.0" } }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -12224,7 +12393,8 @@ "uuid": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "dev": true }, "validate-npm-package-license": { "version": "3.0.3", @@ -12240,6 +12410,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", diff --git a/packages/google-privacy-dlp/package.json b/packages/google-privacy-dlp/package.json index a0c59f01449..cd4cb240ded 100644 --- a/packages/google-privacy-dlp/package.json +++ b/packages/google-privacy-dlp/package.json @@ -53,13 +53,12 @@ "test": "npm run cover" }, "dependencies": { - "google-gax": "^0.16.0", + "google-gax": "^0.17.1", "lodash.merge": "^4.6.0", "protobufjs": "^6.8.0" }, "devDependencies": { "@google-cloud/nodejs-repo-tools": "^2.3.0", - "async": "^2.5.0", "codecov": "^3.0.0", "eslint": "^5.0.0", "eslint-config-prettier": "^2.6.0", @@ -71,7 +70,6 @@ "mocha": "^5.0.0", "nyc": "^12.0.2", "power-assert": "^1.4.4", - "prettier": "^1.7.4", - "through2": "^2.0.3" + "prettier": "^1.7.4" } } diff --git a/packages/google-privacy-dlp/protos/google/privacy/dlp/v2/dlp.proto b/packages/google-privacy-dlp/protos/google/privacy/dlp/v2/dlp.proto index 97b25f469f1..4b151b3ed68 100644 --- a/packages/google-privacy-dlp/protos/google/privacy/dlp/v2/dlp.proto +++ b/packages/google-privacy-dlp/protos/google/privacy/dlp/v2/dlp.proto @@ -41,11 +41,19 @@ option php_namespace = "Google\\Cloud\\Dlp\\V2"; // blocks or images. // The service also includes methods for sensitive data redaction and // scheduling of data scans on Google Cloud Platform based data sets. +// +// To learn more about concepts and find how-to guides see +// https://cloud.google.com/dlp/docs/. service DlpService { // Finds potentially sensitive info in content. // This method has limits on input size, processing time, and output size. - // [How-to guide for text](/dlp/docs/inspecting-text), [How-to guide for - // images](/dlp/docs/inspecting-images) + // + // When no InfoTypes or CustomInfoTypes are specified in this request, the + // system will automatically choose what detectors to run. By default this may + // be all types, but may change over time as detectors are updated. + // + // For how to guides, see https://cloud.google.com/dlp/docs/inspecting-images + // and https://cloud.google.com/dlp/docs/inspecting-text, rpc InspectContent(InspectContentRequest) returns (InspectContentResponse) { option (google.api.http) = { post: "/v2/{parent=projects/*}/content:inspect" @@ -55,7 +63,12 @@ service DlpService { // Redacts potentially sensitive info from an image. // This method has limits on input size, processing time, and output size. - // [How-to guide](/dlp/docs/redacting-sensitive-data-images) + // See https://cloud.google.com/dlp/docs/redacting-sensitive-data-images to + // learn more. + // + // When no InfoTypes or CustomInfoTypes are specified in this request, the + // system will automatically choose what detectors to run. By default this may + // be all types, but may change over time as detectors are updated. rpc RedactImage(RedactImageRequest) returns (RedactImageResponse) { option (google.api.http) = { post: "/v2/{parent=projects/*}/image:redact" @@ -65,7 +78,12 @@ service DlpService { // De-identifies potentially sensitive info from a ContentItem. // This method has limits on input size and output size. - // [How-to guide](/dlp/docs/deidentify-sensitive-data) + // See https://cloud.google.com/dlp/docs/deidentify-sensitive-data to + // learn more. + // + // When no InfoTypes or CustomInfoTypes are specified in this request, the + // system will automatically choose what detectors to run. By default this may + // be all types, but may change over time as detectors are updated. rpc DeidentifyContent(DeidentifyContentRequest) returns (DeidentifyContentResponse) { option (google.api.http) = { post: "/v2/{parent=projects/*}/content:deidentify" @@ -74,6 +92,9 @@ service DlpService { } // Re-identifies content that has been de-identified. + // See + // https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example + // to learn more. rpc ReidentifyContent(ReidentifyContentRequest) returns (ReidentifyContentResponse) { option (google.api.http) = { post: "/v2/{parent=projects/*}/content:reidentify" @@ -82,8 +103,8 @@ service DlpService { } // Returns a list of the sensitive information types that the DLP API - // supports. For more information, see [Listing supported predefined - // infoTypes](/dlp/docs/listing-infotypes). + // supports. See https://cloud.google.com/dlp/docs/infotypes-reference to + // learn more. rpc ListInfoTypes(ListInfoTypesRequest) returns (ListInfoTypesResponse) { option (google.api.http) = { get: "/v2/infoTypes" @@ -92,6 +113,7 @@ service DlpService { // Creates an InspectTemplate for re-using frequently used configuration // for inspecting content, images, and storage. + // See https://cloud.google.com/dlp/docs/creating-templates to learn more. rpc CreateInspectTemplate(CreateInspectTemplateRequest) returns (InspectTemplate) { option (google.api.http) = { post: "/v2/{parent=organizations/*}/inspectTemplates" @@ -104,6 +126,7 @@ service DlpService { } // Updates the InspectTemplate. + // See https://cloud.google.com/dlp/docs/creating-templates to learn more. rpc UpdateInspectTemplate(UpdateInspectTemplateRequest) returns (InspectTemplate) { option (google.api.http) = { patch: "/v2/{name=organizations/*/inspectTemplates/*}" @@ -116,6 +139,7 @@ service DlpService { } // Gets an InspectTemplate. + // See https://cloud.google.com/dlp/docs/creating-templates to learn more. rpc GetInspectTemplate(GetInspectTemplateRequest) returns (InspectTemplate) { option (google.api.http) = { get: "/v2/{name=organizations/*/inspectTemplates/*}" @@ -126,6 +150,7 @@ service DlpService { } // Lists InspectTemplates. + // See https://cloud.google.com/dlp/docs/creating-templates to learn more. rpc ListInspectTemplates(ListInspectTemplatesRequest) returns (ListInspectTemplatesResponse) { option (google.api.http) = { get: "/v2/{parent=organizations/*}/inspectTemplates" @@ -136,6 +161,7 @@ service DlpService { } // Deletes an InspectTemplate. + // See https://cloud.google.com/dlp/docs/creating-templates to learn more. rpc DeleteInspectTemplate(DeleteInspectTemplateRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v2/{name=organizations/*/inspectTemplates/*}" @@ -147,6 +173,8 @@ service DlpService { // Creates a DeidentifyTemplate for re-using frequently used configuration // for de-identifying content, images, and storage. + // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn + // more. rpc CreateDeidentifyTemplate(CreateDeidentifyTemplateRequest) returns (DeidentifyTemplate) { option (google.api.http) = { post: "/v2/{parent=organizations/*}/deidentifyTemplates" @@ -159,6 +187,8 @@ service DlpService { } // Updates the DeidentifyTemplate. + // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn + // more. rpc UpdateDeidentifyTemplate(UpdateDeidentifyTemplateRequest) returns (DeidentifyTemplate) { option (google.api.http) = { patch: "/v2/{name=organizations/*/deidentifyTemplates/*}" @@ -171,6 +201,8 @@ service DlpService { } // Gets a DeidentifyTemplate. + // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn + // more. rpc GetDeidentifyTemplate(GetDeidentifyTemplateRequest) returns (DeidentifyTemplate) { option (google.api.http) = { get: "/v2/{name=organizations/*/deidentifyTemplates/*}" @@ -181,6 +213,8 @@ service DlpService { } // Lists DeidentifyTemplates. + // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn + // more. rpc ListDeidentifyTemplates(ListDeidentifyTemplatesRequest) returns (ListDeidentifyTemplatesResponse) { option (google.api.http) = { get: "/v2/{parent=organizations/*}/deidentifyTemplates" @@ -191,6 +225,8 @@ service DlpService { } // Deletes a DeidentifyTemplate. + // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn + // more. rpc DeleteDeidentifyTemplate(DeleteDeidentifyTemplateRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v2/{name=organizations/*/deidentifyTemplates/*}" @@ -202,6 +238,7 @@ service DlpService { // Creates a job trigger to run DLP actions such as scanning storage for // sensitive information on a set schedule. + // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. rpc CreateJobTrigger(CreateJobTriggerRequest) returns (JobTrigger) { option (google.api.http) = { post: "/v2/{parent=projects/*}/jobTriggers" @@ -210,6 +247,7 @@ service DlpService { } // Updates a job trigger. + // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. rpc UpdateJobTrigger(UpdateJobTriggerRequest) returns (JobTrigger) { option (google.api.http) = { patch: "/v2/{name=projects/*/jobTriggers/*}" @@ -218,6 +256,7 @@ service DlpService { } // Gets a job trigger. + // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. rpc GetJobTrigger(GetJobTriggerRequest) returns (JobTrigger) { option (google.api.http) = { get: "/v2/{name=projects/*/jobTriggers/*}" @@ -225,6 +264,7 @@ service DlpService { } // Lists job triggers. + // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. rpc ListJobTriggers(ListJobTriggersRequest) returns (ListJobTriggersResponse) { option (google.api.http) = { get: "/v2/{parent=projects/*}/jobTriggers" @@ -232,6 +272,7 @@ service DlpService { } // Deletes a job trigger. + // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. rpc DeleteJobTrigger(DeleteJobTriggerRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v2/{name=projects/*/jobTriggers/*}" @@ -239,7 +280,12 @@ service DlpService { } // Creates a new job to inspect storage or calculate risk metrics. - // [How-to guide](/dlp/docs/compute-risk-analysis). + // See https://cloud.google.com/dlp/docs/inspecting-storage and + // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. + // + // When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the + // system will automatically choose what detectors to run. By default this may + // be all types, but may change over time as detectors are updated. rpc CreateDlpJob(CreateDlpJobRequest) returns (DlpJob) { option (google.api.http) = { post: "/v2/{parent=projects/*}/dlpJobs" @@ -248,6 +294,8 @@ service DlpService { } // Lists DlpJobs that match the specified filter in the request. + // See https://cloud.google.com/dlp/docs/inspecting-storage and + // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. rpc ListDlpJobs(ListDlpJobsRequest) returns (ListDlpJobsResponse) { option (google.api.http) = { get: "/v2/{parent=projects/*}/dlpJobs" @@ -255,6 +303,8 @@ service DlpService { } // Gets the latest state of a long-running DlpJob. + // See https://cloud.google.com/dlp/docs/inspecting-storage and + // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. rpc GetDlpJob(GetDlpJobRequest) returns (DlpJob) { option (google.api.http) = { get: "/v2/{name=projects/*/dlpJobs/*}" @@ -264,6 +314,8 @@ service DlpService { // Deletes a long-running DlpJob. This method indicates that the client is // no longer interested in the DlpJob result. The job will be cancelled if // possible. + // See https://cloud.google.com/dlp/docs/inspecting-storage and + // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. rpc DeleteDlpJob(DeleteDlpJobRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v2/{name=projects/*/dlpJobs/*}" @@ -273,6 +325,8 @@ service DlpService { // Starts asynchronous cancellation on a long-running DlpJob. The server // makes a best effort to cancel the DlpJob, but success is not // guaranteed. + // See https://cloud.google.com/dlp/docs/inspecting-storage and + // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. rpc CancelDlpJob(CancelDlpJobRequest) returns (google.protobuf.Empty) { option (google.api.http) = { post: "/v2/{name=projects/*/dlpJobs/*}:cancel" @@ -315,11 +369,17 @@ message InspectConfig { } // Restricts what info_types to look for. The values must correspond to - // InfoType values returned by ListInfoTypes or found in documentation. + // InfoType values returned by ListInfoTypes or listed at + // https://cloud.google.com/dlp/docs/infotypes-reference. + // + // When no InfoTypes or CustomInfoTypes are specified in a request, the + // system may automatically choose what detectors to run. By default this may + // be all types, but may change over time as detectors are updated. repeated InfoType info_types = 1; // Only returns findings equal or above this threshold. The default is // POSSIBLE. + // See https://cloud.google.com/dlp/docs/likelihood to learn more. Likelihood min_likelihood = 2; FindingLimits limits = 3; @@ -331,7 +391,8 @@ message InspectConfig { // When true, excludes type information of the findings. bool exclude_info_types = 5; - // Custom infoTypes provided by the user. + // CustomInfoTypes provided by the user. See + // https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. repeated CustomInfoType custom_info_types = 6; // List of options defining data content to scan. @@ -371,7 +432,9 @@ message ContentItem { // String data to inspect or redact. string value = 3; - // Structured content for inspection. + // Structured content for inspection. See + // https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to + // learn more. Table table = 4; // Content data to inspect or redact. Replaces `type` and `data`. @@ -380,6 +443,8 @@ message ContentItem { } // Structured content to inspect. Up to 50,000 `Value`s per request allowed. +// See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to +// learn more. message Table { message Row { repeated Value values = 1; @@ -408,16 +473,16 @@ message InspectResult { message Finding { // The content that was found. Even if the content is not textual, it // may be converted to a textual representation here. - // Provided if requested by the `InspectConfig` and the finding is + // Provided if `include_quote` is true and the finding is // less than or equal to 4096 bytes long. If the finding exceeds 4096 bytes // in length, the quote may be omitted. string quote = 1; // The type of content that might have been found. - // Provided if requested by the `InspectConfig`. + // Provided if `excluded_types` is false. InfoType info_type = 2; - // Estimate of how likely it is that the `info_type` is correct. + // Confidence of how likely it is that the `info_type` is correct. Likelihood likelihood = 3; // Where the content was found. @@ -537,8 +602,8 @@ message BoundingBox { int32 height = 4; } -// Request to search for potentially sensitive info in a list of items -// and replace it with a default or provided content. +// Request to search for potentially sensitive info in an image and redact it +// by covering it with a colored rectangle. message RedactImageRequest { // Configuration for determining how redaction of images should occur. message ImageRedactionConfig { @@ -551,7 +616,7 @@ message RedactImageRequest { InfoType info_type = 1; // If true, all text found in the image, regardless whether it matches an - // info_type, is redacted. + // info_type, is redacted. Only one should be provided. bool redact_all_text = 2; } @@ -569,6 +634,10 @@ message RedactImageRequest { // The configuration for specifying what content to redact from images. repeated ImageRedactionConfig image_redaction_configs = 5; + // Whether the response should include findings along with the redacted + // image. + bool include_findings = 6; + // The content must be PNG, JPEG, SVG or BMP. ByteContentItem byte_item = 7; } @@ -594,6 +663,9 @@ message RedactImageResponse { // set to true, then this field will include all text, if any, that was found // in the image. string extracted_text = 2; + + // The findings. Populated when include_findings in the request is true. + InspectResult inspect_result = 3; } // Request to de-identify a list of items. @@ -736,18 +808,27 @@ message OutputStorageConfig { oneof type { // Store findings in an existing table or a new table in an existing - // dataset. Each column in an existing table must have the same name, type, - // and mode of a field in the `Finding` object. If table_id is not set a new - // one will be generated for you with the following format: + // dataset. If table_id is not set a new one will be generated + // for you with the following format: // dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for // generating the date details. + // + // For Inspect, each column in an existing output table must have the same + // name, type, and mode of a field in the `Finding` object. + // + // For Risk, an existing output table should be the output of a previous + // Risk analysis job run on the same source table, with the same privacy + // metric and quasi-identifiers. Risk jobs that analyze the same table but + // compute a different privacy metric, or use different sets of + // quasi-identifiers, cannot store their results in the same table. BigQueryTable table = 1; } - // Schema used for writing the findings. Columns are derived from the - // `Finding` object. If appending to an existing table, any columns from the - // predefined schema that are missing will be added. No columns in the - // existing table will be deleted. + // Schema used for writing the findings for Inspect jobs. This field is only + // used for Inspect and must be unspecified for Risk jobs. Columns are derived + // from the `Finding` object. If appending to an existing table, any columns + // from the predefined schema that are missing will be added. No columns in + // the existing table will be deleted. // // If unspecified, then all available columns will be used for a new table, // and no changes will be made to an existing table. @@ -822,7 +903,8 @@ message ListInfoTypesResponse { repeated InfoTypeDescription info_types = 1; } -// Configuration for a risk analysis job. +// Configuration for a risk analysis job. See +// https://cloud.google.com/dlp/docs/concepts-risk-analysis to learn more. message RiskAnalysisJobConfig { // Privacy metric to compute. PrivacyMetric privacy_metric = 1; @@ -835,6 +917,61 @@ message RiskAnalysisJobConfig { repeated Action actions = 3; } +// A column with a semantic tag attached. +message QuasiId { + // Identifies the column. [required] + FieldId field = 1; + + // Semantic tag that identifies what a column contains, to determine which + // statistical model to use to estimate the reidentifiability of each + // value. [required] + oneof tag { + // A column can be tagged with a InfoType to use the relevant public + // dataset as a statistical model of population, if available. We + // currently support US ZIP codes, region codes, ages and genders. + // To programmatically obtain the list of supported InfoTypes, use + // ListInfoTypes with the supported_by=RISK_ANALYSIS filter. + InfoType info_type = 2; + + // A column can be tagged with a custom tag. In this case, the user must + // indicate an auxiliary table that contains statistical information on + // the possible values of this column (below). + string custom_tag = 3; + + // If no semantic tag is indicated, we infer the statistical model from + // the distribution of values in the input data + google.protobuf.Empty inferred = 4; + } +} + +// An auxiliary table containing statistical information on the relative +// frequency of different quasi-identifiers values. It has one or several +// quasi-identifiers columns, and one column that indicates the relative +// frequency of each quasi-identifier tuple. +// If a tuple is present in the data but not in the auxiliary table, the +// corresponding relative frequency is assumed to be zero (and thus, the +// tuple is highly reidentifiable). +message StatisticalTable { + // A quasi-identifier column has a custom_tag, used to know which column + // in the data corresponds to which column in the statistical model. + message QuasiIdentifierField { + FieldId field = 1; + + string custom_tag = 2; + } + + // Auxiliary table location. [required] + BigQueryTable table = 3; + + // Quasi-identifier columns. [required] + repeated QuasiIdentifierField quasi_ids = 1; + + // The relative frequency column must contain a floating-point number + // between 0 and 1 (inclusive). Null values are assumed to be zero. + // [required] + FieldId relative_frequency = 2; +} + // Privacy metric to compute for reidentification risk analysis. message PrivacyMetric { // Compute numerical stats over an individual column, including @@ -894,8 +1031,8 @@ message PrivacyMetric { // using publicly available data (like the US Census), or using a custom // statistical model (indicated as one or several BigQuery tables), or by // extrapolating from the distribution of values in the input dataset. + // A column with a semantic tag attached. message KMapEstimationConfig { - // A column with a semantic tag attached. message TaggedField { // Identifies the column. [required] FieldId field = 1; @@ -965,6 +1102,26 @@ message PrivacyMetric { repeated AuxiliaryTable auxiliary_tables = 3; } + // δ-presence metric, used to estimate how likely it is for an attacker to + // figure out that one given individual appears in a de-identified dataset. + // Similarly to the k-map metric, we cannot compute δ-presence exactly without + // knowing the attack dataset, so we use a statistical model instead. + message DeltaPresenceEstimationConfig { + // Fields considered to be quasi-identifiers. No two fields can have the + // same tag. [required] + repeated QuasiId quasi_ids = 1; + + // ISO 3166-1 alpha-2 region code to use in the statistical modeling. + // Required if no column is tagged with a region-specific InfoType (like + // US_ZIP_5) or a region code. + string region_code = 2; + + // Several auxiliary tables can be used in the analysis. Each custom_tag + // used to tag a quasi-identifiers field must appear in exactly one + // field of one auxiliary table. + repeated StatisticalTable auxiliary_tables = 3; + } + oneof type { NumericalStatsConfig numerical_stats_config = 1; @@ -975,6 +1132,8 @@ message PrivacyMetric { LDiversityConfig l_diversity_config = 4; KMapEstimationConfig k_map_estimation_config = 5; + + DeltaPresenceEstimationConfig delta_presence_estimation_config = 6; } } @@ -1144,6 +1303,63 @@ message AnalyzeDataSourceRiskDetails { repeated KMapEstimationHistogramBucket k_map_estimation_histogram = 1; } + // Result of the δ-presence computation. Note that these results are an + // estimation, not exact values. + message DeltaPresenceEstimationResult { + // A tuple of values for the quasi-identifier columns. + message DeltaPresenceEstimationQuasiIdValues { + // The quasi-identifier values. + repeated Value quasi_ids_values = 1; + + // The estimated probability that a given individual sharing these + // quasi-identifier values is in the dataset. This value, typically called + // δ, is the ratio between the number of records in the dataset with these + // quasi-identifier values, and the total number of individuals (inside + // *and* outside the dataset) with these quasi-identifier values. + // For example, if there are 15 individuals in the dataset who share the + // same quasi-identifier values, and an estimated 100 people in the entire + // population with these values, then δ is 0.15. + double estimated_probability = 2; + } + + // A DeltaPresenceEstimationHistogramBucket message with the following + // values: + // min_probability: 0.1 + // max_probability: 0.2 + // frequency: 42 + // means that there are 42 records for which δ is in [0.1, 0.2). An + // important particular case is when min_probability = max_probability = 1: + // then, every individual who shares this quasi-identifier combination is in + // the dataset. + message DeltaPresenceEstimationHistogramBucket { + // Between 0 and 1. + double min_probability = 1; + + // Always greater than or equal to min_probability. + double max_probability = 2; + + // Number of records within these probability bounds. + int64 bucket_size = 5; + + // Sample of quasi-identifier tuple values in this bucket. The total + // number of classes returned per bucket is capped at 20. + repeated DeltaPresenceEstimationQuasiIdValues bucket_values = 6; + + // Total number of distinct quasi-identifier tuple values in this bucket. + int64 bucket_value_count = 7; + } + + // The intervals [min_probability, max_probability) do not overlap. If a + // value doesn't correspond to any such interval, the associated frequency + // is zero. For example, the following records: + // {min_probability: 0, max_probability: 0.1, frequency: 17} + // {min_probability: 0.2, max_probability: 0.3, frequency: 42} + // {min_probability: 0.3, max_probability: 0.4, frequency: 99} + // mean that there are no record with an estimated probability in [0.1, 0.2) + // nor larger or equal to 0.4. + repeated DeltaPresenceEstimationHistogramBucket delta_presence_estimation_histogram = 1; + } + // Privacy metric to compute. PrivacyMetric requested_privacy_metric = 1; @@ -1161,6 +1377,8 @@ message AnalyzeDataSourceRiskDetails { LDiversityResult l_diversity_result = 6; KMapEstimationResult k_map_estimation_result = 7; + + DeltaPresenceEstimationResult delta_presence_estimation_result = 9; } } @@ -1395,6 +1613,8 @@ message CharacterMaskConfig { // If the bound Value type differs from the type of data // being transformed, we will first attempt converting the type of the data to // be transformed to match the type of the bound before comparing. +// +// See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. message FixedSizeBucketingConfig { // Lower bound value of buckets. All values less than `lower_bound` are // grouped together into a single bucket; for example if `lower_bound` = 10, @@ -1422,6 +1642,7 @@ message FixedSizeBucketingConfig { // If the bound `Value` type differs from the type of data being transformed, we // will first attempt converting the type of the data to be transformed to match // the type of the bound before comparing. +// See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. message BucketingConfig { // Bucket is represented as a range, along with replacement values. message Bucket { @@ -1450,7 +1671,7 @@ message BucketingConfig { // replaced with the same surrogate. // Identifiers must be at least two characters long. // In the case that the identifier is the empty string, it will be skipped. -// See [Pseudonymization](/dlp/docs/pseudonymization) for example usage. +// See https://cloud.google.com/dlp/docs/pseudonymization to learn more. message CryptoReplaceFfxFpeConfig { // These are commonly used subsets of the alphabet that the FFX mode // natively supports. In the algorithm, the alphabet is selected using @@ -1493,8 +1714,7 @@ message CryptoReplaceFfxFpeConfig { // such that: // // - a 64 bit integer is encoded followed by a single byte of value 1 - // - a string is encoded in UTF-8 format followed by a single byte of value - // å 2 + // - a string is encoded in UTF-8 format followed by a single byte of value 2 FieldId context = 2; oneof alphabet { @@ -1588,7 +1808,8 @@ message KmsWrappedCryptoKey { } // Shifts dates by random number of days, with option to be consistent for the -// same context. +// same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting +// to learn more. message DateShiftConfig { // Range of shift in days. Actual shift will be selected at random within this // range (inclusive ends). Negative means shift to earlier in time. Must not @@ -1624,8 +1845,9 @@ message InfoTypeTransformations { // A transformation to apply to text that is identified as a specific // info_type. message InfoTypeTransformation { - // InfoTypes to apply the transformation to. Empty list will match all - // available infoTypes for this transformation. + // InfoTypes to apply the transformation to. An empty list will cause + // this transformation to apply to all findings that correspond to + // infoTypes that were requested in `InspectConfig`. repeated InfoType info_types = 1; // Primitive transformation to apply to the infoType. [required] @@ -1802,20 +2024,21 @@ message TransformationSummary { message Schedule { oneof option { // With this option a job is started a regular periodic basis. For - // example: every 10 minutes. + // example: every day (86400 seconds). // // A scheduled start time will be skipped if the previous // execution has not ended when its scheduled time occurs. // // This value must be set to a time duration greater than or equal - // to 60 minutes and can be no longer than 60 days. + // to 1 day and can be no longer than 60 days. google.protobuf.Duration recurrence_period_duration = 1; } } // The inspectTemplate contains a configuration (set of types of sensitive data // to be detected) to be used anywhere you otherwise would normally specify -// InspectConfig. +// InspectConfig. See https://cloud.google.com/dlp/docs/concepts-templates +// to learn more. message InspectTemplate { // The template name. Output only. // @@ -1841,6 +2064,7 @@ message InspectTemplate { } // The DeidentifyTemplates contains instructions on how to deidentify content. +// See https://cloud.google.com/dlp/docs/concepts-templates to learn more. message DeidentifyTemplate { // The template name. Output only. // @@ -1876,6 +2100,7 @@ message Error { } // Contains a configuration to make dlp api calls on a repeating basis. +// See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more. message JobTrigger { // What event needs to occur for a new job to be started. message Trigger { @@ -1943,11 +2168,12 @@ message JobTrigger { } // A task to execute on the completion of a job. +// See https://cloud.google.com/dlp/docs/concepts-actions to learn more. message Action { // If set, the detailed findings will be persisted to the specified // OutputStorageConfig. Only a single instance of this action can be // specified. - // Compatible with: Inspect + // Compatible with: Inspect, Risk message SaveFindings { OutputStorageConfig output_config = 1; } @@ -2117,30 +2343,29 @@ message CreateDlpJobRequest { // Request message for ListJobTriggers. message ListJobTriggersRequest { - // The parent resource name, for example projects/my-project-id. + // The parent resource name, for example `projects/my-project-id`. string parent = 1; // Optional page token to continue retrieval. Comes from previous call - // to ListJobTriggers. `order_by` and `filter` should not change for - // subsequent calls, but can be omitted if token is specified. + // to ListJobTriggers. `order_by` field must not + // change for subsequent calls. string page_token = 2; // Optional size of the page, can be limited by a server. int32 page_size = 3; // Optional comma separated list of triggeredJob fields to order by, - // followed by 'asc/desc' postfix, i.e. - // `"create_time asc,name desc,schedule_mode asc"`. This list is - // case-insensitive. + // followed by `asc` or `desc` postfix. This list is case-insensitive, + // default sorting order is ascending, redundant space characters are + // insignificant. // - // Example: `"name asc,schedule_mode desc, status desc"` + // Example: `name asc,update_time, create_time desc` // - // Supported filters keys and values are: + // Supported fields are: // // - `create_time`: corresponds to time the triggeredJob was created. // - `update_time`: corresponds to time the triggeredJob was last updated. - // - `name`: corresponds to JobTrigger's display name. - // - `status`: corresponds to the triggeredJob status. + // - `name`: corresponds to JobTrigger's name. string order_by = 4; } diff --git a/packages/google-privacy-dlp/protos/google/privacy/dlp/v2/storage.proto b/packages/google-privacy-dlp/protos/google/privacy/dlp/v2/storage.proto index 28d3c6e4d07..5c2ca5031a4 100644 --- a/packages/google-privacy-dlp/protos/google/privacy/dlp/v2/storage.proto +++ b/packages/google-privacy-dlp/protos/google/privacy/dlp/v2/storage.proto @@ -29,7 +29,10 @@ option php_namespace = "Google\\Cloud\\Dlp\\V2"; // Type of information detected by the API. message InfoType { - // Name of the information type. + // Name of the information type. Either a name of your choosing when + // creating a CustomInfoType, or one of the names listed + // at https://cloud.google.com/dlp/docs/infotypes-reference when specifying + // a built-in type. string name = 1; } @@ -86,13 +89,13 @@ message CustomInfoType { // These types of transformations are // those that perform pseudonymization, thereby producing a "surrogate" as // output. This should be used in conjunction with a field on the - // transformation such as `surrogate_info_type`. This custom info type does + // transformation such as `surrogate_info_type`. This CustomInfoType does // not support the use of `detection_rules`. message SurrogateType { } - // Rule for modifying a custom info type to alter behavior under certain + // Rule for modifying a CustomInfoType to alter behavior under certain // circumstances, depending on the specific details of the rule. Not supported // for the `surrogate_type` custom info type. message DetectionRule { @@ -125,10 +128,10 @@ message CustomInfoType { } } - // Detection rule that adjusts the likelihood of findings within a certain + // The rule that adjusts the likelihood of findings within a certain // proximity of hotwords. message HotwordRule { - // Regex pattern defining what qualifies as a hotword. + // Regular expression pattern defining what qualifies as a hotword. Regex hotword_regex = 1; // Proximity of the finding within which the entire hotword must reside. @@ -151,29 +154,30 @@ message CustomInfoType { } } - // Info type configuration. All custom info types must have configurations - // that do not conflict with built-in info types or other custom info types. + // All CustomInfoTypes must have a name + // that does not conflict with built-in InfoTypes or other CustomInfoTypes. InfoType info_type = 1; - // Likelihood to return for this custom info type. This base value can be + // Likelihood to return for this CustomInfoType. This base value can be // altered by a detection rule if the finding meets the criteria specified by // the rule. Defaults to `VERY_LIKELY` if not specified. Likelihood likelihood = 6; oneof type { - // Dictionary-based custom info type. + // A list of phrases to detect as a CustomInfoType. Dictionary dictionary = 2; - // Regex-based custom info type. + // Regular expression based CustomInfoType. Regex regex = 3; - // Surrogate info type. + // Message for detecting output from deidentification transformations that + // support reversing. SurrogateType surrogate_type = 4; } - // Set of detection rules to apply to all findings of this custom info type. + // Set of detection rules to apply to all findings of this CustomInfoType. // Rules are applied in order that they are specified. Not supported for the - // `surrogate_type` custom info type. + // `surrogate_type` CustomInfoType. repeated DetectionRule detection_rules = 7; } @@ -223,6 +227,20 @@ message CloudStorageOptions { string url = 1; } + // How to sample bytes if not all bytes are scanned. Meaningful only when used + // in conjunction with bytes_limit_per_file. If not specified, scanning would + // start from the top. + enum SampleMethod { + SAMPLE_METHOD_UNSPECIFIED = 0; + + // Scan from the top (default). + TOP = 1; + + // For each file larger than bytes_limit_per_file, randomly pick the offset + // to start scanning. The scanned bytes are contiguous. + RANDOM_START = 2; + } + FileSet file_set = 1; // Max number of bytes to scan from a file. If a scanned file's size is bigger @@ -233,9 +251,16 @@ message CloudStorageOptions { // If empty, all files are scanned and available data format processors // are applied. repeated FileType file_types = 5; + + SampleMethod sample_method = 6; + + // Limits the number of files to scan to this percentage of the input FileSet. + // Number of files scanned is rounded down. Must be between 0 and 100, + // inclusively. Both 0 and 100 means no limit. Defaults to 0. + int32 files_limit_percent = 7; } -// Message representing a path in Cloud Storage. +// Message representing a single file or path in Cloud Storage. message CloudStoragePath { // A url representing a file or path (no wildcards) in Cloud Storage. // Example: gs://[BUCKET_NAME]/dictionary.txt @@ -244,6 +269,19 @@ message CloudStoragePath { // Options defining BigQuery table and row identifiers. message BigQueryOptions { + // How to sample rows if not all rows are scanned. Meaningful only when used + // in conjunction with rows_limit. If not specified, scanning would start + // from the top. + enum SampleMethod { + SAMPLE_METHOD_UNSPECIFIED = 0; + + // Scan from the top (default). + TOP = 1; + + // Randomly pick the row to start scanning. The scanned rows are contiguous. + RANDOM_START = 2; + } + // Complete BigQuery table reference. BigQueryTable table_reference = 1; @@ -255,6 +293,8 @@ message BigQueryOptions { // rest of the rows are omitted. If not set, or if set to 0, all rows will be // scanned. Cannot be used in conjunction with TimespanConfig. int64 rows_limit = 3; + + SampleMethod sample_method = 4; } // Shared message indicating Cloud storage type. @@ -402,7 +442,7 @@ message EntityId { // Categorization of results based on how likely they are to represent a match, // based on the number of elements they contain which imply a match. enum Likelihood { - // Default value; information with all likelihoods is included. + // Default value; same as POSSIBLE. LIKELIHOOD_UNSPECIFIED = 0; // Few matching elements. diff --git a/packages/google-privacy-dlp/src/index.js b/packages/google-privacy-dlp/src/index.js index 5fabfc4f64a..6118196830c 100644 --- a/packages/google-privacy-dlp/src/index.js +++ b/packages/google-privacy-dlp/src/index.js @@ -1,10 +1,10 @@ -// Copyright 2017, Google LLC All rights reserved. +// Copyright 2018 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 +// https://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, diff --git a/packages/google-privacy-dlp/src/v2/dlp_service_client.js b/packages/google-privacy-dlp/src/v2/dlp_service_client.js index 1f17c48aca8..43da8e699e6 100644 --- a/packages/google-privacy-dlp/src/v2/dlp_service_client.js +++ b/packages/google-privacy-dlp/src/v2/dlp_service_client.js @@ -29,6 +29,9 @@ const VERSION = require('../../package.json').version; * The service also includes methods for sensitive data redaction and * scheduling of data scans on Google Cloud Platform based data sets. * + * To learn more about concepts and find how-to guides see + * https://cloud.google.com/dlp/docs/. + * * @class * @memberof v2 */ @@ -76,14 +79,14 @@ class DlpServiceClient { // Create a `gaxGrpc` object, with any grpc-specific options // sent to the client. opts.scopes = this.constructor.scopes; - var gaxGrpc = gax.grpc(opts); + var gaxGrpc = new gax.GrpcClient(opts); // Save the auth object to the client, for use by other methods. this.auth = gaxGrpc.auth; // Determine the client header string. var clientHeader = [ - `gl-node/${process.version.node}`, + `gl-node/${process.version}`, `grpc/${gaxGrpc.grpcVersion}`, `gax/${gax.version}`, `gapic/${VERSION}`, @@ -253,8 +256,13 @@ class DlpServiceClient { /** * Finds potentially sensitive info in content. * This method has limits on input size, processing time, and output size. - * [How-to guide for text](https://cloud.google.com/dlp/docs/inspecting-text), [How-to guide for - * images](https://cloud.google.com/dlp/docs/inspecting-images) + * + * When no InfoTypes or CustomInfoTypes are specified in this request, the + * system will automatically choose what detectors to run. By default this may + * be all types, but may change over time as detectors are updated. + * + * For how to guides, see https://cloud.google.com/dlp/docs/inspecting-images + * and https://cloud.google.com/dlp/docs/inspecting-text, * * @param {Object} request * The request object that will be sent. @@ -317,7 +325,12 @@ class DlpServiceClient { /** * Redacts potentially sensitive info from an image. * This method has limits on input size, processing time, and output size. - * [How-to guide](https://cloud.google.com/dlp/docs/redacting-sensitive-data-images) + * See https://cloud.google.com/dlp/docs/redacting-sensitive-data-images to + * learn more. + * + * When no InfoTypes or CustomInfoTypes are specified in this request, the + * system will automatically choose what detectors to run. By default this may + * be all types, but may change over time as detectors are updated. * * @param {Object} request * The request object that will be sent. @@ -331,6 +344,9 @@ class DlpServiceClient { * The configuration for specifying what content to redact from images. * * This object should have the same structure as [ImageRedactionConfig]{@link google.privacy.dlp.v2.ImageRedactionConfig} + * @param {boolean} [request.includeFindings] + * Whether the response should include findings along with the redacted + * image. * @param {Object} [request.byteItem] * The content must be PNG, JPEG, SVG or BMP. * @@ -377,7 +393,12 @@ class DlpServiceClient { /** * De-identifies potentially sensitive info from a ContentItem. * This method has limits on input size and output size. - * [How-to guide](https://cloud.google.com/dlp/docs/deidentify-sensitive-data) + * See https://cloud.google.com/dlp/docs/deidentify-sensitive-data to + * learn more. + * + * When no InfoTypes or CustomInfoTypes are specified in this request, the + * system will automatically choose what detectors to run. By default this may + * be all types, but may change over time as detectors are updated. * * @param {Object} request * The request object that will be sent. @@ -452,6 +473,9 @@ class DlpServiceClient { /** * Re-identifies content that has been de-identified. + * See + * https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example + * to learn more. * * @param {Object} request * The request object that will be sent. @@ -531,8 +555,8 @@ class DlpServiceClient { /** * Returns a list of the sensitive information types that the DLP API - * supports. For more information, see [Listing supported predefined - * infoTypes](https://cloud.google.com/dlp/docs/listing-infotypes). + * supports. See https://cloud.google.com/dlp/docs/infotypes-reference to + * learn more. * * @param {Object} request * The request object that will be sent. @@ -585,6 +609,7 @@ class DlpServiceClient { /** * Creates an InspectTemplate for re-using frequently used configuration * for inspecting content, images, and storage. + * See https://cloud.google.com/dlp/docs/creating-templates to learn more. * * @param {Object} request * The request object that will be sent. @@ -645,6 +670,7 @@ class DlpServiceClient { /** * Updates the InspectTemplate. + * See https://cloud.google.com/dlp/docs/creating-templates to learn more. * * @param {Object} request * The request object that will be sent. @@ -705,6 +731,7 @@ class DlpServiceClient { /** * Gets an InspectTemplate. + * See https://cloud.google.com/dlp/docs/creating-templates to learn more. * * @param {Object} request * The request object that will be sent. @@ -753,6 +780,7 @@ class DlpServiceClient { /** * Lists InspectTemplates. + * See https://cloud.google.com/dlp/docs/creating-templates to learn more. * * @param {Object} request * The request object that will be sent. @@ -904,6 +932,7 @@ class DlpServiceClient { /** * Deletes an InspectTemplate. + * See https://cloud.google.com/dlp/docs/creating-templates to learn more. * * @param {Object} request * The request object that will be sent. @@ -949,6 +978,8 @@ class DlpServiceClient { /** * Creates a DeidentifyTemplate for re-using frequently used configuration * for de-identifying content, images, and storage. + * See https://cloud.google.com/dlp/docs/creating-templates-deid to learn + * more. * * @param {Object} request * The request object that will be sent. @@ -1009,6 +1040,8 @@ class DlpServiceClient { /** * Updates the DeidentifyTemplate. + * See https://cloud.google.com/dlp/docs/creating-templates-deid to learn + * more. * * @param {Object} request * The request object that will be sent. @@ -1069,6 +1102,8 @@ class DlpServiceClient { /** * Gets a DeidentifyTemplate. + * See https://cloud.google.com/dlp/docs/creating-templates-deid to learn + * more. * * @param {Object} request * The request object that will be sent. @@ -1121,6 +1156,8 @@ class DlpServiceClient { /** * Lists DeidentifyTemplates. + * See https://cloud.google.com/dlp/docs/creating-templates-deid to learn + * more. * * @param {Object} request * The request object that will be sent. @@ -1276,6 +1313,8 @@ class DlpServiceClient { /** * Deletes a DeidentifyTemplate. + * See https://cloud.google.com/dlp/docs/creating-templates-deid to learn + * more. * * @param {Object} request * The request object that will be sent. @@ -1320,7 +1359,12 @@ class DlpServiceClient { /** * Creates a new job to inspect storage or calculate risk metrics. - * [How-to guide](https://cloud.google.com/dlp/docs/compute-risk-analysis). + * See https://cloud.google.com/dlp/docs/inspecting-storage and + * https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. + * + * When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the + * system will automatically choose what detectors to run. By default this may + * be all types, but may change over time as detectors are updated. * * @param {Object} request * The request object that will be sent. @@ -1376,6 +1420,8 @@ class DlpServiceClient { /** * Lists DlpJobs that match the specified filter in the request. + * See https://cloud.google.com/dlp/docs/inspecting-storage and + * https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. * * @param {Object} request * The request object that will be sent. @@ -1581,6 +1627,8 @@ class DlpServiceClient { /** * Gets the latest state of a long-running DlpJob. + * See https://cloud.google.com/dlp/docs/inspecting-storage and + * https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. * * @param {Object} request * The request object that will be sent. @@ -1629,6 +1677,8 @@ class DlpServiceClient { * Deletes a long-running DlpJob. This method indicates that the client is * no longer interested in the DlpJob result. The job will be cancelled if * possible. + * See https://cloud.google.com/dlp/docs/inspecting-storage and + * https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. * * @param {Object} request * The request object that will be sent. @@ -1669,6 +1719,8 @@ class DlpServiceClient { * Starts asynchronous cancellation on a long-running DlpJob. The server * makes a best effort to cancel the DlpJob, but success is not * guaranteed. + * See https://cloud.google.com/dlp/docs/inspecting-storage and + * https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. * * @param {Object} request * The request object that will be sent. @@ -1707,11 +1759,12 @@ class DlpServiceClient { /** * Lists job triggers. + * See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. * * @param {Object} request * The request object that will be sent. * @param {string} request.parent - * The parent resource name, for example projects/my-project-id. + * The parent resource name, for example `projects/my-project-id`. * @param {number} [request.pageSize] * The maximum number of resources contained in the underlying API * response. If page streaming is performed per-resource, this @@ -1720,18 +1773,17 @@ class DlpServiceClient { * resources in a page. * @param {string} [request.orderBy] * Optional comma separated list of triggeredJob fields to order by, - * followed by 'asc/desc' postfix, i.e. - * `"create_time asc,name desc,schedule_mode asc"`. This list is - * case-insensitive. + * followed by `asc` or `desc` postfix. This list is case-insensitive, + * default sorting order is ascending, redundant space characters are + * insignificant. * - * Example: `"name asc,schedule_mode desc, status desc"` + * Example: `name asc,update_time, create_time desc` * - * Supported filters keys and values are: + * Supported fields are: * * - `create_time`: corresponds to time the triggeredJob was created. * - `update_time`: corresponds to time the triggeredJob was last updated. - * - `name`: corresponds to JobTrigger's display name. - * - `status`: corresponds to the triggeredJob status. + * - `name`: corresponds to JobTrigger's name. * @param {Object} [options] * Optional parameters. You can override the default settings for this call, e.g, timeout, * retries, paginations, etc. See [gax.CallOptions]{@link https://googleapis.github.io/gax-nodejs/global.html#CallOptions} for the details. @@ -1829,7 +1881,7 @@ class DlpServiceClient { * @param {Object} request * The request object that will be sent. * @param {string} request.parent - * The parent resource name, for example projects/my-project-id. + * The parent resource name, for example `projects/my-project-id`. * @param {number} [request.pageSize] * The maximum number of resources contained in the underlying API * response. If page streaming is performed per-resource, this @@ -1838,18 +1890,17 @@ class DlpServiceClient { * resources in a page. * @param {string} [request.orderBy] * Optional comma separated list of triggeredJob fields to order by, - * followed by 'asc/desc' postfix, i.e. - * `"create_time asc,name desc,schedule_mode asc"`. This list is - * case-insensitive. + * followed by `asc` or `desc` postfix. This list is case-insensitive, + * default sorting order is ascending, redundant space characters are + * insignificant. * - * Example: `"name asc,schedule_mode desc, status desc"` + * Example: `name asc,update_time, create_time desc` * - * Supported filters keys and values are: + * Supported fields are: * * - `create_time`: corresponds to time the triggeredJob was created. * - `update_time`: corresponds to time the triggeredJob was last updated. - * - `name`: corresponds to JobTrigger's display name. - * - `status`: corresponds to the triggeredJob status. + * - `name`: corresponds to JobTrigger's name. * @param {Object} [options] * Optional parameters. You can override the default settings for this call, e.g, timeout, * retries, paginations, etc. See [gax.CallOptions]{@link https://googleapis.github.io/gax-nodejs/global.html#CallOptions} for the details. @@ -1884,6 +1935,7 @@ class DlpServiceClient { /** * Gets a job trigger. + * See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. * * @param {Object} request * The request object that will be sent. @@ -1931,6 +1983,7 @@ class DlpServiceClient { /** * Deletes a job trigger. + * See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. * * @param {Object} request * The request object that will be sent. @@ -1970,6 +2023,7 @@ class DlpServiceClient { /** * Updates a job trigger. + * See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. * * @param {Object} request * The request object that will be sent. @@ -2026,6 +2080,7 @@ class DlpServiceClient { /** * Creates a job trigger to run DLP actions such as scanning storage for * sensitive information on a set schedule. + * See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. * * @param {Object} request * The request object that will be sent. diff --git a/packages/google-privacy-dlp/src/v2/doc/google/privacy/dlp/v2/doc_dlp.js b/packages/google-privacy-dlp/src/v2/doc/google/privacy/dlp/v2/doc_dlp.js index 06b8a281107..f3bb1e86552 100644 --- a/packages/google-privacy-dlp/src/v2/doc/google/privacy/dlp/v2/doc_dlp.js +++ b/packages/google-privacy-dlp/src/v2/doc/google/privacy/dlp/v2/doc_dlp.js @@ -22,13 +22,19 @@ * * @property {Object[]} infoTypes * Restricts what info_types to look for. The values must correspond to - * InfoType values returned by ListInfoTypes or found in documentation. + * InfoType values returned by ListInfoTypes or listed at + * https://cloud.google.com/dlp/docs/infotypes-reference. + * + * When no InfoTypes or CustomInfoTypes are specified in a request, the + * system may automatically choose what detectors to run. By default this may + * be all types, but may change over time as detectors are updated. * * This object should have the same structure as [InfoType]{@link google.privacy.dlp.v2.InfoType} * * @property {number} minLikelihood * Only returns findings equal or above this threshold. The default is * POSSIBLE. + * See https://cloud.google.com/dlp/docs/likelihood to learn more. * * The number should be among the values of [Likelihood]{@link google.privacy.dlp.v2.Likelihood} * @@ -43,7 +49,8 @@ * When true, excludes type information of the findings. * * @property {Object[]} customInfoTypes - * Custom infoTypes provided by the user. + * CustomInfoTypes provided by the user. See + * https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. * * This object should have the same structure as [CustomInfoType]{@link google.privacy.dlp.v2.CustomInfoType} * @@ -149,7 +156,9 @@ var ByteContentItem = { * String data to inspect or redact. * * @property {Object} table - * Structured content for inspection. + * Structured content for inspection. See + * https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to + * learn more. * * This object should have the same structure as [Table]{@link google.privacy.dlp.v2.Table} * @@ -168,6 +177,8 @@ var ContentItem = { /** * Structured content to inspect. Up to 50,000 `Value`s per request allowed. + * See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to + * learn more. * * @property {Object[]} headers * This object should have the same structure as [FieldId]{@link google.privacy.dlp.v2.FieldId} @@ -225,18 +236,18 @@ var InspectResult = { * @property {string} quote * The content that was found. Even if the content is not textual, it * may be converted to a textual representation here. - * Provided if requested by the `InspectConfig` and the finding is + * Provided if `include_quote` is true and the finding is * less than or equal to 4096 bytes long. If the finding exceeds 4096 bytes * in length, the quote may be omitted. * * @property {Object} infoType * The type of content that might have been found. - * Provided if requested by the `InspectConfig`. + * Provided if `excluded_types` is false. * * This object should have the same structure as [InfoType]{@link google.privacy.dlp.v2.InfoType} * * @property {number} likelihood - * Estimate of how likely it is that the `info_type` is correct. + * Confidence of how likely it is that the `info_type` is correct. * * The number should be among the values of [Likelihood]{@link google.privacy.dlp.v2.Likelihood} * @@ -454,8 +465,8 @@ var BoundingBox = { }; /** - * Request to search for potentially sensitive info in a list of items - * and replace it with a default or provided content. + * Request to search for potentially sensitive info in an image and redact it + * by covering it with a colored rectangle. * * @property {string} parent * The parent resource name, for example projects/my-project-id. @@ -470,6 +481,10 @@ var BoundingBox = { * * This object should have the same structure as [ImageRedactionConfig]{@link google.privacy.dlp.v2.ImageRedactionConfig} * + * @property {boolean} includeFindings + * Whether the response should include findings along with the redacted + * image. + * * @property {Object} byteItem * The content must be PNG, JPEG, SVG or BMP. * @@ -495,7 +510,7 @@ var RedactImageRequest = { * * @property {boolean} redactAllText * If true, all text found in the image, regardless whether it matches an - * info_type, is redacted. + * info_type, is redacted. Only one should be provided. * * @property {Object} redactionColor * The color to use when redacting content from an image. If not specified, @@ -543,6 +558,11 @@ var Color = { * set to true, then this field will include all text, if any, that was found * in the image. * + * @property {Object} inspectResult + * The findings. Populated when include_findings in the request is true. + * + * This object should have the same structure as [InspectResult]{@link google.privacy.dlp.v2.InspectResult} + * * @typedef RedactImageResponse * @memberof google.privacy.dlp.v2 * @see [google.privacy.dlp.v2.RedactImageResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/privacy/dlp/v2/dlp.proto} @@ -745,19 +765,28 @@ var InspectContentResponse = { * * @property {Object} table * Store findings in an existing table or a new table in an existing - * dataset. Each column in an existing table must have the same name, type, - * and mode of a field in the `Finding` object. If table_id is not set a new - * one will be generated for you with the following format: + * dataset. If table_id is not set a new one will be generated + * for you with the following format: * dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for * generating the date details. * + * For Inspect, each column in an existing output table must have the same + * name, type, and mode of a field in the `Finding` object. + * + * For Risk, an existing output table should be the output of a previous + * Risk analysis job run on the same source table, with the same privacy + * metric and quasi-identifiers. Risk jobs that analyze the same table but + * compute a different privacy metric, or use different sets of + * quasi-identifiers, cannot store their results in the same table. + * * This object should have the same structure as [BigQueryTable]{@link google.privacy.dlp.v2.BigQueryTable} * * @property {number} outputSchema - * Schema used for writing the findings. Columns are derived from the - * `Finding` object. If appending to an existing table, any columns from the - * predefined schema that are missing will be added. No columns in the - * existing table will be deleted. + * Schema used for writing the findings for Inspect jobs. This field is only + * used for Inspect and must be unspecified for Risk jobs. Columns are derived + * from the `Finding` object. If appending to an existing table, any columns + * from the predefined schema that are missing will be added. No columns in + * the existing table will be deleted. * * If unspecified, then all available columns will be used for a new table, * and no changes will be made to an existing table. @@ -946,7 +975,8 @@ var ListInfoTypesResponse = { }; /** - * Configuration for a risk analysis job. + * Configuration for a risk analysis job. See + * https://cloud.google.com/dlp/docs/concepts-risk-analysis to learn more. * * @property {Object} privacyMetric * Privacy metric to compute. @@ -972,6 +1002,93 @@ var RiskAnalysisJobConfig = { // This is for documentation. Actual contents will be loaded by gRPC. }; +/** + * A column with a semantic tag attached. + * + * @property {Object} field + * Identifies the column. [required] + * + * This object should have the same structure as [FieldId]{@link google.privacy.dlp.v2.FieldId} + * + * @property {Object} infoType + * A column can be tagged with a InfoType to use the relevant public + * dataset as a statistical model of population, if available. We + * currently support US ZIP codes, region codes, ages and genders. + * To programmatically obtain the list of supported InfoTypes, use + * ListInfoTypes with the supported_by=RISK_ANALYSIS filter. + * + * This object should have the same structure as [InfoType]{@link google.privacy.dlp.v2.InfoType} + * + * @property {string} customTag + * A column can be tagged with a custom tag. In this case, the user must + * indicate an auxiliary table that contains statistical information on + * the possible values of this column (below). + * + * @property {Object} inferred + * If no semantic tag is indicated, we infer the statistical model from + * the distribution of values in the input data + * + * This object should have the same structure as [Empty]{@link google.protobuf.Empty} + * + * @typedef QuasiId + * @memberof google.privacy.dlp.v2 + * @see [google.privacy.dlp.v2.QuasiId definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/privacy/dlp/v2/dlp.proto} + */ +var QuasiId = { + // This is for documentation. Actual contents will be loaded by gRPC. +}; + +/** + * An auxiliary table containing statistical information on the relative + * frequency of different quasi-identifiers values. It has one or several + * quasi-identifiers columns, and one column that indicates the relative + * frequency of each quasi-identifier tuple. + * If a tuple is present in the data but not in the auxiliary table, the + * corresponding relative frequency is assumed to be zero (and thus, the + * tuple is highly reidentifiable). + * + * @property {Object} table + * Auxiliary table location. [required] + * + * This object should have the same structure as [BigQueryTable]{@link google.privacy.dlp.v2.BigQueryTable} + * + * @property {Object[]} quasiIds + * Quasi-identifier columns. [required] + * + * This object should have the same structure as [QuasiIdentifierField]{@link google.privacy.dlp.v2.QuasiIdentifierField} + * + * @property {Object} relativeFrequency + * The relative frequency column must contain a floating-point number + * between 0 and 1 (inclusive). Null values are assumed to be zero. + * [required] + * + * This object should have the same structure as [FieldId]{@link google.privacy.dlp.v2.FieldId} + * + * @typedef StatisticalTable + * @memberof google.privacy.dlp.v2 + * @see [google.privacy.dlp.v2.StatisticalTable definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/privacy/dlp/v2/dlp.proto} + */ +var StatisticalTable = { + // This is for documentation. Actual contents will be loaded by gRPC. + + /** + * A quasi-identifier column has a custom_tag, used to know which column + * in the data corresponds to which column in the statistical model. + * + * @property {Object} field + * This object should have the same structure as [FieldId]{@link google.privacy.dlp.v2.FieldId} + * + * @property {string} customTag + * + * @typedef QuasiIdentifierField + * @memberof google.privacy.dlp.v2 + * @see [google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/privacy/dlp/v2/dlp.proto} + */ + QuasiIdentifierField: { + // This is for documentation. Actual contents will be loaded by gRPC. + } +}; + /** * Privacy metric to compute for reidentification risk analysis. * @@ -990,6 +1107,9 @@ var RiskAnalysisJobConfig = { * @property {Object} kMapEstimationConfig * This object should have the same structure as [KMapEstimationConfig]{@link google.privacy.dlp.v2.KMapEstimationConfig} * + * @property {Object} deltaPresenceEstimationConfig + * This object should have the same structure as [DeltaPresenceEstimationConfig]{@link google.privacy.dlp.v2.DeltaPresenceEstimationConfig} + * * @typedef PrivacyMetric * @memberof google.privacy.dlp.v2 * @see [google.privacy.dlp.v2.PrivacyMetric definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/privacy/dlp/v2/dlp.proto} @@ -1099,6 +1219,7 @@ var PrivacyMetric = { * using publicly available data (like the US Census), or using a custom * statistical model (indicated as one or several BigQuery tables), or by * extrapolating from the distribution of values in the input dataset. + * A column with a semantic tag attached. * * @property {Object[]} quasiIds * Fields considered to be quasi-identifiers. No two columns can have the @@ -1126,8 +1247,6 @@ var PrivacyMetric = { // This is for documentation. Actual contents will be loaded by gRPC. /** - * A column with a semantic tag attached. - * * @property {Object} field * Identifies the column. [required] * @@ -1211,6 +1330,38 @@ var PrivacyMetric = { // This is for documentation. Actual contents will be loaded by gRPC. } } + }, + + /** + * δ-presence metric, used to estimate how likely it is for an attacker to + * figure out that one given individual appears in a de-identified dataset. + * Similarly to the k-map metric, we cannot compute δ-presence exactly without + * knowing the attack dataset, so we use a statistical model instead. + * + * @property {Object[]} quasiIds + * Fields considered to be quasi-identifiers. No two fields can have the + * same tag. [required] + * + * This object should have the same structure as [QuasiId]{@link google.privacy.dlp.v2.QuasiId} + * + * @property {string} regionCode + * ISO 3166-1 alpha-2 region code to use in the statistical modeling. + * Required if no column is tagged with a region-specific InfoType (like + * US_ZIP_5) or a region code. + * + * @property {Object[]} auxiliaryTables + * Several auxiliary tables can be used in the analysis. Each custom_tag + * used to tag a quasi-identifiers field must appear in exactly one + * field of one auxiliary table. + * + * This object should have the same structure as [StatisticalTable]{@link google.privacy.dlp.v2.StatisticalTable} + * + * @typedef DeltaPresenceEstimationConfig + * @memberof google.privacy.dlp.v2 + * @see [google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/privacy/dlp/v2/dlp.proto} + */ + DeltaPresenceEstimationConfig: { + // This is for documentation. Actual contents will be loaded by gRPC. } }; @@ -1242,6 +1393,9 @@ var PrivacyMetric = { * @property {Object} kMapEstimationResult * This object should have the same structure as [KMapEstimationResult]{@link google.privacy.dlp.v2.KMapEstimationResult} * + * @property {Object} deltaPresenceEstimationResult + * This object should have the same structure as [DeltaPresenceEstimationResult]{@link google.privacy.dlp.v2.DeltaPresenceEstimationResult} + * * @typedef AnalyzeDataSourceRiskDetails * @memberof google.privacy.dlp.v2 * @see [google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/privacy/dlp/v2/dlp.proto} @@ -1534,6 +1688,93 @@ var AnalyzeDataSourceRiskDetails = { KMapEstimationHistogramBucket: { // This is for documentation. Actual contents will be loaded by gRPC. } + }, + + /** + * Result of the δ-presence computation. Note that these results are an + * estimation, not exact values. + * + * @property {Object[]} deltaPresenceEstimationHistogram + * The intervals [min_probability, max_probability) do not overlap. If a + * value doesn't correspond to any such interval, the associated frequency + * is zero. For example, the following records: + * {min_probability: 0, max_probability: 0.1, frequency: 17} + * {min_probability: 0.2, max_probability: 0.3, frequency: 42} + * {min_probability: 0.3, max_probability: 0.4, frequency: 99} + * mean that there are no record with an estimated probability in [0.1, 0.2) + * nor larger or equal to 0.4. + * + * This object should have the same structure as [DeltaPresenceEstimationHistogramBucket]{@link google.privacy.dlp.v2.DeltaPresenceEstimationHistogramBucket} + * + * @typedef DeltaPresenceEstimationResult + * @memberof google.privacy.dlp.v2 + * @see [google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/privacy/dlp/v2/dlp.proto} + */ + DeltaPresenceEstimationResult: { + // This is for documentation. Actual contents will be loaded by gRPC. + + /** + * A tuple of values for the quasi-identifier columns. + * + * @property {Object[]} quasiIdsValues + * The quasi-identifier values. + * + * This object should have the same structure as [Value]{@link google.privacy.dlp.v2.Value} + * + * @property {number} estimatedProbability + * The estimated probability that a given individual sharing these + * quasi-identifier values is in the dataset. This value, typically called + * δ, is the ratio between the number of records in the dataset with these + * quasi-identifier values, and the total number of individuals (inside + * *and* outside the dataset) with these quasi-identifier values. + * For example, if there are 15 individuals in the dataset who share the + * same quasi-identifier values, and an estimated 100 people in the entire + * population with these values, then δ is 0.15. + * + * @typedef DeltaPresenceEstimationQuasiIdValues + * @memberof google.privacy.dlp.v2 + * @see [google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/privacy/dlp/v2/dlp.proto} + */ + DeltaPresenceEstimationQuasiIdValues: { + // This is for documentation. Actual contents will be loaded by gRPC. + }, + + /** + * A DeltaPresenceEstimationHistogramBucket message with the following + * values: + * min_probability: 0.1 + * max_probability: 0.2 + * frequency: 42 + * means that there are 42 records for which δ is in [0.1, 0.2). An + * important particular case is when min_probability = max_probability = 1: + * then, every individual who shares this quasi-identifier combination is in + * the dataset. + * + * @property {number} minProbability + * Between 0 and 1. + * + * @property {number} maxProbability + * Always greater than or equal to min_probability. + * + * @property {number} bucketSize + * Number of records within these probability bounds. + * + * @property {Object[]} bucketValues + * Sample of quasi-identifier tuple values in this bucket. The total + * number of classes returned per bucket is capped at 20. + * + * This object should have the same structure as [DeltaPresenceEstimationQuasiIdValues]{@link google.privacy.dlp.v2.DeltaPresenceEstimationQuasiIdValues} + * + * @property {number} bucketValueCount + * Total number of distinct quasi-identifier tuple values in this bucket. + * + * @typedef DeltaPresenceEstimationHistogramBucket + * @memberof google.privacy.dlp.v2 + * @see [google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/privacy/dlp/v2/dlp.proto} + */ + DeltaPresenceEstimationHistogramBucket: { + // This is for documentation. Actual contents will be loaded by gRPC. + } } }; @@ -1928,6 +2169,8 @@ var CharacterMaskConfig = { * being transformed, we will first attempt converting the type of the data to * be transformed to match the type of the bound before comparing. * + * See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. + * * @property {Object} lowerBound * Lower bound value of buckets. All values less than `lower_bound` are * grouped together into a single bucket; for example if `lower_bound` = 10, @@ -1966,6 +2209,7 @@ var FixedSizeBucketingConfig = { * If the bound `Value` type differs from the type of data being transformed, we * will first attempt converting the type of the data to be transformed to match * the type of the bound before comparing. + * See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. * * @property {Object[]} buckets * Set of buckets. Ranges must be non-overlapping. @@ -2018,7 +2262,7 @@ var BucketingConfig = { * replaced with the same surrogate. * Identifiers must be at least two characters long. * In the case that the identifier is the empty string, it will be skipped. - * See [Pseudonymization](https://cloud.google.com/dlp/docs/pseudonymization) for example usage. + * See https://cloud.google.com/dlp/docs/pseudonymization to learn more. * * @property {Object} cryptoKey * The key used by the encryption algorithm. [required] @@ -2045,8 +2289,7 @@ var BucketingConfig = { * such that: * * - a 64 bit integer is encoded followed by a single byte of value 1 - * - a string is encoded in UTF-8 format followed by a single byte of value - * å 2 + * - a string is encoded in UTF-8 format followed by a single byte of value 2 * * This object should have the same structure as [FieldId]{@link google.privacy.dlp.v2.FieldId} * @@ -2215,7 +2458,8 @@ var KmsWrappedCryptoKey = { /** * Shifts dates by random number of days, with option to be consistent for the - * same context. + * same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting + * to learn more. * * @property {number} upperBoundDays * Range of shift in days. Actual shift will be selected at random within this @@ -2274,8 +2518,9 @@ var InfoTypeTransformations = { * info_type. * * @property {Object[]} infoTypes - * InfoTypes to apply the transformation to. Empty list will match all - * available infoTypes for this transformation. + * InfoTypes to apply the transformation to. An empty list will cause + * this transformation to apply to all findings that correspond to + * infoTypes that were requested in `InspectConfig`. * * This object should have the same structure as [InfoType]{@link google.privacy.dlp.v2.InfoType} * @@ -2580,13 +2825,13 @@ var TransformationSummary = { * * @property {Object} recurrencePeriodDuration * With this option a job is started a regular periodic basis. For - * example: every 10 minutes. + * example: every day (86400 seconds). * * A scheduled start time will be skipped if the previous * execution has not ended when its scheduled time occurs. * * This value must be set to a time duration greater than or equal - * to 60 minutes and can be no longer than 60 days. + * to 1 day and can be no longer than 60 days. * * This object should have the same structure as [Duration]{@link google.protobuf.Duration} * @@ -2601,7 +2846,8 @@ var Schedule = { /** * The inspectTemplate contains a configuration (set of types of sensitive data * to be detected) to be used anywhere you otherwise would normally specify - * InspectConfig. + * InspectConfig. See https://cloud.google.com/dlp/docs/concepts-templates + * to learn more. * * @property {string} name * The template name. Output only. @@ -2641,6 +2887,7 @@ var InspectTemplate = { /** * The DeidentifyTemplates contains instructions on how to deidentify content. + * See https://cloud.google.com/dlp/docs/concepts-templates to learn more. * * @property {string} name * The template name. Output only. @@ -2701,6 +2948,7 @@ var Error = { /** * Contains a configuration to make dlp api calls on a repeating basis. + * See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more. * * @property {string} name * Unique resource name for the triggeredJob, assigned by the service when the @@ -2805,6 +3053,7 @@ var JobTrigger = { /** * A task to execute on the completion of a job. + * See https://cloud.google.com/dlp/docs/concepts-actions to learn more. * * @property {Object} saveFindings * Save resulting findings in a provided location. @@ -2832,7 +3081,7 @@ var Action = { * If set, the detailed findings will be persisted to the specified * OutputStorageConfig. Only a single instance of this action can be * specified. - * Compatible with: Inspect + * Compatible with: Inspect, Risk * * @property {Object} outputConfig * This object should have the same structure as [OutputStorageConfig]{@link google.privacy.dlp.v2.OutputStorageConfig} @@ -3107,30 +3356,29 @@ var CreateDlpJobRequest = { * Request message for ListJobTriggers. * * @property {string} parent - * The parent resource name, for example projects/my-project-id. + * The parent resource name, for example `projects/my-project-id`. * * @property {string} pageToken * Optional page token to continue retrieval. Comes from previous call - * to ListJobTriggers. `order_by` and `filter` should not change for - * subsequent calls, but can be omitted if token is specified. + * to ListJobTriggers. `order_by` field must not + * change for subsequent calls. * * @property {number} pageSize * Optional size of the page, can be limited by a server. * * @property {string} orderBy * Optional comma separated list of triggeredJob fields to order by, - * followed by 'asc/desc' postfix, i.e. - * `"create_time asc,name desc,schedule_mode asc"`. This list is - * case-insensitive. + * followed by `asc` or `desc` postfix. This list is case-insensitive, + * default sorting order is ascending, redundant space characters are + * insignificant. * - * Example: `"name asc,schedule_mode desc, status desc"` + * Example: `name asc,update_time, create_time desc` * - * Supported filters keys and values are: + * Supported fields are: * * - `create_time`: corresponds to time the triggeredJob was created. * - `update_time`: corresponds to time the triggeredJob was last updated. - * - `name`: corresponds to JobTrigger's display name. - * - `status`: corresponds to the triggeredJob status. + * - `name`: corresponds to JobTrigger's name. * * @typedef ListJobTriggersRequest * @memberof google.privacy.dlp.v2 diff --git a/packages/google-privacy-dlp/src/v2/doc/google/privacy/dlp/v2/doc_storage.js b/packages/google-privacy-dlp/src/v2/doc/google/privacy/dlp/v2/doc_storage.js index b380c9cb7c8..ed4ccc06d74 100644 --- a/packages/google-privacy-dlp/src/v2/doc/google/privacy/dlp/v2/doc_storage.js +++ b/packages/google-privacy-dlp/src/v2/doc/google/privacy/dlp/v2/doc_storage.js @@ -19,7 +19,10 @@ * Type of information detected by the API. * * @property {string} name - * Name of the information type. + * Name of the information type. Either a name of your choosing when + * creating a CustomInfoType, or one of the names listed + * at https://cloud.google.com/dlp/docs/infotypes-reference when specifying + * a built-in type. * * @typedef InfoType * @memberof google.privacy.dlp.v2 @@ -34,37 +37,38 @@ var InfoType = { * sensitive information configurable to the data in question. * * @property {Object} infoType - * Info type configuration. All custom info types must have configurations - * that do not conflict with built-in info types or other custom info types. + * All CustomInfoTypes must have a name + * that does not conflict with built-in InfoTypes or other CustomInfoTypes. * * This object should have the same structure as [InfoType]{@link google.privacy.dlp.v2.InfoType} * * @property {number} likelihood - * Likelihood to return for this custom info type. This base value can be + * Likelihood to return for this CustomInfoType. This base value can be * altered by a detection rule if the finding meets the criteria specified by * the rule. Defaults to `VERY_LIKELY` if not specified. * * The number should be among the values of [Likelihood]{@link google.privacy.dlp.v2.Likelihood} * * @property {Object} dictionary - * Dictionary-based custom info type. + * A list of phrases to detect as a CustomInfoType. * * This object should have the same structure as [Dictionary]{@link google.privacy.dlp.v2.Dictionary} * * @property {Object} regex - * Regex-based custom info type. + * Regular expression based CustomInfoType. * * This object should have the same structure as [Regex]{@link google.privacy.dlp.v2.Regex} * * @property {Object} surrogateType - * Surrogate info type. + * Message for detecting output from deidentification transformations that + * support reversing. * * This object should have the same structure as [SurrogateType]{@link google.privacy.dlp.v2.SurrogateType} * * @property {Object[]} detectionRules - * Set of detection rules to apply to all findings of this custom info type. + * Set of detection rules to apply to all findings of this CustomInfoType. * Rules are applied in order that they are specified. Not supported for the - * `surrogate_type` custom info type. + * `surrogate_type` CustomInfoType. * * This object should have the same structure as [DetectionRule]{@link google.privacy.dlp.v2.DetectionRule} * @@ -152,7 +156,7 @@ var CustomInfoType = { * These types of transformations are * those that perform pseudonymization, thereby producing a "surrogate" as * output. This should be used in conjunction with a field on the - * transformation such as `surrogate_info_type`. This custom info type does + * transformation such as `surrogate_info_type`. This CustomInfoType does * not support the use of `detection_rules`. * @typedef SurrogateType * @memberof google.privacy.dlp.v2 @@ -163,7 +167,7 @@ var CustomInfoType = { }, /** - * Rule for modifying a custom info type to alter behavior under certain + * Rule for modifying a CustomInfoType to alter behavior under certain * circumstances, depending on the specific details of the rule. Not supported * for the `surrogate_type` custom info type. * @@ -225,11 +229,11 @@ var CustomInfoType = { }, /** - * Detection rule that adjusts the likelihood of findings within a certain + * The rule that adjusts the likelihood of findings within a certain * proximity of hotwords. * * @property {Object} hotwordRegex - * Regex pattern defining what qualifies as a hotword. + * Regular expression pattern defining what qualifies as a hotword. * * This object should have the same structure as [Regex]{@link google.privacy.dlp.v2.Regex} * @@ -350,6 +354,14 @@ var DatastoreOptions = { * * The number should be among the values of [FileType]{@link google.privacy.dlp.v2.FileType} * + * @property {number} sampleMethod + * The number should be among the values of [SampleMethod]{@link google.privacy.dlp.v2.SampleMethod} + * + * @property {number} filesLimitPercent + * Limits the number of files to scan to this percentage of the input FileSet. + * Number of files scanned is rounded down. Must be between 0 and 100, + * inclusively. Both 0 and 100 means no limit. Defaults to 0. + * * @typedef CloudStorageOptions * @memberof google.privacy.dlp.v2 * @see [google.privacy.dlp.v2.CloudStorageOptions definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/privacy/dlp/v2/storage.proto} @@ -370,11 +382,34 @@ var CloudStorageOptions = { */ FileSet: { // This is for documentation. Actual contents will be loaded by gRPC. + }, + + /** + * How to sample bytes if not all bytes are scanned. Meaningful only when used + * in conjunction with bytes_limit_per_file. If not specified, scanning would + * start from the top. + * + * @enum {number} + * @memberof google.privacy.dlp.v2 + */ + SampleMethod: { + SAMPLE_METHOD_UNSPECIFIED: 0, + + /** + * Scan from the top (default). + */ + TOP: 1, + + /** + * For each file larger than bytes_limit_per_file, randomly pick the offset + * to start scanning. The scanned bytes are contiguous. + */ + RANDOM_START: 2 } }; /** - * Message representing a path in Cloud Storage. + * Message representing a single file or path in Cloud Storage. * * @property {string} path * A url representing a file or path (no wildcards) in Cloud Storage. @@ -407,12 +442,37 @@ var CloudStoragePath = { * rest of the rows are omitted. If not set, or if set to 0, all rows will be * scanned. Cannot be used in conjunction with TimespanConfig. * + * @property {number} sampleMethod + * The number should be among the values of [SampleMethod]{@link google.privacy.dlp.v2.SampleMethod} + * * @typedef BigQueryOptions * @memberof google.privacy.dlp.v2 * @see [google.privacy.dlp.v2.BigQueryOptions definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/privacy/dlp/v2/storage.proto} */ var BigQueryOptions = { // This is for documentation. Actual contents will be loaded by gRPC. + + /** + * How to sample rows if not all rows are scanned. Meaningful only when used + * in conjunction with rows_limit. If not specified, scanning would start + * from the top. + * + * @enum {number} + * @memberof google.privacy.dlp.v2 + */ + SampleMethod: { + SAMPLE_METHOD_UNSPECIFIED: 0, + + /** + * Scan from the top (default). + */ + TOP: 1, + + /** + * Randomly pick the row to start scanning. The scanned rows are contiguous. + */ + RANDOM_START: 2 + } }; /** @@ -657,7 +717,7 @@ var EntityId = { var Likelihood = { /** - * Default value; information with all likelihoods is included. + * Default value; same as POSSIBLE. */ LIKELIHOOD_UNSPECIFIED: 0, diff --git a/packages/google-privacy-dlp/synth.py b/packages/google-privacy-dlp/synth.py new file mode 100644 index 00000000000..11070079290 --- /dev/null +++ b/packages/google-privacy-dlp/synth.py @@ -0,0 +1,39 @@ +# Copyright 2018 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. + +"""This script is used to synthesize generated parts of this library.""" + +import synthtool as s +import synthtool.gcp as gcp +import subprocess + +gapic = gcp.GAPICGenerator() + +version = 'v2' +library = gapic.node_library('dlp', version, + config_path='/google/privacy/dlp/artman_dlp_v2.yaml' +) +s.copy(library, + excludes=['README.md', 'package.json'] +) + +''' +Node.js specific cleanup +''' +# Repo Cleanup/Setup +subprocess.run(['npm', 'install']) + +# prettify and lint +subprocess.run(['npm', 'run', 'prettier']) +subprocess.run(['npm', 'run', 'lint'])