77import httpx
88
99from ... import _legacy_response
10- from ...types import dimensional_price_group_list_params , dimensional_price_group_create_params
10+ from ...types import (
11+ dimensional_price_group_list_params ,
12+ dimensional_price_group_create_params ,
13+ dimensional_price_group_update_params ,
14+ )
1115from ..._types import NOT_GIVEN , Body , Query , Headers , NotGiven
1216from ..._utils import maybe_transform , async_maybe_transform
1317from ..._compat import cached_property
@@ -152,6 +156,68 @@ def retrieve(
152156 cast_to = DimensionalPriceGroup ,
153157 )
154158
159+ def update (
160+ self ,
161+ dimensional_price_group_id : str ,
162+ * ,
163+ external_dimensional_price_group_id : Optional [str ] | NotGiven = NOT_GIVEN ,
164+ metadata : Optional [Dict [str , Optional [str ]]] | NotGiven = NOT_GIVEN ,
165+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
166+ # The extra values given here take precedence over values defined on the client or passed to this method.
167+ extra_headers : Headers | None = None ,
168+ extra_query : Query | None = None ,
169+ extra_body : Body | None = None ,
170+ timeout : float | httpx .Timeout | None | NotGiven = NOT_GIVEN ,
171+ idempotency_key : str | None = None ,
172+ ) -> DimensionalPriceGroup :
173+ """
174+ This endpoint can be used to update the `external_dimensional_price_group_id`
175+ and `metadata` of an existing dimensional price group. Other fields on a
176+ dimensional price group are currently immutable.
177+
178+ Args:
179+ external_dimensional_price_group_id: An optional user-defined ID for this dimensional price group resource, used
180+ throughout the system as an alias for this dimensional price group. Use this
181+ field to identify a dimensional price group by an existing identifier in your
182+ system.
183+
184+ metadata: User-specified key/value pairs for the resource. Individual keys can be removed
185+ by setting the value to `null`, and the entire metadata mapping can be cleared
186+ by setting `metadata` to `null`.
187+
188+ extra_headers: Send extra headers
189+
190+ extra_query: Add additional query parameters to the request
191+
192+ extra_body: Add additional JSON properties to the request
193+
194+ timeout: Override the client-level default timeout for this request, in seconds
195+
196+ idempotency_key: Specify a custom idempotency key for this request
197+ """
198+ if not dimensional_price_group_id :
199+ raise ValueError (
200+ f"Expected a non-empty value for `dimensional_price_group_id` but received { dimensional_price_group_id !r} "
201+ )
202+ return self ._put (
203+ f"/dimensional_price_groups/{ dimensional_price_group_id } " ,
204+ body = maybe_transform (
205+ {
206+ "external_dimensional_price_group_id" : external_dimensional_price_group_id ,
207+ "metadata" : metadata ,
208+ },
209+ dimensional_price_group_update_params .DimensionalPriceGroupUpdateParams ,
210+ ),
211+ options = make_request_options (
212+ extra_headers = extra_headers ,
213+ extra_query = extra_query ,
214+ extra_body = extra_body ,
215+ timeout = timeout ,
216+ idempotency_key = idempotency_key ,
217+ ),
218+ cast_to = DimensionalPriceGroup ,
219+ )
220+
155221 def list (
156222 self ,
157223 * ,
@@ -326,6 +392,68 @@ async def retrieve(
326392 cast_to = DimensionalPriceGroup ,
327393 )
328394
395+ async def update (
396+ self ,
397+ dimensional_price_group_id : str ,
398+ * ,
399+ external_dimensional_price_group_id : Optional [str ] | NotGiven = NOT_GIVEN ,
400+ metadata : Optional [Dict [str , Optional [str ]]] | NotGiven = NOT_GIVEN ,
401+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
402+ # The extra values given here take precedence over values defined on the client or passed to this method.
403+ extra_headers : Headers | None = None ,
404+ extra_query : Query | None = None ,
405+ extra_body : Body | None = None ,
406+ timeout : float | httpx .Timeout | None | NotGiven = NOT_GIVEN ,
407+ idempotency_key : str | None = None ,
408+ ) -> DimensionalPriceGroup :
409+ """
410+ This endpoint can be used to update the `external_dimensional_price_group_id`
411+ and `metadata` of an existing dimensional price group. Other fields on a
412+ dimensional price group are currently immutable.
413+
414+ Args:
415+ external_dimensional_price_group_id: An optional user-defined ID for this dimensional price group resource, used
416+ throughout the system as an alias for this dimensional price group. Use this
417+ field to identify a dimensional price group by an existing identifier in your
418+ system.
419+
420+ metadata: User-specified key/value pairs for the resource. Individual keys can be removed
421+ by setting the value to `null`, and the entire metadata mapping can be cleared
422+ by setting `metadata` to `null`.
423+
424+ extra_headers: Send extra headers
425+
426+ extra_query: Add additional query parameters to the request
427+
428+ extra_body: Add additional JSON properties to the request
429+
430+ timeout: Override the client-level default timeout for this request, in seconds
431+
432+ idempotency_key: Specify a custom idempotency key for this request
433+ """
434+ if not dimensional_price_group_id :
435+ raise ValueError (
436+ f"Expected a non-empty value for `dimensional_price_group_id` but received { dimensional_price_group_id !r} "
437+ )
438+ return await self ._put (
439+ f"/dimensional_price_groups/{ dimensional_price_group_id } " ,
440+ body = await async_maybe_transform (
441+ {
442+ "external_dimensional_price_group_id" : external_dimensional_price_group_id ,
443+ "metadata" : metadata ,
444+ },
445+ dimensional_price_group_update_params .DimensionalPriceGroupUpdateParams ,
446+ ),
447+ options = make_request_options (
448+ extra_headers = extra_headers ,
449+ extra_query = extra_query ,
450+ extra_body = extra_body ,
451+ timeout = timeout ,
452+ idempotency_key = idempotency_key ,
453+ ),
454+ cast_to = DimensionalPriceGroup ,
455+ )
456+
329457 def list (
330458 self ,
331459 * ,
@@ -386,6 +514,9 @@ def __init__(self, dimensional_price_groups: DimensionalPriceGroups) -> None:
386514 self .retrieve = _legacy_response .to_raw_response_wrapper (
387515 dimensional_price_groups .retrieve ,
388516 )
517+ self .update = _legacy_response .to_raw_response_wrapper (
518+ dimensional_price_groups .update ,
519+ )
389520 self .list = _legacy_response .to_raw_response_wrapper (
390521 dimensional_price_groups .list ,
391522 )
@@ -407,6 +538,9 @@ def __init__(self, dimensional_price_groups: AsyncDimensionalPriceGroups) -> Non
407538 self .retrieve = _legacy_response .async_to_raw_response_wrapper (
408539 dimensional_price_groups .retrieve ,
409540 )
541+ self .update = _legacy_response .async_to_raw_response_wrapper (
542+ dimensional_price_groups .update ,
543+ )
410544 self .list = _legacy_response .async_to_raw_response_wrapper (
411545 dimensional_price_groups .list ,
412546 )
@@ -428,6 +562,9 @@ def __init__(self, dimensional_price_groups: DimensionalPriceGroups) -> None:
428562 self .retrieve = to_streamed_response_wrapper (
429563 dimensional_price_groups .retrieve ,
430564 )
565+ self .update = to_streamed_response_wrapper (
566+ dimensional_price_groups .update ,
567+ )
431568 self .list = to_streamed_response_wrapper (
432569 dimensional_price_groups .list ,
433570 )
@@ -449,6 +586,9 @@ def __init__(self, dimensional_price_groups: AsyncDimensionalPriceGroups) -> Non
449586 self .retrieve = async_to_streamed_response_wrapper (
450587 dimensional_price_groups .retrieve ,
451588 )
589+ self .update = async_to_streamed_response_wrapper (
590+ dimensional_price_groups .update ,
591+ )
452592 self .list = async_to_streamed_response_wrapper (
453593 dimensional_price_groups .list ,
454594 )
0 commit comments