proxyrequest-sdk 1.0.0__tar.gz → 2.0.0__tar.gz

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 (639) hide show
  1. proxyrequest_sdk-2.0.0/CHANGELOG.md +32 -0
  2. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/PKG-INFO +41 -27
  3. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/README.md +40 -26
  4. proxyrequest_sdk-2.0.0/docs/SDK-AUDIT.md +346 -0
  5. proxyrequest_sdk-2.0.0/docs/backend-compatibility.md +80 -0
  6. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/docs/guides/purchase-flow.md +1 -2
  7. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/docs/reference/api.md +5 -18
  8. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/docs/reference/models.md +11 -8
  9. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/openapi/openapi.yaml +1985 -620
  10. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/openapi/operations.yaml +1 -6
  11. proxyrequest_sdk-2.0.0/openapi/source.json +12 -0
  12. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/pyproject.toml +1 -1
  13. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/scripts/generate.py +94 -33
  14. proxyrequest_sdk-2.0.0/scripts/sdk_schema.py +32 -0
  15. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/scripts/sync_openapi.py +19 -3
  16. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/__init__.py +2 -0
  17. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/affiliates/affiliates_list.py +4 -1
  18. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/affiliates/affiliates_rewards_list.py +4 -1
  19. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/affiliates/affiliates_rewards_overall_retrieve.py +4 -1
  20. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/analytics/analytics_connections_retrieve.py +4 -1
  21. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/analytics/analytics_domains_retrieve.py +4 -1
  22. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/analytics/analytics_feed_retrieve.py +4 -1
  23. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/analytics/analytics_logs_retrieve.py +4 -1
  24. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/analytics/analytics_overall_retrieve.py +4 -1
  25. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/analytics/analytics_transactions_retrieve.py +4 -1
  26. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/api_keys/api_keys_create.py +4 -1
  27. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/api_keys/api_keys_destroy.py +36 -5
  28. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/api_keys/api_keys_list.py +4 -1
  29. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/authorization/login_create.py +20 -11
  30. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/authorization/login_google_create.py +44 -11
  31. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/api/authorization/login_otp_create.py +196 -0
  32. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/authorization/recover_password_create.py +4 -1
  33. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/authorization/refresh_create.py +4 -1
  34. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/authorization/signup_create.py +4 -1
  35. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/coupons/coupons_calculate_price_create.py +4 -1
  36. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/coupons/coupons_create.py +69 -11
  37. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/coupons/coupons_destroy.py +64 -5
  38. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/coupons/coupons_list.py +4 -1
  39. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/coupons/coupons_partial_update.py +36 -5
  40. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/coupons/coupons_redeems_list.py +4 -1
  41. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/coupons/coupons_retrieve.py +4 -1
  42. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/coupons/coupons_update.py +36 -5
  43. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/invoices/invoices_create.py +76 -16
  44. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/invoices/invoices_destroy.py +64 -5
  45. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/invoices/invoices_download_pdf_retrieve.py +4 -1
  46. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/invoices/invoices_list.py +16 -13
  47. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/invoices/invoices_pay_retrieve.py +4 -1
  48. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/invoices/invoices_retrieve.py +32 -6
  49. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/locations/locations_asn_list.py +4 -1
  50. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/locations/locations_cities_list.py +4 -1
  51. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/locations/locations_cities_retrieve.py +4 -1
  52. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/locations/locations_continents_list.py +4 -1
  53. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/locations/locations_continents_retrieve.py +4 -1
  54. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/locations/locations_countries_list.py +4 -1
  55. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/locations/locations_countries_retrieve.py +4 -1
  56. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/locations/locations_isps_list.py +4 -1
  57. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/locations/locations_regions_list.py +4 -1
  58. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/locations/locations_regions_retrieve.py +4 -1
  59. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/news/news_list.py +4 -1
  60. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/orders/orders_destroy.py +64 -5
  61. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/orders/orders_list.py +4 -1
  62. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/orders/orders_partial_update.py +36 -5
  63. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/orders/orders_retrieve.py +4 -1
  64. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/orders/reset_password_create.py +4 -1
  65. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/packages/packages_commissions_list.py +4 -1
  66. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/packages/packages_list.py +4 -1
  67. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/profile/profile_2fa_confirm_create.py +12 -13
  68. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/profile/profile_2fa_disable_create.py +8 -9
  69. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/profile/profile_2fa_setup_create.py +31 -13
  70. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/profile/profile_2fa_status_retrieve.py +4 -1
  71. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/profile/profile_change_password_create.py +4 -1
  72. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/profile/profile_destroy.py +69 -11
  73. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/profile/profile_partial_update.py +36 -5
  74. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/profile/profile_retrieve.py +4 -1
  75. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/proxies/proxies_generate_create.py +4 -1
  76. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/rewards/rewards_claim_create.py +4 -1
  77. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/rewards/rewards_list.py +4 -1
  78. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/settings/settings_retrieve.py +4 -1
  79. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/telegram_dashboard/integrations_telegram_connection_destroy.py +4 -1
  80. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/telegram_dashboard/integrations_telegram_connection_partial_update.py +4 -1
  81. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/telegram_dashboard/integrations_telegram_connection_retrieve.py +4 -1
  82. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/telegram_dashboard/integrations_telegram_link_create.py +4 -1
  83. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/users/users_create.py +75 -11
  84. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/users/users_data_add_create.py +36 -5
  85. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/users/users_data_subtract_create.py +36 -5
  86. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/users/users_destroy.py +64 -5
  87. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/users/users_list.py +4 -1
  88. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/users/users_orders_list.py +4 -1
  89. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/users/users_partial_update.py +36 -5
  90. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/users/users_password_create.py +4 -1
  91. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/users/users_retrieve.py +4 -1
  92. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/webhooks/webhooks_create.py +36 -5
  93. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/webhooks/webhooks_destroy.py +64 -5
  94. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/webhooks/webhooks_list.py +4 -1
  95. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/webhooks/webhooks_retrieve.py +4 -1
  96. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/__init__.py +66 -36
  97. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/api_keys_destroy_response_409.py +99 -0
  98. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/checkout_status_enum.py +20 -0
  99. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/coupons_create_response_409.py +99 -0
  100. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/coupons_destroy_response_409.py +99 -0
  101. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/coupons_destroy_response_412.py +99 -0
  102. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/coupons_partial_update_response_412.py +99 -0
  103. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/coupons_update_response_412.py +99 -0
  104. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/invoice.py +511 -0
  105. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoice_create_request.py +35 -1
  106. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/invoice_create_request_gateway_enum.py +54 -0
  107. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/invoice_create_request_status_enum.py +18 -0
  108. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/invoice_gateway_enum.py +52 -0
  109. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/invoice.py → proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/invoice_short.py +124 -80
  110. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/invoices_create_response_409.py +99 -0
  111. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/invoices_create_response_502.py +83 -0
  112. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/invoices_destroy_response_409.py +99 -0
  113. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/invoices_destroy_response_412.py +99 -0
  114. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/invoices_list_payment_gateway.py +52 -0
  115. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/login_otp_create_response_400.py +99 -0
  116. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/orders_destroy_response_409.py +99 -0
  117. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/orders_destroy_response_412.py +99 -0
  118. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/orders_partial_update_response_412.py +99 -0
  119. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/otp_challenge.py +73 -0
  120. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/paginated_invoice_list.py → proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/paginated_invoice_read_list.py +32 -8
  121. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/payment_gateway.py +96 -0
  122. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/profile_destroy_response_412.py +99 -0
  123. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/profile_partial_update_response_412.py +99 -0
  124. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/settings_response.py +18 -0
  125. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/two_factor_disable_request.py +77 -0
  126. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/two_factor_setup_request_request.py +75 -0
  127. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/user.py +144 -92
  128. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/users_create_response_409.py +99 -0
  129. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/users_data_add_create_response_409.py +99 -0
  130. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/users_data_subtract_create_response_409.py +99 -0
  131. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/users_destroy_response_409.py +99 -0
  132. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/users_destroy_response_412.py +99 -0
  133. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/users_partial_update_response_412.py +99 -0
  134. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/two_factor_disable_request.py → proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/verify_otp_request.py +12 -5
  135. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/webhooks_create_response_409.py +99 -0
  136. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/webhooks_destroy_response_409.py +99 -0
  137. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/models/webhooks_destroy_response_412.py +99 -0
  138. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_response.py +23 -0
  139. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/client.py +126 -31
  140. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/errors.py +42 -0
  141. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/models/__init__.py +16 -14
  142. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/resources/__init__.py +0 -8
  143. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/resources/affiliates.py +96 -0
  144. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/resources/analytics.py +415 -0
  145. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/resources/api_keys.py +197 -0
  146. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/resources/authorization.py +303 -0
  147. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/resources/coupons.py +656 -0
  148. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/resources/invoices.py +468 -0
  149. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/resources/locations.py +453 -0
  150. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/resources/news.py +45 -0
  151. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/resources/orders.py +404 -0
  152. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/resources/packages.py +109 -0
  153. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/resources/profile.py +444 -0
  154. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/resources/proxies.py +25 -0
  155. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/resources/rewards.py +75 -0
  156. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/resources/settings.py +23 -0
  157. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/resources/telegram.py +103 -0
  158. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/resources/users.py +786 -0
  159. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/resources/webhooks.py +295 -0
  160. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/response.py +17 -0
  161. proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/webhooks.py +45 -0
  162. proxyrequest_sdk-2.0.0/tests/fixtures/backend-responses.json +162 -0
  163. proxyrequest_sdk-2.0.0/tests/fixtures/webhook-signatures.json +32 -0
  164. proxyrequest_sdk-2.0.0/tests/test_backend_compatibility.py +211 -0
  165. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/tests/test_client.py +170 -34
  166. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/tests/test_contract.py +38 -8
  167. proxyrequest_sdk-2.0.0/tests/test_webhooks.py +49 -0
  168. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/uv.lock +1 -1
  169. proxyrequest_sdk-1.0.0/CHANGELOG.md +0 -11
  170. proxyrequest_sdk-1.0.0/openapi/source.json +0 -8
  171. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/api/sessions/sessions_destroy.py +0 -251
  172. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/api/sessions/sessions_list.py +0 -229
  173. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/api/telegram_dashboard_service/integrations_telegram_link_consume_create.py +0 -210
  174. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/api/telegram_dashboard_service/integrations_telegram_session_create.py +0 -210
  175. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/api/users/__init__.py +0 -1
  176. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/api/webhooks/__init__.py +0 -1
  177. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/integrations_telegram_link_consume_create_response_400.py +0 -101
  178. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/integrations_telegram_session_create_response_400.py +0 -101
  179. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/invoice_create_request_gateway_enum.py +0 -20
  180. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/invoice_gateway_enum.py +0 -22
  181. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/invoices_list_payment_gateway.py +0 -22
  182. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/session_delete_response.py +0 -59
  183. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/session_list_response.py +0 -68
  184. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/sessions_destroy_response_400.py +0 -99
  185. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/sessions_destroy_response_401.py +0 -99
  186. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/sessions_destroy_response_403.py +0 -99
  187. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/sessions_destroy_response_404.py +0 -99
  188. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/sessions_list_response_400.py +0 -99
  189. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/sessions_list_response_401.py +0 -99
  190. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/sessions_list_response_403.py +0 -99
  191. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/telegram_link_consume_request.py +0 -91
  192. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/telegram_session_request.py +0 -66
  193. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/telegram_session_response.py +0 -96
  194. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/models/telegram_session_response_user.py +0 -48
  195. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/resources/api_keys.py +0 -94
  196. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/resources/authorization.py +0 -143
  197. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/resources/coupons.py +0 -277
  198. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/resources/invoices.py +0 -202
  199. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/resources/orders.py +0 -183
  200. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/resources/profile.py +0 -208
  201. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/resources/sessions.py +0 -58
  202. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/resources/telegram_service.py +0 -100
  203. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/resources/users.py +0 -331
  204. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/resources/webhooks.py +0 -114
  205. proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/webhooks.py +0 -95
  206. proxyrequest_sdk-1.0.0/tests/test_webhooks.py +0 -48
  207. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/.gitignore +0 -0
  208. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/CONTRIBUTING.md +0 -0
  209. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/LICENSE +0 -0
  210. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/Makefile +0 -0
  211. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/SECURITY.md +0 -0
  212. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/docs/guides/reseller-provisioning.md +0 -0
  213. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/docs/publishing.md +0 -0
  214. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/openapi/generator.yaml +0 -0
  215. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/scripts/check_generated.py +0 -0
  216. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/scripts/verify_release.py +0 -0
  217. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/__init__.py +0 -0
  218. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/__init__.py +0 -0
  219. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/affiliates/__init__.py +0 -0
  220. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/analytics/__init__.py +0 -0
  221. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/api_keys/__init__.py +0 -0
  222. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/authorization/__init__.py +0 -0
  223. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/coupons/__init__.py +0 -0
  224. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/invoices/__init__.py +0 -0
  225. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/locations/__init__.py +0 -0
  226. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/news/__init__.py +0 -0
  227. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/orders/__init__.py +0 -0
  228. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/packages/__init__.py +0 -0
  229. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/profile/__init__.py +0 -0
  230. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/proxies/__init__.py +0 -0
  231. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/api/rewards/__init__.py +0 -0
  232. {proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/api/sessions → proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/api/settings}/__init__.py +0 -0
  233. {proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/api/settings → proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/api/telegram_dashboard}/__init__.py +0 -0
  234. {proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/api/telegram_dashboard → proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/api/users}/__init__.py +0 -0
  235. {proxyrequest_sdk-1.0.0/src/proxyrequest_sdk/_generated/api/telegram_dashboard_service → proxyrequest_sdk-2.0.0/src/proxyrequest_sdk/_generated/api/webhooks}/__init__.py +0 -0
  236. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/client.py +0 -0
  237. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/errors.py +0 -0
  238. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/add_data_request.py +0 -0
  239. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/affiliate.py +0 -0
  240. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/affiliate_reward.py +0 -0
  241. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/affiliate_stats_point.py +0 -0
  242. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/affiliate_stats_response.py +0 -0
  243. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/affiliates_list_response_400.py +0 -0
  244. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/affiliates_list_response_401.py +0 -0
  245. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/affiliates_list_response_403.py +0 -0
  246. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/affiliates_rewards_list_response_400.py +0 -0
  247. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/affiliates_rewards_list_response_401.py +0 -0
  248. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/affiliates_rewards_list_response_403.py +0 -0
  249. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/affiliates_rewards_overall_retrieve_response_400.py +0 -0
  250. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/affiliates_rewards_overall_retrieve_response_401.py +0 -0
  251. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/affiliates_rewards_overall_retrieve_response_403.py +0 -0
  252. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_connections_retrieve_response_400.py +0 -0
  253. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_connections_retrieve_response_401.py +0 -0
  254. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_connections_retrieve_response_403.py +0 -0
  255. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_connections_retrieve_response_500.py +0 -0
  256. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_domains_retrieve_ordering.py +0 -0
  257. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_domains_retrieve_response_400.py +0 -0
  258. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_domains_retrieve_response_401.py +0 -0
  259. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_domains_retrieve_response_403.py +0 -0
  260. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_domains_retrieve_response_500.py +0 -0
  261. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_feed_retrieve_protocol.py +0 -0
  262. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_feed_retrieve_response_400.py +0 -0
  263. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_feed_retrieve_response_401.py +0 -0
  264. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_feed_retrieve_response_403.py +0 -0
  265. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_feed_retrieve_response_500.py +0 -0
  266. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_logs_retrieve_protocol.py +0 -0
  267. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_logs_retrieve_response_400.py +0 -0
  268. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_logs_retrieve_response_401.py +0 -0
  269. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_logs_retrieve_response_403.py +0 -0
  270. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_logs_retrieve_response_500.py +0 -0
  271. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_overall_retrieve_response_400.py +0 -0
  272. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_overall_retrieve_response_401.py +0 -0
  273. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_overall_retrieve_response_403.py +0 -0
  274. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_overall_retrieve_response_500.py +0 -0
  275. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_transactions_retrieve_response_400.py +0 -0
  276. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_transactions_retrieve_response_401.py +0 -0
  277. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_transactions_retrieve_response_403.py +0 -0
  278. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_transactions_retrieve_response_404.py +0 -0
  279. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/analytics_transactions_retrieve_response_500.py +0 -0
  280. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/api_key_create.py +0 -0
  281. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/api_key_create_request.py +0 -0
  282. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/api_key_list.py +0 -0
  283. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/api_keys_create_response_400.py +0 -0
  284. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/api_keys_create_response_401.py +0 -0
  285. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/api_keys_create_response_403.py +0 -0
  286. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/api_keys_destroy_response_400.py +0 -0
  287. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/api_keys_destroy_response_401.py +0 -0
  288. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/api_keys_destroy_response_403.py +0 -0
  289. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/api_keys_destroy_response_404.py +0 -0
  290. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/api_keys_list_response_400.py +0 -0
  291. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/api_keys_list_response_401.py +0 -0
  292. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/api_keys_list_response_403.py +0 -0
  293. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/change_password_request.py +0 -0
  294. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/city.py +0 -0
  295. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/commission_type_enum.py +0 -0
  296. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/connection_record.py +0 -0
  297. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/connections_response.py +0 -0
  298. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/continent.py +0 -0
  299. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/country.py +0 -0
  300. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupon.py +0 -0
  301. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupon_calculate_price_request.py +0 -0
  302. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupon_create_request.py +0 -0
  303. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupon_price_response.py +0 -0
  304. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupon_redeem.py +0 -0
  305. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupon_short.py +0 -0
  306. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupon_short_packages_item.py +0 -0
  307. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupon_stats_type_0.py +0 -0
  308. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupon_type_enum.py +0 -0
  309. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupon_update_request.py +0 -0
  310. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_calculate_price_create_response_400.py +0 -0
  311. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_calculate_price_create_response_401.py +0 -0
  312. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_calculate_price_create_response_403.py +0 -0
  313. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_create_response_400.py +0 -0
  314. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_create_response_401.py +0 -0
  315. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_create_response_403.py +0 -0
  316. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_destroy_response_400.py +0 -0
  317. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_destroy_response_401.py +0 -0
  318. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_destroy_response_403.py +0 -0
  319. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_destroy_response_404.py +0 -0
  320. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_list_response_400.py +0 -0
  321. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_list_response_401.py +0 -0
  322. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_list_response_403.py +0 -0
  323. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_list_type.py +0 -0
  324. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_partial_update_response_400.py +0 -0
  325. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_partial_update_response_401.py +0 -0
  326. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_partial_update_response_403.py +0 -0
  327. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_partial_update_response_404.py +0 -0
  328. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_redeems_list_response_400.py +0 -0
  329. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_redeems_list_response_401.py +0 -0
  330. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_redeems_list_response_403.py +0 -0
  331. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_redeems_list_response_404.py +0 -0
  332. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_redeems_list_type.py +0 -0
  333. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_retrieve_response_400.py +0 -0
  334. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_retrieve_response_401.py +0 -0
  335. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_retrieve_response_403.py +0 -0
  336. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_retrieve_response_404.py +0 -0
  337. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_update_response_400.py +0 -0
  338. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_update_response_401.py +0 -0
  339. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_update_response_403.py +0 -0
  340. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/coupons_update_response_404.py +0 -0
  341. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/domain_record.py +0 -0
  342. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/domains_response.py +0 -0
  343. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/enabled_response.py +0 -0
  344. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/feed_record.py +0 -0
  345. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/feed_response.py +0 -0
  346. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/generate_proxy_request.py +0 -0
  347. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/generate_proxy_response.py +0 -0
  348. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/generated_proxy.py +0 -0
  349. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/google_auth_request.py +0 -0
  350. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/integrations_telegram_connection_destroy_response_400.py +0 -0
  351. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/integrations_telegram_connection_destroy_response_401.py +0 -0
  352. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/integrations_telegram_connection_destroy_response_403.py +0 -0
  353. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/integrations_telegram_connection_partial_update_response_400.py +0 -0
  354. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/integrations_telegram_connection_partial_update_response_401.py +0 -0
  355. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/integrations_telegram_connection_partial_update_response_403.py +0 -0
  356. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/integrations_telegram_connection_retrieve_response_400.py +0 -0
  357. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/integrations_telegram_connection_retrieve_response_401.py +0 -0
  358. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/integrations_telegram_connection_retrieve_response_403.py +0 -0
  359. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/integrations_telegram_link_create_response_400.py +0 -0
  360. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/integrations_telegram_link_create_response_401.py +0 -0
  361. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/integrations_telegram_link_create_response_403.py +0 -0
  362. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoice_status_enum.py +0 -0
  363. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoice_type_enum.py +0 -0
  364. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_create_response_400.py +0 -0
  365. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_create_response_401.py +0 -0
  366. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_create_response_403.py +0 -0
  367. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_destroy_response_400.py +0 -0
  368. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_destroy_response_401.py +0 -0
  369. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_destroy_response_403.py +0 -0
  370. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_destroy_response_404.py +0 -0
  371. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_download_pdf_retrieve_response_400.py +0 -0
  372. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_download_pdf_retrieve_response_401.py +0 -0
  373. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_download_pdf_retrieve_response_403.py +0 -0
  374. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_download_pdf_retrieve_response_404.py +0 -0
  375. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_list_response_400.py +0 -0
  376. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_list_response_401.py +0 -0
  377. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_list_response_403.py +0 -0
  378. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_list_status.py +0 -0
  379. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_list_type.py +0 -0
  380. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_pay_retrieve_response_400.py +0 -0
  381. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_pay_retrieve_response_401.py +0 -0
  382. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_pay_retrieve_response_403.py +0 -0
  383. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_pay_retrieve_response_404.py +0 -0
  384. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_retrieve_response_400.py +0 -0
  385. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_retrieve_response_401.py +0 -0
  386. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_retrieve_response_403.py +0 -0
  387. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/invoices_retrieve_response_404.py +0 -0
  388. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/isp.py +0 -0
  389. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/language_enum.py +0 -0
  390. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/level_enum.py +0 -0
  391. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/location_asn_geo_item.py +0 -0
  392. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/location_asn_record.py +0 -0
  393. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/location_code_name.py +0 -0
  394. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/location_country_summary.py +0 -0
  395. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/location_region_summary.py +0 -0
  396. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_asn_list_response_400.py +0 -0
  397. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_asn_list_response_401.py +0 -0
  398. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_asn_list_response_403.py +0 -0
  399. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_cities_list_response_400.py +0 -0
  400. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_cities_list_response_401.py +0 -0
  401. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_cities_list_response_403.py +0 -0
  402. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_cities_retrieve_response_400.py +0 -0
  403. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_cities_retrieve_response_401.py +0 -0
  404. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_cities_retrieve_response_403.py +0 -0
  405. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_cities_retrieve_response_404.py +0 -0
  406. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_continents_list_response_400.py +0 -0
  407. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_continents_list_response_401.py +0 -0
  408. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_continents_list_response_403.py +0 -0
  409. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_continents_retrieve_response_400.py +0 -0
  410. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_continents_retrieve_response_401.py +0 -0
  411. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_continents_retrieve_response_403.py +0 -0
  412. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_continents_retrieve_response_404.py +0 -0
  413. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_countries_list_response_400.py +0 -0
  414. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_countries_list_response_401.py +0 -0
  415. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_countries_list_response_403.py +0 -0
  416. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_countries_retrieve_response_400.py +0 -0
  417. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_countries_retrieve_response_401.py +0 -0
  418. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_countries_retrieve_response_403.py +0 -0
  419. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_countries_retrieve_response_404.py +0 -0
  420. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_isps_list_response_400.py +0 -0
  421. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_isps_list_response_401.py +0 -0
  422. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_isps_list_response_403.py +0 -0
  423. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_regions_list_response_400.py +0 -0
  424. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_regions_list_response_401.py +0 -0
  425. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_regions_list_response_403.py +0 -0
  426. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_regions_retrieve_response_400.py +0 -0
  427. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_regions_retrieve_response_401.py +0 -0
  428. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_regions_retrieve_response_403.py +0 -0
  429. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/locations_regions_retrieve_response_404.py +0 -0
  430. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/log_record.py +0 -0
  431. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/login_create_response_400.py +0 -0
  432. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/login_google_create_response_400.py +0 -0
  433. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/login_google_create_response_403.py +0 -0
  434. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/login_request.py +0 -0
  435. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/logs_response.py +0 -0
  436. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/message_response.py +0 -0
  437. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/news.py +0 -0
  438. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/news_list_response_400.py +0 -0
  439. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/news_list_response_401.py +0 -0
  440. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/news_list_response_403.py +0 -0
  441. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/order.py +0 -0
  442. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/order_detailed.py +0 -0
  443. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/order_detailed_ledgers_item.py +0 -0
  444. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/order_ledgers_item.py +0 -0
  445. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/order_package.py +0 -0
  446. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_destroy_response_400.py +0 -0
  447. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_destroy_response_401.py +0 -0
  448. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_destroy_response_403.py +0 -0
  449. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_destroy_response_404.py +0 -0
  450. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_list_package_type.py +0 -0
  451. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_list_response_400.py +0 -0
  452. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_list_response_401.py +0 -0
  453. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_list_response_403.py +0 -0
  454. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_partial_update_response_400.py +0 -0
  455. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_partial_update_response_401.py +0 -0
  456. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_partial_update_response_403.py +0 -0
  457. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_partial_update_response_404.py +0 -0
  458. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_retrieve_response_400.py +0 -0
  459. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_retrieve_response_401.py +0 -0
  460. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_retrieve_response_403.py +0 -0
  461. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/orders_retrieve_response_404.py +0 -0
  462. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/overall_point.py +0 -0
  463. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/overall_response.py +0 -0
  464. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/package.py +0 -0
  465. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/package_billing_model.py +0 -0
  466. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/package_commission.py +0 -0
  467. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/package_short.py +0 -0
  468. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/packages_commissions_list_pricing_unit.py +0 -0
  469. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/packages_commissions_list_response_400.py +0 -0
  470. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/packages_commissions_list_response_401.py +0 -0
  471. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/packages_commissions_list_response_403.py +0 -0
  472. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/packages_commissions_list_type.py +0 -0
  473. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/packages_list_pricing_unit.py +0 -0
  474. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/packages_list_response_400.py +0 -0
  475. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/packages_list_response_401.py +0 -0
  476. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/packages_list_response_403.py +0 -0
  477. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/packages_list_type.py +0 -0
  478. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_affiliate_list.py +0 -0
  479. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_affiliate_reward_list.py +0 -0
  480. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_api_key_list.py +0 -0
  481. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_city_list.py +0 -0
  482. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_continent_list.py +0 -0
  483. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_country_list.py +0 -0
  484. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_coupon_redeem_list.py +0 -0
  485. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_coupon_short_list.py +0 -0
  486. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_isp_list.py +0 -0
  487. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_location_asn_record_list.py +0 -0
  488. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_news_list.py +0 -0
  489. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_order_list.py +0 -0
  490. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_package_commission_list.py +0 -0
  491. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_package_list.py +0 -0
  492. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_region_list.py +0 -0
  493. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_reward_list.py +0 -0
  494. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_user_list.py +0 -0
  495. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/paginated_webhook_list.py +0 -0
  496. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/password_recovery_response.py +0 -0
  497. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/patched_coupon_update_request.py +0 -0
  498. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/patched_order_auto_renewal_request.py +0 -0
  499. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/patched_profile_update_request.py +0 -0
  500. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/patched_telegram_connection_update_request.py +0 -0
  501. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/patched_user_update_request.py +0 -0
  502. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/patched_user_update_request_meta.py +0 -0
  503. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/payment_link_response.py +0 -0
  504. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/pricing_enum.py +0 -0
  505. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/pricing_unit_enum.py +0 -0
  506. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_2_fa_confirm_create_response_400.py +0 -0
  507. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_2_fa_confirm_create_response_401.py +0 -0
  508. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_2_fa_confirm_create_response_403.py +0 -0
  509. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_2_fa_disable_create_response_400.py +0 -0
  510. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_2_fa_disable_create_response_401.py +0 -0
  511. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_2_fa_disable_create_response_403.py +0 -0
  512. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_2_fa_setup_create_response_400.py +0 -0
  513. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_2_fa_setup_create_response_401.py +0 -0
  514. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_2_fa_setup_create_response_403.py +0 -0
  515. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_2_fa_status_retrieve_response_400.py +0 -0
  516. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_2_fa_status_retrieve_response_401.py +0 -0
  517. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_2_fa_status_retrieve_response_403.py +0 -0
  518. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_change_password_create_response_400.py +0 -0
  519. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_change_password_create_response_401.py +0 -0
  520. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_change_password_create_response_403.py +0 -0
  521. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_destroy_response_400.py +0 -0
  522. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_destroy_response_401.py +0 -0
  523. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_destroy_response_403.py +0 -0
  524. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_partial_update_response_400.py +0 -0
  525. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_partial_update_response_401.py +0 -0
  526. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_partial_update_response_403.py +0 -0
  527. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_retrieve_response_400.py +0 -0
  528. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_retrieve_response_401.py +0 -0
  529. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/profile_retrieve_response_403.py +0 -0
  530. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/protocol_enum.py +0 -0
  531. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/proxies_generate_create_response_400.py +0 -0
  532. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/proxies_generate_create_response_401.py +0 -0
  533. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/proxies_generate_create_response_403.py +0 -0
  534. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/proxies_generate_create_response_404.py +0 -0
  535. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/proxy_generation_connection_request.py +0 -0
  536. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/proxy_generation_session_request.py +0 -0
  537. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/proxy_generation_targeting_request.py +0 -0
  538. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/proxy_password_reset_response.py +0 -0
  539. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/proxy_type_enum.py +0 -0
  540. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/recover_password_create_response_400.py +0 -0
  541. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/recover_password_request.py +0 -0
  542. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/refresh_create_response_400.py +0 -0
  543. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/refresh_create_response_401.py +0 -0
  544. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/region.py +0 -0
  545. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/reset_password_create_response_400.py +0 -0
  546. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/reset_password_create_response_404.py +0 -0
  547. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/reset_password_request.py +0 -0
  548. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/reward.py +0 -0
  549. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/reward_claim_request.py +0 -0
  550. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/reward_status_enum.py +0 -0
  551. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/rewards_claim_create_response_400.py +0 -0
  552. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/rewards_claim_create_response_401.py +0 -0
  553. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/rewards_claim_create_response_403.py +0 -0
  554. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/rewards_list_level.py +0 -0
  555. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/rewards_list_response_400.py +0 -0
  556. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/rewards_list_response_401.py +0 -0
  557. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/rewards_list_response_403.py +0 -0
  558. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/settings_crypto.py +0 -0
  559. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/settings_gateway.py +0 -0
  560. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/settings_referral.py +0 -0
  561. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/settings_retrieve_response_400.py +0 -0
  562. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/settings_retrieve_response_401.py +0 -0
  563. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/settings_retrieve_response_403.py +0 -0
  564. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/settings_retrieve_response_500.py +0 -0
  565. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/sign_up_request.py +0 -0
  566. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/signup_create_response_400.py +0 -0
  567. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/signup_create_response_403.py +0 -0
  568. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/subtract_data_request.py +0 -0
  569. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/targeting_options.py +0 -0
  570. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/telegram_connection_response.py +0 -0
  571. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/telegram_link_response.py +0 -0
  572. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/token_pair_response.py +0 -0
  573. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/token_refresh_request.py +0 -0
  574. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/token_refresh_response.py +0 -0
  575. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/transaction_record.py +0 -0
  576. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/transactions_response.py +0 -0
  577. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/two_factor_confirm_request.py +0 -0
  578. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/two_factor_setup_response.py +0 -0
  579. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/user_coupons_item.py +0 -0
  580. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/user_create_request.py +0 -0
  581. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/user_create_request_meta.py +0 -0
  582. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/user_currency.py +0 -0
  583. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/user_password_reset_request.py +0 -0
  584. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_create_response_400.py +0 -0
  585. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_create_response_401.py +0 -0
  586. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_create_response_403.py +0 -0
  587. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_data_add_create_response_400.py +0 -0
  588. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_data_add_create_response_401.py +0 -0
  589. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_data_add_create_response_403.py +0 -0
  590. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_data_add_create_response_404.py +0 -0
  591. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_data_subtract_create_response_400.py +0 -0
  592. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_data_subtract_create_response_401.py +0 -0
  593. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_data_subtract_create_response_403.py +0 -0
  594. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_data_subtract_create_response_404.py +0 -0
  595. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_destroy_response_400.py +0 -0
  596. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_destroy_response_401.py +0 -0
  597. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_destroy_response_403.py +0 -0
  598. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_destroy_response_404.py +0 -0
  599. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_list_response_400.py +0 -0
  600. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_list_response_401.py +0 -0
  601. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_list_response_403.py +0 -0
  602. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_orders_list_response_400.py +0 -0
  603. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_orders_list_response_401.py +0 -0
  604. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_orders_list_response_403.py +0 -0
  605. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_orders_list_response_404.py +0 -0
  606. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_partial_update_response_400.py +0 -0
  607. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_partial_update_response_401.py +0 -0
  608. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_partial_update_response_403.py +0 -0
  609. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_partial_update_response_404.py +0 -0
  610. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_password_create_response_400.py +0 -0
  611. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_password_create_response_401.py +0 -0
  612. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_password_create_response_403.py +0 -0
  613. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_password_create_response_404.py +0 -0
  614. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_retrieve_response_400.py +0 -0
  615. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_retrieve_response_401.py +0 -0
  616. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_retrieve_response_403.py +0 -0
  617. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/users_retrieve_response_404.py +0 -0
  618. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhook_create_request.py +0 -0
  619. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhook_created.py +0 -0
  620. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhook_list.py +0 -0
  621. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhook_scope_enum.py +0 -0
  622. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhooks_create_response_400.py +0 -0
  623. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhooks_create_response_401.py +0 -0
  624. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhooks_create_response_403.py +0 -0
  625. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhooks_destroy_response_400.py +0 -0
  626. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhooks_destroy_response_401.py +0 -0
  627. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhooks_destroy_response_403.py +0 -0
  628. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhooks_destroy_response_404.py +0 -0
  629. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhooks_list_response_400.py +0 -0
  630. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhooks_list_response_401.py +0 -0
  631. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhooks_list_response_403.py +0 -0
  632. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhooks_retrieve_response_400.py +0 -0
  633. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhooks_retrieve_response_401.py +0 -0
  634. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhooks_retrieve_response_403.py +0 -0
  635. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/models/webhooks_retrieve_response_404.py +0 -0
  636. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/_generated/types.py +0 -0
  637. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/files.py +0 -0
  638. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/src/proxyrequest_sdk/py.typed +0 -0
  639. {proxyrequest_sdk-1.0.0 → proxyrequest_sdk-2.0.0}/tests/test_downloads.py +0 -0
