growsurf-ruby 0.0.2

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 (224) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +11 -0
  4. data/README.md +234 -0
  5. data/SECURITY.md +23 -0
  6. data/lib/growsurf_ruby/client.rb +90 -0
  7. data/lib/growsurf_ruby/errors.rb +228 -0
  8. data/lib/growsurf_ruby/file_part.rb +58 -0
  9. data/lib/growsurf_ruby/internal/transport/base_client.rb +573 -0
  10. data/lib/growsurf_ruby/internal/transport/pooled_net_requester.rb +210 -0
  11. data/lib/growsurf_ruby/internal/type/array_of.rb +168 -0
  12. data/lib/growsurf_ruby/internal/type/base_model.rb +531 -0
  13. data/lib/growsurf_ruby/internal/type/base_page.rb +55 -0
  14. data/lib/growsurf_ruby/internal/type/boolean.rb +77 -0
  15. data/lib/growsurf_ruby/internal/type/converter.rb +327 -0
  16. data/lib/growsurf_ruby/internal/type/enum.rb +156 -0
  17. data/lib/growsurf_ruby/internal/type/file_input.rb +111 -0
  18. data/lib/growsurf_ruby/internal/type/hash_of.rb +188 -0
  19. data/lib/growsurf_ruby/internal/type/request_parameters.rb +42 -0
  20. data/lib/growsurf_ruby/internal/type/union.rb +254 -0
  21. data/lib/growsurf_ruby/internal/type/unknown.rb +81 -0
  22. data/lib/growsurf_ruby/internal/util.rb +966 -0
  23. data/lib/growsurf_ruby/internal.rb +20 -0
  24. data/lib/growsurf_ruby/models/campaign/commission_approve_params.rb +28 -0
  25. data/lib/growsurf_ruby/models/campaign/commission_approve_response.rb +18 -0
  26. data/lib/growsurf_ruby/models/campaign/commission_delete_params.rb +28 -0
  27. data/lib/growsurf_ruby/models/campaign/commission_delete_response.rb +18 -0
  28. data/lib/growsurf_ruby/models/campaign/fraud_risk_level.rb +18 -0
  29. data/lib/growsurf_ruby/models/campaign/participant.rb +495 -0
  30. data/lib/growsurf_ruby/models/campaign/participant_add_params.rb +93 -0
  31. data/lib/growsurf_ruby/models/campaign/participant_delete_params.rb +28 -0
  32. data/lib/growsurf_ruby/models/campaign/participant_delete_response.rb +18 -0
  33. data/lib/growsurf_ruby/models/campaign/participant_list_commissions_params.rb +68 -0
  34. data/lib/growsurf_ruby/models/campaign/participant_list_payouts_params.rb +67 -0
  35. data/lib/growsurf_ruby/models/campaign/participant_list_referrals_params.rb +117 -0
  36. data/lib/growsurf_ruby/models/campaign/participant_list_rewards_params.rb +46 -0
  37. data/lib/growsurf_ruby/models/campaign/participant_list_rewards_response.rb +30 -0
  38. data/lib/growsurf_ruby/models/campaign/participant_record_transaction_params.rb +170 -0
  39. data/lib/growsurf_ruby/models/campaign/participant_record_transaction_response.rb +91 -0
  40. data/lib/growsurf_ruby/models/campaign/participant_retrieve_params.rb +28 -0
  41. data/lib/growsurf_ruby/models/campaign/participant_reward.rb +103 -0
  42. data/lib/growsurf_ruby/models/campaign/participant_send_invites_params.rb +46 -0
  43. data/lib/growsurf_ruby/models/campaign/participant_send_invites_response.rb +30 -0
  44. data/lib/growsurf_ruby/models/campaign/participant_trigger_referral_params.rb +28 -0
  45. data/lib/growsurf_ruby/models/campaign/participant_trigger_referral_response.rb +24 -0
  46. data/lib/growsurf_ruby/models/campaign/participant_update_params.rb +100 -0
  47. data/lib/growsurf_ruby/models/campaign/referral_source.rb +17 -0
  48. data/lib/growsurf_ruby/models/campaign/referral_status.rb +19 -0
  49. data/lib/growsurf_ruby/models/campaign/reward_approve_params.rb +38 -0
  50. data/lib/growsurf_ruby/models/campaign/reward_approve_response.rb +18 -0
  51. data/lib/growsurf_ruby/models/campaign/reward_delete_params.rb +28 -0
  52. data/lib/growsurf_ruby/models/campaign/reward_delete_response.rb +18 -0
  53. data/lib/growsurf_ruby/models/campaign/reward_fulfill_params.rb +28 -0
  54. data/lib/growsurf_ruby/models/campaign/reward_fulfill_response.rb +18 -0
  55. data/lib/growsurf_ruby/models/campaign.rb +257 -0
  56. data/lib/growsurf_ruby/models/campaign_list_commissions_params.rb +59 -0
  57. data/lib/growsurf_ruby/models/campaign_list_leaderboard_params.rb +71 -0
  58. data/lib/growsurf_ruby/models/campaign_list_params.rb +14 -0
  59. data/lib/growsurf_ruby/models/campaign_list_participants_params.rb +37 -0
  60. data/lib/growsurf_ruby/models/campaign_list_payouts_params.rb +58 -0
  61. data/lib/growsurf_ruby/models/campaign_list_referrals_params.rb +108 -0
  62. data/lib/growsurf_ruby/models/campaign_list_response.rb +16 -0
  63. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_params.rb +50 -0
  64. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_response.rb +215 -0
  65. data/lib/growsurf_ruby/models/campaign_retrieve_params.rb +20 -0
  66. data/lib/growsurf_ruby/models/commission_structure.rb +137 -0
  67. data/lib/growsurf_ruby/models/participant_commission_list.rb +170 -0
  68. data/lib/growsurf_ruby/models/participant_list.rb +29 -0
  69. data/lib/growsurf_ruby/models/participant_payout_list.rb +136 -0
  70. data/lib/growsurf_ruby/models/referral_list.rb +96 -0
  71. data/lib/growsurf_ruby/models.rb +71 -0
  72. data/lib/growsurf_ruby/request_options.rb +77 -0
  73. data/lib/growsurf_ruby/resources/campaign/commission.rb +71 -0
  74. data/lib/growsurf_ruby/resources/campaign/participant.rb +446 -0
  75. data/lib/growsurf_ruby/resources/campaign/reward.rb +102 -0
  76. data/lib/growsurf_ruby/resources/campaign.rb +266 -0
  77. data/lib/growsurf_ruby/version.rb +5 -0
  78. data/lib/growsurf_ruby.rb +106 -0
  79. data/manifest.yaml +17 -0
  80. data/rbi/growsurf_ruby/client.rbi +51 -0
  81. data/rbi/growsurf_ruby/errors.rbi +205 -0
  82. data/rbi/growsurf_ruby/file_part.rbi +37 -0
  83. data/rbi/growsurf_ruby/internal/transport/base_client.rbi +305 -0
  84. data/rbi/growsurf_ruby/internal/transport/pooled_net_requester.rbi +84 -0
  85. data/rbi/growsurf_ruby/internal/type/array_of.rbi +104 -0
  86. data/rbi/growsurf_ruby/internal/type/base_model.rbi +314 -0
  87. data/rbi/growsurf_ruby/internal/type/base_page.rbi +43 -0
  88. data/rbi/growsurf_ruby/internal/type/boolean.rbi +58 -0
  89. data/rbi/growsurf_ruby/internal/type/converter.rbi +222 -0
  90. data/rbi/growsurf_ruby/internal/type/enum.rbi +82 -0
  91. data/rbi/growsurf_ruby/internal/type/file_input.rbi +59 -0
  92. data/rbi/growsurf_ruby/internal/type/hash_of.rbi +104 -0
  93. data/rbi/growsurf_ruby/internal/type/request_parameters.rbi +31 -0
  94. data/rbi/growsurf_ruby/internal/type/union.rbi +128 -0
  95. data/rbi/growsurf_ruby/internal/type/unknown.rbi +58 -0
  96. data/rbi/growsurf_ruby/internal/util.rbi +515 -0
  97. data/rbi/growsurf_ruby/internal.rbi +18 -0
  98. data/rbi/growsurf_ruby/models/campaign/commission_approve_params.rbi +48 -0
  99. data/rbi/growsurf_ruby/models/campaign/commission_approve_response.rbi +28 -0
  100. data/rbi/growsurf_ruby/models/campaign/commission_delete_params.rbi +48 -0
  101. data/rbi/growsurf_ruby/models/campaign/commission_delete_response.rbi +28 -0
  102. data/rbi/growsurf_ruby/models/campaign/fraud_risk_level.rbi +29 -0
  103. data/rbi/growsurf_ruby/models/campaign/participant.rbi +667 -0
  104. data/rbi/growsurf_ruby/models/campaign/participant_add_params.rbi +166 -0
  105. data/rbi/growsurf_ruby/models/campaign/participant_delete_params.rbi +48 -0
  106. data/rbi/growsurf_ruby/models/campaign/participant_delete_response.rbi +28 -0
  107. data/rbi/growsurf_ruby/models/campaign/participant_list_commissions_params.rbi +148 -0
  108. data/rbi/growsurf_ruby/models/campaign/participant_list_payouts_params.rbi +143 -0
  109. data/rbi/growsurf_ruby/models/campaign/participant_list_referrals_params.rbi +228 -0
  110. data/rbi/growsurf_ruby/models/campaign/participant_list_rewards_params.rbi +74 -0
  111. data/rbi/growsurf_ruby/models/campaign/participant_list_rewards_response.rbi +48 -0
  112. data/rbi/growsurf_ruby/models/campaign/participant_record_transaction_params.rbi +255 -0
  113. data/rbi/growsurf_ruby/models/campaign/participant_record_transaction_response.rbi +138 -0
  114. data/rbi/growsurf_ruby/models/campaign/participant_retrieve_params.rbi +48 -0
  115. data/rbi/growsurf_ruby/models/campaign/participant_reward.rbi +185 -0
  116. data/rbi/growsurf_ruby/models/campaign/participant_send_invites_params.rbi +70 -0
  117. data/rbi/growsurf_ruby/models/campaign/participant_send_invites_response.rbi +44 -0
  118. data/rbi/growsurf_ruby/models/campaign/participant_trigger_referral_params.rbi +48 -0
  119. data/rbi/growsurf_ruby/models/campaign/participant_trigger_referral_response.rbi +36 -0
  120. data/rbi/growsurf_ruby/models/campaign/participant_update_params.rbi +178 -0
  121. data/rbi/growsurf_ruby/models/campaign/referral_source.rbi +31 -0
  122. data/rbi/growsurf_ruby/models/campaign/referral_status.rbi +44 -0
  123. data/rbi/growsurf_ruby/models/campaign/reward_approve_params.rbi +63 -0
  124. data/rbi/growsurf_ruby/models/campaign/reward_approve_response.rbi +28 -0
  125. data/rbi/growsurf_ruby/models/campaign/reward_delete_params.rbi +48 -0
  126. data/rbi/growsurf_ruby/models/campaign/reward_delete_response.rbi +28 -0
  127. data/rbi/growsurf_ruby/models/campaign/reward_fulfill_params.rbi +48 -0
  128. data/rbi/growsurf_ruby/models/campaign/reward_fulfill_response.rbi +28 -0
  129. data/rbi/growsurf_ruby/models/campaign.rbi +376 -0
  130. data/rbi/growsurf_ruby/models/campaign_list_commissions_params.rbi +135 -0
  131. data/rbi/growsurf_ruby/models/campaign_list_leaderboard_params.rbi +171 -0
  132. data/rbi/growsurf_ruby/models/campaign_list_params.rbi +32 -0
  133. data/rbi/growsurf_ruby/models/campaign_list_participants_params.rbi +66 -0
  134. data/rbi/growsurf_ruby/models/campaign_list_payouts_params.rbi +127 -0
  135. data/rbi/growsurf_ruby/models/campaign_list_referrals_params.rbi +213 -0
  136. data/rbi/growsurf_ruby/models/campaign_list_response.rbi +32 -0
  137. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_params.rbi +81 -0
  138. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_response.rbi +320 -0
  139. data/rbi/growsurf_ruby/models/campaign_retrieve_params.rbi +38 -0
  140. data/rbi/growsurf_ruby/models/commission_structure.rbi +174 -0
  141. data/rbi/growsurf_ruby/models/participant_commission_list.rbi +269 -0
  142. data/rbi/growsurf_ruby/models/participant_list.rbi +44 -0
  143. data/rbi/growsurf_ruby/models/participant_payout_list.rbi +219 -0
  144. data/rbi/growsurf_ruby/models/referral_list.rbi +129 -0
  145. data/rbi/growsurf_ruby/models.rbi +38 -0
  146. data/rbi/growsurf_ruby/request_options.rbi +59 -0
  147. data/rbi/growsurf_ruby/resources/campaign/commission.rbi +49 -0
  148. data/rbi/growsurf_ruby/resources/campaign/participant.rbi +385 -0
  149. data/rbi/growsurf_ruby/resources/campaign/reward.rbi +70 -0
  150. data/rbi/growsurf_ruby/resources/campaign.rbi +205 -0
  151. data/rbi/growsurf_ruby/version.rbi +5 -0
  152. data/sig/growsurf_ruby/client.rbs +26 -0
  153. data/sig/growsurf_ruby/errors.rbs +117 -0
  154. data/sig/growsurf_ruby/file_part.rbs +21 -0
  155. data/sig/growsurf_ruby/internal/transport/base_client.rbs +133 -0
  156. data/sig/growsurf_ruby/internal/transport/pooled_net_requester.rbs +48 -0
  157. data/sig/growsurf_ruby/internal/type/array_of.rbs +48 -0
  158. data/sig/growsurf_ruby/internal/type/base_model.rbs +104 -0
  159. data/sig/growsurf_ruby/internal/type/base_page.rbs +24 -0
  160. data/sig/growsurf_ruby/internal/type/boolean.rbs +26 -0
  161. data/sig/growsurf_ruby/internal/type/converter.rbs +79 -0
  162. data/sig/growsurf_ruby/internal/type/enum.rbs +32 -0
  163. data/sig/growsurf_ruby/internal/type/file_input.rbs +25 -0
  164. data/sig/growsurf_ruby/internal/type/hash_of.rbs +48 -0
  165. data/sig/growsurf_ruby/internal/type/request_parameters.rbs +19 -0
  166. data/sig/growsurf_ruby/internal/type/union.rbs +52 -0
  167. data/sig/growsurf_ruby/internal/type/unknown.rbs +26 -0
  168. data/sig/growsurf_ruby/internal/util.rbs +199 -0
  169. data/sig/growsurf_ruby/internal.rbs +9 -0
  170. data/sig/growsurf_ruby/models/campaign/commission_approve_params.rbs +30 -0
  171. data/sig/growsurf_ruby/models/campaign/commission_approve_response.rbs +15 -0
  172. data/sig/growsurf_ruby/models/campaign/commission_delete_params.rbs +30 -0
  173. data/sig/growsurf_ruby/models/campaign/commission_delete_response.rbs +15 -0
  174. data/sig/growsurf_ruby/models/campaign/fraud_risk_level.rbs +17 -0
  175. data/sig/growsurf_ruby/models/campaign/participant.rbs +455 -0
  176. data/sig/growsurf_ruby/models/campaign/participant_add_params.rbs +95 -0
  177. data/sig/growsurf_ruby/models/campaign/participant_delete_params.rbs +30 -0
  178. data/sig/growsurf_ruby/models/campaign/participant_delete_response.rbs +15 -0
  179. data/sig/growsurf_ruby/models/campaign/participant_list_commissions_params.rbs +70 -0
  180. data/sig/growsurf_ruby/models/campaign/participant_list_payouts_params.rbs +69 -0
  181. data/sig/growsurf_ruby/models/campaign/participant_list_referrals_params.rbs +123 -0
  182. data/sig/growsurf_ruby/models/campaign/participant_list_rewards_params.rbs +47 -0
  183. data/sig/growsurf_ruby/models/campaign/participant_list_rewards_response.rbs +32 -0
  184. data/sig/growsurf_ruby/models/campaign/participant_record_transaction_params.rbs +194 -0
  185. data/sig/growsurf_ruby/models/campaign/participant_record_transaction_response.rbs +84 -0
  186. data/sig/growsurf_ruby/models/campaign/participant_retrieve_params.rbs +30 -0
  187. data/sig/growsurf_ruby/models/campaign/participant_reward.rbs +111 -0
  188. data/sig/growsurf_ruby/models/campaign/participant_send_invites_params.rbs +48 -0
  189. data/sig/growsurf_ruby/models/campaign/participant_send_invites_response.rbs +28 -0
  190. data/sig/growsurf_ruby/models/campaign/participant_trigger_referral_params.rbs +30 -0
  191. data/sig/growsurf_ruby/models/campaign/participant_trigger_referral_response.rbs +20 -0
  192. data/sig/growsurf_ruby/models/campaign/participant_update_params.rbs +104 -0
  193. data/sig/growsurf_ruby/models/campaign/referral_source.rbs +16 -0
  194. data/sig/growsurf_ruby/models/campaign/referral_status.rbs +19 -0
  195. data/sig/growsurf_ruby/models/campaign/reward_approve_params.rbs +36 -0
  196. data/sig/growsurf_ruby/models/campaign/reward_approve_response.rbs +15 -0
  197. data/sig/growsurf_ruby/models/campaign/reward_delete_params.rbs +30 -0
  198. data/sig/growsurf_ruby/models/campaign/reward_delete_response.rbs +15 -0
  199. data/sig/growsurf_ruby/models/campaign/reward_fulfill_params.rbs +30 -0
  200. data/sig/growsurf_ruby/models/campaign/reward_fulfill_response.rbs +15 -0
  201. data/sig/growsurf_ruby/models/campaign.rbs +221 -0
  202. data/sig/growsurf_ruby/models/campaign_list_commissions_params.rbs +63 -0
  203. data/sig/growsurf_ruby/models/campaign_list_leaderboard_params.rbs +83 -0
  204. data/sig/growsurf_ruby/models/campaign_list_params.rbs +15 -0
  205. data/sig/growsurf_ruby/models/campaign_list_participants_params.rbs +36 -0
  206. data/sig/growsurf_ruby/models/campaign_list_payouts_params.rbs +62 -0
  207. data/sig/growsurf_ruby/models/campaign_list_referrals_params.rbs +116 -0
  208. data/sig/growsurf_ruby/models/campaign_list_response.rbs +14 -0
  209. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_params.rbs +42 -0
  210. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_response.rbs +217 -0
  211. data/sig/growsurf_ruby/models/campaign_retrieve_params.rbs +23 -0
  212. data/sig/growsurf_ruby/models/commission_structure.rbs +121 -0
  213. data/sig/growsurf_ruby/models/participant_commission_list.rbs +166 -0
  214. data/sig/growsurf_ruby/models/participant_list.rbs +30 -0
  215. data/sig/growsurf_ruby/models/participant_payout_list.rbs +136 -0
  216. data/sig/growsurf_ruby/models/referral_list.rbs +92 -0
  217. data/sig/growsurf_ruby/models.rbs +31 -0
  218. data/sig/growsurf_ruby/request_options.rbs +36 -0
  219. data/sig/growsurf_ruby/resources/campaign/commission.rbs +21 -0
  220. data/sig/growsurf_ruby/resources/campaign/participant.rbs +133 -0
  221. data/sig/growsurf_ruby/resources/campaign/reward.rbs +28 -0
  222. data/sig/growsurf_ruby/resources/campaign.rbs +76 -0
  223. data/sig/growsurf_ruby/version.rbs +3 -0
  224. metadata +295 -0
