22
33from __future__ import annotations
44
5- from typing import Optional
5+ from typing import Dict , Iterable , Optional
66
77import httpx
88
99from .. import _legacy_response
10- from ..types import item_list_params , item_create_params
10+ from ..types import item_list_params , item_create_params , item_update_params
1111from .._types import NOT_GIVEN , Body , Query , Headers , NotGiven
1212from .._utils import (
1313 maybe_transform ,
@@ -76,6 +76,60 @@ def create(
7676 cast_to = Item ,
7777 )
7878
79+ def update (
80+ self ,
81+ item_id : str ,
82+ * ,
83+ external_connections : Optional [Iterable [item_update_params .ExternalConnection ]],
84+ metadata : Optional [Dict [str , Optional [str ]]] | NotGiven = NOT_GIVEN ,
85+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
86+ # The extra values given here take precedence over values defined on the client or passed to this method.
87+ extra_headers : Headers | None = None ,
88+ extra_query : Query | None = None ,
89+ extra_body : Body | None = None ,
90+ timeout : float | httpx .Timeout | None | NotGiven = NOT_GIVEN ,
91+ idempotency_key : str | None = None ,
92+ ) -> Item :
93+ """Update items
94+
95+ Args:
96+ metadata: User-specified key/value pairs for the resource.
97+
98+ Individual keys can be removed
99+ by setting the value to `null`, and the entire metadata mapping can be cleared
100+ by setting `metadata` to `null`.
101+
102+ extra_headers: Send extra headers
103+
104+ extra_query: Add additional query parameters to the request
105+
106+ extra_body: Add additional JSON properties to the request
107+
108+ timeout: Override the client-level default timeout for this request, in seconds
109+
110+ idempotency_key: Specify a custom idempotency key for this request
111+ """
112+ if not item_id :
113+ raise ValueError (f"Expected a non-empty value for `item_id` but received { item_id !r} " )
114+ return self ._put (
115+ f"/items/{ item_id } " ,
116+ body = maybe_transform (
117+ {
118+ "external_connections" : external_connections ,
119+ "metadata" : metadata ,
120+ },
121+ item_update_params .ItemUpdateParams ,
122+ ),
123+ options = make_request_options (
124+ extra_headers = extra_headers ,
125+ extra_query = extra_query ,
126+ extra_body = extra_body ,
127+ timeout = timeout ,
128+ idempotency_key = idempotency_key ,
129+ ),
130+ cast_to = Item ,
131+ )
132+
79133 def list (
80134 self ,
81135 * ,
@@ -209,6 +263,60 @@ async def create(
209263 cast_to = Item ,
210264 )
211265
266+ async def update (
267+ self ,
268+ item_id : str ,
269+ * ,
270+ external_connections : Optional [Iterable [item_update_params .ExternalConnection ]],
271+ metadata : Optional [Dict [str , Optional [str ]]] | NotGiven = NOT_GIVEN ,
272+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
273+ # The extra values given here take precedence over values defined on the client or passed to this method.
274+ extra_headers : Headers | None = None ,
275+ extra_query : Query | None = None ,
276+ extra_body : Body | None = None ,
277+ timeout : float | httpx .Timeout | None | NotGiven = NOT_GIVEN ,
278+ idempotency_key : str | None = None ,
279+ ) -> Item :
280+ """Update items
281+
282+ Args:
283+ metadata: User-specified key/value pairs for the resource.
284+
285+ Individual keys can be removed
286+ by setting the value to `null`, and the entire metadata mapping can be cleared
287+ by setting `metadata` to `null`.
288+
289+ extra_headers: Send extra headers
290+
291+ extra_query: Add additional query parameters to the request
292+
293+ extra_body: Add additional JSON properties to the request
294+
295+ timeout: Override the client-level default timeout for this request, in seconds
296+
297+ idempotency_key: Specify a custom idempotency key for this request
298+ """
299+ if not item_id :
300+ raise ValueError (f"Expected a non-empty value for `item_id` but received { item_id !r} " )
301+ return await self ._put (
302+ f"/items/{ item_id } " ,
303+ body = await async_maybe_transform (
304+ {
305+ "external_connections" : external_connections ,
306+ "metadata" : metadata ,
307+ },
308+ item_update_params .ItemUpdateParams ,
309+ ),
310+ options = make_request_options (
311+ extra_headers = extra_headers ,
312+ extra_query = extra_query ,
313+ extra_body = extra_body ,
314+ timeout = timeout ,
315+ idempotency_key = idempotency_key ,
316+ ),
317+ cast_to = Item ,
318+ )
319+
212320 def list (
213321 self ,
214322 * ,
@@ -299,6 +407,9 @@ def __init__(self, items: Items) -> None:
299407 self .create = _legacy_response .to_raw_response_wrapper (
300408 items .create ,
301409 )
410+ self .update = _legacy_response .to_raw_response_wrapper (
411+ items .update ,
412+ )
302413 self .list = _legacy_response .to_raw_response_wrapper (
303414 items .list ,
304415 )
@@ -314,6 +425,9 @@ def __init__(self, items: AsyncItems) -> None:
314425 self .create = _legacy_response .async_to_raw_response_wrapper (
315426 items .create ,
316427 )
428+ self .update = _legacy_response .async_to_raw_response_wrapper (
429+ items .update ,
430+ )
317431 self .list = _legacy_response .async_to_raw_response_wrapper (
318432 items .list ,
319433 )
@@ -329,6 +443,9 @@ def __init__(self, items: Items) -> None:
329443 self .create = to_streamed_response_wrapper (
330444 items .create ,
331445 )
446+ self .update = to_streamed_response_wrapper (
447+ items .update ,
448+ )
332449 self .list = to_streamed_response_wrapper (
333450 items .list ,
334451 )
@@ -344,6 +461,9 @@ def __init__(self, items: AsyncItems) -> None:
344461 self .create = async_to_streamed_response_wrapper (
345462 items .create ,
346463 )
464+ self .update = async_to_streamed_response_wrapper (
465+ items .update ,
466+ )
347467 self .list = async_to_streamed_response_wrapper (
348468 items .list ,
349469 )
0 commit comments