mergepythonclient 2.1.1__py3-none-any.whl → 2.3.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.
Files changed (300) hide show
  1. merge/__init__.py +40 -4
  2. merge/client.py +118 -18
  3. merge/core/__init__.py +75 -21
  4. merge/core/client_wrapper.py +2 -2
  5. merge/core/force_multipart.py +4 -2
  6. merge/core/http_response.py +1 -1
  7. merge/core/unchecked_base_model.py +3 -3
  8. merge/resources/__init__.py +33 -1
  9. merge/resources/accounting/__init__.py +1242 -607
  10. merge/resources/accounting/client.py +835 -165
  11. merge/resources/accounting/resources/__init__.py +208 -92
  12. merge/resources/accounting/resources/accounting_periods/client.py +6 -2
  13. merge/resources/accounting/resources/accounts/__init__.py +36 -6
  14. merge/resources/accounting/resources/accounts/client.py +6 -2
  15. merge/resources/accounting/resources/accounts/types/__init__.py +34 -4
  16. merge/resources/accounting/resources/async_passthrough/__init__.py +26 -1
  17. merge/resources/accounting/resources/async_passthrough/types/__init__.py +26 -1
  18. merge/resources/accounting/resources/attachments/client.py +6 -2
  19. merge/resources/accounting/resources/audit_trail/client.py +6 -2
  20. merge/resources/accounting/resources/balance_sheets/client.py +6 -2
  21. merge/resources/accounting/resources/bank_feed_accounts/client.py +6 -2
  22. merge/resources/accounting/resources/bank_feed_transactions/client.py +6 -2
  23. merge/resources/accounting/resources/cash_flow_statements/client.py +6 -2
  24. merge/resources/accounting/resources/company_info/__init__.py +29 -1
  25. merge/resources/accounting/resources/company_info/client.py +6 -2
  26. merge/resources/accounting/resources/company_info/types/__init__.py +30 -2
  27. merge/resources/accounting/resources/contacts/__init__.py +29 -1
  28. merge/resources/accounting/resources/contacts/client.py +195 -4
  29. merge/resources/accounting/resources/contacts/raw_client.py +203 -0
  30. merge/resources/accounting/resources/contacts/types/__init__.py +30 -2
  31. merge/resources/accounting/resources/credit_notes/__init__.py +40 -8
  32. merge/resources/accounting/resources/credit_notes/client.py +6 -2
  33. merge/resources/accounting/resources/credit_notes/types/__init__.py +38 -6
  34. merge/resources/accounting/resources/employees/client.py +6 -2
  35. merge/resources/accounting/resources/expense_reports/__init__.py +34 -5
  36. merge/resources/accounting/resources/expense_reports/client.py +20 -6
  37. merge/resources/accounting/resources/expense_reports/types/__init__.py +32 -3
  38. merge/resources/accounting/resources/expenses/__init__.py +29 -1
  39. merge/resources/accounting/resources/expenses/client.py +18 -6
  40. merge/resources/accounting/resources/expenses/types/__init__.py +30 -2
  41. merge/resources/accounting/resources/general_ledger_transactions/__init__.py +29 -1
  42. merge/resources/accounting/resources/general_ledger_transactions/client.py +6 -2
  43. merge/resources/accounting/resources/general_ledger_transactions/types/__init__.py +30 -2
  44. merge/resources/accounting/resources/income_statements/client.py +6 -2
  45. merge/resources/accounting/resources/invoices/__init__.py +36 -6
  46. merge/resources/accounting/resources/invoices/client.py +18 -6
  47. merge/resources/accounting/resources/invoices/types/__init__.py +34 -4
  48. merge/resources/accounting/resources/issues/__init__.py +26 -1
  49. merge/resources/accounting/resources/issues/client.py +6 -2
  50. merge/resources/accounting/resources/issues/types/__init__.py +26 -1
  51. merge/resources/accounting/resources/items/__init__.py +26 -1
  52. merge/resources/accounting/resources/items/client.py +6 -2
  53. merge/resources/accounting/resources/items/types/__init__.py +30 -2
  54. merge/resources/accounting/resources/journal_entries/__init__.py +29 -1
  55. merge/resources/accounting/resources/journal_entries/client.py +18 -6
  56. merge/resources/accounting/resources/journal_entries/types/__init__.py +30 -2
  57. merge/resources/accounting/resources/link_token/__init__.py +26 -1
  58. merge/resources/accounting/resources/link_token/types/__init__.py +26 -1
  59. merge/resources/accounting/resources/linked_accounts/__init__.py +26 -1
  60. merge/resources/accounting/resources/linked_accounts/client.py +6 -2
  61. merge/resources/accounting/resources/linked_accounts/types/__init__.py +28 -1
  62. merge/resources/accounting/resources/payment_methods/client.py +6 -2
  63. merge/resources/accounting/resources/payment_terms/client.py +6 -2
  64. merge/resources/accounting/resources/payments/__init__.py +29 -1
  65. merge/resources/accounting/resources/payments/client.py +18 -6
  66. merge/resources/accounting/resources/payments/types/__init__.py +30 -2
  67. merge/resources/accounting/resources/projects/__init__.py +29 -1
  68. merge/resources/accounting/resources/projects/client.py +6 -2
  69. merge/resources/accounting/resources/projects/types/__init__.py +30 -2
  70. merge/resources/accounting/resources/purchase_orders/__init__.py +29 -1
  71. merge/resources/accounting/resources/purchase_orders/client.py +18 -6
  72. merge/resources/accounting/resources/purchase_orders/types/__init__.py +30 -2
  73. merge/resources/accounting/resources/sync_status/client.py +6 -2
  74. merge/resources/accounting/resources/tax_rates/client.py +6 -2
  75. merge/resources/accounting/resources/tracking_categories/client.py +6 -2
  76. merge/resources/accounting/resources/transactions/__init__.py +29 -1
  77. merge/resources/accounting/resources/transactions/client.py +6 -2
  78. merge/resources/accounting/resources/transactions/types/__init__.py +30 -2
  79. merge/resources/accounting/resources/transactions/types/transactions_list_request_expand.py +141 -0
  80. merge/resources/accounting/resources/transactions/types/transactions_retrieve_request_expand.py +141 -0
  81. merge/resources/accounting/resources/vendor_credits/__init__.py +29 -1
  82. merge/resources/accounting/resources/vendor_credits/client.py +6 -2
  83. merge/resources/accounting/resources/vendor_credits/types/__init__.py +30 -2
  84. merge/resources/accounting/types/__init__.py +1070 -519
  85. merge/resources/accounting/types/patched_contact_request.py +91 -0
  86. merge/resources/accounting/types/patched_contact_request_addresses_item.py +7 -0
  87. merge/resources/accounting/types/remote_field_class.py +1 -0
  88. merge/resources/ats/__init__.py +586 -282
  89. merge/resources/ats/client.py +590 -120
  90. merge/resources/ats/resources/__init__.py +150 -63
  91. merge/resources/ats/resources/activities/__init__.py +36 -6
  92. merge/resources/ats/resources/activities/client.py +6 -2
  93. merge/resources/ats/resources/activities/types/__init__.py +34 -4
  94. merge/resources/ats/resources/applications/__init__.py +29 -1
  95. merge/resources/ats/resources/applications/client.py +6 -2
  96. merge/resources/ats/resources/applications/types/__init__.py +30 -2
  97. merge/resources/ats/resources/async_passthrough/__init__.py +26 -1
  98. merge/resources/ats/resources/async_passthrough/types/__init__.py +26 -1
  99. merge/resources/ats/resources/attachments/client.py +6 -2
  100. merge/resources/ats/resources/audit_trail/client.py +6 -2
  101. merge/resources/ats/resources/candidates/__init__.py +30 -1
  102. merge/resources/ats/resources/candidates/client.py +6 -2
  103. merge/resources/ats/resources/candidates/types/__init__.py +32 -3
  104. merge/resources/ats/resources/departments/client.py +6 -2
  105. merge/resources/ats/resources/eeocs/__init__.py +36 -6
  106. merge/resources/ats/resources/eeocs/client.py +6 -2
  107. merge/resources/ats/resources/eeocs/types/__init__.py +34 -4
  108. merge/resources/ats/resources/interviews/__init__.py +29 -1
  109. merge/resources/ats/resources/interviews/client.py +6 -2
  110. merge/resources/ats/resources/interviews/types/__init__.py +30 -2
  111. merge/resources/ats/resources/issues/__init__.py +26 -1
  112. merge/resources/ats/resources/issues/client.py +6 -2
  113. merge/resources/ats/resources/issues/types/__init__.py +26 -1
  114. merge/resources/ats/resources/job_interview_stages/client.py +6 -2
  115. merge/resources/ats/resources/job_postings/__init__.py +26 -1
  116. merge/resources/ats/resources/job_postings/client.py +6 -2
  117. merge/resources/ats/resources/job_postings/types/__init__.py +26 -1
  118. merge/resources/ats/resources/jobs/__init__.py +36 -6
  119. merge/resources/ats/resources/jobs/client.py +8 -2
  120. merge/resources/ats/resources/jobs/types/__init__.py +34 -4
  121. merge/resources/ats/resources/link_token/__init__.py +26 -1
  122. merge/resources/ats/resources/link_token/types/__init__.py +26 -1
  123. merge/resources/ats/resources/linked_accounts/__init__.py +26 -1
  124. merge/resources/ats/resources/linked_accounts/client.py +6 -2
  125. merge/resources/ats/resources/linked_accounts/types/__init__.py +28 -1
  126. merge/resources/ats/resources/offers/__init__.py +26 -1
  127. merge/resources/ats/resources/offers/client.py +6 -2
  128. merge/resources/ats/resources/offers/types/__init__.py +30 -2
  129. merge/resources/ats/resources/offices/client.py +6 -2
  130. merge/resources/ats/resources/reject_reasons/client.py +6 -2
  131. merge/resources/ats/resources/scorecards/__init__.py +29 -1
  132. merge/resources/ats/resources/scorecards/client.py +6 -2
  133. merge/resources/ats/resources/scorecards/types/__init__.py +30 -2
  134. merge/resources/ats/resources/sync_status/client.py +6 -2
  135. merge/resources/ats/resources/tags/client.py +6 -2
  136. merge/resources/ats/resources/users/client.py +6 -2
  137. merge/resources/ats/types/__init__.py +462 -219
  138. merge/resources/ats/types/event_type_enum.py +4 -0
  139. merge/resources/crm/__init__.py +566 -272
  140. merge/resources/crm/client.py +556 -114
  141. merge/resources/crm/resources/__init__.py +121 -47
  142. merge/resources/crm/resources/accounts/client.py +12 -4
  143. merge/resources/crm/resources/association_types/client.py +2 -0
  144. merge/resources/crm/resources/associations/client.py +2 -0
  145. merge/resources/crm/resources/async_passthrough/__init__.py +26 -1
  146. merge/resources/crm/resources/async_passthrough/types/__init__.py +26 -1
  147. merge/resources/crm/resources/audit_trail/client.py +6 -2
  148. merge/resources/crm/resources/contacts/__init__.py +29 -1
  149. merge/resources/crm/resources/contacts/client.py +12 -4
  150. merge/resources/crm/resources/contacts/types/__init__.py +30 -2
  151. merge/resources/crm/resources/custom_object_classes/client.py +6 -2
  152. merge/resources/crm/resources/custom_objects/client.py +8 -2
  153. merge/resources/crm/resources/engagement_types/client.py +12 -4
  154. merge/resources/crm/resources/engagements/__init__.py +29 -1
  155. merge/resources/crm/resources/engagements/client.py +12 -4
  156. merge/resources/crm/resources/engagements/types/__init__.py +30 -2
  157. merge/resources/crm/resources/issues/__init__.py +26 -1
  158. merge/resources/crm/resources/issues/client.py +6 -2
  159. merge/resources/crm/resources/issues/types/__init__.py +26 -1
  160. merge/resources/crm/resources/leads/__init__.py +26 -1
  161. merge/resources/crm/resources/leads/client.py +12 -4
  162. merge/resources/crm/resources/leads/types/__init__.py +30 -2
  163. merge/resources/crm/resources/link_token/__init__.py +26 -1
  164. merge/resources/crm/resources/link_token/types/__init__.py +26 -1
  165. merge/resources/crm/resources/linked_accounts/__init__.py +26 -1
  166. merge/resources/crm/resources/linked_accounts/client.py +6 -2
  167. merge/resources/crm/resources/linked_accounts/types/__init__.py +28 -1
  168. merge/resources/crm/resources/notes/__init__.py +26 -1
  169. merge/resources/crm/resources/notes/client.py +12 -4
  170. merge/resources/crm/resources/notes/types/__init__.py +30 -2
  171. merge/resources/crm/resources/opportunities/__init__.py +34 -1
  172. merge/resources/crm/resources/opportunities/client.py +12 -4
  173. merge/resources/crm/resources/opportunities/types/__init__.py +32 -3
  174. merge/resources/crm/resources/stages/client.py +12 -4
  175. merge/resources/crm/resources/sync_status/client.py +6 -2
  176. merge/resources/crm/resources/tasks/__init__.py +26 -1
  177. merge/resources/crm/resources/tasks/client.py +12 -4
  178. merge/resources/crm/resources/tasks/types/__init__.py +30 -2
  179. merge/resources/crm/resources/users/client.py +12 -4
  180. merge/resources/crm/types/__init__.py +470 -224
  181. merge/resources/crm/types/remote_field_class.py +1 -0
  182. merge/resources/filestorage/__init__.py +322 -150
  183. merge/resources/filestorage/client.py +405 -87
  184. merge/resources/filestorage/resources/__init__.py +91 -34
  185. merge/resources/filestorage/resources/async_passthrough/__init__.py +26 -1
  186. merge/resources/filestorage/resources/async_passthrough/types/__init__.py +26 -1
  187. merge/resources/filestorage/resources/audit_trail/client.py +6 -2
  188. merge/resources/filestorage/resources/drives/client.py +6 -2
  189. merge/resources/filestorage/resources/files/__init__.py +36 -6
  190. merge/resources/filestorage/resources/files/client.py +42 -4
  191. merge/resources/filestorage/resources/files/raw_client.py +38 -0
  192. merge/resources/filestorage/resources/files/types/__init__.py +34 -4
  193. merge/resources/filestorage/resources/folders/__init__.py +29 -1
  194. merge/resources/filestorage/resources/folders/client.py +6 -2
  195. merge/resources/filestorage/resources/folders/types/__init__.py +30 -2
  196. merge/resources/filestorage/resources/groups/client.py +6 -2
  197. merge/resources/filestorage/resources/issues/__init__.py +26 -1
  198. merge/resources/filestorage/resources/issues/client.py +6 -2
  199. merge/resources/filestorage/resources/issues/types/__init__.py +26 -1
  200. merge/resources/filestorage/resources/linked_accounts/__init__.py +26 -1
  201. merge/resources/filestorage/resources/linked_accounts/client.py +6 -2
  202. merge/resources/filestorage/resources/linked_accounts/types/__init__.py +28 -1
  203. merge/resources/filestorage/resources/sync_status/client.py +6 -2
  204. merge/resources/filestorage/resources/users/client.py +6 -2
  205. merge/resources/filestorage/types/__init__.py +258 -117
  206. merge/resources/hris/__init__.py +576 -277
  207. merge/resources/hris/client.py +590 -120
  208. merge/resources/hris/resources/__init__.py +188 -86
  209. merge/resources/hris/resources/async_passthrough/__init__.py +26 -1
  210. merge/resources/hris/resources/async_passthrough/types/__init__.py +26 -1
  211. merge/resources/hris/resources/audit_trail/client.py +6 -2
  212. merge/resources/hris/resources/bank_info/__init__.py +29 -1
  213. merge/resources/hris/resources/bank_info/client.py +6 -2
  214. merge/resources/hris/resources/bank_info/types/__init__.py +30 -2
  215. merge/resources/hris/resources/benefits/client.py +6 -2
  216. merge/resources/hris/resources/companies/client.py +6 -2
  217. merge/resources/hris/resources/dependents/client.py +6 -2
  218. merge/resources/hris/resources/employee_payroll_runs/__init__.py +29 -1
  219. merge/resources/hris/resources/employee_payroll_runs/client.py +6 -2
  220. merge/resources/hris/resources/employee_payroll_runs/types/__init__.py +30 -2
  221. merge/resources/hris/resources/employees/__init__.py +44 -10
  222. merge/resources/hris/resources/employees/client.py +6 -2
  223. merge/resources/hris/resources/employees/types/__init__.py +42 -8
  224. merge/resources/hris/resources/employer_benefits/client.py +6 -2
  225. merge/resources/hris/resources/employments/__init__.py +42 -9
  226. merge/resources/hris/resources/employments/client.py +6 -2
  227. merge/resources/hris/resources/employments/types/__init__.py +40 -7
  228. merge/resources/hris/resources/groups/client.py +6 -2
  229. merge/resources/hris/resources/issues/__init__.py +26 -1
  230. merge/resources/hris/resources/issues/client.py +6 -2
  231. merge/resources/hris/resources/issues/types/__init__.py +26 -1
  232. merge/resources/hris/resources/link_token/__init__.py +26 -1
  233. merge/resources/hris/resources/link_token/types/__init__.py +26 -1
  234. merge/resources/hris/resources/linked_accounts/__init__.py +26 -1
  235. merge/resources/hris/resources/linked_accounts/client.py +6 -2
  236. merge/resources/hris/resources/linked_accounts/types/__init__.py +28 -1
  237. merge/resources/hris/resources/locations/__init__.py +38 -7
  238. merge/resources/hris/resources/locations/client.py +6 -2
  239. merge/resources/hris/resources/locations/types/__init__.py +36 -5
  240. merge/resources/hris/resources/pay_groups/client.py +6 -2
  241. merge/resources/hris/resources/payroll_runs/__init__.py +38 -7
  242. merge/resources/hris/resources/payroll_runs/client.py +6 -2
  243. merge/resources/hris/resources/payroll_runs/types/__init__.py +36 -5
  244. merge/resources/hris/resources/sync_status/client.py +6 -2
  245. merge/resources/hris/resources/teams/client.py +6 -2
  246. merge/resources/hris/resources/time_off/__init__.py +44 -10
  247. merge/resources/hris/resources/time_off/client.py +6 -2
  248. merge/resources/hris/resources/time_off/types/__init__.py +42 -8
  249. merge/resources/hris/resources/time_off_balances/__init__.py +26 -1
  250. merge/resources/hris/resources/time_off_balances/client.py +6 -2
  251. merge/resources/hris/resources/time_off_balances/types/__init__.py +28 -1
  252. merge/resources/hris/resources/timesheet_entries/__init__.py +26 -1
  253. merge/resources/hris/resources/timesheet_entries/client.py +6 -2
  254. merge/resources/hris/resources/timesheet_entries/types/__init__.py +28 -1
  255. merge/resources/hris/types/__init__.py +422 -199
  256. merge/resources/hris/types/benefit.py +4 -4
  257. merge/resources/ticketing/__init__.py +464 -221
  258. merge/resources/ticketing/client.py +507 -105
  259. merge/resources/ticketing/resources/__init__.py +120 -48
  260. merge/resources/ticketing/resources/accounts/client.py +6 -2
  261. merge/resources/ticketing/resources/async_passthrough/__init__.py +26 -1
  262. merge/resources/ticketing/resources/async_passthrough/types/__init__.py +26 -1
  263. merge/resources/ticketing/resources/attachments/client.py +6 -2
  264. merge/resources/ticketing/resources/audit_trail/client.py +6 -2
  265. merge/resources/ticketing/resources/collections/__init__.py +26 -1
  266. merge/resources/ticketing/resources/collections/client.py +8 -2
  267. merge/resources/ticketing/resources/collections/types/__init__.py +28 -1
  268. merge/resources/ticketing/resources/comments/__init__.py +29 -1
  269. merge/resources/ticketing/resources/comments/client.py +6 -2
  270. merge/resources/ticketing/resources/comments/types/__init__.py +30 -2
  271. merge/resources/ticketing/resources/contacts/client.py +6 -2
  272. merge/resources/ticketing/resources/issues/__init__.py +26 -1
  273. merge/resources/ticketing/resources/issues/client.py +6 -2
  274. merge/resources/ticketing/resources/issues/types/__init__.py +26 -1
  275. merge/resources/ticketing/resources/link_token/__init__.py +26 -1
  276. merge/resources/ticketing/resources/link_token/types/__init__.py +26 -1
  277. merge/resources/ticketing/resources/linked_accounts/__init__.py +26 -1
  278. merge/resources/ticketing/resources/linked_accounts/client.py +6 -2
  279. merge/resources/ticketing/resources/linked_accounts/types/__init__.py +28 -1
  280. merge/resources/ticketing/resources/projects/__init__.py +26 -1
  281. merge/resources/ticketing/resources/projects/client.py +8 -2
  282. merge/resources/ticketing/resources/projects/types/__init__.py +26 -1
  283. merge/resources/ticketing/resources/roles/client.py +6 -2
  284. merge/resources/ticketing/resources/sync_status/client.py +6 -2
  285. merge/resources/ticketing/resources/tags/client.py +6 -2
  286. merge/resources/ticketing/resources/teams/client.py +6 -2
  287. merge/resources/ticketing/resources/tickets/__init__.py +44 -10
  288. merge/resources/ticketing/resources/tickets/client.py +24 -4
  289. merge/resources/ticketing/resources/tickets/raw_client.py +10 -0
  290. merge/resources/ticketing/resources/tickets/types/__init__.py +42 -8
  291. merge/resources/ticketing/resources/users/__init__.py +26 -1
  292. merge/resources/ticketing/resources/users/client.py +6 -2
  293. merge/resources/ticketing/resources/users/types/__init__.py +30 -2
  294. merge/resources/ticketing/types/__init__.py +370 -173
  295. merge/resources/ticketing/types/patched_ticket_request.py +5 -5
  296. merge/resources/ticketing/types/remote_field_class.py +1 -0
  297. {mergepythonclient-2.1.1.dist-info → mergepythonclient-2.3.0.dist-info}/METADATA +5 -2
  298. {mergepythonclient-2.1.1.dist-info → mergepythonclient-2.3.0.dist-info}/RECORD +300 -298
  299. {mergepythonclient-2.1.1.dist-info → mergepythonclient-2.3.0.dist-info}/LICENSE.md +0 -0
  300. {mergepythonclient-2.1.1.dist-info → mergepythonclient-2.3.0.dist-info}/WHEEL +0 -0
