python-amazon-sp-api 2.0.15__py3-none-any.whl → 2.1.3__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.
Files changed (214) hide show
  1. {python_amazon_sp_api-2.0.15.dist-info → python_amazon_sp_api-2.1.3.dist-info}/METADATA +7 -7
  2. python_amazon_sp_api-2.1.3.dist-info/RECORD +350 -0
  3. sp_api/__version__.py +1 -1
  4. sp_api/api/__init__.py +160 -4
  5. sp_api/api/amazon_warehousing_and_distribu/amazon_warehousing_and_distribu.py +85 -110
  6. sp_api/api/amazon_warehousing_and_distribu/amazon_warehousing_and_distribu_2024_05_09.py +456 -0
  7. sp_api/api/aplus_content/aplus_content.py +176 -125
  8. sp_api/api/application_integrations/application_integrations.py +59 -68
  9. sp_api/api/application_management/application_management.py +20 -13
  10. sp_api/api/authorization/authorization.py +8 -26
  11. sp_api/api/catalog/catalog.py +27 -61
  12. sp_api/api/catalog_items/catalog_items.py +108 -78
  13. sp_api/api/catalog_items/catalog_items_2020_12_01.py +86 -0
  14. sp_api/api/catalog_items/catalog_items_2022_04_01.py +89 -0
  15. sp_api/api/customer_feedback/customer_feedback.py +100 -0
  16. sp_api/api/data_kiosk/data_kiosk.py +80 -75
  17. sp_api/api/delivery_by_amazon/__init__.py +0 -0
  18. sp_api/api/delivery_by_amazon/delivery_by_amazon.py +92 -0
  19. sp_api/api/delivery_by_amazon/delivery_by_amazon_2022_07_01.py +81 -0
  20. sp_api/api/easy_ship/easy_ship.py +121 -111
  21. sp_api/api/external_fulfillment/external_fulfillment.py +211 -434
  22. sp_api/api/external_fulfillment/inventory.py +120 -0
  23. sp_api/api/external_fulfillment/inventory_2021_01_06.py +71 -0
  24. sp_api/api/external_fulfillment/inventory_2024_09_11.py +96 -0
  25. sp_api/api/external_fulfillment/returns.py +120 -0
  26. sp_api/api/external_fulfillment/returns_2021_08_19.py +88 -0
  27. sp_api/api/external_fulfillment/returns_2024_09_11.py +141 -0
  28. sp_api/api/external_fulfillment/shipping.py +120 -0
  29. sp_api/api/external_fulfillment/shipping_2021_01_06.py +256 -0
  30. sp_api/api/external_fulfillment/shipping_2024_09_11.py +233 -0
  31. sp_api/api/fba_inbound_eligibility/fba_inbound_eligibility.py +30 -24
  32. sp_api/api/fba_small_and_light/fba_small_and_light.py +60 -99
  33. sp_api/api/feeds/feeds.py +75 -245
  34. sp_api/api/feeds/feeds_2021_06_30.py +320 -0
  35. sp_api/api/finances/finances.py +123 -90
  36. sp_api/api/finances/finances_2024_06_01.py +71 -0
  37. sp_api/api/finances/finances_2024_06_19.py +114 -0
  38. sp_api/api/finances/finances_v0.py +116 -0
  39. sp_api/api/fulfillment_inbound/fulfillment_inbound.py +107 -1784
  40. sp_api/api/fulfillment_inbound/fulfillment_inbound_2024_03_20.py +1722 -0
  41. sp_api/api/fulfillment_inbound/fulfillment_inbound_v0.py +1384 -0
  42. sp_api/api/fulfillment_outbound/fulfillment_outbound.py +256 -480
  43. sp_api/api/inventories/inventories.py +79 -42
  44. sp_api/api/invoices/__init__.py +0 -0
  45. sp_api/api/invoices/invoices.py +92 -0
  46. sp_api/api/invoices/invoices_2024_06_19.py +344 -0
  47. sp_api/api/listings_items/listings_items.py +110 -163
  48. sp_api/api/listings_items/listings_items_2020_09_01.py +189 -0
  49. sp_api/api/listings_items/listings_items_2021_08_01.py +233 -0
  50. sp_api/api/listings_restrictions/listings_restrictions.py +23 -10
  51. sp_api/api/merchant_fulfillment/merchant_fulfillment.py +107 -222
  52. sp_api/api/messaging/messaging.py +184 -198
  53. sp_api/api/notifications/notifications.py +144 -106
  54. sp_api/api/orders/orders.py +9 -46
  55. sp_api/api/orders/orders_2026_01_01.py +19 -65
  56. sp_api/api/orders/orders_v0.py +152 -184
  57. sp_api/api/product_fees/product_fees.py +101 -75
  58. sp_api/api/product_type_definitions/product_type_definitions.py +47 -36
  59. sp_api/api/products/products.py +94 -386
  60. sp_api/api/products/products_2022_05_01.py +96 -0
  61. sp_api/api/products/products_v0.py +389 -0
  62. sp_api/api/replenishment/replenishment.py +58 -69
  63. sp_api/api/reports/reports.py +124 -157
  64. sp_api/api/sales/sales.py +22 -39
  65. sp_api/api/seller_wallet/__init__.py +0 -0
  66. sp_api/api/seller_wallet/seller_wallet.py +92 -0
  67. sp_api/api/seller_wallet/seller_wallet_2024_03_01.py +300 -0
  68. sp_api/api/sellers/sellers.py +15 -35
  69. sp_api/api/services/services.py +479 -82
  70. sp_api/api/shipment_invoicing/__init__.py +0 -0
  71. sp_api/api/shipment_invoicing/shipment_invoicing.py +92 -0
  72. sp_api/api/shipment_invoicing/shipment_invoicing_v0.py +101 -0
  73. sp_api/api/shipping/shipping.py +94 -440
  74. sp_api/api/shipping/shippingV2.py +183 -474
  75. sp_api/api/shipping/shipping_v1.py +330 -0
  76. sp_api/api/shipping/shipping_v2.py +723 -0
  77. sp_api/api/solicitations/solicitations.py +28 -18
  78. sp_api/api/supply_sources/supply_sources.py +67 -57
  79. sp_api/api/tokens/tokens.py +14 -35
  80. sp_api/api/vehicles/__init__.py +0 -0
  81. sp_api/api/vehicles/vehicles.py +92 -0
  82. sp_api/api/vehicles/vehicles_2024_11_01.py +33 -0
  83. sp_api/api/vendor_direct_fulfillment_inventory/vendor_direct_fulfillment_inventory.py +16 -29
  84. sp_api/api/vendor_direct_fulfillment_orders/vendor_direct_fulfillment_orders.py +116 -189
  85. sp_api/api/vendor_direct_fulfillment_orders/vendor_direct_fulfillment_orders_2021_12_28.py +114 -0
  86. sp_api/api/vendor_direct_fulfillment_orders/vendor_direct_fulfillment_orders_v1.py +114 -0
  87. sp_api/api/vendor_direct_fulfillment_payments/vendor_direct_fulfillment_payments.py +15 -225
  88. sp_api/api/vendor_direct_fulfillment_sandbox_test_data/__init__.py +0 -0
  89. sp_api/api/vendor_direct_fulfillment_sandbox_test_data/vendor_direct_fulfillment_sandbox_test_data.py +92 -0
  90. sp_api/api/vendor_direct_fulfillment_sandbox_test_data/vendor_direct_fulfillment_sandbox_test_data_2021_10_28.py +50 -0
  91. sp_api/api/vendor_direct_fulfillment_shipping/vendor_direct_fulfillment_shipping.py +122 -624
  92. sp_api/api/vendor_direct_fulfillment_shipping/vendor_direct_fulfillment_shipping_2021_12_28.py +390 -0
  93. sp_api/api/vendor_direct_fulfillment_shipping/vendor_direct_fulfillment_shipping_v1.py +320 -0
  94. sp_api/api/vendor_direct_fulfillment_transactions/vendor_direct_fulfillment_transactions.py +113 -29
  95. sp_api/api/vendor_direct_fulfillment_transactions/vendor_direct_fulfillment_transactions_2021_12_28.py +47 -0
  96. sp_api/api/vendor_direct_fulfillment_transactions/vendor_direct_fulfillment_transactions_v1.py +47 -0
  97. sp_api/api/vendor_invoices/vendor_invoices.py +15 -264
  98. sp_api/api/vendor_orders/vendor_orders.py +83 -131
  99. sp_api/api/vendor_shipments/vendor_shipments.py +149 -68
  100. sp_api/api/vendor_transaction_status/vendor_transaction_status.py +16 -11
  101. sp_api/asyncio/api/__init__.py +159 -4
  102. sp_api/asyncio/api/amazon_warehousing_and_distribu/amazon_warehousing_and_distribu.py +84 -110
  103. sp_api/asyncio/api/amazon_warehousing_and_distribu/amazon_warehousing_and_distribu_2024_05_09.py +457 -0
  104. sp_api/asyncio/api/aplus_content/aplus_content.py +176 -125
  105. sp_api/asyncio/api/application_integrations/application_integrations.py +59 -68
  106. sp_api/asyncio/api/application_management/application_management.py +20 -13
  107. sp_api/asyncio/api/authorization/authorization.py +8 -26
  108. sp_api/asyncio/api/catalog/catalog.py +27 -61
  109. sp_api/asyncio/api/catalog_items/catalog_items.py +94 -71
  110. sp_api/asyncio/api/catalog_items/catalog_items_2020_12_01.py +87 -0
  111. sp_api/asyncio/api/catalog_items/catalog_items_2022_04_01.py +90 -0
  112. sp_api/asyncio/api/customer_feedback/customer_feedback.py +100 -0
  113. sp_api/asyncio/api/data_kiosk/data_kiosk.py +80 -75
  114. sp_api/asyncio/api/delivery_by_amazon/__init__.py +0 -0
  115. sp_api/asyncio/api/delivery_by_amazon/delivery_by_amazon.py +92 -0
  116. sp_api/asyncio/api/delivery_by_amazon/delivery_by_amazon_2022_07_01.py +82 -0
  117. sp_api/asyncio/api/easy_ship/easy_ship.py +121 -111
  118. sp_api/asyncio/api/external_fulfillment/external_fulfillment.py +212 -435
  119. sp_api/asyncio/api/external_fulfillment/inventory.py +126 -0
  120. sp_api/asyncio/api/external_fulfillment/inventory_2021_01_06.py +73 -0
  121. sp_api/asyncio/api/external_fulfillment/inventory_2024_09_11.py +98 -0
  122. sp_api/asyncio/api/external_fulfillment/returns.py +124 -0
  123. sp_api/asyncio/api/external_fulfillment/returns_2021_08_19.py +90 -0
  124. sp_api/asyncio/api/external_fulfillment/returns_2024_09_11.py +143 -0
  125. sp_api/asyncio/api/external_fulfillment/shipping.py +124 -0
  126. sp_api/asyncio/api/external_fulfillment/shipping_2021_01_06.py +258 -0
  127. sp_api/asyncio/api/external_fulfillment/shipping_2024_09_11.py +235 -0
  128. sp_api/asyncio/api/fba_inbound_eligibility/fba_inbound_eligibility.py +31 -25
  129. sp_api/asyncio/api/fba_small_and_light/fba_small_and_light.py +61 -100
  130. sp_api/asyncio/api/feeds/feeds.py +75 -243
  131. sp_api/asyncio/api/feeds/feeds_2021_06_30.py +318 -0
  132. sp_api/asyncio/api/finances/finances.py +123 -91
  133. sp_api/asyncio/api/finances/finances_2024_06_01.py +72 -0
  134. sp_api/asyncio/api/finances/finances_2024_06_19.py +115 -0
  135. sp_api/asyncio/api/finances/finances_v0.py +117 -0
  136. sp_api/asyncio/api/fulfillment_inbound/fulfillment_inbound.py +107 -1785
  137. sp_api/asyncio/api/fulfillment_inbound/fulfillment_inbound_2024_03_20.py +1723 -0
  138. sp_api/asyncio/api/fulfillment_inbound/fulfillment_inbound_v0.py +1385 -0
  139. sp_api/asyncio/api/fulfillment_outbound/fulfillment_outbound.py +257 -481
  140. sp_api/asyncio/api/inventories/inventories.py +79 -42
  141. sp_api/asyncio/api/invoices/__init__.py +0 -0
  142. sp_api/asyncio/api/invoices/invoices.py +92 -0
  143. sp_api/asyncio/api/invoices/invoices_2024_06_19.py +345 -0
  144. sp_api/asyncio/api/listings_items/listings_items.py +109 -163
  145. sp_api/asyncio/api/listings_items/listings_items_2020_09_01.py +190 -0
  146. sp_api/asyncio/api/listings_items/listings_items_2021_08_01.py +233 -0
  147. sp_api/asyncio/api/listings_restrictions/listings_restrictions.py +23 -10
  148. sp_api/asyncio/api/merchant_fulfillment/merchant_fulfillment.py +110 -222
  149. sp_api/asyncio/api/messaging/messaging.py +185 -199
  150. sp_api/asyncio/api/notifications/notifications.py +145 -107
  151. sp_api/asyncio/api/orders/orders.py +9 -46
  152. sp_api/asyncio/api/orders/orders_2026_01_01.py +19 -65
  153. sp_api/asyncio/api/orders/orders_v0.py +152 -184
  154. sp_api/asyncio/api/product_fees/product_fees.py +101 -75
  155. sp_api/asyncio/api/product_type_definitions/product_type_definitions.py +47 -36
  156. sp_api/asyncio/api/products/products.py +94 -387
  157. sp_api/asyncio/api/products/products_2022_05_01.py +109 -0
  158. sp_api/asyncio/api/products/products_v0.py +388 -0
  159. sp_api/asyncio/api/replenishment/replenishment.py +59 -70
  160. sp_api/asyncio/api/reports/reports.py +124 -157
  161. sp_api/asyncio/api/sales/sales.py +22 -39
  162. sp_api/asyncio/api/seller_wallet/__init__.py +0 -0
  163. sp_api/asyncio/api/seller_wallet/seller_wallet.py +92 -0
  164. sp_api/asyncio/api/seller_wallet/seller_wallet_2024_03_01.py +301 -0
  165. sp_api/asyncio/api/sellers/sellers.py +16 -36
  166. sp_api/asyncio/api/services/services.py +479 -82
  167. sp_api/asyncio/api/shipment_invoicing/__init__.py +0 -0
  168. sp_api/asyncio/api/shipment_invoicing/shipment_invoicing.py +92 -0
  169. sp_api/asyncio/api/shipment_invoicing/shipment_invoicing_v0.py +102 -0
  170. sp_api/asyncio/api/shipping/shipping.py +94 -441
  171. sp_api/asyncio/api/shipping/shippingV2.py +181 -472
  172. sp_api/asyncio/api/shipping/shipping_v1.py +331 -0
  173. sp_api/asyncio/api/shipping/shipping_v2.py +717 -0
  174. sp_api/asyncio/api/solicitations/solicitations.py +29 -19
  175. sp_api/asyncio/api/supply_sources/supply_sources.py +67 -57
  176. sp_api/asyncio/api/tokens/tokens.py +14 -35
  177. sp_api/asyncio/api/vehicles/__init__.py +0 -0
  178. sp_api/asyncio/api/vehicles/vehicles.py +92 -0
  179. sp_api/asyncio/api/vehicles/vehicles_2024_11_01.py +34 -0
  180. sp_api/asyncio/api/vendor_direct_fulfillment_inventory/vendor_direct_fulfillment_inventory.py +16 -29
  181. sp_api/asyncio/api/vendor_direct_fulfillment_orders/vendor_direct_fulfillment_orders.py +120 -192
  182. sp_api/asyncio/api/vendor_direct_fulfillment_orders/vendor_direct_fulfillment_orders_2021_12_28.py +116 -0
  183. sp_api/asyncio/api/vendor_direct_fulfillment_orders/vendor_direct_fulfillment_orders_v1.py +115 -0
  184. sp_api/asyncio/api/vendor_direct_fulfillment_payments/vendor_direct_fulfillment_payments.py +15 -225
  185. sp_api/asyncio/api/vendor_direct_fulfillment_sandbox_test_data/__init__.py +0 -0
  186. sp_api/asyncio/api/vendor_direct_fulfillment_sandbox_test_data/vendor_direct_fulfillment_sandbox_test_data.py +92 -0
  187. sp_api/asyncio/api/vendor_direct_fulfillment_sandbox_test_data/vendor_direct_fulfillment_sandbox_test_data_2021_10_28.py +51 -0
  188. sp_api/asyncio/api/vendor_direct_fulfillment_shipping/vendor_direct_fulfillment_shipping.py +120 -623
  189. sp_api/asyncio/api/vendor_direct_fulfillment_shipping/vendor_direct_fulfillment_shipping_2021_12_28.py +392 -0
  190. sp_api/asyncio/api/vendor_direct_fulfillment_shipping/vendor_direct_fulfillment_shipping_v1.py +321 -0
  191. sp_api/asyncio/api/vendor_direct_fulfillment_transactions/vendor_direct_fulfillment_transactions.py +112 -29
  192. sp_api/asyncio/api/vendor_direct_fulfillment_transactions/vendor_direct_fulfillment_transactions_2021_12_28.py +49 -0
  193. sp_api/asyncio/api/vendor_direct_fulfillment_transactions/vendor_direct_fulfillment_transactions_v1.py +48 -0
  194. sp_api/asyncio/api/vendor_invoices/vendor_invoices.py +16 -265
  195. sp_api/asyncio/api/vendor_orders/vendor_orders.py +84 -132
  196. sp_api/asyncio/api/vendor_shipments/vendor_shipments.py +150 -69
  197. sp_api/asyncio/api/vendor_transaction_status/vendor_transaction_status.py +17 -12
  198. sp_api/asyncio/base/client.py +2 -2
  199. sp_api/asyncio/util/load_date_bound.py +1 -1
  200. sp_api/base/__init__.py +10 -0
  201. sp_api/base/_core.py +2 -2
  202. sp_api/base/client.py +3 -3
  203. sp_api/base/helpers.py +12 -1
  204. sp_api/base/marketplaces.py +6 -3
  205. sp_api/util/__init__.py +2 -0
  206. sp_api/util/load_date_bound.py +1 -1
  207. sp_api/util/versioned_client.py +45 -0
  208. python_amazon_sp_api-2.0.15.dist-info/RECORD +0 -255
  209. sp_api/asyncio/api/models/__init__.py +0 -4
  210. sp_api/asyncio/api/overrides/__init__.py +0 -1
  211. {python_amazon_sp_api-2.0.15.data → python_amazon_sp_api-2.1.3.data}/scripts/make_endpoint +0 -0
  212. {python_amazon_sp_api-2.0.15.dist-info → python_amazon_sp_api-2.1.3.dist-info}/WHEEL +0 -0
  213. {python_amazon_sp_api-2.0.15.dist-info → python_amazon_sp_api-2.1.3.dist-info}/licenses/LICENSE +0 -0
  214. {python_amazon_sp_api-2.0.15.dist-info → python_amazon_sp_api-2.1.3.dist-info}/top_level.txt +0 -0
