checkout-intents 0.11.0__py3-none-any.whl → 0.13.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -86,6 +86,7 @@ from ._exceptions import (
86
86
  APIConnectionError,
87
87
  APIResponseValidationError,
88
88
  )
89
+ from ._utils._json import openapi_dumps
89
90
 
90
91
  log: logging.Logger = logging.getLogger(__name__)
91
92
 
@@ -554,8 +555,10 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
554
555
  kwargs["content"] = options.content
555
556
  elif isinstance(json_data, bytes):
556
557
  kwargs["content"] = json_data
557
- else:
558
- kwargs["json"] = json_data if is_given(json_data) else None
558
+ elif not files:
559
+ # Don't set content when JSON is sent as multipart/form-data,
560
+ # since httpx's content param overrides other body arguments
561
+ kwargs["content"] = openapi_dumps(json_data) if is_given(json_data) and json_data is not None else None
559
562
  kwargs["files"] = files
560
563
  else:
561
564
  headers.pop("Content-Type", None)
@@ -31,8 +31,9 @@ from ._base_client import (
31
31
  )
32
32
 
33
33
  if TYPE_CHECKING:
34
- from .resources import betas, brands, checkout_intents
34
+ from .resources import betas, brands, products, checkout_intents
35
35
  from .resources.brands import BrandsResource, AsyncBrandsResource
36
+ from .resources.products import ProductsResource, AsyncProductsResource
36
37
  from .resources.betas.betas import BetasResource, AsyncBetasResource
37
38
  from .resources.checkout_intents import CheckoutIntentsResource, AsyncCheckoutIntentsResource
38
39
 
@@ -167,6 +168,8 @@ class CheckoutIntents(SyncAPIClient):
167
168
  _strict_response_validation=_strict_response_validation,
168
169
  )
169
170
 
171
+ self._idempotency_header = "Idempotency-Key"
172
+
170
173
  @cached_property
171
174
  def checkout_intents(self) -> CheckoutIntentsResource:
172
175
  from .resources.checkout_intents import CheckoutIntentsResource
@@ -185,6 +188,12 @@ class CheckoutIntents(SyncAPIClient):
185
188
 
186
189
  return BrandsResource(self)
187
190
 
191
+ @cached_property
192
+ def products(self) -> ProductsResource:
193
+ from .resources.products import ProductsResource
194
+
195
+ return ProductsResource(self)
196
+
188
197
  @cached_property
189
198
  def with_raw_response(self) -> CheckoutIntentsWithRawResponse:
190
199
  return CheckoutIntentsWithRawResponse(self)
@@ -396,6 +405,8 @@ class AsyncCheckoutIntents(AsyncAPIClient):
396
405
  _strict_response_validation=_strict_response_validation,
397
406
  )
398
407
 
408
+ self._idempotency_header = "Idempotency-Key"
409
+
399
410
  @cached_property
400
411
  def checkout_intents(self) -> AsyncCheckoutIntentsResource:
401
412
  from .resources.checkout_intents import AsyncCheckoutIntentsResource
@@ -414,6 +425,12 @@ class AsyncCheckoutIntents(AsyncAPIClient):
414
425
 
415
426
  return AsyncBrandsResource(self)
416
427
 
428
+ @cached_property
429
+ def products(self) -> AsyncProductsResource:
430
+ from .resources.products import AsyncProductsResource
431
+
432
+ return AsyncProductsResource(self)
433
+
417
434
  @cached_property
418
435
  def with_raw_response(self) -> AsyncCheckoutIntentsWithRawResponse:
419
436
  return AsyncCheckoutIntentsWithRawResponse(self)
@@ -553,6 +570,12 @@ class CheckoutIntentsWithRawResponse:
553
570
 
554
571
  return BrandsResourceWithRawResponse(self._client.brands)
555
572
 
573
+ @cached_property
574
+ def products(self) -> products.ProductsResourceWithRawResponse:
575
+ from .resources.products import ProductsResourceWithRawResponse
576
+
577
+ return ProductsResourceWithRawResponse(self._client.products)
578
+
556
579
 
557
580
  class AsyncCheckoutIntentsWithRawResponse:
558
581
  _client: AsyncCheckoutIntents
@@ -578,6 +601,12 @@ class AsyncCheckoutIntentsWithRawResponse:
578
601
 
579
602
  return AsyncBrandsResourceWithRawResponse(self._client.brands)
580
603
 
604
+ @cached_property
605
+ def products(self) -> products.AsyncProductsResourceWithRawResponse:
606
+ from .resources.products import AsyncProductsResourceWithRawResponse
607
+
608
+ return AsyncProductsResourceWithRawResponse(self._client.products)
609
+
581
610
 
582
611
  class CheckoutIntentsWithStreamedResponse:
583
612
  _client: CheckoutIntents
@@ -603,6 +632,12 @@ class CheckoutIntentsWithStreamedResponse:
603
632
 
604
633
  return BrandsResourceWithStreamingResponse(self._client.brands)
605
634
 
635
+ @cached_property
636
+ def products(self) -> products.ProductsResourceWithStreamingResponse:
637
+ from .resources.products import ProductsResourceWithStreamingResponse
638
+
639
+ return ProductsResourceWithStreamingResponse(self._client.products)
640
+
606
641
 
607
642
  class AsyncCheckoutIntentsWithStreamedResponse:
608
643
  _client: AsyncCheckoutIntents
@@ -628,6 +663,12 @@ class AsyncCheckoutIntentsWithStreamedResponse:
628
663
 
629
664
  return AsyncBrandsResourceWithStreamingResponse(self._client.brands)
630
665
 
666
+ @cached_property
667
+ def products(self) -> products.AsyncProductsResourceWithStreamingResponse:
668
+ from .resources.products import AsyncProductsResourceWithStreamingResponse
669
+
670
+ return AsyncProductsResourceWithStreamingResponse(self._client.products)
671
+
631
672
 
632
673
  Client = CheckoutIntents
633
674
 
@@ -139,6 +139,7 @@ def model_dump(
139
139
  exclude_defaults: bool = False,
140
140
  warnings: bool = True,
141
141
  mode: Literal["json", "python"] = "python",
142
+ by_alias: bool | None = None,
142
143
  ) -> dict[str, Any]:
143
144
  if (not PYDANTIC_V1) or hasattr(model, "model_dump"):
144
145
  return model.model_dump(
@@ -148,13 +149,12 @@ def model_dump(
148
149
  exclude_defaults=exclude_defaults,
149
150
  # warnings are not supported in Pydantic v1
150
151
  warnings=True if PYDANTIC_V1 else warnings,
152
+ by_alias=by_alias,
151
153
  )
152
154
  return cast(
153
155
  "dict[str, Any]",
154
156
  model.dict( # pyright: ignore[reportDeprecated, reportUnnecessaryCast]
155
- exclude=exclude,
156
- exclude_unset=exclude_unset,
157
- exclude_defaults=exclude_defaults,
157
+ exclude=exclude, exclude_unset=exclude_unset, exclude_defaults=exclude_defaults, by_alias=bool(by_alias)
158
158
  ),
159
159
  )
160
160
 
@@ -0,0 +1,35 @@
1
+ import json
2
+ from typing import Any
3
+ from datetime import datetime
4
+ from typing_extensions import override
5
+
6
+ import pydantic
7
+
8
+ from .._compat import model_dump
9
+
10
+
11
+ def openapi_dumps(obj: Any) -> bytes:
12
+ """
13
+ Serialize an object to UTF-8 encoded JSON bytes.
14
+
15
+ Extends the standard json.dumps with support for additional types
16
+ commonly used in the SDK, such as `datetime`, `pydantic.BaseModel`, etc.
17
+ """
18
+ return json.dumps(
19
+ obj,
20
+ cls=_CustomEncoder,
21
+ # Uses the same defaults as httpx's JSON serialization
22
+ ensure_ascii=False,
23
+ separators=(",", ":"),
24
+ allow_nan=False,
25
+ ).encode()
26
+
27
+
28
+ class _CustomEncoder(json.JSONEncoder):
29
+ @override
30
+ def default(self, o: Any) -> Any:
31
+ if isinstance(o, datetime):
32
+ return o.isoformat()
33
+ if isinstance(o, pydantic.BaseModel):
34
+ return model_dump(o, exclude_unset=True, mode="json", by_alias=True)
35
+ return super().default(o)
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "checkout_intents"
4
- __version__ = "0.11.0" # x-release-please-version
4
+ __version__ = "0.13.0" # x-release-please-version
@@ -16,6 +16,14 @@ from .brands import (
16
16
  BrandsResourceWithStreamingResponse,
17
17
  AsyncBrandsResourceWithStreamingResponse,
18
18
  )
19
+ from .products import (
20
+ ProductsResource,
21
+ AsyncProductsResource,
22
+ ProductsResourceWithRawResponse,
23
+ AsyncProductsResourceWithRawResponse,
24
+ ProductsResourceWithStreamingResponse,
25
+ AsyncProductsResourceWithStreamingResponse,
26
+ )
19
27
  from .checkout_intents import (
20
28
  CheckoutIntentsResource,
21
29
  AsyncCheckoutIntentsResource,
@@ -44,4 +52,10 @@ __all__ = [
44
52
  "AsyncBrandsResourceWithRawResponse",
45
53
  "BrandsResourceWithStreamingResponse",
46
54
  "AsyncBrandsResourceWithStreamingResponse",
55
+ "ProductsResource",
56
+ "AsyncProductsResource",
57
+ "ProductsResourceWithRawResponse",
58
+ "AsyncProductsResourceWithRawResponse",
59
+ "ProductsResourceWithStreamingResponse",
60
+ "AsyncProductsResourceWithStreamingResponse",
47
61
  ]
@@ -59,6 +59,7 @@ class CheckoutSessionsResource(SyncAPIResource):
59
59
  extra_query: Query | None = None,
60
60
  extra_body: Body | None = None,
61
61
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
62
+ idempotency_key: str | None = None,
62
63
  ) -> CheckoutSession:
63
64
  """
64
65
  Create a new checkout session.
@@ -77,6 +78,8 @@ class CheckoutSessionsResource(SyncAPIResource):
77
78
  extra_body: Add additional JSON properties to the request
78
79
 
79
80
  timeout: Override the client-level default timeout for this request, in seconds
81
+
82
+ idempotency_key: Specify a custom idempotency key for this request
80
83
  """
81
84
  return self._post(
82
85
  "/api/v1/betas/checkout-sessions",
@@ -92,7 +95,11 @@ class CheckoutSessionsResource(SyncAPIResource):
92
95
  checkout_session_create_params.CheckoutSessionCreateParams,
93
96
  ),
94
97
  options=make_request_options(
95
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
98
+ extra_headers=extra_headers,
99
+ extra_query=extra_query,
100
+ extra_body=extra_body,
101
+ timeout=timeout,
102
+ idempotency_key=idempotency_key,
96
103
  ),
97
104
  cast_to=CheckoutSession,
98
105
  )
@@ -133,6 +140,7 @@ class AsyncCheckoutSessionsResource(AsyncAPIResource):
133
140
  extra_query: Query | None = None,
134
141
  extra_body: Body | None = None,
135
142
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
143
+ idempotency_key: str | None = None,
136
144
  ) -> CheckoutSession:
137
145
  """
138
146
  Create a new checkout session.
@@ -151,6 +159,8 @@ class AsyncCheckoutSessionsResource(AsyncAPIResource):
151
159
  extra_body: Add additional JSON properties to the request
152
160
 
153
161
  timeout: Override the client-level default timeout for this request, in seconds
162
+
163
+ idempotency_key: Specify a custom idempotency key for this request
154
164
  """
155
165
  return await self._post(
156
166
  "/api/v1/betas/checkout-sessions",
@@ -166,7 +176,11 @@ class AsyncCheckoutSessionsResource(AsyncAPIResource):
166
176
  checkout_session_create_params.CheckoutSessionCreateParams,
167
177
  ),
168
178
  options=make_request_options(
169
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
179
+ extra_headers=extra_headers,
180
+ extra_query=extra_query,
181
+ extra_body=extra_body,
182
+ timeout=timeout,
183
+ idempotency_key=idempotency_key,
170
184
  ),
