diff --git a/.release-please-manifest.json b/.release-please-manifest.json index b44b2870..4dedeaeb 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "2.4.0" + ".": "2.5.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 92e92e62..0e748ff0 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 14 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/turbopuffer-benesch/turbopuffer-17e5bcde1d39d5673f2b1bf4446afa000d90a0fdb9ae4b86a05bd15f12f9e547.yml -openapi_spec_hash: 4aaf757ac332b99a28f9a44a47891a5f -config_hash: bab72dc9f937352c7a01a37dadd44122 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/turbopuffer-benesch/turbopuffer-949092f69521d36010ea13571dc7ed1015a95e90897a971a398e1a5c968a8163.yml +openapi_spec_hash: bd6fdabde2b66bca3b7a3427ca943d9d +config_hash: cf1d73eb027654e6e18f24ca8b37f2af diff --git a/CHANGELOG.md b/CHANGELOG.md index 9679d134..0536f6d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 2.5.0 (2026-06-12) + +Full Changelog: [v2.4.0...v2.5.0](https://github.com/turbopuffer/turbopuffer-python/compare/v2.4.0...v2.5.0) + +### Features + +* tpuf-engine: support dest_encryption in copy_from_namespace ([3421ea0](https://github.com/turbopuffer/turbopuffer-python/commit/3421ea0ba6b98a2500e72dadd4e61aa4b0410f60)) + + +### Documentation + +* rename /docs/overview to /docs/api-overview ([68e7cd6](https://github.com/turbopuffer/turbopuffer-python/commit/68e7cd6fb1b073b5112def1ee4083f62ab994610)) + ## 2.4.0 (2026-06-08) Full Changelog: [v2.3.0...v2.4.0](https://github.com/turbopuffer/turbopuffer-python/compare/v2.3.0...v2.4.0) diff --git a/README.md b/README.md index e5637be4..e786e28c 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Use the turbopuffer MCP Server to enable AI assistants to interact with this API ## Documentation -The HTTP API documentation can be found at [turbopuffer.com/docs/overview](https://turbopuffer.com/docs/overview). +The HTTP API documentation can be found at [turbopuffer.com/docs/api-overview](https://turbopuffer.com/docs/api-overview). ## Installation diff --git a/pyproject.toml b/pyproject.toml index 087f157b..7ed157d3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "turbopuffer" -version = "2.4.0" +version = "2.5.0" description = "The official Python library for the turbopuffer API" dynamic = ["readme"] license = "MIT" diff --git a/src/turbopuffer/_version.py b/src/turbopuffer/_version.py index 432073e2..53e0214e 100644 --- a/src/turbopuffer/_version.py +++ b/src/turbopuffer/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "turbopuffer" -__version__ = "2.4.0" # x-release-please-version +__version__ = "2.5.0" # x-release-please-version diff --git a/src/turbopuffer/resources/namespaces.py b/src/turbopuffer/resources/namespaces.py index 876edec2..24396608 100644 --- a/src/turbopuffer/resources/namespaces.py +++ b/src/turbopuffer/resources/namespaces.py @@ -128,6 +128,7 @@ def copy_from( *, namespace: str | None = None, source_namespace: str, + dest_encryption: EncryptionParam | Omit = omit, source_api_key: str | Omit = omit, source_region: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -143,6 +144,8 @@ def copy_from( Args: source_namespace: The namespace to copy documents from. + dest_encryption: (Optional) The encryption configuration for the destination namespace. + source_api_key: (Optional) An API key for the organization containing the source namespace source_region: (Optional) The region of the source namespace. @@ -165,6 +168,7 @@ def copy_from( "copy_from_namespace": maybe_transform( { "source_namespace": source_namespace, + "dest_encryption": dest_encryption, "source_api_key": source_api_key, "source_region": source_region, }, @@ -887,6 +891,7 @@ async def copy_from( *, namespace: str | None = None, source_namespace: str, + dest_encryption: EncryptionParam | Omit = omit, source_api_key: str | Omit = omit, source_region: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -902,6 +907,8 @@ async def copy_from( Args: source_namespace: The namespace to copy documents from. + dest_encryption: (Optional) The encryption configuration for the destination namespace. + source_api_key: (Optional) An API key for the organization containing the source namespace source_region: (Optional) The region of the source namespace. @@ -924,6 +931,7 @@ async def copy_from( "copy_from_namespace": await async_maybe_transform( { "source_namespace": source_namespace, + "dest_encryption": dest_encryption, "source_api_key": source_api_key, "source_region": source_region, }, diff --git a/src/turbopuffer/types/namespace_copy_from_params.py b/src/turbopuffer/types/namespace_copy_from_params.py index 596f07c6..ff30f0f5 100644 --- a/src/turbopuffer/types/namespace_copy_from_params.py +++ b/src/turbopuffer/types/namespace_copy_from_params.py @@ -4,6 +4,8 @@ from typing_extensions import Required, TypedDict +from .encryption_param import EncryptionParam + __all__ = ["NamespaceCopyFromParams"] @@ -13,6 +15,9 @@ class NamespaceCopyFromParams(TypedDict, total=False): source_namespace: Required[str] """The namespace to copy documents from.""" + dest_encryption: EncryptionParam + """(Optional) The encryption configuration for the destination namespace.""" + source_api_key: str """(Optional) An API key for the organization containing the source namespace""" diff --git a/tests/api_resources/test_namespaces.py b/tests/api_resources/test_namespaces.py index 553f47c0..0c9c6145 100644 --- a/tests/api_resources/test_namespaces.py +++ b/tests/api_resources/test_namespaces.py @@ -85,6 +85,10 @@ def test_method_copy_from(self, client: Turbopuffer) -> None: def test_method_copy_from_with_all_params(self, client: Turbopuffer) -> None: namespace = client.namespace("namespace").copy_from( source_namespace="source_namespace", + dest_encryption={ + "key_name": "key_name", + "mode": "customer-managed", + }, source_api_key="source_api_key", source_region="source_region", ) @@ -701,6 +705,10 @@ async def test_method_copy_from(self, async_client: AsyncTurbopuffer) -> None: async def test_method_copy_from_with_all_params(self, async_client: AsyncTurbopuffer) -> None: namespace = await async_client.namespace("namespace").copy_from( source_namespace="source_namespace", + dest_encryption={ + "key_name": "key_name", + "mode": "customer-managed", + }, source_api_key="source_api_key", source_region="source_region", )