@@ -1,458 +1,112 @@
1
- import urllib.parse
1
+ from __future__ import annotations
2
2
 
3
- from sp_api.base import Client, sp_endpoint, fill_query_params, ApiResponse
3
+ import enum
4
+ from typing import Any, Literal, TYPE_CHECKING, overload
5
+ from sp_api.util.versioned_client import VersionedClientMeta
4
6
 
7
+ from sp_api.base import Client
5
8
 
6
- class Shipping(Client):
7
- """
8
- Shipping SP-API Client
9
- :link:
10
-
11
- Provides programmatic access to Amazon Shipping APIs.
12
- """
13
-
14
- @sp_endpoint("/shipping/v1/shipments", method="POST")
15
- def create_shipment(self, **kwargs) -> ApiResponse:
16
- """
17
- create_shipment(self, **kwargs) -> ApiResponse
18
-
19
- Create a new shipment.
20
-
21
- **Usage Plan:**
22
-
23
- ====================================== ==============
24
- Rate (requests per second) Burst
25
- ====================================== ==============
26
- 5 15
27
- ====================================== ==============
28
-
29
- For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
30
-
31
- Args:
32
- body: {
33
- "clientReferenceId": "string",
34
- "shipTo": {
35
- "name": "string",
36
- "addressLine1": "string",
37
- "addressLine2": "string",
38
- "addressLine3": "string",
39
- "stateOrRegion": "string",
40
- "city": "string",
41
- "countryCode": "st",
42
- "postalCode": "string",
43
- "email": "string",
44
- "copyEmails": [
45
- "string"
46
- ],
47
- "phoneNumber": "string"
48
- },
49
- "shipFrom": {
50
- "name": "string",
51
- "addressLine1": "string",
52
- "addressLine2": "string",
53
- "addressLine3": "string",
54
- "stateOrRegion": "string",
55
- "city": "string",
56
- "countryCode": "st",
57
- "postalCode": "string",
58
- "email": "string",
59
- "copyEmails": [
60
- "string"
61
- ],
62
- "phoneNumber": "string"
63
- },
64
- "containers": [
65
- {
66
- "containerType": "PACKAGE",
67
- "containerReferenceId": "string",
68
- "value": {
69
- "value": 0,
70
- "unit": "str"
71
- },
72
- "dimensions": {
73
- "length": 0,
74
- "width": 0,
75
- "height": 0,
76
- "unit": "IN"
77
- },
78
- "items": [
79
- {
80
- "quantity": 0,
81
- "unitPrice": {
82
- "value": 0,
83
- "unit": "str"
84
- },
85
- "unitWeight": {
86
- "unit": "g",
87
- "value": 0
88
- },
89
- "title": "string"
90
- }
91
- ],
92
- "weight": {
93
- "unit": "g",
94
- "value": 0
95
- }
96
- }
97
- ]
98
- }
99
-
100
- Returns:
101
- ApiResponse:
102
- """
103
-
104
- return self._request(kwargs.pop("path"), data=kwargs)
105
-
106
- @sp_endpoint("/shipping/v1/shipments/{}", method="GET")
107
- def get_shipment(self, shipmentId, **kwargs) -> ApiResponse:
108
- """
109
- get_shipment(self, shipmentId, **kwargs) -> ApiResponse
110
-
111
- Return the entire shipment object for the shipmentId.
112
-
113
- **Usage Plan:**
114
-
115
- ====================================== ==============
116
- Rate (requests per second) Burst
117
- ====================================== ==============
118
- 5 15
119
- ====================================== ==============
120
-
121
- For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
122
-
123
- Args:
124
- shipmentId:string | * REQUIRED
125
-
126
- Returns:
127
- ApiResponse:
128
- """
129
-
130
- return self._request(
131
- fill_query_params(kwargs.pop("path"), shipmentId), params=kwargs
132
- )
133
-
134
- @sp_endpoint("/shipping/v1/shipments/{}/cancel", method="POST")
135
- def cancel_shipment(self, shipmentId, **kwargs) -> ApiResponse:
136
- """
137
- cancel_shipment(self, shipmentId, **kwargs) -> ApiResponse
138
-
139
- Cancel a shipment by the given shipmentId.
140
-
141
- **Usage Plan:**
142
-
143
-
144
- ====================================== ==============
145
- Rate (requests per second) Burst
146
- ====================================== ==============
147
- 5 15
148
- ====================================== ==============
149
-
150
- For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
151
-
152
- Args:
153
- shipmentId:string | * REQUIRED
154
-
155
- Returns:
156
- ApiResponse:
157
- """
158
-
159
- return self._request(
160
- fill_query_params(kwargs.pop("path"), shipmentId), data=kwargs
161
- )
162
-
163
- @sp_endpoint("/shipping/v1/shipments/{}/purchaseLabels", method="POST")
164
- def purchase_labels(self, shipmentId, **kwargs) -> ApiResponse:
165
- """
166
- purchase_labels(self, shipmentId, **kwargs) -> ApiResponse
167
-
168
- Purchase shipping labels based on a given rate.
169
-
170
- **Usage Plan:**
171
-
9
+ from .shipping_v1 import ShippingV1
10
+ from .shipping_v2 import ShippingV2
172
11
 
173
- ====================================== ==============
174
- Rate (requests per second) Burst
175
- ====================================== ==============
176
- 5 15
177
- ====================================== ==============
178
12
 
179
- For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
13
+ class ShippingVersion(str, enum.Enum):
14
+ V1 = "v1"
15
+ V2 = "v2"
16
+ LATEST = "v2"
180
17
 
181
- Args:
182
- shipmentId:string | * REQUIRED
183
- body: {
184
- "rateId": "string",
185
- "labelSpecification": {
186
- "labelFormat": "PNG",
187
- "labelStockSize": "4x6"
188
- }
189
- }
190
18
 
19
+ if TYPE_CHECKING:
191
20
 
192
- Returns:
193
- ApiResponse:
194
- """
21
+ class _ShippingMeta(VersionedClientMeta):
22
+ @overload
23
+ def __call__(
24
+ cls,
25
+ *args: Any,
26
+ version: Literal[ShippingVersion.V2, ShippingVersion.LATEST, "v2"],
27
+ **kwargs: Any,
28
+ ) -> ShippingV2: ...
195
29
 