171
185
  cast_to=CheckoutSession,
172
186
  )
@@ -80,6 +80,7 @@ class CheckoutIntentsResource(SyncAPIResource):
80
80
  extra_query: Query | None = None,
81
81
  extra_body: Body | None = None,
82
82
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
83
+ idempotency_key: str | None = None,
83
84
  ) -> CheckoutIntent:
84
85
  """
85
86
  Create a checkout intent with the given request body.
@@ -92,6 +93,8 @@ class CheckoutIntentsResource(SyncAPIResource):
92
93
  extra_body: Add additional JSON properties to the request
93
94
 
94
95
  timeout: Override the client-level default timeout for this request, in seconds
96
+
97
+ idempotency_key: Specify a custom idempotency key for this request
95
98
  """
96
99
  return cast(
97
100
  CheckoutIntent,
@@ -109,7 +112,11 @@ class CheckoutIntentsResource(SyncAPIResource):
109
112
  checkout_intent_create_params.CheckoutIntentCreateParams,
110
113
  ),
111
114
  options=make_request_options(
112
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
115
+ extra_headers=extra_headers,
116
+ extra_query=extra_query,
117
+ extra_body=extra_body,
118
+ timeout=timeout,
119
+ idempotency_key=idempotency_key,
113
120
  ),
114
121
  cast_to=cast(Any, CheckoutIntent), # Union types cannot be passed in as arguments in the type system
115
122
  ),
@@ -217,6 +224,7 @@ class CheckoutIntentsResource(SyncAPIResource):
217
224
  extra_query: Query | None = None,
218
225
  extra_body: Body | None = None,
219
226
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
227
+ idempotency_key: str | None = None,
220
228
  ) -> CheckoutIntent:
221
229
  """
222
230
  Add payment details to a checkout intent
@@ -229,6 +237,8 @@ class CheckoutIntentsResource(SyncAPIResource):
229
237
  extra_body: Add additional JSON properties to the request
230
238
 
231
239
  timeout: Override the client-level default timeout for this request, in seconds
240
+
241
+ idempotency_key: Specify a custom idempotency key for this request
232
242
  """
233
243
  if not id:
234
244
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
@@ -241,7 +251,11 @@ class CheckoutIntentsResource(SyncAPIResource):
241
251
  checkout_intent_add_payment_params.CheckoutIntentAddPaymentParams,
242
252
  ),
243
253
  options=make_request_options(
244
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
254
+ extra_headers=extra_headers,
255
+ extra_query=extra_query,
256
+ extra_body=extra_body,
257
+ timeout=timeout,
258
+ idempotency_key=idempotency_key,
245
259
  ),
246
260
  cast_to=cast(Any, CheckoutIntent), # Union types cannot be passed in as arguments in the type system
247
261
  ),
@@ -258,6 +272,7 @@ class CheckoutIntentsResource(SyncAPIResource):
258
272
  extra_query: Query | None = None,
259
273
  extra_body: Body | None = None,
260
274
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
275
+ idempotency_key: str | None = None,
261
276
  ) -> CheckoutIntent:
262
277
  """
263
278
  Confirm a checkout intent with provided payment information
@@ -273,6 +288,8 @@ class CheckoutIntentsResource(SyncAPIResource):
273
288
  extra_body: Add additional JSON properties to the request
274
289
 
275
290
  timeout: Override the client-level default timeout for this request, in seconds
291
+
292
+ idempotency_key: Specify a custom idempotency key for this request
276
293
  """
277
294
  if not id:
278
295
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
@@ -284,7 +301,11 @@ class CheckoutIntentsResource(SyncAPIResource):
284
301
  {"payment_method": payment_method}, checkout_intent_confirm_params.CheckoutIntentConfirmParams
285
302
  ),
286
303
  options=make_request_options(
287
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
304
+ extra_headers=extra_headers,
305
+ extra_query=extra_query,
306
+ extra_body=extra_body,
307
+ timeout=timeout,
308
+ idempotency_key=idempotency_key,
288
309
  ),
289
310
  cast_to=cast(Any, CheckoutIntent), # Union types cannot be passed in as arguments in the type system
290
311
  ),
@@ -306,6 +327,7 @@ class CheckoutIntentsResource(SyncAPIResource):
306
327
  extra_query: Query | None = None,
307
328
  extra_body: Body | None = None,
308
329
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
330
+ idempotency_key: str | None = None,
309
331
  ) -> CheckoutIntent:
310
332
  """
311
333
  Create a checkout intent and immediately trigger the purchase workflow.
@@ -322,6 +344,8 @@ class CheckoutIntentsResource(SyncAPIResource):
322
344
  extra_body: Add additional JSON properties to the request
323
345
 
324
346
  timeout: Override the client-level default timeout for this request, in seconds
347
+
348
+ idempotency_key: Specify a custom idempotency key for this request
325
349
  """
326
350
  return cast(
327
351
  CheckoutIntent,
@@ -340,7 +364,11 @@ class CheckoutIntentsResource(SyncAPIResource):
340
364
  checkout_intent_purchase_params.CheckoutIntentPurchaseParams
341
365
  ),
342
366
  options=make_request_options(
343
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
367
+ extra_headers=extra_headers,
368
+ extra_query=extra_query,
369
+ extra_body=extra_body,
370
+ timeout=timeout,
371
+ idempotency_key=idempotency_key,
344
372
  ),
345
373
  cast_to=cast(Any, CheckoutIntent), # Union types cannot be passed in as arguments in the type system
346
374
  ),
@@ -741,6 +769,7 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
741
769
  extra_query: Query | None = None,
742
770
  extra_body: Body | None = None,
743
771
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
772
+ idempotency_key: str | None = None,
744
773
  ) -> CheckoutIntent:
745
774
  """
746
775
  Create a checkout intent with the given request body.
@@ -753,6 +782,8 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
753
782
  extra_body: Add additional JSON properties to the request
754
783
 
755
784
  timeout: Override the client-level default timeout for this request, in seconds
785
+
786
+ idempotency_key: Specify a custom idempotency key for this request
756
787
  """
