Skip to content

Commit caeddff

Browse files
feat(api): api update
1 parent b2f8765 commit caeddff

7 files changed

Lines changed: 443 additions & 3 deletions

File tree

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 1807
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b4f59cfea0b2c860c73a18dedb59b1db72f7cd3e5af10e0eaba00e86f82825f1.yml
3-
openapi_spec_hash: 55d9a4a7e10e6cf329fd360b59655098
1+
configured_endpoints: 1809
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4290680d78c08aae05658ff30e1e58d1106c9292a66c8dabec7dc5b7f495104a.yml
3+
openapi_spec_hash: 8ce6ddb5177fb007f75abbfbdb3f0733
44
config_hash: 9f61e9f02b675e373b140471d52b670c

api.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4797,8 +4797,16 @@ Methods:
47974797

47984798
## Downloads
47994799

4800+
Types:
4801+
4802+
```python
4803+
from cloudflare.types.stream import DownloadDeleteResponse
4804+
```
4805+
48004806
Methods:
48014807

4808+
- <code title="post /accounts/{account_id}/stream/{identifier}/downloads">client.stream.downloads.<a href="./src/cloudflare/resources/stream/downloads.py">create</a>(identifier, \*, account_id, \*\*<a href="src/cloudflare/types/stream/download_create_params.py">params</a>) -> object</code>
4809+
- <code title="delete /accounts/{account_id}/stream/{identifier}/downloads">client.stream.downloads.<a href="./src/cloudflare/resources/stream/downloads.py">delete</a>(identifier, \*, account_id) -> <a href="./src/cloudflare/types/stream/download_delete_response.py">str</a></code>
48024810
- <code title="get /accounts/{account_id}/stream/{identifier}/downloads">client.stream.downloads.<a href="./src/cloudflare/resources/stream/downloads.py">get</a>(identifier, \*, account_id) -> object</code>
48034811

48044812
## Embed

src/cloudflare/resources/stream/downloads.py

Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import httpx
88

99
from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
10+
from ..._utils import maybe_transform, async_maybe_transform
1011
from ..._compat import cached_property
1112
from ..._resource import SyncAPIResource, AsyncAPIResource
1213
from ..._response import (
@@ -17,6 +18,8 @@
1718
)
1819
from ..._wrappers import ResultWrapper
1920
from ..._base_client import make_request_options
21+
from ...types.stream import download_create_params
22+
from ...types.stream.download_delete_response import DownloadDeleteResponse
2023

2124
__all__ = ["DownloadsResource", "AsyncDownloadsResource"]
2225