196
- return self._request(
197
- fill_query_params(kwargs.pop("path"), shipmentId), data=kwargs
198
- )
30
+ @overload
31
+ def __call__(
32
+ cls,
33
+ *args: Any,
34
+ version: Literal[ShippingVersion.V1, "v1"],
35
+ **kwargs: Any,
36
+ ) -> ShippingV1: ...
199
37
 
200
- @sp_endpoint("/shipping/v1/shipments/{}/label", method="POST")
201
- def retrieve_shipping_label(self, shipmentId, **kwargs) -> ApiResponse:
202
- """
203
- retrieve_shipping_label(self, shipmentId, **kwargs) -> ApiResponse
38
+ @overload
39
+ def __call__(
40
+ cls,
41
+ *args: Any,
42
+ version: None = None,
43
+ **kwargs: Any,
44
+ ) -> ShippingV1: ...
204
45
 
205
- Retrieve shipping label based on the shipment id and tracking id.
46
+ @overload
47
+ def __call__(
48
+ cls,
49
+ *args: Any,
50
+ version: str | ShippingVersion,
51
+ **kwargs: Any,
52
+ ) -> Client: ...
206
53
 
207
- **Usage Plan:**
208
54
 
209
- ====================================== ==============
210
- Rate (requests per second) Burst
211
- ====================================== ==============
212
- 5 15
213
- ====================================== ==============
55
+ else:
56
+ _ShippingMeta = VersionedClientMeta
214
57
 
215
- For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
216
58
 
217
- Args:
218
- shipmentId:string | * REQUIRED
219
- trackingId:string | * REQUIRED
220
- body: {
221
- "labelSpecification": {
222
- "labelFormat": "PNG",
223
- "labelStockSize": "4x6"
224
- }
225
- }
59
+ class Shipping(Client, metaclass=_ShippingMeta):
60
+ """Shipping API client.
226
61
 