@@ -0,0 +1,59 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ # Specify HTTP behaviour to use for a specific request. These options supplement
5
+ # or override those provided at the client level.
6
+ #
7
+ # When making a request, you can pass an actual {RequestOptions} instance, or
8
+ # simply pass a Hash with symbol keys matching the attributes on this class.
9
+ class RequestOptions < GrowsurfRuby::Internal::Type::BaseModel
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(GrowsurfRuby::RequestOptions, GrowsurfRuby::Internal::AnyHash)
13
+ end
14
+
15
+ # @api private
16
+ sig { params(opts: GrowsurfRuby::RequestOptions::OrHash).void }
17
+ def self.validate!(opts)
18
+ end
19
+
20
+ # Idempotency key to send with request and all associated retries. Will only be
21
+ # sent for write requests.
22
+ sig { returns(T.nilable(String)) }
23
+ attr_accessor :idempotency_key
24
+
25
+ # Extra query params to send with the request. These are `.merge`’d into any
26
+ # `query` given at the client level.
27
+ sig do
28
+ returns(
29
+ T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))])
30
+ )
31
+ end
32
+ attr_accessor :extra_query
33
+
34
+ # Extra headers to send with the request. These are `.merged`’d into any
35
+ # `extra_headers` given at the client level.
36
+ sig { returns(T.nilable(T::Hash[String, T.nilable(String)])) }
37
+ attr_accessor :extra_headers
38
+
39
+ # Extra data to send with the request. These are deep merged into any data
40
+ # generated as part of the normal request.
41
+ sig { returns(T.nilable(T.anything)) }
42
+ attr_accessor :extra_body
43
+
44
+ # Maximum number of retries to attempt after a failed initial request.
45
+ sig { returns(T.nilable(Integer)) }
46
+ attr_accessor :max_retries
47
+
48
+ # Request timeout in seconds.
49
+ sig { returns(T.nilable(Float)) }
50
+ attr_accessor :timeout
51
+
52
+ # Returns a new instance of RequestOptions.
53
+ sig do
54
+ params(values: GrowsurfRuby::Internal::AnyHash).returns(T.attached_class)
55
+ end
56
+ def self.new(values = {})
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,49 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Resources
5
+ class Campaign
6
+ # Affiliate transaction, commission, and payout operations.
7
+ class Commission
8
+ # Removes a pending participant commission.
9
+ sig do
10
+ params(
11
+ commission_id: String,
12
+ id: String,
13
+ request_options: GrowsurfRuby::RequestOptions::OrHash
14
+ ).returns(GrowsurfRuby::Models::Campaign::CommissionDeleteResponse)
15
+ end
16
+ def delete(
17
+ # Participant commission ID.
18
+ commission_id,
19
+ # GrowSurf program ID.
20
+ id:,
21
+ request_options: {}
22
+ )
23
+ end
24
+
25
+ # Approves a pending participant commission so it can become eligible for payout.
26
+ sig do
27
+ params(
28
+ commission_id: String,
29
+ id: String,
30
+ request_options: GrowsurfRuby::RequestOptions::OrHash
31
+ ).returns(GrowsurfRuby::Models::Campaign::CommissionApproveResponse)
32
+ end
33
+ def approve(
34
+ # Participant commission ID.
35
+ commission_id,
36
+ # GrowSurf program ID.
37
+ id:,
38
+ request_options: {}
39
+ )
40
+ end
41
+
42
+ # @api private
43
+ sig { params(client: GrowsurfRuby::Client).returns(T.attached_class) }
44
+ def self.new(client:)
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,385 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Resources
5
+ class Campaign
6
+ class Participant
7
+ # Retrieves a single participant by GrowSurf participant ID or email address.
8
+ sig do
9
+ params(
10
+ participant_id_or_email: String,
11
+ id: String,
12
+ request_options: GrowsurfRuby::RequestOptions::OrHash
13
+ ).returns(GrowsurfRuby::Campaign::CampaignParticipant)
14
+ end
15
+ def retrieve(
16
+ # GrowSurf participant ID or URL-encoded participant email address.
17
+ participant_id_or_email,
18
+ # GrowSurf program ID.
19
+ id:,
20
+ request_options: {}
21
+ )
22
+ end
23
+
24
+ # Updates a participant by GrowSurf participant ID or email address.
25
+ sig do
26
+ params(
27
+ participant_id_or_email: String,
28
+ id: String,
29
+ email: String,
30
+ first_name: String,
31
+ last_name: String,
32
+ metadata: T::Hash[Symbol, T.anything],
33
+ referral_status:
34
+ GrowsurfRuby::Campaign::ParticipantUpdateParams::ReferralStatus::OrSymbol,
35
+ referred_by: String,
36
+ unsubscribed: T::Boolean,
37
+ vanity_keys: T::Array[String],
38
+ request_options: GrowsurfRuby::RequestOptions::OrHash
39
+ ).returns(GrowsurfRuby::Campaign::CampaignParticipant)
40
+ end
41
+ def update(
42
+ # Path param: GrowSurf participant ID or URL-encoded participant email address.
43
+ participant_id_or_email,
44
+ # Path param: GrowSurf program ID.
45
+ id:,
46
+ # Body param
47
+ email: nil,
48
+ # Body param
49
+ first_name: nil,
50
+ # Body param
51
+ last_name: nil,
52
+ # Body param: Shallow custom metadata object.
53
+ metadata: nil,
54
+ # Body param
55
+ referral_status: nil,
56
+ # Body param
57
+ referred_by: nil,
58
+ # Body param
59
+ unsubscribed: nil,
60
+ # Body param
61
+ vanity_keys: nil,
62
+ request_options: {}
63
+ )
64
+ end
65
+
66
+ # Removes a participant by GrowSurf participant ID or email address.
67
+ sig do
68
+ params(
69
+ participant_id_or_email: String,
70
+ id: String,
71
+ request_options: GrowsurfRuby::RequestOptions::OrHash
72
+ ).returns(GrowsurfRuby::Models::Campaign::ParticipantDeleteResponse)
73
+ end
74
+ def delete(
75
+ # GrowSurf participant ID or URL-encoded participant email address.
76
+ participant_id_or_email,
77
+ # GrowSurf program ID.
78
+ id:,
79
+ request_options: {}
80
+ )
81
+ end
82
+
83
+ # Adds a new participant to the program. If the email already exists, the existing
84
+ # participant is returned.
85
+ sig do
86
+ params(
87
+ id: String,
88
+ email: String,
89
+ fingerprint: String,
90
+ first_name: String,
91
+ ip_address: String,
92
+ last_name: String,
93
+ metadata: T::Hash[Symbol, T.anything],
94
+ referral_status:
95
+ GrowsurfRuby::Campaign::ParticipantAddParams::ReferralStatus::OrSymbol,
96
+ referred_by: String,
97
+ request_options: GrowsurfRuby::RequestOptions::OrHash
98
+ ).returns(GrowsurfRuby::Campaign::CampaignParticipant)
99
+ end
100
+ def add(
101
+ # GrowSurf program ID.
102
+ id,
103
+ email:,
104
+ fingerprint: nil,
105
+ first_name: nil,
106
+ ip_address: nil,
107
+ last_name: nil,
108
+ # Shallow custom metadata object.
109
+ metadata: nil,
110
+ referral_status: nil,
111
+ # Referrer participant ID or email address.
112
+ referred_by: nil,
113
+ request_options: {}
114
+ )
115
+ end
116
+
117
+ # Retrieves a paged list of commissions earned by a participant.
118
+ sig do
119
+ params(
120
+ participant_id_or_email: String,
121
+ id: String,
122
+ limit: Integer,
123
+ next_id: String,
124
+ status:
125
+ GrowsurfRuby::Campaign::ParticipantListCommissionsParams::Status::OrSymbol,
126
+ request_options: GrowsurfRuby::RequestOptions::OrHash
127
+ ).returns(GrowsurfRuby::ParticipantCommissionList)
128
+ end
129
+ def list_commissions(
130
+ # Path param: GrowSurf participant ID or URL-encoded participant email address.
131
+ participant_id_or_email,
132
+ # Path param: GrowSurf program ID.
133
+ id:,
134
+ # Query param: Number of results to return. Maximum 100.
135
+ limit: nil,
136
+ # Query param: ID to start the next paged result set with.
137
+ next_id: nil,
138
+ # Query param: Participant commission status.
139
+ status: nil,
140
+ request_options: {}
141
+ )
142
+ end
143
+
144
+ # Retrieves a paged list of payouts that belong to a participant.
145
+ sig do
146
+ params(
147
+ participant_id_or_email: String,
148
+ id: String,
149
+ limit: Integer,
150
+ next_id: String,
151
+ status:
152
+ GrowsurfRuby::Campaign::ParticipantListPayoutsParams::Status::OrSymbol,
153
+ request_options: GrowsurfRuby::RequestOptions::OrHash
154
+ ).returns(GrowsurfRuby::ParticipantPayoutList)
155
+ end
156
+ def list_payouts(
157
+ # Path param: GrowSurf participant ID or URL-encoded participant email address.
158
+ participant_id_or_email,
159
+ # Path param: GrowSurf program ID.
160
+ id:,
161
+ # Query param: Number of results to return. Maximum 100.
162
+ limit: nil,
163
+ # Query param: ID to start the next paged result set with.
164
+ next_id: nil,
165
+ # Query param: Participant payout status.
166
+ status: nil,
167
+ request_options: {}
168
+ )
169
+ end
170
+
171
+ # Retrieves referrals and email invites made by a participant.
172
+ sig do
173
+ params(
174
+ participant_id_or_email: String,
175
+ id: String,
176
+ desc: T::Boolean,
177
+ email: String,
178
+ first_name: String,
179
+ last_name: String,
180
+ limit: Integer,
181
+ next_id: String,
182
+ offset: Integer,
183
+ referral_status: GrowsurfRuby::Campaign::ReferralStatus::OrSymbol,
184
+ sort_by:
185
+ GrowsurfRuby::Campaign::ParticipantListReferralsParams::SortBy::OrSymbol,
186
+ request_options: GrowsurfRuby::RequestOptions::OrHash
187
+ ).returns(GrowsurfRuby::ReferralList)
188
+ end
189
+ def list_referrals(
190
+ # Path param: GrowSurf participant ID or URL-encoded participant email address.
191
+ participant_id_or_email,
192
+ # Path param: GrowSurf program ID.
193
+ id:,
194
+ # Query param: Return results in descending order when true.
195
+ desc: nil,
196
+ # Query param: URL-encoded email value to filter referral results.
197
+ email: nil,
198
+ # Query param: First name value to filter results.
199
+ first_name: nil,
200
+ # Query param: Last name value to filter results.
201
+ last_name: nil,
202
+ # Query param: Number of results to return. Maximum 100.
203
+ limit: nil,
204
+ # Query param: ID to start the next paged result set with.
205
+ next_id: nil,
206
+ # Query param: Offset number used to skip through a result set.
207
+ offset: nil,
208
+ # Query param
209
+ referral_status: nil,
210
+ # Query param: Field used to sort referral results.
211
+ sort_by: nil,
212
+ request_options: {}
213
+ )
214
+ end
215
+
216
+ # Retrieves a paged list of rewards earned by a participant.
217
+ sig do
218
+ params(
219
+ participant_id_or_email: String,
220
+ id: String,
221
+ limit: Integer,
222
+ next_id: String,
223
+ request_options: GrowsurfRuby::RequestOptions::OrHash
224
+ ).returns(
225
+ GrowsurfRuby::Models::Campaign::ParticipantListRewardsResponse
226
+ )
227
+ end
228
+ def list_rewards(
229
+ # Path param: GrowSurf participant ID or URL-encoded participant email address.
230
+ participant_id_or_email,
231
+ # Path param: GrowSurf program ID.
232
+ id:,
233
+ # Query param: Number of results to return. Maximum 100.
234
+ limit: nil,
235
+ # Query param: ID to start the next paged result set with.
236
+ next_id: nil,
237
+ request_options: {}
238
+ )
239
+ end
240
+
241
+ # Records a sale made by a referred customer and generates affiliate commissions
242
+ # for their referrer when applicable.
243
+ sig do
244
+ params(
245
+ participant_id_or_email: String,
246
+ id: String,
247
+ currency: String,
248
+ gross_amount: Integer,
249
+ amount_cash_net: Integer,
250
+ amount_paid: Integer,
251
+ charge_id: String,
252
+ customer_id: String,
253
+ description: String,
254
+ external_id: String,
255
+ invoice_id: String,
256
+ invoice_subtotal_excluding_tax: Integer,
257
+ invoice_total: Integer,
258
+ invoice_total_excluding_tax: Integer,
259
+ net_amount: Integer,
260
+ order_id: String,
261
+ paid_at: Integer,
262
+ payment_id: String,
263
+ payment_intent_id: String,
264
+ subscription_id: String,
265
+ tax_amount: Integer,
266
+ total_tax_amount: Integer,
267
+ total_tax_amounts: T::Array[T::Hash[Symbol, T.anything]],
268
+ total_taxes: T::Array[T::Hash[Symbol, T.anything]],
269
+ transaction_id: String,
270
+ request_options: GrowsurfRuby::RequestOptions::OrHash
271
+ ).returns(
272
+ GrowsurfRuby::Models::Campaign::ParticipantRecordTransactionResponse::Variants
273
+ )
274
+ end
275
+ def record_transaction(
276
+ # Path param: GrowSurf participant ID or URL-encoded participant email address.
277
+ participant_id_or_email,
278
+ # Path param: GrowSurf program ID.
279
+ id:,
280
+ # Body param
281
+ currency:,
282
+ # Body param
283
+ gross_amount:,
284
+ # Body param
285
+ amount_cash_net: nil,
286
+ # Body param
287
+ amount_paid: nil,
288
+ # Body param
289
+ charge_id: nil,
290
+ # Body param
291
+ customer_id: nil,
292
+ # Body param
293
+ description: nil,
294
+ # Body param
295
+ external_id: nil,
296
+ # Body param
297
+ invoice_id: nil,
298
+ # Body param
299
+ invoice_subtotal_excluding_tax: nil,
300
+ # Body param
301
+ invoice_total: nil,
302
+ # Body param
303
+ invoice_total_excluding_tax: nil,
304
+ # Body param
305
+ net_amount: nil,
306
+ # Body param
307
+ order_id: nil,
308
+ # Body param
309
+ paid_at: nil,
310
+ # Body param
311
+ payment_id: nil,
312
+ # Body param
313
+ payment_intent_id: nil,
314
+ # Body param
315
+ subscription_id: nil,
316
+ # Body param
317
+ tax_amount: nil,
318
+ # Body param
319
+ total_tax_amount: nil,
320
+ # Body param
321
+ total_tax_amounts: nil,
322
+ # Body param
323
+ total_taxes: nil,
324
+ # Body param
325
+ transaction_id: nil,
326
+ request_options: {}
327
+ )
328
+ end
329
+
330
+ # Sends email invites on behalf of a participant to a list of email addresses.
331
+ sig do
332
+ params(
333
+ participant_id_or_email: String,
334
+ id: String,
335
+ email_addresses: T::Array[String],
336
+ message_text: String,
337
+ subject_text: String,
338
+ request_options: GrowsurfRuby::RequestOptions::OrHash
339
+ ).returns(
340
+ GrowsurfRuby::Models::Campaign::ParticipantSendInvitesResponse
341
+ )
342
+ end
343
+ def send_invites(
344
+ # Path param: GrowSurf participant ID or URL-encoded participant email address.
345
+ participant_id_or_email,
346
+ # Path param: GrowSurf program ID.
347
+ id:,
348
+ # Body param
349
+ email_addresses:,
350
+ # Body param
351
+ message_text:,
352
+ # Body param
353
+ subject_text:,
354
+ request_options: {}
355
+ )
356
+ end
357
+
358
+ # Triggers referral credit for an existing referred participant by GrowSurf
359
+ # participant ID or email address.
360
+ sig do
361
+ params(
362
+ participant_id_or_email: String,
363
+ id: String,
364
+ request_options: GrowsurfRuby::RequestOptions::OrHash
365
+ ).returns(
366
+ GrowsurfRuby::Models::Campaign::ParticipantTriggerReferralResponse
367
+ )
368
+ end
369
+ def trigger_referral(
370
+ # GrowSurf participant ID or URL-encoded participant email address.
371
+ participant_id_or_email,
372
+ # GrowSurf program ID.
373
+ id:,
374
+ request_options: {}
375
+ )
376
+ end
377
+
378
+ # @api private
379
+ sig { params(client: GrowsurfRuby::Client).returns(T.attached_class) }
380
+ def self.new(client:)
381
+ end
382
+ end
383
+ end
384
+ end
385
+ end
@@ -0,0 +1,70 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Resources
5
+ class Campaign
6
+ # Participant reward retrieval and manual reward operations.
7
+ class Reward
8
+ # Removes a manually approved participant reward that has not already been
9
+ # approved.
10
+ sig do
11
+ params(
12
+ reward_id: String,
13
+ id: String,
14
+ request_options: GrowsurfRuby::RequestOptions::OrHash
15
+ ).returns(GrowsurfRuby::Models::Campaign::RewardDeleteResponse)
16
+ end
17
+ def delete(
18
+ # Participant reward ID.
19
+ reward_id,
20
+ # GrowSurf program ID.
21
+ id:,
22
+ request_options: {}
23
+ )
24
+ end
25
+
26
+ # Approves a manually approved reward earned by a participant.
27
+ sig do
28
+ params(
29
+ reward_id: String,
30
+ id: String,
31
+ fulfill: T::Boolean,
32
+ request_options: GrowsurfRuby::RequestOptions::OrHash
33
+ ).returns(GrowsurfRuby::Models::Campaign::RewardApproveResponse)
34
+ end
35
+ def approve(
36
+ # Path param: Participant reward ID.
37
+ reward_id,
38
+ # Path param: GrowSurf program ID.
39
+ id:,
40
+ # Body param: Set true to mark the reward as fulfilled after approval.
41
+ fulfill: nil,
42
+ request_options: {}
43
+ )
44
+ end
45
+
46
+ # Marks an approved participant reward as fulfilled.
47
+ sig do
48
+ params(
49
+ reward_id: String,
50
+ id: String,
51
+ request_options: GrowsurfRuby::RequestOptions::OrHash
52
+ ).returns(GrowsurfRuby::Models::Campaign::RewardFulfillResponse)
53
+ end
54
+ def fulfill(
55
+ # Participant reward ID.
56
+ reward_id,
57
+ # GrowSurf program ID.
58
+ id:,
59
+ request_options: {}
60
+ )
61
+ end
62
+
63
+ # @api private
64
+ sig { params(client: GrowsurfRuby::Client).returns(T.attached_class) }
65
+ def self.new(client:)
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end