growsurf-python 1.0.0__tar.gz → 1.1.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 (172) hide show
  1. growsurf_python-1.1.0/.release-please-manifest.json +3 -0
  2. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/CHANGELOG.md +12 -0
  3. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/PKG-INFO +1 -1
  4. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/api.md +55 -0
  5. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/pyproject.toml +1 -1
  6. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_client.py +38 -1
  7. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_version.py +1 -1
  8. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/resources/__init__.py +14 -0
  9. growsurf_python-1.1.0/src/growsurf/resources/account.py +566 -0
  10. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/__init__.py +14 -0
  11. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/campaign.py +171 -18
  12. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/design.py +16 -12
  13. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/emails.py +18 -14
  14. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/installation.py +14 -10
  15. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/options.py +10 -6
  16. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/participant.py +626 -0
  17. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/rewards.py +32 -34
  18. growsurf_python-1.1.0/src/growsurf/resources/campaign/webhooks.py +587 -0
  19. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/__init__.py +10 -0
  20. growsurf_python-1.1.0/src/growsurf/types/account.py +35 -0
  21. growsurf_python-1.1.0/src/growsurf/types/account_create_params.py +23 -0
  22. growsurf_python-1.1.0/src/growsurf/types/account_update_params.py +17 -0
  23. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/__init__.py +18 -0
  24. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/campaign.py +5 -1
  25. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/campaign_design.py +3 -3
  26. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/campaign_emails.py +2 -2
  27. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/campaign_installation.py +3 -2
  28. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/campaign_options.py +3 -2
  29. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/campaign_reward_list_response.py +1 -1
  30. growsurf_python-1.1.0/src/growsurf/types/campaign/delete_webhook_response.py +11 -0
  31. growsurf_python-1.1.0/src/growsurf/types/campaign/email_participant_response.py +14 -0
  32. growsurf_python-1.1.0/src/growsurf/types/campaign/participant_activity_logs_response.py +28 -0
  33. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_add_params.py +5 -0
  34. growsurf_python-1.0.0/src/growsurf/types/campaign_retrieve_analytics_params.py → growsurf_python-1.1.0/src/growsurf/types/campaign/participant_analytics_params.py +15 -4
  35. growsurf_python-1.1.0/src/growsurf/types/campaign/participant_analytics_response.py +144 -0
  36. growsurf_python-1.1.0/src/growsurf/types/campaign/participant_bulk_delete_params.py +17 -0
  37. growsurf_python-1.1.0/src/growsurf/types/campaign/participant_bulk_delete_response.py +63 -0
  38. growsurf_python-1.1.0/src/growsurf/types/campaign/participant_email_params.py +35 -0
  39. growsurf_python-1.1.0/src/growsurf/types/campaign/participant_list_activity_logs_params.py +17 -0
  40. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_update_params.py +7 -0
  41. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward.py +15 -3
  42. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward_create_params.py +32 -6
  43. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward_update_params.py +32 -6
  44. growsurf_python-1.1.0/src/growsurf/types/campaign/webhook.py +37 -0
  45. growsurf_python-1.1.0/src/growsurf/types/campaign/webhook_create_params.py +27 -0
  46. growsurf_python-1.1.0/src/growsurf/types/campaign/webhook_event.py +15 -0
  47. growsurf_python-1.1.0/src/growsurf/types/campaign/webhook_list_response.py +12 -0
  48. growsurf_python-1.1.0/src/growsurf/types/campaign/webhook_test_params.py +19 -0
  49. growsurf_python-1.1.0/src/growsurf/types/campaign/webhook_test_response.py +24 -0
  50. growsurf_python-1.1.0/src/growsurf/types/campaign/webhook_update_params.py +24 -0
  51. growsurf_python-1.1.0/src/growsurf/types/campaign_retrieve_analytics_params.py +43 -0
  52. growsurf_python-1.1.0/src/growsurf/types/campaign_retrieve_analytics_response.py +206 -0
  53. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_update_params.py +6 -2
  54. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/commission_structure.py +3 -1
  55. growsurf_python-1.1.0/src/growsurf/types/create_account_response.py +26 -0
  56. growsurf_python-1.1.0/src/growsurf/types/referral_flow_screenshots_response.py +34 -0
  57. growsurf_python-1.1.0/src/growsurf/types/rotate_api_key_response.py +12 -0
  58. growsurf_python-1.1.0/src/growsurf/types/verification_email_response.py +13 -0
  59. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/api_resources/campaign/test_participant.py +500 -0
  60. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/api_resources/campaign/test_rewards.py +0 -4
  61. growsurf_python-1.1.0/tests/api_resources/campaign/test_webhooks.py +587 -0
  62. growsurf_python-1.1.0/tests/api_resources/test_account.py +419 -0
  63. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/api_resources/test_campaign.py +91 -2
  64. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/uv.lock +1 -1
  65. growsurf_python-1.0.0/.release-please-manifest.json +0 -3
  66. growsurf_python-1.0.0/src/growsurf/types/campaign_retrieve_analytics_response.py +0 -81
  67. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/.gitignore +0 -0
  68. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/CONTRIBUTING.md +0 -0
  69. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/LICENSE +0 -0
  70. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/README.md +0 -0
  71. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/SECURITY.md +0 -0
  72. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/bin/check-release-environment +0 -0
  73. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/bin/publish-pypi +0 -0
  74. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/examples/.keep +0 -0
  75. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/release-please-config.json +0 -0
  76. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/requirements-dev.lock +0 -0
  77. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/__init__.py +0 -0
  78. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_base_client.py +0 -0
  79. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_compat.py +0 -0
  80. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_constants.py +0 -0
  81. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_exceptions.py +0 -0
  82. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_files.py +0 -0
  83. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_models.py +0 -0
  84. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_qs.py +0 -0
  85. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_resource.py +0 -0
  86. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_response.py +0 -0
  87. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_streaming.py +0 -0
  88. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_types.py +0 -0
  89. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_utils/__init__.py +0 -0
  90. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_compat.py +0 -0
  91. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_datetime_parse.py +0 -0
  92. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_json.py +0 -0
  93. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_logs.py +0 -0
  94. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_path.py +0 -0
  95. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_proxy.py +0 -0
  96. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_reflection.py +0 -0
  97. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_resources_proxy.py +0 -0
  98. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_streams.py +0 -0
  99. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_sync.py +0 -0
  100. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_transform.py +0 -0
  101. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_typing.py +0 -0
  102. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_utils.py +0 -0
  103. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/lib/.keep +0 -0
  104. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/py.typed +0 -0
  105. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/commission.py +0 -0
  106. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/reward.py +0 -0
  107. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/commission_approve_response.py +0 -0
  108. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/commission_delete_response.py +0 -0
  109. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/delete_reward_response.py +0 -0
  110. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/fraud_risk_level.py +0 -0
  111. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant.py +0 -0
  112. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_delete_response.py +0 -0
  113. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_list_commissions_params.py +0 -0
  114. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_list_payouts_params.py +0 -0
  115. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_list_referrals_params.py +0 -0
  116. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_list_rewards_params.py +0 -0
  117. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_list_rewards_response.py +0 -0
  118. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_record_transaction_params.py +0 -0
  119. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_record_transaction_response.py +0 -0
  120. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_refund_transaction_params.py +0 -0
  121. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_refund_transaction_response.py +0 -0
  122. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_reward.py +0 -0
  123. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_send_invites_params.py +0 -0
  124. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_send_invites_response.py +0 -0
  125. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_trigger_referral_params.py +0 -0
  126. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_trigger_referral_response.py +0 -0
  127. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/referral_source.py +0 -0
  128. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/referral_status.py +0 -0
  129. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward_approve_params.py +0 -0
  130. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward_approve_response.py +0 -0
  131. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward_delete_response.py +0 -0
  132. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward_fulfill_response.py +0 -0
  133. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward_tax_valuation.py +0 -0
  134. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_create_mobile_participant_token_params.py +0 -0
  135. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_create_mobile_participant_token_response.py +0 -0
  136. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_create_params.py +0 -0
  137. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_list_commissions_params.py +0 -0
  138. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_list_leaderboard_params.py +0 -0
  139. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_list_participants_params.py +0 -0
  140. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_list_payouts_params.py +0 -0
  141. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_list_referrals_params.py +0 -0
  142. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_list_response.py +0 -0
  143. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/participant_commission_list.py +0 -0
  144. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/participant_list.py +0 -0
  145. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/participant_payout_list.py +0 -0
  146. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/src/growsurf/types/referral_list.py +0 -0
  147. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/__init__.py +0 -0
  148. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/api_resources/__init__.py +0 -0
  149. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/api_resources/campaign/__init__.py +0 -0
  150. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/api_resources/campaign/test_commission.py +0 -0
  151. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/api_resources/campaign/test_design.py +0 -0
  152. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/api_resources/campaign/test_emails.py +0 -0
  153. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/api_resources/campaign/test_installation.py +0 -0
  154. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/api_resources/campaign/test_options.py +0 -0
  155. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/api_resources/campaign/test_reward.py +0 -0
  156. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/conftest.py +0 -0
  157. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/sample_file.txt +0 -0
  158. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/test_client.py +0 -0
  159. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/test_extract_files.py +0 -0
  160. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/test_files.py +0 -0
  161. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/test_models.py +0 -0
  162. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/test_qs.py +0 -0
  163. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/test_required_args.py +0 -0
  164. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/test_response.py +0 -0
  165. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/test_streaming.py +0 -0
  166. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/test_transform.py +0 -0
  167. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/test_utils/test_datetime_parse.py +0 -0
  168. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/test_utils/test_json.py +0 -0
  169. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/test_utils/test_path.py +0 -0
  170. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/test_utils/test_proxy.py +0 -0
  171. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/test_utils/test_typing.py +0 -0
  172. {growsurf_python-1.0.0 → growsurf_python-1.1.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.1.0"
3
+ }
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.1.0](https://github.com/growsurf/growsurf-python/compare/v1.0.0...v1.1.0) (2026-07-08)
4
+
5
+
6
+ ### Features
7
+
8
+ * add account webhook and participant APIs ([6b8fc27](https://github.com/growsurf/growsurf-python/commit/6b8fc2734e28322d8d6891295e8d3a4a2487c1d5))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * sort Python SDK imports ([e3a8a9d](https://github.com/growsurf/growsurf-python/commit/e3a8a9dc9b3793bad975c4c3951287ceeea20733))
14
+
3
15
  ## [1.0.0](https://github.com/growsurf/growsurf-python/compare/v0.8.0...v1.0.0) (2026-07-03)
4
16
 
5
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: growsurf-python
3
- Version: 1.0.0
3
+ Version: 1.1.0
4
4
  Summary: The official Python library for the growsurf API
5
5
  Project-URL: Homepage, https://github.com/growsurf/growsurf-python
6
6
  Project-URL: Repository, https://github.com/growsurf/growsurf-python
@@ -1,3 +1,25 @@
1
+ # Account
2
+
3
+ Types:
4
+
5
+ ```python
6
+ from growsurf.types import (
7
+ Account,
8
+ CreateAccountResponse,
9
+ RotateApiKeyResponse,
10
+ VerificationEmailResponse,
11
+ )
12
+ ```
13
+
14
+ Methods:
15
+
16
+ - <code title="post /accounts">client.account.<a href="./src/growsurf/resources/account.py">create</a>(\*\*<a href="src/growsurf/types/account_create_params.py">params</a>) -> <a href="./src/growsurf/types/create_account_response.py">CreateAccountResponse</a></code>
17
+ - <code title="get /account">client.account.<a href="./src/growsurf/resources/account.py">retrieve</a>() -> <a href="./src/growsurf/types/account.py">Account</a></code>
18
+ - <code title="patch /account">client.account.<a href="./src/growsurf/resources/account.py">update</a>(\*\*<a href="src/growsurf/types/account_update_params.py">params</a>) -> <a href="./src/growsurf/types/account.py">Account</a></code>
19
+ - <code title="post /account/api-key">client.account.<a href="./src/growsurf/resources/account.py">rotate_api_key</a>() -> <a href="./src/growsurf/types/rotate_api_key_response.py">RotateApiKeyResponse</a></code>
20
+ - <code title="post /account/verification-request">client.account.<a href="./src/growsurf/resources/account.py">request_verification</a>() -> <a href="./src/growsurf/types/account.py">Account</a></code>
21
+ - <code title="post /account/verification-email">client.account.<a href="./src/growsurf/resources/account.py">resend_verification_email</a>() -> <a href="./src/growsurf/types/verification_email_response.py">VerificationEmailResponse</a></code>
22
+
1
23
  # Campaign
2
24
 
3
25
  Types:
@@ -11,6 +33,8 @@ from growsurf.types import (
11
33
  ParticipantPayoutList,
12
34
  ReferralList,
13
35
  CampaignListResponse,
36
+ ReferralFlowScreenshot,
37
+ ReferralFlowScreenshotsResponse,
14
38
  CampaignCreateMobileParticipantTokenResponse,
15
39
  CampaignRetrieveAnalyticsResponse,
16
40
  )
@@ -23,6 +47,7 @@ Methods:
23
47
  - <code title="patch /campaign/{id}">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">update</a>(id, \*\*<a href="src/growsurf/types/campaign_update_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/campaign.py">Campaign</a></code>
24
48
  - <code title="get /campaigns">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">list</a>() -> <a href="./src/growsurf/types/campaign_list_response.py">CampaignListResponse</a></code>
25
49
  - <code title="post /campaign/{id}/clone">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">clone</a>(id) -> <a href="./src/growsurf/types/campaign/campaign.py">Campaign</a></code>
50
+ - <code title="get /campaign/{id}/referral-flow-screenshots">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">get_referral_flow_screenshots</a>(id) -> <a href="./src/growsurf/types/referral_flow_screenshots_response.py">ReferralFlowScreenshotsResponse</a></code>
26
51
  - <code title="post /campaign/{id}/mobile-participant-token">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">create_mobile_participant_token</a>(id, \*\*<a href="src/growsurf/types/campaign_create_mobile_participant_token_params.py">params</a>) -> <a href="./src/growsurf/types/campaign_create_mobile_participant_token_response.py">CampaignCreateMobileParticipantTokenResponse</a></code>
27
52
  - <code title="get /campaign/{id}/commissions">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">list_commissions</a>(id, \*\*<a href="src/growsurf/types/campaign_list_commissions_params.py">params</a>) -> <a href="./src/growsurf/types/participant_commission_list.py">ParticipantCommissionList</a></code>
28
53
  - <code title="get /campaign/{id}/leaderboard">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">list_leaderboard</a>(id, \*\*<a href="src/growsurf/types/campaign_list_leaderboard_params.py">params</a>) -> <a href="./src/growsurf/types/participant_list.py">ParticipantList</a></code>
@@ -43,8 +68,12 @@ from growsurf.types.campaign import (
43
68
  ParticipantReward,
44
69
  ReferralSource,
45
70
  ReferralStatus,
71
+ EmailParticipantResponse,
46
72
  ParticipantDeleteResponse,
73
+ ParticipantAnalyticsResponse,
74
+ ParticipantBulkDeleteResponse,
47
75
  ParticipantListRewardsResponse,
76
+ ParticipantActivityLogsResponse,
48
77
  ParticipantRecordTransactionResponse,
49
78
  ParticipantRefundTransactionResponse,
50
79
  ParticipantSendInvitesResponse,
@@ -57,6 +86,7 @@ Methods:
57
86
  - <code title="get /campaign/{id}/participant/{participantIdOrEmail}">client.campaign.participant.<a href="./src/growsurf/resources/campaign/participant.py">retrieve</a>(participant_id_or_email, \*, id) -> <a href="./src/growsurf/types/campaign/participant.py">Participant</a></code>
58
87
  - <code title="post /campaign/{id}/participant/{participantIdOrEmail}">client.campaign.participant.<a href="./src/growsurf/resources/campaign/participant.py">update</a>(participant_id_or_email, \*, id, \*\*<a href="src/growsurf/types/campaign/participant_update_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/participant.py">Participant</a></code>
59
88
  - <code title="delete /campaign/{id}/participant/{participantIdOrEmail}">client.campaign.participant.<a href="./src/growsurf/resources/campaign/participant.py">delete</a>(participant_id_or_email, \*, id) -> <a href="./src/growsurf/types/campaign/participant_delete_response.py">ParticipantDeleteResponse</a></code>
89
+ - <code title="post /campaign/{id}/participants/bulk-delete">client.campaign.participant.<a href="./src/growsurf/resources/campaign/participant.py">bulk_delete</a>(id, \*\*<a href="src/growsurf/types/campaign/participant_bulk_delete_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/participant_bulk_delete_response.py">ParticipantBulkDeleteResponse</a></code>
60
90
  - <code title="post /campaign/{id}/participant">client.campaign.participant.<a href="./src/growsurf/resources/campaign/participant.py">add</a>(id, \*\*<a href="src/growsurf/types/campaign/participant_add_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/participant.py">Participant</a></code>
61
91
  - <code title="get /campaign/{id}/participant/{participantIdOrEmail}/commissions">client.campaign.participant.<a href="./src/growsurf/resources/campaign/participant.py">list_commissions</a>(participant_id_or_email, \*, id, \*\*<a href="src/growsurf/types/campaign/participant_list_commissions_params.py">params</a>) -> <a href="./src/growsurf/types/participant_commission_list.py">ParticipantCommissionList</a></code>
62
92
  - <code title="get /campaign/{id}/participant/{participantIdOrEmail}/payouts">client.campaign.participant.<a href="./src/growsurf/resources/campaign/participant.py">list_payouts</a>(participant_id_or_email, \*, id, \*\*<a href="src/growsurf/types/campaign/participant_list_payouts_params.py">params</a>) -> <a href="./src/growsurf/types/participant_payout_list.py">ParticipantPayoutList</a></code>
@@ -67,6 +97,9 @@ Methods:
67
97
  - <code title="post /campaign/{id}/participant/{participantIdOrEmail}/invites">client.campaign.participant.<a href="./src/growsurf/resources/campaign/participant.py">send_invites</a>(participant_id_or_email, \*, id, \*\*<a href="src/growsurf/types/campaign/participant_send_invites_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/participant_send_invites_response.py">ParticipantSendInvitesResponse</a></code>
68
98
  - <code title="post /campaign/{id}/participant/{participantIdOrEmail}/ref">client.campaign.participant.<a href="./src/growsurf/resources/campaign/participant.py">trigger_referral</a>(participant_id_or_email, \*, id, \*\*<a href="src/growsurf/types/campaign/participant_trigger_referral_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/participant_trigger_referral_response.py">ParticipantTriggerReferralResponse</a></code>
69
99
  - <code title="delete /campaign/{id}/participant/{participantIdOrEmail}/ref">client.campaign.participant.<a href="./src/growsurf/resources/campaign/participant.py">cancel_delayed_referral</a>(participant_id_or_email, \*, id) -> <a href="./src/growsurf/types/campaign/participant_trigger_referral_response.py">ParticipantTriggerReferralResponse</a></code>
100
+ - <code title="post /campaign/{id}/participant/{participantIdOrEmail}/email">client.campaign.participant.<a href="./src/growsurf/resources/campaign/participant.py">email</a>(participant_id_or_email, \*, id, \*\*<a href="src/growsurf/types/campaign/participant_email_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/email_participant_response.py">EmailParticipantResponse</a></code>
101
+ - <code title="get /campaign/{id}/participant/{participantIdOrEmail}/activity-logs">client.campaign.participant.<a href="./src/growsurf/resources/campaign/participant.py">list_activity_logs</a>(participant_id_or_email, \*, id, \*\*<a href="src/growsurf/types/campaign/participant_list_activity_logs_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/participant_activity_logs_response.py">ParticipantActivityLogsResponse</a></code>
102
+ - <code title="get /campaign/{id}/participant/{participantIdOrEmail}/analytics">client.campaign.participant.<a href="./src/growsurf/resources/campaign/participant.py">retrieve_analytics</a>(participant_id_or_email, \*, id, \*\*<a href="src/growsurf/types/campaign/participant_analytics_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/participant_analytics_response.py">ParticipantAnalyticsResponse</a></code>
70
103
 
71
104
  ## Reward
72
105
 
@@ -114,6 +147,28 @@ Methods:
114
147
  - <code title="get /campaign/{id}/reward-configs">client.campaign.rewards.<a href="./src/growsurf/resources/campaign/rewards.py">list</a>(id) -> <a href="./src/growsurf/types/campaign/campaign_reward_list_response.py">CampaignRewardListResponse</a></code>
115
148
  - <code title="delete /campaign/{id}/reward-configs/{campaignRewardId}">client.campaign.rewards.<a href="./src/growsurf/resources/campaign/rewards.py">delete</a>(campaign_reward_id, \*, id) -> <a href="./src/growsurf/types/campaign/delete_reward_response.py">DeleteRewardResponse</a></code>
116
149
 
150
+ ## Webhooks
151
+
152
+ Types:
153
+
154
+ ```python
155
+ from growsurf.types.campaign import (
156
+ Webhook,
157
+ WebhookEvent,
158
+ DeleteWebhookResponse,
159
+ WebhookListResponse,
160
+ WebhookTestResponse,
161
+ )
162
+ ```
163
+
164
+ Methods:
165
+
166
+ - <code title="post /campaign/{id}/webhooks">client.campaign.webhooks.<a href="./src/growsurf/resources/campaign/webhooks.py">create</a>(id, \*\*<a href="src/growsurf/types/campaign/webhook_create_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/webhook.py">Webhook</a></code>
167
+ - <code title="patch /campaign/{id}/webhooks/{webhookId}">client.campaign.webhooks.<a href="./src/growsurf/resources/campaign/webhooks.py">update</a>(webhook_id, \*, id, \*\*<a href="src/growsurf/types/campaign/webhook_update_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/webhook.py">Webhook</a></code>
168
+ - <code title="get /campaign/{id}/webhooks">client.campaign.webhooks.<a href="./src/growsurf/resources/campaign/webhooks.py">list</a>(id) -> <a href="./src/growsurf/types/campaign/webhook_list_response.py">WebhookListResponse</a></code>
169
+ - <code title="delete /campaign/{id}/webhooks/{webhookId}">client.campaign.webhooks.<a href="./src/growsurf/resources/campaign/webhooks.py">delete</a>(webhook_id, \*, id) -> <a href="./src/growsurf/types/campaign/delete_webhook_response.py">DeleteWebhookResponse</a></code>
170
+ - <code title="post /campaign/{id}/webhooks/{webhookId}/test">client.campaign.webhooks.<a href="./src/growsurf/resources/campaign/webhooks.py">test</a>(webhook_id, \*, id, \*\*<a href="src/growsurf/types/campaign/webhook_test_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/webhook_test_response.py">WebhookTestResponse</a></code>
171
+
117
172
  ## Design
118
173
 
119
174
  Types:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "growsurf-python"
3
- version = "1.0.0"
3
+ version = "1.1.0"
4
4
  description = "The official Python library for the growsurf API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -36,7 +36,8 @@ from ._base_client import (
36
36
  )
37
37
 
38
38
  if TYPE_CHECKING:
39
- from .resources import campaign
39
+ from .resources import account, campaign
40
+ from .resources.account import AccountResource, AsyncAccountResource
40
41
  from .resources.campaign.campaign import CampaignResource, AsyncCampaignResource
41
42
 
42
43
  __all__ = [
@@ -115,6 +116,12 @@ class Growsurf(SyncAPIClient):
115
116
  _strict_response_validation=_strict_response_validation,
116
117
  )
117
118
 
119
+ @cached_property
120
+ def account(self) -> AccountResource:
121
+ from .resources.account import AccountResource
122
+
123
+ return AccountResource(self)
124
+
118
125
  @cached_property
119
126
  def campaign(self) -> CampaignResource:
120
127
  from .resources.campaign import CampaignResource
@@ -305,6 +312,12 @@ class AsyncGrowsurf(AsyncAPIClient):
305
312
  _strict_response_validation=_strict_response_validation,
306
313
  )
307
314
 
315
+ @cached_property
316
+ def account(self) -> AsyncAccountResource:
317
+ from .resources.account import AsyncAccountResource
318
+
319
+ return AsyncAccountResource(self)
320
+
308
321
  @cached_property
309
322
  def campaign(self) -> AsyncCampaignResource:
310
323
  from .resources.campaign import AsyncCampaignResource
@@ -437,6 +450,12 @@ class GrowsurfWithRawResponse:
437
450
  def __init__(self, client: Growsurf) -> None:
438
451
  self._client = client
439
452
 
453
+ @cached_property
454
+ def account(self) -> account.AccountResourceWithRawResponse:
455
+ from .resources.account import AccountResourceWithRawResponse
456
+
457
+ return AccountResourceWithRawResponse(self._client.account)
458
+
440
459
  @cached_property
441
460
  def campaign(self) -> campaign.CampaignResourceWithRawResponse:
442
461
  from .resources.campaign import CampaignResourceWithRawResponse
@@ -450,6 +469,12 @@ class AsyncGrowsurfWithRawResponse:
450
469
  def __init__(self, client: AsyncGrowsurf) -> None:
451
470
  self._client = client
452
471
 
472
+ @cached_property
473
+ def account(self) -> account.AsyncAccountResourceWithRawResponse:
474
+ from .resources.account import AsyncAccountResourceWithRawResponse
475
+
476
+ return AsyncAccountResourceWithRawResponse(self._client.account)
477
+
453
478
  @cached_property
454
479
  def campaign(self) -> campaign.AsyncCampaignResourceWithRawResponse:
455
480
  from .resources.campaign import AsyncCampaignResourceWithRawResponse
@@ -463,6 +488,12 @@ class GrowsurfWithStreamedResponse:
463
488
  def __init__(self, client: Growsurf) -> None:
464
489
  self._client = client
465
490
 
491
+ @cached_property
492
+ def account(self) -> account.AccountResourceWithStreamingResponse:
493
+ from .resources.account import AccountResourceWithStreamingResponse
494
+
495
+ return AccountResourceWithStreamingResponse(self._client.account)
496
+
466
497
  @cached_property
467
498
  def campaign(self) -> campaign.CampaignResourceWithStreamingResponse:
468
499
  from .resources.campaign import CampaignResourceWithStreamingResponse
@@ -476,6 +507,12 @@ class AsyncGrowsurfWithStreamedResponse:
476
507
  def __init__(self, client: AsyncGrowsurf) -> None:
477
508
  self._client = client
478
509
 
510
+ @cached_property
511
+ def account(self) -> account.AsyncAccountResourceWithStreamingResponse:
512
+ from .resources.account import AsyncAccountResourceWithStreamingResponse
513
+
514
+ return AsyncAccountResourceWithStreamingResponse(self._client.account)
515
+
479
516
  @cached_property
480
517
  def campaign(self) -> campaign.AsyncCampaignResourceWithStreamingResponse:
481
518
  from .resources.campaign import AsyncCampaignResourceWithStreamingResponse
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "growsurf"
4
- __version__ = "1.0.0" # x-release-please-version
4
+ __version__ = "1.1.0" # x-release-please-version
@@ -1,5 +1,13 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
+ from .account import (
4
+ AccountResource,
5
+ AsyncAccountResource,
6
+ AccountResourceWithRawResponse,
7
+ AsyncAccountResourceWithRawResponse,
8
+ AccountResourceWithStreamingResponse,
9
+ AsyncAccountResourceWithStreamingResponse,
10
+ )
3
11
  from .campaign import (
4
12
  CampaignResource,
5
13
  AsyncCampaignResource,
@@ -10,6 +18,12 @@ from .campaign import (
10
18
  )
11
19
 
12
20
  __all__ = [
21
+ "AccountResource",
22
+ "AsyncAccountResource",
23
+ "AccountResourceWithRawResponse",
24
+ "AsyncAccountResourceWithRawResponse",
25
+ "AccountResourceWithStreamingResponse",
26
+ "AsyncAccountResourceWithStreamingResponse",
13
27
  "CampaignResource",
14
28
  "AsyncCampaignResource",
15
29
  "CampaignResourceWithRawResponse",