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,205 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Resources
5
+ class Campaign
6
+ sig { returns(GrowsurfRuby::Resources::Campaign::Participant) }
7
+ attr_reader :participant
8
+
9
+ # Participant reward retrieval and manual reward operations.
10
+ sig { returns(GrowsurfRuby::Resources::Campaign::Reward) }
11
+ attr_reader :reward
12
+
13
+ # Affiliate transaction, commission, and payout operations.
14
+ sig { returns(GrowsurfRuby::Resources::Campaign::Commission) }
15
+ attr_reader :commission
16
+
17
+ # Retrieves a program for the given program ID.
18
+ sig do
19
+ params(
20
+ id: String,
21
+ request_options: GrowsurfRuby::RequestOptions::OrHash
22
+ ).returns(GrowsurfRuby::CampaignAPI)
23
+ end
24
+ def retrieve(
25
+ # GrowSurf program ID.
26
+ id,
27
+ request_options: {}
28
+ )
29
+ end
30
+
31
+ # Retrieves a list of your programs. Deleted programs are not returned.
32
+ sig do
33
+ params(request_options: GrowsurfRuby::RequestOptions::OrHash).returns(
34
+ GrowsurfRuby::Models::CampaignListResponse
35
+ )
36
+ end
37
+ def list(request_options: {})
38
+ end
39
+
40
+ # Retrieves a paged list of all participant commissions in an affiliate program.
41
+ sig do
42
+ params(
43
+ id: String,
44
+ limit: Integer,
45
+ next_id: String,
46
+ status: GrowsurfRuby::CampaignListCommissionsParams::Status::OrSymbol,
47
+ request_options: GrowsurfRuby::RequestOptions::OrHash
48
+ ).returns(GrowsurfRuby::ParticipantCommissionList)
49
+ end
50
+ def list_commissions(
51
+ # GrowSurf program ID.
52
+ id,
53
+ # Number of results to return. Maximum 100.
54
+ limit: nil,
55
+ # ID to start the next paged result set with.
56
+ next_id: nil,
57
+ # Participant commission status.
58
+ status: nil,
59
+ request_options: {}
60
+ )
61
+ end
62
+
63
+ # Retrieves participants in leaderboard order for the specified leaderboard type.
64
+ sig do
65
+ params(
66
+ id: String,
67
+ is_monthly: T::Boolean,
68
+ leaderboard_type:
69
+ GrowsurfRuby::CampaignListLeaderboardParams::LeaderboardType::OrSymbol,
70
+ limit: Integer,
71
+ next_id: String,
72
+ request_options: GrowsurfRuby::RequestOptions::OrHash
73
+ ).returns(GrowsurfRuby::ParticipantList)
74
+ end
75
+ def list_leaderboard(
76
+ # GrowSurf program ID.
77
+ id,
78
+ # Deprecated. Use `leaderboardType=CURRENT_MONTH` instead.
79
+ is_monthly: nil,
80
+ # Leaderboard ordering mode.
81
+ leaderboard_type: nil,
82
+ # Number of results to return. Maximum 100.
83
+ limit: nil,
84
+ # ID to start the next paged result set with.
85
+ next_id: nil,
86
+ request_options: {}
87
+ )
88
+ end
89
+
90
+ # Retrieves a paged list of participants in a program.
91
+ sig do
92
+ params(
93
+ id: String,
94
+ limit: Integer,
95
+ next_id: String,
96
+ request_options: GrowsurfRuby::RequestOptions::OrHash
97
+ ).returns(GrowsurfRuby::ParticipantList)
98
+ end
99
+ def list_participants(
100
+ # GrowSurf program ID.
101
+ id,
102
+ # Number of results to return. Maximum 100.
103
+ limit: nil,
104
+ # ID to start the next paged result set with.
105
+ next_id: nil,
106
+ request_options: {}
107
+ )
108
+ end
109
+
110
+ # Retrieves a paged list of all participant payouts in an affiliate program.
111
+ sig do
112
+ params(
113
+ id: String,
114
+ limit: Integer,
115
+ next_id: String,
116
+ status: GrowsurfRuby::CampaignListPayoutsParams::Status::OrSymbol,
117
+ request_options: GrowsurfRuby::RequestOptions::OrHash
118
+ ).returns(GrowsurfRuby::ParticipantPayoutList)
119
+ end
120
+ def list_payouts(
121
+ # GrowSurf program ID.
122
+ id,
123
+ # Number of results to return. Maximum 100.
124
+ limit: nil,
125
+ # ID to start the next paged result set with.
126
+ next_id: nil,
127
+ # Participant payout status.
128
+ status: nil,
129
+ request_options: {}
130
+ )
131
+ end
132
+
133
+ # Retrieves a list of all referrals and email invites made by participants in a
134
+ # program.
135
+ sig do
136
+ params(
137
+ id: String,
138
+ desc: T::Boolean,
139
+ email: String,
140
+ first_name: String,
141
+ last_name: String,
142
+ limit: Integer,
143
+ next_id: String,
144
+ offset: Integer,
145
+ referral_status: GrowsurfRuby::Campaign::ReferralStatus::OrSymbol,
146
+ sort_by: GrowsurfRuby::CampaignListReferralsParams::SortBy::OrSymbol,
147
+ request_options: GrowsurfRuby::RequestOptions::OrHash
148
+ ).returns(GrowsurfRuby::ReferralList)
149
+ end
150
+ def list_referrals(
151
+ # GrowSurf program ID.
152
+ id,
153
+ # Return results in descending order when true.
154
+ desc: nil,
155
+ # URL-encoded email value to filter referral results.
156
+ email: nil,
157
+ # First name value to filter results.
158
+ first_name: nil,
159
+ # Last name value to filter results.
160
+ last_name: nil,
161
+ # Number of results to return. Maximum 100.
162
+ limit: nil,
163
+ # ID to start the next paged result set with.
164
+ next_id: nil,
165
+ # Offset number used to skip through a result set.
166
+ offset: nil,
167
+ referral_status: nil,
168
+ # Field used to sort referral results.
169
+ sort_by: nil,
170
+ request_options: {}
171
+ )
172
+ end
173
+
174
+ # Retrieves analytics for a program.
175
+ sig do
176
+ params(
177
+ id: String,
178
+ days: Integer,
179
+ end_date: Integer,
180
+ start_date: Integer,
181
+ request_options: GrowsurfRuby::RequestOptions::OrHash
182
+ ).returns(GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse)
183
+ end
184
+ def retrieve_analytics(
185
+ # GrowSurf program ID.
186
+ id,
187
+ # Last number of days to retrieve analytics for. Defaults to 365. Maximum 1825.
188
+ days: nil,
189
+ # End date of the analytics timeframe as a Unix timestamp in milliseconds.
190
+ # Required if `days` is not set.
191
+ end_date: nil,
192
+ # Start date of the analytics timeframe as a Unix timestamp in milliseconds.
193
+ # Required if `days` is not set.
194
+ start_date: nil,
195
+ request_options: {}
196
+ )
197
+ end
198
+
199
+ # @api private
200
+ sig { params(client: GrowsurfRuby::Client).returns(T.attached_class) }
201
+ def self.new(client:)
202
+ end
203
+ end
204
+ end
205
+ end
@@ -0,0 +1,5 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ VERSION = T.let(T.unsafe(nil), String)
5
+ end
@@ -0,0 +1,26 @@
1
+ module GrowsurfRuby
2
+ class Client < GrowsurfRuby::Internal::Transport::BaseClient
3
+ DEFAULT_MAX_RETRIES: 2
4
+
5
+ DEFAULT_TIMEOUT_IN_SECONDS: Float
6
+
7
+ DEFAULT_INITIAL_RETRY_DELAY: Float
8
+
9
+ DEFAULT_MAX_RETRY_DELAY: Float
10
+
11
+ attr_reader api_key: String
12
+
13
+ attr_reader campaign: GrowsurfRuby::Resources::Campaign
14
+
15
+ private def auth_headers: -> ::Hash[String, String]
16
+
17
+ def initialize: (
18
+ ?api_key: String?,
19
+ ?base_url: String?,
20
+ ?max_retries: Integer,
21
+ ?timeout: Float,
22
+ ?initial_retry_delay: Float,
23
+ ?max_retry_delay: Float
24
+ ) -> void
25
+ end
26
+ end
@@ -0,0 +1,117 @@
1
+ module GrowsurfRuby
2
+ module Errors
3
+ class Error < StandardError
4
+ attr_accessor cause: StandardError?
5
+ end
6
+
7
+ class ConversionError < GrowsurfRuby::Errors::Error
8
+ def cause: -> StandardError?
9
+
10
+ def initialize: (
11
+ on: Class,
12
+ method: Symbol,
13
+ target: top,
14
+ value: top,
15
+ ?cause: StandardError?
16
+ ) -> void
17
+ end
18
+
19
+ class APIError < GrowsurfRuby::Errors::Error
20
+ attr_accessor url: URI::Generic
21
+
22
+ attr_accessor status: Integer?
23
+
24
+ attr_accessor headers: ::Hash[String, String]?
25
+
26
+ attr_accessor body: top?
27
+
28
+ def initialize: (
29
+ url: URI::Generic,
30
+ ?status: Integer?,
31
+ ?headers: ::Hash[String, String]?,
32
+ ?body: Object?,
33
+ ?request: nil,
34
+ ?response: nil,
35
+ ?message: String?
36
+ ) -> void
37
+ end
38
+
39
+ class APIConnectionError < GrowsurfRuby::Errors::APIError
40
+ def initialize: (
41
+ url: URI::Generic,
42
+ ?status: nil,
43
+ ?headers: ::Hash[String, String]?,
44
+ ?body: nil,
45
+ ?request: nil,
46
+ ?response: nil,
47
+ ?message: String?
48
+ ) -> void
49
+ end
50
+
51
+ class APITimeoutError < GrowsurfRuby::Errors::APIConnectionError
52
+ def initialize: (
53
+ url: URI::Generic,
54
+ ?status: nil,
55
+ ?headers: ::Hash[String, String]?,
56
+ ?body: nil,
57
+ ?request: nil,
58
+ ?response: nil,
59
+ ?message: String?
60
+ ) -> void
61
+ end
62
+
63
+ class APIStatusError < GrowsurfRuby::Errors::APIError
64
+ def self.for: (
65
+ url: URI::Generic,
66
+ status: Integer,
67
+ headers: ::Hash[String, String]?,
68
+ body: Object?,
69
+ request: nil,
70
+ response: nil,
71
+ ?message: String?
72
+ ) -> instance
73
+
74
+ def initialize: (
75
+ url: URI::Generic,
76
+ status: Integer,
77
+ headers: ::Hash[String, String]?,
78
+ body: Object?,
79
+ request: nil,
80
+ response: nil,
81
+ ?message: String?
82
+ ) -> void
83
+ end
84
+
85
+ class BadRequestError < GrowsurfRuby::Errors::APIStatusError
86
+ HTTP_STATUS: 400
87
+ end
88
+
89
+ class AuthenticationError < GrowsurfRuby::Errors::APIStatusError
90
+ HTTP_STATUS: 401
91
+ end
92
+
93
+ class PermissionDeniedError < GrowsurfRuby::Errors::APIStatusError
94
+ HTTP_STATUS: 403
95
+ end
96
+
97
+ class NotFoundError < GrowsurfRuby::Errors::APIStatusError
98
+ HTTP_STATUS: 404
99
+ end
100
+
101
+ class ConflictError < GrowsurfRuby::Errors::APIStatusError
102
+ HTTP_STATUS: 409
103
+ end
104
+
105
+ class UnprocessableEntityError < GrowsurfRuby::Errors::APIStatusError
106
+ HTTP_STATUS: 422
107
+ end
108
+
109
+ class RateLimitError < GrowsurfRuby::Errors::APIStatusError
110
+ HTTP_STATUS: 429
111
+ end
112
+
113
+ class InternalServerError < GrowsurfRuby::Errors::APIStatusError
114
+ HTTP_STATUS: Range[Integer]
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,21 @@
1
+ module GrowsurfRuby
2
+ class FilePart
3
+ attr_reader content: Pathname | StringIO | IO | String
4
+
5
+ attr_reader content_type: String?
6
+
7
+ attr_reader filename: String?
8
+
9
+ private def read: -> String
10
+
11
+ def to_json: (*top a) -> String
12
+
13
+ def to_yaml: (*top a) -> String
14
+
15
+ def initialize: (
16
+ Pathname | StringIO | IO | String content,
17
+ ?filename: (Pathname | String)?,
18
+ ?content_type: String?
19
+ ) -> void
20
+ end
21
+ end
@@ -0,0 +1,133 @@
1
+ module GrowsurfRuby
2
+ module Internal
3
+ module Transport
4
+ class BaseClient
5
+ extend GrowsurfRuby::Internal::Util::SorbetRuntimeSupport
6
+
7
+ type request_components =
8
+ {
9
+ method: Symbol,
10
+ path: String | ::Array[String],
11
+ query: ::Hash[String, (::Array[String] | String)?]?,
12
+ headers: ::Hash[String, (String
13
+ | Integer
14
+ | ::Array[(String | Integer)?])?]?,
15
+ body: top?,
16
+ unwrap: (Symbol
17
+ | Integer
18
+ | ::Array[(Symbol | Integer)]
19
+ | (^(top arg0) -> top))?,
20
+ page: Class?,
21
+ stream: Class?,
22
+ model: GrowsurfRuby::Internal::Type::Converter::input?,
23
+ options: GrowsurfRuby::request_opts?
24
+ }
25
+ type request_input =
26
+ {
27
+ method: Symbol,
28
+ url: URI::Generic,
29
+ headers: ::Hash[String, String],
30
+ body: top,
31
+ max_retries: Integer,
32
+ timeout: Float
33
+ }
34
+
35
+ MAX_REDIRECTS: 20
36
+
37
+ PLATFORM_HEADERS: ::Hash[String, String]
38
+
39
+ def self.validate!: (
40
+ GrowsurfRuby::Internal::Transport::BaseClient::request_components req
41
+ ) -> void
42
+
43
+ def self.should_retry?: (
44
+ Integer status,
45
+ headers: ::Hash[String, String]
46
+ ) -> bool
47
+
48
+ def self.follow_redirect: (
49
+ GrowsurfRuby::Internal::Transport::BaseClient::request_input request,
50
+ status: Integer,
51
+ response_headers: ::Hash[String, String]
52
+ ) -> GrowsurfRuby::Internal::Transport::BaseClient::request_input
53
+
54
+ def self.reap_connection!: (
55
+ Integer | GrowsurfRuby::Errors::APIConnectionError status,
56
+ stream: Enumerable[String]?
57
+ ) -> void
58
+
59
+ attr_reader base_url: URI::Generic
60
+
61
+ attr_reader timeout: Float
62
+
63
+ attr_reader max_retries: Integer
64
+
65
+ attr_reader initial_retry_delay: Float
66
+
67
+ attr_reader max_retry_delay: Float
68
+
69
+ attr_reader headers: ::Hash[String, String]
70
+
71
+ attr_reader idempotency_header: String?
72
+
73
+ # @api private
74
+ attr_reader requester: GrowsurfRuby::Internal::Transport::PooledNetRequester
75
+
76
+ def initialize: (
77
+ base_url: String,
78
+ ?timeout: Float,
79
+ ?max_retries: Integer,
80
+ ?initial_retry_delay: Float,
81
+ ?max_retry_delay: Float,
82
+ ?headers: ::Hash[String, (String
83
+ | Integer
84
+ | ::Array[(String | Integer)?])?],
85
+ ?idempotency_header: String?
86
+ ) -> void
87
+
88
+ private def auth_headers: -> ::Hash[String, String]
89
+
90
+ private def user_agent: -> String
91
+
92
+ private def generate_idempotency_key: -> String
93
+
94
+ private def build_request: (
95
+ GrowsurfRuby::Internal::Transport::BaseClient::request_components req,
96
+ GrowsurfRuby::request_options opts
97
+ ) -> GrowsurfRuby::Internal::Transport::BaseClient::request_input
98
+
99
+ private def retry_delay: (
100
+ ::Hash[String, String] headers,
101
+ retry_count: Integer
102
+ ) -> Float
103
+
104
+ def send_request: (
105
+ GrowsurfRuby::Internal::Transport::BaseClient::request_input request,
106
+ redirect_count: Integer,
107
+ retry_count: Integer,
108
+ send_retry_header: bool
109
+ ) -> [Integer, top, Enumerable[String]]
110
+
111
+ def request: (
112
+ Symbol method,
113
+ String | ::Array[String] path,
114
+ ?query: ::Hash[String, (::Array[String] | String)?]?,
115
+ ?headers: ::Hash[String, (String
116
+ | Integer
117
+ | ::Array[(String | Integer)?])?]?,
118
+ ?body: top?,
119
+ ?unwrap: (Symbol
120
+ | Integer
121
+ | ::Array[(Symbol | Integer)]
122
+ | (^(top arg0) -> top))?,
123
+ ?page: Class?,
124
+ ?stream: Class?,
125
+ ?model: GrowsurfRuby::Internal::Type::Converter::input?,
126
+ ?options: GrowsurfRuby::request_opts?
127
+ ) -> top
128
+
129
+ def inspect: -> String
130
+ end
131
+ end
132
+ end
133
+ end
@@ -0,0 +1,48 @@
1
+ module GrowsurfRuby
2
+ module Internal
3
+ module Transport
4
+ class PooledNetRequester
5
+ extend GrowsurfRuby::Internal::Util::SorbetRuntimeSupport
6
+
7
+ type request =
8
+ {
9
+ method: Symbol,
10
+ url: URI::Generic,
11
+ headers: ::Hash[String, String],
12
+ body: top,
13
+ deadline: Float
14
+ }
15
+
16
+ KEEP_ALIVE_TIMEOUT: 30
17
+
18
+ DEFAULT_MAX_CONNECTIONS: Integer
19
+
20
+ def self.connect: (
21
+ cert_store: OpenSSL::X509::Store,
22
+ url: URI::Generic
23
+ ) -> top
24
+
25
+ def self.calibrate_socket_timeout: (top conn, Float deadline) -> void
26
+
27
+ def self.build_request: (
28
+ GrowsurfRuby::Internal::Transport::PooledNetRequester::request request
29
+ ) {
30
+ (String arg0) -> void
31
+ } -> [top, (^-> void)]
32
+
33
+ private def with_pool: (
34
+ URI::Generic url,
35
+ deadline: Float
36
+ ) {
37
+ (top arg0) -> void
38
+ } -> void
39
+
40
+ def execute: (
41
+ GrowsurfRuby::Internal::Transport::PooledNetRequester::request request
42
+ ) -> [Integer, top, Enumerable[String]]
43
+
44
+ def initialize: (?size: Integer) -> void
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ module GrowsurfRuby
2
+ module Internal
3
+ module Type
4
+ class ArrayOf[Elem]
5
+ include GrowsurfRuby::Internal::Type::Converter
6
+ include GrowsurfRuby::Internal::Util::SorbetRuntimeSupport
7
+
8
+ def self.[]: (
9
+ ::Hash[Symbol, top]
10
+ | ^-> GrowsurfRuby::Internal::Type::Converter::input
11
+ | GrowsurfRuby::Internal::Type::Converter::input type_info,
12
+ ?::Hash[Symbol, top] spec
13
+ ) -> instance
14
+
15
+ def ===: (top other) -> bool
16
+
17
+ def ==: (top other) -> bool
18
+
19
+ def hash: -> Integer
20
+
21
+ def coerce: (
22
+ ::Array[top] | top value,
23
+ state: GrowsurfRuby::Internal::Type::Converter::coerce_state
24
+ ) -> (::Array[top] | top)
25
+
26
+ def dump: (
27
+ ::Array[top] | top value,
28
+ state: GrowsurfRuby::Internal::Type::Converter::dump_state
29
+ ) -> (::Array[top] | top)
30
+
31
+ def to_sorbet_type: -> top
32
+
33
+ def item_type: -> Elem
34
+
35
+ def nilable?: -> bool
36
+
37
+ def initialize: (
38
+ ::Hash[Symbol, top]
39
+ | ^-> GrowsurfRuby::Internal::Type::Converter::input
40
+ | GrowsurfRuby::Internal::Type::Converter::input type_info,
41
+ ?::Hash[Symbol, top] spec
42
+ ) -> void
43
+
44
+ def inspect: (?depth: Integer) -> String
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,104 @@
1
+ module GrowsurfRuby
2
+ module Internal
3
+ module Type
4
+ class BaseModel
5
+ extend GrowsurfRuby::Internal::Type::Converter
6
+ extend GrowsurfRuby::Internal::Util::SorbetRuntimeSupport
7
+
8
+ type known_field =
9
+ { mode: (:coerce | :dump)?, required: bool, nilable: bool }
10
+
11
+ def self.inherited: (self child) -> void
12
+
13
+ def self.known_fields: -> ::Hash[Symbol, (GrowsurfRuby::Internal::Type::BaseModel::known_field
14
+ & { type_fn: (^-> GrowsurfRuby::Internal::Type::Converter::input) })]
15
+
16
+ def self.fields: -> ::Hash[Symbol, (GrowsurfRuby::Internal::Type::BaseModel::known_field
17
+ & { type: GrowsurfRuby::Internal::Type::Converter::input })]
18
+
19
+ private def self.add_field: (
20
+ Symbol name_sym,
21
+ required: bool,
22
+ type_info: {
23
+ const: (nil | bool | Integer | Float | Symbol)?,
24
+ enum: ^-> GrowsurfRuby::Internal::Type::Converter::input?,
25
+ union: ^-> GrowsurfRuby::Internal::Type::Converter::input?,
26
+ api_name: Symbol
27
+ }
28
+ | ^-> GrowsurfRuby::Internal::Type::Converter::input
29
+ | GrowsurfRuby::Internal::Type::Converter::input,
30
+ spec: ::Hash[Symbol, top]
31
+ ) -> void
32
+
33
+ def self.required: (
34
+ Symbol name_sym,
35
+ ::Hash[Symbol, top]
36
+ | ^-> GrowsurfRuby::Internal::Type::Converter::input
37
+ | GrowsurfRuby::Internal::Type::Converter::input type_info,
38
+ ?::Hash[Symbol, top] spec
39
+ ) -> void
40
+
41
+ def self.optional: (
42
+ Symbol name_sym,
43
+ ::Hash[Symbol, top]
44
+ | ^-> GrowsurfRuby::Internal::Type::Converter::input
45
+ | GrowsurfRuby::Internal::Type::Converter::input type_info,
46
+ ?::Hash[Symbol, top] spec
47
+ ) -> void
48
+
49
+ private def self.request_only: { -> void } -> void
50
+
51
+ private def self.response_only: { -> void } -> void
52
+
53
+ def self.==: (top other) -> bool
54
+
55
+ def self.hash: -> Integer
56
+
57
+ def ==: (top other) -> bool
58
+
59
+ def hash: -> Integer
60
+
61
+ def self.coerce: (
62
+ GrowsurfRuby::Internal::Type::BaseModel
63
+ | ::Hash[top, top]
64
+ | top value,
65
+ state: GrowsurfRuby::Internal::Type::Converter::coerce_state
66
+ ) -> (instance | top)
67
+
68
+ def self.dump: (
69
+ instance | top value,
70
+ state: GrowsurfRuby::Internal::Type::Converter::dump_state
71
+ ) -> (::Hash[top, top] | top)
72
+
73
+ def self.to_sorbet_type: -> top
74
+
75
+ def self.recursively_to_h: (
76
+ GrowsurfRuby::Internal::Type::BaseModel model,
77
+ convert: bool
78
+ ) -> ::Hash[Symbol, top]
79
+
80
+ def []: (Symbol key) -> top?
81
+
82
+ def to_h: -> ::Hash[Symbol, top]
83
+
84
+ alias to_hash to_h
85
+
86
+ def deep_to_h: -> ::Hash[Symbol, top]
87
+
88
+ def deconstruct_keys: (::Array[Symbol]? keys) -> ::Hash[Symbol, top]
89
+
90
+ def to_json: (*top a) -> String
91
+
92
+ def to_yaml: (*top a) -> String
93
+
94
+ def initialize: (?::Hash[Symbol, top] | instance data) -> void
95
+
96
+ def self.inspect: (?depth: Integer) -> String
97
+
98
+ def to_s: -> String
99
+
100
+ def inspect: -> String
101
+ end
102
+ end
103
+ end
104
+ end