757
788
  return cast(
758
789
  CheckoutIntent,
@@ -770,7 +801,11 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
770
801
  checkout_intent_create_params.CheckoutIntentCreateParams,
771
802
  ),
772
803
  options=make_request_options(
773
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
804
+ extra_headers=extra_headers,
805
+ extra_query=extra_query,
806
+ extra_body=extra_body,
807
+ timeout=timeout,
808
+ idempotency_key=idempotency_key,
774
809
  ),
775
810
  cast_to=cast(Any, CheckoutIntent), # Union types cannot be passed in as arguments in the type system
776
811
  ),
@@ -878,6 +913,7 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
878
913
  extra_query: Query | None = None,
879
914
  extra_body: Body | None = None,
880
915
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
916
+ idempotency_key: str | None = None,
881
917
  ) -> CheckoutIntent:
882
918
  """
883
919
  Add payment details to a checkout intent
@@ -890,6 +926,8 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
890
926
  extra_body: Add additional JSON properties to the request
891
927
 
892
928
  timeout: Override the client-level default timeout for this request, in seconds
929
+
930
+ idempotency_key: Specify a custom idempotency key for this request
893
931
  """
894
932
  if not id:
895
933
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
@@ -902,7 +940,11 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
902
940
  checkout_intent_add_payment_params.CheckoutIntentAddPaymentParams,
903
941
  ),
904
942
  options=make_request_options(
905
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
943
+ extra_headers=extra_headers,
944
+ extra_query=extra_query,
945
+ extra_body=extra_body,
946
+ timeout=timeout,
947
+ idempotency_key=idempotency_key,
906
948
  ),
907
949
  cast_to=cast(Any, CheckoutIntent), # Union types cannot be passed in as arguments in the type system
908
950
  ),
@@ -919,6 +961,7 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
919
961
  extra_query: Query | None = None,
920
962
  extra_body: Body | None = None,
921
963
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
964
+ idempotency_key: str | None = None,
922
965
  ) -> CheckoutIntent:
923
966
  """
924
967
  Confirm a checkout intent with provided payment information
@@ -934,6 +977,8 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
934
977
  extra_body: Add additional JSON properties to the request
935
978
 
936
979
  timeout: Override the client-level default timeout for this request, in seconds
980
+
981
+ idempotency_key: Specify a custom idempotency key for this request
937
982
  """
938
983
  if not id:
939
984
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
@@ -945,7 +990,11 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
945
990
  {"payment_method": payment_method}, checkout_intent_confirm_params.CheckoutIntentConfirmParams
946
991
  ),
947
992
  options=make_request_options(
948
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
993
+ extra_headers=extra_headers,
994
+ extra_query=extra_query,
995
+ extra_body=extra_body,
996
+ timeout=timeout,
997
+ idempotency_key=idempotency_key,
949
998
  ),
950
999
  cast_to=cast(Any, CheckoutIntent), # Union types cannot be passed in as arguments in the type system
951
1000
  ),
@@ -967,6 +1016,7 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
967
1016
  extra_query: Query | None = None,
968
1017
  extra_body: Body | None = None,
969
1018
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
1019
+ idempotency_key: str | None = None,
970
1020
  ) -> CheckoutIntent:
971
1021
  """
972
1022
  Create a checkout intent and immediately trigger the purchase workflow.
@@ -983,6 +1033,8 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
983
1033
  extra_body: Add additional JSON properties to the request
984
1034
 
985
1035
  timeout: Override the client-level default timeout for this request, in seconds
1036
+
1037
+ idempotency_key: Specify a custom idempotency key for this request
986
1038
  """
987
1039
  return cast(
988
1040
  CheckoutIntent,
@@ -1001,7 +1053,11 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
1001
1053
  checkout_intent_purchase_params.CheckoutIntentPurchaseParams
1002
1054
  ),
1003
1055
  options=make_request_options(
1004
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
1056
+ extra_headers=extra_headers,
1057
+ extra_query=extra_query,
1058
+ extra_body=extra_body,
1059
+ timeout=timeout,
1060
+ idempotency_key=idempotency_key,
1005
1061
  ),
1006
1062
  cast_to=cast(Any, CheckoutIntent), # Union types cannot be passed in as arguments in the type system
1007
1063
  ),
