Skip to content

Commit b212e20

Browse files
release: 4.3.0 (#7)
* chore: update SDK settings * codegen metadata * feat(api): manual updates * chore: update mock server docs * codegen metadata * codegen metadata * codegen metadata * feat(api): api update * feat(api): api update * release: 4.3.0 --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
1 parent 1656f98 commit b212e20

File tree

14 files changed

+196
-84
lines changed

14 files changed

+196
-84
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-
".": "4.2.0"
2+
".": "4.3.0"
33
}

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 23
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/beeper%2Fbeeper-desktop-api-ee25e67fc85ccc86cedb2ca0865385709877582132103e0afa68d7b43551784a.yml
3-
openapi_spec_hash: d41fd99c9a8645a1fd69c519cd25a637
4-
config_hash: abdcaeff62a619bdf25d727cdeacf3b0
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/beeper%2Fbeeper-desktop-api-4acef56b00be513f305543096fdd407e6947f0a5ad268ab2e627ff30b37a75db.yml
3+
openapi_spec_hash: e876d796b6c25f18577f6be3944bf7d9
4+
config_hash: 659111d4e28efa599b5f800619ed79c2

CHANGELOG.md

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

3+
## 4.3.0 (2026-02-20)
4+
5+
Full Changelog: [v4.2.0...v4.3.0](https://github.com/beeper/desktop-api-python/compare/v4.2.0...v4.3.0)
6+
7+
### Features
8+
9+
* **api:** api update ([4f6c268](https://github.com/beeper/desktop-api-python/commit/4f6c2685f00a7fd4f1db0b34faa6e354a0f7e220))
10+
* **api:** api update ([c77412c](https://github.com/beeper/desktop-api-python/commit/c77412c3d4daa460f8901f715a9f59dc1bfa3970))
11+
* **api:** manual updates ([223108d](https://github.com/beeper/desktop-api-python/commit/223108ddc2f84269df96dd8abf6787d8e45c02e6))
12+
13+
14+
### Chores
15+
16+
* update mock server docs ([70593f0](https://github.com/beeper/desktop-api-python/commit/70593f0416d4ed7251957c9fcdb5805e570b2577))
17+
* update SDK settings ([3741b42](https://github.com/beeper/desktop-api-python/commit/3741b42c7ab0c75897bb5cd753b1ce3b323686d2))
18+
319
## 4.2.0 (2026-02-20)
420

521
Full Changelog: [v4.1.296...v4.2.0](https://github.com/beeper/desktop-api-python/compare/v4.1.296...v4.2.0)

CONTRIBUTING.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,7 @@ $ pip install ./path-to-wheel-file.whl
8888
Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests.
8989

9090
```sh
91-
# you will need npm installed
92-
$ npx prism mock path/to/your/openapi.yml
91+
$ ./scripts/mock
9392
```
9493

9594
```sh

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,10 +218,11 @@ from beeper_desktop_api import BeeperDesktop
218218

219219
client = BeeperDesktop()
220220

221-
client.chats.reminders.create(
222-
chat_id="!NCdzlIaMjZUmvmvyHU:beeper.com",
223-
reminder={"remind_at_ms": 0},
221+
chat = client.chats.create(
222+
account_id="accountID",
223+
user={},
224224
)
225+
print(chat.user)
225226
```
226227

227228
## File uploads

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "beeper_desktop_api"
3-
version = "4.2.0"
3+
version = "4.3.0"
44
description = "The official Python library for the beeperdesktop API"
55
dynamic = ["readme"]
66
license = "MIT"

src/beeper_desktop_api/_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__ = "beeper_desktop_api"
4-
__version__ = "4.2.0" # x-release-please-version
4+
__version__ = "4.3.0" # x-release-please-version

src/beeper_desktop_api/resources/chats/chats.py

Lines changed: 82 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,14 @@ def with_streaming_response(self) -> ChatsResourceWithStreamingResponse:
7979
def create(
8080
self,
8181
*,
82-
chat: chat_create_params.Chat | Omit = omit,
82+
account_id: str,
83+
allow_invite: bool | Omit = omit,
84+
message_text: str | Omit = omit,
85+
mode: Literal["create", "start"] | Omit = omit,
86+
participant_ids: SequenceNotStr[str] | Omit = omit,
87+
title: str | Omit = omit,
88+
type: Literal["single", "group"] | Omit = omit,
89+
user: chat_create_params.User | Omit = omit,
8390
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
8491
# The extra values given here take precedence over values defined on the client or passed to this method.
8592
extra_headers: Headers | None = None,
@@ -92,6 +99,26 @@ def create(
9299
user data (mode='start').
93100
94101
Args:
102+
account_id: Account to create or start the chat on.
103+
104+
allow_invite: Whether invite-based DM creation is allowed when required by the platform. Used
105+
for mode='start'.
106+
107+
message_text: Optional first message content if the platform requires it to create the chat.
108+
109+
mode: Operation mode. Defaults to 'create' when omitted.
110+
111+
participant_ids: Required when mode='create'. User IDs to include in the new chat.
112+
113+
title: Optional title for group chats when mode='create'; ignored for single chats on
114+
most platforms.
115+
116+
type: Required when mode='create'. 'single' requires exactly one participantID;
117+
'group' supports multiple participants and optional title.
118+
119+
user: Required when mode='start'. Merged user-like contact payload used to resolve the
120+
best identifier.
121+
95122
extra_headers: Send extra headers
96123
97124
extra_query: Add additional query parameters to the request
@@ -102,7 +129,19 @@ def create(
102129
"""
103130
return self._post(
104131
"/v1/chats",
105-
body=maybe_transform(chat, chat_create_params.ChatCreateParams),
132+
body=maybe_transform(
133+
{
134+
"account_id": account_id,
135+
"allow_invite": allow_invite,
136+
"message_text": message_text,
137+
"mode": mode,
138+
"participant_ids": participant_ids,
139+
"title": title,
140+
"type": type,
141+
"user": user,
142+
},
143+
chat_create_params.ChatCreateParams,
144+
),
106145
options=make_request_options(
107146
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
108147
),
@@ -383,7 +422,14 @@ def with_streaming_response(self) -> AsyncChatsResourceWithStreamingResponse:
383422
async def create(
384423
self,
385424
*,
386-
chat: chat_create_params.Chat | Omit = omit,
425+
account_id: str,
426+
allow_invite: bool | Omit = omit,
427+
message_text: str | Omit = omit,
428+
mode: Literal["create", "start"] | Omit = omit,
429+
participant_ids: SequenceNotStr[str] | Omit = omit,
430+
title: str | Omit = omit,
431+
type: Literal["single", "group"] | Omit = omit,
432+
user: chat_create_params.User | Omit = omit,
387433
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
388434
# The extra values given here take precedence over values defined on the client or passed to this method.
389435
extra_headers: Headers | None = None,
@@ -396,6 +442,26 @@ async def create(
396442
user data (mode='start').
397443
398444
Args:
445+
account_id: Account to create or start the chat on.
446+
447+
allow_invite: Whether invite-based DM creation is allowed when required by the platform. Used
448+
for mode='start'.
449+
450+
message_text: Optional first message content if the platform requires it to create the chat.
451+
452+
mode: Operation mode. Defaults to 'create' when omitted.
453+
454+
participant_ids: Required when mode='create'. User IDs to include in the new chat.
455+
456+
title: Optional title for group chats when mode='create'; ignored for single chats on
457+
most platforms.
458+
459+
type: Required when mode='create'. 'single' requires exactly one participantID;
460+
'group' supports multiple participants and optional title.
461+
462+
user: Required when mode='start'. Merged user-like contact payload used to resolve the
463+
best identifier.
464+
399465
extra_headers: Send extra headers
400466
401467
extra_query: Add additional query parameters to the request
@@ -406,7 +472,19 @@ async def create(
406472
"""
407473
return await self._post(
408474
"/v1/chats",
409-
body=await async_maybe_transform(chat, chat_create_params.ChatCreateParams),
475+
body=await async_maybe_transform(
476+
{
477+
"account_id": account_id,
478+
"allow_invite": allow_invite,
479+
"message_text": message_text,
480+
"mode": mode,
481+
"participant_ids": participant_ids,
482+
"title": title,
483+
"type": type,
484+
"user": user,
485+
},
486+
chat_create_params.ChatCreateParams,
487+
),
410488
options=make_request_options(
411489
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
412490
),

src/beeper_desktop_api/resources/messages.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def search(
163163
limit: int | Omit = omit,
164164
media_types: List[Literal["any", "video", "image", "link", "file"]] | Omit = omit,
165165
query: str | Omit = omit,
166-
sender: Union[Literal["me", "others"], str] | Omit = omit,
166+
sender: str | Omit = omit,
167167
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
168168
# The extra values given here take precedence over values defined on the client or passed to this method.
169169
extra_headers: Headers | None = None,
@@ -439,7 +439,7 @@ def search(
439439
limit: int | Omit = omit,
440440
media_types: List[Literal["any", "video", "image", "link", "file"]] | Omit = omit,
441441
query: str | Omit = omit,
442-
sender: Union[Literal["me", "others"], str] | Omit = omit,
442+
sender: str | Omit = omit,
443443
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
444444
# The extra values given here take precedence over values defined on the client or passed to this method.
445445
extra_headers: Headers | None = None,

src/beeper_desktop_api/types/chat_create_params.py

Lines changed: 33 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,58 @@
22

33
from __future__ import annotations
44

5-
from typing import Union
6-
from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict
5+
from typing_extensions import Literal, Required, Annotated, TypedDict
76

87
from .._types import SequenceNotStr
98
from .._utils import PropertyInfo
109

11-
__all__ = ["ChatCreateParams", "Chat", "ChatUnionMember0", "ChatUnionMember1", "ChatUnionMember1User"]
10+
__all__ = ["ChatCreateParams", "User"]
1211

1312

1413
class ChatCreateParams(TypedDict, total=False):
15-
chat: Chat
16-
17-
18-
class ChatUnionMember0(TypedDict, total=False):
1914
account_id: Required[Annotated[str, PropertyInfo(alias="accountID")]]
20-
"""Account to create the chat on."""
15+
"""Account to create or start the chat on."""
2116

22-
participant_ids: Required[Annotated[SequenceNotStr[str], PropertyInfo(alias="participantIDs")]]
23-
"""User IDs to include in the new chat."""
17+
allow_invite: Annotated[bool, PropertyInfo(alias="allowInvite")]
18+
"""Whether invite-based DM creation is allowed when required by the platform.
2419
25-
type: Required[Literal["single", "group"]]
26-
"""
27-
Chat type to create: 'single' requires exactly one participantID; 'group'
28-
supports multiple participants and optional title.
20+
Used for mode='start'.
2921
"""
3022

3123
message_text: Annotated[str, PropertyInfo(alias="messageText")]
3224
"""Optional first message content if the platform requires it to create the chat."""
3325

34-
mode: Literal["create"]
35-
"""Create mode. Defaults to 'create' when omitted."""
26+
mode: Literal["create", "start"]
27+
"""Operation mode. Defaults to 'create' when omitted."""
28+
29+
participant_ids: Annotated[SequenceNotStr[str], PropertyInfo(alias="participantIDs")]
30+
"""Required when mode='create'. User IDs to include in the new chat."""
3631

3732
title: str
38-
"""Optional title for group chats; ignored for single chats on most platforms."""
33+
"""
34+
Optional title for group chats when mode='create'; ignored for single chats on
35+
most platforms.
36+
"""
3937

38+
type: Literal["single", "group"]
39+
"""Required when mode='create'.
4040
41-
class ChatUnionMember1User(TypedDict, total=False):
42-
"""Merged user-like contact payload used to resolve the best identifier."""
41+
'single' requires exactly one participantID; 'group' supports multiple
42+
participants and optional title.
43+
"""
44+
45+
user: User
46+
"""Required when mode='start'.
47+
48+
Merged user-like contact payload used to resolve the best identifier.
49+
"""
50+
51+
52+
class User(TypedDict, total=False):
53+
"""Required when mode='start'.
54+
55+
Merged user-like contact payload used to resolve the best identifier.
56+
"""
4357

4458
id: str
4559
"""Known user ID when available."""
@@ -55,23 +69,3 @@ class ChatUnionMember1User(TypedDict, total=False):
5569

5670
username: str
5771
"""Username/handle candidate."""
58-
59-
60-
class ChatUnionMember1(TypedDict, total=False):
61-
account_id: Required[Annotated[str, PropertyInfo(alias="accountID")]]
62-
"""Account to start the chat on."""
63-
64-
mode: Required[Literal["start"]]
65-
"""Start mode for resolving/creating a direct chat from merged contact data."""
66-
67-
user: Required[ChatUnionMember1User]
68-
"""Merged user-like contact payload used to resolve the best identifier."""
69-
70-
allow_invite: Annotated[bool, PropertyInfo(alias="allowInvite")]
71-
"""Whether invite-based DM creation is allowed when required by the platform."""
72-
73-
message_text: Annotated[str, PropertyInfo(alias="messageText")]
74-
"""Optional first message content if the platform requires it to create the chat."""
75-
76-
77-
Chat: TypeAlias = Union[ChatUnionMember0, ChatUnionMember1]

0 commit comments

Comments
 (0)