checkout-intents 0.10.0__py3-none-any.whl → 0.12.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.
@@ -9,6 +9,7 @@ import asyncio
9
9
  import inspect
10
10
  import logging
11
11
  import platform
12
+ import warnings
12
13
  import email.utils
13
14
  from types import TracebackType
14
15
  from random import random
@@ -51,9 +52,11 @@ from ._types import (
51
52
  ResponseT,
52
53
  AnyMapping,
53
54
  PostParser,
55
+ BinaryTypes,
54
56
  RequestFiles,
55
57
  HttpxSendArgs,
56
58
  RequestOptions,
59
+ AsyncBinaryTypes,
57
60
  HttpxRequestFiles,
58
61
  ModelBuilderProtocol,
59
62
  not_given,
@@ -477,8 +480,19 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
477
480
  retries_taken: int = 0,
478
481
  ) -> httpx.Request:
479
482
  if log.isEnabledFor(logging.DEBUG):
480
- log.debug("Request options: %s", model_dump(options, exclude_unset=True))
481
-
483
+ log.debug(
484
+ "Request options: %s",
485
+ model_dump(
486
+ options,
487
+ exclude_unset=True,
488
+ # Pydantic v1 can't dump every type we support in content, so we exclude it for now.
489
+ exclude={
490
+ "content",
491
+ }
492
+ if PYDANTIC_V1
493
+ else {},
494
+ ),
495
+ )
482
496
  kwargs: dict[str, Any] = {}
483
497
 
484
498
  json_data = options.json_data
@@ -532,7 +546,13 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
532
546
  is_body_allowed = options.method.lower() != "get"
533
547
 
534
548
  if is_body_allowed:
535
- if isinstance(json_data, bytes):
549
+ if options.content is not None and json_data is not None:
550
+ raise TypeError("Passing both `content` and `json_data` is not supported")
551
+ if options.content is not None and files is not None:
552
+ raise TypeError("Passing both `content` and `files` is not supported")
553
+ if options.content is not None:
554
+ kwargs["content"] = options.content
555
+ elif isinstance(json_data, bytes):
536
556
  kwargs["content"] = json_data
537
557
  else:
538
558
  kwargs["json"] = json_data if is_given(json_data) else None
@@ -1194,6 +1214,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
1194
1214
  *,
1195
1215
  cast_to: Type[ResponseT],
1196
1216
  body: Body | None = None,
1217
+ content: BinaryTypes | None = None,
1197
1218
  options: RequestOptions = {},
1198
1219
  files: RequestFiles | None = None,
1199
1220
  stream: Literal[False] = False,
@@ -1206,6 +1227,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
1206
1227
  *,
1207
1228
  cast_to: Type[ResponseT],
1208
1229
  body: Body | None = None,
1230
+ content: BinaryTypes | None = None,
1209
1231
  options: RequestOptions = {},
1210
1232
  files: RequestFiles | None = None,
1211
1233
  stream: Literal[True],
@@ -1219,6 +1241,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
1219
1241
  *,
1220
1242
  cast_to: Type[ResponseT],
1221
1243
  body: Body | None = None,
1244
+ content: BinaryTypes | None = None,
1222
1245
  options: RequestOptions = {},
1223
1246
  files: RequestFiles | None = None,
1224
1247
  stream: bool,
@@ -1231,13 +1254,25 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
1231
1254
  *,
1232
1255
  cast_to: Type[ResponseT],
1233
1256
  body: Body | None = None,
1257
+ content: BinaryTypes | None = None,
1234
1258
  options: RequestOptions = {},
1235
1259
  files: RequestFiles | None = None,
1236
1260
  stream: bool = False,
1237
1261
  stream_cls: type[_StreamT] | None = None,
1238
1262
  ) -> ResponseT | _StreamT:
1263
+ if body is not None and content is not None:
1264
+ raise TypeError("Passing both `body` and `content` is not supported")
1265
+ if files is not None and content is not None:
1266
+ raise TypeError("Passing both `files` and `content` is not supported")
1267
+ if isinstance(body, bytes):
1268
+ warnings.warn(
1269
+ "Passing raw bytes as `body` is deprecated and will be removed in a future version. "
1270
+ "Please pass raw bytes via the `content` parameter instead.",
1271
+ DeprecationWarning,
1272
+ stacklevel=2,
1273
+ )
1239
1274
  opts = FinalRequestOptions.construct(
1240
- method="post", url=path, json_data=body, files=to_httpx_files(files), **options
1275
+ method="post", url=path, json_data=body, content=content, files=to_httpx_files(files), **options
1241
1276
  )
1242
1277
  return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
1243
1278
 
@@ -1247,11 +1282,23 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
1247
1282
  *,
1248
1283
  cast_to: Type[ResponseT],
1249
1284
  body: Body | None = None,
1285
+ content: BinaryTypes | None = None,
1250
1286
  files: RequestFiles | None = None,
1251
1287
  options: RequestOptions = {},
1252
1288
  ) -> ResponseT:
1289
+ if body is not None and content is not None:
1290
+ raise TypeError("Passing both `body` and `content` is not supported")
1291
+ if files is not None and content is not None:
1292
+ raise TypeError("Passing both `files` and `content` is not supported")
1293
+ if isinstance(body, bytes):
1294
+ warnings.warn(
1295
+ "Passing raw bytes as `body` is deprecated and will be removed in a future version. "
1296
+ "Please pass raw bytes via the `content` parameter instead.",
1297
+ DeprecationWarning,
1298
+ stacklevel=2,
1299
+ )
1253
1300
  opts = FinalRequestOptions.construct(
1254
- method="patch", url=path, json_data=body, files=to_httpx_files(files), **options
1301
+ method="patch", url=path, json_data=body, content=content, files=to_httpx_files(files), **options
1255
1302
  )
1256
1303
  return self.request(cast_to, opts)
1257
1304
 
@@ -1261,11 +1308,23 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
1261
1308
  *,
1262
1309
  cast_to: Type[ResponseT],
1263
1310
  body: Body | None = None,
1311
+ content: BinaryTypes | None = None,
1264
1312
  files: RequestFiles | None = None,
1265
1313
  options: RequestOptions = {},
1266
1314
  ) -> ResponseT:
1315
+ if body is not None and content is not None:
1316
+ raise TypeError("Passing both `body` and `content` is not supported")
1317
+ if files is not None and content is not None:
1318
+ raise TypeError("Passing both `files` and `content` is not supported")
1319
+ if isinstance(body, bytes):
1320
+ warnings.warn(
1321
+ "Passing raw bytes as `body` is deprecated and will be removed in a future version. "
1322
+ "Please pass raw bytes via the `content` parameter instead.",
1323
+ DeprecationWarning,
1324
+ stacklevel=2,
1325
+ )
1267
1326
  opts = FinalRequestOptions.construct(
1268
- method="put", url=path, json_data=body, files=to_httpx_files(files), **options
1327
+ method="put", url=path, json_data=body, content=content, files=to_httpx_files(files), **options
1269
1328
  )
1270
1329
  return self.request(cast_to, opts)
1271
1330
 
@@ -1275,9 +1334,19 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
1275
1334
  *,
1276
1335
  cast_to: Type[ResponseT],
1277
1336
  body: Body | None = None,
1337
+ content: BinaryTypes | None = None,
1278
1338
  options: RequestOptions = {},
1279
1339
  ) -> ResponseT:
1280
- opts = FinalRequestOptions.construct(method="delete", url=path, json_data=body, **options)
1340
+ if body is not None and content is not None:
1341
+ raise TypeError("Passing both `body` and `content` is not supported")
1342
+ if isinstance(body, bytes):
1343
+ warnings.warn(
1344
+ "Passing raw bytes as `body` is deprecated and will be removed in a future version. "
1345
+ "Please pass raw bytes via the `content` parameter instead.",
1346
+ DeprecationWarning,
1347
+ stacklevel=2,
1348
+ )
1349
+ opts = FinalRequestOptions.construct(method="delete", url=path, json_data=body, content=content, **options)
1281
1350
  return self.request(cast_to, opts)
1282
1351
 