@@ -0,0 +1,169 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ import httpx
6
+
7
+ from ..types import product_lookup_params
8
+ from .._types import Body, Query, Headers, NotGiven, not_given
9
+ from .._utils import maybe_transform, async_maybe_transform
10
+ from .._compat import cached_property
11
+ from .._resource import SyncAPIResource, AsyncAPIResource
12
+ from .._response import (
13
+ to_raw_response_wrapper,
14
+ to_streamed_response_wrapper,
15
+ async_to_raw_response_wrapper,
16
+ async_to_streamed_response_wrapper,
17
+ )
18
+ from .._base_client import make_request_options
19
+ from ..types.product import Product
20
+
21
+ __all__ = ["ProductsResource", "AsyncProductsResource"]
22
+
23
+
24
+ class ProductsResource(SyncAPIResource):
25
+ @cached_property
26
+ def with_raw_response(self) -> ProductsResourceWithRawResponse:
27
+ """
28
+ This property can be used as a prefix for any HTTP method call to return
29
+ the raw response object instead of the parsed content.
30
+
31
+ For more information, see https://www.github.com/rye-com/checkout-intents-python#accessing-raw-response-data-eg-headers
32
+ """
33
+ return ProductsResourceWithRawResponse(self)
34
+
35
+ @cached_property
36
+ def with_streaming_response(self) -> ProductsResourceWithStreamingResponse:
37
+ """
38
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
39
+
40
+ For more information, see https://www.github.com/rye-com/checkout-intents-python#with_streaming_response
41
+ """
42
+ return ProductsResourceWithStreamingResponse(self)
43
+
44
+ def lookup(
45
+ self,
46
+ *,
47
+ url: str,
48
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
49
+ # The extra values given here take precedence over values defined on the client or passed to this method.
50
+ extra_headers: Headers | None = None,
51
+ extra_query: Query | None = None,
52
+ extra_body: Body | None = None,
53
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
54
+ ) -> Product:
55
+ """
56
+ Retrieve a product's information by URL.
57
+
58
+ Args:
59
+ extra_headers: Send extra headers
60
+
61
+ extra_query: Add additional query parameters to the request
62
+
63
+ extra_body: Add additional JSON properties to the request
64
+
65
+ timeout: Override the client-level default timeout for this request, in seconds
66
+ """
67
+ return self._get(
68
+ "/api/v1/products/lookup",
69
+ options=make_request_options(
70
+ extra_headers=extra_headers,
71
+ extra_query=extra_query,
72
+ extra_body=extra_body,
73
+ timeout=timeout,
74
+ query=maybe_transform({"url": url}, product_lookup_params.ProductLookupParams),
75
+ ),
76
+ cast_to=Product,
77
+ )
78
+
79
+
80
+ class AsyncProductsResource(AsyncAPIResource):
81
+ @cached_property
82
+ def with_raw_response(self) -> AsyncProductsResourceWithRawResponse:
83
+ """
84
+ This property can be used as a prefix for any HTTP method call to return
85
+ the raw response object instead of the parsed content.
86
+
87
+ For more information, see https://www.github.com/rye-com/checkout-intents-python#accessing-raw-response-data-eg-headers
88
+ """
89
+ return AsyncProductsResourceWithRawResponse(self)
90
+
91
+ @cached_property
92
+ def with_streaming_response(self) -> AsyncProductsResourceWithStreamingResponse:
93
+ """
94
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
95
+
96
+ For more information, see https://www.github.com/rye-com/checkout-intents-python#with_streaming_response
97
+ """
98
+ return AsyncProductsResourceWithStreamingResponse(self)
99
+
100
+ async def lookup(
101
+ self,
102
+ *,
103
+ url: str,
104
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
105
+ # The extra values given here take precedence over values defined on the client or passed to this method.
106
+ extra_headers: Headers | None = None,
107
+ extra_query: Query | None = None,
108
+ extra_body: Body | None = None,
109
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
110
+ ) -> Product:
111
+ """
112
+ Retrieve a product's information by URL.
113
+
114
+ Args:
115
+ extra_headers: Send extra headers
116
+
117
+ extra_query: Add additional query parameters to the request
118
+
119
+ extra_body: Add additional JSON properties to the request
120
+
121
+ timeout: Override the client-level default timeout for this request, in seconds
122
+ """
123
+ return await self._get(
124
+ "/api/v1/products/lookup",
125
+ options=make_request_options(
126
+ extra_headers=extra_headers,
127
+ extra_query=extra_query,
128
+ extra_body=extra_body,
129
+ timeout=timeout,
130
+ query=await async_maybe_transform({"url": url}, product_lookup_params.ProductLookupParams),
131
+ ),
132
+ cast_to=Product,
133
+ )
134
+
135
+
136
+ class ProductsResourceWithRawResponse:
137
+ def __init__(self, products: ProductsResource) -> None:
138
+ self._products = products
139
+
140
+ self.lookup = to_raw_response_wrapper(
141
+ products.lookup,
142
+ )
143
+
144
+
145
+ class AsyncProductsResourceWithRawResponse:
146
+ def __init__(self, products: AsyncProductsResource) -> None:
147
+ self._products = products
148
+
149
+ self.lookup = async_to_raw_response_wrapper(
150
+ products.lookup,
151
+ )
152
+
153
+
154
+ class ProductsResourceWithStreamingResponse:
155
+ def __init__(self, products: ProductsResource) -> None:
156
+ self._products = products
157
+
158
+ self.lookup = to_streamed_response_wrapper(
159
+ products.lookup,
160
+ )
161
+
162
+
163
+ class AsyncProductsResourceWithStreamingResponse:
164
+ def __init__(self, products: AsyncProductsResource) -> None:
165
+ self._products = products
166
+
167
+ self.lookup = async_to_streamed_response_wrapper(
168
+ products.lookup,
169
+ )
@@ -5,13 +5,17 @@ from __future__ import annotations
5
5
  from .buyer import Buyer as Buyer
6
6
  from .money import Money as Money
7
7
  from .offer import Offer as Offer
8
+ from .product import Product as Product
8
9
  from .buyer_param import BuyerParam as BuyerParam
10
+ from .product_image import ProductImage as ProductImage
9
11
  from .payment_method import PaymentMethod as PaymentMethod
10
12
  from .checkout_intent import CheckoutIntent as CheckoutIntent
11
13
  from .checkout_session import CheckoutSession as CheckoutSession
12
14
  from .variant_selection import VariantSelection as VariantSelection
13
15
  from .base_checkout_intent import BaseCheckoutIntent as BaseCheckoutIntent
14
16
  from .payment_method_param import PaymentMethodParam as PaymentMethodParam
17
+ from .product_availability import ProductAvailability as ProductAvailability
18
+ from .product_lookup_params import ProductLookupParams as ProductLookupParams
15
19
  from .brand_retrieve_response import BrandRetrieveResponse as BrandRetrieveResponse
16
20
  from .variant_selection_param import VariantSelectionParam as VariantSelectionParam
17
21
  from .checkout_intent_list_params import CheckoutIntentListParams as CheckoutIntentListParams
@@ -2,6 +2,7 @@
2
2
 
3
3
  from typing import List, Optional
4
4
  from datetime import datetime
5
+ from typing_extensions import Literal
5
6
 
6
7
  from pydantic import Field as FieldInfo
7
8
 
@@ -17,6 +18,16 @@ class Constraints(BaseModel):
17
18
 
18
19
  max_total_price: Optional[int] = FieldInfo(alias="maxTotalPrice", default=None)
19
20
 
21
+ offer_retrieval_effort: Optional[Literal["max", "low"]] = FieldInfo(alias="offerRetrievalEffort", default=None)
22
+ """Controls how much effort the system should spend retrieving an offer.
23
+
24
+ - 'max': Full effort including AI agent fallback (slower, higher success rate)
25
+ - 'low': Fast API-only retrieval, fails if API unavailable (faster, lower
26
+ success rate)
27
+
28
+ Default: 'max'
29
+ """
30
+
20
31
 
