Skip to content

Commit 78862f5

Browse files
feat(api): manual updates
1 parent ee5c367 commit 78862f5

File tree

16 files changed

+267
-56
lines changed

16 files changed

+267
-56
lines changed

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 18
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/beeper%2Fbeeper-desktop-api-5fb80d7f97f2428d1826b9c381476f0d46117fc694140175dbc15920b1884f1f.yml
3-
openapi_spec_hash: 06f8538bc0a27163d33a80c00fb16e86
4-
config_hash: 196c1c81b169ede101a71d1cf2796d99
1+
configured_endpoints: 19
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/beeper%2Fbeeper-desktop-api-099d55ac0e749a64dacc1706d7d8276d1acbe52103f0419393c39e8911966cfe.yml
3+
openapi_spec_hash: 70a1b1d513b62c6d6caabbbf360220b4
4+
config_hash: 48ff2d23c2ebc82bd3c15787f0041684

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,10 +209,11 @@ from beeper_desktop_api import BeeperDesktop
209209

210210
client = BeeperDesktop()
211211

212-
client.chats.reminders.create(
212+
reminder = client.chats.reminders.create(
213213
chat_id="!NCdzlIaMjZUmvmvyHU:beeper.com",
214214
reminder={"remind_at_ms": 0},
215215
)
216+
print(reminder.reminder)
216217
```
217218

218219
## File uploads

api.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,23 +46,29 @@ Methods:
4646
Types:
4747

4848
```python
49-
from beeper_desktop_api.types import Chat, ChatCreateResponse, ChatListResponse
49+
from beeper_desktop_api.types import Chat, ChatCreateResponse, ChatListResponse, ChatArchiveResponse
5050
```
5151

5252
Methods:
5353

5454
- <code title="post /v1/chats">client.chats.<a href="./src/beeper_desktop_api/resources/chats/chats.py">create</a>(\*\*<a href="src/beeper_desktop_api/types/chat_create_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/chat_create_response.py">ChatCreateResponse</a></code>
5555
- <code title="get /v1/chats/{chatID}">client.chats.<a href="./src/beeper_desktop_api/resources/chats/chats.py">retrieve</a>(chat_id, \*\*<a href="src/beeper_desktop_api/types/chat_retrieve_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/chat.py">Chat</a></code>
5656
- <code title="get /v1/chats">client.chats.<a href="./src/beeper_desktop_api/resources/chats/chats.py">list</a>(\*\*<a href="src/beeper_desktop_api/types/chat_list_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/chat_list_response.py">SyncCursorNoLimit[ChatListResponse]</a></code>
57-
- <code title="post /v1/chats/{chatID}/archive">client.chats.<a href="./src/beeper_desktop_api/resources/chats/chats.py">archive</a>(chat_id, \*\*<a href="src/beeper_desktop_api/types/chat_archive_params.py">params</a>) -> None</code>
57+
- <code title="post /v1/chats/{chatID}/archive">client.chats.<a href="./src/beeper_desktop_api/resources/chats/chats.py">archive</a>(chat_id, \*\*<a href="src/beeper_desktop_api/types/chat_archive_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/chat_archive_response.py">ChatArchiveResponse</a></code>
5858
- <code title="get /v1/chats/search">client.chats.<a href="./src/beeper_desktop_api/resources/chats/chats.py">search</a>(\*\*<a href="src/beeper_desktop_api/types/chat_search_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/chat.py">SyncCursorSearch[Chat]</a></code>
5959

6060
## Reminders
6161

62+
Types:
63+
64+
```python
65+
from beeper_desktop_api.types.chats import ReminderCreateResponse, ReminderDeleteResponse
66+
```
67+
6268
Methods:
6369

64-
- <code title="post /v1/chats/{chatID}/reminders">client.chats.reminders.<a href="./src/beeper_desktop_api/resources/chats/reminders.py">create</a>(chat_id, \*\*<a href="src/beeper_desktop_api/types/chats/reminder_create_params.py">params</a>) -> None</code>
65-
- <code title="delete /v1/chats/{chatID}/reminders">client.chats.reminders.<a href="./src/beeper_desktop_api/resources/chats/reminders.py">delete</a>(chat_id) -> None</code>
70+
- <code title="post /v1/chats/{chatID}/reminders">client.chats.reminders.<a href="./src/beeper_desktop_api/resources/chats/reminders.py">create</a>(chat_id, \*\*<a href="src/beeper_desktop_api/types/chats/reminder_create_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/chats/reminder_create_response.py">ReminderCreateResponse</a></code>
71+
- <code title="delete /v1/chats/{chatID}/reminders">client.chats.reminders.<a href="./src/beeper_desktop_api/resources/chats/reminders.py">delete</a>(chat_id) -> <a href="./src/beeper_desktop_api/types/chats/reminder_delete_response.py">ReminderDeleteResponse</a></code>
6672

6773
# Messages
6874

@@ -94,5 +100,6 @@ from beeper_desktop_api.types import (
94100
Methods:
95101

96102
- <code title="post /v1/assets/download">client.assets.<a href="./src/beeper_desktop_api/resources/assets.py">download</a>(\*\*<a href="src/beeper_desktop_api/types/asset_download_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/asset_download_response.py">AssetDownloadResponse</a></code>
103+
- <code title="get /v1/assets/serve">client.assets.<a href="./src/beeper_desktop_api/resources/assets.py">serve</a>(\*\*<a href="src/beeper_desktop_api/types/asset_serve_params.py">params</a>) -> None</code>
97104
- <code title="post /v1/assets/upload">client.assets.<a href="./src/beeper_desktop_api/resources/assets.py">upload</a>(\*\*<a href="src/beeper_desktop_api/types/asset_upload_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/asset_upload_response.py">AssetUploadResponse</a></code>
98105
- <code title="post /v1/assets/upload/base64">client.assets.<a href="./src/beeper_desktop_api/resources/assets.py">upload_base64</a>(\*\*<a href="src/beeper_desktop_api/types/asset_upload_base64_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/asset_upload_base64_response.py">AssetUploadBase64Response</a></code>

src/beeper_desktop_api/resources/assets.py

Lines changed: 94 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
import httpx
88

9-
from ..types import asset_upload_params, asset_download_params, asset_upload_base64_params
10-
from .._types import Body, Omit, Query, Headers, NotGiven, FileTypes, omit, not_given
9+
from ..types import asset_serve_params, asset_upload_params, asset_download_params, asset_upload_base64_params
10+
from .._types import Body, Omit, Query, Headers, NoneType, NotGiven, FileTypes, omit, not_given
1111
from .._utils import extract_files, maybe_transform, deepcopy_minimal, async_maybe_transform
1212
from .._compat import cached_property
1313
from .._resource import SyncAPIResource, AsyncAPIResource
@@ -82,6 +82,46 @@ def download(
8282
cast_to=AssetDownloadResponse,
8383
)
8484

85+
def serve(
86+
self,
87+
*,
88+
url: str,
89+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
90+
# The extra values given here take precedence over values defined on the client or passed to this method.
91+
extra_headers: Headers | None = None,
92+
extra_query: Query | None = None,
93+
extra_body: Body | None = None,
94+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
95+
) -> None:
96+
"""Stream a file given an mxc://, localmxc://, or file:// URL.
97+
98+
Downloads first if
99+
not cached. Supports Range requests for seeking in large files.
100+
101+
Args:
102+
url: Asset URL to serve. Accepts mxc://, localmxc://, or file:// URLs.
103+
104+
extra_headers: Send extra headers
105+
106+
extra_query: Add additional query parameters to the request
107+
108+
extra_body: Add additional JSON properties to the request
109+
110+
timeout: Override the client-level default timeout for this request, in seconds
111+
"""
112+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
113+
return self._get(
114+
"/v1/assets/serve",
115+
options=make_request_options(
116+
extra_headers=extra_headers,
117+
extra_query=extra_query,
118+
extra_body=extra_body,
119+
timeout=timeout,
120+
query=maybe_transform({"url": url}, asset_serve_params.AssetServeParams),
121+
),
122+
cast_to=NoneType,
123+
)
124+
85125
def upload(
86126
self,
87127
*,
@@ -245,6 +285,46 @@ async def download(
245285
cast_to=AssetDownloadResponse,
246286
)
247287

288+
async def serve(
289+
self,
290+
*,
291+
url: str,
292+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
293+
# The extra values given here take precedence over values defined on the client or passed to this method.
294+
extra_headers: Headers | None = None,
295+
extra_query: Query | None = None,
296+
extra_body: Body | None = None,
297+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
298+
) -> None:
299+
"""Stream a file given an mxc://, localmxc://, or file:// URL.
300+
301+
Downloads first if
302+
not cached. Supports Range requests for seeking in large files.
303+
304+
Args:
305+
url: Asset URL to serve. Accepts mxc://, localmxc://, or file:// URLs.
306+
307+
extra_headers: Send extra headers
308+
309+
extra_query: Add additional query parameters to the request
310+
311+
extra_body: Add additional JSON properties to the request
312+
313+
timeout: Override the client-level default timeout for this request, in seconds
314+
"""
315+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
316+
return await self._get(
317+
"/v1/assets/serve",
318+
options=make_request_options(
319+
extra_headers=extra_headers,
320+
extra_query=extra_query,
321+
extra_body=extra_body,
322+
timeout=timeout,
323+
query=await async_maybe_transform({"url": url}, asset_serve_params.AssetServeParams),
324+
),
325+
cast_to=NoneType,
326+
)
327+
248328
async def upload(
249329
self,
250330
*,
@@ -358,6 +438,9 @@ def __init__(self, assets: AssetsResource) -> None:
358438
self.download = to_raw_response_wrapper(
359439
assets.download,
360440
)
441+
self.serve = to_raw_response_wrapper(
442+
assets.serve,
443+
)
361444
self.upload = to_raw_response_wrapper(
362445
assets.upload,
363446
)
@@ -373,6 +456,9 @@ def __init__(self, assets: AsyncAssetsResource) -> None:
373456
self.download = async_to_raw_response_wrapper(
374457
assets.download,
375458
)
459+
self.serve = async_to_raw_response_wrapper(
460+
assets.serve,
461+
)
376462
self.upload = async_to_raw_response_wrapper(
377463
assets.upload,
378464
)
@@ -388,6 +474,9 @@ def __init__(self, assets: AssetsResource) -> None:
388474
self.download = to_streamed_response_wrapper(
389475
assets.download,
390476
)
477+
self.serve = to_streamed_response_wrapper(
478+
assets.serve,
479+
)
391480
self.upload = to_streamed_response_wrapper(
392481
assets.upload,
393482
)
@@ -403,6 +492,9 @@ def __init__(self, assets: AsyncAssetsResource) -> None:
403492
self.download = async_to_streamed_response_wrapper(
404493
assets.download,
405494
)
495+
self.serve = async_to_streamed_response_wrapper(
496+
assets.serve,
497+
)
406498
self.upload = async_to_streamed_response_wrapper(
407499
assets.upload,
408500
)

src/beeper_desktop_api/resources/chats/chats.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import httpx
1010

1111
from ...types import chat_list_params, chat_create_params, chat_search_params, chat_archive_params, chat_retrieve_params
12-
from ..._types import Body, Omit, Query, Headers, NoneType, NotGiven, SequenceNotStr, omit, not_given
12+
from ..._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
1313
from ..._utils import maybe_transform, async_maybe_transform
1414
from ..._compat import cached_property
1515
from .reminders import (
@@ -32,6 +32,7 @@
3232
from ..._base_client import AsyncPaginator, make_request_options
3333
from ...types.chat_list_response import ChatListResponse
3434
from ...types.chat_create_response import ChatCreateResponse
35+
from ...types.chat_archive_response import ChatArchiveResponse
3536

3637
__all__ = ["ChatsResource", "AsyncChatsResource"]
3738

@@ -230,7 +231,7 @@ def archive(
230231
extra_query: Query | None = None,
231232
extra_body: Body | None = None,
232233
timeout: float | httpx.Timeout | None | NotGiven = not_given,
233-
) -> None:
234+
) -> ChatArchiveResponse:
234235
"""Archive or unarchive a chat.
235236
236237
Set archived=true to move to archive,
@@ -251,14 +252,13 @@ def archive(
251252
"""
252253
if not chat_id:
253254
raise ValueError(f"Expected a non-empty value for `chat_id` but received {chat_id!r}")
254-
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
255255
return self._post(
256256
f"/v1/chats/{chat_id}/archive",
257257
body=maybe_transform({"archived": archived}, chat_archive_params.ChatArchiveParams),
258258
options=make_request_options(
259259
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
260260
),
261-
cast_to=NoneType,
261+
cast_to=ChatArchiveResponse,
262262
)
263263

264264
def search(
@@ -553,7 +553,7 @@ async def archive(
553553
extra_query: Query | None = None,
554554
extra_body: Body | None = None,
555555
timeout: float | httpx.Timeout | None | NotGiven = not_given,
556-
) -> None:
556+
) -> ChatArchiveResponse:
557557
"""Archive or unarchive a chat.
558558
559559
Set archived=true to move to archive,
@@ -574,14 +574,13 @@ async def archive(
574574
"""
575575
if not chat_id:
576576
raise ValueError(f"Expected a non-empty value for `chat_id` but received {chat_id!r}")
577-
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
578577
return await self._post(
579578
f"/v1/chats/{chat_id}/archive",
580579
body=await async_maybe_transform({"archived": archived}, chat_archive_params.ChatArchiveParams),
581580
options=make_request_options(
582581
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
583582
),
584-
cast_to=NoneType,
583+
cast_to=ChatArchiveResponse,
585584
)
586585

587586
def search(

src/beeper_desktop_api/resources/chats/reminders.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import httpx
66

7-
from ..._types import Body, Query, Headers, NoneType, NotGiven, not_given
7+
from ..._types import Body, Query, Headers, NotGiven, not_given
88
from ..._utils import maybe_transform, async_maybe_transform
99
from ..._compat import cached_property
1010
from ..._resource import SyncAPIResource, AsyncAPIResource
@@ -16,6 +16,8 @@
1616
)
1717
from ...types.chats import reminder_create_params
1818
from ..._base_client import make_request_options
19+
from ...types.chats.reminder_create_response import ReminderCreateResponse
20+
from ...types.chats.reminder_delete_response import ReminderDeleteResponse
1921

2022
__all__ = ["RemindersResource", "AsyncRemindersResource"]
2123

@@ -53,7 +55,7 @@ def create(
5355
extra_query: Query | None = None,
5456
extra_body: Body | None = None,
5557
timeout: float | httpx.Timeout | None | NotGiven = not_given,
56-
) -> None:
58+
) -> ReminderCreateResponse:
5759
"""
5860
Set a reminder for a chat at a specific time
5961
@@ -72,14 +74,13 @@ def create(
7274
"""
7375
if not chat_id:
7476
raise ValueError(f"Expected a non-empty value for `chat_id` but received {chat_id!r}")
75-
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
7677
return self._post(
7778
f"/v1/chats/{chat_id}/reminders",
7879
body=maybe_transform({"reminder": reminder}, reminder_create_params.ReminderCreateParams),
7980
options=make_request_options(
8081
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
8182
),
82-
cast_to=NoneType,
83+
cast_to=ReminderCreateResponse,
8384
)
8485

8586
def delete(
@@ -92,7 +93,7 @@ def delete(
9293
extra_query: Query | None = None,
9394
extra_body: Body | None = None,
9495
timeout: float | httpx.Timeout | None | NotGiven = not_given,
95-
) -> None:
96+
) -> ReminderDeleteResponse:
9697
"""
9798
Clear an existing reminder from a chat
9899
@@ -109,13 +110,12 @@ def delete(
109110
"""
110111
if not chat_id:
111112
raise ValueError(f"Expected a non-empty value for `chat_id` but received {chat_id!r}")
112-
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
113113
return self._delete(
114114
f"/v1/chats/{chat_id}/reminders",
115115
options=make_request_options(
116116
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
117117
),
118-
cast_to=NoneType,
118+
cast_to=ReminderDeleteResponse,
119119
)
120120

121121

@@ -152,7 +152,7 @@ async def create(
152152
extra_query: Query | None = None,
153153
extra_body: Body | None = None,
154154
timeout: float | httpx.Timeout | None | NotGiven = not_given,
155-
) -> None:
155+
) -> ReminderCreateResponse:
156156
"""
157157
Set a reminder for a chat at a specific time
158158
@@ -171,14 +171,13 @@ async def create(
171171
"""
172172
if not chat_id:
173173
raise ValueError(f"Expected a non-empty value for `chat_id` but received {chat_id!r}")
174-
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
175174
return await self._post(
176175
f"/v1/chats/{chat_id}/reminders",
177176
body=await async_maybe_transform({"reminder": reminder}, reminder_create_params.ReminderCreateParams),
178177
options=make_request_options(
179178
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
180179
),
181-
cast_to=NoneType,
180+
cast_to=ReminderCreateResponse,
182181
)
183182

184183
async def delete(
@@ -191,7 +190,7 @@ async def delete(
191190
extra_query: Query | None = None,
192191
extra_body: Body | None = None,
193192
timeout: float | httpx.Timeout | None | NotGiven = not_given,
194-
) -> None:
193+
) -> ReminderDeleteResponse:
195194
"""
196195
Clear an existing reminder from a chat
197196
@@ -208,13 +207,12 @@ async def delete(
208207
"""
209208
if not chat_id:
210209
raise ValueError(f"Expected a non-empty value for `chat_id` but received {chat_id!r}")
211-
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
212210
return await self._delete(
213211
f"/v1/chats/{chat_id}/reminders",
214212
options=make_request_options(
215213
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
216214
),
217-
cast_to=NoneType,
215+
cast_to=ReminderDeleteResponse,
218216
)
219217

220218

0 commit comments

Comments
 (0)