ordercloud-python 2026.4.1__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 (114) hide show
  1. ordercloud/__init__.py +37 -0
  2. ordercloud/auth.py +136 -0
  3. ordercloud/client.py +211 -0
  4. ordercloud/config.py +42 -0
  5. ordercloud/errors.py +47 -0
  6. ordercloud/http.py +218 -0
  7. ordercloud/middleware.py +66 -0
  8. ordercloud/models/__init__.py +271 -0
  9. ordercloud/models/address.py +47 -0
  10. ordercloud/models/api_client.py +116 -0
  11. ordercloud/models/approval.py +73 -0
  12. ordercloud/models/assignments.py +402 -0
  13. ordercloud/models/auth_models.py +114 -0
  14. ordercloud/models/bundle.py +31 -0
  15. ordercloud/models/buyer.py +271 -0
  16. ordercloud/models/catalog.py +33 -0
  17. ordercloud/models/category.py +35 -0
  18. ordercloud/models/cost_center.py +27 -0
  19. ordercloud/models/credit_card.py +35 -0
  20. ordercloud/models/delivery.py +277 -0
  21. ordercloud/models/discount.py +63 -0
  22. ordercloud/models/integration.py +76 -0
  23. ordercloud/models/inventory_record.py +53 -0
  24. ordercloud/models/line_item.py +95 -0
  25. ordercloud/models/line_item_types.py +89 -0
  26. ordercloud/models/message_sender.py +80 -0
  27. ordercloud/models/misc.py +280 -0
  28. ordercloud/models/open_id_connect.py +47 -0
  29. ordercloud/models/order.py +477 -0
  30. ordercloud/models/order_return.py +92 -0
  31. ordercloud/models/payment.py +77 -0
  32. ordercloud/models/price_schedule.py +76 -0
  33. ordercloud/models/product.py +227 -0
  34. ordercloud/models/product_collection.py +186 -0
  35. ordercloud/models/promotion.py +297 -0
  36. ordercloud/models/security.py +89 -0
  37. ordercloud/models/shared.py +131 -0
  38. ordercloud/models/shipment.py +150 -0
  39. ordercloud/models/spec.py +67 -0
  40. ordercloud/models/spending_account.py +33 -0
  41. ordercloud/models/subscription.py +125 -0
  42. ordercloud/models/supplier.py +43 -0
  43. ordercloud/models/sync.py +172 -0
  44. ordercloud/models/user.py +207 -0
  45. ordercloud/models/user_group.py +27 -0
  46. ordercloud/models/webhook.py +58 -0
  47. ordercloud/py.typed +0 -0
  48. ordercloud/resources/__init__.py +65 -0
  49. ordercloud/resources/addresses.py +228 -0
  50. ordercloud/resources/admin_addresses.py +128 -0
  51. ordercloud/resources/admin_user_groups.py +185 -0
  52. ordercloud/resources/admin_users.py +150 -0
  53. ordercloud/resources/api_clients.py +308 -0
  54. ordercloud/resources/approval_rules.py +144 -0
  55. ordercloud/resources/base.py +145 -0
  56. ordercloud/resources/bundle_line_items.py +59 -0
  57. ordercloud/resources/bundle_subscription_items.py +54 -0
  58. ordercloud/resources/bundles.py +278 -0
  59. ordercloud/resources/buyer_groups.py +128 -0
  60. ordercloud/resources/buyers.py +164 -0
  61. ordercloud/resources/cart.py +613 -0
  62. ordercloud/resources/catalogs.py +311 -0
  63. ordercloud/resources/categories.py +392 -0
  64. ordercloud/resources/cost_centers.py +222 -0
  65. ordercloud/resources/credit_cards.py +227 -0
  66. ordercloud/resources/delivery_configurations.py +132 -0
  67. ordercloud/resources/discounts.py +201 -0
  68. ordercloud/resources/entity_syncs.py +534 -0
  69. ordercloud/resources/error_configs.py +71 -0
  70. ordercloud/resources/forgotten_credentials.py +74 -0
  71. ordercloud/resources/group_orders.py +28 -0
  72. ordercloud/resources/impersonation_configs.py +132 -0
  73. ordercloud/resources/incrementors.py +128 -0
  74. ordercloud/resources/integration_events.py +203 -0
  75. ordercloud/resources/inventory_integrations.py +65 -0
  76. ordercloud/resources/inventory_records.py +484 -0
  77. ordercloud/resources/line_items.py +262 -0
  78. ordercloud/resources/locales.py +203 -0
  79. ordercloud/resources/me.py +1882 -0
  80. ordercloud/resources/message_senders.py +261 -0
  81. ordercloud/resources/open_id_connects.py +128 -0
  82. ordercloud/resources/order_returns.py +306 -0
  83. ordercloud/resources/order_syncs.py +65 -0
  84. ordercloud/resources/orders.py +689 -0
  85. ordercloud/resources/payments.py +176 -0
  86. ordercloud/resources/price_schedules.py +164 -0
  87. ordercloud/resources/product_collections.py +116 -0
  88. ordercloud/resources/product_facets.py +128 -0
  89. ordercloud/resources/product_syncs.py +76 -0
  90. ordercloud/resources/products.py +454 -0
  91. ordercloud/resources/promotion_integrations.py +65 -0
  92. ordercloud/resources/promotions.py +203 -0
  93. ordercloud/resources/security_profiles.py +222 -0
  94. ordercloud/resources/seller_approval_rules.py +128 -0
  95. ordercloud/resources/shipments.py +256 -0
  96. ordercloud/resources/specs.py +313 -0
  97. ordercloud/resources/spending_accounts.py +227 -0
  98. ordercloud/resources/subscription_integrations.py +65 -0
  99. ordercloud/resources/subscription_items.py +146 -0
  100. ordercloud/resources/subscriptions.py +128 -0
  101. ordercloud/resources/supplier_addresses.py +144 -0
  102. ordercloud/resources/supplier_user_groups.py +210 -0
  103. ordercloud/resources/supplier_users.py +170 -0
  104. ordercloud/resources/suppliers.py +190 -0
  105. ordercloud/resources/tracking_events.py +130 -0
  106. ordercloud/resources/user_groups.py +210 -0
  107. ordercloud/resources/users.py +254 -0
  108. ordercloud/resources/webhooks.py +128 -0
  109. ordercloud/resources/xp_indices.py +77 -0
  110. ordercloud/sync_client.py +170 -0
  111. ordercloud_python-2026.4.1.dist-info/METADATA +552 -0
  112. ordercloud_python-2026.4.1.dist-info/RECORD +114 -0
  113. ordercloud_python-2026.4.1.dist-info/WHEEL +4 -0
  114. ordercloud_python-2026.4.1.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,164 @@
