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.
- checkout_intents/_base_client.py +134 -11
- checkout_intents/_client.py +4 -0
- checkout_intents/_models.py +16 -1
- checkout_intents/_types.py +9 -0
- checkout_intents/_version.py +1 -1
- checkout_intents/resources/betas/checkout_sessions.py +18 -4
- checkout_intents/resources/checkout_intents.py +70 -14
- checkout_intents/types/base_checkout_intent.py +12 -1
- checkout_intents/types/betas/checkout_session_create_params.py +12 -2
- checkout_intents/types/checkout_intent_create_params.py +12 -2
- checkout_intents/types/checkout_intent_purchase_params.py +12 -2
- {checkout_intents-0.10.0.dist-info → checkout_intents-0.12.0.dist-info}/METADATA +1 -1
- {checkout_intents-0.10.0.dist-info → checkout_intents-0.12.0.dist-info}/RECORD +15 -15
- {checkout_intents-0.10.0.dist-info → checkout_intents-0.12.0.dist-info}/WHEEL +0 -0
- {checkout_intents-0.10.0.dist-info → checkout_intents-0.12.0.dist-info}/licenses/LICENSE +0 -0
checkout_intents/_base_client.py
CHANGED
|
@@ -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(
|
|
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
|
|
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
|
-
|
|
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",
|
|
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
|
-
|
|
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(
|
checkout_intents/_client.py
CHANGED
|
@@ -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
|
checkout_intents/_models.py
CHANGED
|
@@ -3,7 +3,20 @@ from __future__ import annotations
|
|
|
3
3
|
import os
|
|
4
4
|
import inspect
|
|
5
5
|
import weakref
|
|
6
|
-
from typing import
|
|
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
|
checkout_intents/_types.py
CHANGED
|
@@ -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,
|
checkout_intents/_version.py
CHANGED
|
@@ -48,7 +48,7 @@ class CheckoutSessionsResource(SyncAPIResource):
|
|
|
48
48
|
self,
|
|
49
49
|
*,
|
|
50
50
|
product_url: str,
|
|
51
|
-
quantity:
|
|
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,
|
|
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:
|
|
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,
|
|
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:
|
|
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,
|
|
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,
|
|
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,
|
|
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:
|
|
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,
|
|
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:
|
|
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:
|
|
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,
|
|
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,
|
|
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,
|
|
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:
|
|
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,
|
|
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:
|
|
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:
|
|
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[
|
|
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[
|
|
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[
|
|
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.
|
|
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=
|
|
3
|
-
checkout_intents/_client.py,sha256=
|
|
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=
|
|
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=
|
|
14
|
-
checkout_intents/_version.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
56
|
-
checkout_intents-0.
|
|
57
|
-
checkout_intents-0.
|
|
58
|
-
checkout_intents-0.
|
|
59
|
-
checkout_intents-0.
|
|
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,,
|
|
File without changes
|
|
File without changes
|