2
2
3
3
from __future__ import annotations
4
4
5
+ from typing import Iterable
6
+
5
7
import httpx
6
8
7
9
from ..._types import Body , Omit , Query , Headers , NotGiven , omit , not_given
18
20
from ...types .knowledge_bases import (
19
21
data_source_list_params ,
20
22
data_source_create_params ,
23
+ data_source_create_presigned_urls_params ,
21
24
)
22
25
from ...types .knowledge_bases .aws_data_source_param import AwsDataSourceParam
23
26
from ...types .knowledge_bases .data_source_list_response import DataSourceListResponse
24
27
from ...types .knowledge_bases .data_source_create_response import DataSourceCreateResponse
25
28
from ...types .knowledge_bases .data_source_delete_response import DataSourceDeleteResponse
26
29
from ...types .knowledge_bases .api_spaces_data_source_param import APISpacesDataSourceParam
27
30
from ...types .knowledge_bases .api_web_crawler_data_source_param import APIWebCrawlerDataSourceParam
31
+ from ...types .knowledge_bases .data_source_create_presigned_urls_response import DataSourceCreatePresignedURLsResponse
28
32
29
33
__all__ = ["DataSourcesResource" , "AsyncDataSourcesResource" ]
30
34
@@ -203,6 +207,45 @@ def delete(
203
207
cast_to = DataSourceDeleteResponse ,
204
208
)
205
209
210
+ def create_presigned_urls (
211
+ self ,
212
+ * ,
213
+ files : Iterable [data_source_create_presigned_urls_params .File ] | Omit = omit ,
214
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
215
+ # The extra values given here take precedence over values defined on the client or passed to this method.
216
+ extra_headers : Headers | None = None ,
217
+ extra_query : Query | None = None ,
218
+ extra_body : Body | None = None ,
219
+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
220
+ ) -> DataSourceCreatePresignedURLsResponse :
221
+ """
222
+ To create presigned URLs for knowledge base data source file upload, send a POST
223
+ request to `/v2/gen-ai/knowledge_bases/data_sources/file_upload_presigned_urls`.
224
+
225
+ Args:
226
+ files: A list of files to generate presigned URLs for.
227
+
228
+ extra_headers: Send extra headers
229
+
230
+ extra_query: Add additional query parameters to the request
231
+
232
+ extra_body: Add additional JSON properties to the request
233
+
234
+ timeout: Override the client-level default timeout for this request, in seconds
235
+ """
236
+ return self ._post (
237
+ "/v2/gen-ai/knowledge_bases/data_sources/file_upload_presigned_urls"
238
+ if self ._client ._base_url_overridden
239
+ else "https://api.digitalocean.com/v2/gen-ai/knowledge_bases/data_sources/file_upload_presigned_urls" ,
240
+ body = maybe_transform (
241
+ {"files" : files }, data_source_create_presigned_urls_params .DataSourceCreatePresignedURLsParams
242
+ ),
243
+ options = make_request_options (
244
+ extra_headers = extra_headers , extra_query = extra_query , extra_body = extra_body , timeout = timeout
245
+ ),
246
+ cast_to = DataSourceCreatePresignedURLsResponse ,
247
+ )
248
+
206
249
207
250
class AsyncDataSourcesResource (AsyncAPIResource ):
208
251
@cached_property
@@ -378,6 +421,45 @@ async def delete(
378
421
cast_to = DataSourceDeleteResponse ,
379
422
)
380
423
424
+ async def create_presigned_urls (
425
+ self ,
426
+ * ,
427
+ files : Iterable [data_source_create_presigned_urls_params .File ] | Omit = omit ,
428
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
429
+ # The extra values given here take precedence over values defined on the client or passed to this method.
430
+ extra_headers : Headers | None = None ,
431
+ extra_query : Query | None = None ,
432
+ extra_body : Body | None = None ,
433
+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
434
+ ) -> DataSourceCreatePresignedURLsResponse :
435
+ """
436
+ To create presigned URLs for knowledge base data source file upload, send a POST
437
+ request to `/v2/gen-ai/knowledge_bases/data_sources/file_upload_presigned_urls`.
438
+
439
+ Args:
440
+ files: A list of files to generate presigned URLs for.
441
+
442
+ extra_headers: Send extra headers
443
+
444
+ extra_query: Add additional query parameters to the request
445
+
446
+ extra_body: Add additional JSON properties to the request
447
+
448
+ timeout: Override the client-level default timeout for this request, in seconds
449
+ """
450
+ return await self ._post (
451
+ "/v2/gen-ai/knowledge_bases/data_sources/file_upload_presigned_urls"
452
+ if self ._client ._base_url_overridden
453
+ else "https://api.digitalocean.com/v2/gen-ai/knowledge_bases/data_sources/file_upload_presigned_urls" ,
454
+ body = await async_maybe_transform (
455
+ {"files" : files }, data_source_create_presigned_urls_params .DataSourceCreatePresignedURLsParams
456
+ ),
457
+ options = make_request_options (
458
+ extra_headers = extra_headers , extra_query = extra_query , extra_body = extra_body , timeout = timeout
459
+ ),
460
+ cast_to = DataSourceCreatePresignedURLsResponse ,
461
+ )
462
+
381
463
382
464
class DataSourcesResourceWithRawResponse :
383
465
def __init__ (self , data_sources : DataSourcesResource ) -> None :
@@ -392,6 +474,9 @@ def __init__(self, data_sources: DataSourcesResource) -> None:
392
474
self .delete = to_raw_response_wrapper (
393
475
data_sources .delete ,
394
476
)
477
+ self .create_presigned_urls = to_raw_response_wrapper (
478
+ data_sources .create_presigned_urls ,
479
+ )
395
480
396
481
397
482
class AsyncDataSourcesResourceWithRawResponse :
@@ -407,6 +492,9 @@ def __init__(self, data_sources: AsyncDataSourcesResource) -> None:
407
492
self .delete = async_to_raw_response_wrapper (
408
493
data_sources .delete ,
409
494
)
495
+ self .create_presigned_urls = async_to_raw_response_wrapper (
496
+ data_sources .create_presigned_urls ,
497
+ )
410
498
411
499
412
500
class DataSourcesResourceWithStreamingResponse :
@@ -422,6 +510,9 @@ def __init__(self, data_sources: DataSourcesResource) -> None:
422
510
self .delete = to_streamed_response_wrapper (
423
511
data_sources .delete ,
424
512
)
513
+ self .create_presigned_urls = to_streamed_response_wrapper (
514
+ data_sources .create_presigned_urls ,
515
+ )
425
516
426
517
427
518
class AsyncDataSourcesResourceWithStreamingResponse :
@@ -437,3 +528,6 @@ def __init__(self, data_sources: AsyncDataSourcesResource) -> None:
437
528
self .delete = async_to_streamed_response_wrapper (
438
529
data_sources .delete ,
439
530
)
531
+ self .create_presigned_urls = async_to_streamed_response_wrapper (
532
+ data_sources .create_presigned_urls ,
533
+ )
0 commit comments