1283
1352
  def get_api_list(
@@ -1717,6 +1786,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1717
1786
  *,
1718
1787
  cast_to: Type[ResponseT],
1719
1788
  body: Body | None = None,
1789
+ content: AsyncBinaryTypes | None = None,
1720
1790
  files: RequestFiles | None = None,
1721
1791
  options: RequestOptions = {},
1722
1792
  stream: Literal[False] = False,
@@ -1729,6 +1799,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1729
1799
  *,
1730
1800
  cast_to: Type[ResponseT],
1731
1801
  body: Body | None = None,
1802
+ content: AsyncBinaryTypes | None = None,
1732
1803
  files: RequestFiles | None = None,
1733
1804
  options: RequestOptions = {},
1734
1805
  stream: Literal[True],
@@ -1742,6 +1813,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1742
1813
  *,
1743
1814
  cast_to: Type[ResponseT],
1744
1815
  body: Body | None = None,
1816
+ content: AsyncBinaryTypes | None = None,
1745
1817
  files: RequestFiles | None = None,
1746
1818
  options: RequestOptions = {},
1747
1819
  stream: bool,
@@ -1754,13 +1826,25 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1754
1826
  *,
1755
1827
  cast_to: Type[ResponseT],
1756
1828
  body: Body | None = None,
1829
+ content: AsyncBinaryTypes | None = None,
1757
1830
  files: RequestFiles | None = None,
1758
1831
  options: RequestOptions = {},
1759
1832
  stream: bool = False,
1760
1833
  stream_cls: type[_AsyncStreamT] | None = None,
1761
1834
  ) -> ResponseT | _AsyncStreamT:
1835
+ if body is not None and content is not None:
1836
+ raise TypeError("Passing both `body` and `content` is not supported")
1837
+ if files is not None and content is not None:
1838
+ raise TypeError("Passing both `files` and `content` is not supported")
1839
+ if isinstance(body, bytes):
1840
+ warnings.warn(
1841
+ "Passing raw bytes as `body` is deprecated and will be removed in a future version. "
1842
+ "Please pass raw bytes via the `content` parameter instead.",
1843
+ DeprecationWarning,
1844
+ stacklevel=2,
1845
+ )
1762
1846
  opts = FinalRequestOptions.construct(
1763
- method="post", url=path, json_data=body, files=await async_to_httpx_files(files), **options
1847
+ method="post", url=path, json_data=body, content=content, files=await async_to_httpx_files(files), **options
1764
1848
  )
1765
1849
  return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)
1766
1850
 
@@ -1770,11 +1854,28 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1770
1854
  *,
1771
1855
  cast_to: Type[ResponseT],
1772
1856
  body: Body | None = None,
1857
+ content: AsyncBinaryTypes | None = None,
1773
1858
  files: RequestFiles | None = None,
1774
1859
  options: RequestOptions = {},
1775
1860
  ) -> ResponseT:
1861
+ if body is not None and content is not None:
1862
+ raise TypeError("Passing both `body` and `content` is not supported")
1863
+ if files is not None and content is not None:
1864
+ raise TypeError("Passing both `files` and `content` is not supported")
1865
+ if isinstance(body, bytes):
1866
+ warnings.warn(
1867
+ "Passing raw bytes as `body` is deprecated and will be removed in a future version. "
1868
+ "Please pass raw bytes via the `content` parameter instead.",
1869
+ DeprecationWarning,
1870
+ stacklevel=2,
1871
+ )
1776
1872
  opts = FinalRequestOptions.construct(
1777
- method="patch", url=path, json_data=body, files=await async_to_httpx_files(files), **options
1873
+ method="patch",
1874
+ url=path,
1875
+ json_data=body,
1876
+ content=content,
1877
+ files=await async_to_httpx_files(files),
1878
+ **options,
1778
1879
  )
1779
1880
  return await self.request(cast_to, opts)
1780
1881
 
@@ -1784,11 +1885,23 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1784
1885
  *,
1785
1886
  cast_to: Type[ResponseT],
1786
1887
  body: Body | None = None,
1888
+ content: AsyncBinaryTypes | None = None,
1787
1889
  files: RequestFiles | None = None,
