@@ -192,3 +192,40 @@ async def download(self, resource_id: str) -> FileModel:
192192 resource_id , method = "GET" , headers = {"Accept" : "*" }
193193 )
194194 return FileModel (response )
195+
196+
197+ class GetMixin [Model ]:
198+ """Get resource mixin."""
199+
200+ def get (self , resource_id : str , select : list [str ] | str | None = None ) -> Model :
201+ """Fetch a specific resource using `GET /endpoint/{resource_id}`.
202+
203+ Args:
204+ resource_id: Resource ID.
205+ select: List of fields to select.
206+
207+ Returns:
208+ Resource object.
209+ """
210+ if isinstance (select , list ):
211+ select = "," .join (select ) if select else None
212+
213+ return self ._resource_action (resource_id = resource_id , query_params = {"select" : select }) # type: ignore[attr-defined, no-any-return]
214+
215+
216+ class AsyncGetMixin [Model ]:
217+ """Async get resource mixin."""
218+
219+ async def get (self , resource_id : str , select : list [str ] | str | None = None ) -> Model :
220+ """Fetch a specific resource using `GET /endpoint/{resource_id}`.
221+
222+ Args:
223+ resource_id: Resource ID.
224+ select: List of fields to select.
225+
226+ Returns:
227+ Resource object.
228+ """
229+ if isinstance (select , list ):
230+ select = "," .join (select ) if select else None
231+ return await self ._resource_action (resource_id = resource_id , query_params = {"select" : select }) # type: ignore[attr-defined, no-any-return]
0 commit comments