diff --git a/.generator/cli.py b/.generator/cli.py index d3c5932e54c1..9dfb90644ba3 100644 --- a/.generator/cli.py +++ b/.generator/cli.py @@ -379,8 +379,6 @@ def _clean_up_files_after_post_processing(output: str, library_id: str): shutil.rmtree(f"{output}/owl-bot-staging", ignore_errors=True) # Safely remove specific files if they exist using pathlib. - Path(f"{output}/{path_to_library}/CHANGELOG.md").unlink(missing_ok=True) - Path(f"{output}/{path_to_library}/docs/CHANGELOG.md").unlink(missing_ok=True) # The glob loops are already safe, as they do nothing if no files match. for post_processing_file in glob.glob( @@ -500,8 +498,8 @@ def _generate_repo_metadata_file( _write_json_file(output_repo_metadata, metadata_content) -def _copy_readme_to_docs(output: str, library_id: str): - """Copies the README.rst file for a generated library to docs/README.rst. +def _copy_file_to_docs(output: str, library_id: str, filename: str): + """Copies a file for a generated library to the docs directory. This function is robust against various symlink configurations that could cause `shutil.copy` to fail with a `SameFileError`. It reads the content @@ -512,20 +510,20 @@ def _copy_readme_to_docs(output: str, library_id: str): output(str): Path to the directory in the container where code should be generated. library_id(str): The library id. + filename(str): The name of the file to copy. """ path_to_library = f"packages/{library_id}" - source_path = f"{output}/{path_to_library}/README.rst" + source_path = f"{output}/{path_to_library}/{filename}" docs_path = f"{output}/{path_to_library}/docs" - destination_path = f"{docs_path}/README.rst" + destination_path = f"{docs_path}/{filename}" + # If the source file doesn't exist (not even as a broken symlink), # there's nothing to copy. if not os.path.lexists(source_path): return - # Read the content from the source, which will resolve any symlinks. - with open(source_path, "r") as f: - content = f.read() + content = _read_text_file(source_path) # Remove any symlinks at the destination to prevent errors. if os.path.islink(destination_path): @@ -535,10 +533,42 @@ def _copy_readme_to_docs(output: str, library_id: str): # Ensure the destination directory exists as a real directory. os.makedirs(docs_path, exist_ok=True) + _write_text_file(destination_path, content) + + +def _copy_readme_to_docs(output: str, library_id: str): + """Copies the README.rst file for a generated library to docs/README.rst. + + This function is a wrapper around `_copy_file_to_docs` for README.rst. + + Args: + output(str): Path to the directory in the container where code + should be generated. + library_id(str): The library id. + """ + _copy_file_to_docs(output, library_id, "README.rst") + + +def _copy_changelog_to_docs(output: str, library_id: str): + """Copies the CHANGELOG.md file for a generated library to docs/CHANGELOG.md. + + This function is a wrapper around `_copy_file_to_docs` for CHANGELOG.md. + + Args: + output(str): Path to the directory in the container where code + should be generated. + library_id(str): The library id. + """ + path_to_library = f"packages/{library_id}" + source_path = f"{output}/{path_to_library}/CHANGELOG.md" + + # If the source CHANGELOG.md doesn't exist, create it at the source location. + if not os.path.lexists(source_path): + content = "# Changelog\n" + _write_text_file(source_path, content) - # Write the content to the destination, creating a new physical file. - with open(destination_path, "w") as f: - f.write(content) + # Now, copy the (guaranteed to exist) source CHANGELOG.md to the docs directory. + _copy_file_to_docs(output, library_id, "CHANGELOG.md") def handle_generate( @@ -583,6 +613,7 @@ def handle_generate( _generate_repo_metadata_file(output, library_id, source, apis_to_generate) _run_post_processor(output, library_id) _copy_readme_to_docs(output, library_id) + _copy_changelog_to_docs(output, library_id) _clean_up_files_after_post_processing(output, library_id) except Exception as e: raise ValueError("Generation failed.") from e diff --git a/.generator/test_cli.py b/.generator/test_cli.py index 9e1ad578f688..0fcef57bebcb 100644 --- a/.generator/test_cli.py +++ b/.generator/test_cli.py @@ -71,6 +71,8 @@ _write_json_file, _write_text_file, _copy_readme_to_docs, + _copy_changelog_to_docs, + _copy_file_to_docs, handle_build, handle_configure, handle_generate, @@ -640,6 +642,8 @@ def test_handle_generate_success( "cli._clean_up_files_after_post_processing" ) mocker.patch("cli._generate_repo_metadata_file") + mocker.patch("cli._copy_changelog_to_docs") + mocker.patch("cli._copy_readme_to_docs") handle_generate() @@ -1572,53 +1576,40 @@ def test_copy_readme_to_docs(mocker): mock_os_islink.assert_any_call(expected_destination) mock_os_islink.assert_any_call(expected_docs_path) mock_os_remove.assert_not_called() - mock_makedirs.assert_called_once_with(expected_docs_path, exist_ok=True) + mock_makedirs.assert_called_with(Path(expected_docs_path), exist_ok=True) mock_open.assert_any_call(expected_destination, "w") mock_open().write.assert_called_once_with("dummy content") -def test_copy_readme_to_docs_handles_symlink(mocker): - """Tests that the README.rst is copied to the docs directory, handling symlinks.""" + + + +def test_copy_readme_to_docs_destination_path_is_symlink(mocker): + """Tests that the README.rst is copied to the docs directory, handling destination_path being a symlink.""" mock_makedirs = mocker.patch("os.makedirs") mock_shutil_copy = mocker.patch("shutil.copy") - mock_os_islink = mocker.patch("os.path.islink") + mock_os_islink = mocker.patch("os.path.islink", return_value=True) mock_os_remove = mocker.patch("os.remove") mock_os_lexists = mocker.patch("os.path.lexists", return_value=True) mock_open = mocker.patch( "builtins.open", mocker.mock_open(read_data="dummy content") ) - # Simulate docs_path being a symlink - mock_os_islink.side_effect = [ - False, - True, - ] # First call for destination_path, second for docs_path - output = "output" library_id = "google-cloud-language" _copy_readme_to_docs(output, library_id) - expected_source = "output/packages/google-cloud-language/README.rst" - expected_docs_path = "output/packages/google-cloud-language/docs" expected_destination = "output/packages/google-cloud-language/docs/README.rst" - - mock_os_lexists.assert_called_once_with(expected_source) - mock_open.assert_any_call(expected_source, "r") - mock_os_islink.assert_any_call(expected_destination) - mock_os_islink.assert_any_call(expected_docs_path) - mock_os_remove.assert_called_once_with(expected_docs_path) - mock_makedirs.assert_called_once_with(expected_docs_path, exist_ok=True) - mock_open.assert_any_call(expected_destination, "w") - mock_open().write.assert_called_once_with("dummy content") + mock_os_remove.assert_called_once_with(expected_destination) -def test_copy_readme_to_docs_destination_path_is_symlink(mocker): - """Tests that the README.rst is copied to the docs directory, handling destination_path being a symlink.""" +def test_copy_readme_to_docs_source_not_exists(mocker): + """Tests that the function returns early if the source README.rst does not exist.""" mock_makedirs = mocker.patch("os.makedirs") mock_shutil_copy = mocker.patch("shutil.copy") - mock_os_islink = mocker.patch("os.path.islink", return_value=True) + mock_os_islink = mocker.patch("os.path.islink") mock_os_remove = mocker.patch("os.remove") - mock_os_lexists = mocker.patch("os.path.lexists", return_value=True) + mock_os_lexists = mocker.patch("os.path.lexists", return_value=False) mock_open = mocker.patch( "builtins.open", mocker.mock_open(read_data="dummy content") ) @@ -1627,20 +1618,91 @@ def test_copy_readme_to_docs_destination_path_is_symlink(mocker): library_id = "google-cloud-language" _copy_readme_to_docs(output, library_id) - expected_destination = "output/packages/google-cloud-language/docs/README.rst" - mock_os_remove.assert_called_once_with(expected_destination) + expected_source = "output/packages/google-cloud-language/README.rst" + mock_os_lexists.assert_called_once_with(expected_source) + mock_open.assert_not_called() + mock_os_islink.assert_not_called() + mock_os_remove.assert_not_called() + mock_makedirs.assert_not_called() + mock_shutil_copy.assert_not_called() + + +def test_copy_file_to_docs_docs_path_is_symlink(mocker): + """Tests that the file is copied to the docs directory, handling docs_path being a symlink.""" + mock_makedirs = mocker.patch("os.makedirs") + mock_os_remove = mocker.patch("os.remove") + mock_os_lexists = mocker.patch("os.path.lexists", return_value=True) + mock_open = mocker.patch( + "builtins.open", mocker.mock_open(read_data="dummy content") + ) -def test_copy_readme_to_docs_source_not_exists(mocker): + output = "output" + library_id = "google-cloud-language" + filename = "README.rst" + docs_path = f"{output}/packages/{library_id}/docs" + + def islink_side_effect(path): + if path == docs_path: + return True + return False + + mocker.patch("os.path.islink", side_effect=islink_side_effect) + + _copy_file_to_docs(output, library_id, filename) + + mock_os_remove.assert_called_once_with(docs_path) + + +def test_copy_changelog_to_docs_handles_symlink(mocker): + """Tests that the CHANGELOG.md is created at the source and then copied to docs, handling symlinks.""" + mock_makedirs = mocker.patch("os.makedirs") + mock_lexists = mocker.patch("os.path.lexists", return_value=False) + mock_write_text = mocker.patch("cli._write_text_file") + mock_copy_file = mocker.patch("cli._copy_file_to_docs") + + output = "output" + library_id = "google-cloud-language" + source_path = f"{output}/packages/{library_id}/CHANGELOG.md" + + _copy_changelog_to_docs(output, library_id) + mock_lexists.assert_any_call(source_path) + mock_write_text.assert_called_once_with(source_path, "# Changelog\n") + mock_copy_file.assert_called_once_with(output, library_id, "CHANGELOG.md") + mock_copy_file.assert_called_once_with(output, library_id, "CHANGELOG.md") + + +def test_copy_changelog_to_docs_destination_path_is_symlink(mocker): + """Tests that the CHANGELOG.md is copied to the docs directory, handling destination_path being a symlink.""" + mock_makedirs = mocker.patch("os.makedirs") + mock_shutil_copy = mocker.patch("shutil.copy") + mock_os_remove = mocker.patch("os.remove") + mock_os_lexists = mocker.patch("os.path.lexists", return_value=True) + mock_open = mocker.patch("builtins.open", mocker.mock_open(read_data="# Changelog\n")) + + output = "output" + library_id = "google-cloud-language" + expected_destination = "output/packages/google-cloud-language/docs/CHANGELOG.md" + expected_docs_path = "output/packages/google-cloud-language/docs" + + def islink_side_effect(path): + return path == expected_destination + + mock_os_islink = mocker.patch("os.path.islink", side_effect=islink_side_effect) + + _copy_changelog_to_docs(output, library_id) + + mock_os_remove.assert_called_once_with(expected_destination) + mock_makedirs.assert_called_with(Path(expected_docs_path), exist_ok=True) + mock_open.assert_any_call(expected_destination, "w") + mock_open().write.assert_called_with("# Changelog\n") """Tests that the function returns early if the source README.rst does not exist.""" mock_makedirs = mocker.patch("os.makedirs") mock_shutil_copy = mocker.patch("shutil.copy") mock_os_islink = mocker.patch("os.path.islink") mock_os_remove = mocker.patch("os.remove") mock_os_lexists = mocker.patch("os.path.lexists", return_value=False) - mock_open = mocker.patch( - "builtins.open", mocker.mock_open(read_data="dummy content") - ) + mock_open = mocker.patch("builtins.open", mocker.mock_open(read_data="dummy content")) output = "output" library_id = "google-cloud-language" diff --git a/.librarian/state.yaml b/.librarian/state.yaml index 38bd83efd972..b1da6f65f6fc 100644 --- a/.librarian/state.yaml +++ b/.librarian/state.yaml @@ -1,4 +1,4 @@ -image: us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/python-librarian-generator:latest +image: python-librarian-generator:latest libraries: - id: google-ads-admanager version: 0.5.0 @@ -1717,7 +1717,7 @@ libraries: tag_format: '{id}-v{version}' - id: google-cloud-dlp version: 3.33.0 - last_generated_commit: 3322511885371d2b2253f209ccc3aa60d4100cfd + last_generated_commit: 1b5c44879f3281d05731a0bf3fc0345ff4463eed apis: - path: google/privacy/dlp/v2 service_config: dlp_v2.yaml diff --git a/packages/google-cloud-dlp/CHANGELOG.md b/packages/google-cloud-dlp/CHANGELOG.md index fa8a275ef83f..5ddad421e08f 100644 --- a/packages/google-cloud-dlp/CHANGELOG.md +++ b/packages/google-cloud-dlp/CHANGELOG.md @@ -1,863 +1 @@ -# Changelog - -[PyPI History][1] - -[1]: https://pypi.org/project/google-cloud-dlp/#history - -## [3.33.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.32.0...google-cloud-dlp-v3.33.0) (2025-10-16) - - -### Documentation - -* clarify filter syntax for List* APIs ([a5dbb64fe1815aa7e62b4d582791ef33b93d7712](https://github.com/googleapis/google-cloud-python/commit/a5dbb64fe1815aa7e62b4d582791ef33b93d7712)) -* clarify ListProjectDataProfiles API supports filter by project_id ([a5dbb64fe1815aa7e62b4d582791ef33b93d7712](https://github.com/googleapis/google-cloud-python/commit/a5dbb64fe1815aa7e62b4d582791ef33b93d7712)) -* clarify List*DataProfiles APIs supports filter by profile_last_generated ([a5dbb64fe1815aa7e62b4d582791ef33b93d7712](https://github.com/googleapis/google-cloud-python/commit/a5dbb64fe1815aa7e62b4d582791ef33b93d7712)) - - -### Features - -* inspect and deid templates in RedactImage ([a5dbb64fe1815aa7e62b4d582791ef33b93d7712](https://github.com/googleapis/google-cloud-python/commit/a5dbb64fe1815aa7e62b4d582791ef33b93d7712)) -* store DlpJob findings in a Cloud Storage bucket ([a5dbb64fe1815aa7e62b4d582791ef33b93d7712](https://github.com/googleapis/google-cloud-python/commit/a5dbb64fe1815aa7e62b4d582791ef33b93d7712)) -* publish DlpJob findings to Dataplex Universal Catalog ([a5dbb64fe1815aa7e62b4d582791ef33b93d7712](https://github.com/googleapis/google-cloud-python/commit/a5dbb64fe1815aa7e62b4d582791ef33b93d7712)) -* Cloud Storage discovery filters based on tag filters ([a5dbb64fe1815aa7e62b4d582791ef33b93d7712](https://github.com/googleapis/google-cloud-python/commit/a5dbb64fe1815aa7e62b4d582791ef33b93d7712)) -* Add support for Python 3.14 ([98ee71abc0f97c88239b50bf0e0827df19630def](https://github.com/googleapis/google-cloud-python/commit/98ee71abc0f97c88239b50bf0e0827df19630def)) - - -### Bug Fixes - -* Deprecate credentials_file argument ([98ee71abc0f97c88239b50bf0e0827df19630def](https://github.com/googleapis/google-cloud-python/commit/98ee71abc0f97c88239b50bf0e0827df19630def)) - -## [3.32.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.31.0...google-cloud-dlp-v3.32.0) (2025-09-15) - - -### Features - -* [google-cloud-dlp] add LocationSupport, Domain, DocumentFallbackLocation([09f78e3ca85671594e20c3182038238e58d3d8cb](https://github.com/googleapis/google-cloud-python/commit/09f78e3ca85671594e20c3182038238e58d3d8cb)) - - -### Documentation - -* minor doc revision ([09f78e3ca85671594e20c3182038238e58d3d8cb](https://github.com/googleapis/google-cloud-python/commit/09f78e3ca85671594e20c3182038238e58d3d8cb)) - -## [3.31.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.30.0...google-cloud-dlp-v3.31.0) (2025-06-19) - - -### Features - -* add SaveToGcsFindingsOutput ([b568ff5](https://github.com/googleapis/google-cloud-python/commit/b568ff5d1b0ac5b8a2fd65cac97e495cd80f5981)) - - -### Documentation - -* minor doc revision ([b568ff5](https://github.com/googleapis/google-cloud-python/commit/b568ff5d1b0ac5b8a2fd65cac97e495cd80f5981)) - -## [3.30.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.29.0...google-cloud-dlp-v3.30.0) (2025-05-29) - - -### Features - -* add a project ID to table reference so that org parents can create single table discovery configs. ([f92f4eb](https://github.com/googleapis/google-cloud-python/commit/f92f4eb2cea860c46e19ee0c5b55a27db6699e55)) -* add Dataplex Catalog action for discovery configs ([f92f4eb](https://github.com/googleapis/google-cloud-python/commit/f92f4eb2cea860c46e19ee0c5b55a27db6699e55)) -* new fields for data profile finding. ([f92f4eb](https://github.com/googleapis/google-cloud-python/commit/f92f4eb2cea860c46e19ee0c5b55a27db6699e55)) - - -### Documentation - -* various doc revisions ([f92f4eb](https://github.com/googleapis/google-cloud-python/commit/f92f4eb2cea860c46e19ee0c5b55a27db6699e55)) - -## [3.29.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.28.1...google-cloud-dlp-v3.29.0) (2025-03-19) - - -### Features - -* add sample findings for data profiles ([7a7e679](https://github.com/googleapis/google-cloud-python/commit/7a7e6795deed2761892174e15992d808225c657f)) -* list tags on resources for data profiles ([7a7e679](https://github.com/googleapis/google-cloud-python/commit/7a7e6795deed2761892174e15992d808225c657f)) - - -### Documentation - -* updated documentation for various fields and messages ([7a7e679](https://github.com/googleapis/google-cloud-python/commit/7a7e6795deed2761892174e15992d808225c657f)) - -## [3.28.1](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.28.0...google-cloud-dlp-v3.28.1) (2025-03-15) - - -### Bug Fixes - -* [Many APIs] Allow Protobuf 6.x ([feb5353](https://github.com/googleapis/google-cloud-python/commit/feb53532240bb70a94b359b519f0f41f95875a33)) -* remove setup.cfg configuration for creating universal wheels ([#13659](https://github.com/googleapis/google-cloud-python/issues/13659)) ([59bfd42](https://github.com/googleapis/google-cloud-python/commit/59bfd42cf8a2eaeed696a7504890bce5aae815ce)) - -## [3.28.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.27.0...google-cloud-dlp-v3.28.0) (2025-02-24) - - -### Features - -* [google-cloud-dlp] discovery of Vertex AI datasets ([#13540](https://github.com/googleapis/google-cloud-python/issues/13540)) ([2913199](https://github.com/googleapis/google-cloud-python/commit/291319932e87fdde66c7a1672a128352820306a9)) - - -### Documentation - -* documentation revisions for data profiles ([2913199](https://github.com/googleapis/google-cloud-python/commit/291319932e87fdde66c7a1672a128352820306a9)) - -## [3.27.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.26.0...google-cloud-dlp-v3.27.0) (2025-02-12) - - -### Features - -* Add REST Interceptors which support reading metadata ([e92d527](https://github.com/googleapis/google-cloud-python/commit/e92d52797ffbce45d033eb81af24e0cad32baa55)) -* Add support for reading selective GAPIC generation methods from service YAML ([e92d527](https://github.com/googleapis/google-cloud-python/commit/e92d52797ffbce45d033eb81af24e0cad32baa55)) - -## [3.26.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.25.1...google-cloud-dlp-v3.26.0) (2024-12-12) - - -### Features - -* Add support for opt-in debug logging ([819e8fb](https://github.com/googleapis/google-cloud-python/commit/819e8fb3159c39f6c8eb6d7c0b75927134d6ceb2)) - - -### Bug Fixes - -* Fix typing issue with gRPC metadata when key ends in -bin ([819e8fb](https://github.com/googleapis/google-cloud-python/commit/819e8fb3159c39f6c8eb6d7c0b75927134d6ceb2)) - -## [3.25.1](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.25.0...google-cloud-dlp-v3.25.1) (2024-11-11) - - -### Bug Fixes - -* disable universe-domain validation ([#13242](https://github.com/googleapis/google-cloud-python/issues/13242)) ([b479ff8](https://github.com/googleapis/google-cloud-python/commit/b479ff841ed93a18393a188ee1d72edf9fb729ec)) - -## [3.25.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.24.0...google-cloud-dlp-v3.25.0) (2024-10-24) - - -### Features - -* Add support for Python 3.13 ([#13206](https://github.com/googleapis/google-cloud-python/issues/13206)) ([eb980d5](https://github.com/googleapis/google-cloud-python/commit/eb980d55b2d01d776fa94c3ce408a11f6d366c8a)) - -## [3.24.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.23.0...google-cloud-dlp-v3.24.0) (2024-10-23) - - -### Features - -* [google-cloud-dlp] discovery of BigQuery snapshots ([#13172](https://github.com/googleapis/google-cloud-python/issues/13172)) ([76e529c](https://github.com/googleapis/google-cloud-python/commit/76e529c958e3fb39679baf50e76b331df7474d0d)) - - -### Documentation - -* documentation revisions for data profiles ([76e529c](https://github.com/googleapis/google-cloud-python/commit/76e529c958e3fb39679baf50e76b331df7474d0d)) - -## [3.23.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.22.0...google-cloud-dlp-v3.23.0) (2024-09-23) - - -### Features - -* action for publishing data profiles to SecOps (formelly known as Chronicle) ([afcf7cb](https://github.com/googleapis/google-cloud-python/commit/afcf7cbe57d6e0f183a113ba03bba9c288052969)) -* action for publishing data profiles to Security Command Center ([afcf7cb](https://github.com/googleapis/google-cloud-python/commit/afcf7cbe57d6e0f183a113ba03bba9c288052969)) -* discovery configs for AWS S3 buckets ([afcf7cb](https://github.com/googleapis/google-cloud-python/commit/afcf7cbe57d6e0f183a113ba03bba9c288052969)) - - -### Documentation - -* small improvements and clarifications ([afcf7cb](https://github.com/googleapis/google-cloud-python/commit/afcf7cbe57d6e0f183a113ba03bba9c288052969)) - -## [3.22.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.21.0...google-cloud-dlp-v3.22.0) (2024-08-19) - - -### Features - -* file store data profiles can now be filtered by type and storage location ([5dc35c8](https://github.com/googleapis/google-cloud-python/commit/5dc35c8b35091a0ed7f69a0f4f4652a48523efaa)) -* inspect template modified cadence discovery config for Cloud SQL ([5dc35c8](https://github.com/googleapis/google-cloud-python/commit/5dc35c8b35091a0ed7f69a0f4f4652a48523efaa)) - - -### Documentation - -* small improvements ([5dc35c8](https://github.com/googleapis/google-cloud-python/commit/5dc35c8b35091a0ed7f69a0f4f4652a48523efaa)) - -## [3.21.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.20.0...google-cloud-dlp-v3.21.0) (2024-08-08) - - -### Features - -* [google-cloud-dlp] add the TagResources API ([#12983](https://github.com/googleapis/google-cloud-python/issues/12983)) ([fe3f78f](https://github.com/googleapis/google-cloud-python/commit/fe3f78f468e58c3d1e02cc4873b35912afae3166)) - -## [3.20.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.19.0...google-cloud-dlp-v3.20.0) (2024-07-31) - - -### Features - -* [google-cloud-dlp] org-level connection bindings ([871cd07](https://github.com/googleapis/google-cloud-python/commit/871cd07f6c4e88cdfeb548640f167649eabd34df)) -* add refresh frequency for data profiling ([871cd07](https://github.com/googleapis/google-cloud-python/commit/871cd07f6c4e88cdfeb548640f167649eabd34df)) -* gRPC config for get, list, and delete FileStoreDataProfiles ([871cd07](https://github.com/googleapis/google-cloud-python/commit/871cd07f6c4e88cdfeb548640f167649eabd34df)) - - -### Documentation - -* [google-cloud-dlp] replace HTML tags with CommonMark notation ([871cd07](https://github.com/googleapis/google-cloud-python/commit/871cd07f6c4e88cdfeb548640f167649eabd34df)) -* small improvements ([871cd07](https://github.com/googleapis/google-cloud-python/commit/871cd07f6c4e88cdfeb548640f167649eabd34df)) - -## [3.19.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.18.1...google-cloud-dlp-v3.19.0) (2024-07-30) - - -### Features - -* add Cloud Storage discovery support ([aed54ad](https://github.com/googleapis/google-cloud-python/commit/aed54ad804c496221b1feb8208288cc866af32d6)) - - -### Bug Fixes - -* Retry and timeout values do not propagate in requests during pagination ([ba1064f](https://github.com/googleapis/google-cloud-python/commit/ba1064fd6a63ccbe8a390c0026f32c5772c728a5)) - - -### Documentation - -* Updated method documentation ([aed54ad](https://github.com/googleapis/google-cloud-python/commit/aed54ad804c496221b1feb8208288cc866af32d6)) - -## [3.18.1](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.18.0...google-cloud-dlp-v3.18.1) (2024-07-08) - - -### Bug Fixes - -* Allow Protobuf 5.x ([#12866](https://github.com/googleapis/google-cloud-python/issues/12866)) ([40e1810](https://github.com/googleapis/google-cloud-python/commit/40e18101eaaeefe4baa090c3b4f7a96209ea5735)) - -## [3.18.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.17.0...google-cloud-dlp-v3.18.0) (2024-05-27) - - -### Features - -* add secrets discovery support ([dec2866](https://github.com/googleapis/google-cloud-python/commit/dec2866236f474691c432c4950dc7bf9ba33dac2)) - - -### Documentation - -* Updated method documentation ([dec2866](https://github.com/googleapis/google-cloud-python/commit/dec2866236f474691c432c4950dc7bf9ba33dac2)) - -## [3.17.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.16.0...google-cloud-dlp-v3.17.0) (2024-05-07) - - -### Features - -* Add field to InspectJobs num_rows_processed for BigQuery inspect jobs ([04a2214](https://github.com/googleapis/google-cloud-python/commit/04a22146ffe290bfb9415d067bb8918103d45438)) -* Add new countries for supported detectors ([04a2214](https://github.com/googleapis/google-cloud-python/commit/04a22146ffe290bfb9415d067bb8918103d45438)) -* add RPCs for deleting TableDataProfiles ([04a2214](https://github.com/googleapis/google-cloud-python/commit/04a22146ffe290bfb9415d067bb8918103d45438)) -* Add RPCs for enabling discovery of Cloud SQL ([04a2214](https://github.com/googleapis/google-cloud-python/commit/04a22146ffe290bfb9415d067bb8918103d45438)) - - -### Documentation - -* Updated method documentation ([04a2214](https://github.com/googleapis/google-cloud-python/commit/04a22146ffe290bfb9415d067bb8918103d45438)) - -## [3.16.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.15.3...google-cloud-dlp-v3.16.0) (2024-03-07) - - -### Features - -* Add RPCs for getting and listing project, table, and column data profiles ([d319fac](https://github.com/googleapis/google-cloud-python/commit/d319facb5b523d8f4360ac2ce4d940d272446069)) - - -### Documentation - -* Update urls to reflect branding change to Sensitive Data Protection ([d319fac](https://github.com/googleapis/google-cloud-python/commit/d319facb5b523d8f4360ac2ce4d940d272446069)) - -## [3.15.3](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.15.2...google-cloud-dlp-v3.15.3) (2024-03-05) - - -### Bug Fixes - -* **deps:** Exclude google-auth 2.24.0 and 2.25.0 ([#12384](https://github.com/googleapis/google-cloud-python/issues/12384)) ([c69966f](https://github.com/googleapis/google-cloud-python/commit/c69966fa7aac2cba4e22513e4a053b3754f8ea5e)) - -## [3.15.2](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.15.1...google-cloud-dlp-v3.15.2) (2024-02-22) - - -### Bug Fixes - -* **deps:** [Many APIs] Require `google-api-core>=1.34.1` ([#12306](https://github.com/googleapis/google-cloud-python/issues/12306)) ([1e787f2](https://github.com/googleapis/google-cloud-python/commit/1e787f2079ac41ce634c7b90f02a6597cecb64be)) -* fix ValueError in test__validate_universe_domain ([dd749df](https://github.com/googleapis/google-cloud-python/commit/dd749dfb4caf2e33f1152dfd8c4b0ac5424c381c)) - -## [3.15.1](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.15.0...google-cloud-dlp-v3.15.1) (2024-02-06) - - -### Bug Fixes - -* Add google-auth as a direct dependency ([c721248](https://github.com/googleapis/google-cloud-python/commit/c721248accc77f0b1fba9605a65ea95a86f023a5)) -* Add staticmethod decorator to _get_client_cert_source and _get_api_endpoint ([c721248](https://github.com/googleapis/google-cloud-python/commit/c721248accc77f0b1fba9605a65ea95a86f023a5)) -* Resolve AttributeError 'Credentials' object has no attribute 'universe_domain' ([c721248](https://github.com/googleapis/google-cloud-python/commit/c721248accc77f0b1fba9605a65ea95a86f023a5)) - -## [3.15.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.14.0...google-cloud-dlp-v3.15.0) (2024-02-01) - - -### Features - -* Allow users to explicitly configure universe domain ([#12240](https://github.com/googleapis/google-cloud-python/issues/12240)) ([d51f832](https://github.com/googleapis/google-cloud-python/commit/d51f83298f89dbae23af1a146411b296eba6bba2)) - -## [3.14.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.13.0...google-cloud-dlp-v3.14.0) (2023-12-07) - - -### Features - -* Add support for python 3.12 ([5cd98aa](https://github.com/googleapis/google-cloud-python/commit/5cd98aa0e8ead2eef82ecdcef4141b33a7da2b5a)) -* Introduce compatibility with native namespace packages ([5cd98aa](https://github.com/googleapis/google-cloud-python/commit/5cd98aa0e8ead2eef82ecdcef4141b33a7da2b5a)) - - -### Bug Fixes - -* Require proto-plus >= 1.22.3 ([5cd98aa](https://github.com/googleapis/google-cloud-python/commit/5cd98aa0e8ead2eef82ecdcef4141b33a7da2b5a)) -* Use `retry_async` instead of `retry` in async client ([5cd98aa](https://github.com/googleapis/google-cloud-python/commit/5cd98aa0e8ead2eef82ecdcef4141b33a7da2b5a)) - -## [3.13.0](https://github.com/googleapis/google-cloud-python/compare/google-cloud-dlp-v3.12.3...google-cloud-dlp-v3.13.0) (2023-11-02) - - -### Features - -* Add DeidentifyDataSource result summary protos ([65da9c9](https://github.com/googleapis/google-cloud-python/commit/65da9c9937dbe14918cf170cd5d1f1ab50659d5a)) -* Add protos for nullness and uniqueness, and column data profiles ([65da9c9](https://github.com/googleapis/google-cloud-python/commit/65da9c9937dbe14918cf170cd5d1f1ab50659d5a)) -* Add SensitivityScore proto to InfoType ([65da9c9](https://github.com/googleapis/google-cloud-python/commit/65da9c9937dbe14918cf170cd5d1f1ab50659d5a)) -* Introduce Discovery API protos and methods ([65da9c9](https://github.com/googleapis/google-cloud-python/commit/65da9c9937dbe14918cf170cd5d1f1ab50659d5a)) - - -### Documentation - -* Update comments for many messages. ([65da9c9](https://github.com/googleapis/google-cloud-python/commit/65da9c9937dbe14918cf170cd5d1f1ab50659d5a)) - -## [3.12.3](https://github.com/googleapis/python-dlp/compare/v3.12.2...v3.12.3) (2023-09-13) - - -### Documentation - -* Minor formatting ([#520](https://github.com/googleapis/python-dlp/issues/520)) ([d8a3639](https://github.com/googleapis/python-dlp/commit/d8a363969e1d19e36f6a5c57ec2d439300c95082)) - -## [3.12.2](https://github.com/googleapis/python-dlp/compare/v3.12.1...v3.12.2) (2023-07-04) - - -### Bug Fixes - -* Add async context manager return types ([#505](https://github.com/googleapis/python-dlp/issues/505)) ([a4099cc](https://github.com/googleapis/python-dlp/commit/a4099cca37464c6b94531d327bdfd7ab600f7159)) - -## [3.12.1](https://github.com/googleapis/python-dlp/compare/v3.12.0...v3.12.1) (2023-03-23) - - -### Documentation - -* Fix formatting of request arg in docstring ([#497](https://github.com/googleapis/python-dlp/issues/497)) ([60cafe1](https://github.com/googleapis/python-dlp/commit/60cafe18f98c9b46553c4cba521b95e4b1c5e6d1)) - -## [3.12.0](https://github.com/googleapis/python-dlp/compare/v3.11.1...v3.12.0) (2023-02-28) - - -### Features - -* Enable "rest" transport in Python for services supporting numeric enums ([#491](https://github.com/googleapis/python-dlp/issues/491)) ([4265240](https://github.com/googleapis/python-dlp/commit/4265240f00974b83a354300c49010f03ac7c8b7d)) - -## [3.11.1](https://github.com/googleapis/python-dlp/compare/v3.11.0...v3.11.1) (2023-01-20) - - -### Bug Fixes - -* Add context manager return types ([29a4548](https://github.com/googleapis/python-dlp/commit/29a45484fc9397330b6166e451bb3efcc29d6f01)) - - -### Documentation - -* Add documentation for enums ([29a4548](https://github.com/googleapis/python-dlp/commit/29a45484fc9397330b6166e451bb3efcc29d6f01)) - -## [3.11.0](https://github.com/googleapis/python-dlp/compare/v3.10.1...v3.11.0) (2023-01-10) - - -### Features - -* Add support for python 3.11 ([#474](https://github.com/googleapis/python-dlp/issues/474)) ([5e88d1e](https://github.com/googleapis/python-dlp/commit/5e88d1e128459fae385dc3d855623cc86e6c99be)) - -## [3.10.1](https://github.com/googleapis/python-dlp/compare/v3.10.0...v3.10.1) (2023-01-05) - - -### Documentation - -* **samples:** Adding a missing line as suggested by feedback ([#469](https://github.com/googleapis/python-dlp/issues/469)) ([8216416](https://github.com/googleapis/python-dlp/commit/8216416485fe2e450e622b1eba24a097c20ada19)) - -## [3.10.0](https://github.com/googleapis/python-dlp/compare/v3.9.2...v3.10.0) (2022-12-15) - - -### Features - -* Add support for `google.cloud.dlp.__version__` ([bf3e815](https://github.com/googleapis/python-dlp/commit/bf3e8155d4a56b3016e9313c6b543f2d356eab6b)) -* Add typing to proto.Message based class attributes ([bf3e815](https://github.com/googleapis/python-dlp/commit/bf3e8155d4a56b3016e9313c6b543f2d356eab6b)) -* ExcludeByHotword added as an ExclusionRule type ([bf3e815](https://github.com/googleapis/python-dlp/commit/bf3e8155d4a56b3016e9313c6b543f2d356eab6b)) -* NEW_ZEALAND added as a LocationCategory value ([bf3e815](https://github.com/googleapis/python-dlp/commit/bf3e8155d4a56b3016e9313c6b543f2d356eab6b)) - - -### Bug Fixes - -* Add dict typing for client_options ([bf3e815](https://github.com/googleapis/python-dlp/commit/bf3e8155d4a56b3016e9313c6b543f2d356eab6b)) -* **deps:** Require google-api-core >=1.34.0, >=2.11.0 ([2e9826d](https://github.com/googleapis/python-dlp/commit/2e9826d20e10916a07be781c5098caf47a0b0b10)) -* Drop usage of pkg_resources ([2e9826d](https://github.com/googleapis/python-dlp/commit/2e9826d20e10916a07be781c5098caf47a0b0b10)) -* Fix timeout default values ([2e9826d](https://github.com/googleapis/python-dlp/commit/2e9826d20e10916a07be781c5098caf47a0b0b10)) - - -### Documentation - -* **samples:** Snippetgen handling of repeated enum field ([bf3e815](https://github.com/googleapis/python-dlp/commit/bf3e8155d4a56b3016e9313c6b543f2d356eab6b)) -* **samples:** Snippetgen should call await on the operation coroutine before calling result ([2e9826d](https://github.com/googleapis/python-dlp/commit/2e9826d20e10916a07be781c5098caf47a0b0b10)) - -## [3.9.2](https://github.com/googleapis/python-dlp/compare/v3.9.1...v3.9.2) (2022-10-07) - - -### Bug Fixes - -* **deps:** Allow protobuf 3.19.5 ([#451](https://github.com/googleapis/python-dlp/issues/451)) ([a1e1b92](https://github.com/googleapis/python-dlp/commit/a1e1b9278e47ecff3f6d92f21dfc55368c7d35e1)) - -## [3.9.1](https://github.com/googleapis/python-dlp/compare/v3.9.0...v3.9.1) (2022-10-04) - - -### Bug Fixes - -* **deps:** Require protobuf >= 3.20.2 ([#446](https://github.com/googleapis/python-dlp/issues/446)) ([2d63fa5](https://github.com/googleapis/python-dlp/commit/2d63fa547e8f593773722d049614570e01bba42a)) - - -### Documentation - -* Deprecate extra field to avoid confusion ([#447](https://github.com/googleapis/python-dlp/issues/447)) ([8ee182f](https://github.com/googleapis/python-dlp/commit/8ee182f1c5022bc7ef7e4d2295106e8d5ef247f5)) - -## [3.9.0](https://github.com/googleapis/python-dlp/compare/v3.8.1...v3.9.0) (2022-09-06) - - -### Features - -* Add Deidentify action ([#438](https://github.com/googleapis/python-dlp/issues/438)) ([c28073b](https://github.com/googleapis/python-dlp/commit/c28073b945d5539518bedaaf3903fa71d4ddb0d4)) - -## [3.8.1](https://github.com/googleapis/python-dlp/compare/v3.8.0...v3.8.1) (2022-08-12) - - -### Bug Fixes - -* **deps:** allow protobuf < 5.0.0 ([#422](https://github.com/googleapis/python-dlp/issues/422)) ([c179361](https://github.com/googleapis/python-dlp/commit/c179361d1686a8f66c7c812d7a171b1813d46f3c)) -* **deps:** require proto-plus >= 1.22.0 ([c179361](https://github.com/googleapis/python-dlp/commit/c179361d1686a8f66c7c812d7a171b1813d46f3c)) - -## [3.8.0](https://github.com/googleapis/python-dlp/compare/v3.7.1...v3.8.0) (2022-07-16) - - -### Features - -* add audience parameter ([6a3d7ec](https://github.com/googleapis/python-dlp/commit/6a3d7ec17783fd6b3486b2bd5a04cb33d65acb3e)) -* InfoType categories were added to built-in infoTypes ([#409](https://github.com/googleapis/python-dlp/issues/409)) ([6a3d7ec](https://github.com/googleapis/python-dlp/commit/6a3d7ec17783fd6b3486b2bd5a04cb33d65acb3e)) - - -### Bug Fixes - -* **deps:** require google-api-core>=1.32.0,>=2.8.0 ([6a3d7ec](https://github.com/googleapis/python-dlp/commit/6a3d7ec17783fd6b3486b2bd5a04cb33d65acb3e)) -* require python 3.7+ ([#411](https://github.com/googleapis/python-dlp/issues/411)) ([232001d](https://github.com/googleapis/python-dlp/commit/232001d2c15731c20d2b98f837906799b35309b6)) - -## [3.7.1](https://github.com/googleapis/python-dlp/compare/v3.7.0...v3.7.1) (2022-06-03) - - -### Bug Fixes - -* **deps:** require protobuf <4.0.0dev ([#395](https://github.com/googleapis/python-dlp/issues/395)) ([d8760a1](https://github.com/googleapis/python-dlp/commit/d8760a12f4d566cb64df4e4aec3641cb6aa8e588)) -* drop dependency pytz ([d8760a1](https://github.com/googleapis/python-dlp/commit/d8760a12f4d566cb64df4e4aec3641cb6aa8e588)) - - -### Documentation - -* fix changelog header to consistent size ([#396](https://github.com/googleapis/python-dlp/issues/396)) ([d09ac69](https://github.com/googleapis/python-dlp/commit/d09ac693f6b356bf5da1e26e522168bc2376872e)) - -## [3.7.0](https://github.com/googleapis/python-dlp/compare/v3.6.2...v3.7.0) (2022-05-12) - - -### Features - -* add DataProfilePubSubMessage supporting pub/sub integration ([#363](https://github.com/googleapis/python-dlp/issues/363)) ([15a4653](https://github.com/googleapis/python-dlp/commit/15a4653426b2a614a22152ca0a4b457fd8696d3a)) -* new Bytes and File types POWERPOINT and EXCEL ([#355](https://github.com/googleapis/python-dlp/issues/355)) ([be8c8b1](https://github.com/googleapis/python-dlp/commit/be8c8b145d8ecad24a9c56f4ab26520700b157a8)) - -## [3.6.2](https://github.com/googleapis/python-dlp/compare/v3.6.1...v3.6.2) (2022-03-05) - - -### Bug Fixes - -* **deps:** require proto-plus>=1.15.0 ([#342](https://github.com/googleapis/python-dlp/issues/342)) ([81ae7b6](https://github.com/googleapis/python-dlp/commit/81ae7b6c25071f18c356b62d2df4234f43fe1fec)) - -## [3.6.1](https://github.com/googleapis/python-dlp/compare/v3.6.0...v3.6.1) (2022-02-26) - - -### Bug Fixes - -* resolve DuplicateCredentialArgs error when using credentials_file ([#325](https://github.com/googleapis/python-dlp/issues/325)) ([676f1d7](https://github.com/googleapis/python-dlp/commit/676f1d76158c6c0951e75362d5eb34f57d901712)) - - -### Documentation - -* **dlp-samples:** modified region tags and fixed comment ([#330](https://github.com/googleapis/python-dlp/issues/330)) ([6375f90](https://github.com/googleapis/python-dlp/commit/6375f90805c5e30c995c47d1538fb08882afb518)) - -## [3.6.0](https://github.com/googleapis/python-dlp/compare/v3.5.0...v3.6.0) (2022-01-26) - - -### Features - -* add api key support ([#320](https://github.com/googleapis/python-dlp/issues/320)) ([ac2fe87](https://github.com/googleapis/python-dlp/commit/ac2fe8702b31f687935938b9fb089953e9a3af48)) - - -### Bug Fixes - -* **deps:** require google-api-core>=1.31.5, >2.3.0 ([#322](https://github.com/googleapis/python-dlp/issues/322)) ([24d07e3](https://github.com/googleapis/python-dlp/commit/24d07e3af30b694b4b73b40fb2a5f19c276d6d98)) - -## [3.5.0](https://github.com/googleapis/python-dlp/compare/v3.4.0...v3.5.0) (2022-01-16) - - -### Features - -* add support for Python 3.9 / 3.10 ([#300](https://github.com/googleapis/python-dlp/issues/300)) ([ac58bde](https://github.com/googleapis/python-dlp/commit/ac58bde1f9d361f56ecf942319d1c427159a02e9)) - -## [3.4.0](https://www.github.com/googleapis/python-dlp/compare/v3.3.1...v3.4.0) (2021-12-03) - - -### Features - -* added deidentify replacement dictionaries ([#296](https://www.github.com/googleapis/python-dlp/issues/296)) ([63e9661](https://www.github.com/googleapis/python-dlp/commit/63e96614ba72e4ae8e0eafe4139d5329e75a3c18)) -* added field for BigQuery inspect template inclusion lists ([63e9661](https://www.github.com/googleapis/python-dlp/commit/63e96614ba72e4ae8e0eafe4139d5329e75a3c18)) -* added field to support infotype versioning ([63e9661](https://www.github.com/googleapis/python-dlp/commit/63e96614ba72e4ae8e0eafe4139d5329e75a3c18)) - -## [3.3.1](https://www.github.com/googleapis/python-dlp/compare/v3.3.0...v3.3.1) (2021-11-05) - - -### Bug Fixes - -* **deps:** drop packaging dependency ([84181e9](https://www.github.com/googleapis/python-dlp/commit/84181e971ee04b46a603119d44410816fd7f04be)) -* **deps:** require google-api-core >= 1.28.0 ([84181e9](https://www.github.com/googleapis/python-dlp/commit/84181e971ee04b46a603119d44410816fd7f04be)) -* fix extras_require typo in setup.py ([84181e9](https://www.github.com/googleapis/python-dlp/commit/84181e971ee04b46a603119d44410816fd7f04be)) - - -### Documentation - -* list oneofs in docstring ([84181e9](https://www.github.com/googleapis/python-dlp/commit/84181e971ee04b46a603119d44410816fd7f04be)) - -## [3.3.0](https://www.github.com/googleapis/python-dlp/compare/v3.2.4...v3.3.0) (2021-10-26) - - -### Features - -* add context manager support in client ([#272](https://www.github.com/googleapis/python-dlp/issues/272)) ([c0ba4eb](https://www.github.com/googleapis/python-dlp/commit/c0ba4eb27304c4e216864f6707693b27dc22c214)) - -## [3.2.4](https://www.github.com/googleapis/python-dlp/compare/v3.2.3...v3.2.4) (2021-10-05) - - -### Bug Fixes - -* improper types in pagers generation ([164977f](https://www.github.com/googleapis/python-dlp/commit/164977fda1fff85a245869ff197c3ca9f200f544)) - -## [3.2.3](https://www.github.com/googleapis/python-dlp/compare/v3.2.2...v3.2.3) (2021-09-24) - - -### Bug Fixes - -* add 'dict' annotation type to 'request' ([ff98215](https://www.github.com/googleapis/python-dlp/commit/ff98215e7dc3fc6a2e8b04e3b8e570cd72556f4f)) - -## [3.2.2](https://www.github.com/googleapis/python-dlp/compare/v3.2.1...v3.2.2) (2021-07-27) - - -### Bug Fixes - -* enable self signed jwt for grpc ([#218](https://www.github.com/googleapis/python-dlp/issues/218)) ([584a887](https://www.github.com/googleapis/python-dlp/commit/584a887ac2bb648ebac439d4044f3fd8f12a01f4)) - - -### Documentation - -* add Samples section to CONTRIBUTING.rst ([#210](https://www.github.com/googleapis/python-dlp/issues/210)) ([566827b](https://www.github.com/googleapis/python-dlp/commit/566827ba4cead4a5237fed370da132dd6fb55602)) - - -### Miscellaneous Chores - -* release as 3.2.2 ([#219](https://www.github.com/googleapis/python-dlp/issues/219)) ([5618115](https://www.github.com/googleapis/python-dlp/commit/56181152dbc1e48a70583e81dbe0fc089725f463)) - -## [3.2.1](https://www.github.com/googleapis/python-dlp/compare/v3.2.0...v3.2.1) (2021-07-21) - - -### Bug Fixes - -* **deps:** pin 'google-{api,cloud}-core', 'google-auth' to allow 2.x versions ([#209](https://www.github.com/googleapis/python-dlp/issues/209)) ([a016e6b](https://www.github.com/googleapis/python-dlp/commit/a016e6bd69a04b1e68efe48dd77493bd5267fbe5)) - -## [3.2.0](https://www.github.com/googleapis/python-dlp/compare/v3.1.1...v3.2.0) (2021-07-12) - - -### Features - -* add always_use_jwt_access ([#172](https://www.github.com/googleapis/python-dlp/issues/172)) ([fb86805](https://www.github.com/googleapis/python-dlp/commit/fb8680580a16b088fd680355e85f12593372b9a4)) - - -### Bug Fixes - -* disable always_use_jwt_access ([#177](https://www.github.com/googleapis/python-dlp/issues/177)) ([15f189f](https://www.github.com/googleapis/python-dlp/commit/15f189fdbbb8f9445bd88e3675c3f1e65da84aad)) - - -### Documentation - -* omit mention of Python 2.7 in 'CONTRIBUTING.rst' ([#1127](https://www.github.com/googleapis/python-dlp/issues/1127)) ([#166](https://www.github.com/googleapis/python-dlp/issues/166)) ([e2e1c90](https://www.github.com/googleapis/python-dlp/commit/e2e1c90d65a2e2e9c1be1ed7921e138059401519)) - -## [3.1.1](https://www.github.com/googleapis/python-dlp/compare/v3.1.0...v3.1.1) (2021-06-16) - - -### Bug Fixes - -* **deps:** add packaging requirement ([#162](https://www.github.com/googleapis/python-dlp/issues/162)) ([e857e15](https://www.github.com/googleapis/python-dlp/commit/e857e1522d9fd59c1b4c5d9936c7371ddf8018b1)) - -## [3.1.0](https://www.github.com/googleapis/python-dlp/compare/v3.0.1...v3.1.0) (2021-05-28) - - -### Features - -* crypto_deterministic_config ([#108](https://www.github.com/googleapis/python-dlp/issues/108)) ([#119](https://www.github.com/googleapis/python-dlp/issues/119)) ([396804d](https://www.github.com/googleapis/python-dlp/commit/396804d65e40c1ae9ced16aa0f04ef4bdffa54c5)) -* support self-signed JWT flow for service accounts ([cdea974](https://www.github.com/googleapis/python-dlp/commit/cdea9744d0bc7244a42894acc1446080a16b2dab)) - - -### Bug Fixes - -* add async client ([cdea974](https://www.github.com/googleapis/python-dlp/commit/cdea9744d0bc7244a42894acc1446080a16b2dab)) -* require google-api-core>=1.22.2 ([d146cf5](https://www.github.com/googleapis/python-dlp/commit/d146cf59db14b3c3afbef72d7a86419532ad347e)) -* use correct retry deadlines ([#96](https://www.github.com/googleapis/python-dlp/issues/96)) ([d146cf5](https://www.github.com/googleapis/python-dlp/commit/d146cf59db14b3c3afbef72d7a86419532ad347e)) - -## [3.0.1](https://www.github.com/googleapis/python-dlp/compare/v3.0.0...v3.0.1) (2021-01-28) - - -### Bug Fixes - -* remove gRPC send/recv limits; add enums to `types/__init__.py` ([#89](https://www.github.com/googleapis/python-dlp/issues/89)) ([76e0439](https://www.github.com/googleapis/python-dlp/commit/76e0439b3acfdacf9303595107c03c1d49eac8b6)) - -## [3.0.0](https://www.github.com/googleapis/python-dlp/compare/v2.0.0...v3.0.0) (2020-12-02) - - -### ⚠ BREAKING CHANGES -* rename fields that collide with builtins (#75) - * `ByteContentItem.type` -> `ByteContentItem.type_` - * `MetadataLocation.type` -> `MetadataLocation.type_` - * `Container.type` -> `Container.type_` - * `Bucket.min` -> `Bucket.min_` - * `Bucket.max `-> `Bucket.max_` - * `DlpJob.type` -> `DlpJob.type_` - * `GetDlpJobRequest.type` -> `GetDlpJobRequest.type_` - -### Bug Fixes - -* rename fields that collide with builtins; retrieve job config for risk analysis jobs ([#75](https://www.github.com/googleapis/python-dlp/issues/75)) ([4f3148e](https://www.github.com/googleapis/python-dlp/commit/4f3148e93ec3dfc9395aa38a3afc62498500a055)) - - -### Documentation - -* **samples:** fix README to accurately reflect the new repo after the move ([#72](https://www.github.com/googleapis/python-dlp/issues/72)) ([dc56806](https://www.github.com/googleapis/python-dlp/commit/dc56806b47f92227e396969d8a583b881aa41fd1)) - -## [2.0.0](https://www.github.com/googleapis/python-dlp/compare/v1.0.0...v2.0.0) (2020-08-18) - - -### ⚠ BREAKING CHANGES - -* migrate to use microgen (#34) - -### Features - -* migrate to use microgen ([#34](https://www.github.com/googleapis/python-dlp/issues/34)) ([c6001e2](https://www.github.com/googleapis/python-dlp/commit/c6001e20facb0bba957794c674c7b1121dc1774a)) - -## [1.0.0](https://www.github.com/googleapis/python-dlp/compare/v0.15.0...v1.0.0) (2020-06-10) - - -### Features - -* set release_status to production/stable ([#9](https://www.github.com/googleapis/python-dlp/issues/9)) ([a7f22a5](https://www.github.com/googleapis/python-dlp/commit/a7f22a5c29d2393ed89a65c3423c590f4454d1c9)) - -## [0.15.0](https://www.github.com/googleapis/python-dlp/compare/v0.14.0...v0.15.0) (2020-05-14) - - -### Features - -* add file types and metadata location enums (via synth) ([#16](https://www.github.com/googleapis/python-dlp/issues/16)) ([442bd9f](https://www.github.com/googleapis/python-dlp/commit/442bd9f57fdc7f186e34958ac422fa39eadf03c2)) -* add support for hybrid jobs (via synth) ([#10](https://www.github.com/googleapis/python-dlp/issues/10)) ([ffad36e](https://www.github.com/googleapis/python-dlp/commit/ffad36ec37e62648f81830ecabbccb1d57e49036)) - -## [0.14.0](https://www.github.com/googleapis/python-dlp/compare/v0.13.0...v0.14.0) (2020-02-21) - - -### Features - -* **dlp:** undeprecate resource name helper methods, add 2.7 deprecation warning (via synth) ([#10040](https://www.github.com/googleapis/python-dlp/issues/10040)) ([b30d7c1](https://www.github.com/googleapis/python-dlp/commit/b30d7c1cd48fba47fdddb7b9232e421261108a52)) - -## 0.13.0 - -12-06-2019 14:29 PST - - -### Implementation Changes -- Remove send/recv msg size limit (via synth). ([#8953](https://github.com/googleapis/google-cloud-python/pull/8953)) - -### New Features -- Add `location_id` in preparation for regionalization; deprecate resource name helper functions (via synth). ([#9856](https://github.com/googleapis/google-cloud-python/pull/9856)) - -### Documentation -- Add python 2 sunset banner to documentation. ([#9036](https://github.com/googleapis/google-cloud-python/pull/9036)) -- Change requests intersphinx ref (via synth). ([#9403](https://github.com/googleapis/google-cloud-python/pull/9403)) -- Fix intersphinx reference to requests. ([#9294](https://github.com/googleapis/google-cloud-python/pull/9294)) -- Remove CI for gh-pages, use googleapis.dev for api_core refs. ([#9085](https://github.com/googleapis/google-cloud-python/pull/9085)) -- Remove compatability badges from READMEs. ([#9035](https://github.com/googleapis/google-cloud-python/pull/9035)) -- Update intersphinx mapping for requests. ([#8805](https://github.com/googleapis/google-cloud-python/pull/8805)) - -### Internal / Testing Changes -- Normalize VPCSC configuration in systests. ([#9608](https://github.com/googleapis/google-cloud-python/pull/9608)) -- Ensure env is always set; fix typo in `test_deidentify_content`. ([#9479](https://github.com/googleapis/google-cloud-python/pull/9479)) -- Exclude 'noxfile.py' from synth. ([#9284](https://github.com/googleapis/google-cloud-python/pull/9284)) -- Ensure `GOOGLE_CLOUD_TESTS_IN_VPCSC` is down cast for env variables. ([#9274](https://github.com/googleapis/google-cloud-python/pull/9274)) -- Add VPCSC tests. ([#9249](https://github.com/googleapis/google-cloud-python/pull/9249)) - -## 0.12.1 - -07-24-2019 16:16 PDT - -### Dependencies -- Bump minimum version for google-api-core to 1.14.0. ([#8709](https://github.com/googleapis/google-cloud-python/pull/8709)) - -### Documentation -- Fix docs navigation issues. ([#8723](https://github.com/googleapis/google-cloud-python/pull/8723)) -- Link to googleapis.dev documentation in READMEs. ([#8705](https://github.com/googleapis/google-cloud-python/pull/8705)) -- Add compatibility check badges to READMEs. ([#8288](https://github.com/googleapis/google-cloud-python/pull/8288)) - -## 0.12.0 - -07-09-2019 13:20 PDT - -### New Features -- Add support for publishing findings to GCS; deprecate 'DetectionRule' message (via synth). ([#8610](https://github.com/googleapis/google-cloud-python/pull/8610)) -- Add 'client_options' support, update list method docstrings (via synth). ([#8507](https://github.com/googleapis/google-cloud-python/pull/8507)) -- Allow kwargs to be passed to create_channel; expose support for AVRO files (via synth). ([#8443](https://github.com/googleapis/google-cloud-python/pull/8443)) - -### Internal / Testing Changes -- Pin black version (via synth). ([#8581](https://github.com/googleapis/google-cloud-python/pull/8581)) -- Add docs job to publish to googleapis.dev. ([#8464](https://github.com/googleapis/google-cloud-python/pull/8464)) -- Update docstrings, format protos, update noxfile (via synth). ([#8239](https://github.com/googleapis/google-cloud-python/pull/8239)) -- Fix coverage in 'types.py' (via synth). ([#8153](https://github.com/googleapis/google-cloud-python/pull/8153)) -- Blacken noxfile.py, setup.py (via synth). ([#8121](https://github.com/googleapis/google-cloud-python/pull/8121)) -- Add empty lines (via synth). ([#8056](https://github.com/googleapis/google-cloud-python/pull/8056)) -- Add nox session `docs`, reorder methods (via synth). ([#7769](https://github.com/googleapis/google-cloud-python/pull/7769)) - -## 0.11.0 - -04-15-2019 15:05 PDT - - -### Implementation Changes -- Remove classifier for Python 3.4 for end-of-life. ([#7535](https://github.com/googleapis/google-cloud-python/pull/7535)) -- Remove unused message exports. ([#7267](https://github.com/googleapis/google-cloud-python/pull/7267)) -- Protoc-generated serialization update. ([#7081](https://github.com/googleapis/google-cloud-python/pull/7081)) - -### New Features -- Add support for filtering job triggers; add CryptoDeterministicConfig; update docs/conf.py. (via synth). ([#7390](https://github.com/googleapis/google-cloud-python/pull/7390)) - -### Documentation -- Updated client library documentation URLs. ([#7307](https://github.com/googleapis/google-cloud-python/pull/7307)) -- Update copyright headers -- Pick up stub docstring fix in GAPIC generator. ([#6969](https://github.com/googleapis/google-cloud-python/pull/6969)) - -### Internal / Testing Changes -- Copy in proto files. ([#7227](https://github.com/googleapis/google-cloud-python/pull/7227)) -- Add protos as an artifact to library ([#7205](https://github.com/googleapis/google-cloud-python/pull/7205)) - -## 0.10.0 - -12-17-2018 18:07 PST - - -### Implementation Changes -- Import `iam.policy` from `google.api_core`. ([#6741](https://github.com/googleapis/google-cloud-python/pull/6741)) -- Pick up enum fixes in the GAPIC generator. ([#6611](https://github.com/googleapis/google-cloud-python/pull/6611)) -- Pick up fixes in GAPIC generator. ([#6495](https://github.com/googleapis/google-cloud-python/pull/6495)) -- Fix `client_info` bug, update docstrings via synth. ([#6440](https://github.com/googleapis/google-cloud-python/pull/6440)) -- Assorted synth fixups / cleanups ([#6400](https://github.com/googleapis/google-cloud-python/pull/6400)) - -### New Features -- Add `BigQueryOptions.excluded_fields`. ([#6312](https://github.com/googleapis/google-cloud-python/pull/6312)) - -### Dependencies -- Bump minimum `api_core` version for all GAPIC libs to 1.4.1. ([#6391](https://github.com/googleapis/google-cloud-python/pull/6391)) - -### Documentation -- Document Python 2 deprecation ([#6910](https://github.com/googleapis/google-cloud-python/pull/6910)) -- Pick up docstring fix via synth. ([#6874](https://github.com/googleapis/google-cloud-python/pull/6874)) - -### Internal / Testing Changes -- Update noxfile. -- Blacken all gen'd libs ([#6792](https://github.com/googleapis/google-cloud-python/pull/6792)) -- Omit local deps ([#6701](https://github.com/googleapis/google-cloud-python/pull/6701)) -- Run black at end of synth.py ([#6698](https://github.com/googleapis/google-cloud-python/pull/6698)) -- Run Black on Generated libraries ([#6666](https://github.com/googleapis/google-cloud-python/pull/6666)) -- Add templates for flake8, coveragerc, noxfile, and black. ([#6642](https://github.com/googleapis/google-cloud-python/pull/6642)) -- Add synth metadata. ([#6565](https://github.com/googleapis/google-cloud-python/pull/6565)) - -## 0.9.0 - -10-18-2018 10:44 PDT - -### New Features - -- Added `stored_info_type` methods to v2. ([#6221](https://github.com/googleapis/google-cloud-python/pull/6221)) - -### Documentation - -- Docs: normalize use of support level badges ([#6159](https://github.com/googleapis/google-cloud-python/pull/6159)) -- Add / fix badges for PyPI / versions. ([#6158](https://github.com/googleapis/google-cloud-python/pull/6158)) - -### Internal / Testing Changes - -- Use new Nox ([#6175](https://github.com/googleapis/google-cloud-python/pull/6175)) -- Avoid replacing/scribbling on 'setup.py' during synth. ([#6125](https://github.com/googleapis/google-cloud-python/pull/6125)) - -## 0.8.0 - -### New Features -- Add support for exclude findings. ([#6091](https://github.com/GoogleCloudPlatform/google-cloud-python/pull/6091)) -- Add support for stored info type support. ([#5950](https://github.com/GoogleCloudPlatform/google-cloud-python/pull/5950)) - -### Documentation -- Fix docs issue in DLP generation. ([#5668](https://github.com/GoogleCloudPlatform/google-cloud-python/pull/5668), [#5815](https://github.com/GoogleCloudPlatform/google-cloud-python/pull/5815)) -- Docs: Replace links to '/stable/' with '/latest/'. ([#5901](https://github.com/GoogleCloudPlatform/google-cloud-python/pull/5901)) - -## 0.7.0 - -### New Features -- Add StoredInfoTypes (#5809) - -## 0.6.0 - -### New Features -- Regenerate DLP v2 endpoint (redact image, delta presence) (#5666) - -### Internal / Testing Changes -- Avoid overwriting '__module__' of messages from shared modules. (#5364) -- Add Test runs for Python 3.7 and remove 3.4 (#5295) -- Modify system tests to use prerelease versions of grpcio (#5304) - -## 0.5.0 - -### New Features -- Add PublishSummaryToCscc (#5246) -- Add configurable row limit (#5246) -- Add EntityID added to risk stats (#5246) -- Add dictionaries via GCS (#5246) - -## 0.4.0 - -### Implementation Changes - -- Remove DLP client version V2Beta1 (#5155) - -## 0.3.0 - -### Implementation changes - -- The library has been regenerated to pick up changes from the API's proto definition. (#5131) - -## 0.2.0 - -### Interface additions - -- Add DLP v2 (#5059) - -## 0.1.1 - -### Dependencies - -- Update dependency range for api-core to include v1.0.0 releases (#4944) - -### Testing and internal changes - -- Normalize all setup.py files (#4909) - -## 0.1.0 - -Initial release of the DLP (Data Loss Prevention) client library. (#4879) +# Changelog \ No newline at end of file