1788
1890
  options: RequestOptions = {},
1789
1891
  ) -> ResponseT:
1892
+ if body is not None and content is not None:
1893
+ raise TypeError("Passing both `body` and `content` is not supported")
1894
+ if files is not None and content is not None:
1895
+ raise TypeError("Passing both `files` and `content` is not supported")
1896
+ if isinstance(body, bytes):
1897
+ warnings.warn(
1898
+ "Passing raw bytes as `body` is deprecated and will be removed in a future version. "
1899
+ "Please pass raw bytes via the `content` parameter instead.",
1900
+ DeprecationWarning,
1901
+ stacklevel=2,
1902
+ )
1790
1903
  opts = FinalRequestOptions.construct(
1791
- method="put", url=path, json_data=body, files=await async_to_httpx_files(files), **options
1904
+ method="put", url=path, json_data=body, content=content, files=await async_to_httpx_files(files), **options
1792
1905
  )
1793
1906
  return await self.request(cast_to, opts)
1794
1907
 
@@ -1798,9 +1911,19 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1798
1911
  *,
1799
1912
  cast_to: Type[ResponseT],
1800
1913
  body: Body | None = None,
1914
+ content: AsyncBinaryTypes | None = None,
1801
1915
  options: RequestOptions = {},
1802
1916
  ) -> ResponseT:
1803
- opts = FinalRequestOptions.construct(method="delete", url=path, json_data=body, **options)
1917
+ if body is not None and content is not None:
1918
+ raise TypeError("Passing both `body` and `content` is not supported")
1919
+ if isinstance(body, bytes):
1920
+ warnings.warn(
1921
+ "Passing raw bytes as `body` is deprecated and will be removed in a future version. "
1922
+ "Please pass raw bytes via the `content` parameter instead.",
1923
+ DeprecationWarning,
1924
+ stacklevel=2,
1925
+ )
1926
+ opts = FinalRequestOptions.construct(method="delete", url=path, json_data=body, content=content, **options)
1804
1927
  return await self.request(cast_to, opts)
1805
1928
 
1806
1929
  def get_api_list(
@@ -167,6 +167,8 @@ class CheckoutIntents(SyncAPIClient):
167
167
  _strict_response_validation=_strict_response_validation,
168
168
  )
169
169
 
170
+ self._idempotency_header = "Idempotency-Key"
171
+
170
172
  @cached_property
171
173
  def checkout_intents(self) -> CheckoutIntentsResource:
172
174
  from .resources.checkout_intents import CheckoutIntentsResource
@@ -396,6 +398,8 @@ class AsyncCheckoutIntents(AsyncAPIClient):
396
398
  _strict_response_validation=_strict_response_validation,
397
399
  )
398
400
 
401
+ self._idempotency_header = "Idempotency-Key"
402
+
399
403
  @cached_property
400
404
  def checkout_intents(self) -> AsyncCheckoutIntentsResource:
401
405
  from .resources.checkout_intents import AsyncCheckoutIntentsResource
@@ -3,7 +3,20 @@ from __future__ import annotations
3
3
  import os
4
4
  import inspect
5
5
  import weakref
6
- from typing import TYPE_CHECKING, Any, Type, Union, Generic, TypeVar, Callable, Optional, cast
6
+ from typing import (
7
+ IO,
8
+ TYPE_CHECKING,
9
+ Any,
10
+ Type,
11
+ Union,
12
+ Generic,
13
+ TypeVar,
14
+ Callable,
15
+ Iterable,
16
+ Optional,
17
+ AsyncIterable,
18
+ cast,
19
+ )
7
20
  from datetime import date, datetime
