33from __future__ import annotations
44
55import functools
6- from typing import Any , List , Union , Iterable , Optional
6+ from typing import Any , Dict , List , Union , Iterable , Optional
77
88import httpx
99
1919 async_to_streamed_response_wrapper ,
2020)
2121from ..._base_client import make_request_options
22- from ...types .stores import file_list_params , file_create_params , file_search_params , file_retrieve_params
22+ from ...types .stores import (
23+ file_list_params ,
24+ file_create_params ,
25+ file_search_params ,
26+ file_update_params ,
27+ file_retrieve_params ,
28+ )
2329from ...types .stores .store_file import StoreFile
2430from ...types .stores .store_file_status import StoreFileStatus
2531from ...types .stores .file_list_response import FileListResponse
@@ -173,6 +179,55 @@ def retrieve(
173179 cast_to = StoreFile ,
174180 )
175181
182+ def update (
183+ self ,
184+ file_identifier : str ,
185+ * ,
186+ store_identifier : str ,
187+ metadata : Optional [Dict [str , object ]] | Omit = omit ,
188+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
189+ # The extra values given here take precedence over values defined on the client or passed to this method.
190+ extra_headers : Headers | None = None ,
191+ extra_query : Query | None = None ,
192+ extra_body : Body | None = None ,
193+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
194+ ) -> StoreFile :
195+ """
196+ Update metadata on a file within a store.
197+
198+ Args: store_identifier: The ID or name of the store. file_identifier: The ID or
199+ name of the file to update. update_params: Metadata update payload.
200+
201+ Returns: StoreFile: The updated file details.
202+
203+ Args:
204+ store_identifier: The ID or name of the store
205+
206+ file_identifier: The ID or name of the file to update
207+
208+ metadata: Updated metadata for the file
209+
210+ extra_headers: Send extra headers
211+
212+ extra_query: Add additional query parameters to the request
213+
214+ extra_body: Add additional JSON properties to the request
215+
216+ timeout: Override the client-level default timeout for this request, in seconds
217+ """
218+ if not store_identifier :
219+ raise ValueError (f"Expected a non-empty value for `store_identifier` but received { store_identifier !r} " )
220+ if not file_identifier :
221+ raise ValueError (f"Expected a non-empty value for `file_identifier` but received { file_identifier !r} " )
222+ return self ._patch (
223+ f"/v1/stores/{ store_identifier } /files/{ file_identifier } " ,
224+ body = maybe_transform ({"metadata" : metadata }, file_update_params .FileUpdateParams ),
225+ options = make_request_options (
226+ extra_headers = extra_headers , extra_query = extra_query , extra_body = extra_body , timeout = timeout
227+ ),
228+ cast_to = StoreFile ,
229+ )
230+
176231 def list (
177232 self ,
178233 store_identifier : str ,
@@ -663,6 +718,55 @@ async def retrieve(
663718 cast_to = StoreFile ,
664719 )
665720
721+ async def update (
722+ self ,
723+ file_identifier : str ,
724+ * ,
725+ store_identifier : str ,
726+ metadata : Optional [Dict [str , object ]] | Omit = omit ,
727+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
728+ # The extra values given here take precedence over values defined on the client or passed to this method.
729+ extra_headers : Headers | None = None ,
730+ extra_query : Query | None = None ,
731+ extra_body : Body | None = None ,
732+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
733+ ) -> StoreFile :
734+ """
735+ Update metadata on a file within a store.
736+
737+ Args: store_identifier: The ID or name of the store. file_identifier: The ID or
738+ name of the file to update. update_params: Metadata update payload.
739+
740+ Returns: StoreFile: The updated file details.
741+
742+ Args:
743+ store_identifier: The ID or name of the store
744+
745+ file_identifier: The ID or name of the file to update
746+
747+ metadata: Updated metadata for the file
748+
749+ extra_headers: Send extra headers
750+
751+ extra_query: Add additional query parameters to the request
752+
753+ extra_body: Add additional JSON properties to the request
754+
755+ timeout: Override the client-level default timeout for this request, in seconds
756+ """
757+ if not store_identifier :
758+ raise ValueError (f"Expected a non-empty value for `store_identifier` but received { store_identifier !r} " )
759+ if not file_identifier :
760+ raise ValueError (f"Expected a non-empty value for `file_identifier` but received { file_identifier !r} " )
761+ return await self ._patch (
762+ f"/v1/stores/{ store_identifier } /files/{ file_identifier } " ,
763+ body = await async_maybe_transform ({"metadata" : metadata }, file_update_params .FileUpdateParams ),
764+ options = make_request_options (
765+ extra_headers = extra_headers , extra_query = extra_query , extra_body = extra_body , timeout = timeout
766+ ),
767+ cast_to = StoreFile ,
768+ )
769+
666770 async def list (
667771 self ,
668772 store_identifier : str ,
@@ -1019,6 +1123,9 @@ def __init__(self, files: FilesResource) -> None:
10191123 self .retrieve = to_raw_response_wrapper (
10201124 files .retrieve ,
10211125 )
1126+ self .update = to_raw_response_wrapper (
1127+ files .update ,
1128+ )
10221129 self .list = to_raw_response_wrapper (
10231130 files .list ,
10241131 )
@@ -1040,6 +1147,9 @@ def __init__(self, files: AsyncFilesResource) -> None:
10401147 self .retrieve = async_to_raw_response_wrapper (
10411148 files .retrieve ,
10421149 )
1150+ self .update = async_to_raw_response_wrapper (
1151+ files .update ,
1152+ )
10431153 self .list = async_to_raw_response_wrapper (
10441154 files .list ,
10451155 )
@@ -1061,6 +1171,9 @@ def __init__(self, files: FilesResource) -> None:
10611171 self .retrieve = to_streamed_response_wrapper (
10621172 files .retrieve ,
10631173 )
1174+ self .update = to_streamed_response_wrapper (
1175+ files .update ,
1176+ )
10641177 self .list = to_streamed_response_wrapper (
10651178 files .list ,
10661179 )
@@ -1082,6 +1195,9 @@ def __init__(self, files: AsyncFilesResource) -> None:
10821195 self .retrieve = async_to_streamed_response_wrapper (
10831196 files .retrieve ,
10841197 )
1198+ self .update = async_to_streamed_response_wrapper (
1199+ files .update ,
1200+ )
10851201 self .list = async_to_streamed_response_wrapper (
10861202 files .list ,
10871203 )
0 commit comments