@@ -2,6 +2,34 @@
2
2
 
3
3
  # isort: skip_file
4
4
 
5
- from .types import CompanyInfoListRequestExpand, CompanyInfoRetrieveRequestExpand
5
+ import typing
6
+ from importlib import import_module
7
+
8
+ if typing.TYPE_CHECKING:
9
+ from .types import CompanyInfoListRequestExpand, CompanyInfoRetrieveRequestExpand
10
+ _dynamic_imports: typing.Dict[str, str] = {
11
+ "CompanyInfoListRequestExpand": ".types",
12
+ "CompanyInfoRetrieveRequestExpand": ".types",
13
+ }
14
+
15
+
16
+ def __getattr__(attr_name: str) -> typing.Any:
17
+ module_name = _dynamic_imports.get(attr_name)
18
+ if module_name is None:
19
+ raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
20
+ try:
21
+ module = import_module(module_name, __package__)
22
+ result = getattr(module, attr_name)
23
+ return result
24
+ except ImportError as e:
25
+ raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
26
+ except AttributeError as e:
27
+ raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
28
+
29
+
30
+ def __dir__():
31
+ lazy_attrs = list(_dynamic_imports.keys())
32
+ return sorted(lazy_attrs)
33
+
6
34
 
7
35
  __all__ = ["CompanyInfoListRequestExpand", "CompanyInfoRetrieveRequestExpand"]