8
21
  from typing_extensions import (
9
22
  List,
@@ -787,6 +800,7 @@ class FinalRequestOptionsInput(TypedDict, total=False):
787
800
  timeout: float | Timeout | None
788
801
  files: HttpxRequestFiles | None
789
802
  idempotency_key: str
803
+ content: Union[bytes, bytearray, IO[bytes], Iterable[bytes], AsyncIterable[bytes], None]
790
804
  json_data: Body
791
805
  extra_json: AnyMapping
792
806
  follow_redirects: bool
@@ -805,6 +819,7 @@ class FinalRequestOptions(pydantic.BaseModel):
805
819
  post_parser: Union[Callable[[Any], Any], NotGiven] = NotGiven()
806
820
  follow_redirects: Union[bool, None] = None
807
821
 
822
+ content: Union[bytes, bytearray, IO[bytes], Iterable[bytes], AsyncIterable[bytes], None] = None
808
823
  # It should be noted that we cannot use `json` here as that would override
809
824
  # a BaseModel method in an incompatible fashion.
810
825
  json_data: Union[Body, None] = None
@@ -13,9 +13,11 @@ from typing import (
13
13
  Mapping,
14
14
  TypeVar,
15
15
  Callable,
16
+ Iterable,
16
17
  Iterator,
17
18
  Optional,
18
19
  Sequence,
20
+ AsyncIterable,
19
21
  )
20
22
  from typing_extensions import (
21
23
  Set,
@@ -56,6 +58,13 @@ if TYPE_CHECKING:
56
58
  else:
57
59
  Base64FileInput = Union[IO[bytes], PathLike]
58
60
  FileContent = Union[IO[bytes], bytes, PathLike] # PathLike is not subscriptable in Python 3.8.
61
+
62
+
63
+ # Used for sending raw binary data / streaming data in request bodies
64
+ # e.g. for file uploads without multipart encoding
65
+ BinaryTypes = Union[bytes, bytearray, IO[bytes], Iterable[bytes]]
66
+ AsyncBinaryTypes = Union[bytes, bytearray, IO[bytes], AsyncIterable[bytes]]
67
+
59
68
  FileTypes = Union[
60
69
  # file (or bytes)
61
70
  FileContent,
@@ -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.10.0" # x-release-please-version
4
+ __version__ = "0.12.0" # x-release-please-version
@@ -48,7 +48,7 @@ class CheckoutSessionsResource(SyncAPIResource):
48
48
  self,
49
49
  *,
50
50
  product_url: str,
51
- quantity: float,
51
+ quantity: int,
52
52
  buyer: checkout_session_create_params.Buyer | Omit = omit,
53
53
  constraints: checkout_session_create_params.Constraints | Omit = omit,
54
54
  promo_codes: SequenceNotStr[str] | Omit = omit,
@@ -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
  )
@@ -122,7 +129,7 @@ class AsyncCheckoutSessionsResource(AsyncAPIResource):
122
129
  self,
123
130
  *,
124
131
  product_url: str,
125
- quantity: float,
132
+ quantity: int,
126
133
  buyer: checkout_session_create_params.Buyer | Omit = omit,
127
134
  constraints: checkout_session_create_params.Constraints | Omit = omit,
128
135
  promo_codes: SequenceNotStr[str] | Omit = omit,
@@ -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
  )
@@ -70,7 +70,7 @@ class CheckoutIntentsResource(SyncAPIResource):
70
70
  *,
71
71
  buyer: BuyerParam,
72
72
  product_url: str,
73
- quantity: float,
73
+ quantity: int,
74
74
  constraints: checkout_intent_create_params.Constraints | Omit = omit,
75
75
  promo_codes: SequenceNotStr[str] | Omit = omit,
76
76
  variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
@@ -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
  ),
@@ -295,7 +316,7 @@ class CheckoutIntentsResource(SyncAPIResource):
295
316
  *,
296
317
  buyer: BuyerParam,
297
318
  product_url: str,
298
- quantity: float,
319
+ quantity: int,
299
320
  constraints: checkout_intent_purchase_params.Constraints | Omit = omit,
300
321
  promo_codes: SequenceNotStr[str] | Omit = omit,
301
322
  variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
@@ -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
  ),
@@ -563,7 +591,7 @@ class CheckoutIntentsResource(SyncAPIResource):
563
591
  *,
564
592
  buyer: BuyerParam,
565
593
  product_url: str,
566
- quantity: float,
594
+ quantity: int,
567
595
  variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
568
596
  poll_interval: float = 5.0,
569
597
  max_attempts: int = 120,
@@ -731,7 +759,7 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
731
759
  *,