21
32
  class BaseCheckoutIntent(BaseModel):
22
33
  id: str
@@ -3,7 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import Iterable
6
- from typing_extensions import Required, Annotated, TypedDict
6
+ from typing_extensions import Literal, Required, Annotated, TypedDict
7
7
 
8
8
  from ..._types import SequenceNotStr
9
9
  from ..._utils import PropertyInfo
@@ -60,3 +60,13 @@ class Constraints(TypedDict, total=False):
60
60
  max_shipping_price: Annotated[int, PropertyInfo(alias="maxShippingPrice")]
61
61
 
62
62
  max_total_price: Annotated[int, PropertyInfo(alias="maxTotalPrice")]
63
+
64
+ offer_retrieval_effort: Annotated[Literal["max", "low"], PropertyInfo(alias="offerRetrievalEffort")]
65
+ """Controls how much effort the system should spend retrieving an offer.
66
+
67
+ - 'max': Full effort including AI agent fallback (slower, higher success rate)
68
+ - 'low': Fast API-only retrieval, fails if API unavailable (faster, lower
69
+ success rate)
70
+
71
+ Default: 'max'
72
+ """
@@ -3,7 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import Iterable
6
- from typing_extensions import Required, Annotated, TypedDict
6
+ from typing_extensions import Literal, Required, Annotated, TypedDict
7
7
 
8
8
  from .._types import SequenceNotStr
9
9
  from .._utils import PropertyInfo
@@ -31,3 +31,13 @@ class Constraints(TypedDict, total=False):
31
31
  max_shipping_price: Annotated[int, PropertyInfo(alias="maxShippingPrice")]
32
32
 
33
33
  max_total_price: Annotated[int, PropertyInfo(alias="maxTotalPrice")]
34
+
35
+ offer_retrieval_effort: Annotated[Literal["max", "low"], PropertyInfo(alias="offerRetrievalEffort")]
36
+ """Controls how much effort the system should spend retrieving an offer.
37
+
38
+ - 'max': Full effort including AI agent fallback (slower, higher success rate)
39
+ - 'low': Fast API-only retrieval, fails if API unavailable (faster, lower
40
+ success rate)
41
+
42
+ Default: 'max'
43
+ """
@@ -3,7 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import Iterable
6
- from typing_extensions import Required, Annotated, TypedDict
6
+ from typing_extensions import Literal, Required, Annotated, TypedDict
7
7
 
8
8
  from .._types import SequenceNotStr
9
9
  from .._utils import PropertyInfo
@@ -34,3 +34,13 @@ class Constraints(TypedDict, total=False):
34
34
  max_shipping_price: Annotated[int, PropertyInfo(alias="maxShippingPrice")]
35
35
 
36
36
  max_total_price: Annotated[int, PropertyInfo(alias="maxTotalPrice")]
37
+
38
+ offer_retrieval_effort: Annotated[Literal["max", "low"], PropertyInfo(alias="offerRetrievalEffort")]
39
+ """Controls how much effort the system should spend retrieving an offer.
40
+
41
+ - 'max': Full effort including AI agent fallback (slower, higher success rate)
42
+ - 'low': Fast API-only retrieval, fails if API unavailable (faster, lower
43
+ success rate)
44
+
45
+ Default: 'max'
46
+ """
@@ -8,6 +8,6 @@ __all__ = ["Money"]
8
8
 
9
9
 
10
10
  class Money(BaseModel):
11
- amount_subunits: float = FieldInfo(alias="amountSubunits")
11
+ amount_subunits: int = FieldInfo(alias="amountSubunits")
12
12
 
13
13
  currency_code: str = FieldInfo(alias="currencyCode")
@@ -0,0 +1,38 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from .money import Money
6
+ from .._models import BaseModel
7
+ from .product_image import ProductImage
8
+ from .product_availability import ProductAvailability
9
+
10
+ __all__ = ["Product"]
11
+
12
+
13
+ class Product(BaseModel):
14
+ id: str
15
+
16
+ availability: ProductAvailability
17
+ """The availability status of a product.
18
+
19
+ - `in_stock`: Product is available for immediate purchase
20
+ - `out_of_stock`: Product is currently unavailable
21
+ - `preorder`: Product is available for pre-order before release
22
+ - `backorder`: Product is temporarily out of stock but can be ordered
23
+ - `unknown`: Availability could not be determined
24
+ """
25
+
26
+ brand: Optional[str] = None
27
+
28
+ description: Optional[str] = None
29
+
30
+ images: List[ProductImage]
31
+
32
+ name: str
33
+
34
+ price: Money
35
+
36
+ sku: Optional[str] = None
37
+
38
+ url: str
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["ProductAvailability"]
6
+
7
+ ProductAvailability: TypeAlias = Literal["in_stock", "out_of_stock", "preorder", "backorder", "unknown"]
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from pydantic import Field as FieldInfo
4
+
5
+ from .._models import BaseModel
6
+
7
+ __all__ = ["ProductImage"]
8
+
9
+
10
+ class ProductImage(BaseModel):
11
+ is_featured: bool = FieldInfo(alias="isFeatured")
12
+
13
+ url: str
@@ -0,0 +1,11 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["ProductLookupParams"]
8
+
9
+
10
+ class ProductLookupParams(TypedDict, total=False):
11
+ url: Required[str]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: checkout-intents
3
- Version: 0.11.0
3
+ Version: 0.13.0
4
4
  Summary: The official Python library for the Checkout Intents API
5
5
  Project-URL: Homepage, https://github.com/rye-com/checkout-intents-python
6
6
  Project-URL: Repository, https://github.com/rye-com/checkout-intents-python
@@ -1,7 +1,7 @@
1
1
  checkout_intents/__init__.py,sha256=5m0_Ktnyya4CJ0vdWZbAv7qZMeR1VnXqN_MJtH3RJTM,2833
