diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 3a7ed508c..e2504c710 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.208.0"
+ ".": "0.209.0"
}
\ No newline at end of file
diff --git a/.stats.yml b/.stats.yml
index 6b3168540..a84aabbd9 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,2 +1,2 @@
-configured_endpoints: 201
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-7b89d3a40ae97579e589512ffb00e48f1cdd04e38d075dd8c5a16f80909ccfd5.yml
+configured_endpoints: 199
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-9d92797be06309903a9181e5f4f3c026a669fd40520da94b21f09eda84dfb65d.yml
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d51368558..f1fe0d57f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changelog
+## 0.209.0 (2025-03-15)
+
+Full Changelog: [v0.208.0...v0.209.0](https://github.com/Increase/increase-python/compare/v0.208.0...v0.209.0)
+
+### Features
+
+* **api:** api update ([#1035](https://github.com/Increase/increase-python/issues/1035)) ([4017f3d](https://github.com/Increase/increase-python/commit/4017f3d1fd27732b3264c988251f151deb1cdc25))
+
## 0.208.0 (2025-03-15)
Full Changelog: [v0.207.1...v0.208.0](https://github.com/Increase/increase-python/compare/v0.207.1...v0.208.0)
diff --git a/api.md b/api.md
index 83c51db42..7c38a2370 100644
--- a/api.md
+++ b/api.md
@@ -543,8 +543,6 @@ from increase.types import FileLink
Methods:
- client.file_links.create(\*\*params) -> FileLink
-- client.file_links.retrieve(file_link_id) -> FileLink
-- client.file_links.list(\*\*params) -> SyncPage[FileLink]
# Documents
diff --git a/pyproject.toml b/pyproject.toml
index d6e898cd8..83fe3f7a5 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "increase"
-version = "0.208.0"
+version = "0.209.0"
description = "The official Python library for the increase API"
dynamic = ["readme"]
license = "Apache-2.0"
diff --git a/src/increase/_version.py b/src/increase/_version.py
index abaad9a5f..9ae988484 100644
--- a/src/increase/_version.py
+++ b/src/increase/_version.py
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
__title__ = "increase"
-__version__ = "0.208.0" # x-release-please-version
+__version__ = "0.209.0" # x-release-please-version
diff --git a/src/increase/resources/file_links.py b/src/increase/resources/file_links.py
index 30d79e14e..9f8cbb7ad 100644
--- a/src/increase/resources/file_links.py
+++ b/src/increase/resources/file_links.py
@@ -7,7 +7,7 @@
import httpx
-from ..types import file_link_list_params, file_link_create_params
+from ..types import file_link_create_params
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
from .._utils import (
maybe_transform,
@@ -21,8 +21,7 @@
async_to_raw_response_wrapper,
async_to_streamed_response_wrapper,
)
-from ..pagination import SyncPage, AsyncPage
-from .._base_client import AsyncPaginator, make_request_options
+from .._base_client import make_request_options
from ..types.file_link import FileLink
__all__ = ["FileLinksResource", "AsyncFileLinksResource"]
@@ -99,102 +98,6 @@ def create(
cast_to=FileLink,
)
- def retrieve(
- self,
- file_link_id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> FileLink:
- """
- Retrieve a File Link
-
- Args:
- file_link_id: The identifier of the File Link.
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not file_link_id:
- raise ValueError(f"Expected a non-empty value for `file_link_id` but received {file_link_id!r}")
- return self._get(
- f"/file_links/{file_link_id}",
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=FileLink,
- )
-
- def list(
- self,
- *,
- file_id: str,
- created_at: file_link_list_params.CreatedAt | NotGiven = NOT_GIVEN,
- cursor: str | NotGiven = NOT_GIVEN,
- idempotency_key: str | NotGiven = NOT_GIVEN,
- limit: int | NotGiven = NOT_GIVEN,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> SyncPage[FileLink]:
- """
- List File Links
-
- Args:
- file_id: The identifier of the File to list File Links for.
-
- cursor: Return the page of entries after this one.
-
- idempotency_key: Filter records to the one with the specified `idempotency_key` you chose for
- that object. This value is unique across Increase and is used to ensure that a
- request is only processed once. Learn more about
- [idempotency](https://increase.com/documentation/idempotency-keys).
-
- limit: Limit the size of the list that is returned. The default (and maximum) is 100
- objects.
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- return self._get_api_list(
- "/file_links",
- page=SyncPage[FileLink],
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- query=maybe_transform(
- {
- "file_id": file_id,
- "created_at": created_at,
- "cursor": cursor,
- "idempotency_key": idempotency_key,
- "limit": limit,
- },
- file_link_list_params.FileLinkListParams,
- ),
- ),
- model=FileLink,
- )
-
class AsyncFileLinksResource(AsyncAPIResource):
@cached_property
@@ -267,102 +170,6 @@ async def create(
cast_to=FileLink,
)
- async def retrieve(
- self,
- file_link_id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> FileLink:
- """
- Retrieve a File Link
-
- Args:
- file_link_id: The identifier of the File Link.
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not file_link_id:
- raise ValueError(f"Expected a non-empty value for `file_link_id` but received {file_link_id!r}")
- return await self._get(
- f"/file_links/{file_link_id}",
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=FileLink,
- )
-
- def list(
- self,
- *,
- file_id: str,
- created_at: file_link_list_params.CreatedAt | NotGiven = NOT_GIVEN,
- cursor: str | NotGiven = NOT_GIVEN,
- idempotency_key: str | NotGiven = NOT_GIVEN,
- limit: int | NotGiven = NOT_GIVEN,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> AsyncPaginator[FileLink, AsyncPage[FileLink]]:
- """
- List File Links
-
- Args:
- file_id: The identifier of the File to list File Links for.
-
- cursor: Return the page of entries after this one.
-
- idempotency_key: Filter records to the one with the specified `idempotency_key` you chose for
- that object. This value is unique across Increase and is used to ensure that a
- request is only processed once. Learn more about
- [idempotency](https://increase.com/documentation/idempotency-keys).
-
- limit: Limit the size of the list that is returned. The default (and maximum) is 100
- objects.
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- return self._get_api_list(
- "/file_links",
- page=AsyncPage[FileLink],
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- query=maybe_transform(
- {
- "file_id": file_id,
- "created_at": created_at,
- "cursor": cursor,
- "idempotency_key": idempotency_key,
- "limit": limit,
- },
- file_link_list_params.FileLinkListParams,
- ),
- ),
- model=FileLink,
- )
-
class FileLinksResourceWithRawResponse:
def __init__(self, file_links: FileLinksResource) -> None:
@@ -371,12 +178,6 @@ def __init__(self, file_links: FileLinksResource) -> None:
self.create = to_raw_response_wrapper(
file_links.create,
)
- self.retrieve = to_raw_response_wrapper(
- file_links.retrieve,
- )
- self.list = to_raw_response_wrapper(
- file_links.list,
- )
class AsyncFileLinksResourceWithRawResponse:
@@ -386,12 +187,6 @@ def __init__(self, file_links: AsyncFileLinksResource) -> None:
self.create = async_to_raw_response_wrapper(
file_links.create,
)
- self.retrieve = async_to_raw_response_wrapper(
- file_links.retrieve,
- )
- self.list = async_to_raw_response_wrapper(
- file_links.list,
- )
class FileLinksResourceWithStreamingResponse:
@@ -401,12 +196,6 @@ def __init__(self, file_links: FileLinksResource) -> None:
self.create = to_streamed_response_wrapper(
file_links.create,
)
- self.retrieve = to_streamed_response_wrapper(
- file_links.retrieve,
- )
- self.list = to_streamed_response_wrapper(
- file_links.list,
- )
class AsyncFileLinksResourceWithStreamingResponse:
@@ -416,9 +205,3 @@ def __init__(self, file_links: AsyncFileLinksResource) -> None:
self.create = async_to_streamed_response_wrapper(
file_links.create,
)
- self.retrieve = async_to_streamed_response_wrapper(
- file_links.retrieve,
- )
- self.list = async_to_streamed_response_wrapper(
- file_links.list,
- )
diff --git a/src/increase/types/__init__.py b/src/increase/types/__init__.py
index 16bcc0f21..c099e4be4 100644
--- a/src/increase/types/__init__.py
+++ b/src/increase/types/__init__.py
@@ -61,7 +61,6 @@
from .account_update_params import AccountUpdateParams as AccountUpdateParams
from .bookkeeping_entry_set import BookkeepingEntrySet as BookkeepingEntrySet
from .entity_confirm_params import EntityConfirmParams as EntityConfirmParams
-from .file_link_list_params import FileLinkListParams as FileLinkListParams
from .inbound_check_deposit import InboundCheckDeposit as InboundCheckDeposit
from .inbound_wire_transfer import InboundWireTransfer as InboundWireTransfer
from .lockbox_create_params import LockboxCreateParams as LockboxCreateParams
diff --git a/src/increase/types/file.py b/src/increase/types/file.py
index e3cfe6f99..f99ab79e9 100644
--- a/src/increase/types/file.py
+++ b/src/increase/types/file.py
@@ -26,14 +26,6 @@ class File(BaseModel):
- `from_increase` - This File was generated by Increase.
"""
- download_url: Optional[str] = None
- """A URL from where the File can be downloaded at this point in time.
-
- The location of this URL may change over time. This URL requires authentication
- with your Increase API key. If you need a URL that does not require
- authentication, create a File Link instead.
- """
-
filename: Optional[str] = None
"""The filename that was provided upon upload or generated by Increase."""
diff --git a/src/increase/types/file_link.py b/src/increase/types/file_link.py
index 926b15119..5299453d0 100644
--- a/src/increase/types/file_link.py
+++ b/src/increase/types/file_link.py
@@ -36,15 +36,15 @@ class FileLink(BaseModel):
[idempotency](https://increase.com/documentation/idempotency-keys).
"""
- public_download_url: str
- """A URL where the File can be downloaded.
-
- The URL will expire after the `expires_at` time. This URL is unauthenticated and
- can be used to download the File without an Increase API key.
- """
-
type: Literal["file_link"]
"""A constant representing the object's type.
For this resource it will always be `file_link`.
"""
+
+ unauthenticated_url: str
+ """A URL where the File can be downloaded.
+
+ The URL will expire after the `expires_at` time. This URL is unauthenticated and
+ can be used to download the File without an Increase API key.
+ """
diff --git a/src/increase/types/file_link_list_params.py b/src/increase/types/file_link_list_params.py
deleted file mode 100644
index 432f19d06..000000000
--- a/src/increase/types/file_link_list_params.py
+++ /dev/null
@@ -1,61 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-from typing import Union
-from datetime import datetime
-from typing_extensions import Required, Annotated, TypedDict
-
-from .._utils import PropertyInfo
-
-__all__ = ["FileLinkListParams", "CreatedAt"]
-
-
-class FileLinkListParams(TypedDict, total=False):
- file_id: Required[str]
- """The identifier of the File to list File Links for."""
-
- created_at: CreatedAt
-
- cursor: str
- """Return the page of entries after this one."""
-
- idempotency_key: str
- """
- Filter records to the one with the specified `idempotency_key` you chose for
- that object. This value is unique across Increase and is used to ensure that a
- request is only processed once. Learn more about
- [idempotency](https://increase.com/documentation/idempotency-keys).
- """
-
- limit: int
- """Limit the size of the list that is returned.
-
- The default (and maximum) is 100 objects.
- """
-
-
-class CreatedAt(TypedDict, total=False):
- after: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]
- """
- Return results after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
- timestamp.
- """
-
- before: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]
- """
- Return results before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
- timestamp.
- """
-
- on_or_after: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]
- """
- Return results on or after this
- [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) timestamp.
- """
-
- on_or_before: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]
- """
- Return results on or before this
- [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) timestamp.
- """
diff --git a/tests/api_resources/test_file_links.py b/tests/api_resources/test_file_links.py
index 29df07284..d742e2366 100644
--- a/tests/api_resources/test_file_links.py
+++ b/tests/api_resources/test_file_links.py
@@ -11,7 +11,6 @@
from tests.utils import assert_matches_type
from increase.types import FileLink
from increase._utils import parse_datetime
-from increase.pagination import SyncPage, AsyncPage
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
@@ -58,91 +57,6 @@ def test_streaming_response_create(self, client: Increase) -> None:
assert cast(Any, response.is_closed) is True
- @parametrize
- def test_method_retrieve(self, client: Increase) -> None:
- file_link = client.file_links.retrieve(
- "file_link_id",
- )
- assert_matches_type(FileLink, file_link, path=["response"])
-
- @parametrize
- def test_raw_response_retrieve(self, client: Increase) -> None:
- response = client.file_links.with_raw_response.retrieve(
- "file_link_id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- file_link = response.parse()
- assert_matches_type(FileLink, file_link, path=["response"])
-
- @parametrize
- def test_streaming_response_retrieve(self, client: Increase) -> None:
- with client.file_links.with_streaming_response.retrieve(
- "file_link_id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- file_link = response.parse()
- assert_matches_type(FileLink, file_link, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- def test_path_params_retrieve(self, client: Increase) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `file_link_id` but received ''"):
- client.file_links.with_raw_response.retrieve(
- "",
- )
-
- @parametrize
- def test_method_list(self, client: Increase) -> None:
- file_link = client.file_links.list(
- file_id="file_id",
- )
- assert_matches_type(SyncPage[FileLink], file_link, path=["response"])
-
- @parametrize
- def test_method_list_with_all_params(self, client: Increase) -> None:
- file_link = client.file_links.list(
- file_id="file_id",
- created_at={
- "after": parse_datetime("2019-12-27T18:11:19.117Z"),
- "before": parse_datetime("2019-12-27T18:11:19.117Z"),
- "on_or_after": parse_datetime("2019-12-27T18:11:19.117Z"),
- "on_or_before": parse_datetime("2019-12-27T18:11:19.117Z"),
- },
- cursor="cursor",
- idempotency_key="x",
- limit=1,
- )
- assert_matches_type(SyncPage[FileLink], file_link, path=["response"])
-
- @parametrize
- def test_raw_response_list(self, client: Increase) -> None:
- response = client.file_links.with_raw_response.list(
- file_id="file_id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- file_link = response.parse()
- assert_matches_type(SyncPage[FileLink], file_link, path=["response"])
-
- @parametrize
- def test_streaming_response_list(self, client: Increase) -> None:
- with client.file_links.with_streaming_response.list(
- file_id="file_id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- file_link = response.parse()
- assert_matches_type(SyncPage[FileLink], file_link, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
class TestAsyncFileLinks:
parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"])
@@ -185,88 +99,3 @@ async def test_streaming_response_create(self, async_client: AsyncIncrease) -> N
assert_matches_type(FileLink, file_link, path=["response"])
assert cast(Any, response.is_closed) is True
-
- @parametrize
- async def test_method_retrieve(self, async_client: AsyncIncrease) -> None:
- file_link = await async_client.file_links.retrieve(
- "file_link_id",
- )
- assert_matches_type(FileLink, file_link, path=["response"])
-
- @parametrize
- async def test_raw_response_retrieve(self, async_client: AsyncIncrease) -> None:
- response = await async_client.file_links.with_raw_response.retrieve(
- "file_link_id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- file_link = await response.parse()
- assert_matches_type(FileLink, file_link, path=["response"])
-
- @parametrize
- async def test_streaming_response_retrieve(self, async_client: AsyncIncrease) -> None:
- async with async_client.file_links.with_streaming_response.retrieve(
- "file_link_id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- file_link = await response.parse()
- assert_matches_type(FileLink, file_link, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- async def test_path_params_retrieve(self, async_client: AsyncIncrease) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `file_link_id` but received ''"):
- await async_client.file_links.with_raw_response.retrieve(
- "",
- )
-
- @parametrize
- async def test_method_list(self, async_client: AsyncIncrease) -> None:
- file_link = await async_client.file_links.list(
- file_id="file_id",
- )
- assert_matches_type(AsyncPage[FileLink], file_link, path=["response"])
-
- @parametrize
- async def test_method_list_with_all_params(self, async_client: AsyncIncrease) -> None:
- file_link = await async_client.file_links.list(
- file_id="file_id",
- created_at={
- "after": parse_datetime("2019-12-27T18:11:19.117Z"),
- "before": parse_datetime("2019-12-27T18:11:19.117Z"),
- "on_or_after": parse_datetime("2019-12-27T18:11:19.117Z"),
- "on_or_before": parse_datetime("2019-12-27T18:11:19.117Z"),
- },
- cursor="cursor",
- idempotency_key="x",
- limit=1,
- )
- assert_matches_type(AsyncPage[FileLink], file_link, path=["response"])
-
- @parametrize
- async def test_raw_response_list(self, async_client: AsyncIncrease) -> None:
- response = await async_client.file_links.with_raw_response.list(
- file_id="file_id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- file_link = await response.parse()
- assert_matches_type(AsyncPage[FileLink], file_link, path=["response"])
-
- @parametrize
- async def test_streaming_response_list(self, async_client: AsyncIncrease) -> None:
- async with async_client.file_links.with_streaming_response.list(
- file_id="file_id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- file_link = await response.parse()
- assert_matches_type(AsyncPage[FileLink], file_link, path=["response"])
-
- assert cast(Any, response.is_closed) is True