growsurf-python 1.11.0__tar.gz → 1.12.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 (213) hide show
  1. growsurf_python-1.12.0/.release-please-manifest.json +3 -0
  2. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/CHANGELOG.md +15 -0
  3. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/PKG-INFO +1 -1
  4. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/api.md +18 -0
  5. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/pyproject.toml +1 -1
  6. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_version.py +1 -1
  7. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/campaign/emails.py +8 -0
  8. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/campaign/participant.py +4 -0
  9. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/campaign_emails.py +8 -2
  10. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_email_params.py +2 -0
  11. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/uv.lock +173 -130
  12. growsurf_python-1.11.0/.release-please-manifest.json +0 -3
  13. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/.gitignore +0 -0
  14. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/CONTRIBUTING.md +0 -0
  15. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/LICENSE +0 -0
  16. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/README.md +0 -0
  17. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/SECURITY.md +0 -0
  18. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/bin/check-release-environment +0 -0
  19. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/bin/publish-pypi +0 -0
  20. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/examples/.keep +0 -0
  21. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/release-please-config.json +0 -0
  22. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/requirements-dev.lock +0 -0
  23. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/__init__.py +0 -0
  24. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_base_client.py +0 -0
  25. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_client.py +0 -0
  26. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_compat.py +0 -0
  27. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_constants.py +0 -0
  28. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_exceptions.py +0 -0
  29. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_files.py +0 -0
  30. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_models.py +0 -0
  31. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_qs.py +0 -0
  32. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_resource.py +0 -0
  33. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_response.py +0 -0
  34. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_streaming.py +0 -0
  35. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_types.py +0 -0
  36. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_utils/__init__.py +0 -0
  37. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_utils/_compat.py +0 -0
  38. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_utils/_datetime_parse.py +0 -0
  39. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_utils/_json.py +0 -0
  40. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_utils/_logs.py +0 -0
  41. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_utils/_path.py +0 -0
  42. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_utils/_proxy.py +0 -0
  43. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_utils/_reflection.py +0 -0
  44. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_utils/_resources_proxy.py +0 -0
  45. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_utils/_streams.py +0 -0
  46. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_utils/_sync.py +0 -0
  47. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_utils/_transform.py +0 -0
  48. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_utils/_typing.py +0 -0
  49. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/_utils/_utils.py +0 -0
  50. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/lib/.keep +0 -0
  51. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/py.typed +0 -0
  52. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/__init__.py +0 -0
  53. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/account.py +0 -0
  54. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/campaign/__init__.py +0 -0
  55. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/campaign/campaign.py +0 -0
  56. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/campaign/commission.py +0 -0
  57. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/campaign/design.py +0 -0
  58. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/campaign/installation.py +0 -0
  59. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/campaign/integrations.py +0 -0
  60. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/campaign/options.py +0 -0
  61. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/campaign/program_resources.py +0 -0
  62. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/campaign/reward.py +0 -0
  63. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/campaign/rewards.py +0 -0
  64. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/campaign/webhooks.py +0 -0
  65. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/resources/team.py +0 -0
  66. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/__init__.py +0 -0
  67. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/account_create_params.py +0 -0
  68. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/affiliate_application.py +0 -0
  69. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/affiliate_application_answer.py +0 -0
  70. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/affiliate_application_list_response.py +0 -0
  71. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/affiliate_invite.py +0 -0
  72. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/affiliate_invite_list_response.py +0 -0
  73. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/analytics_availability.py +0 -0
  74. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/analytics_unavailable_reason.py +0 -0
  75. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/__init__.py +0 -0
  76. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/campaign.py +0 -0
  77. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/campaign_design.py +0 -0
  78. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/campaign_installation.py +0 -0
  79. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/campaign_options.py +0 -0
  80. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/campaign_reward_list_response.py +0 -0
  81. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/commission_approve_response.py +0 -0
  82. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/commission_delete_response.py +0 -0
  83. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/delete_program_resource_response.py +0 -0
  84. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/delete_reward_response.py +0 -0
  85. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/delete_webhook_response.py +0 -0
  86. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/email_participant_response.py +0 -0
  87. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/fraud_risk_level.py +0 -0
  88. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/integration.py +0 -0
  89. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/integration_list_response.py +0 -0
  90. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant.py +0 -0
  91. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_activation_analytics.py +0 -0
  92. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_activity_logs_response.py +0 -0
  93. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_add_params.py +0 -0
  94. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_analytics_params.py +0 -0
  95. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_analytics_response.py +0 -0
  96. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_bulk_delete_params.py +0 -0
  97. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_bulk_delete_response.py +0 -0
  98. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_delete_response.py +0 -0
  99. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_get_payout_destination_response.py +0 -0
  100. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_list_activity_logs_params.py +0 -0
  101. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_list_commissions_params.py +0 -0
  102. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_list_payouts_params.py +0 -0
  103. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_list_referrals_params.py +0 -0
  104. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_list_rewards_params.py +0 -0
  105. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_list_rewards_response.py +0 -0
  106. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_record_transaction_params.py +0 -0
  107. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_record_transaction_response.py +0 -0
  108. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_refund_transaction_params.py +0 -0
  109. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_refund_transaction_response.py +0 -0
  110. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_request_payout_destination_confirmation_params.py +0 -0
  111. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_request_payout_destination_confirmation_response.py +0 -0
  112. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_reward.py +0 -0
  113. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_send_invites_params.py +0 -0
  114. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_send_invites_response.py +0 -0
  115. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_trigger_referral_params.py +0 -0
  116. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_trigger_referral_response.py +0 -0
  117. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/participant_update_params.py +0 -0
  118. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/pending_analytics_erasure.py +0 -0
  119. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/program_resource.py +0 -0
  120. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/program_resource_list_response.py +0 -0
  121. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/program_resource_upload_result.py +0 -0
  122. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/program_resource_upload_ticket.py +0 -0
  123. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/referral_source.py +0 -0
  124. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/referral_status.py +0 -0
  125. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/reward.py +0 -0
  126. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/reward_approve_params.py +0 -0
  127. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/reward_approve_response.py +0 -0
  128. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/reward_create_params.py +0 -0
  129. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/reward_delete_response.py +0 -0
  130. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/reward_fulfill_response.py +0 -0
  131. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/reward_tax_valuation.py +0 -0
  132. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/reward_update_params.py +0 -0
  133. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/webhook.py +0 -0
  134. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/webhook_create_params.py +0 -0
  135. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/webhook_event.py +0 -0
  136. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/webhook_list_response.py +0 -0
  137. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/webhook_test_params.py +0 -0
  138. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/webhook_test_response.py +0 -0
  139. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign/webhook_update_params.py +0 -0
  140. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_activation_analytics_response.py +0 -0
  141. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_create_affiliate_invite_params.py +0 -0
  142. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_create_mobile_participant_token_params.py +0 -0
  143. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_create_mobile_participant_token_response.py +0 -0
  144. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_create_params.py +0 -0
  145. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_engagement_analytics.py +0 -0
  146. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_list_affiliate_applications_params.py +0 -0
  147. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_list_affiliate_invites_params.py +0 -0
  148. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_list_commissions_params.py +0 -0
  149. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_list_leaderboard_params.py +0 -0
  150. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_list_participants_params.py +0 -0
  151. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_list_payouts_params.py +0 -0
  152. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_list_referrals_params.py +0 -0
  153. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_list_response.py +0 -0
  154. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_retrieve_activation_analytics_params.py +0 -0
  155. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_retrieve_analytics_params.py +0 -0
  156. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_retrieve_analytics_response.py +0 -0
  157. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_review_affiliate_application_params.py +0 -0
  158. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/campaign_update_params.py +0 -0
  159. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/commission_structure.py +0 -0
  160. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/create_account_response.py +0 -0
  161. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/email_analytics.py +0 -0
  162. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/participant_commission_list.py +0 -0
  163. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/participant_list.py +0 -0
  164. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/participant_payout_list.py +0 -0
  165. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/referral_flow_screenshot.py +0 -0
  166. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/referral_flow_screenshots_response.py +0 -0
  167. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/referral_list.py +0 -0
  168. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/rotate_api_key_response.py +0 -0
  169. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/team.py +0 -0
  170. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/team_update_params.py +0 -0
  171. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/src/growsurf/types/verification_email_response.py +0 -0
  172. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/__init__.py +0 -0
  173. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/__init__.py +0 -0
  174. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/campaign/__init__.py +0 -0
  175. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/campaign/test_commission.py +0 -0
  176. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/campaign/test_design.py +0 -0
  177. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/campaign/test_emails.py +0 -0
  178. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/campaign/test_installation.py +0 -0
  179. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/campaign/test_integrations.py +0 -0
  180. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/campaign/test_options.py +0 -0
  181. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/campaign/test_participant.py +0 -0
  182. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/campaign/test_program_resources.py +0 -0
  183. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/campaign/test_reward.py +0 -0
  184. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/campaign/test_rewards.py +0 -0
  185. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/campaign/test_webhooks.py +0 -0
  186. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/test_account.py +0 -0
  187. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/test_campaign.py +0 -0
  188. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/api_resources/test_team_contract.py +0 -0
  189. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/conftest.py +0 -0
  190. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/sample_file.txt +0 -0
  191. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/test_client.py +0 -0
  192. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/test_extract_files.py +0 -0
  193. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/test_files.py +0 -0
  194. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/test_models.py +0 -0
  195. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/test_qs.py +0 -0
  196. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/test_required_args.py +0 -0
  197. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/test_response.py +0 -0
  198. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/test_streaming.py +0 -0
  199. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/test_transform.py +0 -0
  200. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/test_utils/test_datetime_parse.py +0 -0
  201. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/test_utils/test_json.py +0 -0
  202. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/test_utils/test_path.py +0 -0
  203. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/test_utils/test_proxy.py +0 -0
  204. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/test_utils/test_typing.py +0 -0
  205. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/types/test_affiliate_application.py +0 -0
  206. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/types/test_analytics_reward_status.py +0 -0
  207. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/types/test_email_analytics.py +0 -0
  208. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/types/test_lead_reward_events.py +0 -0
  209. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/types/test_participant_activation_engagement_analytics.py +0 -0
  210. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/types/test_participant_contract.py +0 -0
  211. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/types/test_payout_provider_forward_compat.py +0 -0
  212. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/types/test_referral_source.py +0 -0
  213. {growsurf_python-1.11.0 → growsurf_python-1.12.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.12.0"
3
+ }
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.12.0](https://github.com/growsurf/growsurf-python/compare/v1.11.0...v1.12.0) (2026-10-07)
4
+
5
+
6
+ ### Chores
7
+
8
+ * prepare SDK 1.12.0 ([4d51fd4](https://github.com/growsurf/growsurf-python/commit/4d51fd4048c70ea3a4ac68151f0c6ec455c5a5c8))
9
+ * release 1.12.0 ([2a44995](https://github.com/growsurf/growsurf-python/commit/2a44995b52c7f6bdd360cc400a1b3aa64c0af7a8))
10
+
11
+
12
+ ### Documentation
13
+
14
+ * clarify welcome email recipient eligibility ([3050cc3](https://github.com/growsurf/growsurf-python/commit/3050cc38e2f57cbe25d36352f1ddc124f333c4bf))
15
+ * describe follow-up reminder eligibility and delay ([818359b](https://github.com/growsurf/growsurf-python/commit/818359b7806b6029ba06bf788471e17c00ae1363))
16
+ * describe inline email layout and required footer token ([b13749a](https://github.com/growsurf/growsurf-python/commit/b13749a5abd8a8c12e85305ba54ead72055404ff))
17
+
3
18
  ## [1.11.0](https://github.com/growsurf/growsurf-python/compare/v1.10.0...v1.11.0) (2026-09-29)
4
19
 
5
20
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: growsurf-python
3
- Version: 1.11.0
3
+ Version: 1.12.0
4
4
  Summary: The official Python library for the growsurf API
5
5
  Project-URL: Homepage, https://growsurf.com/
6
6
  Project-URL: Repository, https://github.com/growsurf/growsurf-python
@@ -52,11 +52,23 @@ from growsurf.types import (
52
52
  CampaignListResponse,
53
53
  CampaignCreateMobileParticipantTokenResponse,
54
54
  CampaignRetrieveAnalyticsResponse,
55
+ CampaignActivationAnalyticsResponse,
55
56
  ReferralFlowScreenshot,
56
57
  ReferralFlowScreenshotsResponse,
57
58
  )
58
59
  ```
59
60
 
61
+ ```python
62
+ from growsurf.types.campaign import (
63
+ ProgramResource,
64
+ ProgramResourceFile,
65
+ ProgramResourceListResponse,
66
+ ProgramResourceUploadResult,
67
+ ProgramResourceUploadTicket,
68
+ DeleteProgramResourceResponse,
69
+ )
70
+ ```
71
+
60
72
  Methods:
61
73
 
62
74
  - <code title="post /campaigns">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">create</a>(\*\*<a href="src/growsurf/types/campaign_create_params.py">params</a>) -> <a href="./src/growsurf/types/campaign/campaign.py">Campaign</a></code>
@@ -72,6 +84,7 @@ Methods:
72
84
  - <code title="get /campaign/{id}/payouts">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">list_payouts</a>(id, \*\*<a href="src/growsurf/types/campaign_list_payouts_params.py">params</a>) -> <a href="./src/growsurf/types/participant_payout_list.py">ParticipantPayoutList</a></code>
73
85
  - <code title="get /campaign/{id}/referrals">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">list_referrals</a>(id, \*\*<a href="src/growsurf/types/campaign_list_referrals_params.py">params</a>) -> <a href="./src/growsurf/types/referral_list.py">ReferralList</a></code>
74
86
  - <code title="get /campaign/{id}/analytics">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">retrieve_analytics</a>(id, \*\*<a href="src/growsurf/types/campaign_retrieve_analytics_params.py">params</a>) -> <a href="./src/growsurf/types/campaign_retrieve_analytics_response.py">CampaignRetrieveAnalyticsResponse</a></code>
87
+ - <code title="get /campaign/{id}/analytics/activation">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">retrieve_activation_analytics</a>(id, \*\*<a href="src/growsurf/types/campaign_retrieve_activation_analytics_params.py">params</a>) -> <a href="./src/growsurf/types/campaign_activation_analytics_response.py">CampaignActivationAnalyticsResponse</a></code>
75
88
  - <code title="get /campaign/{id}/affiliate-applications">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">list_affiliate_applications</a>(id, \*\*<a href="src/growsurf/types/campaign_list_affiliate_applications_params.py">params</a>) -> <a href="./src/growsurf/types/affiliate_application_list_response.py">AffiliateApplicationListResponse</a></code>
76
89
  - <code title="get /campaign/{id}/affiliate-applications/{applicationId}">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">retrieve_affiliate_application</a>(application_id, \*, id) -> <a href="./src/growsurf/types/affiliate_application.py">AffiliateApplication</a></code>
77
90
  - <code title="patch /campaign/{id}/affiliate-applications/{applicationId}">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">review_affiliate_application</a>(application_id, \*, id, \*\*<a href="src/growsurf/types/campaign_review_affiliate_application_params.py">params</a>) -> <a href="./src/growsurf/types/affiliate_application.py">AffiliateApplication</a></code>
@@ -79,6 +92,11 @@ Methods:
79
92
  - <code title="post /campaign/{id}/affiliate-invites">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">create_affiliate_invite</a>(id, \*\*<a href="src/growsurf/types/campaign_create_affiliate_invite_params.py">params</a>) -> <a href="./src/growsurf/types/affiliate_invite.py">AffiliateInvite</a></code>
80
93
  - <code title="delete /campaign/{id}/affiliate-invites/{inviteId}">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">revoke_affiliate_invite</a>(invite_id, \*, id) -> <a href="./src/growsurf/types/affiliate_invite.py">AffiliateInvite</a></code>
81
94
  - <code title="post /campaign/{id}/affiliate-invites/{inviteId}/resend">client.campaign.<a href="./src/growsurf/resources/campaign/campaign.py">resend_affiliate_invite</a>(invite_id, \*, id) -> <a href="./src/growsurf/types/affiliate_invite.py">AffiliateInvite</a></code>
95
+ - <code title="get /campaign/{id}/resources">client.campaign.resources.<a href="./src/growsurf/resources/campaign/program_resources.py">list</a>(id) -> <a href="./src/growsurf/types/campaign/program_resource_list_response.py">ProgramResourceListResponse</a></code>
96
+ - <code title="post /campaign/{id}/resources">client.campaign.resources.<a href="./src/growsurf/resources/campaign/program_resources.py">create</a>(id, \*, type, title, description, category, is_published, url, text, upload_ticket, upload_result) -> <a href="./src/growsurf/types/campaign/program_resource.py">ProgramResource</a></code>
97
+ - <code title="patch /campaign/{id}/resources/{resourceId}">client.campaign.resources.<a href="./src/growsurf/resources/campaign/program_resources.py">update</a>(resource_id, \*, id, type, title, description, category, is_published, position, url, text, upload_ticket, upload_result) -> <a href="./src/growsurf/types/campaign/program_resource.py">ProgramResource</a></code>
98
+ - <code title="delete /campaign/{id}/resources/{resourceId}">client.campaign.resources.<a href="./src/growsurf/resources/campaign/program_resources.py">delete</a>(resource_id, \*, id) -> <a href="./src/growsurf/types/campaign/delete_program_resource_response.py">DeleteProgramResourceResponse</a></code>
99
+ - <code title="post /campaign/{id}/resource-upload-tickets">client.campaign.resources.<a href="./src/growsurf/resources/campaign/program_resources.py">create_upload_ticket</a>(id, \*, file_name, mime_type, bytes) -> <a href="./src/growsurf/types/campaign/program_resource_upload_ticket.py">ProgramResourceUploadTicket</a></code>
82
100
 
83
101
  ## Participant
84
102
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "growsurf-python"
3
- version = "1.11.0"
3
+ version = "1.12.0"
4
4
  description = "The official Python library for the growsurf API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -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.11.0" # x-release-please-version
4
+ __version__ = "1.12.0" # x-release-please-version
@@ -61,6 +61,10 @@ class EmailsResource(SyncAPIResource):
61
61
  (`subject`, `preheader`, `body`, `isEnabled`) plus the `settings` block (sender,
62
62
  contact, and design). The set of email templates returned depends on the program
63
63
  type (referral vs affiliate).
64
+ `followUpReminder` is disabled by default. It reminds the referrer about new
65
+ invitations sent while enabled when the contacts have not signed up.
66
+ `delayDays` accepts integers from 2 to 30 (default 3); changing it leaves
67
+ existing reminder dates unchanged.
64
68
 
65
69
  Args:
66
70
  extra_headers: Send extra headers
@@ -163,6 +167,10 @@ class AsyncEmailsResource(AsyncAPIResource):
163
167
  (`subject`, `preheader`, `body`, `isEnabled`) plus the `settings` block (sender,
164
168
  contact, and design). The set of email templates returned depends on the program
165
169
  type (referral vs affiliate).
170
+ `followUpReminder` is disabled by default. It reminds the referrer about new
171
+ invitations sent while enabled when the contacts have not signed up.
172
+ `delayDays` accepts integers from 2 to 30 (default 3); changing it leaves
173
+ existing reminder dates unchanged.
166
174
 
167
175
  Args:
168
176
  extra_headers: Send extra headers
@@ -1032,6 +1032,8 @@ class ParticipantResource(SyncAPIResource):
1032
1032
  `commissionGenerated`, `commissionAdjusted`, `payoutPending`, `payoutSentSuccess`,
1033
1033
  `progressUpdateMonthly`. System/transactional types (login link, PayPal confirmation,
1034
1034
  tax) and the invite email cannot be sent.
1035
+ `welcomeNonReferred` can only be sent to advocates or approved, enrolled affiliates in
1036
+ a program that has not ended.
1035
1037
 
1036
1038
  body: HTML body for a free-form email. You can personalize it with dynamic text, inserting `{{...}}` tokens like `{{firstName}}` or `{{shareUrl}}`. See [Guide to using dynamic text in GrowSurf emails](https://support.growsurf.com/article/213-guide-to-using-dynamic-text-in-growsurf-emails).
1037
1039
 
@@ -2298,6 +2300,8 @@ class AsyncParticipantResource(AsyncAPIResource):
2298
2300
  `commissionGenerated`, `commissionAdjusted`, `payoutPending`, `payoutSentSuccess`,
2299
2301
  `progressUpdateMonthly`. System/transactional types (login link, PayPal confirmation,
2300
2302
  tax) and the invite email cannot be sent.
2303
+ `welcomeNonReferred` can only be sent to advocates or approved, enrolled affiliates in
2304
+ a program that has not ended.
2301
2305
 
2302
2306
  body: HTML body for a free-form email. You can personalize it with dynamic text, inserting `{{...}}` tokens like `{{firstName}}` or `{{shareUrl}}`. See [Guide to using dynamic text in GrowSurf emails](https://support.growsurf.com/article/213-guide-to-using-dynamic-text-in-growsurf-emails).
2303
2307
 
@@ -9,7 +9,13 @@ __all__ = ["CampaignEmails"]
9
9
  # each editable email template plus the shared `settings` block. The set of
10
10
  # templates depends on the program type; it is intentionally modeled as a loose
11
11
  # object. `offerClaimed` is available to both program types and sends while the
12
- # Claim Offer Popup is enabled. To see the full object with every field and its
12
+ # Claim Offer Popup is enabled. `followUpReminder` is disabled by default and
13
+ # reminds the referrer about new invitations sent while it is enabled when the
14
+ # contacts have not signed up. Its `delayDays` is an integer from 2 to 30 (default
15
+ # 3); changing it leaves existing reminder dates unchanged.
16
+ # To see the full object with every field and its
13
17
  # current value, `GET` the resource, then `PATCH` back only the fields you want to
14
- # change.
18
+ # change. New programs return settings.design.layoutMode="INLINE" (read-only).
19
+ # Their bodies require {{emailFooter}}; {{emailHeader}} is optional. Older programs
20
+ # omit layoutMode and keep their existing layout.
15
21
  CampaignEmails: TypeAlias = Dict[str, object]
@@ -23,6 +23,8 @@ class ParticipantEmailParams(TypedDict, total=False):
23
23
  `commissionGenerated`, `commissionAdjusted`, `payoutPending`, `payoutSentSuccess`,
24
24
  `progressUpdateMonthly`. System/transactional types (login link, PayPal confirmation,
25
25
  tax) and the invite email cannot be sent.
26
+ `welcomeNonReferred` can only be sent to advocates or approved, enrolled affiliates in a program
27
+ that has not ended.
26
28
  """
27
29
 
28
30
  body: str