growsurf-python 0.8.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-0.8.0 → growsurf_python-1.1.0}/CHANGELOG.md +23 -0
  3. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/PKG-INFO +1 -1
  4. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/api.md +112 -5
  5. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/pyproject.toml +1 -1
  6. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_client.py +38 -1
  7. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_version.py +1 -1
  8. {growsurf_python-0.8.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-0.8.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/__init__.py +70 -0
  11. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/campaign.py +333 -66
  12. growsurf_python-1.1.0/src/growsurf/resources/campaign/design.py +272 -0
  13. growsurf_python-1.1.0/src/growsurf/resources/campaign/emails.py +276 -0
  14. growsurf_python-1.1.0/src/growsurf/resources/campaign/installation.py +272 -0
  15. growsurf_python-1.1.0/src/growsurf/resources/campaign/options.py +276 -0
  16. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/participant.py +626 -0
  17. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/rewards.py +101 -62
  18. growsurf_python-1.1.0/src/growsurf/resources/campaign/webhooks.py +587 -0
  19. {growsurf_python-0.8.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-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/__init__.py +23 -0
  24. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/campaign.py +20 -0
  25. growsurf_python-1.1.0/src/growsurf/types/campaign/campaign_design.py +13 -0
  26. growsurf_python-1.1.0/src/growsurf/types/campaign/campaign_emails.py +13 -0
  27. growsurf_python-1.1.0/src/growsurf/types/campaign/campaign_installation.py +14 -0
  28. growsurf_python-1.1.0/src/growsurf/types/campaign/campaign_options.py +14 -0
  29. {growsurf_python-0.8.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-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_add_params.py +5 -0
  34. growsurf_python-0.8.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-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_update_params.py +7 -0
  41. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward.py +31 -3
  42. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward_create_params.py +45 -6
  43. growsurf_python-1.1.0/src/growsurf/types/campaign/reward_tax_valuation.py +29 -0
  44. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward_update_params.py +45 -6
  45. growsurf_python-1.1.0/src/growsurf/types/campaign/webhook.py +37 -0
  46. growsurf_python-1.1.0/src/growsurf/types/campaign/webhook_create_params.py +27 -0
  47. growsurf_python-1.1.0/src/growsurf/types/campaign/webhook_event.py +15 -0
  48. growsurf_python-1.1.0/src/growsurf/types/campaign/webhook_list_response.py +12 -0
  49. growsurf_python-1.1.0/src/growsurf/types/campaign/webhook_test_params.py +19 -0
  50. growsurf_python-1.1.0/src/growsurf/types/campaign/webhook_test_response.py +24 -0
  51. growsurf_python-1.1.0/src/growsurf/types/campaign/webhook_update_params.py +24 -0
  52. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_create_params.py +5 -6
  53. growsurf_python-1.1.0/src/growsurf/types/campaign_retrieve_analytics_params.py +43 -0
  54. growsurf_python-1.1.0/src/growsurf/types/campaign_retrieve_analytics_response.py +206 -0
  55. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_update_params.py +5 -16
  56. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/commission_structure.py +3 -1
  57. growsurf_python-1.1.0/src/growsurf/types/create_account_response.py +26 -0
  58. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/participant_commission_list.py +1 -3
  59. growsurf_python-1.1.0/src/growsurf/types/referral_flow_screenshots_response.py +34 -0
  60. growsurf_python-1.1.0/src/growsurf/types/rotate_api_key_response.py +12 -0
  61. growsurf_python-1.1.0/src/growsurf/types/verification_email_response.py +13 -0
  62. growsurf_python-1.1.0/tests/api_resources/campaign/test_design.py +200 -0
  63. growsurf_python-1.1.0/tests/api_resources/campaign/test_emails.py +200 -0
  64. growsurf_python-1.1.0/tests/api_resources/campaign/test_installation.py +200 -0
  65. growsurf_python-1.1.0/tests/api_resources/campaign/test_options.py +200 -0
  66. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/api_resources/campaign/test_participant.py +500 -0
  67. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/api_resources/campaign/test_rewards.py +26 -30
  68. growsurf_python-1.1.0/tests/api_resources/campaign/test_webhooks.py +587 -0
  69. growsurf_python-1.1.0/tests/api_resources/test_account.py +419 -0
  70. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/api_resources/test_campaign.py +91 -20
  71. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/uv.lock +1 -1
  72. growsurf_python-0.8.0/.release-please-manifest.json +0 -3
  73. growsurf_python-0.8.0/src/growsurf/types/campaign_retrieve_analytics_response.py +0 -81
  74. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/.gitignore +0 -0
  75. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/CONTRIBUTING.md +0 -0
  76. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/LICENSE +0 -0
  77. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/README.md +0 -0
  78. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/SECURITY.md +0 -0
  79. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/bin/check-release-environment +0 -0
  80. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/bin/publish-pypi +0 -0
  81. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/examples/.keep +0 -0
  82. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/release-please-config.json +0 -0
  83. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/requirements-dev.lock +0 -0
  84. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/__init__.py +0 -0
  85. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_base_client.py +0 -0
  86. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_compat.py +0 -0
  87. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_constants.py +0 -0
  88. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_exceptions.py +0 -0
  89. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_files.py +0 -0
  90. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_models.py +0 -0
  91. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_qs.py +0 -0
  92. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_resource.py +0 -0
  93. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_response.py +0 -0
  94. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_streaming.py +0 -0
  95. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_types.py +0 -0
  96. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_utils/__init__.py +0 -0
  97. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_compat.py +0 -0
  98. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_datetime_parse.py +0 -0
  99. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_json.py +0 -0
  100. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_logs.py +0 -0
  101. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_path.py +0 -0
  102. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_proxy.py +0 -0
  103. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_reflection.py +0 -0
  104. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_resources_proxy.py +0 -0
  105. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_streams.py +0 -0
  106. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_sync.py +0 -0
  107. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_transform.py +0 -0
  108. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_typing.py +0 -0
  109. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/_utils/_utils.py +0 -0
  110. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/lib/.keep +0 -0
  111. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/py.typed +0 -0
  112. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/commission.py +0 -0
  113. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/resources/campaign/reward.py +0 -0
  114. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/commission_approve_response.py +0 -0
  115. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/commission_delete_response.py +0 -0
  116. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/delete_reward_response.py +0 -0
  117. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/fraud_risk_level.py +0 -0
  118. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant.py +0 -0
  119. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_delete_response.py +0 -0
  120. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_list_commissions_params.py +0 -0
  121. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_list_payouts_params.py +0 -0
  122. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_list_referrals_params.py +0 -0
  123. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_list_rewards_params.py +0 -0
  124. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_list_rewards_response.py +0 -0
  125. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_record_transaction_params.py +0 -0
  126. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_record_transaction_response.py +0 -0
  127. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_refund_transaction_params.py +0 -0
  128. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_refund_transaction_response.py +0 -0
  129. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_reward.py +0 -0
  130. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_send_invites_params.py +0 -0
  131. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_send_invites_response.py +0 -0
  132. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_trigger_referral_params.py +0 -0
  133. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/participant_trigger_referral_response.py +0 -0
  134. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/referral_source.py +0 -0
  135. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/referral_status.py +0 -0
  136. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward_approve_params.py +0 -0
  137. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward_approve_response.py +0 -0
  138. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward_delete_response.py +0 -0
  139. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign/reward_fulfill_response.py +0 -0
  140. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_create_mobile_participant_token_params.py +0 -0
  141. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_create_mobile_participant_token_response.py +0 -0
  142. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_list_commissions_params.py +0 -0
  143. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_list_leaderboard_params.py +0 -0
  144. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_list_participants_params.py +0 -0
  145. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_list_payouts_params.py +0 -0
  146. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_list_referrals_params.py +0 -0
  147. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/campaign_list_response.py +0 -0
  148. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/participant_list.py +0 -0
  149. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/participant_payout_list.py +0 -0
  150. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/src/growsurf/types/referral_list.py +0 -0
  151. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/__init__.py +0 -0
  152. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/api_resources/__init__.py +0 -0
  153. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/api_resources/campaign/__init__.py +0 -0
  154. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/api_resources/campaign/test_commission.py +0 -0
  155. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/api_resources/campaign/test_reward.py +0 -0
  156. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/conftest.py +0 -0
  157. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/sample_file.txt +0 -0
  158. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/test_client.py +0 -0
  159. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/test_extract_files.py +0 -0
  160. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/test_files.py +0 -0
  161. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/test_models.py +0 -0
  162. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/test_qs.py +0 -0
  163. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/test_required_args.py +0 -0
  164. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/test_response.py +0 -0
  165. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/test_streaming.py +0 -0
  166. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/test_transform.py +0 -0
  167. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/test_utils/test_datetime_parse.py +0 -0
  168. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/test_utils/test_json.py +0 -0
  169. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/test_utils/test_path.py +0 -0
  170. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/test_utils/test_proxy.py +0 -0
  171. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/test_utils/test_typing.py +0 -0
  172. {growsurf_python-0.8.0 → growsurf_python-1.1.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.1.0"
3
+ }
@@ -1,5 +1,28 @@
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
+
15
+ ## [1.0.0](https://github.com/growsurf/growsurf-python/compare/v0.8.0...v1.0.0) (2026-07-03)
16
+
17
+
18
+ ### ⚠ BREAKING CHANGES
19
+
20
+ * campaign create no longer accepts `options`, and campaign update no longer accepts the design / emails / options / notifications / installation config blobs — edit those via the new config sub-resources. Reward-config CRUD moved from /campaign/{id}/rewards to /campaign/{id}/reward-configs[/{campaignRewardId}].
21
+
22
+ ### Features
23
+
24
+ * add campaign management endpoints; drop deprecated create/update config blobs ([6116f40](https://github.com/growsurf/growsurf-python/commit/6116f400534856bfeafcafa21a42fd648b167fe5))
25
+
3
26
  ## [0.8.0](https://github.com/growsurf/growsurf-python/compare/v0.7.0...v0.8.0) (2026-07-01)
4
27
 
5
28
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: growsurf-python
3
- Version: 0.8.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
 
@@ -104,12 +137,86 @@ Methods:
104
137
  Types:
105
138
 
106
139
  ```python
107
- from growsurf.types.campaign import Reward, CampaignRewardListResponse, DeleteRewardResponse
140
+ from growsurf.types.campaign import Reward, RewardTaxValuation, CampaignRewardListResponse, DeleteRewardResponse
141
+ ```
142
+
143
+ Methods:
144
+
145
+ - <code title="post /campaign/{id}/reward-configs">client.campaign.rewards.<a href="./src/growsurf/resources/campaign/rewards.py">create</a>(id, \*\*<a href="src/growsurf/types/campaign/reward_create_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/reward.py">Reward</a></code>
146
+ - <code title="patch /campaign/{id}/reward-configs/{campaignRewardId}">client.campaign.rewards.<a href="./src/growsurf/resources/campaign/rewards.py">update</a>(campaign_reward_id, \*, id, \*\*<a href="src/growsurf/types/campaign/reward_update_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/reward.py">Reward</a></code>
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>
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>
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
+
172
+ ## Design
173
+
174
+ Types:
175
+
176
+ ```python
177
+ from growsurf.types.campaign import CampaignDesign
178
+ ```
179
+
180
+ Methods:
181
+
182
+ - <code title="get /campaign/{id}/design">client.campaign.design.<a href="./src/growsurf/resources/campaign/design.py">retrieve</a>(id) -> <a href="./src/growsurf/types/campaign/campaign_design.py">CampaignDesign</a></code>
183
+ - <code title="patch /campaign/{id}/design">client.campaign.design.<a href="./src/growsurf/resources/campaign/design.py">update</a>(id, \*, body) -> <a href="./src/growsurf/types/campaign/campaign_design.py">CampaignDesign</a></code>
184
+
185
+ ## Emails
186
+
187
+ Types:
188
+
189
+ ```python
190
+ from growsurf.types.campaign import CampaignEmails
191
+ ```
192
+
193
+ Methods:
194
+
195
+ - <code title="get /campaign/{id}/emails">client.campaign.emails.<a href="./src/growsurf/resources/campaign/emails.py">retrieve</a>(id) -> <a href="./src/growsurf/types/campaign/campaign_emails.py">CampaignEmails</a></code>
196
+ - <code title="patch /campaign/{id}/emails">client.campaign.emails.<a href="./src/growsurf/resources/campaign/emails.py">update</a>(id, \*, body) -> <a href="./src/growsurf/types/campaign/campaign_emails.py">CampaignEmails</a></code>
197
+
198
+ ## Options
199
+
200
+ Types:
201
+
202
+ ```python
203
+ from growsurf.types.campaign import CampaignOptions
204
+ ```
205
+
206
+ Methods:
207
+
208
+ - <code title="get /campaign/{id}/options">client.campaign.options.<a href="./src/growsurf/resources/campaign/options.py">retrieve</a>(id) -> <a href="./src/growsurf/types/campaign/campaign_options.py">CampaignOptions</a></code>
209
+ - <code title="patch /campaign/{id}/options">client.campaign.options.<a href="./src/growsurf/resources/campaign/options.py">update</a>(id, \*, body) -> <a href="./src/growsurf/types/campaign/campaign_options.py">CampaignOptions</a></code>
210
+
211
+ ## Installation
212
+
213
+ Types:
214
+
215
+ ```python
216
+ from growsurf.types.campaign import CampaignInstallation
108
217
  ```
109
218
 
110
219
  Methods:
111
220
 
112
- - <code title="post /campaign/{id}/rewards">client.campaign.rewards.<a href="./src/growsurf/resources/campaign/rewards.py">create</a>(id, \*\*<a href="src/growsurf/types/campaign/reward_create_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/reward.py">Reward</a></code>
113
- - <code title="patch /campaign/{id}/rewards/{rewardId}">client.campaign.rewards.<a href="./src/growsurf/resources/campaign/rewards.py">update</a>(reward_id, \*, id, \*\*<a href="src/growsurf/types/campaign/reward_update_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/reward.py">Reward</a></code>
114
- - <code title="get /campaign/{id}/rewards">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
- - <code title="delete /campaign/{id}/rewards/{rewardId}">client.campaign.rewards.<a href="./src/growsurf/resources/campaign/rewards.py">delete</a>(reward_id, \*, id) -> <a href="./src/growsurf/types/campaign/delete_reward_response.py">DeleteRewardResponse</a></code>
221
+ - <code title="get /campaign/{id}/installation">client.campaign.installation.<a href="./src/growsurf/resources/campaign/installation.py">retrieve</a>(id) -> <a href="./src/growsurf/types/campaign/campaign_installation.py">CampaignInstallation</a></code>
222
+ - <code title="patch /campaign/{id}/installation">client.campaign.installation.<a href="./src/growsurf/resources/campaign/installation.py">update</a>(id, \*, body) -> <a href="./src/growsurf/types/campaign/campaign_installation.py">CampaignInstallation</a></code>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "growsurf-python"
3
- version = "0.8.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__ = "0.8.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",