@@ -0,0 +1,32 @@
1
+ # Changelog
2
+
3
+ All notable changes to the ProxyRequest Python SDK are documented here.
4
+
5
+ ## Unreleased
6
+
7
+ ## 2.0.0 - 2026-09-16
8
+
9
+ - Replace the incorrect webhook verifier with the actual `X-Signature`
10
+ Base64 HMAC-SHA256 format over exact raw bytes.
11
+
12
+ - Regenerated from the public backend contract (81 operations, 130 schemas),
13
+ excluding the two disabled sessions-management operations from generated clients.
14
+ - Added the optional `pending`/`paid` status to invoice creation requests.
15
+ - Added typed OTP verification and 200/202 login support for sync and async clients.
16
+ - Corrected MFA bodies, payment fields, nullable invoices, and both backend user modes.
17
+ - Preserved HTTP status, raw response, headers, cause, and idempotency key when
18
+ response decoding fails; HTTP errors are classified before model decoding.
19
+ - Replaced fixed contract-size gates and added backend-serializer regression fixtures.
20
+
21
+ - Added automatic and explicit idempotency keys with bounded ambiguous-outcome
22
+ retries.
23
+ - Added response metadata variants and explicit ETag/`If-Match` optimistic
24
+ concurrency support.
25
+
26
+ ## 1.0.0 - 2026-08-21
27
+
28
+ - Initial stable release covering all 82 public API operations.
29
+ - Added synchronous and asynchronous clients with typed attrs models.
30
+ - Added normalized errors, lazy pagination, invoice downloads, raw requests,
31
+ and signed webhook verification.
32
+ - Added purchase and reseller provisioning guides.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: proxyrequest-sdk
3
- Version: 1.0.0
3
+ Version: 2.0.0
4
4
  Summary: Official sync and async Python SDK for the ProxyRequest public API.