@@ -41,6 +44,96 @@ def with_streaming_response(self) -> DownloadsResourceWithStreamingResponse:
4144
"""
4245
return DownloadsResourceWithStreamingResponse(self)
4346

47+
def create(
48+
self,
49+
identifier: str,
50+
*,
51+
account_id: str,
52+
body: object,
53+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
54+
# The extra values given here take precedence over values defined on the client or passed to this method.
55+
extra_headers: Headers | None = None,
56+
extra_query: Query | None = None,
57+
extra_body: Body | None = None,
58+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
59+
) -> object:
60+
"""
61+
Creates a download for a video when a video is ready to view.
62+
63+
Args:
64+
account_id: Identifier.
65+
66+
identifier: A Cloudflare-generated unique identifier for a media item.
67+
68+
extra_headers: Send extra headers
69+
70+
extra_query: Add additional query parameters to the request
71+
72+
extra_body: Add additional JSON properties to the request
73+
74+
timeout: Override the client-level default timeout for this request, in seconds
75+
"""
76+
if not account_id:
77+
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
78+
if not identifier:
79+
raise ValueError(f"Expected a non-empty value for `identifier` but received {identifier!r}")
80+
return self._post(
81+
f"/accounts/{account_id}/stream/{identifier}/downloads",
82+
body=maybe_transform(body, download_create_params.DownloadCreateParams),
83+
options=make_request_options(
84+
extra_headers=extra_headers,
85+
extra_query=extra_query,
86+
extra_body=extra_body,
87+
timeout=timeout,
88+
post_parser=ResultWrapper[Optional[object]]._unwrapper,
89+
),
90+
cast_to=cast(Type[object], ResultWrapper[object]),
91+
)
92+
93+
def delete(
94+
self,
95+
identifier: str,
96+
*,
97+
account_id: str,
98+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
99+
# The extra values given here take precedence over values defined on the client or passed to this method.
100+
extra_headers: Headers | None = None,
101+
extra_query: Query | None = None,
102+
extra_body: Body | None = None,
103+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
104+
) -> str:
105+
"""
106+
Delete the downloads for a video.
107+
108+
Args:
109+
account_id: Identifier.
110+
111+
identifier: A Cloudflare-generated unique identifier for a media item.
112+
113+
extra_headers: Send extra headers
114+
115+
extra_query: Add additional query parameters to the request
116+
117+
extra_body: Add additional JSON properties to the request
118+
119+
timeout: Override the client-level default timeout for this request, in seconds
120+
"""
121+
if not account_id:
122+
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
123+
if not identifier:
124+
raise ValueError(f"Expected a non-empty value for `identifier` but received {identifier!r}")
125+
return self._delete(
126+
f"/accounts/{account_id}/stream/{identifier}/downloads",
127+
options=make_request_options(
128+
extra_headers=extra_headers,
129+
extra_query=extra_query,
130+
extra_body=extra_body,
131+
timeout=timeout,
132+
post_parser=ResultWrapper[Optional[DownloadDeleteResponse]]._unwrapper,
133+
),
134+
cast_to=cast(Type[str], ResultWrapper[str]),
135+
)
136+
44137
def get(
45138
self,
46139
identifier: str,
@@ -106,6 +199,96 @@ def with_streaming_response(self) -> AsyncDownloadsResourceWithStreamingResponse
106199
"""
107200
return AsyncDownloadsResourceWithStreamingResponse(self)
108201

