Skip to content

Commit a39d0dc

Browse files
release: 1.15.0 (#63)
* chore(internal): detect missing future annotations with ruff * feat(api): api update * release: 1.15.0 --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
1 parent 66b13f7 commit a39d0dc

File tree

6 files changed

+50
-7
lines changed

6 files changed

+50
-7
lines changed

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "1.14.0"
2+
".": "1.15.0"
33
}

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 89
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/knock%2Fknock-fe051300804a0ee8b0212b288cec99c00918e570f4c4b8852f3f4a27afdddd1c.yml
3-
openapi_spec_hash: d2f75f52ceb88b56e4fcf58bf876fe44
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/knock%2Fknock-226200e7cda539eab84341167939339109659a66a48312fd41cb8b15b89ef8e2.yml
3+
openapi_spec_hash: 2097f5fdc617bdbe6a2780daa693a2f8
44
config_hash: 658c551418df454aa40794f8ac679c18

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# Changelog
22

3+
## 1.15.0 (2025-10-13)
4+
5+
Full Changelog: [v1.14.0...v1.15.0](https://github.com/knocklabs/knock-python/compare/v1.14.0...v1.15.0)
6+
7+
### Features
8+
9+
* **api:** api update ([f20d9d2](https://github.com/knocklabs/knock-python/commit/f20d9d2b2a07ca1193140f4409d3701fe7bd00df))
10+
11+
12+
### Chores
13+
14+
* **internal:** detect missing future annotations with ruff ([1ca76cb](https://github.com/knocklabs/knock-python/commit/1ca76cb3ed72befb82a5474996c2f4d4c928b205))
15+
316
## 1.14.0 (2025-10-07)
417

518
Full Changelog: [v1.13.0...v1.14.0](https://github.com/knocklabs/knock-python/compare/v1.13.0...v1.14.0)

pyproject.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "knockapi"
3-
version = "1.14.0"
3+
version = "1.15.0"
44
description = "The official Python library for the knock API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"
@@ -224,6 +224,8 @@ select = [
224224
"B",
225225
# remove unused imports
226226
"F401",
227+
# check for missing future annotations
228+
"FA102",
227229
# bare except statements
228230
"E722",
229231
# unused arguments
@@ -246,6 +248,8 @@ unfixable = [
246248
"T203",
247249
]
248250

251+
extend-safe-fixes = ["FA102"]
252+
249253
[tool.ruff.lint.flake8-tidy-imports.banned-api]
250254
"functools.lru_cache".msg = "This function does not retain type information for the wrapped function's arguments; The `lru_cache` function from `_utils` should be used instead"
251255

src/knockapi/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
__title__ = "knockapi"
4-
__version__ = "1.14.0" # x-release-please-version
4+
__version__ = "1.15.0" # x-release-please-version

src/knockapi/types/message.py

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from .._models import BaseModel
1010
from .recipient_reference import RecipientReference
1111

12-
__all__ = ["Message", "Source"]
12+
__all__ = ["Message", "Source", "Channel"]
1313

1414

1515
class Source(BaseModel):
@@ -31,6 +31,29 @@ class Source(BaseModel):
3131
"""Whether this message was generated from a workflow, broadcast, or guide."""
3232

3333

34+
class Channel(BaseModel):
35+
id: str
36+
"""The unique identifier for the channel."""
37+
38+
created_at: datetime
39+
"""The timestamp of when the channel was created."""
40+
41+
provider: str
42+
"""The ID of the provider that this channel uses to deliver messages."""
43+
44+
type: Literal["email", "in_app", "in_app_feed", "in_app_guide", "sms", "push", "chat", "http"]
45+
"""The type of channel, determining what kind of messages it can send."""
46+
47+
updated_at: datetime
48+
"""The timestamp of when the channel was last updated."""
49+
50+
key: Optional[str] = None
51+
"""Unique identifier for the channel within a project (immutable once created)."""
52+
53+
name: Optional[str] = None
54+
"""The human-readable name of the channel."""
55+
56+
3457
class Message(BaseModel):
3558
id: str
3659
"""The unique identifier for the message."""
@@ -39,7 +62,7 @@ class Message(BaseModel):
3962
"""The typename of the schema."""
4063

4164
channel_id: str
42-
"""The ID for the channel the message was sent through."""
65+
"""Deprecated, use channel.id instead."""
4366

4467
engagement_statuses: List[Literal["seen", "read", "interacted", "link_clicked", "archived"]]
4568
"""A list of engagement statuses."""
@@ -72,6 +95,9 @@ class Message(BaseModel):
7295
archived_at: Optional[datetime] = None
7396
"""Timestamp when the message was archived."""
7497

98+
channel: Optional[Channel] = None
99+
"""A configured channel, which is a way to route messages to a provider."""
100+
75101
clicked_at: Optional[datetime] = None
76102
"""Timestamp when the message was clicked."""
77103

0 commit comments

Comments
 (0)