227
- Returns:
228
- ApiResponse:
229
- """
62
+ This class dispatches to a versioned Shipping API client.
230
63
 
231
- return self._request(
232
- fill_query_params(kwargs.pop("path"), shipmentId), data=kwargs
233
- )
234
-
235
- @sp_endpoint("/shipping/v1/purchaseShipment", method="POST")
236
- def purchase_shipment(self, **kwargs) -> ApiResponse:
237
- """
238
- purchase_shipment(self, **kwargs) -> ApiResponse
239
-
240
- Purchase shipping labels.
241
-
242
- **Usage Plan:**
243
-
244
- ====================================== ==============
245
- Rate (requests per second) Burst
246
- ====================================== ==============
247
- 5 15
248
- ====================================== ==============
249
-
250
- For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
251
-
252
- Args:
253
- body: {
254
- "clientReferenceId": "string",
255
- "shipTo": {
256
- "name": "string",
257
- "addressLine1": "string",
258
- "addressLine2": "string",
259
- "addressLine3": "string",
260
- "stateOrRegion": "string",
261
- "city": "string",
262
- "countryCode": "st",
263
- "postalCode": "string",
264
- "email": "string",
265
- "copyEmails": [
266
- "string"
267
- ],
268
- "phoneNumber": "string"
269
- },
270
- "shipFrom": {
271
- "name": "string",
272
- "addressLine1": "string",
273
- "addressLine2": "string",
274
- "addressLine3": "string",
275
- "stateOrRegion": "string",
276
- "city": "string",
277
- "countryCode": "st",
278
- "postalCode": "string",
279
- "email": "string",
280
- "copyEmails": [
281
- "string"
282
- ],
283
- "phoneNumber": "string"
284
- },
285
- "shipDate": "2019-08-24T14:15:22Z",
286
- "serviceType": "Amazon Shipping Ground",
287
- "containers": [
288
- {
289
- "containerType": "PACKAGE",
290
- "containerReferenceId": "string",
291
- "value": {
292
- "value": 0,
293
- "unit": "str"
294
- },
295
- "dimensions": {
296
- "length": 0,
297
- "width": 0,
298
- "height": 0,
299
- "unit": "IN"
300
- },
301
- "items": [
302
- {
303
- "quantity": 0,
304
- "unitPrice": {
305
- "value": 0,
306
- "unit": "str"
307
- },
308
- "unitWeight": {
309
- "unit": "g",
310
- "value": 0
311
- },
312
- "title": "string"
313
- }
314
- ],
315
- "weight": {
316
- "unit": "g",
317
- "value": 0
318
- }
319
- }
320
- ],
321
- "labelSpecification": {
322
- "labelFormat": "PNG",
323
- "labelStockSize": "4x6"
324
- }
325
- }
326
-
327
- Returns:
328
- ApiResponse:
329
- """
330
-
331
- return self._request(kwargs.pop("path"), data=kwargs)
332
-
333
- @sp_endpoint("/shipping/v1/rates", method="POST")
334
- def get_rates(self, **kwargs) -> ApiResponse:
335
- """
336
- get_rates(self, **kwargs) -> ApiResponse
337
-
338
- Get service rates.
339
-
340
- **Usage Plan:**
341
-
342
- ====================================== ==============
343
- Rate (requests per second) Burst
344
- ====================================== ==============
345
- 5 15
346
- ====================================== ==============
347
-
348
- For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
349
-
350
- Args:
351
- body:{
352
- "shipTo": {
353
- "name": "string",
354
- "addressLine1": "string",
355
- "addressLine2": "string",
356
- "addressLine3": "string",
357
- "stateOrRegion": "string",
358
- "city": "string",
359
- "countryCode": "st",
360
- "postalCode": "string",
361
- "email": "string",
362
- "copyEmails": [
363
- "string"
364
- ],
365
- "phoneNumber": "string"
366
- },
367
- "shipFrom": {
368
- "name": "string",
369
- "addressLine1": "string",
370
- "addressLine2": "string",
371
- "addressLine3": "string",
372
- "stateOrRegion": "string",
373
- "city": "string",
374
- "countryCode": "st",
375
- "postalCode": "string",
376
- "email": "string",
377
- "copyEmails": [
378
- "string"
379
- ],
380
- "phoneNumber": "string"
381
- },
382
- "serviceTypes": [
383
- "Amazon Shipping Ground"
384
- ],
385
- "shipDate": "2019-08-24T14:15:22Z",
386
- "containerSpecifications": [
387
- {
388
- "dimensions": {
389
- "length": 0,
390
- "width": 0,
391
- "height": 0,
392
- "unit": "IN"
393
- },
394
- "weight": {
395
- "unit": "g",
396
- "value": 0
397
- }
398
- }
399
- ]
400
- }
401
-
402
- Returns:
403
- ApiResponse:
404
- """
405
-
406
- return self._request(kwargs.pop("path"), data=kwargs)
407
-
408
- @sp_endpoint("/shipping/v1/account", method="GET")
409
- def get_account(self, **kwargs) -> ApiResponse:
410
- """
411
- get_account(self, **kwargs) -> ApiResponse
412
-
413
- Verify if the current account is valid.
414
-
415
- **Usage Plan:**
416
-
417
- ====================================== ==============
418
- Rate (requests per second) Burst
419
- ====================================== ==============
420
- 5 15
421
- ====================================== ==============
422
-
423
- For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
424
-
425
- Returns:
426
- ApiResponse:
427
- """
428
-
429
- return self._request(kwargs.pop("path"), params=kwargs)
430
-
431
- @sp_endpoint("/shipping/v1/tracking/{}", method="GET")
432
- def get_tracking_information(self, trackingId, **kwargs) -> ApiResponse:
433
- """
434
- get_tracking_information(self, trackingId, **kwargs) -> ApiResponse
435
-
436
- Return the tracking information of a shipment.
437
-
438
- **Usage Plan:**
439
-
440
-
441
- ====================================== ==============
442
- Rate (requests per second) Burst
443
- ====================================== ==============
444
- 1 1
445
- ====================================== ==============
446
-
447
- For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
448
-
449
- Args:
450
- trackingId:string | * REQUIRED
451
-
452
- Returns:
453
- ApiResponse:
454
- """
64
+ If you do not pass a version, the constructor returns the oldest supported implementation ("v1").
65
+ """
455
66
 