@@ -97,7 +97,9 @@ class CompanyInfoClient:
97
97
  account_token="YOUR_ACCOUNT_TOKEN",
98
98
  api_key="YOUR_API_KEY",
99
99
  )
100
- client.accounting.company_info.list()
100
+ client.accounting.company_info.list(
101
+ cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw",
102
+ )
101
103
  """
102
104
  _response = self._raw_client.list(
103
105
  created_after=created_after,
@@ -260,7 +262,9 @@ class AsyncCompanyInfoClient:
260
262
 
261
263
 
262
264
  async def main() -> None:
263
- await client.accounting.company_info.list()
265
+ await client.accounting.company_info.list(
266
+ cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw",
267
+ )
264
268
 
265
269
 
266
270
  asyncio.run(main())
@@ -2,7 +2,35 @@
2
2
 
3
3
  # isort: skip_file
4
4
 
5
- from .company_info_list_request_expand import CompanyInfoListRequestExpand
6
- from .company_info_retrieve_request_expand import CompanyInfoRetrieveRequestExpand
5
+ import typing
6
+ from importlib import import_module
7
+
8
+ if typing.TYPE_CHECKING:
9
+ from .company_info_list_request_expand import CompanyInfoListRequestExpand
10
+ from .company_info_retrieve_request_expand import CompanyInfoRetrieveRequestExpand
11
+ _dynamic_imports: typing.Dict[str, str] = {
12
+ "CompanyInfoListRequestExpand": ".company_info_list_request_expand",
13
+ "CompanyInfoRetrieveRequestExpand": ".company_info_retrieve_request_expand",
14
+ }
15
+
16
+
17
+ def __getattr__(attr_name: str) -> typing.Any:
18
+ module_name = _dynamic_imports.get(attr_name)
19
+ if module_name is None:
20
+ raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
21
+ try:
22
+ module = import_module(module_name, __package__)
23
+ result = getattr(module, attr_name)
24
+ return result
25
+ except ImportError as e:
26
+ raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
27
+ except AttributeError as e:
28
+ raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
29
+
30
+
31
+ def __dir__():
32
+ lazy_attrs = list(_dynamic_imports.keys())
33
+ return sorted(lazy_attrs)
34
+
7
35
 
8
36
  __all__ = ["CompanyInfoListRequestExpand", "CompanyInfoRetrieveRequestExpand"]
@@ -2,6 +2,34 @@
2
2
 
3
3
  # isort: skip_file
4
4
 
5
- from .types import ContactsListRequestExpand, ContactsRetrieveRequestExpand
5
+ import typing
6
+ from importlib import import_module
7
+
8
+ if typing.TYPE_CHECKING:
9
+ from .types import ContactsListRequestExpand, ContactsRetrieveRequestExpand
10
+ _dynamic_imports: typing.Dict[str, str] = {
11
+ "ContactsListRequestExpand": ".types",
12
+ "ContactsRetrieveRequestExpand": ".types",
13
+ }
14
+
15
+
16
+ def __getattr__(attr_name: str) -> typing.Any:
17
+ module_name = _dynamic_imports.get(attr_name)
18
+ if module_name is None:
19
+ raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
20
+ try:
21
+ module = import_module(module_name, __package__)
22
+ result = getattr(module, attr_name)
23
+ return result
24
+ except ImportError as e:
25
+ raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
26
+ except AttributeError as e:
27
+ raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
28
+
29
+
30
+ def __dir__():
31
+ lazy_attrs = list(_dynamic_imports.keys())
32
+ return sorted(lazy_attrs)
33
+
6
34
 
7
35
  __all__ = ["ContactsListRequestExpand", "ContactsRetrieveRequestExpand"]
@@ -11,6 +11,7 @@ from ...types.contact_response import ContactResponse
11
11
  from ...types.meta_response import MetaResponse
12
12
  from ...types.paginated_contact_list import PaginatedContactList
13
13
  from ...types.paginated_remote_field_class_list import PaginatedRemoteFieldClassList
14
+ from ...types.patched_contact_request import PatchedContactRequest
14
15
  from .raw_client import AsyncRawContactsClient, RawContactsClient
15
16
  from .types.contacts_list_request_expand import ContactsListRequestExpand
16
17
  from .types.contacts_retrieve_request_expand import ContactsRetrieveRequestExpand
@@ -140,7 +141,9 @@ class ContactsClient:
140
141
  account_token="YOUR_ACCOUNT_TOKEN",
141
142
  api_key="YOUR_API_KEY",
142
143
  )
143
- client.accounting.contacts.list()
144
+ client.accounting.contacts.list(
145
+ cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw",
146
+ )
144
147
  """
