Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "1.2.0"
".": "1.3.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 89
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/knock%2Fknock-a552e94c4d04a0d44cb4052dbfbaadea6449c254d18eb0c9c93f4c0e8ee27ad3.yml
openapi_spec_hash: f4c271283f332a9868a0ee0cc2d9cd8b
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/knock%2Fknock-46f457b0a70074dc6b49569ab3c72a7aeedc111aabf2ffe84f64e5e2f386c14c.yml
openapi_spec_hash: e0fe11d0ae0a6be4f9c052fa649b2a1a
config_hash: 2ae8965d371a03bd30c6a56819c04cf2
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Changelog

## 1.3.0 (2025-05-27)

Full Changelog: [v1.2.0...v1.3.0](https://github.com/knocklabs/knock-python/compare/v1.2.0...v1.3.0)

### Features

* **api:** api update ([3a85980](https://github.com/knocklabs/knock-python/commit/3a85980ee3c9fbf228d458e7870c43b004fba4db))
* **api:** api update ([db342a3](https://github.com/knocklabs/knock-python/commit/db342a373ce3ebc82665b3213710e4d041b41ae8))


### Chores

* **docs:** grammar improvements ([7c7a2a6](https://github.com/knocklabs/knock-python/commit/7c7a2a62bdebf97bd230a7ac6d570de5f991d5cc))

## 1.2.0 (2025-05-20)

Full Changelog: [v1.1.0...v1.2.0](https://github.com/knocklabs/knock-python/compare/v1.1.0...v1.2.0)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ page = client.users.list_messages(
"lte": "lte",
},
)
print(page.entries)
print(page.items)
```

## Handling errors
Expand Down
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ before making any information public.
## Reporting Non-SDK Related Security Issues

If you encounter security issues that are not directly related to SDKs but pertain to the services
or products provided by Knock please follow the respective company's security reporting guidelines.
or products provided by Knock, please follow the respective company's security reporting guidelines.

### Knock Terms and Policies

Please contact security@knock.app for any questions or concerns regarding security of our services.
Please contact security@knock.app for any questions or concerns regarding the security of our services.

---

Expand Down
10 changes: 5 additions & 5 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ Methods:
- <code title="get /v1/users/{user_id}">client.users.<a href="./src/knockapi/resources/users/users.py">get</a>(user_id) -> <a href="./src/knockapi/types/user.py">User</a></code>
- <code title="get /v1/users/{user_id}/channel_data/{channel_id}">client.users.<a href="./src/knockapi/resources/users/users.py">get_channel_data</a>(user_id, channel_id) -> <a href="./src/knockapi/types/recipients/channel_data.py">ChannelData</a></code>
- <code title="get /v1/users/{user_id}/preferences/{id}">client.users.<a href="./src/knockapi/resources/users/users.py">get_preferences</a>(user_id, id, \*\*<a href="src/knockapi/types/user_get_preferences_params.py">params</a>) -> <a href="./src/knockapi/types/recipients/preference_set.py">PreferenceSet</a></code>
- <code title="get /v1/users/{user_id}/messages">client.users.<a href="./src/knockapi/resources/users/users.py">list_messages</a>(user_id, \*\*<a href="src/knockapi/types/user_list_messages_params.py">params</a>) -> <a href="./src/knockapi/types/message.py">SyncEntriesCursor[Message]</a></code>
- <code title="get /v1/users/{user_id}/messages">client.users.<a href="./src/knockapi/resources/users/users.py">list_messages</a>(user_id, \*\*<a href="src/knockapi/types/user_list_messages_params.py">params</a>) -> <a href="./src/knockapi/types/message.py">SyncItemsCursor[Message]</a></code>
- <code title="get /v1/users/{user_id}/preferences">client.users.<a href="./src/knockapi/resources/users/users.py">list_preferences</a>(user_id) -> <a href="./src/knockapi/types/user_list_preferences_response.py">UserListPreferencesResponse</a></code>
- <code title="get /v1/users/{user_id}/schedules">client.users.<a href="./src/knockapi/resources/users/users.py">list_schedules</a>(user_id, \*\*<a href="src/knockapi/types/user_list_schedules_params.py">params</a>) -> <a href="./src/knockapi/types/schedule.py">SyncEntriesCursor[Schedule]</a></code>
- <code title="get /v1/users/{user_id}/subscriptions">client.users.<a href="./src/knockapi/resources/users/users.py">list_subscriptions</a>(user_id, \*\*<a href="src/knockapi/types/user_list_subscriptions_params.py">params</a>) -> <a href="./src/knockapi/types/recipients/subscription.py">SyncEntriesCursor[Subscription]</a></code>
Expand Down Expand Up @@ -151,7 +151,7 @@ Methods:
- <code title="get /v1/objects/{collection}/{id}">client.objects.<a href="./src/knockapi/resources/objects/objects.py">get</a>(collection, id) -> <a href="./src/knockapi/types/object.py">Object</a></code>
- <code title="get /v1/objects/{collection}/{object_id}/channel_data/{channel_id}">client.objects.<a href="./src/knockapi/resources/objects/objects.py">get_channel_data</a>(collection, object_id, channel_id) -> <a href="./src/knockapi/types/recipients/channel_data.py">ChannelData</a></code>
- <code title="get /v1/objects/{collection}/{object_id}/preferences/{id}">client.objects.<a href="./src/knockapi/resources/objects/objects.py">get_preferences</a>(collection, object_id, id) -> <a href="./src/knockapi/types/recipients/preference_set.py">PreferenceSet</a></code>
- <code title="get /v1/objects/{collection}/{id}/messages">client.objects.<a href="./src/knockapi/resources/objects/objects.py">list_messages</a>(collection, id, \*\*<a href="src/knockapi/types/object_list_messages_params.py">params</a>) -> <a href="./src/knockapi/types/message.py">SyncEntriesCursor[Message]</a></code>
- <code title="get /v1/objects/{collection}/{id}/messages">client.objects.<a href="./src/knockapi/resources/objects/objects.py">list_messages</a>(collection, id, \*\*<a href="src/knockapi/types/object_list_messages_params.py">params</a>) -> <a href="./src/knockapi/types/message.py">SyncItemsCursor[Message]</a></code>
- <code title="get /v1/objects/{collection}/{object_id}/preferences">client.objects.<a href="./src/knockapi/resources/objects/objects.py">list_preferences</a>(collection, object_id) -> <a href="./src/knockapi/types/object_list_preferences_response.py">ObjectListPreferencesResponse</a></code>
- <code title="get /v1/objects/{collection}/{id}/schedules">client.objects.<a href="./src/knockapi/resources/objects/objects.py">list_schedules</a>(collection, id, \*\*<a href="src/knockapi/types/object_list_schedules_params.py">params</a>) -> <a href="./src/knockapi/types/schedule.py">SyncEntriesCursor[Schedule]</a></code>
- <code title="get /v1/objects/{collection}/{object_id}/subscriptions">client.objects.<a href="./src/knockapi/resources/objects/objects.py">list_subscriptions</a>(collection, object_id, \*\*<a href="src/knockapi/types/object_list_subscriptions_params.py">params</a>) -> <a href="./src/knockapi/types/recipients/subscription.py">SyncEntriesCursor[Subscription]</a></code>
Expand Down Expand Up @@ -218,13 +218,13 @@ from knockapi.types import (

Methods:

- <code title="get /v1/messages">client.messages.<a href="./src/knockapi/resources/messages/messages.py">list</a>(\*\*<a href="src/knockapi/types/message_list_params.py">params</a>) -> <a href="./src/knockapi/types/message.py">SyncEntriesCursor[Message]</a></code>
- <code title="get /v1/messages">client.messages.<a href="./src/knockapi/resources/messages/messages.py">list</a>(\*\*<a href="src/knockapi/types/message_list_params.py">params</a>) -> <a href="./src/knockapi/types/message.py">SyncItemsCursor[Message]</a></code>
- <code title="put /v1/messages/{message_id}/archived">client.messages.<a href="./src/knockapi/resources/messages/messages.py">archive</a>(message_id) -> <a href="./src/knockapi/types/message.py">Message</a></code>
- <code title="get /v1/messages/{message_id}">client.messages.<a href="./src/knockapi/resources/messages/messages.py">get</a>(message_id) -> <a href="./src/knockapi/types/message.py">Message</a></code>
- <code title="get /v1/messages/{message_id}/content">client.messages.<a href="./src/knockapi/resources/messages/messages.py">get_content</a>(message_id) -> <a href="./src/knockapi/types/message_get_content_response.py">MessageGetContentResponse</a></code>
- <code title="get /v1/messages/{message_id}/activities">client.messages.<a href="./src/knockapi/resources/messages/messages.py">list_activities</a>(message_id, \*\*<a href="src/knockapi/types/message_list_activities_params.py">params</a>) -> <a href="./src/knockapi/types/activity.py">SyncItemsCursor[Activity]</a></code>
- <code title="get /v1/messages/{message_id}/delivery_logs">client.messages.<a href="./src/knockapi/resources/messages/messages.py">list_delivery_logs</a>(message_id, \*\*<a href="src/knockapi/types/message_list_delivery_logs_params.py">params</a>) -> <a href="./src/knockapi/types/message_delivery_log.py">SyncEntriesCursor[MessageDeliveryLog]</a></code>
- <code title="get /v1/messages/{message_id}/events">client.messages.<a href="./src/knockapi/resources/messages/messages.py">list_events</a>(message_id, \*\*<a href="src/knockapi/types/message_list_events_params.py">params</a>) -> <a href="./src/knockapi/types/message_event.py">SyncEntriesCursor[MessageEvent]</a></code>
- <code title="get /v1/messages/{message_id}/delivery_logs">client.messages.<a href="./src/knockapi/resources/messages/messages.py">list_delivery_logs</a>(message_id, \*\*<a href="src/knockapi/types/message_list_delivery_logs_params.py">params</a>) -> <a href="./src/knockapi/types/message_delivery_log.py">SyncItemsCursor[MessageDeliveryLog]</a></code>
- <code title="get /v1/messages/{message_id}/events">client.messages.<a href="./src/knockapi/resources/messages/messages.py">list_events</a>(message_id, \*\*<a href="src/knockapi/types/message_list_events_params.py">params</a>) -> <a href="./src/knockapi/types/message_event.py">SyncItemsCursor[MessageEvent]</a></code>
- <code title="put /v1/messages/{message_id}/interacted">client.messages.<a href="./src/knockapi/resources/messages/messages.py">mark_as_interacted</a>(message_id, \*\*<a href="src/knockapi/types/message_mark_as_interacted_params.py">params</a>) -> <a href="./src/knockapi/types/message.py">Message</a></code>
- <code title="put /v1/messages/{message_id}/read">client.messages.<a href="./src/knockapi/resources/messages/messages.py">mark_as_read</a>(message_id) -> <a href="./src/knockapi/types/message.py">Message</a></code>
- <code title="put /v1/messages/{message_id}/seen">client.messages.<a href="./src/knockapi/resources/messages/messages.py">mark_as_seen</a>(message_id) -> <a href="./src/knockapi/types/message.py">Message</a></code>
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "knockapi"
version = "1.2.0"
version = "1.3.0"
description = "The official Python library for the knock API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/knockapi/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "knockapi"
__version__ = "1.2.0" # x-release-please-version
__version__ = "1.3.0" # x-release-please-version
26 changes: 13 additions & 13 deletions src/knockapi/resources/messages/messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
async_to_raw_response_wrapper,
async_to_streamed_response_wrapper,
)
from ...pagination import SyncItemsCursor, AsyncItemsCursor, SyncEntriesCursor, AsyncEntriesCursor
from ...pagination import SyncItemsCursor, AsyncItemsCursor
from ..._base_client import AsyncPaginator, make_request_options
from ...types.message import Message
from ...types.activity import Activity
Expand Down Expand Up @@ -94,7 +94,7 @@ def list(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> SyncEntriesCursor[Message]:
) -> SyncItemsCursor[Message]:
"""
Returns a paginated list of messages for the current environment.

Expand Down Expand Up @@ -139,7 +139,7 @@ def list(
"""
return self._get_api_list(
"/v1/messages",
page=SyncEntriesCursor[Message],
page=SyncItemsCursor[Message],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down Expand Up @@ -341,7 +341,7 @@ def list_delivery_logs(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> SyncEntriesCursor[MessageDeliveryLog]:
) -> SyncItemsCursor[MessageDeliveryLog]:
"""
Returns a paginated list of delivery logs for the specified message.

Expand All @@ -364,7 +364,7 @@ def list_delivery_logs(
raise ValueError(f"Expected a non-empty value for `message_id` but received {message_id!r}")
return self._get_api_list(
f"/v1/messages/{message_id}/delivery_logs",
page=SyncEntriesCursor[MessageDeliveryLog],
page=SyncItemsCursor[MessageDeliveryLog],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down Expand Up @@ -395,7 +395,7 @@ def list_events(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> SyncEntriesCursor[MessageEvent]:
) -> SyncItemsCursor[MessageEvent]:
"""
Returns a paginated list of events for the specified message.

Expand All @@ -418,7 +418,7 @@ def list_events(
raise ValueError(f"Expected a non-empty value for `message_id` but received {message_id!r}")
return self._get_api_list(
f"/v1/messages/{message_id}/events",
page=SyncEntriesCursor[MessageEvent],
page=SyncItemsCursor[MessageEvent],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down Expand Up @@ -710,7 +710,7 @@ def list(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> AsyncPaginator[Message, AsyncEntriesCursor[Message]]:
) -> AsyncPaginator[Message, AsyncItemsCursor[Message]]:
"""
Returns a paginated list of messages for the current environment.

Expand Down Expand Up @@ -755,7 +755,7 @@ def list(
"""
return self._get_api_list(
"/v1/messages",
page=AsyncEntriesCursor[Message],
page=AsyncItemsCursor[Message],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down Expand Up @@ -957,7 +957,7 @@ def list_delivery_logs(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> AsyncPaginator[MessageDeliveryLog, AsyncEntriesCursor[MessageDeliveryLog]]:
) -> AsyncPaginator[MessageDeliveryLog, AsyncItemsCursor[MessageDeliveryLog]]:
"""
Returns a paginated list of delivery logs for the specified message.

Expand All @@ -980,7 +980,7 @@ def list_delivery_logs(
raise ValueError(f"Expected a non-empty value for `message_id` but received {message_id!r}")
return self._get_api_list(
f"/v1/messages/{message_id}/delivery_logs",
page=AsyncEntriesCursor[MessageDeliveryLog],
page=AsyncItemsCursor[MessageDeliveryLog],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down Expand Up @@ -1011,7 +1011,7 @@ def list_events(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> AsyncPaginator[MessageEvent, AsyncEntriesCursor[MessageEvent]]:
) -> AsyncPaginator[MessageEvent, AsyncItemsCursor[MessageEvent]]:
"""
Returns a paginated list of events for the specified message.

Expand All @@ -1034,7 +1034,7 @@ def list_events(
raise ValueError(f"Expected a non-empty value for `message_id` but received {message_id!r}")
return self._get_api_list(
f"/v1/messages/{message_id}/events",
page=AsyncEntriesCursor[MessageEvent],
page=AsyncItemsCursor[MessageEvent],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down
10 changes: 5 additions & 5 deletions src/knockapi/resources/objects/objects.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
async_to_raw_response_wrapper,
async_to_streamed_response_wrapper,
)
from ...pagination import SyncEntriesCursor, AsyncEntriesCursor
from ...pagination import SyncItemsCursor, AsyncItemsCursor, SyncEntriesCursor, AsyncEntriesCursor
from ..._base_client import AsyncPaginator, make_request_options
from ...types.object import Object
from ...types.message import Message
Expand Down Expand Up @@ -422,7 +422,7 @@ def list_messages(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> SyncEntriesCursor[Message]:
) -> SyncItemsCursor[Message]:
"""
Returns a paginated list of messages for a specific object in the given
collection. Allows filtering by message status and provides various sorting
Expand Down Expand Up @@ -473,7 +473,7 @@ def list_messages(
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
return self._get_api_list(
f"/v1/objects/{collection}/{id}/messages",
page=SyncEntriesCursor[Message],
page=SyncItemsCursor[Message],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down Expand Up @@ -1260,7 +1260,7 @@ def list_messages(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> AsyncPaginator[Message, AsyncEntriesCursor[Message]]:
) -> AsyncPaginator[Message, AsyncItemsCursor[Message]]:
"""
Returns a paginated list of messages for a specific object in the given
collection. Allows filtering by message status and provides various sorting
Expand Down Expand Up @@ -1311,7 +1311,7 @@ def list_messages(
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
return self._get_api_list(
f"/v1/objects/{collection}/{id}/messages",
page=AsyncEntriesCursor[Message],
page=AsyncItemsCursor[Message],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down
Loading