5
5
  Project-URL: Homepage, https://proxyrequest.com
6
6
  Project-URL: Documentation, https://proxyrequest.com/docs/
@@ -31,11 +31,11 @@ Description-Content-Type: text/markdown
31
31
  # ProxyRequest Python SDK
32
32
 
33
33
  [![CI](https://github.com/proxyrequest/python-sdk/actions/workflows/ci.yml/badge.svg)](https://github.com/proxyrequest/python-sdk/actions/workflows/ci.yml)
34
- [![PyPI](https://img.shields.io/pypi/v/proxyrequest-sdk.svg)](https://pypi.org/project/proxyrequest-sdk/)
35
- [![Python](https://img.shields.io/pypi/pyversions/proxyrequest-sdk.svg)](https://pypi.org/project/proxyrequest-sdk/)
34
+ [![PyPI](https://img.shields.io/pypi/v/proxyrequest-sdk.svg?cacheSeconds=300)](https://pypi.org/project/proxyrequest-sdk/)
35
+ [![Python](https://img.shields.io/pypi/pyversions/proxyrequest-sdk.svg?cacheSeconds=300)](https://pypi.org/project/proxyrequest-sdk/)
36
36
 
37
37
  Official synchronous and asynchronous Python client for the
38
- [ProxyRequest](https://proxyrequest.com/) public API. It covers all 82 operations
38
+ [ProxyRequest](https://proxyrequest.com/) public API. It covers 79 supported operations
39
39
  in the current contract: users, orders, proxy generation, analytics, invoices,
40
40
  packages, locations, webhooks, API keys, Telegram integration, and more.
41
41
 
@@ -150,7 +150,12 @@ async def list_users() -> None:
150
150
 
151
151
  ## Resource API
152
152
 
153
- `Client` and `AsyncClient` expose one object per API group:
153
+ `Client` and `AsyncClient` expose 17 API groups. The pinned public schema contains
154
+ 81 operations; disabled `sessions_list` and `sessions_destroy` operations are
155
+ intentionally excluded. Sticky session options in proxy generation remain supported.
156
+
157
+ See [backend compatibility and MFA](docs/backend-compatibility.md) for updated
158
+ login examples and response-model migration notes.
154
159
 
155
160
  ```python
156
161
  client.authorization
@@ -168,8 +173,6 @@ client.locations
168
173
  client.api_keys
169
174
  client.webhooks
170
175
  client.telegram
171
- client.telegram_service
172
- client.sessions
173
176
  client.settings
174
177
  client.news
175
178
  ```
@@ -182,6 +185,31 @@ opaque `str`), and all byte amounts are Python integers.
182
185
  See the generated [API resource reference](https://github.com/proxyrequest/python-sdk/blob/main/docs/reference/api.md)
183
186
  and [model reference](https://github.com/proxyrequest/python-sdk/blob/main/docs/reference/models.md).
184
187
 
188
+ ## Automatic retries and optimistic concurrency
189
+
190
+ The SDK automatically protects supported writes during up to three total
191
+ attempts after a network failure, or after `409 Conflict` with a numeric
192
+ `Retry-After` of at most five seconds. Other HTTP errors are returned
193
+ immediately. This protection applies inside one running call. If the process
194
+ stops before saving the result, inspect the affected resource before submitting
195
+ another write:
196
+
197
+ ```python
198
+ response = client.users.create_with_response(
199
+ body=UserCreateRequest(username="customer-reference", password="secret"),
200
+ )
201
+
202
+ print(response.data.id, response.etag)
203
+ ```
204
+
205
+ Every generated method has a `_with_response` variant exposing `status_code`,
206
+ `headers`, and `etag`.
207
+
208
+ Operations that declare `If-Match` accept the latest strong ETag. A stale value
209
+ raises `ApiError` with `ErrorKind.PRECONDITION` and exposes the current server
210
+ value as `current_etag`. ETags are explicit response metadata and are not cached
211
+ by the SDK.
212
+
185
213
  ## Pagination
186
214
 
187
215
  List endpoints return their typed OpenAPI page. Use `paginate()` to follow all
@@ -218,9 +246,9 @@ except ApiError as error:
218
246
  print(error.status_code, error.request_id, error.field_errors)
219
247
  ```
220
248
 
221
- The SDK does not automatically retry writes or refresh JWTs. Call
222
- `client.authorization.refresh(...)` explicitly when your application owns a
223
- token pair.
249
+ Supported writes receive bounded automatic retries for transient failures.
250
+ JWTs are never refreshed automatically; call `client.authorization.refresh(...)`
251
+ explicitly when your application owns a token pair.
224
252
 
225
253
  ## Configuration and custom deployments
226
254
 
@@ -252,21 +280,6 @@ print(path, download.content_type)
252
280
 
253
281
  `save()` does not overwrite an existing file unless `overwrite=True` is passed.
254
282
 
255
- ## Telegram service operations
256
-
257
- Account-side Telegram operations use the client's API key. Bot service
258
- operations require the service secret explicitly and never reuse the ordinary
259
- Authorization header:
260
-
261
- ```python
262
- from proxyrequest_sdk.models import TelegramSessionRequest
263
-
264
- session = client.telegram_service.create_session(
265
- body=TelegramSessionRequest(telegram_user_id=123456789, chat_id=123456789),
266
- service_secret=os.environ["PROXYREQUEST_TELEGRAM_SECRET"],
267
- )
268
- ```
269
-
270
283
  ## Webhook verification
271
284
 
272
285
  Verify the exact raw body before decoding it:
@@ -276,12 +289,13 @@ from proxyrequest_sdk import WebhookVerifier
276
289
 
277
290
  payload = WebhookVerifier.decode_verified_json(
278
291
  raw_body,
279
- request.headers.get("X-Webhook-Signature", ""),
292
+ request.headers.get("X-Signature", ""),
280
293
  os.environ["PROXYREQUEST_WEBHOOK_SECRET"],
281
- timestamp_header=request.headers.get("X-Webhook-Timestamp"),
282
294
  )
283
295
  ```
284
296
 
297
+ Deliveries use standard padded Base64 HMAC-SHA256 over the raw body, without a signed timestamp. Verification accepts only this current format. It authenticates the body, but does not prevent replay: deduplicate usage events in your application. These helpers require SDK 2.0.0 or newer; version 1.0.0 does not support the current delivery format.
298
+
285
299
  ## Platform documentation
286
300
 
287
301
  - [Platform documentation](https://proxyrequest.com/docs/): capabilities,
@@ -1,11 +1,11 @@
1
1
  # ProxyRequest Python SDK
2
2
 
3
3
  [![CI](https://github.com/proxyrequest/python-sdk/actions/workflows/ci.yml/badge.svg)](https://github.com/proxyrequest/python-sdk/actions/workflows/ci.yml)
4
- [![PyPI](https://img.shields.io/pypi/v/proxyrequest-sdk.svg)](https://pypi.org/project/proxyrequest-sdk/)
5
- [![Python](https://img.shields.io/pypi/pyversions/proxyrequest-sdk.svg)](https://pypi.org/project/proxyrequest-sdk/)
4
+ [![PyPI](https://img.shields.io/pypi/v/proxyrequest-sdk.svg?cacheSeconds=300)](https://pypi.org/project/proxyrequest-sdk/)
5
+ [![Python](https://img.shields.io/pypi/pyversions/proxyrequest-sdk.svg?cacheSeconds=300)](https://pypi.org/project/proxyrequest-sdk/)
6
6
 
7
7
  Official synchronous and asynchronous Python client for the
8
- [ProxyRequest](https://proxyrequest.com/) public API. It covers all 82 operations
8
+ [ProxyRequest](https://proxyrequest.com/) public API. It covers 79 supported operations
9
9
  in the current contract: users, orders, proxy generation, analytics, invoices,
10
10
  packages, locations, webhooks, API keys, Telegram integration, and more.
11
11
 
@@ -120,7 +120,12 @@ async def list_users() -> None:
120
120
 
121
121
  ## Resource API
122
122
 
123
- `Client` and `AsyncClient` expose one object per API group:
123
+ `Client` and `AsyncClient` expose 17 API groups. The pinned public schema contains
124
+ 81 operations; disabled `sessions_list` and `sessions_destroy` operations are
125
+ intentionally excluded. Sticky session options in proxy generation remain supported.
126
+
127
+ See [backend compatibility and MFA](docs/backend-compatibility.md) for updated
128
+ login examples and response-model migration notes.
124
129
 
125
130
  ```python
126
131
  client.authorization
@@ -138,8 +143,6 @@ client.locations
138
143
  client.api_keys
139
144
  client.webhooks
140
145
  client.telegram
141
- client.telegram_service
142
- client.sessions
143
146
  client.settings
144
147
  client.news
145
148
  ```
@@ -152,6 +155,31 @@ opaque `str`), and all byte amounts are Python integers.
152
155
  See the generated [API resource reference](https://github.com/proxyrequest/python-sdk/blob/main/docs/reference/api.md)
153
156
  and [model reference](https://github.com/proxyrequest/python-sdk/blob/main/docs/reference/models.md).
154
157
 
158
+ ## Automatic retries and optimistic concurrency
159
+
160
+ The SDK automatically protects supported writes during up to three total
161
+ attempts after a network failure, or after `409 Conflict` with a numeric
162
+ `Retry-After` of at most five seconds. Other HTTP errors are returned
163
+ immediately. This protection applies inside one running call. If the process
164
+ stops before saving the result, inspect the affected resource before submitting
165
+ another write:
166
+
167
+ ```python
168
+ response = client.users.create_with_response(
169
+ body=UserCreateRequest(username="customer-reference", password="secret"),
170
+ )
171
+
172
+ print(response.data.id, response.etag)
173
+ ```
174
+
175
+ Every generated method has a `_with_response` variant exposing `status_code`,
176
+ `headers`, and `etag`.
177
+
178
+ Operations that declare `If-Match` accept the latest strong ETag. A stale value
179
+ raises `ApiError` with `ErrorKind.PRECONDITION` and exposes the current server
180
+ value as `current_etag`. ETags are explicit response metadata and are not cached
181
+ by the SDK.
182
+
155
183
  ## Pagination
156
184
 
157
185
  List endpoints return their typed OpenAPI page. Use `paginate()` to follow all
@@ -188,9 +216,9 @@ except ApiError as error:
188
216
  print(error.status_code, error.request_id, error.field_errors)
189
217
  ```
190
218
 
191
- The SDK does not automatically retry writes or refresh JWTs. Call
192
- `client.authorization.refresh(...)` explicitly when your application owns a
193
- token pair.
219
+ Supported writes receive bounded automatic retries for transient failures.
220
+ JWTs are never refreshed automatically; call `client.authorization.refresh(...)`
221
+ explicitly when your application owns a token pair.
194
222
 
195
223
  ## Configuration and custom deployments
196
224
 
@@ -222,21 +250,6 @@ print(path, download.content_type)
222
250
 
223
251
  `save()` does not overwrite an existing file unless `overwrite=True` is passed.
224
252
 
225
- ## Telegram service operations
226
-
227
- Account-side Telegram operations use the client's API key. Bot service
228
- operations require the service secret explicitly and never reuse the ordinary
229
- Authorization header:
230
-
231
- ```python
232
- from proxyrequest_sdk.models import TelegramSessionRequest
233
-
234
- session = client.telegram_service.create_session(
235
- body=TelegramSessionRequest(telegram_user_id=123456789, chat_id=123456789),
236
- service_secret=os.environ["PROXYREQUEST_TELEGRAM_SECRET"],
237
- )
238
- ```
239
-
240
253
  ## Webhook verification
241
254
 
242
255
  Verify the exact raw body before decoding it:
@@ -246,12 +259,13 @@ from proxyrequest_sdk import WebhookVerifier
246
259
 
247
260
  payload = WebhookVerifier.decode_verified_json(
248
261
  raw_body,
249
- request.headers.get("X-Webhook-Signature", ""),
262
+ request.headers.get("X-Signature", ""),
250
263
  os.environ["PROXYREQUEST_WEBHOOK_SECRET"],
251
- timestamp_header=request.headers.get("X-Webhook-Timestamp"),
252
264
  )
253
265
  ```
254
266
 
267
+ Deliveries use standard padded Base64 HMAC-SHA256 over the raw body, without a signed timestamp. Verification accepts only this current format. It authenticates the body, but does not prevent replay: deduplicate usage events in your application. These helpers require SDK 2.0.0 or newer; version 1.0.0 does not support the current delivery format.
268
+
255
269
  ## Platform documentation
256
270
 
257
271
  - [Platform documentation](https://proxyrequest.com/docs/): capabilities,
@@ -0,0 +1,346 @@
1
+ # Аудит Python SDK
2
+
3
+ ## Статус исправлений — 2026-09-07
4
+
5
+ Все перечисленные ниже SDK-находки исправлены. Каноническая публичная схема
6
+ перегенерирована: **81 операция, 129 схем**. Все три SDK используют побайтово
7
+ одинаковую копию; SHA-256 и коммит источника закреплены в `openapi/source.json`.
8
+ Сгенерировано **79 поддерживаемых операций / 17 ресурсов**: две отключённые
9
+ sessions-management операции исключены по согласованному решению, без удаления
10
+ sticky-параметров генерации прокси и без изменения маршрутов бэкенда.
11
+
12
+ | Находка | Исправление |
13
+ | --- | --- |
14
+ | PY-01 | Добавлены verify_otp и union TokenPairResponse и OTPChallenge для sync/async login. |
15
+ | PY-02 | Invoice корректно разбирает null в package/coupon/country для create/get/list. |
16
+ | PY-03 | Поддержаны оба режима User и обе формы Invoice/InvoiceShort. |
17
+ | PY-04 | Добавлены тела MFA setup/disable с первичным фактором. |
18
+ | PY-05 | Платёжные поля актуализированы; расширяемые enum сохранены. |
19
+ | PY-06 | HTTP-ошибки классифицируются до декодирования; ошибки успешного ответа сохраняют status/body/headers/cause/idempotency key. |
20
+ | PY-07 | Удалены фиксированные ограничения размера контракта; покрытие и manifest проверяются динамически. |
21
+ | BE-01 | Исправлены pk-сигнатуры invoice PDF/pay-link и coupon redeems; добавлены router-регрессии. |
22
+ | BE-02 | Удалены публичный sessions-ресурс, его методы и отдельные сгенерированные модели/документы из SDK. |
23
+
24
+ Проверки SDK: `make quality generate-check` (44 теста, Ruff, mypy, воспроизводимая генерация), сборка wheel/sdist и `twine check`.
25
+ Фикстуры форм User/Invoice получены из реальных сериализаторов бэкенда на
26
+ синтетических объектах; серверный тест проверяет их соответствие текущему коду.
27
+ Тесты SDK проверяют MFA, платежи, вариативные ответы и регрессионные сценарии.
28
+ Это локальная проверка, не подтверждение развёртывания в production.
29
+
30
+ Версии пакетов не изменялись; релизы, теги и публикации пакетов не создавались.
31
+ Примеры миграции и MFA: `docs/backend-compatibility.md` внутри репозитория SDK.
32
+
33
+ ## Исходный аудит (до исправлений)
34
+
35
+ Ссылки на SDK закреплены на исходном коммите. Пути и номера строк бэкенда
36
+ сохранены как исторические ориентиры: его исходное рабочее состояние содержало
37
+ незакоммиченные изменения.
38
+
39
+ Далее сохранён исторический отчёт. Его выводы, счётчики, матрица и номера строк
40
+ относятся к исходному состоянию и не являются описанием обновлённой SDK.
41
+
42
+
43
+ SDK: `proxyrequest-sdk` 1.0.0, каталог `python-sdk`, HEAD `3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7`.
44
+
45
+ **Вывод:** синхронные и асинхронные обёртки покрывают старый контракт, но реальные ответы MFA и nullable/вариативные модели вызывают ошибки декодирования. Наиболее опасный сценарий — операция на сервере завершилась, а SDK не смогла разобрать ответ и не сохранила необходимые данные для восстановления.
46
+
47
+ ## Границы и методика
48
+
49
+ Аудит выполнен 2026-09-07 по рабочим файлам. Бэкенд: `/home/yuri/Projects/papaproxy/api`, HEAD `f10464717b19f98916b45cc25e7405610865957d`, с существующими незакоммиченными изменениями. Выводы относятся к этому рабочему состоянию, а не только к коммиту и не к проверенному production-развёртыванию.
50
+
51
+ Проверены публичная OpenAPI-схема (`api/openapi.yml`), состав публичного schema URLConf (`api/apps/routing/infrastructure/django/schema.py:35`), router, существенные serializers/viewsets, сгенерированные операции, клиентский транспорт, пагинация, ошибки, подписи webhook и процесс синхронизации схемы. Внутренние/admin API и входящие callback-маршруты платёжных провайдеров не считаются обязательными методами клиентской SDK.
52
+
53
+ Сохранённый публичный контракт содержит **81 операцию и 127 схем**. Независимая генерация публичной схемы в тестовом окружении также дала 81 операцию и 127 схем. Отдельно проверены оба значения `SITE_PACKAGE_BASED_AUTH`: формы ответов действительно зависят от настройки. Различия числовых ограничений при генерации под SQLite не объявлялись дефектами production-контракта.
54
+
55
+ Во всех SDK сохранена одна и та же старая схема: **80 операций и 124 схемы**. Сопоставление HTTP-методов, шаблонов путей и публичных обёрток не выявило пропущенных операций из этой старой схемы. Единственная отсутствующая операция относительно текущего публичного списка — `POST /login/otp`. Это номинальное покрытие методов, а не оценка фактической совместимости.
56
+
57
+ SHA-256 схем:
58
+
59
+ - текущая API: `423fc57ebe9406a9a1a80ee7acfd8e0827f6196b317af90b0c24f64172e16b03`;
60
+ - сохранённая SDK: `0ed69e781aa752ac8e9c9b1974cd82810adbf1fd99a461724bd73432740d8737`.
61
+
62
+ Поиск выполнен через knowledge graph с проверкой покрытия и чтением исходников. Частично разобранные TypeScript re-export строки проверены непосредственно. Проигрывались синтетические ответы и локальные вызовы serializers/router; обращений к рабочему API, создания пользователей/счетов и изменений реализаций SDK/бэкенда не выполнялось.
63
+
64
+ Приоритеты: **P1** — блокирует основной сценарий при указанных условиях; **P2** — ограничивает часть API, искажает данные или ухудшает диагностику/сопровождение. Порядок внутри приоритета отражает рекомендуемую последовательность исправлений.
65
+
66
+
67
+ ## Находки в SDK
68
+
69
+ ### PY-01 · P1 · HTTP 202 при входе превращается в ошибку и теряет OTP challenge
70
+
71
+ Парсеры `login_create` и `login_google_create` не имеют ветки 202. При `otp_required` они возвращают `parsed=None`; затем `_response_value()` отклоняет непустой успешный ответ. Обёртка объявляет исключительно `TokenPairResponse`. Метода `POST /login/otp` нет.
72
+
73
+ Воспроизведено для `Client` и `AsyncClient`:
74
+
75
+ ```text
76
+ ApiError: ProxyRequest returned an unreadable HTTP 202 response.
77
+ status_code=None
78
+ raw_body=b''
79
+ ```
80
+
81
+ Challenge недоступен даже из ошибки: она создаётся без HTTP-метаданных. Таким образом, штатный вход аккаунта с включённой MFA остановится после проверки пароля/Google credential.
82
+
83
+ Источники: [login parser](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/_generated/api/authorization/login_create.py#L40), [Google parser](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/_generated/api/authorization/login_google_create.py#L41), [обработка parsed=None](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/client.py#L84), [AuthorizationResource](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/resources/authorization.py#L29), серверный OTP endpoint (`api/apps/core/authentication/api.py:57`).
84
+
85
+ Исправление: добавить `OTPChallenge`, `VerifyOTPRequest`, sync/async метод завершения входа и результат `TokenPairResponse | OTPChallenge`. Для неизвестного успешного статуса сохранять исходный ответ, даже если типизированная модель ещё отсутствует.
86
+
87
+ ### PY-02 · P1 · Допустимые null в счёте ломают create/get/list invoices
88
+
89
+ `Invoice.from_dict()` без проверки вызывает:
90
+
91
+ ```python
92
+ package = PackageShort.from_dict(d.pop("package"))
93
+ country = Country.from_dict(d.pop("country"))
94
+ coupon = CouponShort.from_dict(d.pop("coupon"))
95
+ ```
96
+
97
+ На сервере все три связи nullable. `InvoiceSerializer` на несохранённом объекте обычного пополнения баланса реально вернул `package=null, country=null, coupon=null`. Отсутствие купона также является нормальным случаем покупки пакета.
98
+
99
+ Локальные проверки с валидной базовой моделью и поочерёдным `null` для каждой связи воспроизвели:
100
+
101
+ ```text
102
+ ApiError: Unable to decode the ProxyRequest API response.
103
+ cause: TypeError("'NoneType' object is not iterable")
104
+ ```
105
+
106
+ Затронуты создание, получение и весь список счетов, если хотя бы один элемент содержит такой `null`. В async используется тот же generated parser.
107
+
108
+ Особенно существенно для `invoices.create()`: сервер может уже создать счёт, но ошибка парсинга попадает в общий `except Exception`, который не прикрепляет ни тело ответа, ни автоматически созданный idempotency key. Повторный вызов без сохранённого явного ключа затрудняет безопасное восстановление и может повторить создание.
109
+
110
+ Источники: [Invoice.from_dict](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/_generated/models/invoice.py#L222), [обёртки invoice](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/resources/invoices.py#L32), [общая ветка ошибки](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/client.py#L240), InvoiceSerializer (`api/apps/billing/api/serializers.py:28`), серверная схема Invoice (`api/openapi.yml:16871`).
111
+
112
+ Исправление: обозначить nullable-связи в серверной схеме, регенерировать модели как `... | None`, сохранить HTTP-контекст и idempotency key при ошибках декодирования. Нужны тесты без купона, без страны, на balance invoice и на список со смешанными вариантами.
113
+
114
+ ### PY-03 · P1 · Ни одна фиксированная пара User/Invoice не покрывает оба режима backend
115
+
116
+ | Настройка | Реальное поведение | Ошибка текущей SDK |
117
+ | --- | --- | --- |
118
+ | `SITE_PACKAGE_BASED_AUTH=True` | User содержит `orders`, не содержит пяти плоских полей данных/пароля | `User.from_dict()` требует `data` и остальные поля; `KeyError('data')` |
119
+ | `SITE_PACKAGE_BASED_AUTH=False` | чтение счетов использует `InvoiceShortSerializer`, без `package`, `user_id`, `type`, `payment_url` | `Invoice.from_dict()` требует полный счёт; `KeyError('package')` |
120
+
121
+ Проверены фактический набор полей `UserSerializer()` и `InvoicesViewSet.get_serializer_class()` под обоими флагами. Затем синтетические ответы этих форм пропущены через публичные методы SDK: обе ошибки воспроизведены. Контрольный User с плоскими полями успешно разобран.
122
+
123
+ При True затронуты `profile.get/update`, `users.get/list/create/update/reset_password` и другие ответы типа User. При False затронуты `invoices.get/list`. Создание invoice отдельно возвращает полный `InvoiceSerializer`, поэтому не следует переносить ошибку короткой формы на все действия без различия; для create действует PY-02.
124
+
125
+ Источники: динамические поля User (`api/apps/core/api/serializers/users.py:269`), выбор serializer счёта (`api/apps/billing/api/viewsets.py:121`), InvoiceShortSerializer (`api/apps/billing/api/serializers.py:101`), [обязательное чтение data](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/_generated/models/user.py#L320), [обязательное чтение package](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/_generated/models/invoice.py#L228).
126
+
127
+ Исправление: определить стабильный общий контракт либо явные варианты моделей для двух режимов; учитывать отсутствие поля отдельно от `null`. Простая синхронизация сохранённой серверной схемы недостаточна: в ней уже есть неотражённая конфигурационная вариативность.
128
+
129
+ ### PY-04 · P1 · setup_two_factor не принимает body, disable-модель не описывает первичный фактор
130
+
131
+ `profile.setup_two_factor()` принимает только `accept_language` и посылает пустой POST. Сервер требует пароль либо Google credential, а при замене уже включённой MFA — также текущий код. Модель отключения описывает только `code`, поэтому обычный вызов из старого контракта не может отключить активную MFA.
132
+
133
+ Источники: [setup_two_factor](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/resources/profile.py#L168), [TwoFactorDisableRequest](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/_generated/models/two_factor_disable_request.py#L18), TwoFactorViewSet (`api/apps/core/api/viewsets.py:1522`), проверка первичного фактора (`api/apps/core/authentication/service.py:192`).
134
+
135
+ Для disable есть работающий низкоуровневый обход через `additional_properties`:
136
+
137
+ ```python
138
+ body = TwoFactorDisableRequest(code="492031")
139
+ body["password"] = "current-password"
140
+ client.profile.disable_two_factor(body=body)
141
+ ```
142
+
143
+ Для setup нужен `client.request("POST", "/profile/2fa/setup", json={...})`, поскольку фасад вовсе не принимает body. Исправление: добавить типизированные поля/модель setup и обновить обе sync/async обёртки. Подтверждение по коду остаётся доступным; после изменений MFA следует учитывать отзыв прежних JWT.
144
+
145
+ ### PY-05 · P2 · Платёжные модели устарели, но новые enum-значения уже поддерживаются
146
+
147
+ Не хватает именованных вариантов gateway, поля `payment_currency` в конструкторе invoice request, полей `currency`, `payment_amount`, `payment_currency`, `provider_checkout_id`, `provider_payment_id`, `checkout_status`, `fx_*` в invoice response и `payment_gateways` в settings. Остались устаревшие `coinbase_charge_id` и `coingate_order_token`.
148
+
149
+ Однако `_missing_()` в generated enums специально принимает неизвестные строки. Утверждать, что Python отвергает `whitepay`, было бы неправильно. Воспроизведены успешные разбор нового gateway и сохранение новых response-полей в `additional_properties`, если остальные обязательные поля ответа корректны.
150
+
151
+ Рабочий обход запроса:
152
+
153
+ ```python
154
+ body = InvoiceCreateRequest(
155
+ gateway=InvoiceCreateRequestGatewayEnum("whitepay"),
156
+ amount=500,
157
+ )
158
+ body["payment_currency"] = "UAH"
159
+ # to_dict(): {"payment_currency":"UAH","gateway":"whitepay","amount":500}
160
+ ```
161
+
162
+ Источники: [InvoiceCreateRequest](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/_generated/models/invoice_create_request.py#L21), [расширяемый enum](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/_generated/models/invoice_create_request_gateway_enum.py#L4), [генератор enum](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/scripts/generate.py#L179), серверный запрос (`api/apps/billing/api/serializers.py:126`), новые платёжные метаданные (`api/openapi.yml:18607`).
163
+
164
+ Исправление: обновить модели/документацию, сохранив forward-compatible enum и additional properties. Не удалять уже полезное поведение ради закрытого набора значений.
165
+
166
+ ### PY-06 · P2 · Ошибки декодирования маскируют HTTP-статус, тело и контекст операции
167
+
168
+ Generated endpoints разбирают тело до того, как клиент получает объект `Response`. Например, HTML вместо JSON на **документированном HTTP 400** вызывает `JSONDecodeError`; общий `except Exception` создаёт `ApiError(kind=unexpected)` с `status_code=None`, пустым `raw_body`, без request ID и idempotency key.
169
+
170
+ Это воспроизведено на login с `400 <html>bad request</html>`. Причина доступна как `__cause__`, но HTTP-контекст уже потерян. Аналогичный дефект усложняет восстановление после успешной серверной операции, ответ которой не соответствует старой модели.
171
+
172
+ Источники: [порядок build/parse response](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/_generated/api/authorization/login_create.py#L58), [sync обработка](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/client.py#L224), [async обработка](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/src/proxyrequest_sdk/client.py#L413).
173
+
174
+ Исправление: сначала сохранять транспортный ответ и классифицировать HTTP-ошибку, затем декодировать успешный payload; в decoding exception прикреплять исходные status/headers/body/key. Сам по себе неизвестный HTTP 502 уже корректно становится server ApiError с сохранённым payload — это проверено на ошибке checkout с `invoice_id` и `retryable`.
175
+
176
+ ### PY-07 · P2 · Синхронизация схемы жёстко привязана к устаревшему числу методов
177
+
178
+ `scripts/sync_openapi.py` принимает только 80 операций и 124 схемы. Запуск на текущем серверном файле завершается до записи:
179
+
180
+ ```text
181
+ Unexpected contract size: 81 operations and 127 schemas.
182
+ ```
183
+
184
+ Контрактные тесты тоже проверяют собственную сохранённую схему и наличие 80 generated sync/async фасадов. Это полезная проверка целостности генерации, но она не обнаруживает отставание от бэкенда.
185
+
186
+ Источники: [validate](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/scripts/sync_openapi.py#L37), [contract tests](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/tests/test_contract.py#L27), [manifest](https://github.com/proxyrequest/python-sdk/blob/3424a4e62ac7b8d1d5309bd4d3c4109f90da16c7/openapi/source.json#L1).
187
+
188
+ В отличие от TypeScript SDK, hash и счётчики Python manifest соответствуют реально сохранённой старой схеме. Исправление: принимать эволюцию публичного контракта с проверкой его назначения, анализировать семантический diff и обновлять mapping/модели. Добавить проверки against выбранного backend snapshot, а не только собственной копии.
189
+
190
+ ## Проблемы бэкенда, влияющие на эту SDK
191
+
192
+ ### BE-01 · P1 · Три публичных detail-маршрута падают при передаче `pk`
193
+
194
+ | HTTP-маршрут | Обработчик |
195
+ | --- | --- |
196
+ | `GET /invoices/{id}/download/pdf` | `InvoicesViewSet.download_pdf(self, request)` |
197
+ | `GET /invoices/{id}/pay` | `InvoicesViewSet.pay_link(self, request)` |
198
+ | `GET /coupons/{id}/redeems` | `CouponsViewSet.redeems(self, request)` |
199
+
200
+ DRF router передаёт идентификатор как `pk`, но обработчики не принимают ни `pk`, ни `**kwargs`. Через настоящий `django.urls.resolve()` и вызов соответствующего view воспроизведены:
201
+
202
+ ```text
203
+ TypeError: InvoicesViewSet.download_pdf() got an unexpected keyword argument 'pk'
204
+ TypeError: InvoicesViewSet.pay_link() got an unexpected keyword argument 'pk'
205
+ TypeError: CouponsViewSet.redeems() got an unexpected keyword argument 'pk'
206
+ ```
207
+
208
+ При проверке были заменены только `initial()` и обработка исключения, чтобы изолировать диспетчеризацию от авторизации и БД. Это подтверждённая ошибка вызова обработчика, а не результат запроса к развёрнутому серверу. SDK формируют правильные HTTP-методы и пути; исправление требуется на стороне API.
209
+
210
+ Источники: InvoicesViewSet (`api/apps/billing/api/viewsets.py:197`), CouponsViewSet.redeems (`api/apps/marketing/api/viewsets.py:444`), регистрация router (`api/apps/routing/infrastructure/django/public.py:95`).
211
+
212
+ Исправление: принимать `pk=None` или `*args, **kwargs`; добавить HTTP-тесты всех трёх detail-action через router. После этого повторить интеграционные проверки SDK для платёжной ссылки, PDF и погашений купона.
213
+
214
+ ### BE-02 · P2 · Управление sessions отключено, хотя SDK обещает успешные ответы
215
+
216
+ Авторизованные `GET /sessions` и `DELETE /sessions/{id}` безусловно вызывают `_unavailable()` и возвращают 403 с причиной `errors.proxy.session_ownership_unavailable`. Актуальная схема уже не содержит успешного ответа для этих операций; сохранённая схема SDK всё ещё содержит старые `SessionListResponse` / `SessionDeleteResponse`.
217
+
218
+ Это ограничение текущего API, а не неправильный ключ пользователя. Следует отметить методы как временно недоступные/deprecated и обновить документацию. Возвращать возможность управления сессиями нужно только после реализации проверки владельца на сервере.
219
+
220
+ Источник: SessionViewSet (`api/apps/core/api/viewsets.py:1622`).
221
+
222
+
223
+ ## Минимальное локальное воспроизведение OTP
224
+
225
+ Из текущего каталога, без сетевого обращения:
226
+
227
+ ```bash
228
+ python-sdk/.venv/bin/python - <<'PY'
229
+ import httpx
230
+ from proxyrequest_sdk import ApiError, Client
231
+ from proxyrequest_sdk.models import LoginRequest
232
+
233
+ transport = httpx.MockTransport(lambda request: httpx.Response(
234
+ 202,
235
+ json={"status": "otp_required", "challenge": "audit", "expires_in": 300},
236
+ ))
237
+ http = httpx.Client(
238
+ base_url="https://api.proxyrequest.com/api/v1",
239
+ transport=transport,
240
+ )
241
+ with Client.anonymous(http_client=http) as client:
242
+ try:
243
+ client.authorization.login(
244
+ body=LoginRequest(email="audit@example.com", password="synthetic")
245
+ )
246
+ except ApiError as error:
247
+ print(str(error), error.status_code, error.raw_body)
248
+ http.close()
249
+ PY
250
+ ```
251
+
252
+ ## Проверки и приоритет исправлений
253
+
254
+ `.venv/bin/python -m pytest -q`: **24 passed**. Дополнительно проверены sync/async OTP 202, пустой 204, JSON 502, HTML 400, каждый nullable invoice field, короткий Invoice, оба User-режима и новый gateway через enum.
255
+
256
+ Подтверждены корректные заголовки Static/Bearer, дополнительные JSON-поля, единый idempotency key на повторные попытки в штатных сценариях, ETag/If-Match, пагинация через offset, файлы и совместимость HMAC webhook с серверным алгоритмом (`api/apps/webhooks/management/commands/send_webhook_events.py:55`). Ошибка `id_path` в `users_orders_list` не обнаружена: это внутреннее переименование, которое корректно подставляется в `/users/{id}/orders`.
257
+
258
+ Порядок: исправить серверные detail-action и контракты моделей; устранить nullable/варианты User/Invoice и потерю HTTP-контекста; внедрить MFA; обновить платежи и schema sync. Проверить реальные успешные ответы создания пользователя/счёта, а не только mocked HTTP-ошибки и наличие методов.
259
+
260
+ ## Полная матрица методов
261
+
262
+ Каждый указанный метод существует и у `Client`, и у `AsyncClient`; доступны варианты `*_with_response`. Наличие метода не отменяет перечисленных выше ограничений.
263
+
264
+ | HTTP | Путь | Метод SDK |
265
+ | --- | --- | --- |
266
+ | GET | `/affiliates` | `affiliates.list()` |
267
+ | GET | `/affiliates/rewards` | `affiliates.list_rewards()` |
268
+ | GET | `/affiliates/rewards/overall` | `affiliates.get_rewards_overall()` |
269
+ | GET | `/analytics/{id}/transactions` | `analytics.get_transactions()` |
270
+ | GET | `/analytics/connections` | `analytics.get_connections()` |
271
+ | GET | `/analytics/domains` | `analytics.list_domains()` |
272
+ | GET | `/analytics/feed` | `analytics.list_feed()` |
273
+ | GET | `/analytics/logs` | `analytics.list_logs()` |
274
+ | GET | `/analytics/overall` | `analytics.get_overall()` |
275
+ | GET | `/api-keys` | `api_keys.list()` |
276
+ | POST | `/api-keys` | `api_keys.create()` |
277
+ | DELETE | `/api-keys/{id}` | `api_keys.delete()` |
278
+ | GET | `/coupons` | `coupons.list()` |
279
+ | POST | `/coupons` | `coupons.create()` |
280
+ | GET | `/coupons/{id}` | `coupons.get()` |
281
+ | PUT | `/coupons/{id}` | `coupons.replace()` |
282
+ | PATCH | `/coupons/{id}` | `coupons.update()` |
283
+ | DELETE | `/coupons/{id}` | `coupons.delete()` |
284
+ | GET | `/coupons/{id}/redeems` | `coupons.list_redeems()` |
285
+ | POST | `/coupons/calculate-price` | `coupons.calculate_price()` |
286
+ | GET | `/integrations/telegram/connection` | `telegram.get_connection()` |
287
+ | PATCH | `/integrations/telegram/connection` | `telegram.update_connection()` |
288
+ | DELETE | `/integrations/telegram/connection` | `telegram.delete_connection()` |
289
+ | POST | `/integrations/telegram/link` | `telegram.create_link()` |
290
+ | GET | `/invoices` | `invoices.list()` |
291
+ | POST | `/invoices` | `invoices.create()` |
292
+ | GET | `/invoices/{id}` | `invoices.get()` |
293
+ | DELETE | `/invoices/{id}` | `invoices.delete()` |
294
+ | GET | `/invoices/{id}/download/pdf` | `invoices.download_pdf()` |
295
+ | GET | `/invoices/{id}/pay` | `invoices.get_payment_link()` |
296
+ | GET | `/locations/asn` | `locations.list_asns()` |
297
+ | GET | `/locations/cities` | `locations.list_cities()` |
298
+ | GET | `/locations/cities/{id}` | `locations.get_city()` |
299
+ | GET | `/locations/continents` | `locations.list_continents()` |
300
+ | GET | `/locations/continents/{id}` | `locations.get_continent()` |
301
+ | GET | `/locations/countries` | `locations.list_countries()` |
302
+ | GET | `/locations/countries/{id}` | `locations.get_country()` |
303
+ | GET | `/locations/isps` | `locations.list_isps()` |
304
+ | GET | `/locations/regions` | `locations.list_regions()` |
305
+ | GET | `/locations/regions/{id}` | `locations.get_region()` |
306
+ | POST | `/login` | `authorization.login()` |
307
+ | POST | `/login/google` | `authorization.login_with_google()` |
308
+ | POST | `/login/otp` | **Отсутствует — PY-01** |
309
+ | GET | `/news` | `news.list()` |
310
+ | GET | `/orders` | `orders.list()` |
311
+ | GET | `/orders/{id}` | `orders.get()` |
312
+ | PATCH | `/orders/{id}` | `orders.update_auto_renewal()` |
313
+ | DELETE | `/orders/{id}` | `orders.delete()` |
314
+ | GET | `/packages` | `packages.list()` |
315
+ | GET | `/packages/commissions` | `packages.list_commissions()` |
316
+ | GET | `/profile` | `profile.get()` |
317
+ | PATCH | `/profile` | `profile.update()` |
318
+ | DELETE | `/profile` | `profile.delete()` |
319
+ | POST | `/profile/2fa/confirm` | `profile.confirm_two_factor()` |
320
+ | POST | `/profile/2fa/disable` | `profile.disable_two_factor()` |
321
+ | POST | `/profile/2fa/setup` | `profile.setup_two_factor()` |
322
+ | GET | `/profile/2fa/status` | `profile.get_two_factor_status()` |
323
+ | POST | `/profile/change-password` | `profile.change_password()` |
324
+ | POST | `/proxies/generate` | `proxies.generate()` |
325
+ | POST | `/recover-password` | `authorization.recover_password()` |
326
+ | POST | `/refresh` | `authorization.refresh()` |
327
+ | POST | `/reset-password` | `orders.reset_password()` |
328
+ | GET | `/rewards` | `rewards.list()` |
329
+ | POST | `/rewards/claim` | `rewards.claim()` |
330
+ | GET | `/sessions` | `sessions.list()` |
331
+ | DELETE | `/sessions/{id}` | `sessions.delete()` |
332
+ | GET | `/settings` | `settings.get()` |
333
+ | POST | `/signup` | `authorization.signup()` |
334
+ | GET | `/users` | `users.list()` |
335
+ | POST | `/users` | `users.create()` |
336
+ | GET | `/users/{id}` | `users.get()` |
337
+ | PATCH | `/users/{id}` | `users.update()` |
338
+ | DELETE | `/users/{id}` | `users.delete()` |
339
+ | POST | `/users/{id}/data/add` | `users.add_data()` |
340
+ | POST | `/users/{id}/data/subtract` | `users.subtract_data()` |
341
+ | GET | `/users/{id}/orders` | `users.list_orders()` |
342
+ | POST | `/users/{id}/password` | `users.reset_password()` |
343
+ | GET | `/webhooks` | `webhooks.list()` |
344
+ | POST | `/webhooks` | `webhooks.create()` |
345
+ | GET | `/webhooks/{id}` | `webhooks.get()` |
346
+ | DELETE | `/webhooks/{id}` | `webhooks.delete()` |