732
760
  buyer: BuyerParam,
733
761
  product_url: str,
734
- quantity: float,
762
+ quantity: int,
735
763
  constraints: checkout_intent_create_params.Constraints | Omit = omit,
736
764
  promo_codes: SequenceNotStr[str] | Omit = omit,
737
765
  variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
@@ -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
  ),
@@ -956,7 +1005,7 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
956
1005
  *,
957
1006
  buyer: BuyerParam,
958
1007
  product_url: str,
959
- quantity: float,
1008
+ quantity: int,
960
1009
  constraints: checkout_intent_purchase_params.Constraints | Omit = omit,
961
1010
  promo_codes: SequenceNotStr[str] | Omit = omit,
962
1011
  variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
@@ -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
  ),
@@ -1224,7 +1280,7 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
1224
1280
  *,
1225
1281
  buyer: BuyerParam,
1226
1282
  product_url: str,
1227
- quantity: float,
1283
+ quantity: int,
1228
1284
  variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
1229
1285
  poll_interval: float = 5.0,
1230
1286
  max_attempts: int = 120,
@@ -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
@@ -27,7 +38,7 @@ class BaseCheckoutIntent(BaseModel):
27
38
 
28
39
  product_url: str = FieldInfo(alias="productUrl")
29
40
 
30
- quantity: float
41
+ quantity: int
31
42
 
32
43
  constraints: Optional[Constraints] = None
33
44
 
@@ -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
@@ -15,7 +15,7 @@ __all__ = ["CheckoutSessionCreateParams", "Buyer", "Constraints"]
15
15
  class CheckoutSessionCreateParams(TypedDict, total=False):
16
16
  product_url: Required[Annotated[str, PropertyInfo(alias="productUrl")]]
17
17
 
18
- quantity: Required[float]
18
+ quantity: Required[int]
19
19
 
20
20
  buyer: Buyer
21
21
  """
@@ -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
@@ -18,7 +18,7 @@ class CheckoutIntentCreateParams(TypedDict, total=False):
18
18
 
19
19
  product_url: Required[Annotated[str, PropertyInfo(alias="productUrl")]]
20
20
 
21
- quantity: Required[float]
21
+ quantity: Required[int]
22
22
 
23
23
  constraints: Constraints
24
24
 
@@ -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
@@ -21,7 +21,7 @@ class CheckoutIntentPurchaseParams(TypedDict, total=False):
21
21
 
22
22
  product_url: Required[Annotated[str, PropertyInfo(alias="productUrl")]]
23
23
 
24
- quantity: Required[float]
24
+ quantity: Required[int]
25
25
 
26
26
  constraints: Constraints
27
27
 
@@ -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
+ """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: checkout-intents
3
- Version: 0.10.0
3
+ Version: 0.12.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,17 +1,17 @@
1
1
  checkout_intents/__init__.py,sha256=5m0_Ktnyya4CJ0vdWZbAv7qZMeR1VnXqN_MJtH3RJTM,2833
2
- checkout_intents/_base_client.py,sha256=ve_gIFHs2dgQ-FduM6A7GxMihxAowCXVcsBYzf_k5_4,67257
3
- checkout_intents/_client.py,sha256=tClhspFXBkudspX5xGUhIy8MnG2caIt_5svkHi0qhCk,25244
2
+ checkout_intents/_base_client.py,sha256=Y7hFug5-aMslho0bjwHHlk_gCxYhwuceCHEib1ByJxU,73419
3
+ checkout_intents/_client.py,sha256=OohR5o_olFaqzXyYZg3AHxkorr9A-qGob2LxfQ210oo,25352
4
4
  checkout_intents/_compat.py,sha256=DQBVORjFb33zch24jzkhM14msvnzY7mmSmgDLaVFUM8,6562
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
8
- checkout_intents/_models.py,sha256=m6hDet9vdfyY7TuzbLCBYhMPoIN6hddOZp9qDZ-zfVU,31995
8
+ checkout_intents/_models.py,sha256=2mDFEHhVuMWY5cPIhZ9ON1hHDoLVevmuk9P8aezzdAQ,32270
9
9
  checkout_intents/_qs.py,sha256=craIKyvPktJ94cvf9zn8j8ekG9dWJzhWv0ob34lIOv4,4828
