python-amazon-sp-api 1.9.39__py3-none-any.whl → 2.0.10__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 (163) hide show
  1. {python_amazon_sp_api-1.9.39.dist-info → python_amazon_sp_api-2.0.10.dist-info}/METADATA +44 -8
  2. python_amazon_sp_api-2.0.10.dist-info/RECORD +253 -0
  3. {python_amazon_sp_api-1.9.39.dist-info → python_amazon_sp_api-2.0.10.dist-info}/WHEEL +1 -1
  4. {python_amazon_sp_api-1.9.39.dist-info → python_amazon_sp_api-2.0.10.dist-info}/top_level.txt +0 -1
  5. sp_api/__version__.py +1 -1
  6. sp_api/api/__init__.py +9 -3
  7. sp_api/api/application_integrations/application_integrations.py +2 -2
  8. sp_api/api/catalog/catalog.py +3 -4
  9. sp_api/api/catalog_items/catalog_items.py +3 -6
  10. sp_api/api/customer_feedback/customer_feedback.py +110 -0
  11. sp_api/api/data_kiosk/data_kiosk.py +5 -6
  12. sp_api/api/easy_ship/easy_ship.py +5 -5
  13. sp_api/api/external_fulfillment/external_fulfillment.py +706 -0
  14. sp_api/api/feeds/feeds.py +11 -8
  15. sp_api/api/fulfillment_inbound/fulfillment_inbound.py +35 -2
  16. sp_api/api/inventories/inventories.py +2 -7
  17. sp_api/api/listings_items/listings_items.py +3 -24
  18. sp_api/api/messaging/messaging.py +42 -0
  19. sp_api/api/orders/orders.py +59 -3
  20. sp_api/api/orders/orders_2026_01_01.py +54 -0
  21. sp_api/api/product_fees/product_fees.py +31 -74
  22. sp_api/api/products/products.py +3 -1
  23. sp_api/api/products/products_definitions.py +11 -169
  24. sp_api/api/reports/reports.py +61 -96
  25. sp_api/api/sales/sales.py +2 -2
  26. sp_api/asyncio/api/__init__.py +167 -0
  27. sp_api/asyncio/api/amazon_warehousing_and_distribu/__init__.py +9 -0
  28. sp_api/asyncio/api/amazon_warehousing_and_distribu/amazon_warehousing_and_distribu.py +130 -0
  29. sp_api/asyncio/api/aplus_content/__init__.py +5 -0
  30. sp_api/asyncio/api/aplus_content/aplus_content.py +330 -0
  31. sp_api/asyncio/api/application_integrations/__init__.py +5 -0
  32. sp_api/asyncio/api/application_integrations/application_integrations.py +119 -0
  33. sp_api/asyncio/api/application_management/__init__.py +5 -0
  34. sp_api/asyncio/api/application_management/application_management.py +36 -0
  35. sp_api/asyncio/api/authorization/__init__.py +5 -0
  36. sp_api/asyncio/api/authorization/authorization.py +54 -0
  37. sp_api/asyncio/api/catalog/__init__.py +5 -0
  38. sp_api/asyncio/api/catalog/catalog.py +111 -0
  39. sp_api/asyncio/api/catalog_items/__init__.py +6 -0
  40. sp_api/asyncio/api/catalog_items/catalog_items.py +93 -0
  41. sp_api/asyncio/api/clients/__init__.py +1 -0
  42. sp_api/asyncio/api/customer_feedback/__init__.py +5 -0
  43. sp_api/asyncio/api/customer_feedback/customer_feedback.py +111 -0
  44. sp_api/asyncio/api/data_kiosk/__init__.py +5 -0
  45. sp_api/asyncio/api/data_kiosk/data_kiosk.py +236 -0
  46. sp_api/asyncio/api/easy_ship/__init__.py +5 -0
  47. sp_api/asyncio/api/easy_ship/easy_ship.py +191 -0
  48. sp_api/asyncio/api/external_fulfillment/__init__.py +5 -0
  49. sp_api/asyncio/api/external_fulfillment/external_fulfillment.py +706 -0
  50. sp_api/asyncio/api/fba_inbound_eligibility/__init__.py +5 -0
  51. sp_api/asyncio/api/fba_inbound_eligibility/fba_inbound_eligibility.py +96 -0
  52. sp_api/asyncio/api/fba_small_and_light/__init__.py +5 -0
  53. sp_api/asyncio/api/fba_small_and_light/fba_small_and_light.py +213 -0
  54. sp_api/asyncio/api/feeds/feeds.py +260 -0
  55. sp_api/asyncio/api/finances/finances.py +100 -0
  56. sp_api/asyncio/api/fulfillment_inbound/fulfillment_inbound.py +1798 -0
  57. sp_api/asyncio/api/fulfillment_outbound/fulfillment_outbound.py +736 -0
  58. sp_api/asyncio/api/inventories/inventories.py +74 -0
  59. sp_api/asyncio/api/listings_items/listings_items.py +170 -0
  60. sp_api/asyncio/api/listings_restrictions/listings_restrictions.py +36 -0
  61. sp_api/asyncio/api/merchant_fulfillment/__init__.py +0 -0
  62. sp_api/asyncio/api/merchant_fulfillment/merchant_fulfillment.py +384 -0
  63. sp_api/asyncio/api/messaging/__init__.py +0 -0
  64. sp_api/asyncio/api/messaging/messaging.py +511 -0
  65. sp_api/asyncio/api/models/__init__.py +4 -0
  66. sp_api/asyncio/api/notifications/__init__.py +0 -0
  67. sp_api/asyncio/api/notifications/notifications.py +295 -0
  68. sp_api/asyncio/api/orders/__init__.py +0 -0
  69. sp_api/asyncio/api/orders/orders.py +412 -0
  70. sp_api/asyncio/api/orders/orders_2026_01_01.py +40 -0
  71. sp_api/asyncio/api/overrides/__init__.py +1 -0
  72. sp_api/asyncio/api/product_fees/__init__.py +0 -0
  73. sp_api/asyncio/api/product_fees/product_fees.py +194 -0
  74. sp_api/asyncio/api/product_type_definitions/__init__.py +0 -0
  75. sp_api/asyncio/api/product_type_definitions/product_type_definitions.py +75 -0
  76. sp_api/asyncio/api/products/__init__.py +0 -0
  77. sp_api/asyncio/api/products/products.py +405 -0
  78. sp_api/asyncio/api/products/products_definitions.py +11 -0
  79. sp_api/asyncio/api/replenishment/__init__.py +0 -0
  80. sp_api/asyncio/api/replenishment/replenishment.py +121 -0
  81. sp_api/asyncio/api/reports/__init__.py +0 -0
  82. sp_api/asyncio/api/reports/reports.py +439 -0
  83. sp_api/asyncio/api/sales/__init__.py +0 -0
  84. sp_api/asyncio/api/sales/sales.py +93 -0
  85. sp_api/asyncio/api/sellers/__init__.py +0 -0
  86. sp_api/asyncio/api/sellers/sellers.py +70 -0
  87. sp_api/asyncio/api/services/__init__.py +0 -0
  88. sp_api/asyncio/api/services/services.py +218 -0
  89. sp_api/asyncio/api/shipping/__init__.py +0 -0
  90. sp_api/asyncio/api/shipping/shipping.py +459 -0
  91. sp_api/asyncio/api/shipping/shippingV2.py +651 -0
  92. sp_api/asyncio/api/solicitations/__init__.py +0 -0
  93. sp_api/asyncio/api/solicitations/solicitations.py +78 -0
  94. sp_api/asyncio/api/supply_sources/__init__.py +0 -0
  95. sp_api/asyncio/api/supply_sources/supply_sources.py +138 -0
  96. sp_api/asyncio/api/tokens/__init__.py +0 -0
  97. sp_api/asyncio/api/tokens/tokens.py +65 -0
  98. sp_api/asyncio/api/upload/__init__.py +0 -0
  99. sp_api/asyncio/api/upload/upload.py +18 -0
  100. sp_api/asyncio/api/vendor_direct_fulfillment_inventory/__init__.py +0 -0
  101. sp_api/asyncio/api/vendor_direct_fulfillment_inventory/vendor_direct_fulfillment_inventory.py +64 -0
  102. sp_api/asyncio/api/vendor_direct_fulfillment_orders/__init__.py +0 -0
  103. sp_api/asyncio/api/vendor_direct_fulfillment_orders/vendor_direct_fulfillment_orders.py +196 -0
  104. sp_api/asyncio/api/vendor_direct_fulfillment_payments/__init__.py +0 -0
  105. sp_api/asyncio/api/vendor_direct_fulfillment_payments/vendor_direct_fulfillment_payments.py +254 -0
  106. sp_api/asyncio/api/vendor_direct_fulfillment_shipping/__init__.py +0 -0
  107. sp_api/asyncio/api/vendor_direct_fulfillment_shipping/vendor_direct_fulfillment_shipping.py +627 -0
  108. sp_api/asyncio/api/vendor_direct_fulfillment_transactions/__init__.py +0 -0
  109. sp_api/asyncio/api/vendor_direct_fulfillment_transactions/vendor_direct_fulfillment_transactions.py +43 -0
  110. sp_api/asyncio/api/vendor_invoices/__init__.py +0 -0
  111. sp_api/asyncio/api/vendor_invoices/vendor_invoices.py +295 -0
  112. sp_api/asyncio/api/vendor_orders/__init__.py +0 -0
  113. sp_api/asyncio/api/vendor_orders/vendor_orders.py +210 -0
  114. sp_api/asyncio/api/vendor_shipments/__init__.py +0 -0
  115. sp_api/asyncio/api/vendor_shipments/vendor_shipments.py +118 -0
  116. sp_api/asyncio/api/vendor_transaction_status/__init__.py +0 -0
  117. sp_api/asyncio/api/vendor_transaction_status/vendor_transaction_status.py +41 -0
  118. sp_api/asyncio/auth/__init__.py +12 -0
  119. sp_api/asyncio/auth/access_token_client.py +145 -0
  120. sp_api/asyncio/auth/exceptions.py +5 -0
  121. sp_api/asyncio/base/__init__.py +53 -0
  122. sp_api/asyncio/base/_transport_httpx.py +50 -0
  123. sp_api/asyncio/base/base_client.py +8 -0
  124. sp_api/asyncio/base/client.py +169 -0
  125. sp_api/asyncio/util/__init__.py +29 -0
  126. sp_api/asyncio/util/key_maker.py +5 -0
  127. sp_api/asyncio/util/load_all_pages.py +55 -0
  128. sp_api/asyncio/util/load_date_bound.py +53 -0
  129. sp_api/asyncio/util/retry.py +88 -0
  130. sp_api/auth/_core.py +39 -0
  131. sp_api/auth/access_token_client.py +18 -29
  132. sp_api/base/ApiResponse.py +2 -2
  133. sp_api/base/_core.py +110 -0
  134. sp_api/base/_transport_httpx.py +39 -0
  135. sp_api/base/client.py +40 -63
  136. sp_api/base/helpers.py +1 -1
  137. sp_api/util/__init__.py +36 -0
  138. sp_api/util/params.py +57 -0
  139. sp_api/util/product_fees.py +40 -0
  140. sp_api/util/products_definitions.py +169 -0
  141. sp_api/util/report_document.py +154 -0
  142. python_amazon_sp_api-1.9.39.dist-info/RECORD +0 -148
  143. tests/api/finances/test_finances.py +0 -19
  144. tests/api/notifications/test_notifications.py +0 -26
  145. tests/api/orders/test_orders.py +0 -122
  146. tests/api/product_fees/product_fees.py +0 -49
  147. tests/api/reports/test_reports.py +0 -127
  148. tests/client/test_auth.py +0 -59
  149. tests/client/test_base.py +0 -163
  150. tests/client/test_credential_provider.py +0 -45
  151. tests/client/test_helpers.py +0 -142
  152. {python_amazon_sp_api-1.9.39.data → python_amazon_sp_api-2.0.10.data}/scripts/make_endpoint +0 -0
  153. {python_amazon_sp_api-1.9.39.dist-info → python_amazon_sp_api-2.0.10.dist-info}/licenses/LICENSE +0 -0
  154. {tests → sp_api/api/customer_feedback}/__init__.py +0 -0
  155. {tests/api → sp_api/api/external_fulfillment}/__init__.py +0 -0
  156. {tests/api/finances → sp_api/asyncio}/__init__.py +0 -0
  157. {tests/api/notifications → sp_api/asyncio/api/feeds}/__init__.py +0 -0
  158. {tests/api/orders → sp_api/asyncio/api/finances}/__init__.py +0 -0
  159. {tests/api/product_fees → sp_api/asyncio/api/fulfillment_inbound}/__init__.py +0 -0
  160. {tests/api/reports → sp_api/asyncio/api/fulfillment_outbound}/__init__.py +0 -0
  161. {tests/api/sellers → sp_api/asyncio/api/inventories}/__init__.py +0 -0
  162. {tests/client → sp_api/asyncio/api/listings_items}/__init__.py +0 -0
  163. /tests/api/sellers/test_sellers.py → /sp_api/asyncio/api/listings_restrictions/__init__.py +0 -0
