Skip to content

Commit 640018e

Browse files
feat(api): update item endpoint (#287)
feat(api): pricing model updates
1 parent 52aed09 commit 640018e

File tree

12 files changed

+1413
-6
lines changed

12 files changed

+1413
-6
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
configured_endpoints: 89
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/orb-518a2c5acac4b9a7da39e27435ec6e8a3f494703a33627e3d726395e03e9b7f2.yml
1+
configured_endpoints: 90
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/orb-a6a1b7ffd49d131bfc4a1e8e508ac1fe23875c64b27c99f97dd4df06ea5e3ff5.yml

api.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@ from orb.types import Item
245245
Methods:
246246

247247
- <code title="post /items">client.items.<a href="./src/orb/resources/items.py">create</a>(\*\*<a href="src/orb/types/item_create_params.py">params</a>) -> <a href="./src/orb/types/item.py">Item</a></code>
248+
- <code title="put /items/{item_id}">client.items.<a href="./src/orb/resources/items.py">update</a>(item_id, \*\*<a href="src/orb/types/item_update_params.py">params</a>) -> <a href="./src/orb/types/item.py">Item</a></code>
248249
- <code title="get /items">client.items.<a href="./src/orb/resources/items.py">list</a>(\*\*<a href="src/orb/types/item_list_params.py">params</a>) -> <a href="./src/orb/types/item.py">SyncPage[Item]</a></code>
249250
- <code title="get /items/{item_id}">client.items.<a href="./src/orb/resources/items.py">fetch</a>(item_id) -> <a href="./src/orb/types/item.py">Item</a></code>
250251

src/orb/resources/items.py

Lines changed: 122 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
from __future__ import annotations
44

5-
from typing import Optional
5+
from typing import Dict, Iterable, Optional
66

77
import httpx
88

99
from .. 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
1111
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
1212
from .._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

Comments
 (0)