10
10
  checkout_intents/_resource.py,sha256=X-eWffEBAgzTZvakLqNUjwgidMKfBFRmCeeOiuko4lg,1154
11
11
  checkout_intents/_response.py,sha256=sLqxWBxzmVqPsdr2x5z6d87h8jb1U-Huvh2YFg-U6nE,28876
12
12
  checkout_intents/_streaming.py,sha256=y8SjBVAw2SDdVczQsP1T3dufnx4040C5fQqz-jGSvmg,10257
13
- checkout_intents/_types.py,sha256=PTRxqWPBW57h6JvfwcVuR42gIMpY4nwSZbqAtv85Ado,7305
14
- checkout_intents/_version.py,sha256=EdjvKcJ2eo9mIthyWvXKFUUvodLh3mBBrjEMnj2ZhnU,169
13
+ checkout_intents/_types.py,sha256=8crq0wrqM8FR-GJ-nXMwjLlp0QEjfJT5H01fve7mjs4,7604
14
+ checkout_intents/_version.py,sha256=7P92oFGIjJzAuOYvpVHm2iE0PZBtExbL2gNeeCE-zDI,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
@@ -29,21 +29,21 @@ checkout_intents/_utils/_utils.py,sha256=g9ftElB09kVT6EVfCIlD_nUfANhDX5_vZO61FDW
29
29
  checkout_intents/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
30
30
  checkout_intents/resources/__init__.py,sha256=zjz0ozirEslXBkOUq4FwPABJaLruYwIXS7HZ-0am5S4,1557
31
31
  checkout_intents/resources/brands.py,sha256=jJ5Jn2GG3MPkdKSg6_OG89dSQTaSGM9e7lBtovn-ABE,6389
32
- checkout_intents/resources/checkout_intents.py,sha256=CY1YZYBBdntsMmShiQxHN4oMI10Q_dES6IGHw7uBEJ0,60280
32
+ checkout_intents/resources/checkout_intents.py,sha256=c2i_3b3l9LrnWEgL0MRrxVzlRv9mn_8QboLnF_8tiuM,62156
33
33
  checkout_intents/resources/betas/__init__.py,sha256=DQKAlEq_xKd67cDJhihmsFJowbKXwPwZVi6zbGUykfQ,1120
34
34
  checkout_intents/resources/betas/betas.py,sha256=48PbcJQb3RFRJ2pbvr7aAR1KYi64bWBQgfxg6KtcqeU,3892
35
- checkout_intents/resources/betas/checkout_sessions.py,sha256=2TPHJLaYEnnmPDChC17UlEDOYaKjFK6ixtP_MbuIlqs,8223
35
+ checkout_intents/resources/betas/checkout_sessions.py,sha256=0Q7IARFC7RUmTPge5HXZb4YY9LCizOX2jCNxsSx7kdI,8659
36
36
  checkout_intents/types/__init__.py,sha256=VlReDJoTw4Sps0a4Q5Bfm_ePZnfk61wVBNSgDR-rGVc,1363
37
- checkout_intents/types/base_checkout_intent.py,sha256=0lS_qyJd8xz-DIukZEPKkEUl52wPs4CiXMOV7Aulc8M,997
37
+ checkout_intents/types/base_checkout_intent.py,sha256=pbGjljfrAcC8IwRc6A1ty2M-mdSTfa1_s2ddgy1h2ww,1437
38
38
  checkout_intents/types/brand_retrieve_response.py,sha256=c8DCAJvHFHcrIOW6onHj5Y51Yba7zyOrRXZuGfqYkBc,561
39
39
  checkout_intents/types/buyer.py,sha256=Ov6mVD-Hjm9A-i9p2dWCXtniLhYpG_6jvy9DReC54YQ,530
40
40
  checkout_intents/types/buyer_param.py,sha256=DAtEoK4VSzv2qDBBlC4RRE4FbHd87pieTOlfRntbjqg,695
