proxyrequest-sdk 1.0.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 (560) hide show
  1. proxyrequest_sdk/__init__.py +36 -0
  2. proxyrequest_sdk/_generated/__init__.py +8 -0
  3. proxyrequest_sdk/_generated/api/__init__.py +1 -0
  4. proxyrequest_sdk/_generated/api/affiliates/__init__.py +1 -0
  5. proxyrequest_sdk/_generated/api/affiliates/affiliates_list.py +259 -0
  6. proxyrequest_sdk/_generated/api/affiliates/affiliates_rewards_list.py +255 -0
  7. proxyrequest_sdk/_generated/api/affiliates/affiliates_rewards_overall_retrieve.py +230 -0
  8. proxyrequest_sdk/_generated/api/analytics/__init__.py +1 -0
  9. proxyrequest_sdk/_generated/api/analytics/analytics_connections_retrieve.py +312 -0
  10. proxyrequest_sdk/_generated/api/analytics/analytics_domains_retrieve.py +447 -0
  11. proxyrequest_sdk/_generated/api/analytics/analytics_feed_retrieve.py +473 -0
  12. proxyrequest_sdk/_generated/api/analytics/analytics_logs_retrieve.py +469 -0
  13. proxyrequest_sdk/_generated/api/analytics/analytics_overall_retrieve.py +375 -0
  14. proxyrequest_sdk/_generated/api/analytics/analytics_transactions_retrieve.py +412 -0
  15. proxyrequest_sdk/_generated/api/api_keys/__init__.py +1 -0
  16. proxyrequest_sdk/_generated/api/api_keys/api_keys_create.py +234 -0
  17. proxyrequest_sdk/_generated/api/api_keys/api_keys_destroy.py +249 -0
  18. proxyrequest_sdk/_generated/api/api_keys/api_keys_list.py +250 -0
  19. proxyrequest_sdk/_generated/api/authorization/__init__.py +1 -0
  20. proxyrequest_sdk/_generated/api/authorization/login_create.py +197 -0
  21. proxyrequest_sdk/_generated/api/authorization/login_google_create.py +207 -0
  22. proxyrequest_sdk/_generated/api/authorization/recover_password_create.py +197 -0
  23. proxyrequest_sdk/_generated/api/authorization/refresh_create.py +199 -0
  24. proxyrequest_sdk/_generated/api/authorization/signup_create.py +207 -0
  25. proxyrequest_sdk/_generated/api/coupons/__init__.py +1 -0
  26. proxyrequest_sdk/_generated/api/coupons/coupons_calculate_price_create.py +248 -0
  27. proxyrequest_sdk/_generated/api/coupons/coupons_create.py +211 -0
  28. proxyrequest_sdk/_generated/api/coupons/coupons_destroy.py +245 -0
  29. proxyrequest_sdk/_generated/api/coupons/coupons_list.py +324 -0
  30. proxyrequest_sdk/_generated/api/coupons/coupons_partial_update.py +266 -0
  31. proxyrequest_sdk/_generated/api/coupons/coupons_redeems_list.py +332 -0
  32. proxyrequest_sdk/_generated/api/coupons/coupons_retrieve.py +247 -0
  33. proxyrequest_sdk/_generated/api/coupons/coupons_update.py +265 -0
  34. proxyrequest_sdk/_generated/api/invoices/__init__.py +1 -0
  35. proxyrequest_sdk/_generated/api/invoices/invoices_create.py +233 -0
  36. proxyrequest_sdk/_generated/api/invoices/invoices_destroy.py +245 -0
  37. proxyrequest_sdk/_generated/api/invoices/invoices_download_pdf_retrieve.py +260 -0
  38. proxyrequest_sdk/_generated/api/invoices/invoices_list.py +413 -0
  39. proxyrequest_sdk/_generated/api/invoices/invoices_pay_retrieve.py +251 -0
  40. proxyrequest_sdk/_generated/api/invoices/invoices_retrieve.py +251 -0
  41. proxyrequest_sdk/_generated/api/locations/__init__.py +1 -0
  42. proxyrequest_sdk/_generated/api/locations/locations_asn_list.py +368 -0
  43. proxyrequest_sdk/_generated/api/locations/locations_cities_list.py +368 -0
  44. proxyrequest_sdk/_generated/api/locations/locations_cities_retrieve.py +247 -0
  45. proxyrequest_sdk/_generated/api/locations/locations_continents_list.py +338 -0
  46. proxyrequest_sdk/_generated/api/locations/locations_continents_retrieve.py +255 -0
  47. proxyrequest_sdk/_generated/api/locations/locations_countries_list.py +338 -0
  48. proxyrequest_sdk/_generated/api/locations/locations_countries_retrieve.py +255 -0
  49. proxyrequest_sdk/_generated/api/locations/locations_isps_list.py +353 -0
  50. proxyrequest_sdk/_generated/api/locations/locations_regions_list.py +353 -0
  51. proxyrequest_sdk/_generated/api/locations/locations_regions_retrieve.py +247 -0
  52. proxyrequest_sdk/_generated/api/news/__init__.py +1 -0
  53. proxyrequest_sdk/_generated/api/news/news_list.py +256 -0
  54. proxyrequest_sdk/_generated/api/orders/__init__.py +1 -0
  55. proxyrequest_sdk/_generated/api/orders/orders_destroy.py +249 -0
  56. proxyrequest_sdk/_generated/api/orders/orders_list.py +364 -0
  57. proxyrequest_sdk/_generated/api/orders/orders_partial_update.py +270 -0
  58. proxyrequest_sdk/_generated/api/orders/orders_retrieve.py +247 -0
  59. proxyrequest_sdk/_generated/api/orders/reset_password_create.py +224 -0
  60. proxyrequest_sdk/_generated/api/packages/__init__.py +1 -0
  61. proxyrequest_sdk/_generated/api/packages/packages_commissions_list.py +329 -0
  62. proxyrequest_sdk/_generated/api/packages/packages_list.py +344 -0
  63. proxyrequest_sdk/_generated/api/profile/__init__.py +1 -0
  64. proxyrequest_sdk/_generated/api/profile/profile_2fa_confirm_create.py +242 -0
  65. proxyrequest_sdk/_generated/api/profile/profile_2fa_disable_create.py +242 -0
  66. proxyrequest_sdk/_generated/api/profile/profile_2fa_setup_create.py +224 -0
  67. proxyrequest_sdk/_generated/api/profile/profile_2fa_status_retrieve.py +220 -0
  68. proxyrequest_sdk/_generated/api/profile/profile_change_password_create.py +248 -0
  69. proxyrequest_sdk/_generated/api/profile/profile_destroy.py +195 -0
  70. proxyrequest_sdk/_generated/api/profile/profile_partial_update.py +259 -0
  71. proxyrequest_sdk/_generated/api/profile/profile_retrieve.py +215 -0
  72. proxyrequest_sdk/_generated/api/proxies/__init__.py +1 -0
  73. proxyrequest_sdk/_generated/api/proxies/proxies_generate_create.py +262 -0
  74. proxyrequest_sdk/_generated/api/rewards/__init__.py +1 -0
  75. proxyrequest_sdk/_generated/api/rewards/rewards_claim_create.py +240 -0
  76. proxyrequest_sdk/_generated/api/rewards/rewards_list.py +319 -0
  77. proxyrequest_sdk/_generated/api/sessions/__init__.py +1 -0
  78. proxyrequest_sdk/_generated/api/sessions/sessions_destroy.py +251 -0
  79. proxyrequest_sdk/_generated/api/sessions/sessions_list.py +229 -0
  80. proxyrequest_sdk/_generated/api/settings/__init__.py +1 -0
  81. proxyrequest_sdk/_generated/api/settings/settings_retrieve.py +236 -0
  82. proxyrequest_sdk/_generated/api/telegram_dashboard/__init__.py +1 -0
  83. proxyrequest_sdk/_generated/api/telegram_dashboard/integrations_telegram_connection_destroy.py +224 -0
  84. proxyrequest_sdk/_generated/api/telegram_dashboard/integrations_telegram_connection_partial_update.py +253 -0
  85. proxyrequest_sdk/_generated/api/telegram_dashboard/integrations_telegram_connection_retrieve.py +226 -0
  86. proxyrequest_sdk/_generated/api/telegram_dashboard/integrations_telegram_link_create.py +226 -0
  87. proxyrequest_sdk/_generated/api/telegram_dashboard_service/__init__.py +1 -0
  88. proxyrequest_sdk/_generated/api/telegram_dashboard_service/integrations_telegram_link_consume_create.py +210 -0
  89. proxyrequest_sdk/_generated/api/telegram_dashboard_service/integrations_telegram_session_create.py +210 -0
  90. proxyrequest_sdk/_generated/api/users/__init__.py +1 -0
  91. proxyrequest_sdk/_generated/api/users/users_create.py +213 -0
  92. proxyrequest_sdk/_generated/api/users/users_data_add_create.py +270 -0
  93. proxyrequest_sdk/_generated/api/users/users_data_subtract_create.py +270 -0
  94. proxyrequest_sdk/_generated/api/users/users_destroy.py +246 -0
  95. proxyrequest_sdk/_generated/api/users/users_list.py +329 -0
  96. proxyrequest_sdk/_generated/api/users/users_orders_list.py +350 -0
  97. proxyrequest_sdk/_generated/api/users/users_partial_update.py +271 -0
  98. proxyrequest_sdk/_generated/api/users/users_password_create.py +271 -0
  99. proxyrequest_sdk/_generated/api/users/users_retrieve.py +248 -0
  100. proxyrequest_sdk/_generated/api/webhooks/__init__.py +1 -0
  101. proxyrequest_sdk/_generated/api/webhooks/webhooks_create.py +242 -0
  102. proxyrequest_sdk/_generated/api/webhooks/webhooks_destroy.py +245 -0
  103. proxyrequest_sdk/_generated/api/webhooks/webhooks_list.py +259 -0
  104. proxyrequest_sdk/_generated/api/webhooks/webhooks_retrieve.py +247 -0
  105. proxyrequest_sdk/_generated/client.py +264 -0
  106. proxyrequest_sdk/_generated/errors.py +16 -0
  107. proxyrequest_sdk/_generated/models/__init__.py +883 -0
  108. proxyrequest_sdk/_generated/models/add_data_request.py +68 -0
  109. proxyrequest_sdk/_generated/models/affiliate.py +123 -0
  110. proxyrequest_sdk/_generated/models/affiliate_reward.py +132 -0
  111. proxyrequest_sdk/_generated/models/affiliate_stats_point.py +92 -0
  112. proxyrequest_sdk/_generated/models/affiliate_stats_response.py +76 -0
  113. proxyrequest_sdk/_generated/models/affiliates_list_response_400.py +99 -0
  114. proxyrequest_sdk/_generated/models/affiliates_list_response_401.py +99 -0
  115. proxyrequest_sdk/_generated/models/affiliates_list_response_403.py +99 -0
  116. proxyrequest_sdk/_generated/models/affiliates_rewards_list_response_400.py +99 -0
  117. proxyrequest_sdk/_generated/models/affiliates_rewards_list_response_401.py +99 -0
  118. proxyrequest_sdk/_generated/models/affiliates_rewards_list_response_403.py +99 -0
  119. proxyrequest_sdk/_generated/models/affiliates_rewards_overall_retrieve_response_400.py +101 -0
  120. proxyrequest_sdk/_generated/models/affiliates_rewards_overall_retrieve_response_401.py +101 -0
  121. proxyrequest_sdk/_generated/models/affiliates_rewards_overall_retrieve_response_403.py +101 -0
  122. proxyrequest_sdk/_generated/models/analytics_connections_retrieve_response_400.py +99 -0
  123. proxyrequest_sdk/_generated/models/analytics_connections_retrieve_response_401.py +99 -0
  124. proxyrequest_sdk/_generated/models/analytics_connections_retrieve_response_403.py +99 -0
  125. proxyrequest_sdk/_generated/models/analytics_connections_retrieve_response_500.py +99 -0
  126. proxyrequest_sdk/_generated/models/analytics_domains_retrieve_ordering.py +20 -0
  127. proxyrequest_sdk/_generated/models/analytics_domains_retrieve_response_400.py +99 -0
  128. proxyrequest_sdk/_generated/models/analytics_domains_retrieve_response_401.py +99 -0
  129. proxyrequest_sdk/_generated/models/analytics_domains_retrieve_response_403.py +99 -0
  130. proxyrequest_sdk/_generated/models/analytics_domains_retrieve_response_500.py +99 -0
  131. proxyrequest_sdk/_generated/models/analytics_feed_retrieve_protocol.py +18 -0
  132. proxyrequest_sdk/_generated/models/analytics_feed_retrieve_response_400.py +99 -0
  133. proxyrequest_sdk/_generated/models/analytics_feed_retrieve_response_401.py +99 -0
  134. proxyrequest_sdk/_generated/models/analytics_feed_retrieve_response_403.py +99 -0
  135. proxyrequest_sdk/_generated/models/analytics_feed_retrieve_response_500.py +99 -0
  136. proxyrequest_sdk/_generated/models/analytics_logs_retrieve_protocol.py +18 -0
  137. proxyrequest_sdk/_generated/models/analytics_logs_retrieve_response_400.py +99 -0
  138. proxyrequest_sdk/_generated/models/analytics_logs_retrieve_response_401.py +99 -0
  139. proxyrequest_sdk/_generated/models/analytics_logs_retrieve_response_403.py +99 -0
  140. proxyrequest_sdk/_generated/models/analytics_logs_retrieve_response_500.py +99 -0
  141. proxyrequest_sdk/_generated/models/analytics_overall_retrieve_response_400.py +99 -0
  142. proxyrequest_sdk/_generated/models/analytics_overall_retrieve_response_401.py +99 -0
  143. proxyrequest_sdk/_generated/models/analytics_overall_retrieve_response_403.py +99 -0
  144. proxyrequest_sdk/_generated/models/analytics_overall_retrieve_response_500.py +99 -0
  145. proxyrequest_sdk/_generated/models/analytics_transactions_retrieve_response_400.py +99 -0
  146. proxyrequest_sdk/_generated/models/analytics_transactions_retrieve_response_401.py +99 -0
  147. proxyrequest_sdk/_generated/models/analytics_transactions_retrieve_response_403.py +99 -0
  148. proxyrequest_sdk/_generated/models/analytics_transactions_retrieve_response_404.py +99 -0
  149. proxyrequest_sdk/_generated/models/analytics_transactions_retrieve_response_500.py +99 -0
  150. proxyrequest_sdk/_generated/models/api_key_create.py +95 -0
  151. proxyrequest_sdk/_generated/models/api_key_create_request.py +70 -0
  152. proxyrequest_sdk/_generated/models/api_key_list.py +111 -0
  153. proxyrequest_sdk/_generated/models/api_keys_create_response_400.py +99 -0
  154. proxyrequest_sdk/_generated/models/api_keys_create_response_401.py +99 -0
  155. proxyrequest_sdk/_generated/models/api_keys_create_response_403.py +99 -0
  156. proxyrequest_sdk/_generated/models/api_keys_destroy_response_400.py +99 -0
  157. proxyrequest_sdk/_generated/models/api_keys_destroy_response_401.py +99 -0
  158. proxyrequest_sdk/_generated/models/api_keys_destroy_response_403.py +99 -0
  159. proxyrequest_sdk/_generated/models/api_keys_destroy_response_404.py +99 -0
  160. proxyrequest_sdk/_generated/models/api_keys_list_response_400.py +99 -0
  161. proxyrequest_sdk/_generated/models/api_keys_list_response_401.py +99 -0
  162. proxyrequest_sdk/_generated/models/api_keys_list_response_403.py +99 -0
  163. proxyrequest_sdk/_generated/models/change_password_request.py +73 -0
  164. proxyrequest_sdk/_generated/models/city.py +136 -0
  165. proxyrequest_sdk/_generated/models/commission_type_enum.py +19 -0
  166. proxyrequest_sdk/_generated/models/connection_record.py +82 -0
  167. proxyrequest_sdk/_generated/models/connections_response.py +109 -0
  168. proxyrequest_sdk/_generated/models/continent.py +78 -0
  169. proxyrequest_sdk/_generated/models/country.py +125 -0
  170. proxyrequest_sdk/_generated/models/coupon.py +279 -0
  171. proxyrequest_sdk/_generated/models/coupon_calculate_price_request.py +84 -0
  172. proxyrequest_sdk/_generated/models/coupon_create_request.py +182 -0
  173. proxyrequest_sdk/_generated/models/coupon_price_response.py +75 -0
  174. proxyrequest_sdk/_generated/models/coupon_redeem.py +153 -0
  175. proxyrequest_sdk/_generated/models/coupon_short.py +245 -0
  176. proxyrequest_sdk/_generated/models/coupon_short_packages_item.py +48 -0
  177. proxyrequest_sdk/_generated/models/coupon_stats_type_0.py +48 -0
  178. proxyrequest_sdk/_generated/models/coupon_type_enum.py +19 -0
  179. proxyrequest_sdk/_generated/models/coupon_update_request.py +182 -0
  180. proxyrequest_sdk/_generated/models/coupons_calculate_price_create_response_400.py +99 -0
  181. proxyrequest_sdk/_generated/models/coupons_calculate_price_create_response_401.py +99 -0
  182. proxyrequest_sdk/_generated/models/coupons_calculate_price_create_response_403.py +99 -0
  183. proxyrequest_sdk/_generated/models/coupons_create_response_400.py +99 -0
  184. proxyrequest_sdk/_generated/models/coupons_create_response_401.py +99 -0
  185. proxyrequest_sdk/_generated/models/coupons_create_response_403.py +99 -0
  186. proxyrequest_sdk/_generated/models/coupons_destroy_response_400.py +99 -0
  187. proxyrequest_sdk/_generated/models/coupons_destroy_response_401.py +99 -0
  188. proxyrequest_sdk/_generated/models/coupons_destroy_response_403.py +99 -0
  189. proxyrequest_sdk/_generated/models/coupons_destroy_response_404.py +99 -0
  190. proxyrequest_sdk/_generated/models/coupons_list_response_400.py +99 -0
  191. proxyrequest_sdk/_generated/models/coupons_list_response_401.py +99 -0
  192. proxyrequest_sdk/_generated/models/coupons_list_response_403.py +99 -0
  193. proxyrequest_sdk/_generated/models/coupons_list_type.py +19 -0
  194. proxyrequest_sdk/_generated/models/coupons_partial_update_response_400.py +99 -0
  195. proxyrequest_sdk/_generated/models/coupons_partial_update_response_401.py +99 -0
  196. proxyrequest_sdk/_generated/models/coupons_partial_update_response_403.py +99 -0
  197. proxyrequest_sdk/_generated/models/coupons_partial_update_response_404.py +99 -0
  198. proxyrequest_sdk/_generated/models/coupons_redeems_list_response_400.py +99 -0
  199. proxyrequest_sdk/_generated/models/coupons_redeems_list_response_401.py +99 -0
  200. proxyrequest_sdk/_generated/models/coupons_redeems_list_response_403.py +99 -0
  201. proxyrequest_sdk/_generated/models/coupons_redeems_list_response_404.py +99 -0
  202. proxyrequest_sdk/_generated/models/coupons_redeems_list_type.py +19 -0
  203. proxyrequest_sdk/_generated/models/coupons_retrieve_response_400.py +99 -0
  204. proxyrequest_sdk/_generated/models/coupons_retrieve_response_401.py +99 -0
  205. proxyrequest_sdk/_generated/models/coupons_retrieve_response_403.py +99 -0
  206. proxyrequest_sdk/_generated/models/coupons_retrieve_response_404.py +99 -0
  207. proxyrequest_sdk/_generated/models/coupons_update_response_400.py +99 -0
  208. proxyrequest_sdk/_generated/models/coupons_update_response_401.py +99 -0
  209. proxyrequest_sdk/_generated/models/coupons_update_response_403.py +99 -0
  210. proxyrequest_sdk/_generated/models/coupons_update_response_404.py +99 -0
  211. proxyrequest_sdk/_generated/models/domain_record.py +73 -0
  212. proxyrequest_sdk/_generated/models/domains_response.py +125 -0
  213. proxyrequest_sdk/_generated/models/enabled_response.py +59 -0
  214. proxyrequest_sdk/_generated/models/feed_record.py +212 -0
  215. proxyrequest_sdk/_generated/models/feed_response.py +131 -0
  216. proxyrequest_sdk/_generated/models/generate_proxy_request.py +150 -0
  217. proxyrequest_sdk/_generated/models/generate_proxy_response.py +83 -0
  218. proxyrequest_sdk/_generated/models/generated_proxy.py +94 -0
  219. proxyrequest_sdk/_generated/models/google_auth_request.py +100 -0
  220. proxyrequest_sdk/_generated/models/integrations_telegram_connection_destroy_response_400.py +101 -0
  221. proxyrequest_sdk/_generated/models/integrations_telegram_connection_destroy_response_401.py +101 -0
  222. proxyrequest_sdk/_generated/models/integrations_telegram_connection_destroy_response_403.py +101 -0
  223. proxyrequest_sdk/_generated/models/integrations_telegram_connection_partial_update_response_400.py +101 -0
  224. proxyrequest_sdk/_generated/models/integrations_telegram_connection_partial_update_response_401.py +101 -0
  225. proxyrequest_sdk/_generated/models/integrations_telegram_connection_partial_update_response_403.py +101 -0
  226. proxyrequest_sdk/_generated/models/integrations_telegram_connection_retrieve_response_400.py +101 -0
  227. proxyrequest_sdk/_generated/models/integrations_telegram_connection_retrieve_response_401.py +101 -0
  228. proxyrequest_sdk/_generated/models/integrations_telegram_connection_retrieve_response_403.py +101 -0
  229. proxyrequest_sdk/_generated/models/integrations_telegram_link_consume_create_response_400.py +101 -0
  230. proxyrequest_sdk/_generated/models/integrations_telegram_link_create_response_400.py +99 -0
  231. proxyrequest_sdk/_generated/models/integrations_telegram_link_create_response_401.py +99 -0
  232. proxyrequest_sdk/_generated/models/integrations_telegram_link_create_response_403.py +99 -0
  233. proxyrequest_sdk/_generated/models/integrations_telegram_session_create_response_400.py +101 -0
  234. proxyrequest_sdk/_generated/models/invoice.py +368 -0
  235. proxyrequest_sdk/_generated/models/invoice_create_request.py +188 -0
  236. proxyrequest_sdk/_generated/models/invoice_create_request_gateway_enum.py +20 -0
  237. proxyrequest_sdk/_generated/models/invoice_gateway_enum.py +22 -0
  238. proxyrequest_sdk/_generated/models/invoice_status_enum.py +20 -0
  239. proxyrequest_sdk/_generated/models/invoice_type_enum.py +19 -0
  240. proxyrequest_sdk/_generated/models/invoices_create_response_400.py +99 -0
  241. proxyrequest_sdk/_generated/models/invoices_create_response_401.py +99 -0
  242. proxyrequest_sdk/_generated/models/invoices_create_response_403.py +99 -0
  243. proxyrequest_sdk/_generated/models/invoices_destroy_response_400.py +99 -0
  244. proxyrequest_sdk/_generated/models/invoices_destroy_response_401.py +99 -0
  245. proxyrequest_sdk/_generated/models/invoices_destroy_response_403.py +99 -0
  246. proxyrequest_sdk/_generated/models/invoices_destroy_response_404.py +99 -0
  247. proxyrequest_sdk/_generated/models/invoices_download_pdf_retrieve_response_400.py +99 -0
  248. proxyrequest_sdk/_generated/models/invoices_download_pdf_retrieve_response_401.py +99 -0
  249. proxyrequest_sdk/_generated/models/invoices_download_pdf_retrieve_response_403.py +99 -0
  250. proxyrequest_sdk/_generated/models/invoices_download_pdf_retrieve_response_404.py +99 -0
  251. proxyrequest_sdk/_generated/models/invoices_list_payment_gateway.py +22 -0
  252. proxyrequest_sdk/_generated/models/invoices_list_response_400.py +99 -0
  253. proxyrequest_sdk/_generated/models/invoices_list_response_401.py +99 -0
  254. proxyrequest_sdk/_generated/models/invoices_list_response_403.py +99 -0
  255. proxyrequest_sdk/_generated/models/invoices_list_status.py +20 -0
  256. proxyrequest_sdk/_generated/models/invoices_list_type.py +19 -0
  257. proxyrequest_sdk/_generated/models/invoices_pay_retrieve_response_400.py +99 -0
  258. proxyrequest_sdk/_generated/models/invoices_pay_retrieve_response_401.py +99 -0
  259. proxyrequest_sdk/_generated/models/invoices_pay_retrieve_response_403.py +99 -0
  260. proxyrequest_sdk/_generated/models/invoices_pay_retrieve_response_404.py +99 -0
  261. proxyrequest_sdk/_generated/models/invoices_retrieve_response_400.py +99 -0
  262. proxyrequest_sdk/_generated/models/invoices_retrieve_response_401.py +99 -0
  263. proxyrequest_sdk/_generated/models/invoices_retrieve_response_403.py +99 -0
  264. proxyrequest_sdk/_generated/models/invoices_retrieve_response_404.py +99 -0
  265. proxyrequest_sdk/_generated/models/isp.py +69 -0
  266. proxyrequest_sdk/_generated/models/language_enum.py +21 -0
  267. proxyrequest_sdk/_generated/models/level_enum.py +20 -0
  268. proxyrequest_sdk/_generated/models/location_asn_geo_item.py +99 -0
  269. proxyrequest_sdk/_generated/models/location_asn_record.py +96 -0
  270. proxyrequest_sdk/_generated/models/location_code_name.py +66 -0
  271. proxyrequest_sdk/_generated/models/location_country_summary.py +76 -0
  272. proxyrequest_sdk/_generated/models/location_region_summary.py +76 -0
  273. proxyrequest_sdk/_generated/models/locations_asn_list_response_400.py +99 -0
  274. proxyrequest_sdk/_generated/models/locations_asn_list_response_401.py +99 -0
  275. proxyrequest_sdk/_generated/models/locations_asn_list_response_403.py +99 -0
  276. proxyrequest_sdk/_generated/models/locations_cities_list_response_400.py +99 -0
  277. proxyrequest_sdk/_generated/models/locations_cities_list_response_401.py +99 -0
  278. proxyrequest_sdk/_generated/models/locations_cities_list_response_403.py +99 -0
  279. proxyrequest_sdk/_generated/models/locations_cities_retrieve_response_400.py +99 -0
  280. proxyrequest_sdk/_generated/models/locations_cities_retrieve_response_401.py +99 -0
  281. proxyrequest_sdk/_generated/models/locations_cities_retrieve_response_403.py +99 -0
  282. proxyrequest_sdk/_generated/models/locations_cities_retrieve_response_404.py +99 -0
  283. proxyrequest_sdk/_generated/models/locations_continents_list_response_400.py +99 -0
  284. proxyrequest_sdk/_generated/models/locations_continents_list_response_401.py +99 -0
  285. proxyrequest_sdk/_generated/models/locations_continents_list_response_403.py +99 -0
  286. proxyrequest_sdk/_generated/models/locations_continents_retrieve_response_400.py +99 -0
  287. proxyrequest_sdk/_generated/models/locations_continents_retrieve_response_401.py +99 -0
  288. proxyrequest_sdk/_generated/models/locations_continents_retrieve_response_403.py +99 -0
  289. proxyrequest_sdk/_generated/models/locations_continents_retrieve_response_404.py +99 -0
  290. proxyrequest_sdk/_generated/models/locations_countries_list_response_400.py +99 -0
  291. proxyrequest_sdk/_generated/models/locations_countries_list_response_401.py +99 -0
  292. proxyrequest_sdk/_generated/models/locations_countries_list_response_403.py +99 -0
  293. proxyrequest_sdk/_generated/models/locations_countries_retrieve_response_400.py +99 -0
  294. proxyrequest_sdk/_generated/models/locations_countries_retrieve_response_401.py +99 -0
  295. proxyrequest_sdk/_generated/models/locations_countries_retrieve_response_403.py +99 -0
  296. proxyrequest_sdk/_generated/models/locations_countries_retrieve_response_404.py +99 -0
  297. proxyrequest_sdk/_generated/models/locations_isps_list_response_400.py +99 -0
  298. proxyrequest_sdk/_generated/models/locations_isps_list_response_401.py +99 -0
  299. proxyrequest_sdk/_generated/models/locations_isps_list_response_403.py +99 -0
  300. proxyrequest_sdk/_generated/models/locations_regions_list_response_400.py +99 -0
  301. proxyrequest_sdk/_generated/models/locations_regions_list_response_401.py +99 -0
  302. proxyrequest_sdk/_generated/models/locations_regions_list_response_403.py +99 -0
  303. proxyrequest_sdk/_generated/models/locations_regions_retrieve_response_400.py +99 -0
  304. proxyrequest_sdk/_generated/models/locations_regions_retrieve_response_401.py +99 -0
  305. proxyrequest_sdk/_generated/models/locations_regions_retrieve_response_403.py +99 -0
  306. proxyrequest_sdk/_generated/models/locations_regions_retrieve_response_404.py +99 -0
  307. proxyrequest_sdk/_generated/models/log_record.py +225 -0
  308. proxyrequest_sdk/_generated/models/login_create_response_400.py +99 -0
  309. proxyrequest_sdk/_generated/models/login_google_create_response_400.py +99 -0
  310. proxyrequest_sdk/_generated/models/login_google_create_response_403.py +99 -0
  311. proxyrequest_sdk/_generated/models/login_request.py +80 -0
  312. proxyrequest_sdk/_generated/models/logs_response.py +131 -0
  313. proxyrequest_sdk/_generated/models/message_response.py +59 -0
  314. proxyrequest_sdk/_generated/models/news.py +95 -0
  315. proxyrequest_sdk/_generated/models/news_list_response_400.py +99 -0
  316. proxyrequest_sdk/_generated/models/news_list_response_401.py +99 -0
  317. proxyrequest_sdk/_generated/models/news_list_response_403.py +99 -0
  318. proxyrequest_sdk/_generated/models/order.py +263 -0
  319. proxyrequest_sdk/_generated/models/order_detailed.py +297 -0
  320. proxyrequest_sdk/_generated/models/order_detailed_ledgers_item.py +48 -0
  321. proxyrequest_sdk/_generated/models/order_ledgers_item.py +48 -0
  322. proxyrequest_sdk/_generated/models/order_package.py +48 -0
  323. proxyrequest_sdk/_generated/models/orders_destroy_response_400.py +99 -0
  324. proxyrequest_sdk/_generated/models/orders_destroy_response_401.py +99 -0
  325. proxyrequest_sdk/_generated/models/orders_destroy_response_403.py +99 -0
  326. proxyrequest_sdk/_generated/models/orders_destroy_response_404.py +99 -0
  327. proxyrequest_sdk/_generated/models/orders_list_package_type.py +18 -0
  328. proxyrequest_sdk/_generated/models/orders_list_response_400.py +99 -0
  329. proxyrequest_sdk/_generated/models/orders_list_response_401.py +99 -0
  330. proxyrequest_sdk/_generated/models/orders_list_response_403.py +99 -0
  331. proxyrequest_sdk/_generated/models/orders_partial_update_response_400.py +99 -0
  332. proxyrequest_sdk/_generated/models/orders_partial_update_response_401.py +99 -0
  333. proxyrequest_sdk/_generated/models/orders_partial_update_response_403.py +99 -0
  334. proxyrequest_sdk/_generated/models/orders_partial_update_response_404.py +99 -0
  335. proxyrequest_sdk/_generated/models/orders_retrieve_response_400.py +99 -0
  336. proxyrequest_sdk/_generated/models/orders_retrieve_response_401.py +99 -0
  337. proxyrequest_sdk/_generated/models/orders_retrieve_response_403.py +99 -0
  338. proxyrequest_sdk/_generated/models/orders_retrieve_response_404.py +99 -0
  339. proxyrequest_sdk/_generated/models/overall_point.py +76 -0
  340. proxyrequest_sdk/_generated/models/overall_response.py +131 -0
  341. proxyrequest_sdk/_generated/models/package.py +266 -0
  342. proxyrequest_sdk/_generated/models/package_billing_model.py +48 -0
  343. proxyrequest_sdk/_generated/models/package_commission.py +110 -0
  344. proxyrequest_sdk/_generated/models/package_short.py +104 -0
  345. proxyrequest_sdk/_generated/models/packages_commissions_list_pricing_unit.py +18 -0
  346. proxyrequest_sdk/_generated/models/packages_commissions_list_response_400.py +99 -0
  347. proxyrequest_sdk/_generated/models/packages_commissions_list_response_401.py +99 -0
  348. proxyrequest_sdk/_generated/models/packages_commissions_list_response_403.py +99 -0
  349. proxyrequest_sdk/_generated/models/packages_commissions_list_type.py +18 -0
  350. proxyrequest_sdk/_generated/models/packages_list_pricing_unit.py +18 -0
  351. proxyrequest_sdk/_generated/models/packages_list_response_400.py +99 -0
  352. proxyrequest_sdk/_generated/models/packages_list_response_401.py +99 -0
  353. proxyrequest_sdk/_generated/models/packages_list_response_403.py +99 -0
  354. proxyrequest_sdk/_generated/models/packages_list_type.py +18 -0
  355. proxyrequest_sdk/_generated/models/paginated_affiliate_list.py +122 -0
  356. proxyrequest_sdk/_generated/models/paginated_affiliate_reward_list.py +122 -0
  357. proxyrequest_sdk/_generated/models/paginated_api_key_list.py +122 -0
  358. proxyrequest_sdk/_generated/models/paginated_city_list.py +122 -0
  359. proxyrequest_sdk/_generated/models/paginated_continent_list.py +122 -0
  360. proxyrequest_sdk/_generated/models/paginated_country_list.py +122 -0
  361. proxyrequest_sdk/_generated/models/paginated_coupon_redeem_list.py +122 -0
  362. proxyrequest_sdk/_generated/models/paginated_coupon_short_list.py +122 -0
  363. proxyrequest_sdk/_generated/models/paginated_invoice_list.py +122 -0
  364. proxyrequest_sdk/_generated/models/paginated_isp_list.py +122 -0
  365. proxyrequest_sdk/_generated/models/paginated_location_asn_record_list.py +122 -0
  366. proxyrequest_sdk/_generated/models/paginated_news_list.py +122 -0
  367. proxyrequest_sdk/_generated/models/paginated_order_list.py +122 -0
  368. proxyrequest_sdk/_generated/models/paginated_package_commission_list.py +122 -0
  369. proxyrequest_sdk/_generated/models/paginated_package_list.py +122 -0
  370. proxyrequest_sdk/_generated/models/paginated_region_list.py +122 -0
  371. proxyrequest_sdk/_generated/models/paginated_reward_list.py +122 -0
  372. proxyrequest_sdk/_generated/models/paginated_user_list.py +122 -0
  373. proxyrequest_sdk/_generated/models/paginated_webhook_list.py +122 -0
  374. proxyrequest_sdk/_generated/models/password_recovery_response.py +66 -0
  375. proxyrequest_sdk/_generated/models/patched_coupon_update_request.py +188 -0
  376. proxyrequest_sdk/_generated/models/patched_order_auto_renewal_request.py +67 -0
  377. proxyrequest_sdk/_generated/models/patched_profile_update_request.py +207 -0
  378. proxyrequest_sdk/_generated/models/patched_telegram_connection_update_request.py +67 -0
  379. proxyrequest_sdk/_generated/models/patched_user_update_request.py +252 -0
  380. proxyrequest_sdk/_generated/models/patched_user_update_request_meta.py +50 -0
  381. proxyrequest_sdk/_generated/models/payment_link_response.py +60 -0
  382. proxyrequest_sdk/_generated/models/pricing_enum.py +18 -0
  383. proxyrequest_sdk/_generated/models/pricing_unit_enum.py +18 -0
  384. proxyrequest_sdk/_generated/models/profile_2_fa_confirm_create_response_400.py +99 -0
  385. proxyrequest_sdk/_generated/models/profile_2_fa_confirm_create_response_401.py +99 -0
  386. proxyrequest_sdk/_generated/models/profile_2_fa_confirm_create_response_403.py +99 -0
  387. proxyrequest_sdk/_generated/models/profile_2_fa_disable_create_response_400.py +99 -0
  388. proxyrequest_sdk/_generated/models/profile_2_fa_disable_create_response_401.py +99 -0
  389. proxyrequest_sdk/_generated/models/profile_2_fa_disable_create_response_403.py +99 -0
  390. proxyrequest_sdk/_generated/models/profile_2_fa_setup_create_response_400.py +99 -0
  391. proxyrequest_sdk/_generated/models/profile_2_fa_setup_create_response_401.py +99 -0
  392. proxyrequest_sdk/_generated/models/profile_2_fa_setup_create_response_403.py +99 -0
  393. proxyrequest_sdk/_generated/models/profile_2_fa_status_retrieve_response_400.py +99 -0
  394. proxyrequest_sdk/_generated/models/profile_2_fa_status_retrieve_response_401.py +99 -0
  395. proxyrequest_sdk/_generated/models/profile_2_fa_status_retrieve_response_403.py +99 -0
  396. proxyrequest_sdk/_generated/models/profile_change_password_create_response_400.py +99 -0
  397. proxyrequest_sdk/_generated/models/profile_change_password_create_response_401.py +99 -0
  398. proxyrequest_sdk/_generated/models/profile_change_password_create_response_403.py +99 -0
  399. proxyrequest_sdk/_generated/models/profile_destroy_response_400.py +99 -0
  400. proxyrequest_sdk/_generated/models/profile_destroy_response_401.py +99 -0
  401. proxyrequest_sdk/_generated/models/profile_destroy_response_403.py +99 -0
  402. proxyrequest_sdk/_generated/models/profile_partial_update_response_400.py +99 -0
  403. proxyrequest_sdk/_generated/models/profile_partial_update_response_401.py +99 -0
  404. proxyrequest_sdk/_generated/models/profile_partial_update_response_403.py +99 -0
  405. proxyrequest_sdk/_generated/models/profile_retrieve_response_400.py +99 -0
  406. proxyrequest_sdk/_generated/models/profile_retrieve_response_401.py +99 -0
  407. proxyrequest_sdk/_generated/models/profile_retrieve_response_403.py +99 -0
  408. proxyrequest_sdk/_generated/models/protocol_enum.py +19 -0
  409. proxyrequest_sdk/_generated/models/proxies_generate_create_response_400.py +99 -0
  410. proxyrequest_sdk/_generated/models/proxies_generate_create_response_401.py +99 -0
  411. proxyrequest_sdk/_generated/models/proxies_generate_create_response_403.py +99 -0
  412. proxyrequest_sdk/_generated/models/proxies_generate_create_response_404.py +99 -0
  413. proxyrequest_sdk/_generated/models/proxy_generation_connection_request.py +95 -0
  414. proxyrequest_sdk/_generated/models/proxy_generation_session_request.py +60 -0
  415. proxyrequest_sdk/_generated/models/proxy_generation_targeting_request.py +124 -0
  416. proxyrequest_sdk/_generated/models/proxy_password_reset_response.py +66 -0
  417. proxyrequest_sdk/_generated/models/proxy_type_enum.py +18 -0
  418. proxyrequest_sdk/_generated/models/recover_password_create_response_400.py +99 -0
  419. proxyrequest_sdk/_generated/models/recover_password_request.py +70 -0
  420. proxyrequest_sdk/_generated/models/refresh_create_response_400.py +99 -0
  421. proxyrequest_sdk/_generated/models/refresh_create_response_401.py +99 -0
  422. proxyrequest_sdk/_generated/models/region.py +145 -0
  423. proxyrequest_sdk/_generated/models/reset_password_create_response_400.py +99 -0
  424. proxyrequest_sdk/_generated/models/reset_password_create_response_404.py +99 -0
  425. proxyrequest_sdk/_generated/models/reset_password_request.py +61 -0
  426. proxyrequest_sdk/_generated/models/reward.py +138 -0
  427. proxyrequest_sdk/_generated/models/reward_claim_request.py +71 -0
  428. proxyrequest_sdk/_generated/models/reward_status_enum.py +20 -0
  429. proxyrequest_sdk/_generated/models/rewards_claim_create_response_400.py +99 -0
  430. proxyrequest_sdk/_generated/models/rewards_claim_create_response_401.py +99 -0
  431. proxyrequest_sdk/_generated/models/rewards_claim_create_response_403.py +99 -0
  432. proxyrequest_sdk/_generated/models/rewards_list_level.py +20 -0
  433. proxyrequest_sdk/_generated/models/rewards_list_response_400.py +99 -0
  434. proxyrequest_sdk/_generated/models/rewards_list_response_401.py +99 -0
  435. proxyrequest_sdk/_generated/models/rewards_list_response_403.py +99 -0
  436. proxyrequest_sdk/_generated/models/session_delete_response.py +59 -0
  437. proxyrequest_sdk/_generated/models/session_list_response.py +68 -0
  438. proxyrequest_sdk/_generated/models/sessions_destroy_response_400.py +99 -0
  439. proxyrequest_sdk/_generated/models/sessions_destroy_response_401.py +99 -0
  440. proxyrequest_sdk/_generated/models/sessions_destroy_response_403.py +99 -0
  441. proxyrequest_sdk/_generated/models/sessions_destroy_response_404.py +99 -0
  442. proxyrequest_sdk/_generated/models/sessions_list_response_400.py +99 -0
  443. proxyrequest_sdk/_generated/models/sessions_list_response_401.py +99 -0
  444. proxyrequest_sdk/_generated/models/sessions_list_response_403.py +99 -0
  445. proxyrequest_sdk/_generated/models/settings_crypto.py +61 -0
  446. proxyrequest_sdk/_generated/models/settings_gateway.py +118 -0
  447. proxyrequest_sdk/_generated/models/settings_referral.py +80 -0
  448. proxyrequest_sdk/_generated/models/settings_response.py +138 -0
  449. proxyrequest_sdk/_generated/models/settings_retrieve_response_400.py +99 -0
  450. proxyrequest_sdk/_generated/models/settings_retrieve_response_401.py +99 -0
  451. proxyrequest_sdk/_generated/models/settings_retrieve_response_403.py +99 -0
  452. proxyrequest_sdk/_generated/models/settings_retrieve_response_500.py +99 -0
  453. proxyrequest_sdk/_generated/models/sign_up_request.py +98 -0
  454. proxyrequest_sdk/_generated/models/signup_create_response_400.py +99 -0
  455. proxyrequest_sdk/_generated/models/signup_create_response_403.py +99 -0
  456. proxyrequest_sdk/_generated/models/subtract_data_request.py +68 -0
  457. proxyrequest_sdk/_generated/models/targeting_options.py +227 -0
  458. proxyrequest_sdk/_generated/models/telegram_connection_response.py +157 -0
  459. proxyrequest_sdk/_generated/models/telegram_link_consume_request.py +91 -0
  460. proxyrequest_sdk/_generated/models/telegram_link_response.py +76 -0
  461. proxyrequest_sdk/_generated/models/telegram_session_request.py +66 -0
  462. proxyrequest_sdk/_generated/models/telegram_session_response.py +96 -0
  463. proxyrequest_sdk/_generated/models/telegram_session_response_user.py +48 -0
  464. proxyrequest_sdk/_generated/models/token_pair_response.py +68 -0
  465. proxyrequest_sdk/_generated/models/token_refresh_request.py +60 -0
  466. proxyrequest_sdk/_generated/models/token_refresh_response.py +60 -0
  467. proxyrequest_sdk/_generated/models/transaction_record.py +170 -0
  468. proxyrequest_sdk/_generated/models/transactions_response.py +131 -0
  469. proxyrequest_sdk/_generated/models/two_factor_confirm_request.py +59 -0
  470. proxyrequest_sdk/_generated/models/two_factor_disable_request.py +59 -0
  471. proxyrequest_sdk/_generated/models/two_factor_setup_response.py +76 -0
  472. proxyrequest_sdk/_generated/models/user.py +473 -0
  473. proxyrequest_sdk/_generated/models/user_coupons_item.py +48 -0
  474. proxyrequest_sdk/_generated/models/user_create_request.py +244 -0
  475. proxyrequest_sdk/_generated/models/user_create_request_meta.py +50 -0
  476. proxyrequest_sdk/_generated/models/user_currency.py +50 -0
  477. proxyrequest_sdk/_generated/models/user_password_reset_request.py +69 -0
  478. proxyrequest_sdk/_generated/models/users_create_response_400.py +99 -0
  479. proxyrequest_sdk/_generated/models/users_create_response_401.py +99 -0
  480. proxyrequest_sdk/_generated/models/users_create_response_403.py +99 -0
  481. proxyrequest_sdk/_generated/models/users_data_add_create_response_400.py +99 -0
  482. proxyrequest_sdk/_generated/models/users_data_add_create_response_401.py +99 -0
  483. proxyrequest_sdk/_generated/models/users_data_add_create_response_403.py +99 -0
  484. proxyrequest_sdk/_generated/models/users_data_add_create_response_404.py +99 -0
  485. proxyrequest_sdk/_generated/models/users_data_subtract_create_response_400.py +99 -0
  486. proxyrequest_sdk/_generated/models/users_data_subtract_create_response_401.py +99 -0
  487. proxyrequest_sdk/_generated/models/users_data_subtract_create_response_403.py +99 -0
  488. proxyrequest_sdk/_generated/models/users_data_subtract_create_response_404.py +99 -0
  489. proxyrequest_sdk/_generated/models/users_destroy_response_400.py +99 -0
  490. proxyrequest_sdk/_generated/models/users_destroy_response_401.py +99 -0
  491. proxyrequest_sdk/_generated/models/users_destroy_response_403.py +99 -0
  492. proxyrequest_sdk/_generated/models/users_destroy_response_404.py +99 -0
  493. proxyrequest_sdk/_generated/models/users_list_response_400.py +99 -0
  494. proxyrequest_sdk/_generated/models/users_list_response_401.py +99 -0
  495. proxyrequest_sdk/_generated/models/users_list_response_403.py +99 -0
  496. proxyrequest_sdk/_generated/models/users_orders_list_response_400.py +99 -0
  497. proxyrequest_sdk/_generated/models/users_orders_list_response_401.py +99 -0
  498. proxyrequest_sdk/_generated/models/users_orders_list_response_403.py +99 -0
  499. proxyrequest_sdk/_generated/models/users_orders_list_response_404.py +99 -0
  500. proxyrequest_sdk/_generated/models/users_partial_update_response_400.py +99 -0
  501. proxyrequest_sdk/_generated/models/users_partial_update_response_401.py +99 -0
  502. proxyrequest_sdk/_generated/models/users_partial_update_response_403.py +99 -0
  503. proxyrequest_sdk/_generated/models/users_partial_update_response_404.py +99 -0
  504. proxyrequest_sdk/_generated/models/users_password_create_response_400.py +99 -0
  505. proxyrequest_sdk/_generated/models/users_password_create_response_401.py +99 -0
  506. proxyrequest_sdk/_generated/models/users_password_create_response_403.py +99 -0
  507. proxyrequest_sdk/_generated/models/users_password_create_response_404.py +99 -0
  508. proxyrequest_sdk/_generated/models/users_retrieve_response_400.py +99 -0
  509. proxyrequest_sdk/_generated/models/users_retrieve_response_401.py +99 -0
  510. proxyrequest_sdk/_generated/models/users_retrieve_response_403.py +99 -0
  511. proxyrequest_sdk/_generated/models/users_retrieve_response_404.py +99 -0
  512. proxyrequest_sdk/_generated/models/webhook_create_request.py +102 -0
  513. proxyrequest_sdk/_generated/models/webhook_created.py +147 -0
  514. proxyrequest_sdk/_generated/models/webhook_list.py +136 -0
  515. proxyrequest_sdk/_generated/models/webhook_scope_enum.py +19 -0
  516. proxyrequest_sdk/_generated/models/webhooks_create_response_400.py +99 -0
  517. proxyrequest_sdk/_generated/models/webhooks_create_response_401.py +99 -0
  518. proxyrequest_sdk/_generated/models/webhooks_create_response_403.py +99 -0
  519. proxyrequest_sdk/_generated/models/webhooks_destroy_response_400.py +99 -0
  520. proxyrequest_sdk/_generated/models/webhooks_destroy_response_401.py +99 -0
  521. proxyrequest_sdk/_generated/models/webhooks_destroy_response_403.py +99 -0
  522. proxyrequest_sdk/_generated/models/webhooks_destroy_response_404.py +99 -0
  523. proxyrequest_sdk/_generated/models/webhooks_list_response_400.py +99 -0
  524. proxyrequest_sdk/_generated/models/webhooks_list_response_401.py +99 -0
  525. proxyrequest_sdk/_generated/models/webhooks_list_response_403.py +99 -0
  526. proxyrequest_sdk/_generated/models/webhooks_retrieve_response_400.py +99 -0
  527. proxyrequest_sdk/_generated/models/webhooks_retrieve_response_401.py +99 -0
  528. proxyrequest_sdk/_generated/models/webhooks_retrieve_response_403.py +99 -0
  529. proxyrequest_sdk/_generated/models/webhooks_retrieve_response_404.py +99 -0
  530. proxyrequest_sdk/_generated/types.py +54 -0
  531. proxyrequest_sdk/client.py +427 -0
  532. proxyrequest_sdk/errors.py +177 -0
  533. proxyrequest_sdk/files.py +53 -0
  534. proxyrequest_sdk/models/__init__.py +312 -0
  535. proxyrequest_sdk/py.typed +1 -0
  536. proxyrequest_sdk/resources/__init__.py +80 -0
  537. proxyrequest_sdk/resources/affiliates.py +121 -0
  538. proxyrequest_sdk/resources/analytics.py +453 -0
  539. proxyrequest_sdk/resources/api_keys.py +94 -0
  540. proxyrequest_sdk/resources/authorization.py +143 -0
  541. proxyrequest_sdk/resources/coupons.py +277 -0
  542. proxyrequest_sdk/resources/invoices.py +202 -0
  543. proxyrequest_sdk/resources/locations.py +477 -0
  544. proxyrequest_sdk/resources/news.py +64 -0
  545. proxyrequest_sdk/resources/orders.py +183 -0
  546. proxyrequest_sdk/resources/packages.py +136 -0
  547. proxyrequest_sdk/resources/profile.py +208 -0
  548. proxyrequest_sdk/resources/proxies.py +45 -0
  549. proxyrequest_sdk/resources/rewards.py +92 -0
  550. proxyrequest_sdk/resources/sessions.py +58 -0
  551. proxyrequest_sdk/resources/settings.py +36 -0
  552. proxyrequest_sdk/resources/telegram.py +122 -0
  553. proxyrequest_sdk/resources/telegram_service.py +100 -0
  554. proxyrequest_sdk/resources/users.py +331 -0
  555. proxyrequest_sdk/resources/webhooks.py +114 -0
  556. proxyrequest_sdk/webhooks.py +95 -0
  557. proxyrequest_sdk-1.0.0.dist-info/METADATA +322 -0
  558. proxyrequest_sdk-1.0.0.dist-info/RECORD +560 -0
  559. proxyrequest_sdk-1.0.0.dist-info/WHEEL +4 -0
  560. proxyrequest_sdk-1.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,99 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..types import UNSET, Unset