202+
async def create(
203+
self,
204+
identifier: str,
205+
*,
206+
account_id: str,
207+
body: object,
208+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
209+
# The extra values given here take precedence over values defined on the client or passed to this method.
210+
extra_headers: Headers | None = None,
211+
extra_query: Query | None = None,
212+
extra_body: Body | None = None,
213+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
214+
) -> object:
215+
"""
216+
Creates a download for a video when a video is ready to view.
217+
218+
Args:
219+
account_id: Identifier.
220+
221+
identifier: A Cloudflare-generated unique identifier for a media item.
222+
223+
extra_headers: Send extra headers
224+
225+
extra_query: Add additional query parameters to the request
226+
227+
extra_body: Add additional JSON properties to the request
228+
229+
timeout: Override the client-level default timeout for this request, in seconds
230+
"""
231+
if not account_id:
232+
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
233+
if not identifier:
234+
raise ValueError(f"Expected a non-empty value for `identifier` but received {identifier!r}")
235+
return await self._post(
236+
f"/accounts/{account_id}/stream/{identifier}/downloads",
237+
body=await async_maybe_transform(body, download_create_params.DownloadCreateParams),
238+
options=make_request_options(
239+
extra_headers=extra_headers,
240+
extra_query=extra_query,
241+
extra_body=extra_body,
242+
timeout=timeout,
243+
post_parser=ResultWrapper[Optional[object]]._unwrapper,
244+
),
245+
cast_to=cast(Type[object], ResultWrapper[object]),
246+
)
247+
248+
async def delete(
249+
self,
250+
identifier: str,
251+
*,
252+
account_id: str,
253+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
254+
# The extra values given here take precedence over values defined on the client or passed to this method.
255+
extra_headers: Headers | None = None,
256+
extra_query: Query | None = None,
257+
extra_body: Body | None = None,
258+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
259+
) -> str:
260+
"""
261+
Delete the downloads for a video.
262+
263+
Args:
264+
account_id: Identifier.
265+
266+
identifier: A Cloudflare-generated unique identifier for a media item.
267+
268+
extra_headers: Send extra headers
269+
270+
extra_query: Add additional query parameters to the request
271+
272+
extra_body: Add additional JSON properties to the request
273+
274+
timeout: Override the client-level default timeout for this request, in seconds
275+
"""
276+
if not account_id:
277+
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
278+
if not identifier:
279+
raise ValueError(f"Expected a non-empty value for `identifier` but received {identifier!r}")
280+
return await self._delete(
281+
f"/accounts/{account_id}/stream/{identifier}/downloads",
282+
options=make_request_options(
283+
extra_headers=extra_headers,
284+
extra_query=extra_query,
285+
extra_body=extra_body,
286+
timeout=timeout,
287+
post_parser=ResultWrapper[Optional[DownloadDeleteResponse]]._unwrapper,
288+
),
289+
cast_to=cast(Type[str], ResultWrapper[str]),
290+
)
291+
109292
async def get(
110293
self,
111294
identifier: str,
@@ -155,6 +338,12 @@ class DownloadsResourceWithRawResponse:
155338
def __init__(self, downloads: DownloadsResource) -> None:
156339
self._downloads = downloads
157340

341+
self.create = to_raw_response_wrapper(
342+
downloads.create,
343+
)
344+
self.delete = to_raw_response_wrapper(
345+
downloads.delete,
346+
)
158347
self.get = to_raw_response_wrapper(
159348
downloads.get,
160349
)
@@ -164,6 +353,12 @@ class AsyncDownloadsResourceWithRawResponse:
164353
def __init__(self, downloads: AsyncDownloadsResource) -> None:
165354
self._downloads = downloads
166355

356+
self.create = async_to_raw_response_wrapper(
357+
downloads.create,
358+
)
359+
self.delete = async_to_raw_response_wrapper(
360+
downloads.delete,
361+
)
167362
self.get = async_to_raw_response_wrapper(
168363
downloads.get,
169364
)
@@ -173,6 +368,12 @@ class DownloadsResourceWithStreamingResponse:
173368
def __init__(self, downloads: DownloadsResource) -> None:
174369
self._downloads = downloads
175370

371+
self.create = to_streamed_response_wrapper(
372+
downloads.create,
373+
)
374+
self.delete = to_streamed_response_wrapper(
375+
downloads.delete,
376+
)
176377
self.get = to_streamed_response_wrapper(
177378
downloads.get,
178379
)
@@ -182,6 +383,12 @@ class AsyncDownloadsResourceWithStreamingResponse:
182383
def __init__(self, downloads: AsyncDownloadsResource) -> None:
183384
self._downloads = downloads
184385

386+
self.create = async_to_streamed_response_wrapper(
387+
downloads.create,
388+
)
389+
self.delete = async_to_streamed_response_wrapper(
390+
downloads.delete,
391+
)
185392
self.get = async_to_streamed_response_wrapper(
186393
downloads.get,
187394
)

src/cloudflare/types/stream/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,13 @@
2222
from .stream_create_params import StreamCreateParams as StreamCreateParams
2323
from .token_create_response import TokenCreateResponse as TokenCreateResponse
2424
from .webhook_update_params import WebhookUpdateParams as WebhookUpdateParams
25+
from .download_create_params import DownloadCreateParams as DownloadCreateParams
2526
from .live_input_list_params import LiveInputListParams as LiveInputListParams
2627
from .audio_track_copy_params import AudioTrackCopyParams as AudioTrackCopyParams
2728
from .audio_track_edit_params import AudioTrackEditParams as AudioTrackEditParams
2829
from .watermark_create_params import WatermarkCreateParams as WatermarkCreateParams
2930
from .webhook_delete_response import WebhookDeleteResponse as WebhookDeleteResponse
31+
from .download_delete_response import DownloadDeleteResponse as DownloadDeleteResponse
3032
from .live_input_create_params import LiveInputCreateParams as LiveInputCreateParams
3133
from .live_input_list_response import LiveInputListResponse as LiveInputListResponse
3234
from .live_input_update_params import LiveInputUpdateParams as LiveInputUpdateParams
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from __future__ import annotations
4+
5+
from typing_extensions import Required, TypedDict
6+
7+
__all__ = ["DownloadCreateParams"]
8+
9+
10+
class DownloadCreateParams(TypedDict, total=False):
11+
account_id: Required[str]
12+
"""Identifier."""
13+
14+
body: Required[object]
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from typing_extensions import TypeAlias
4+
5+
__all__ = ["DownloadDeleteResponse"]
6+
7+
DownloadDeleteResponse: TypeAlias = str

0 commit comments

Comments
 (0)