2
- checkout_intents/_base_client.py,sha256=Y7hFug5-aMslho0bjwHHlk_gCxYhwuceCHEib1ByJxU,73419
3
- checkout_intents/_client.py,sha256=tClhspFXBkudspX5xGUhIy8MnG2caIt_5svkHi0qhCk,25244
4
- checkout_intents/_compat.py,sha256=DQBVORjFb33zch24jzkhM14msvnzY7mmSmgDLaVFUM8,6562
2
+ checkout_intents/_base_client.py,sha256=erZOquhcv6qskhIcqEJ2mLowvp4htuOuVBjTH4d2qlk,73668
3
+ checkout_intents/_client.py,sha256=SYYqLrhVffl0ellLIcJ602vNYYeYCbbN31mhH9IcdYs,26775
4
+ checkout_intents/_compat.py,sha256=teO44AYozpv2wFRrUi7brcZfGPpFSERQZ4fcdX6zVvs,6627
5
5
  checkout_intents/_constants.py,sha256=S14PFzyN9-I31wiV7SmIlL5Ga0MLHxdvegInGdXH7tM,462
6
6
  checkout_intents/_exceptions.py,sha256=oQn7Y6LzccgRDOtdg20l68bXtgf2tgVNKIrufJPDsuk,4252
7
7
  checkout_intents/_files.py,sha256=KnEzGi_O756MvKyJ4fOCW_u3JhOeWPQ4RsmDvqihDQU,3545
@@ -11,12 +11,13 @@ checkout_intents/_resource.py,sha256=X-eWffEBAgzTZvakLqNUjwgidMKfBFRmCeeOiuko4lg
11
11
  checkout_intents/_response.py,sha256=sLqxWBxzmVqPsdr2x5z6d87h8jb1U-Huvh2YFg-U6nE,28876
12
12
  checkout_intents/_streaming.py,sha256=y8SjBVAw2SDdVczQsP1T3dufnx4040C5fQqz-jGSvmg,10257
13
13
  checkout_intents/_types.py,sha256=8crq0wrqM8FR-GJ-nXMwjLlp0QEjfJT5H01fve7mjs4,7604
14
- checkout_intents/_version.py,sha256=oH4MSe6tCtyuBhXFqKM_xSWWc763yD4crOrrZ6szjVc,169
14
+ checkout_intents/_version.py,sha256=G9j4scvWEIXHxS3dIVTif_uRyTGHH9Pv4T7unuYbjNI,169
15
15
  checkout_intents/pagination.py,sha256=VMe3ftq-qqAku2ERRTOz7iZOoMQ_KKp2HIUl_I8oAXE,2908
16
16
  checkout_intents/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  checkout_intents/_utils/__init__.py,sha256=7fch0GT9zpNnErbciSpUNa-SjTxxjY6kxHxKMOM4AGs,2305
18
18
  checkout_intents/_utils/_compat.py,sha256=rN17SSvjMoQE1GmKFTLniRuG1sKj2WAD5VjdLPeRlF0,1231
19
19
  checkout_intents/_utils/_datetime_parse.py,sha256=bABTs0Bc6rabdFvnIwXjEhWL15TcRgWZ_6XGTqN8xUk,4204
20
+ checkout_intents/_utils/_json.py,sha256=bl95uuIWwgSfXX-gP1trK_lDAPwJujYfJ05Cxo2SEC4,962
20
21
  checkout_intents/_utils/_logs.py,sha256=dw1slZVPfWp0Z_jBGEQvr8TDY0uu3V7pJuexM_MG4pk,804
21
22
  checkout_intents/_utils/_proxy.py,sha256=aglnj2yBTDyGX9Akk2crZHrl10oqRmceUy2Zp008XEs,1975
22
23
  checkout_intents/_utils/_reflection.py,sha256=ZmGkIgT_PuwedyNBrrKGbxoWtkpytJNU1uU4QHnmEMU,1364
@@ -27,33 +28,38 @@ checkout_intents/_utils/_transform.py,sha256=NjCzmnfqYrsAikUHQig6N9QfuTVbKipuP3u
27
28
  checkout_intents/_utils/_typing.py,sha256=N_5PPuFNsaygbtA_npZd98SVN1LQQvFTKL6bkWPBZGU,4786
28
29
  checkout_intents/_utils/_utils.py,sha256=g9ftElB09kVT6EVfCIlD_nUfANhDX5_vZO61FDWoIQI,12334
29
30
  checkout_intents/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
30
- checkout_intents/resources/__init__.py,sha256=zjz0ozirEslXBkOUq4FwPABJaLruYwIXS7HZ-0am5S4,1557
31
+ checkout_intents/resources/__init__.py,sha256=TwKGeEBVHB9E7w-my6wFQVhH_KBKL72e8HsEEl1jcbw,2033
31
32
  checkout_intents/resources/brands.py,sha256=jJ5Jn2GG3MPkdKSg6_OG89dSQTaSGM9e7lBtovn-ABE,6389
32
- checkout_intents/resources/checkout_intents.py,sha256=gL9bDh0zexqLhDbae4awEHlxYXm0ztQfhBEcXpJH4DU,60268
33
+ checkout_intents/resources/checkout_intents.py,sha256=c2i_3b3l9LrnWEgL0MRrxVzlRv9mn_8QboLnF_8tiuM,62156
34
+ checkout_intents/resources/products.py,sha256=TO0VzX1JeAdByEIg0hLROzbZKDdBG3yS8JXi5mtSXKI,6029
33
35
  checkout_intents/resources/betas/__init__.py,sha256=DQKAlEq_xKd67cDJhihmsFJowbKXwPwZVi6zbGUykfQ,1120
34
36
  checkout_intents/resources/betas/betas.py,sha256=48PbcJQb3RFRJ2pbvr7aAR1KYi64bWBQgfxg6KtcqeU,3892