456
- return self._request(
457
- fill_query_params(kwargs.pop("path"), trackingId), params=kwargs
458
- )
67
+ if TYPE_CHECKING:
68
+ @overload
69
+ def __new__(
70
+ cls,
71
+ *args: Any,
72
+ version: Literal[ShippingVersion.V2, ShippingVersion.LATEST, "v2"],
73
+ **kwargs: Any,
74
+ ) -> ShippingV2: ...
75
+
76
+ @overload
77
+ def __new__(
78
+ cls,
79
+ *args: Any,
80
+ version: Literal[ShippingVersion.V1, "v1"],
81
+ **kwargs: Any,
82
+ ) -> ShippingV1: ...
83
+
84
+ @overload
85
+ def __new__(
86
+ cls,
87
+ *args: Any,
88
+ version: None = None,
89
+ **kwargs: Any,
90
+ ) -> ShippingV1: ...
91
+
92
+ @overload
93
+ def __new__(
94
+ cls,
95
+ *args: Any,
96
+ version: str | ShippingVersion,
97
+ **kwargs: Any,
98
+ ) -> Client: ...
99
+
100
+ _DISPATCH = True
101
+
102
+ _DEFAULT_VERSION = "v1"
103
+
104
+ _VERSION_MAP = {
105
+ "v1": ShippingV1,
106
+ "v2": ShippingV2,
107
+ }
108
+
109
+ _VERSION_ALIASES = {
110
+ "v1": "v1",
111
+ "v2": "v2",
112
+ }