12
+ from typing import cast
13
+
14
+
15
+ T = TypeVar("T", bound="WebhooksRetrieveResponse403")
16
+
17
+
18
+ @_attrs_define
19
+ class WebhooksRetrieveResponse403:
20
+ """Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of
21
+ human-readable messages.
22
+
23
+ """
24
+
25
+ detail: str | Unset = UNSET
26
+ non_field_errors: list[str] | Unset = UNSET
27
+ additional_properties: dict[str, list[str] | str] = _attrs_field(init=False, factory=dict)
28
+
29
+ def to_dict(self) -> dict[str, Any]:
30
+ detail = self.detail
31
+
32
+ non_field_errors: list[str] | Unset = UNSET
33
+ if not isinstance(self.non_field_errors, Unset):
34
+ non_field_errors = self.non_field_errors
35
+
36
+ field_dict: dict[str, Any] = {}
37
+ for prop_name, prop in self.additional_properties.items():
38
+ if isinstance(prop, list):
39
+ field_dict[prop_name] = prop
40
+
41
+ else:
42
+ field_dict[prop_name] = prop
43
+
44
+ field_dict.update({})
45
+ if detail is not UNSET:
46
+ field_dict["detail"] = detail
47
+ if non_field_errors is not UNSET:
48
+ field_dict["non_field_errors"] = non_field_errors
49
+
50
+ return field_dict
51
+
52
+ @classmethod
53
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
54
+ d = dict(src_dict)
55
+ detail = d.pop("detail", UNSET)
56
+
57
+ non_field_errors = cast(list[str], d.pop("non_field_errors", UNSET))
58
+
59
+ webhooks_retrieve_response_403 = cls(
60
+ detail=detail,
61
+ non_field_errors=non_field_errors,
62
+ )
63
+
64
+ additional_properties = {}
65
+ for prop_name, prop_dict in d.items():
66
+
67
+ def _parse_additional_property(data: object) -> list[str] | str:
68
+ try:
69
+ if not isinstance(data, list):
70
+ raise TypeError()
71
+ additional_property_type_1 = cast(list[str], data)
72
+
73
+ return additional_property_type_1
74
+ except (TypeError, ValueError, AttributeError, KeyError):
75
+ pass
76
+ return cast(list[str] | str, data)
77
+
78
+ additional_property = _parse_additional_property(prop_dict)
79
+
80
+ additional_properties[prop_name] = additional_property
81
+
82
+ webhooks_retrieve_response_403.additional_properties = additional_properties
83
+ return webhooks_retrieve_response_403
84
+
85
+ @property
86
+ def additional_keys(self) -> list[str]:
87
+ return list(self.additional_properties.keys())
88
+
89
+ def __getitem__(self, key: str) -> list[str] | str:
90
+ return self.additional_properties[key]
91
+
92
+ def __setitem__(self, key: str, value: list[str] | str) -> None:
93
+ self.additional_properties[key] = value
94
+
95
+ def __delitem__(self, key: str) -> None:
96
+ del self.additional_properties[key]
97
+
98
+ def __contains__(self, key: str) -> bool:
99
+ return key in self.additional_properties
@@ -0,0 +1,99 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..types import UNSET, Unset
12
+ from typing import cast
13
+
14
+
15
+ T = TypeVar("T", bound="WebhooksRetrieveResponse404")
16
+
17
+
18
+ @_attrs_define
19
+ class WebhooksRetrieveResponse404:
20
+ """Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of
21
+ human-readable messages.
22
+
23
+ """
24
+
25
+ detail: str | Unset = UNSET
26
+ non_field_errors: list[str] | Unset = UNSET
27
+ additional_properties: dict[str, list[str] | str] = _attrs_field(init=False, factory=dict)
28
+
29
+ def to_dict(self) -> dict[str, Any]:
30
+ detail = self.detail
31
+
32
+ non_field_errors: list[str] | Unset = UNSET
33
+ if not isinstance(self.non_field_errors, Unset):
34
+ non_field_errors = self.non_field_errors
35
+
36
+ field_dict: dict[str, Any] = {}
37
+ for prop_name, prop in self.additional_properties.items():
38
+ if isinstance(prop, list):
39
+ field_dict[prop_name] = prop
40
+
41
+ else:
42
+ field_dict[prop_name] = prop
43
+
44
+ field_dict.update({})
45
+ if detail is not UNSET:
46
+ field_dict["detail"] = detail
47
+ if non_field_errors is not UNSET:
48
+ field_dict["non_field_errors"] = non_field_errors
49
+
50
+ return field_dict
51
+
52
+ @classmethod
53
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
54
+ d = dict(src_dict)
55
+ detail = d.pop("detail", UNSET)
56
+
57
+ non_field_errors = cast(list[str], d.pop("non_field_errors", UNSET))
58
+
59
+ webhooks_retrieve_response_404 = cls(
60
+ detail=detail,
61
+ non_field_errors=non_field_errors,
62
+ )
63
+
64
+ additional_properties = {}
65
+ for prop_name, prop_dict in d.items():
66
+
67
+ def _parse_additional_property(data: object) -> list[str] | str:
68
+ try:
69
+ if not isinstance(data, list):
70
+ raise TypeError()
71
+ additional_property_type_1 = cast(list[str], data)
72
+
73
+ return additional_property_type_1
74
+ except (TypeError, ValueError, AttributeError, KeyError):
75
+ pass
76
+ return cast(list[str] | str, data)
77
+
78
+ additional_property = _parse_additional_property(prop_dict)
79
+
80
+ additional_properties[prop_name] = additional_property
81
+
82
+ webhooks_retrieve_response_404.additional_properties = additional_properties
83
+ return webhooks_retrieve_response_404
84
+
85
+ @property
86
+ def additional_keys(self) -> list[str]:
87
+ return list(self.additional_properties.keys())
88
+
89
+ def __getitem__(self, key: str) -> list[str] | str:
90
+ return self.additional_properties[key]
91
+
92
+ def __setitem__(self, key: str, value: list[str] | str) -> None:
93
+ self.additional_properties[key] = value
94
+
95
+ def __delitem__(self, key: str) -> None:
96
+ del self.additional_properties[key]
97
+
98
+ def __contains__(self, key: str) -> bool:
99
+ return key in self.additional_properties
@@ -0,0 +1,54 @@
1
+ """Contains some shared types for properties"""
2
+
3
+ from collections.abc import Mapping, MutableMapping
4
+ from http import HTTPStatus
5
+ from typing import BinaryIO, Generic, TypeVar, Literal, IO
6
+
7
+ from attrs import define
8
+
9
+
10
+ class Unset:
11
+ def __bool__(self) -> Literal[False]:
12
+ return False
13
+
14
+
15
+ UNSET: Unset = Unset()
16
+
17
+ # The types that `httpx.Client(files=)` can accept, copied from that library.
18
+ FileContent = IO[bytes] | bytes | str
19
+ FileTypes = (
20
+ # (filename, file (or bytes), content_type)
21
+ tuple[str | None, FileContent, str | None]
22
+ # (filename, file (or bytes), content_type, headers)
23
+ | tuple[str | None, FileContent, str | None, Mapping[str, str]]
24
+ )
25
+ RequestFiles = list[tuple[str, FileTypes]]
26
+
27
+
28
+ @define
29
+ class File:
30
+ """Contains information for file uploads"""
31
+
32
+ payload: BinaryIO
33
+ file_name: str | None = None
34
+ mime_type: str | None = None
35
+
36
+ def to_tuple(self) -> FileTypes:
37
+ """Return a tuple representation that httpx will accept for multipart/form-data"""
38
+ return self.file_name, self.payload, self.mime_type
39
+
40
+
41
+ T = TypeVar("T")
42
+
43
+
44
+ @define
45
+ class Response(Generic[T]):
46
+ """A response from an endpoint"""
47
+
48
+ status_code: HTTPStatus
49
+ content: bytes
50
+ headers: MutableMapping[str, str]
51
+ parsed: T | None
52
+
53
+
54
+ __all__ = ["UNSET", "File", "FileTypes", "RequestFiles", "Response", "Unset"]
@@ -0,0 +1,427 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import AsyncIterator, Awaitable, Callable, Iterator, Mapping
4
+ from importlib.metadata import PackageNotFoundError, version
5
+ from types import TracebackType
6
+ from typing import Any, TypeVar
7
+ from urllib.parse import parse_qs, urlparse
8
+
9
+ import httpx
10
+
11
+ from . import resources
12
+ from ._generated.client import AuthenticatedClient as GeneratedClient
13
+ from ._generated.types import Response, Unset
14
+ from .errors import ApiError, PaginationError
15
+ from .files import FileDownload
16
+
17
+ DEFAULT_BASE_URL = "https://api.proxyrequest.com/api/v1"
18
+ T = TypeVar("T")
19
+
20
+ try:
21
+ _PACKAGE_VERSION = version("proxyrequest-sdk")
22
+ except PackageNotFoundError: # pragma: no cover - only possible in an uninstalled source tree
23
+ _PACKAGE_VERSION = "0.0.0"
24
+ USER_AGENT = f"proxyrequest-python-sdk/{_PACKAGE_VERSION}"
25
+
26
+
27
+ def _base_url(value: str) -> str:
28
+ normalized = value.rstrip("/")
29
+ url = httpx.URL(normalized)
30
+ if url.scheme not in {"http", "https"} or not url.host:
31
+ raise ValueError("base_url must be an absolute HTTP or HTTPS URL.")
32
+ return normalized
33
+
34
+
35
+ def _timeout(value: float | httpx.Timeout, connect_timeout: float) -> httpx.Timeout:
36
+ return (
37
+ value if isinstance(value, httpx.Timeout) else httpx.Timeout(value, connect=connect_timeout)
38
+ )
39
+
40
+
41
+ def _headers(language: str, authorization: str | None, user_agent: str) -> dict[str, str]:
42
+ if not language.strip():
43
+ raise ValueError("language must not be empty.")
44
+ headers = {
45
+ "Accept": "application/json",
46
+ "Accept-Language": language,
47
+ "User-Agent": user_agent,
48
+ }
49
+ if authorization is not None:
50
+ headers["Authorization"] = authorization
51
+ return headers
52
+
53
+
54
+ def _authorization(api_key: str | None, bearer_token: str | None) -> str | None:
55
+ if api_key and bearer_token:
56
+ raise ValueError("Configure either api_key or bearer_token, not both.")
57
+ if api_key is not None:
58
+ if not api_key:
59
+ raise ValueError("api_key must not be empty.")
60
+ return f"Static {api_key}"
61
+ if bearer_token is not None:
62
+ if not bearer_token:
63
+ raise ValueError("bearer_token must not be empty.")
64
+ return f"Bearer {bearer_token}"
65
+ return None
66
+
67
+
68
+ def _ensure_base_url(client: httpx.Client | httpx.AsyncClient, base_url: str) -> None:
69
+ configured = str(client.base_url).rstrip("/")
70
+ if configured != base_url:
71
+ raise ValueError(f"The injected httpx client must use base_url={base_url!r}.")
72
+
73
+
74
+ def _apply_headers(client: httpx.Client | httpx.AsyncClient, headers: Mapping[str, str]) -> None:
75
+ client.headers.update(headers)
76
+ if "Authorization" not in headers:
77
+ client.headers.pop("Authorization", None)
78
+
79
+
80
+ def _response_value(response: Response[Any]) -> Any:
81
+ status_code = int(response.status_code)
82
+ if not 200 <= status_code < 300:
83
+ raise ApiError.from_response(status_code, response.content, response.headers)
84
+ if response.parsed is None and response.content and status_code not in {204, 205}:
85
+ raise ApiError.unexpected(
86
+ f"ProxyRequest returned an unreadable HTTP {status_code} response."
87
+ )
88
+ return response.parsed
89
+
90
+
91
+ def _next_offset(page: Any, current_offset: int, count: int, visited: set[str]) -> int | None:
92
+ next_url = getattr(page, "next_", None)
93
+ if next_url is None or isinstance(next_url, Unset) or next_url == "":
94
+ return None
95
+ if not isinstance(next_url, str) or next_url in visited:
96
+ raise PaginationError("The API returned an invalid or repeated pagination URL.")
97
+ visited.add(next_url)
98
+ values = parse_qs(urlparse(next_url).query).get("offset", [])
99
+ if values:
100
+ try:
101
+ return int(values[0])
102
+ except ValueError as error:
103
+ raise PaginationError("The API returned a non-integer pagination offset.") from error
104
+ return current_offset + count
105
+
106
+
107
+ class Client:
108
+ """Synchronous ProxyRequest API client."""
109
+
110
+ def __init__(
111
+ self,
112
+ *,
113
+ api_key: str | None = None,
114
+ bearer_token: str | None = None,
115
+ base_url: str = DEFAULT_BASE_URL,
116
+ language: str = "en",
117
+ timeout: float | httpx.Timeout = 15.0,
118
+ connect_timeout: float = 5.0,
119
+ verify: bool = True,
120
+ follow_redirects: bool = False,
121
+ http_client: httpx.Client | None = None,
122
+ ) -> None:
123
+ self.base_url = _base_url(base_url)
124
+ authorization = _authorization(api_key, bearer_token)
125
+ default_headers = _headers(language, authorization, USER_AGENT)
126
+ self._owns_http_client = http_client is None
127
+ if http_client is None:
128
+ http_client = httpx.Client(
129
+ base_url=self.base_url,
130
+ headers=default_headers,
131
+ timeout=_timeout(timeout, connect_timeout),
132
+ verify=verify,
133
+ follow_redirects=follow_redirects,
134
+ )
135
+ else:
136
+ _ensure_base_url(http_client, self.base_url)
137
+ _apply_headers(http_client, default_headers)
138
+ self._http_client = http_client
139
+ self._generated = GeneratedClient(base_url=self.base_url, token="")
140
+ self._generated.set_httpx_client(http_client)
141
+ self._closed = False
142
+ self._attach_resources()
143
+
144
+ @classmethod
145
+ def with_api_key(cls, api_key: str, **options: Any) -> Client:
146
+ return cls(api_key=api_key, **options)
147
+
148
+ @classmethod
149
+ def with_bearer_token(cls, token: str, **options: Any) -> Client:
150
+ return cls(bearer_token=token, **options)
151
+
152
+ @classmethod
153
+ def anonymous(cls, **options: Any) -> Client:
154
+ return cls(**options)
155
+
156
+ def _attach_resources(self) -> None:
157
+ self.api_keys = resources.APIKeysResource(self)
158
+ self.affiliates = resources.AffiliatesResource(self)
159
+ self.analytics = resources.AnalyticsResource(self)
160
+ self.authorization = resources.AuthorizationResource(self)
161
+ self.coupons = resources.CouponsResource(self)
162
+ self.invoices = resources.InvoicesResource(self)
163
+ self.locations = resources.LocationsResource(self)
164
+ self.news = resources.NewsResource(self)
165
+ self.orders = resources.OrdersResource(self)
166
+ self.packages = resources.PackagesResource(self)
167
+ self.profile = resources.ProfileResource(self)
168
+ self.proxies = resources.ProxiesResource(self)
169
+ self.rewards = resources.RewardsResource(self)
170
+ self.sessions = resources.SessionsResource(self)
171
+ self.settings = resources.SettingsResource(self)
172
+ self.telegram = resources.TelegramDashboardResource(self)
173
+ self.telegram_service = resources.TelegramServiceResource(self)
174
+ self.users = resources.UsersResource(self)
175
+ self.webhooks = resources.WebhooksResource(self)
176
+
177
+ def _call(self, endpoint: Callable[..., Response[Any]], **kwargs: Any) -> Any:
178
+ try:
179
+ return _response_value(endpoint(client=self._generated, **kwargs))
180
+ except ApiError:
181
+ raise
182
+ except httpx.HTTPError as error:
183
+ raise ApiError.network(error) from error
184
+ except Exception as error:
185
+ raise ApiError.unexpected(
186
+ "Unable to decode the ProxyRequest API response.", error
187
+ ) from error
188
+
189
+ def _download(self, endpoint: Callable[..., Response[Any]], **kwargs: Any) -> FileDownload:
190
+ try:
191
+ response = endpoint(client=self._generated, **kwargs)
192
+ _response_value(response)
193
+ return FileDownload.from_response(response.content, response.headers)
194
+ except ApiError:
195
+ raise
196
+ except httpx.HTTPError as error:
197
+ raise ApiError.network(error) from error
198
+
199
+ def request(
200
+ self,
201
+ method: str,
202
+ path: str,
203
+ *,
204
+ params: Mapping[str, Any] | None = None,
205
+ json: Any = None,
206
+ headers: Mapping[str, str] | None = None,
207
+ **options: Any,
208
+ ) -> httpx.Response:
209
+ try:
210
+ response = self._http_client.request(
211
+ method.upper(), path, params=params, json=json, headers=headers, **options
212
+ )
213
+ except httpx.HTTPError as error:
214
+ raise ApiError.network(error) from error
215
+ if not response.is_success:
216
+ raise ApiError.from_response(response.status_code, response.content, response.headers)
217
+ return response
218
+
219
+ def paginate(
220
+ self,
221
+ page_fetcher: Callable[..., Any],
222
+ *,
223
+ limit: int = 100,
224
+ offset: int = 0,
225
+ max_pages: int = 10_000,
226
+ **filters: Any,
227
+ ) -> Iterator[Any]:
228
+ if limit <= 0 or offset < 0 or max_pages <= 0:
229
+ raise ValueError("limit and max_pages must be positive; offset must not be negative.")
230
+ visited: set[str] = set()
231
+ current_offset = offset
232
+ for _ in range(max_pages):
233
+ page = page_fetcher(limit=limit, offset=current_offset, **filters)
234
+ results = getattr(page, "results", None)
235
+ if not isinstance(results, list):
236
+ raise PaginationError("A page object must expose a list in results.")
237
+ yield from results
238
+ next_offset = _next_offset(page, current_offset, len(results), visited)
239
+ if next_offset is None:
240
+ return
241
+ current_offset = next_offset
242
+ raise PaginationError("Pagination stopped after the configured maximum number of pages.")
243
+
244
+ def download_invoice_pdf(self, invoice_id: str) -> FileDownload:
245
+ return self.invoices.download_pdf(invoice_id)
246
+
247
+ def close(self) -> None:
248
+ if not self._closed and self._owns_http_client:
249
+ self._http_client.close()
250
+ self._closed = True
251
+
252
+ def __enter__(self) -> Client:
253
+ return self
254
+
255
+ def __exit__(
256
+ self,
257
+ exc_type: type[BaseException] | None,
258
+ exc_value: BaseException | None,
259
+ traceback: TracebackType | None,
260
+ ) -> None:
261
+ self.close()
262
+
263
+
264
+ class AsyncClient:
265
+ """Asynchronous ProxyRequest API client."""
266
+
267
+ def __init__(
268
+ self,
269
+ *,
270
+ api_key: str | None = None,
271
+ bearer_token: str | None = None,
272
+ base_url: str = DEFAULT_BASE_URL,
273
+ language: str = "en",
274
+ timeout: float | httpx.Timeout = 15.0,
275
+ connect_timeout: float = 5.0,
276
+ verify: bool = True,
277
+ follow_redirects: bool = False,
278
+ http_client: httpx.AsyncClient | None = None,
279
+ ) -> None:
280
+ self.base_url = _base_url(base_url)
281
+ authorization = _authorization(api_key, bearer_token)
282
+ default_headers = _headers(language, authorization, USER_AGENT)
283
+ self._owns_http_client = http_client is None
284
+ if http_client is None:
285
+ http_client = httpx.AsyncClient(
286
+ base_url=self.base_url,
287
+ headers=default_headers,
288
+ timeout=_timeout(timeout, connect_timeout),
289
+ verify=verify,
290
+ follow_redirects=follow_redirects,
291
+ )
292
+ else:
293
+ _ensure_base_url(http_client, self.base_url)
294
+ _apply_headers(http_client, default_headers)
295
+ self._http_client = http_client
296
+ self._generated = GeneratedClient(base_url=self.base_url, token="")
297
+ self._generated.set_async_httpx_client(http_client)
298
+ self._closed = False
299
+ self._attach_resources()
300
+
301
+ @classmethod
302
+ def with_api_key(cls, api_key: str, **options: Any) -> AsyncClient:
303
+ return cls(api_key=api_key, **options)
304
+
305
+ @classmethod
306
+ def with_bearer_token(cls, token: str, **options: Any) -> AsyncClient:
307
+ return cls(bearer_token=token, **options)
308
+
309
+ @classmethod
310
+ def anonymous(cls, **options: Any) -> AsyncClient:
311
+ return cls(**options)
312
+
313
+ def _attach_resources(self) -> None:
314
+ self.api_keys = resources.AsyncAPIKeysResource(self)
315
+ self.affiliates = resources.AsyncAffiliatesResource(self)
316
+ self.analytics = resources.AsyncAnalyticsResource(self)
317
+ self.authorization = resources.AsyncAuthorizationResource(self)
318
+ self.coupons = resources.AsyncCouponsResource(self)
319
+ self.invoices = resources.AsyncInvoicesResource(self)
320
+ self.locations = resources.AsyncLocationsResource(self)
321
+ self.news = resources.AsyncNewsResource(self)
322
+ self.orders = resources.AsyncOrdersResource(self)
323
+ self.packages = resources.AsyncPackagesResource(self)
324
+ self.profile = resources.AsyncProfileResource(self)
325
+ self.proxies = resources.AsyncProxiesResource(self)
326
+ self.rewards = resources.AsyncRewardsResource(self)
327
+ self.sessions = resources.AsyncSessionsResource(self)
328
+ self.settings = resources.AsyncSettingsResource(self)
329
+ self.telegram = resources.AsyncTelegramDashboardResource(self)
330
+ self.telegram_service = resources.AsyncTelegramServiceResource(self)
331
+ self.users = resources.AsyncUsersResource(self)
332
+ self.webhooks = resources.AsyncWebhooksResource(self)
333
+
334
+ async def _call(
335
+ self,
336
+ endpoint: Callable[..., Awaitable[Response[Any]]],
337
+ **kwargs: Any,
338
+ ) -> Any:
339
+ try:
340
+ return _response_value(await endpoint(client=self._generated, **kwargs))
341
+ except ApiError:
342
+ raise
343
+ except httpx.HTTPError as error:
344
+ raise ApiError.network(error) from error
345
+ except Exception as error:
346
+ raise ApiError.unexpected(
347
+ "Unable to decode the ProxyRequest API response.", error
348
+ ) from error
349
+
350
+ async def _download(
351
+ self,
352
+ endpoint: Callable[..., Awaitable[Response[Any]]],
353
+ **kwargs: Any,
354
+ ) -> FileDownload:
355
+ try:
356
+ response = await endpoint(client=self._generated, **kwargs)
357
+ _response_value(response)
358
+ return FileDownload.from_response(response.content, response.headers)
359
+ except ApiError:
360
+ raise
361
+ except httpx.HTTPError as error:
362
+ raise ApiError.network(error) from error
363
+
364
+ async def request(
365
+ self,
366
+ method: str,
367
+ path: str,
368
+ *,
369
+ params: Mapping[str, Any] | None = None,
370
+ json: Any = None,
371
+ headers: Mapping[str, str] | None = None,
372
+ **options: Any,
373
+ ) -> httpx.Response:
374
+ try:
375
+ response = await self._http_client.request(
376
+ method.upper(), path, params=params, json=json, headers=headers, **options
377
+ )
378
+ except httpx.HTTPError as error:
379
+ raise ApiError.network(error) from error
380
+ if not response.is_success:
381
+ raise ApiError.from_response(response.status_code, response.content, response.headers)
382
+ return response
383
+
384
+ async def paginate(
385
+ self,
386
+ page_fetcher: Callable[..., Awaitable[Any]],
387
+ *,
388
+ limit: int = 100,
389
+ offset: int = 0,
390
+ max_pages: int = 10_000,
391
+ **filters: Any,
392
+ ) -> AsyncIterator[Any]:
393
+ if limit <= 0 or offset < 0 or max_pages <= 0:
394
+ raise ValueError("limit and max_pages must be positive; offset must not be negative.")
395
+ visited: set[str] = set()
396
+ current_offset = offset
397
+ for _ in range(max_pages):
398
+ page = await page_fetcher(limit=limit, offset=current_offset, **filters)
399
+ results = getattr(page, "results", None)
400
+ if not isinstance(results, list):
401
+ raise PaginationError("A page object must expose a list in results.")
402
+ for result in results:
403
+ yield result
404
+ next_offset = _next_offset(page, current_offset, len(results), visited)
405
+ if next_offset is None:
406
+ return
407
+ current_offset = next_offset
408
+ raise PaginationError("Pagination stopped after the configured maximum number of pages.")
409
+
410
+ async def download_invoice_pdf(self, invoice_id: str) -> FileDownload:
411
+ return await self.invoices.download_pdf(invoice_id)
412
+
413
+ async def close(self) -> None:
414
+ if not self._closed and self._owns_http_client:
415
+ await self._http_client.aclose()
416
+ self._closed = True
417
+
418
+ async def __aenter__(self) -> AsyncClient:
419
+ return self
420
+
421
+ async def __aexit__(
422
+ self,
423
+ exc_type: type[BaseException] | None,
424
+ exc_value: BaseException | None,
425
+ traceback: TracebackType | None,
426
+ ) -> None:
427
+ await self.close()