145
148
  _response = self._raw_client.list(
146
149
  company_id=company_id,
@@ -283,6 +286,88 @@ class ContactsClient:
283
286
  )
284
287
  return _response.data
285
288
 
289
+ def partial_update(
290
+ self,
291
+ id: str,
292
+ *,
293
+ model: PatchedContactRequest,
294
+ is_debug_mode: typing.Optional[bool] = None,
295
+ run_async: typing.Optional[bool] = None,
296
+ request_options: typing.Optional[RequestOptions] = None,
297
+ ) -> ContactResponse:
298
+ """
299
+ Updates a `Contact` object with the given `id`.
300
+
301
+ Parameters
302
+ ----------
303
+ id : str
304
+
305
+ model : PatchedContactRequest
306
+
307
+ is_debug_mode : typing.Optional[bool]
308
+ Whether to include debug fields (such as log file links) in the response.
309
+
310
+ run_async : typing.Optional[bool]
311
+ Whether or not third-party updates should be run asynchronously.
312
+
313
+ request_options : typing.Optional[RequestOptions]
314
+ Request-specific configuration.
315
+
316
+ Returns
317
+ -------
318
+ ContactResponse
319
+
320
+
321
+ Examples
322
+ --------
323
+ from merge import Merge
324
+ from merge.resources.accounting import PatchedContactRequest
325
+
326
+ client = Merge(
327
+ account_token="YOUR_ACCOUNT_TOKEN",
328
+ api_key="YOUR_API_KEY",
329
+ )
330
+ client.accounting.contacts.partial_update(
331
+ id="id",
332
+ model=PatchedContactRequest(),
333
+ )
334
+ """
335
+ _response = self._raw_client.partial_update(
336
+ id, model=model, is_debug_mode=is_debug_mode, run_async=run_async, request_options=request_options
337
+ )
338
+ return _response.data
339
+
340
+ def meta_patch_retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> MetaResponse:
341
+ """
342
+ Returns metadata for `Contact` PATCHs.
343
+
344
+ Parameters
345
+ ----------
346
+ id : str
347
+
348
+ request_options : typing.Optional[RequestOptions]
349
+ Request-specific configuration.
350
+
351
+ Returns
352
+ -------
353
+ MetaResponse
354
+
355
+
356
+ Examples
357
+ --------
358
+ from merge import Merge
359
+
360
+ client = Merge(
361
+ account_token="YOUR_ACCOUNT_TOKEN",
362
+ api_key="YOUR_API_KEY",
363
+ )
364
+ client.accounting.contacts.meta_patch_retrieve(
365
+ id="id",
366
+ )
367
+ """
368
+ _response = self._raw_client.meta_patch_retrieve(id, request_options=request_options)
369
+ return _response.data
370
+
286
371
  def meta_post_retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) -> MetaResponse:
287
372
  """
288
373
  Returns metadata for `Contact` POSTs.
@@ -364,7 +449,9 @@ class ContactsClient:
364
449
  account_token="YOUR_ACCOUNT_TOKEN",
365
450
  api_key="YOUR_API_KEY",
366
451
  )
367
- client.accounting.contacts.remote_field_classes_list()
452
+ client.accounting.contacts.remote_field_classes_list(
453
+ cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw",
454
+ )
368
455
  """
369
456
  _response = self._raw_client.remote_field_classes_list(
370
457
  cursor=cursor,
@@ -505,7 +592,9 @@ class AsyncContactsClient:
505
592
 
506
593
 
507
594
  async def main() -> None:
508
- await client.accounting.contacts.list()
595
+ await client.accounting.contacts.list(
596
+ cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw",
597
+ )
509
598
 
510
599
 
511
600
  asyncio.run(main())
@@ -667,6 +756,106 @@ class AsyncContactsClient:
667
756
  )
668
757
  return _response.data
669
758
 
759
+ async def partial_update(
760
+ self,
761
+ id: str,
762
+ *,
763
+ model: PatchedContactRequest,
764
+ is_debug_mode: typing.Optional[bool] = None,
765
+ run_async: typing.Optional[bool] = None,
766
+ request_options: typing.Optional[RequestOptions] = None,
767
+ ) -> ContactResponse:
768
+ """
769
+ Updates a `Contact` object with the given `id`.
770
+
771
+ Parameters
772
+ ----------
773
+ id : str
774
+
775
+ model : PatchedContactRequest
776
+
777
+ is_debug_mode : typing.Optional[bool]
778
+ Whether to include debug fields (such as log file links) in the response.
779
+
780
+ run_async : typing.Optional[bool]
781
+ Whether or not third-party updates should be run asynchronously.
782
+
783
+ request_options : typing.Optional[RequestOptions]
784
+ Request-specific configuration.
785
+
786
+ Returns
787
+ -------
788
+ ContactResponse
789
+
790
+
791
+ Examples
792
+ --------
793
+ import asyncio
794
+
795
+ from merge import AsyncMerge
796
+ from merge.resources.accounting import PatchedContactRequest
797
+
798
+ client = AsyncMerge(
799
+ account_token="YOUR_ACCOUNT_TOKEN",
800
+ api_key="YOUR_API_KEY",
801
+ )
802
+
803
+
804
+ async def main() -> None:
805
+ await client.accounting.contacts.partial_update(
806
+ id="id",
807
+ model=PatchedContactRequest(),
808
+ )
809
+
810
+
811
+ asyncio.run(main())
812
+ """
813
+ _response = await self._raw_client.partial_update(
814
+ id, model=model, is_debug_mode=is_debug_mode, run_async=run_async, request_options=request_options
815
+ )
816
+ return _response.data
817
+
818
+ async def meta_patch_retrieve(
819
+ self, id: str, *, request_options: typing.Optional[RequestOptions] = None
820
+ ) -> MetaResponse:
821
+ """
822
+ Returns metadata for `Contact` PATCHs.
823
+
824
+ Parameters
825
+ ----------
826
+ id : str
827
+
828
+ request_options : typing.Optional[RequestOptions]
829
+ Request-specific configuration.
830
+
831
+ Returns
832
+ -------
833
+ MetaResponse
834
+
835
+
836
+ Examples
837
+ --------
838
+ import asyncio
839
+
840
+ from merge import AsyncMerge
841
+
842
+ client = AsyncMerge(
843
+ account_token="YOUR_ACCOUNT_TOKEN",
844
+ api_key="YOUR_API_KEY",
845
+ )
846
+
847
+
848
+ async def main() -> None:
849
+ await client.accounting.contacts.meta_patch_retrieve(
850
+ id="id",
851
+ )
852
+
853
+
854
+ asyncio.run(main())
855
+ """
856
+ _response = await self._raw_client.meta_patch_retrieve(id, request_options=request_options)
857
+ return _response.data
858
+
670
859
  async def meta_post_retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) -> MetaResponse:
671
860
  """
672
861
  Returns metadata for `Contact` POSTs.
@@ -761,7 +950,9 @@ class AsyncContactsClient:
761
950
 
762
951
 
763
952
  async def main() -> None:
764
- await client.accounting.contacts.remote_field_classes_list()
953
+ await client.accounting.contacts.remote_field_classes_list(
954
+ cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw",
955
+ )
765
956
 
766
957
 
767
958
  asyncio.run(main())
@@ -17,6 +17,7 @@ from ...types.contact_response import ContactResponse
17
17
  from ...types.meta_response import MetaResponse
18
18
  from ...types.paginated_contact_list import PaginatedContactList
19
19
  from ...types.paginated_remote_field_class_list import PaginatedRemoteFieldClassList
20
+ from ...types.patched_contact_request import PatchedContactRequest
20
21
  from .types.contacts_list_request_expand import ContactsListRequestExpand
21
22
  from .types.contacts_retrieve_request_expand import ContactsRetrieveRequestExpand
22
23
 
@@ -301,6 +302,107 @@ class RawContactsClient:
301
302
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
302
303
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
303
304
 
305
+ def partial_update(
306
+ self,
307
+ id: str,
308
+ *,
309
+ model: PatchedContactRequest,
310
+ is_debug_mode: typing.Optional[bool] = None,
311
+ run_async: typing.Optional[bool] = None,
312
+ request_options: typing.Optional[RequestOptions] = None,
313
+ ) -> HttpResponse[ContactResponse]:
314
+ """
315
+ Updates a `Contact` object with the given `id`.
316
+
317
+ Parameters
318
+ ----------
319
+ id : str
320
+
321
+ model : PatchedContactRequest
322
+
323
+ is_debug_mode : typing.Optional[bool]
324
+ Whether to include debug fields (such as log file links) in the response.
325
+
326
+ run_async : typing.Optional[bool]
327
+ Whether or not third-party updates should be run asynchronously.
328
+
329
+ request_options : typing.Optional[RequestOptions]
330
+ Request-specific configuration.
331
+
332
+ Returns
333
+ -------
334
+ HttpResponse[ContactResponse]
335
+
336
+ """
337
+ _response = self._client_wrapper.httpx_client.request(
338
+ f"accounting/v1/contacts/{jsonable_encoder(id)}",
339
+ method="PATCH",
340
+ params={
341
+ "is_debug_mode": is_debug_mode,
342
+ "run_async": run_async,
343
+ },
344
+ json={
345
+ "model": model,
346
+ },
347
+ headers={
348
+ "content-type": "application/json",
349
+ },
350
+ request_options=request_options,
351
+ omit=OMIT,
352
+ )
353
+ try:
354
+ if 200 <= _response.status_code < 300:
355
+ _data = typing.cast(
356
+ ContactResponse,
357
+ construct_type(
358
+ type_=ContactResponse, # type: ignore
359
+ object_=_response.json(),
360
+ ),
361
+ )
362
+ return HttpResponse(response=_response, data=_data)
363
+ _response_json = _response.json()
364
+ except JSONDecodeError:
365
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
366
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
367
+
368
+ def meta_patch_retrieve(
369
+ self, id: str, *, request_options: typing.Optional[RequestOptions] = None
370
+ ) -> HttpResponse[MetaResponse]:
371
+ """
372
+ Returns metadata for `Contact` PATCHs.
373
+
374
+ Parameters
375
+ ----------
376
+ id : str
377
+
378
+ request_options : typing.Optional[RequestOptions]
379
+ Request-specific configuration.
380
+
381
+ Returns
382
+ -------
383
+ HttpResponse[MetaResponse]
384
+
385
+ """
386
+ _response = self._client_wrapper.httpx_client.request(
387
+ f"accounting/v1/contacts/meta/patch/{jsonable_encoder(id)}",
388
+ method="GET",
389
+ request_options=request_options,
390
+ )
391
+ try:
392
+ if 200 <= _response.status_code < 300:
393
+ _data = typing.cast(
394
+ MetaResponse,
395
+ construct_type(
396
+ type_=MetaResponse, # type: ignore
397
+ object_=_response.json(),
398
+ ),
399
+ )
400
+ return HttpResponse(response=_response, data=_data)
401
+ _response_json = _response.json()
402
+ except JSONDecodeError:
403
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
404
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
405
+
304
406
  def meta_post_retrieve(
305
407
  self, *, request_options: typing.Optional[RequestOptions] = None
306
408
  ) -> HttpResponse[MetaResponse]:
@@ -690,6 +792,107 @@ class AsyncRawContactsClient:
690
792
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
691
793
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
692
794
 
795
+ async def partial_update(
796
+ self,
797
+ id: str,
798
+ *,
799
+ model: PatchedContactRequest,
800
+ is_debug_mode: typing.Optional[bool] = None,
801
+ run_async: typing.Optional[bool] = None,
802
+ request_options: typing.Optional[RequestOptions] = None,
803
+ ) -> AsyncHttpResponse[ContactResponse]:
804
+ """
805
+ Updates a `Contact` object with the given `id`.
806
+
807
+ Parameters
808
+ ----------
809
+ id : str
810
+
811
+ model : PatchedContactRequest
812
+
813
+ is_debug_mode : typing.Optional[bool]
814
+ Whether to include debug fields (such as log file links) in the response.
815
+
816
+ run_async : typing.Optional[bool]
817
+ Whether or not third-party updates should be run asynchronously.
818
+
819
+ request_options : typing.Optional[RequestOptions]
820
+ Request-specific configuration.
821
+
822
+ Returns
823
+ -------
824
+ AsyncHttpResponse[ContactResponse]
825
+
826
+ """
827
+ _response = await self._client_wrapper.httpx_client.request(
828
+ f"accounting/v1/contacts/{jsonable_encoder(id)}",
829
+ method="PATCH",
830
+ params={
831
+ "is_debug_mode": is_debug_mode,
832
+ "run_async": run_async,
833
+ },
834
+ json={
835
+ "model": model,
836
+ },
837
+ headers={
838
+ "content-type": "application/json",
839
+ },
840
+ request_options=request_options,
841
+ omit=OMIT,
842
+ )
843
+ try:
844
+ if 200 <= _response.status_code < 300:
845
+ _data = typing.cast(
846
+ ContactResponse,
847
+ construct_type(
848
+ type_=ContactResponse, # type: ignore
849
+ object_=_response.json(),
850
+ ),
851
+ )
852
+ return AsyncHttpResponse(response=_response, data=_data)
853
+ _response_json = _response.json()
854
+ except JSONDecodeError:
855
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
856
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
857
+
858
+ async def meta_patch_retrieve(
859
+ self, id: str, *, request_options: typing.Optional[RequestOptions] = None
860
+ ) -> AsyncHttpResponse[MetaResponse]:
861
+ """
862
+ Returns metadata for `Contact` PATCHs.
863
+
864
+ Parameters
865
+ ----------
866
+ id : str
867
+
868
+ request_options : typing.Optional[RequestOptions]
869
+ Request-specific configuration.
870
+
871
+ Returns
872
+ -------
873
+ AsyncHttpResponse[MetaResponse]
874
+
875
+ """
876
+ _response = await self._client_wrapper.httpx_client.request(
877
+ f"accounting/v1/contacts/meta/patch/{jsonable_encoder(id)}",
878
+ method="GET",
879
+ request_options=request_options,
880
+ )
881
+ try:
882
+ if 200 <= _response.status_code < 300:
883
+ _data = typing.cast(
884
+ MetaResponse,
885
+ construct_type(
886
+ type_=MetaResponse, # type: ignore
887
+ object_=_response.json(),
888
+ ),
889
+ )
890
+ return AsyncHttpResponse(response=_response, data=_data)
891
+ _response_json = _response.json()
892
+ except JSONDecodeError:
893
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
894
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
895
+
693
896
  async def meta_post_retrieve(
694
897
  self, *, request_options: typing.Optional[RequestOptions] = None
695
898
  ) -> AsyncHttpResponse[MetaResponse]:
@@ -2,7 +2,35 @@
2
2
 
3
3
  # isort: skip_file
4
4
 
5
- from .contacts_list_request_expand import ContactsListRequestExpand
6
- from .contacts_retrieve_request_expand import ContactsRetrieveRequestExpand
5
+ import typing
6
+ from importlib import import_module
7
+
8
+ if typing.TYPE_CHECKING:
9
+ from .contacts_list_request_expand import ContactsListRequestExpand
10
+ from .contacts_retrieve_request_expand import ContactsRetrieveRequestExpand
11
+ _dynamic_imports: typing.Dict[str, str] = {
12
+ "ContactsListRequestExpand": ".contacts_list_request_expand",
13
+ "ContactsRetrieveRequestExpand": ".contacts_retrieve_request_expand",
14
+ }
15
+
16
+
17
+ def __getattr__(attr_name: str) -> typing.Any:
18
+ module_name = _dynamic_imports.get(attr_name)
19
+ if module_name is None:
20
+ raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
21
+ try:
22
+ module = import_module(module_name, __package__)
23
+ result = getattr(module, attr_name)
24
+ return result
25
+ except ImportError as e:
26
+ raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
27
+ except AttributeError as e:
28
+ raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
29
+
30
+
31
+ def __dir__():
32
+ lazy_attrs = list(_dynamic_imports.keys())
33
+ return sorted(lazy_attrs)
34
+
7
35
 
8
36
  __all__ = ["ContactsListRequestExpand", "ContactsRetrieveRequestExpand"]
@@ -2,14 +2,46 @@
2
2
 
3
3
  # isort: skip_file
4
4
 
5
- from .types import (
6
- CreditNotesListRequestExpand,
7
- CreditNotesListRequestRemoteFields,
8
- CreditNotesListRequestShowEnumOrigins,
9
- CreditNotesRetrieveRequestExpand,
10
- CreditNotesRetrieveRequestRemoteFields,
11
- CreditNotesRetrieveRequestShowEnumOrigins,
12
- )
5
+ import typing
6
+ from importlib import import_module
7
+
8
+ if typing.TYPE_CHECKING:
9
+ from .types import (
10
+ CreditNotesListRequestExpand,
11
+ CreditNotesListRequestRemoteFields,
12
+ CreditNotesListRequestShowEnumOrigins,
13
+ CreditNotesRetrieveRequestExpand,
14
+ CreditNotesRetrieveRequestRemoteFields,
15
+ CreditNotesRetrieveRequestShowEnumOrigins,
16
+ )
17
+ _dynamic_imports: typing.Dict[str, str] = {
18
+ "CreditNotesListRequestExpand": ".types",
19
+ "CreditNotesListRequestRemoteFields": ".types",
20
+ "CreditNotesListRequestShowEnumOrigins": ".types",
21
+ "CreditNotesRetrieveRequestExpand": ".types",
22
+ "CreditNotesRetrieveRequestRemoteFields": ".types",
23
+ "CreditNotesRetrieveRequestShowEnumOrigins": ".types",
24
+ }
25
+
26
+
27
+ def __getattr__(attr_name: str) -> typing.Any:
28
+ module_name = _dynamic_imports.get(attr_name)
29
+ if module_name is None:
30
+ raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
31
+ try:
32
+ module = import_module(module_name, __package__)
33
+ result = getattr(module, attr_name)
34
+ return result
35
+ except ImportError as e:
36
+ raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
37
+ except AttributeError as e:
38
+ raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
39
+
40
+
41
+ def __dir__():
42
+ lazy_attrs = list(_dynamic_imports.keys())
43
+ return sorted(lazy_attrs)
44
+
13
45
 
14
46
  __all__ = [
15
47
  "CreditNotesListRequestExpand",