35
- checkout_intents/resources/betas/checkout_sessions.py,sha256=OT4o41rvVshRjAGY5hUs2E1K7XyvRv4pVEclafgoSCQ,8219
36
- checkout_intents/types/__init__.py,sha256=VlReDJoTw4Sps0a4Q5Bfm_ePZnfk61wVBNSgDR-rGVc,1363
37
- checkout_intents/types/base_checkout_intent.py,sha256=CgRzAWjEQXi1G4uCG6nqVXtwdHvT1BMP9UyEAxDZmTE,995
37
+ checkout_intents/resources/betas/checkout_sessions.py,sha256=0Q7IARFC7RUmTPge5HXZb4YY9LCizOX2jCNxsSx7kdI,8659
38
+ checkout_intents/types/__init__.py,sha256=qM17O5mEWQVyJACrKAys5TU4CsUUnSwiiAEt97t2A0w,1614
39
+ checkout_intents/types/base_checkout_intent.py,sha256=pbGjljfrAcC8IwRc6A1ty2M-mdSTfa1_s2ddgy1h2ww,1437
38
40
  checkout_intents/types/brand_retrieve_response.py,sha256=c8DCAJvHFHcrIOW6onHj5Y51Yba7zyOrRXZuGfqYkBc,561
39
41
  checkout_intents/types/buyer.py,sha256=Ov6mVD-Hjm9A-i9p2dWCXtniLhYpG_6jvy9DReC54YQ,530
40
42
  checkout_intents/types/buyer_param.py,sha256=DAtEoK4VSzv2qDBBlC4RRE4FbHd87pieTOlfRntbjqg,695
41
43
  checkout_intents/types/checkout_intent.py,sha256=LLTGXwIRdZmxaHRcHAYZ6DPWnZurym2yG0pOfmkQ2eg,2726
42
44
  checkout_intents/types/checkout_intent_add_payment_params.py,sha256=s8KKWVM3XainGTLCwdfUjb5vgS80o2_W0wwUwRCFbk0,479
43
45
  checkout_intents/types/checkout_intent_confirm_params.py,sha256=v_fcmuH5GoEwUJLbV7N9BDti63dg8z1nmhpcr4-1qcs,473
44
- checkout_intents/types/checkout_intent_create_params.py,sha256=rS83w5jDs6_6O4204B-YGXTbpH9rkATKLrgV8KwLnKA,1053
46
+ checkout_intents/types/checkout_intent_create_params.py,sha256=oYmkLLToBKcnvzIUEnXOb0K8iPfgCTInkWw8Rs1O4cc,1455
45
47
  checkout_intents/types/checkout_intent_list_params.py,sha256=zc8_xwBHChOcl7bTMSjU7ZbHKIyQGYeUy5UrxeloJj0,521
46
- checkout_intents/types/checkout_intent_purchase_params.py,sha256=TxT3yhTfaJF_vMt6w-oQk3d5fQfN1CtZ18QCiBWY0DU,1208
48
+ checkout_intents/types/checkout_intent_purchase_params.py,sha256=L_NSyWsifBxpZ29zCFBSMqqkHZ1fZQ_q3YnlZH6IlC0,1610
47
49
  checkout_intents/types/checkout_session.py,sha256=e1Ay_2GYO9Ybmz53S0Z0o3R4Et5Gm2kiS5wn1y1Ey3g,589
48
- checkout_intents/types/money.py,sha256=-AfFFrfnUy6cAaFykF_gWZQxDGlzA1r_dJzJZRxhUto,328
50
+ checkout_intents/types/money.py,sha256=tiB3lhLN-bHTkWrEA-11LuXiv-9SvF7WQyiru3mC7bE,326
49
51
  checkout_intents/types/offer.py,sha256=9nGYAlA3tEiRU9lvsktnVl6EWj5dLNr6K9LB8WprckI,985
50
52
  checkout_intents/types/payment_method.py,sha256=-v5-L5RPojm8IDrdAhIMGmhVb89vwqT1jhgb-ZWOG7Q,1069
51
53
  checkout_intents/types/payment_method_param.py,sha256=_yzwZ5nw7bStK4U2-1ybtpjdJz5funCOMN7MALtF0xk,1225
54
+ checkout_intents/types/product.py,sha256=jl8b4yezOyaLeyx7BgVHjPpT2nLSoEYMCm5-r-oKNtg,924
55
+ checkout_intents/types/product_availability.py,sha256=mzfVhS-KSXPgT4367qAEN0S3teGHPkNHQAy4FiA_BCc,277
56
+ checkout_intents/types/product_image.py,sha256=_iN7QsLuq4u3kywPkxLkdCkFFcYD3_n3uLem5NZ_yU4,289
57
+ checkout_intents/types/product_lookup_params.py,sha256=YFd1SWJoHifWr5jvZYT_KymSfFlf2Xc0h08eG5xIyuU,284
52
58
  checkout_intents/types/variant_selection.py,sha256=y6mlU-qGwDfE77mU-x1GTXkDsmn6vuPpy5lBYXqXCBw,259
53
59
  checkout_intents/types/variant_selection_param.py,sha256=ahwTmDVIUMV8jvpggEo2jDUTIm9xvXbntDxmIZqT2_k,355
54
60
  checkout_intents/types/betas/__init__.py,sha256=ZeKE1oI6DbXReHgxvn2kIS3G3_k8MH8a-o22ONpi5dc,226
55
- checkout_intents/types/betas/checkout_session_create_params.py,sha256=tfxZQyVfwqfwihaJDT2y9bl_6x867up072g_rtsjeqs,1602
56
- checkout_intents-0.11.0.dist-info/METADATA,sha256=Uz6DACSypO-jn15rWeRJeMOghBfFrPsucDYr5DTBDIs,24302
57
- checkout_intents-0.11.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
58
- checkout_intents-0.11.0.dist-info/licenses/LICENSE,sha256=BnK3I8R5OpT_XsQObbpssF9h8-B0aZaerlZjRgSPNpU,1056
59
- checkout_intents-0.11.0.dist-info/RECORD,,
61
+ checkout_intents/types/betas/checkout_session_create_params.py,sha256=TdxIvwfNSJ2QX28ugqgTscIwTSBhsp_YrUj8xCYVfMY,2004
62
+ checkout_intents-0.13.0.dist-info/METADATA,sha256=X8AJF7WVAsu0pj_cjUGnbddYPA6nlx_InOcQC_mp3bw,24302
63
+ checkout_intents-0.13.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
64
+ checkout_intents-0.13.0.dist-info/licenses/LICENSE,sha256=BnK3I8R5OpT_XsQObbpssF9h8-B0aZaerlZjRgSPNpU,1056
65
+ checkout_intents-0.13.0.dist-info/RECORD,,