1
+ # GENERATED by tools/codegen — DO NOT EDIT
2
+ # Source: ordercloud-openapi-v3.json
3
+ """OrderCloud Buyers API resource."""
4
+
5
+ from __future__ import annotations
6
+ from typing import Any, Optional, Union
7
+
8
+ from ..models.buyer import Buyer, BuyerSupplier
9
+ from ..models.shared import ListPage
10
+ from .base import BaseResource
11
+
12
+ __all__ = ["BuyersResource"]
13
+
14
+
15
+ class BuyersResource(BaseResource):
16
+ """Operations on OrderCloud Buyers."""
17
+
18
+ async def list(
19
+ self,
20
+ *,
21
+ search: Optional[str] = None,
22
+ search_on: Optional[str] = None,
23
+ sort_by: Optional[str] = None,
24
+ page: Optional[int] = None,
25
+ page_size: Optional[int] = None,
26
+ filters: Optional[dict[str, Any]] = None,
27
+ ) -> ListPage[Buyer]:
28
+ """List buyers
29
+
30
+ Args:
31
+ search: Word or phrase to search for.
32
+ search_on: Comma-delimited list of fields to search on.
33
+ sort_by: Comma-delimited list of fields to sort by.
34
+ page: Page of results to return. When paginating through many items (> page 30), we recommend the "Last ID" method, as outlined in the Advanced Querying documentation.
35
+ page_size: Number of results to return per page.
36
+ filters: An object or dictionary representing key/value pairs to apply as filters. Valid keys are top-level properties of the returned model or 'xp.???'
37
+
38
+ Returns:
39
+ A paginated list of Buyer objects.
40
+ """
41
+ params = self._build_list_params(
42
+ search=search,
43
+ search_on=search_on,
44
+ sort_by=sort_by,
45
+ page=page,
46
+ page_size=page_size,
47
+ filters=filters,
48
+ )
49
+ resp = await self._http.get("/buyers", **params)
50
+ return self._parse_list(resp.json(), Buyer)
51
+
52
+ async def create(
53
+ self,
54
+ buyer: Union[Buyer, dict[str, Any]],
55
+ ) -> Buyer:
56
+ """Create a buyer
57
+
58
+ Args:
59
+ buyer: A ``Buyer`` model or dict. Required fields: Name.
60
+
61
+ Returns:
62
+ The Buyer object.
63
+ """
64
+ resp = await self._http.post("/buyers", json=self._serialize(buyer))
65
+ return Buyer(**resp.json())
66
+
67
+ async def get(
68
+ self,
69
+ buyer_id: str,
70
+ ) -> Buyer:
71
+ """Retrieve a buyer
72
+
73
+ Args:
74
+ buyer_id: ID of the buyer.
75
+
76
+ Returns:
77
+ The Buyer object.
78
+ """
79
+ resp = await self._http.get(f"/buyers/{buyer_id}")
80
+ return Buyer(**resp.json())
81
+
82
+ async def save(
83
+ self,
84
+ buyer_id: str,
85
+ buyer: Union[Buyer, dict[str, Any]],
86
+ ) -> Buyer:
87
+ """Create or update a buyer
88
+
89
+ Args:
90
+ buyer_id: ID of the buyer.
91
+ buyer: A ``Buyer`` model or dict. Required fields: Name.
92
+
93
+ Returns:
94
+ The Buyer object.
95
+ """
96
+ resp = await self._http.put(
97
+ f"/buyers/{buyer_id}",
98
+ json=self._serialize(buyer),
99
+ )
100
+ return Buyer(**resp.json())
101
+
102
+ async def delete(
103
+ self,
104
+ buyer_id: str,
105
+ ) -> None:
106
+ """Delete a buyer
107
+
108
+ Args:
109
+ buyer_id: ID of the buyer.
110
+ """
111
+ await self._http.delete(f"/buyers/{buyer_id}")
112
+
113
+ async def patch(
114
+ self,
115
+ buyer_id: str,
116
+ partial: dict[str, Any],
117
+ ) -> Buyer:
118
+ """Partially update a buyer
119
+
120
+ Args:
121
+ buyer_id: ID of the buyer.
122
+ partial: A dict of fields to update.
123
+
124
+ Returns:
125
+ The Buyer object.
126
+ """
127
+ resp = await self._http.patch(f"/buyers/{buyer_id}", json=partial)
128
+ return Buyer(**resp.json())
129
+
130
+ async def list_buyer_sellers(
131
+ self,
132
+ buyer_id: str,
133
+ *,
134
+ search: Optional[str] = None,
135
+ search_on: Optional[str] = None,
136
+ sort_by: Optional[str] = None,
137
+ page: Optional[int] = None,
138
+ page_size: Optional[int] = None,
139
+ filters: Optional[dict[str, Any]] = None,
140
+ ) -> ListPage[BuyerSupplier]:
141
+ """List sellers this buyer can purchase from
142
+
143
+ Args:
144
+ buyer_id: ID of the buyer.
145
+ search: Word or phrase to search for.
146
+ search_on: Comma-delimited list of fields to search on.
147
+ sort_by: Comma-delimited list of fields to sort by.
148
+ page: Page of results to return. When paginating through many items (> page 30), we recommend the "Last ID" method, as outlined in the Advanced Querying documentation.
149
+ page_size: Number of results to return per page.
150
+ filters: An object or dictionary representing key/value pairs to apply as filters. Valid keys are top-level properties of the returned model or 'xp.???'
151
+
152
+ Returns:
153
+ A paginated list of BuyerSupplier objects.
154
+ """
155
+ params = self._build_list_params(
156
+ search=search,
157
+ search_on=search_on,
158
+ sort_by=sort_by,
159
+ page=page,
160
+ page_size=page_size,
161
+ filters=filters,
162
+ )
163
+ resp = await self._http.get(f"/buyers/{buyer_id}/sellers", **params)
164
+ return self._parse_list(resp.json(), BuyerSupplier)