41
41
  checkout_intents/types/checkout_intent.py,sha256=LLTGXwIRdZmxaHRcHAYZ6DPWnZurym2yG0pOfmkQ2eg,2726
42
42
  checkout_intents/types/checkout_intent_add_payment_params.py,sha256=s8KKWVM3XainGTLCwdfUjb5vgS80o2_W0wwUwRCFbk0,479
43
43
  checkout_intents/types/checkout_intent_confirm_params.py,sha256=v_fcmuH5GoEwUJLbV7N9BDti63dg8z1nmhpcr4-1qcs,473
44
- checkout_intents/types/checkout_intent_create_params.py,sha256=J5jIPp7PkRxv2-IQdb_-UMd8U1OF-Ub6cOQ5cZLPwSM,1055
44
+ checkout_intents/types/checkout_intent_create_params.py,sha256=oYmkLLToBKcnvzIUEnXOb0K8iPfgCTInkWw8Rs1O4cc,1455
45
45
  checkout_intents/types/checkout_intent_list_params.py,sha256=zc8_xwBHChOcl7bTMSjU7ZbHKIyQGYeUy5UrxeloJj0,521
46
- checkout_intents/types/checkout_intent_purchase_params.py,sha256=GSb1wJVAq0RiJmTNcvhqhIT0gpd7uU2FfhkWgin_QpE,1210
46
+ checkout_intents/types/checkout_intent_purchase_params.py,sha256=L_NSyWsifBxpZ29zCFBSMqqkHZ1fZQ_q3YnlZH6IlC0,1610
47
47
  checkout_intents/types/checkout_session.py,sha256=e1Ay_2GYO9Ybmz53S0Z0o3R4Et5Gm2kiS5wn1y1Ey3g,589
48
48
  checkout_intents/types/money.py,sha256=-AfFFrfnUy6cAaFykF_gWZQxDGlzA1r_dJzJZRxhUto,328
49
49
  checkout_intents/types/offer.py,sha256=9nGYAlA3tEiRU9lvsktnVl6EWj5dLNr6K9LB8WprckI,985
@@ -52,8 +52,8 @@ checkout_intents/types/payment_method_param.py,sha256=_yzwZ5nw7bStK4U2-1ybtpjdJz
52
52
  checkout_intents/types/variant_selection.py,sha256=y6mlU-qGwDfE77mU-x1GTXkDsmn6vuPpy5lBYXqXCBw,259
53
53
  checkout_intents/types/variant_selection_param.py,sha256=ahwTmDVIUMV8jvpggEo2jDUTIm9xvXbntDxmIZqT2_k,355
54
54
  checkout_intents/types/betas/__init__.py,sha256=ZeKE1oI6DbXReHgxvn2kIS3G3_k8MH8a-o22ONpi5dc,226
55
- checkout_intents/types/betas/checkout_session_create_params.py,sha256=SejFE3EyRfjOKL5Wm2U5juvZyAKLry4yuNaUNkBF1y8,1604
56
- checkout_intents-0.10.0.dist-info/METADATA,sha256=O_DF25hyjyf2zxb2gfq560Kk_g7V5BJr5UBHror4b0o,24302
57
- checkout_intents-0.10.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
58
- checkout_intents-0.10.0.dist-info/licenses/LICENSE,sha256=BnK3I8R5OpT_XsQObbpssF9h8-B0aZaerlZjRgSPNpU,1056
59
- checkout_intents-0.10.0.dist-info/RECORD,,
55
+ checkout_intents/types/betas/checkout_session_create_params.py,sha256=TdxIvwfNSJ2QX28ugqgTscIwTSBhsp_YrUj8xCYVfMY,2004
56
+ checkout_intents-0.12.0.dist-info/METADATA,sha256=t3lWU1acudByiR1zaQ_5ba5MxgNsJ2VJ-H_CVYqJ7Is,24302
57
+ checkout_intents-0.12.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
58
+ checkout_intents-0.12.0.dist-info/licenses/LICENSE,sha256=BnK3I8R5OpT_XsQObbpssF9h8-B0aZaerlZjRgSPNpU,1056
59
+ checkout_intents-0.12.0.dist-info/RECORD,,