22
33from  __future__ import  annotations 
44
5+ from  typing  import  Iterable 
6+ 
57import  httpx 
68
79from  ..._types  import  Body , Omit , Query , Headers , NotGiven , omit , not_given 
1820from  ...types .knowledge_bases  import  (
1921    data_source_list_params ,
2022    data_source_create_params ,
23+     data_source_create_presigned_urls_params ,
2124)
2225from  ...types .knowledge_bases .aws_data_source_param  import  AwsDataSourceParam 
2326from  ...types .knowledge_bases .data_source_list_response  import  DataSourceListResponse 
2427from  ...types .knowledge_bases .data_source_create_response  import  DataSourceCreateResponse 
2528from  ...types .knowledge_bases .data_source_delete_response  import  DataSourceDeleteResponse 
2629from  ...types .knowledge_bases .api_spaces_data_source_param  import  APISpacesDataSourceParam 
2730from  ...types .knowledge_bases .api_web_crawler_data_source_param  import  APIWebCrawlerDataSourceParam 
31+ from  ...types .knowledge_bases .data_source_create_presigned_urls_response  import  DataSourceCreatePresignedURLsResponse 
2832
2933__all__  =  ["DataSourcesResource" , "AsyncDataSourcesResource" ]
3034
@@ -203,6 +207,45 @@ def delete(
203207            cast_to = DataSourceDeleteResponse ,
204208        )
205209
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+ 
206249
207250class  AsyncDataSourcesResource (AsyncAPIResource ):
208251    @cached_property  
@@ -378,6 +421,45 @@ async def delete(
378421            cast_to = DataSourceDeleteResponse ,
379422        )
380423
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+ 
381463
382464class  DataSourcesResourceWithRawResponse :
383465    def  __init__ (self , data_sources : DataSourcesResource ) ->  None :
@@ -392,6 +474,9 @@ def __init__(self, data_sources: DataSourcesResource) -> None:
392474        self .delete  =  to_raw_response_wrapper (
393475            data_sources .delete ,
394476        )
477+         self .create_presigned_urls  =  to_raw_response_wrapper (
478+             data_sources .create_presigned_urls ,
479+         )
395480
396481
397482class  AsyncDataSourcesResourceWithRawResponse :
@@ -407,6 +492,9 @@ def __init__(self, data_sources: AsyncDataSourcesResource) -> None:
407492        self .delete  =  async_to_raw_response_wrapper (
408493            data_sources .delete ,
409494        )
495+         self .create_presigned_urls  =  async_to_raw_response_wrapper (
496+             data_sources .create_presigned_urls ,
497+         )
410498
411499
412500class  DataSourcesResourceWithStreamingResponse :
@@ -422,6 +510,9 @@ def __init__(self, data_sources: DataSourcesResource) -> None:
422510        self .delete  =  to_streamed_response_wrapper (
423511            data_sources .delete ,
424512        )
513+         self .create_presigned_urls  =  to_streamed_response_wrapper (
514+             data_sources .create_presigned_urls ,
515+         )
425516
426517
427518class  AsyncDataSourcesResourceWithStreamingResponse :
@@ -437,3 +528,6 @@ def __init__(self, data_sources: AsyncDataSourcesResource) -> None:
437528        self .delete  =  async_to_streamed_response_wrapper (
438529            data_sources .delete ,
439530        )
531+         self .create_presigned_urls  =  async_to_streamed_response_wrapper (
532+             data_sources .create_presigned_urls ,
533+         )
0 commit comments