Skip to content

Commit 3d2205f

Browse files
stainless-app[bot]stainless-bot
authored andcommitted
feat(api): OpenAPI spec update via Stainless API (#341)
1 parent 9f6893c commit 3d2205f

File tree

9 files changed

+115
-191
lines changed

9 files changed

+115
-191
lines changed

api.md

+5-15
Original file line numberDiff line numberDiff line change
@@ -4360,20 +4360,15 @@ Methods:
43604360
Types:
43614361

43624362
```python
4363-
from cloudflare.types.stream import (
4364-
Watermaks,
4365-
WatermarkCreateResponse,
4366-
WatermarkDeleteResponse,
4367-
WatermarkGetResponse,
4368-
)
4363+
from cloudflare.types.stream import Watermaks, WatermarkDeleteResponse
43694364
```
43704365

43714366
Methods:
43724367

4373-
- <code title="post /accounts/{account_id}/stream/watermarks">client.stream.watermarks.<a href="./src/cloudflare/resources/stream/watermarks.py">create</a>(\*, account_id, \*\*<a href="src/cloudflare/types/stream/watermark_create_params.py">params</a>) -> <a href="./src/cloudflare/types/stream/watermark_create_response.py">Optional</a></code>
4368+
- <code title="post /accounts/{account_id}/stream/watermarks">client.stream.watermarks.<a href="./src/cloudflare/resources/stream/watermarks.py">create</a>(\*, account_id, \*\*<a href="src/cloudflare/types/stream/watermark_create_params.py">params</a>) -> <a href="./src/cloudflare/types/stream/watermaks.py">Optional</a></code>
43744369
- <code title="get /accounts/{account_id}/stream/watermarks">client.stream.watermarks.<a href="./src/cloudflare/resources/stream/watermarks.py">list</a>(\*, account_id) -> <a href="./src/cloudflare/types/stream/watermaks.py">SyncSinglePage[Watermaks]</a></code>
43754370
- <code title="delete /accounts/{account_id}/stream/watermarks/{identifier}">client.stream.watermarks.<a href="./src/cloudflare/resources/stream/watermarks.py">delete</a>(identifier, \*, account_id, \*\*<a href="src/cloudflare/types/stream/watermark_delete_params.py">params</a>) -> <a href="./src/cloudflare/types/stream/watermark_delete_response.py">Optional</a></code>
4376-
- <code title="get /accounts/{account_id}/stream/watermarks/{identifier}">client.stream.watermarks.<a href="./src/cloudflare/resources/stream/watermarks.py">get</a>(identifier, \*, account_id) -> <a href="./src/cloudflare/types/stream/watermark_get_response.py">Optional</a></code>
4371+
- <code title="get /accounts/{account_id}/stream/watermarks/{identifier}">client.stream.watermarks.<a href="./src/cloudflare/resources/stream/watermarks.py">get</a>(identifier, \*, account_id) -> <a href="./src/cloudflare/types/stream/watermaks.py">Optional</a></code>
43774372

43784373
## Webhooks
43794374

@@ -4394,17 +4389,12 @@ Methods:
43944389
Types:
43954390

43964391
```python
4397-
from cloudflare.types.stream import (
4398-
Caption,
4399-
CaptionUpdateResponse,
4400-
CaptionDeleteResponse,
4401-
CaptionGetResponse,
4402-
)
4392+
from cloudflare.types.stream import Caption, CaptionDeleteResponse, CaptionGetResponse
44034393
```
44044394

44054395
Methods:
44064396

4407-
- <code title="put /accounts/{account_id}/stream/{identifier}/captions/{language}">client.stream.captions.<a href="./src/cloudflare/resources/stream/captions.py">update</a>(language, \*, account_id, identifier, \*\*<a href="src/cloudflare/types/stream/caption_update_params.py">params</a>) -> <a href="./src/cloudflare/types/stream/caption_update_response.py">Optional</a></code>
4397+
- <code title="put /accounts/{account_id}/stream/{identifier}/captions/{language}">client.stream.captions.<a href="./src/cloudflare/resources/stream/captions.py">update</a>(language, \*, account_id, identifier, \*\*<a href="src/cloudflare/types/stream/caption_update_params.py">params</a>) -> <a href="./src/cloudflare/types/stream/caption.py">Optional</a></code>
44084398
- <code title="delete /accounts/{account_id}/stream/{identifier}/captions/{language}">client.stream.captions.<a href="./src/cloudflare/resources/stream/captions.py">delete</a>(language, \*, account_id, identifier, \*\*<a href="src/cloudflare/types/stream/caption_delete_params.py">params</a>) -> <a href="./src/cloudflare/types/stream/caption_delete_response.py">str</a></code>
44094399
- <code title="get /accounts/{account_id}/stream/{identifier}/captions">client.stream.captions.<a href="./src/cloudflare/resources/stream/captions.py">get</a>(identifier, \*, account_id) -> <a href="./src/cloudflare/types/stream/caption_get_response.py">Optional</a></code>
44104400

src/cloudflare/resources/stream/captions.py

+24-34
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from __future__ import annotations
44

5-
from typing import Any, Type, Optional, cast
5+
from typing import Type, Optional, cast
66

77
import httpx
88

@@ -24,9 +24,9 @@
2424
make_request_options,
2525
)
2626
from ...types.stream import (
27+
Caption,
2728
CaptionGetResponse,
2829
CaptionDeleteResponse,
29-
CaptionUpdateResponse,
3030
caption_delete_params,
3131
caption_update_params,
3232
)
@@ -56,7 +56,7 @@ def update(
5656
extra_query: Query | None = None,
5757
extra_body: Body | None = None,
5858
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
59-
) -> Optional[CaptionUpdateResponse]:
59+
) -> Optional[Caption]:
6060
"""
6161
Uploads the caption or subtitle file to the endpoint for a specific BCP47
6262
language. One caption or subtitle file per language is allowed.
@@ -84,22 +84,17 @@ def update(
8484
raise ValueError(f"Expected a non-empty value for `identifier` but received {identifier!r}")
8585
if not language:
8686
raise ValueError(f"Expected a non-empty value for `language` but received {language!r}")
87-
return cast(
88-
Optional[CaptionUpdateResponse],
89-
self._put(
90-
f"/accounts/{account_id}/stream/{identifier}/captions/{language}",
91-
body=maybe_transform({"file": file}, caption_update_params.CaptionUpdateParams),
92-
options=make_request_options(
93-
extra_headers=extra_headers,
94-
extra_query=extra_query,
95-
extra_body=extra_body,
96-
timeout=timeout,
97-
post_parser=ResultWrapper[Optional[CaptionUpdateResponse]]._unwrapper,
98-
),
99-
cast_to=cast(
100-
Any, ResultWrapper[CaptionUpdateResponse]
101-
), # Union types cannot be passed in as arguments in the type system
87+
return self._put(
88+
f"/accounts/{account_id}/stream/{identifier}/captions/{language}",
89+
body=maybe_transform({"file": file}, caption_update_params.CaptionUpdateParams),
90+
options=make_request_options(
91+
extra_headers=extra_headers,
92+
extra_query=extra_query,
93+
extra_body=extra_body,
94+
timeout=timeout,
95+
post_parser=ResultWrapper[Optional[Caption]]._unwrapper,
10296
),
97+
cast_to=cast(Type[Optional[Caption]], ResultWrapper[Caption]),
10398
)
10499

105100
def delete(
@@ -220,7 +215,7 @@ async def update(
220215
extra_query: Query | None = None,
221216
extra_body: Body | None = None,
222217
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
223-
) -> Optional[CaptionUpdateResponse]:
218+
) -> Optional[Caption]:
224219
"""
225220
Uploads the caption or subtitle file to the endpoint for a specific BCP47
226221
language. One caption or subtitle file per language is allowed.
@@ -248,22 +243,17 @@ async def update(
248243
raise ValueError(f"Expected a non-empty value for `identifier` but received {identifier!r}")
249244
if not language:
250245
raise ValueError(f"Expected a non-empty value for `language` but received {language!r}")
251-
return cast(
252-
Optional[CaptionUpdateResponse],
253-
await self._put(
254-
f"/accounts/{account_id}/stream/{identifier}/captions/{language}",
255-
body=await async_maybe_transform({"file": file}, caption_update_params.CaptionUpdateParams),
256-
options=make_request_options(
257-
extra_headers=extra_headers,
258-
extra_query=extra_query,
259-
extra_body=extra_body,
260-
timeout=timeout,
261-
post_parser=ResultWrapper[Optional[CaptionUpdateResponse]]._unwrapper,
262-
),
263-
cast_to=cast(
264-
Any, ResultWrapper[CaptionUpdateResponse]
265-
), # Union types cannot be passed in as arguments in the type system
246+
return await self._put(
247+
f"/accounts/{account_id}/stream/{identifier}/captions/{language}",
248+
body=await async_maybe_transform({"file": file}, caption_update_params.CaptionUpdateParams),
249+
options=make_request_options(
250+
extra_headers=extra_headers,
251+
extra_query=extra_query,
252+
extra_body=extra_body,
253+
timeout=timeout,
254+
post_parser=ResultWrapper[Optional[Caption]]._unwrapper,
266255
),
256+
cast_to=cast(Type[Optional[Caption]], ResultWrapper[Caption]),
267257
)
268258

269259
async def delete(

src/cloudflare/resources/stream/watermarks.py

+64-91
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from __future__ import annotations
44

5-
from typing import Any, Optional, cast
5+
from typing import Any, Type, Optional, cast
66

77
import httpx
88

@@ -25,14 +25,7 @@
2525
AsyncPaginator,
2626
make_request_options,
2727
)
28-
from ...types.stream import (
29-
Watermaks,
30-
WatermarkGetResponse,
31-
WatermarkCreateResponse,
32-
WatermarkDeleteResponse,
33-
watermark_create_params,
34-
watermark_delete_params,
35-
)
28+
from ...types.stream import Watermaks, WatermarkDeleteResponse, watermark_create_params, watermark_delete_params
3629

3730
__all__ = ["Watermarks", "AsyncWatermarks"]
3831

@@ -62,7 +55,7 @@ def create(
6255
extra_query: Query | None = None,
6356
extra_body: Body | None = None,
6457
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
65-
) -> Optional[WatermarkCreateResponse]:
58+
) -> Optional[Watermaks]:
6659
"""
6760
Creates watermark profiles using a single `HTTP POST multipart/form-data`
6861
request.
@@ -101,32 +94,27 @@ def create(
10194
"""
10295
if not account_id:
10396
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
104-
return cast(
105-
Optional[WatermarkCreateResponse],
106-
self._post(
107-
f"/accounts/{account_id}/stream/watermarks",
108-
body=maybe_transform(
109-
{
110-
"file": file,
111-
"name": name,
112-
"opacity": opacity,
113-
"padding": padding,
114-
"position": position,
115-
"scale": scale,
116-
},
117-
watermark_create_params.WatermarkCreateParams,
118-
),
119-
options=make_request_options(
120-
extra_headers=extra_headers,
121-
extra_query=extra_query,
122-
extra_body=extra_body,
123-
timeout=timeout,
124-
post_parser=ResultWrapper[Optional[WatermarkCreateResponse]]._unwrapper,
125-
),
126-
cast_to=cast(
127-
Any, ResultWrapper[WatermarkCreateResponse]
128-
), # Union types cannot be passed in as arguments in the type system
97+
return self._post(
98+
f"/accounts/{account_id}/stream/watermarks",
99+
body=maybe_transform(
100+
{
101+
"file": file,
102+
"name": name,
103+
"opacity": opacity,
104+
"padding": padding,
105+
"position": position,
106+
"scale": scale,
107+
},
108+
watermark_create_params.WatermarkCreateParams,
129109
),
110+
options=make_request_options(
111+
extra_headers=extra_headers,
112+
extra_query=extra_query,
113+
extra_body=extra_body,
114+
timeout=timeout,
115+
post_parser=ResultWrapper[Optional[Watermaks]]._unwrapper,
116+
),
117+
cast_to=cast(Type[Optional[Watermaks]], ResultWrapper[Watermaks]),
130118
)
131119

132120
def list(
@@ -227,7 +215,7 @@ def get(
227215
extra_query: Query | None = None,
228216
extra_body: Body | None = None,
229217
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
230-
) -> Optional[WatermarkGetResponse]:
218+
) -> Optional[Watermaks]:
231219
"""
232220
Retrieves details for a single watermark profile.
233221
@@ -248,21 +236,16 @@ def get(
248236
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
249237
if not identifier:
250238
raise ValueError(f"Expected a non-empty value for `identifier` but received {identifier!r}")
251-
return cast(
252-
Optional[WatermarkGetResponse],
253-
self._get(
254-
f"/accounts/{account_id}/stream/watermarks/{identifier}",
255-
options=make_request_options(
256-
extra_headers=extra_headers,
257-
extra_query=extra_query,
258-
extra_body=extra_body,
259-
timeout=timeout,
260-
post_parser=ResultWrapper[Optional[WatermarkGetResponse]]._unwrapper,
261-
),
262-
cast_to=cast(
263-
Any, ResultWrapper[WatermarkGetResponse]
264-
), # Union types cannot be passed in as arguments in the type system
239+
return self._get(
240+
f"/accounts/{account_id}/stream/watermarks/{identifier}",
241+
options=make_request_options(
242+
extra_headers=extra_headers,
243+
extra_query=extra_query,
244+
extra_body=extra_body,
245+
timeout=timeout,
246+
post_parser=ResultWrapper[Optional[Watermaks]]._unwrapper,
265247
),
248+
cast_to=cast(Type[Optional[Watermaks]], ResultWrapper[Watermaks]),
266249
)
267250

268251

@@ -291,7 +274,7 @@ async def create(
291274
extra_query: Query | None = None,
292275
extra_body: Body | None = None,
293276
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
294-
) -> Optional[WatermarkCreateResponse]:
277+
) -> Optional[Watermaks]:
295278
"""
296279
Creates watermark profiles using a single `HTTP POST multipart/form-data`
297280
request.
@@ -330,32 +313,27 @@ async def create(
330313
"""
331314
if not account_id:
332315
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
333-
return cast(
334-
Optional[WatermarkCreateResponse],
335-
await self._post(
336-
f"/accounts/{account_id}/stream/watermarks",
337-
body=await async_maybe_transform(
338-
{
339-
"file": file,
340-
"name": name,
341-
"opacity": opacity,
342-
"padding": padding,
343-
"position": position,
344-
"scale": scale,
345-
},
346-
watermark_create_params.WatermarkCreateParams,
347-
),
348-
options=make_request_options(
349-
extra_headers=extra_headers,
350-
extra_query=extra_query,
351-
extra_body=extra_body,
352-
timeout=timeout,
353-
post_parser=ResultWrapper[Optional[WatermarkCreateResponse]]._unwrapper,
354-
),
355-
cast_to=cast(
356-
Any, ResultWrapper[WatermarkCreateResponse]
357-
), # Union types cannot be passed in as arguments in the type system
316+
return await self._post(
317+
f"/accounts/{account_id}/stream/watermarks",
318+
body=await async_maybe_transform(
319+
{
320+
"file": file,
321+
"name": name,
322+
"opacity": opacity,
323+
"padding": padding,
324+
"position": position,
325+
"scale": scale,
326+
},
327+
watermark_create_params.WatermarkCreateParams,
328+
),
329+
options=make_request_options(
330+
extra_headers=extra_headers,
331+
extra_query=extra_query,
332+
extra_body=extra_body,
333+
timeout=timeout,
334+
post_parser=ResultWrapper[Optional[Watermaks]]._unwrapper,
358335
),
336+
cast_to=cast(Type[Optional[Watermaks]], ResultWrapper[Watermaks]),
359337
)
360338

361339
def list(
@@ -456,7 +434,7 @@ async def get(
456434
extra_query: Query | None = None,
457435
extra_body: Body | None = None,
458436
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
459-
) -> Optional[WatermarkGetResponse]:
437+
) -> Optional[Watermaks]:
460438
"""
461439
Retrieves details for a single watermark profile.
462440
@@ -477,21 +455,16 @@ async def get(
477455
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
478456
if not identifier:
479457
raise ValueError(f"Expected a non-empty value for `identifier` but received {identifier!r}")
480-
return cast(
481-
Optional[WatermarkGetResponse],
482-
await self._get(
483-
f"/accounts/{account_id}/stream/watermarks/{identifier}",
484-
options=make_request_options(
485-
extra_headers=extra_headers,
486-
extra_query=extra_query,
487-
extra_body=extra_body,
488-
timeout=timeout,
489-
post_parser=ResultWrapper[Optional[WatermarkGetResponse]]._unwrapper,
490-
),
491-
cast_to=cast(
492-
Any, ResultWrapper[WatermarkGetResponse]
493-
), # Union types cannot be passed in as arguments in the type system
458+
return await self._get(
459+
f"/accounts/{account_id}/stream/watermarks/{identifier}",
460+
options=make_request_options(
461+
extra_headers=extra_headers,
462+
extra_query=extra_query,
463+
extra_body=extra_body,
464+
timeout=timeout,
465+
post_parser=ResultWrapper[Optional[Watermaks]]._unwrapper,
494466
),
467+
cast_to=cast(Type[Optional[Watermaks]], ResultWrapper[Watermaks]),
495468
)
496469

497470

src/cloudflare/types/stream/__init__.py

-3
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,9 @@
3131
from .webhook_update_params import WebhookUpdateParams as WebhookUpdateParams
3232
from .download_create_params import DownloadCreateParams as DownloadCreateParams
3333
from .live_input_list_params import LiveInputListParams as LiveInputListParams
34-
from .watermark_get_response import WatermarkGetResponse as WatermarkGetResponse
3534
from .audio_track_copy_params import AudioTrackCopyParams as AudioTrackCopyParams
3635
from .audio_track_edit_params import AudioTrackEditParams as AudioTrackEditParams
3736
from .caption_delete_response import CaptionDeleteResponse as CaptionDeleteResponse
38-
from .caption_update_response import CaptionUpdateResponse as CaptionUpdateResponse
3937
from .watermark_create_params import WatermarkCreateParams as WatermarkCreateParams
4038
from .watermark_delete_params import WatermarkDeleteParams as WatermarkDeleteParams
4139
from .webhook_delete_response import WebhookDeleteResponse as WebhookDeleteResponse
@@ -47,7 +45,6 @@
4745
from .live_input_delete_params import LiveInputDeleteParams as LiveInputDeleteParams
4846
from .live_input_list_response import LiveInputListResponse as LiveInputListResponse
4947
from .live_input_update_params import LiveInputUpdateParams as LiveInputUpdateParams
50-
from .watermark_create_response import WatermarkCreateResponse as WatermarkCreateResponse
5148
from .watermark_delete_response import WatermarkDeleteResponse as WatermarkDeleteResponse
5249
from .video_storage_usage_params import VideoStorageUsageParams as VideoStorageUsageParams
5350
from .audio_track_delete_response import AudioTrackDeleteResponse as AudioTrackDeleteResponse

0 commit comments

Comments
 (0)