@@ -0,0 +1,130 @@
1
+ import enum
2
+ import urllib.parse
3
+
4
+ from sp_api.base import ApiResponse, fill_query_params, sp_endpoint
5
+ from sp_api.asyncio.base import AsyncBaseClient
6
+
7
+
8
+ class AmazonWarehousingAndDistributionVersion(str, enum.Enum):
9
+ V_2024_05_09 = "2024-05-09"
10
+ LATEST = "2024-05-09"
11
+
12
+
13
+ class AmazonWarehousingAndDistribution(AsyncBaseClient):
14
+ """
15
+ AmazonWarehousingAndDistribu SP-API Client
16
+ :link:
17
+
18
+ The Selling Partner API for Amazon Warehousing and Distribution (AWD).
19
+ """
20
+
21
+ version: AmazonWarehousingAndDistributionVersion = (
22
+ AmazonWarehousingAndDistributionVersion.V_2024_05_09
23
+ )
24
+
25
+ def __init__(self, *args, **kwargs):
26
+ if "version" in kwargs:
27
+ self.version = kwargs.get(
28
+ "version", AmazonWarehousingAndDistributionVersion.V_2024_05_09
29
+ )
30
+ super().__init__(*args, **{**kwargs, "version": self.version})
31
+
32
+ @sp_endpoint("/awd/<version>/inboundShipments/{}", method="GET")
33
+ async def get_inbound_shipment(self, shipmentId, **kwargs) -> ApiResponse:
34
+ """
35
+ get_inbound_shipment(self, shipmentId, **kwargs) -> ApiResponse
36
+
37
+ Retrieves an AWD inbound shipment.
38
+
39
+ **Usage Plan:**
40
+
41
+ | Rate (requests per second) | Burst |
42
+ | ---- | ---- |
43
+ | 2 | 2 |
44
+
45
+ The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The table above indicates the default rate and burst values for this operation. Selling partners whose business demands require higher throughput may see higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api)
46
+
47
+ Args:
48
+
49
+ shipmentId:string | * REQUIRED ID for the shipment. A shipment contains the cases being inbounded.
50
+
51
+
52
+ Returns:
53
+ ApiResponse:
54
+ """
55
+
56
+ return await self._request(
57
+ fill_query_params(kwargs.pop("path"), shipmentId), params=kwargs
58
+ )
59
+
60
+ @sp_endpoint("/awd/<version>/inboundShipments", method="GET")
61
+ async def list_inbound_shipments(self, **kwargs) -> ApiResponse:
62
+ """
63
+ list_inbound_shipments(self, **kwargs) -> ApiResponse
64
+
65
+ Retrieves a summary for all the inbound AWD shipments associated with a merchant, with the ability to apply optional filters.
66
+
67
+ **Usage Plan:**
68
+
69
+ | Rate (requests per second) | Burst |
70
+ | ---- | ---- |
71
+ | 1 | 1 |
72
+
73
+ The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The table above indicates the default rate and burst values for this operation. Selling partners whose business demands require higher throughput may see higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api).
74
+
75
+ Args:
76
+
77
+ key sortBy:string | Field to sort results by. Required if `sortOrder` is provided.
78
+
79
+ key sortOrder:string | Sort the response in `ASCENDING` or `DESCENDING` order.
80
+
81
+ key shipmentStatus:string | Filter by inbound shipment status.
82
+
83
+ key updatedAfter:string | List the inbound shipments that were updated after a certain time (inclusive). The date must be in <a href='https://developer-docs.amazon.com/sp-api/docs/iso-8601'>ISO 8601</a> format.
84
+
85
+ key updatedBefore:string | List the inbound shipments that were updated before a certain time (inclusive). The date must be in <a href='https://developer-docs.amazon.com/sp-api/docs/iso-8601'>ISO 8601</a> format.
86
+
87
+ key maxResults:integer | Maximum number of results to return.
88
+
89
+ key nextToken:string | Token to retrieve the next set of paginated results.
90
+
91
+
92
+ Returns:
93
+ ApiResponse:
94
+ """
95
+
96
+ return await self._request(kwargs.pop("path"), params=kwargs)
97
+
98
+ @sp_endpoint("/awd/<version>/inventory", method="GET")
99
+ async def list_inventory(self, **kwargs) -> ApiResponse:
100
+ """
101
+ list_inventory(self, **kwargs) -> ApiResponse
102
+
103
+ Lists AWD inventory associated with a merchant with the ability to apply optional filters.
104
+
105
+ **Usage Plan:**
106
+
107
+ | Rate (requests per second) | Burst |
108
+ | ---- | ---- |
109
+ | 2 | 2 |
110
+
111
+ The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The table above indicates the default rate and burst values for this operation. Selling partners whose business demands require higher throughput may see higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api).
112
+
113
+ Args:
114
+
115
+ key sku:string | Filter by seller or merchant SKU for the item.
116
+
117
+ key sortOrder:string | Sort the response in `ASCENDING` or `DESCENDING` order.
118
+
119
+ key details:string | Set to `SHOW` to return summaries with additional inventory details. Defaults to `HIDE,` which returns only inventory summary totals.
120
+
121
+ key nextToken:string | Token to retrieve the next set of paginated results.
122
+
123
+ key maxResults:integer | Maximum number of results to return.
124
+
125
+
126
+ Returns:
127
+ ApiResponse:
128
+ """
129
+
130
+ return await self._request(kwargs.pop("path"), params=kwargs)
@@ -0,0 +1,5 @@
1
+ from .aplus_content import AplusContent
2
+
3
+ __all__ = [
4
+ "AplusContent",
5
+ ]
@@ -0,0 +1,330 @@
1
+ import urllib.parse
2
+
3
+ from sp_api.base import ApiResponse, fill_query_params, sp_endpoint
4
+ from sp_api.asyncio.base import AsyncBaseClient
5
+
6
+
7
+ class AplusContent(AsyncBaseClient):
8
+ """
9
+ AplusContent SP-API Client
10
+ :link:
11
+
12
+ With the A+ Content API, you can build applications that help selling partners add rich marketing content to their Amazon product detail pages. A+ content helps selling partners share their brand and product story, which helps buyers make informed purchasing decisions. Selling partners assemble content by choosing from content modules and adding images and text.
13
+ """
14
+
15
+ @sp_endpoint("/aplus/2020-11-01/contentDocuments", method="GET")
16
+ async def search_content_documents(self, **kwargs) -> ApiResponse:
17
+ """
18
+ search_content_documents(self, **kwargs) -> ApiResponse
19
+
20
+ Returns a list of all A+ Content documents assigned to a selling partner. This operation returns only the metadata of the A+ Content documents. Call the getContentDocument operation to get the actual contents of the A+ Content documents.
21
+
22
+ **Usage Plans:**
23
+
24
+
25
+ ====================================== ==============
26
+ Rate (requests per second) Burst
27
+ ====================================== ==============
28
+ 10 10
29
+ ====================================== ==============
30
+
31
+ The x-amzn-RateLimit-Limit response header returns the usage plan rate limits that were applied to the requested operation. Rate limits for some selling partners will vary from the default rate and burst shown in the table above. For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
32
+
33
+ Args:
34
+ key marketplaceId:string | * REQUIRED The identifier for the marketplace where the A+ Content is published.
35
+ key pageToken:string | A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations.
36
+
37
+ Returns:
38
+ ApiResponse:
39
+ """
40
+
41
+ return await self._request(kwargs.pop("path"), params=kwargs)
42
+
43
+ @sp_endpoint("/aplus/2020-11-01/contentDocuments", method="POST")
44
+ async def create_content_document(self, **kwargs) -> ApiResponse:
45
+ """
46
+ create_content_document(self, **kwargs) -> ApiResponse
47
+
48
+ Creates a new A+ Content document.
49
+
50
+ **Usage Plans:**
51
+
52
+
53
+ ====================================== ==============
54
+ Rate (requests per second) Burst
55
+ ====================================== ==============
56
+ 10 10
57
+ ====================================== ==============
58
+
59
+ The x-amzn-RateLimit-Limit response header returns the usage plan rate limits that were applied to the requested operation. Rate limits for some selling partners will vary from the default rate and burst shown in the table above. For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
60
+
61
+ Args:
62
+ key marketplaceId:string | * REQUIRED The identifier for the marketplace where the A+ Content is published.
63
+ postContentDocumentRequest: | * REQUIRED {'properties': {'contentDocument': {'$ref': '#/definitions/ContentDocument'}}, 'required': ['contentDocument'], 'type': 'object'}
64
+
65
+
66
+ Returns:
67
+ ApiResponse:
68
+ """
69
+
70
+ return await self._request(
71
+ kwargs.pop("path"),
72
+ data=kwargs.pop("body"),
73
+ params=kwargs,
74
+ add_marketplace=False,
75
+ )
76
+
77
+ @sp_endpoint("/aplus/2020-11-01/contentDocuments/{}", method="GET")
78
+ async def get_content_document(self, contentReferenceKey, **kwargs) -> ApiResponse:
79
+ """
80
+ get_content_document(self, contentReferenceKey, **kwargs) -> ApiResponse
81
+
82
+ Returns an A+ Content document, if available.
83
+
84
+ **Usage Plans:**
85
+
86
+
87
+ ====================================== ==============
88
+ Rate (requests per second) Burst
89
+ ====================================== ==============
90
+ 10 10
91
+ ====================================== ==============
92
+
93
+ The x-amzn-RateLimit-Limit response header returns the usage plan rate limits that were applied to the requested operation. Rate limits for some selling partners will vary from the default rate and burst shown in the table above. For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
94
+
95
+ Args:
96
+ contentReferenceKey:string | * REQUIRED The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier.
97
+ key marketplaceId:string | * REQUIRED The identifier for the marketplace where the A+ Content is published.
98
+ key includedDataSet:array | * REQUIRED The set of A+ Content data types to include in the response.
99
+
100
+
101
+ Returns:
102
+ ApiResponse:
103
+ """
104
+
105
+ return await self._request(
106
+ fill_query_params(kwargs.pop("path"), contentReferenceKey), params=kwargs
107
+ )
108
+
109
+ @sp_endpoint("/aplus/2020-11-01/contentDocuments/{}", method="POST")
110
+ async def update_content_document(self, contentReferenceKey, **kwargs) -> ApiResponse:
111
+ """
112
+ update_content_document(self, contentReferenceKey, **kwargs) -> ApiResponse
113
+
114
+ Updates an existing A+ Content document.
115
+
116
+
117
+ ====================================== ==============
118
+ Rate (requests per second) Burst
119
+ ====================================== ==============
120
+ 10 10
121
+ ====================================== ==============
122
+
123
+ The x-amzn-RateLimit-Limit response header returns the usage plan rate limits that were applied to the requested operation. Rate limits for some selling partners will vary from the default rate and burst shown in the table above. For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
124
+
125
+ Args:
126
+ contentReferenceKey:string | * REQUIRED The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier.
127
+ key marketplaceId:string | * REQUIRED The identifier for the marketplace where the A+ Content is published.
128
+ postContentDocumentRequest: | * REQUIRED {'properties': {'contentDocument': {'$ref': '#/definitions/ContentDocument'}}, 'required': ['contentDocument'], 'type': 'object'}
129
+
130
+ Returns:
131
+ ApiResponse:
132
+ """
133
+
134
+ return await self._request(
135
+ fill_query_params(kwargs.pop("path"), contentReferenceKey),
136
+ data=kwargs.pop("body"),
137
+ params=kwargs,
138
+ add_marketplace=False,
139
+ )
140
+
141
+ @sp_endpoint("/aplus/2020-11-01/contentDocuments/{}/asins", method="GET")
142
+ async def list_content_document_asin_relations(
143
+ self, contentReferenceKey, **kwargs
144
+ ) -> ApiResponse:
145
+ """
146
+ list_content_document_asin_relations(self, contentReferenceKey, **kwargs) -> ApiResponse
147
+
148
+ Returns a list of ASINs related to the specified A+ Content document, if available. If you do not include the asinSet parameter, the operation returns all ASINs related to the content document.
149
+
150
+
151
+ ====================================== ==============
152
+ Rate (requests per second) Burst
153
+ ====================================== ==============
154
+ 10 10
155
+ ====================================== ==============
156
+
157
+ The x-amzn-RateLimit-Limit response header returns the usage plan rate limits that were applied to the requested operation. Rate limits for some selling partners will vary from the default rate and burst shown in the table above. For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
158
+
159
+ Args:
160
+ contentReferenceKey:string | * REQUIRED The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier.
161
+ key marketplaceId:string | * REQUIRED The identifier for the marketplace where the A+ Content is published.
162
+ key includedDataSet:array | The set of A+ Content data types to include in the response. If you do not include this parameter, the operation returns the related ASINs without metadata.
163
+ key asinSet:array | The set of ASINs.
164
+ key pageToken:string | A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations.
165
+
166
+ Returns:
167
+ ApiResponse:
168
+ """
169
+
170
+ return await self._request(
171
+ fill_query_params(kwargs.pop("path"), contentReferenceKey), params=kwargs
172
+ )
173
+
174
+ @sp_endpoint("/aplus/2020-11-01/contentDocuments/{}/asins", method="POST")
175
+ async def post_content_document_asin_relations(
176
+ self, contentReferenceKey, **kwargs
177
+ ) -> ApiResponse:
178
+ """
179
+ post_content_document_asin_relations(self, contentReferenceKey, **kwargs) -> ApiResponse
180
+
181
+ Replaces all ASINs related to the specified A+ Content document, if available. This may add or remove ASINs, depending on the current set of related ASINs. Removing an ASIN has the side effect of suspending the content document from that ASIN.
182
+
183
+
184
+ ====================================== ==============
185
+ Rate (requests per second) Burst
186
+ ====================================== ==============
187
+ 10 10
188
+ ====================================== ==============
189
+
190
+ The x-amzn-RateLimit-Limit response header returns the usage plan rate limits that were applied to the requested operation. Rate limits for some selling partners will vary from the default rate and burst shown in the table above. For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
191
+
192
+ Args:
193
+ contentReferenceKey:string | * REQUIRED The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier.
194
+ key marketplaceId:string | * REQUIRED The identifier for the marketplace where the A+ Content is published.
195
+ postContentDocumentAsinRelationsRequest: | * REQUIRED {'properties': {'asinSet': {'$ref': '#/definitions/AsinSet'}}, 'required': ['asinSet'], 'type': 'object'}
196
+
197
+ Returns:
198
+ ApiResponse:
199
+ """
200
+
201
+ return await self._request(
202
+ fill_query_params(kwargs.pop("path"), contentReferenceKey),
203
+ data=kwargs.pop("body"),
204
+ params=kwargs,
205
+ add_marketplace=False,
206
+ )
207
+
208
+ @sp_endpoint("/aplus/2020-11-01/contentAsinValidations", method="POST")
209
+ async def validate_content_document_asin_relations(self, **kwargs) -> ApiResponse:
210
+ """
211
+ validate_content_document_asin_relations(self, **kwargs) -> ApiResponse
212
+
213
+ Checks if the A+ Content document is valid for use on a set of ASINs.
214
+
215
+
216
+ ====================================== ==============
217
+ Rate (requests per second) Burst
218
+ ====================================== ==============
219
+ 10 10
220
+ ====================================== ==============
221
+
222
+ The x-amzn-RateLimit-Limit response header returns the usage plan rate limits that were applied to the requested operation. Rate limits for some selling partners will vary from the default rate and burst shown in the table above. For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
223
+
224
+ Args:
225
+ key marketplaceId:string | * REQUIRED The identifier for the marketplace where the A+ Content is published.
226
+ key asinSet:array | The set of ASINs.
227
+ postContentDocumentRequest: | * REQUIRED {'properties': {'contentDocument': {'$ref': '#/definitions/ContentDocument'}}, 'required': ['contentDocument'], 'type': 'object'}
228
+
229
+
230
+ Returns:
231
+ ApiResponse:
232
+ """
233
+
234
+ return await self._request(
235
+ kwargs.pop("path"),
236
+ data=kwargs.pop("body"),
237
+ params=kwargs,
238
+ add_marketplace=False,
239
+ )
240
+
241
+ @sp_endpoint("/aplus/2020-11-01/contentPublishRecords", method="GET")
242
+ async def search_content_publish_records(self, **kwargs) -> ApiResponse:
243
+ """
244
+ search_content_publish_records(self, **kwargs) -> ApiResponse
245
+
246
+ Searches for A+ Content publishing records, if available.
247
+
248
+
249
+ ====================================== ==============
250
+ Rate (requests per second) Burst
251
+ ====================================== ==============
252
+ 10 10
253
+ ====================================== ==============
254
+
255
+ The x-amzn-RateLimit-Limit response header returns the usage plan rate limits that were applied to the requested operation. Rate limits for some selling partners will vary from the default rate and burst shown in the table above. For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
256
+
257
+ Args:
258
+ key marketplaceId:string | * REQUIRED The identifier for the marketplace where the A+ Content is published.
259
+ key asin:string | * REQUIRED The Amazon Standard Identification Number (ASIN).
260
+ key pageToken:string | A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations.
261
+
262
+ Returns:
263
+ ApiResponse:
264
+ """
265
+
266
+ return await self._request(kwargs.pop("path"), params=kwargs)
267
+
268
+ @sp_endpoint(
269
+ "/aplus/2020-11-01/contentDocuments/{}/approvalSubmissions", method="POST"
270
+ )
271
+ async def post_content_document_approval_submission(
272
+ self, contentReferenceKey, **kwargs
273
+ ) -> ApiResponse:
274
+ """
275
+ post_content_document_approval_submission(self, contentReferenceKey, **kwargs) -> ApiResponse
276
+
277
+ Submits an A+ Content document for review, approval, and publishing.
278
+
279
+
280
+ ====================================== ==============
281
+ Rate (requests per second) Burst
282
+ ====================================== ==============
283
+ 10 10
284
+ ====================================== ==============
285
+
286
+ The x-amzn-RateLimit-Limit response header returns the usage plan rate limits that were applied to the requested operation. Rate limits for some selling partners will vary from the default rate and burst shown in the table above. For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
287
+
288
+ Args:
289
+ contentReferenceKey:string | * REQUIRED The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier.
290
+ key marketplaceId:string | * REQUIRED The identifier for the marketplace where the A+ Content is published.
291
+
292
+ Returns:
293
+ ApiResponse:
294
+ """
295
+
296
+ return await self._request(
297
+ fill_query_params(kwargs.pop("path"), contentReferenceKey), params=kwargs
298
+ )
299
+
300
+ @sp_endpoint(
301
+ "/aplus/2020-11-01/contentDocuments/{}/suspendSubmissions", method="POST"
302
+ )
303
+ async def post_content_document_suspend_submission(
304
+ self, contentReferenceKey, **kwargs
305
+ ) -> ApiResponse:
306
+ """
307
+ post_content_document_suspend_submission(self, contentReferenceKey, **kwargs) -> ApiResponse
308
+
309
+ Submits a request to suspend visible A+ Content. This neither deletes the content document nor the ASIN relations.
310
+
311
+
312
+ ====================================== ==============
313
+ Rate (requests per second) Burst
314
+ ====================================== ==============
315
+ 10 10
316
+ ====================================== ==============
317
+
318
+ The x-amzn-RateLimit-Limit response header returns the usage plan rate limits that were applied to the requested operation. Rate limits for some selling partners will vary from the default rate and burst shown in the table above. For more information, see "Usage Plans and Rate Limits" in the Selling Partner API documentation.
319
+
320
+ Args:
321
+ contentReferenceKey:string | * REQUIRED The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier.
322
+ key marketplaceId:string | * REQUIRED The identifier for the marketplace where the A+ Content is published.
323
+
324
+ Returns:
325
+ ApiResponse:
326
+ """
327
+
328
+ return await self._request(
329
+ fill_query_params(kwargs.pop("path"), contentReferenceKey), data=kwargs
330
+ )
@@ -0,0 +1,5 @@
1
+ from .application_integrations import ApplicationIntegrations
2
+
3
+ __all__ = [
4
+ "ApplicationIntegrations",
5
+ ]
@@ -0,0 +1,119 @@
1
+ import urllib.parse
2
+
3
+ from sp_api.base import ApiResponse, fill_query_params, sp_endpoint
4
+ from sp_api.asyncio.base import AsyncBaseClient
5
+
6
+
7
+ class ApplicationIntegrations(AsyncBaseClient):
8
+ """
9
+ ApplicationIntegrations SP-API Client
10
+ :link:
11
+
12
+ With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central.
13
+ """
14
+
15
+
16
+ @sp_endpoint('/appIntegrations/2024-04-01/notifications', method='POST')
17
+ async def create_notification(self, **kwargs) -> ApiResponse:
18
+ """
19
+ create_notification(self, **kwargs) -> ApiResponse
20
+
21
+ Create a notification for sellers in Seller Central.
22
+
23
+ **Usage Plan:**
24
+
25
+ | Rate (requests per second) | Burst |
26
+ | ---- | ---- |
27
+ | 1 | 5 |
28
+
29
+ The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The preceding table indicates the default rate and burst values for this operation. Sellers whose business demands require higher throughput may have higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api).
30
+
31
+ Args:
32
+
33
+ body: | * REQUIRED {'description': 'The request for the `createNotification` operation.',
34
+ 'example': {'marketplaceId': 'ATVPDKIKX0DER', 'notificationParameters': {'priceValue': '200'}, 'templateId': 'PRICE_CHANGE'},
35
+ 'properties': {'marketplaceId': {'description': 'An encrypted marketplace identifier for the posted notification.', 'type': 'string'},
36
+ 'notificationParameters': {'$ref': '#/definitions/NotificationParameters', 'description': 'The parameters specified in the template you used to onboard your application.'},
37
+ 'templateId': {'description': 'The unique identifier of the notification template you used to onboard your application.', 'type': 'string'}},
38
+ 'required': ['templateId', 'notificationParameters'],
39
+ 'type': 'object'}
40
+
41
+
42
+ Returns:
43
+ ApiResponse:
44
+ """
45
+
46
+ return await self._request(kwargs.pop('path'), data=kwargs)
47
+
48
+
49
+ @sp_endpoint('/appIntegrations/2024-04-01/notifications/deletion', method='POST')
50
+ async def delete_notifications(self, **kwargs) -> ApiResponse:
51
+ """
52
+ delete_notifications(self, **kwargs) -> ApiResponse
53
+
54
+ Remove your application's notifications from the Appstore notifications dashboard.
55
+
56
+ **Usage Plan:**
57
+
58
+ | Rate (requests per second) | Burst |
59
+ | ---- | ---- |
60
+ | 1 | 5 |
61
+
62
+ The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The preceding table indicates the default rate and burst values for this operation. Sellers whose business demands require higher throughput may have higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api).
63
+
64
+ Args:
65
+
66
+ body: | * REQUIRED {'description': 'The request for the `deleteNotifications` operation.',
67
+ 'example': {'deletionReason': 'INCORRECT_CONTENT', 'templateId': 'PRICE_CHANGE'},
68
+ 'properties': {'deletionReason': {'description': 'The unique identifier that maps each notification status to a reason code.',
69
+ 'enum': ['INCORRECT_CONTENT', 'INCORRECT_RECIPIENT'],
70
+ 'type': 'string',
71
+ 'x-docgen-enum-table-extension': [{'description': "The notification's content is recognized to be incorrect.", 'value': 'INCORRECT_CONTENT'},
72
+ {'description': 'The notification was sent to incorrect seller.', 'value': 'INCORRECT_RECIPIENT'}]},
73
+ 'templateId': {'description': 'The unique identifier of the notification template you used to onboard your application.', 'type': 'string'}},
74
+ 'required': ['templateId', 'deletionReason'],
75
+ 'type': 'object'}
76
+
77
+
78
+ Returns:
79
+ ApiResponse:
80
+ """
81
+
82
+ return await self._request(kwargs.pop('path'), data=kwargs)
83
+
84
+
85
+ @sp_endpoint('/appIntegrations/2024-04-01/notifications/{}/feedback', method='POST')
86
+ async def record_action_feedback(self, notificationId, **kwargs) -> ApiResponse:
87
+ """
88
+ record_action_feedback(self, notificationId, **kwargs) -> ApiResponse
89
+
90
+ Records the seller's response to a notification.
91
+
92
+ **Usage Plan:**
93
+
94
+ | Rate (requests per second) | Burst |
95
+ | ---- | ---- |
96
+ | 1 | 5 |
97
+
98
+ The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The preceding table indicates the default rate and burst values for this operation. Sellers whose business demands require higher throughput may have higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api).
99
+
100
+ Args:
101
+
102
+ notificationId:string | * REQUIRED A `notificationId` uniquely identifies a notification.
103
+
104
+ body: | * REQUIRED {'description': 'The request for the `recordActionFeedback` operation.',
105
+ 'example': {'feedbackActionCode': 'SELLER_ACTION_COMPLETED'},
106
+ 'properties': {'feedbackActionCode': {'description': 'The unique identifier for each notification status.',
107
+ 'enum': ['SELLER_ACTION_COMPLETED'],
108
+ 'type': 'string',
109
+ 'x-docgen-enum-table-extension': [{'description': 'The seller completed the action attached to the posted notification.', 'value': 'SELLER_ACTION_COMPLETED'}]}},
110
+ 'required': ['feedbackActionCode'],
111
+ 'type': 'object'}
112
+
113
+
114
+ Returns:
115
+ ApiResponse:
116
+ """
117
+
118
+ return await self._request(fill_query_params(kwargs.pop('path'), notificationId), data=kwargs)
119
+
@@ -0,0 +1,5 @@
1
+ from .application_management import ApplicationManagement
2
+
3
+ __all__ = [
4
+ "ApplicationManagement",
5
+ ]
@@ -0,0 +1,36 @@
1
+ from sp_api.base import ApiResponse, fill_query_params, sp_endpoint
2
+ from sp_api.asyncio.base import AsyncBaseClient
3
+
4
+
5
+ class ApplicationManagement(AsyncBaseClient):
6
+ """
7
+ ApplicationManagement SP-API Client
8
+ :link:
9
+
10
+ The Selling Partner API for Application Management lets you programmatically update the client secret on registered applications.
11
+ """
12
+ grantless_scope = 'sellingpartnerapi::client_credential:rotation'
13
+
14
+ @sp_endpoint("/applications/2023-11-30/clientSecret", method="POST")
15
+ async def rotate_application_client_secret(self, **kwargs) -> ApiResponse:
16
+ """
17
+ rotate_application_client_secret(self, **kwargs) -> ApiResponse
18
+
19
+ Rotates application client secrets for a developer application. Developers must register a destination queue in the developer console before calling this operation. When this operation is called a new client secret is generated and sent to the developer-registered queue. For more information, refer to [Rotate your application client secret](https://developer-docs.amazon.com/sp-api/docs/application-management-api-v2023-11-30-use-case-guide).
20
+
21
+ **Usage Plan:**
22
+
23
+ | Rate (requests per second) | Burst |
24
+ | ---- | ---- |
25
+ | 0.0167 | 1 |
26
+
27
+ The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The table above indicates the default rate and burst values for this operation. Selling partners whose business demands require higher throughput may see higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api).
28
+
29
+ Args:
30
+
31
+
32
+ Returns:
33
+ ApiResponse:
34
+ """
35
+
36
+ return await self._request_grantless_operation(kwargs.pop("path"), data=kwargs)
@@ -0,0 +1,5 @@
1
+ from .authorization import Authorization
2
+
3
+ __all__ = [
4
+ "Authorization",
5
+ ]