growsurf-ruby 1.0.0 → 1.1.0

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 (137) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +1 -1
  4. data/lib/growsurf_ruby/client.rb +4 -0
  5. data/lib/growsurf_ruby/models/account.rb +90 -0
  6. data/lib/growsurf_ruby/models/account_create_params.rb +46 -0
  7. data/lib/growsurf_ruby/models/account_create_response.rb +64 -0
  8. data/lib/growsurf_ruby/models/account_resend_verification_email_response.rb +33 -0
  9. data/lib/growsurf_ruby/models/account_rotate_api_key_response.rb +17 -0
  10. data/lib/growsurf_ruby/models/account_update_params.rb +35 -0
  11. data/lib/growsurf_ruby/models/campaign/campaign_reward_list_response.rb +2 -2
  12. data/lib/growsurf_ruby/models/campaign/create.rb +5 -1
  13. data/lib/growsurf_ruby/models/campaign/participant_activity_logs_response.rb +65 -0
  14. data/lib/growsurf_ruby/models/campaign/participant_analytics_response.rb +421 -0
  15. data/lib/growsurf_ruby/models/campaign/participant_bulk_delete_params.rb +35 -0
  16. data/lib/growsurf_ruby/models/campaign/participant_bulk_delete_response.rb +151 -0
  17. data/lib/growsurf_ruby/models/campaign/participant_email_params.rb +76 -0
  18. data/lib/growsurf_ruby/models/campaign/participant_email_response.rb +38 -0
  19. data/lib/growsurf_ruby/models/campaign/participant_list_activity_logs_params.rb +46 -0
  20. data/lib/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rb +98 -0
  21. data/lib/growsurf_ruby/models/campaign/participant_update_params.rb +21 -1
  22. data/lib/growsurf_ruby/models/campaign/reward.rb +17 -6
  23. data/lib/growsurf_ruby/models/campaign/reward_create_params.rb +25 -15
  24. data/lib/growsurf_ruby/models/campaign/reward_update_params.rb +25 -15
  25. data/lib/growsurf_ruby/models/campaign/webhook.rb +72 -0
  26. data/lib/growsurf_ruby/models/campaign/webhook_create_params.rb +52 -0
  27. data/lib/growsurf_ruby/models/campaign/webhook_delete_params.rb +28 -0
  28. data/lib/growsurf_ruby/models/campaign/webhook_delete_response.rb +24 -0
  29. data/lib/growsurf_ruby/models/campaign/webhook_event.rb +23 -0
  30. data/lib/growsurf_ruby/models/campaign/webhook_list_response.rb +18 -0
  31. data/lib/growsurf_ruby/models/campaign/webhook_test_params.rb +42 -0
  32. data/lib/growsurf_ruby/models/campaign/webhook_test_response.rb +50 -0
  33. data/lib/growsurf_ruby/models/campaign/webhook_update_params.rb +59 -0
  34. data/lib/growsurf_ruby/models/campaign.rb +17 -6
  35. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_params.rb +36 -1
  36. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_response.rb +538 -1
  37. data/lib/growsurf_ruby/models/campaign_update_params.rb +0 -3
  38. data/lib/growsurf_ruby/models/commission_structure.rb +8 -2
  39. data/lib/growsurf_ruby/models/referral_flow_screenshots_response.rb +72 -0
  40. data/lib/growsurf_ruby/models.rb +8 -0
  41. data/lib/growsurf_ruby/resources/account.rb +159 -0
  42. data/lib/growsurf_ruby/resources/campaign/design.rb +9 -7
  43. data/lib/growsurf_ruby/resources/campaign/emails.rb +8 -5
  44. data/lib/growsurf_ruby/resources/campaign/installation.rb +8 -6
  45. data/lib/growsurf_ruby/resources/campaign/options.rb +8 -5
  46. data/lib/growsurf_ruby/resources/campaign/participant.rb +170 -2
  47. data/lib/growsurf_ruby/resources/campaign/rewards.rb +17 -21
  48. data/lib/growsurf_ruby/resources/campaign/webhooks.rb +157 -0
  49. data/lib/growsurf_ruby/resources/campaign.rb +30 -2
  50. data/lib/growsurf_ruby/version.rb +1 -1
  51. data/lib/growsurf_ruby.rb +26 -0
  52. data/rbi/growsurf_ruby/client.rbi +3 -0
  53. data/rbi/growsurf_ruby/models/account.rbi +125 -0
  54. data/rbi/growsurf_ruby/models/account_create_params.rbi +73 -0
  55. data/rbi/growsurf_ruby/models/account_create_response.rbi +115 -0
  56. data/rbi/growsurf_ruby/models/account_resend_verification_email_response.rbi +76 -0
  57. data/rbi/growsurf_ruby/models/account_rotate_api_key_response.rbi +30 -0
  58. data/rbi/growsurf_ruby/models/account_update_params.rbi +65 -0
  59. data/rbi/growsurf_ruby/models/campaign/campaign_reward_list_response.rbi +2 -2
  60. data/rbi/growsurf_ruby/models/campaign/create.rbi +8 -0
  61. data/rbi/growsurf_ruby/models/campaign/participant_activity_logs_response.rbi +111 -0
  62. data/rbi/growsurf_ruby/models/campaign/participant_analytics_response.rbi +630 -0
  63. data/rbi/growsurf_ruby/models/campaign/participant_bulk_delete_params.rbi +56 -0
  64. data/rbi/growsurf_ruby/models/campaign/participant_bulk_delete_response.rbi +285 -0
  65. data/rbi/growsurf_ruby/models/campaign/participant_email_params.rbi +118 -0
  66. data/rbi/growsurf_ruby/models/campaign/participant_email_response.rbi +84 -0
  67. data/rbi/growsurf_ruby/models/campaign/participant_list_activity_logs_params.rbi +74 -0
  68. data/rbi/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rbi +207 -0
  69. data/rbi/growsurf_ruby/models/campaign/participant_update_params.rbi +24 -0
  70. data/rbi/growsurf_ruby/models/campaign/reward.rbi +25 -4
  71. data/rbi/growsurf_ruby/models/campaign/reward_create_params.rbi +34 -9
  72. data/rbi/growsurf_ruby/models/campaign/reward_update_params.rbi +34 -9
  73. data/rbi/growsurf_ruby/models/campaign/webhook.rbi +93 -0
  74. data/rbi/growsurf_ruby/models/campaign/webhook_create_params.rbi +91 -0
  75. data/rbi/growsurf_ruby/models/campaign/webhook_delete_params.rbi +48 -0
  76. data/rbi/growsurf_ruby/models/campaign/webhook_delete_response.rbi +33 -0
  77. data/rbi/growsurf_ruby/models/campaign/webhook_event.rbi +60 -0
  78. data/rbi/growsurf_ruby/models/campaign/webhook_list_response.rbi +36 -0
  79. data/rbi/growsurf_ruby/models/campaign/webhook_test_params.rbi +69 -0
  80. data/rbi/growsurf_ruby/models/campaign/webhook_test_response.rbi +102 -0
  81. data/rbi/growsurf_ruby/models/campaign/webhook_update_params.rbi +98 -0
  82. data/rbi/growsurf_ruby/models/campaign.rbi +25 -4
  83. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_params.rbi +91 -0
  84. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_response.rbi +1011 -3
  85. data/rbi/growsurf_ruby/models/campaign_update_params.rbi +0 -15
  86. data/rbi/growsurf_ruby/models/commission_structure.rbi +8 -2
  87. data/rbi/growsurf_ruby/models/referral_flow_screenshots_response.rbi +94 -0
  88. data/rbi/growsurf_ruby/models.rbi +9 -0
  89. data/rbi/growsurf_ruby/resources/account.rbi +112 -0
  90. data/rbi/growsurf_ruby/resources/campaign/design.rbi +7 -5
  91. data/rbi/growsurf_ruby/resources/campaign/emails.rbi +7 -5
  92. data/rbi/growsurf_ruby/resources/campaign/installation.rbi +7 -4
  93. data/rbi/growsurf_ruby/resources/campaign/options.rbi +7 -5
  94. data/rbi/growsurf_ruby/resources/campaign/participant.rbi +160 -0
  95. data/rbi/growsurf_ruby/resources/campaign/rewards.rbi +37 -21
  96. data/rbi/growsurf_ruby/resources/campaign/webhooks.rbi +123 -0
  97. data/rbi/growsurf_ruby/resources/campaign.rbi +33 -2
  98. data/sig/growsurf_ruby/client.rbs +2 -0
  99. data/sig/growsurf_ruby/models/account.rbs +67 -0
  100. data/sig/growsurf_ruby/models/account_create_params.rbs +42 -0
  101. data/sig/growsurf_ruby/models/account_create_response.rbs +47 -0
  102. data/sig/growsurf_ruby/models/account_resend_verification_email_response.rbs +35 -0
  103. data/sig/growsurf_ruby/models/account_rotate_api_key_response.rbs +13 -0
  104. data/sig/growsurf_ruby/models/account_update_params.rbs +42 -0
  105. data/sig/growsurf_ruby/models/campaign/participant_activity_logs_response.rbs +59 -0
  106. data/sig/growsurf_ruby/models/campaign/participant_analytics_response.rbs +407 -0
  107. data/sig/growsurf_ruby/models/campaign/participant_bulk_delete_params.rbs +30 -0
  108. data/sig/growsurf_ruby/models/campaign/participant_bulk_delete_response.rbs +125 -0
  109. data/sig/growsurf_ruby/models/campaign/participant_email_params.rbs +61 -0
  110. data/sig/growsurf_ruby/models/campaign/participant_email_response.rbs +37 -0
  111. data/sig/growsurf_ruby/models/campaign/participant_list_activity_logs_params.rbs +47 -0
  112. data/sig/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rbs +90 -0
  113. data/sig/growsurf_ruby/models/campaign/participant_update_params.rbs +14 -0
  114. data/sig/growsurf_ruby/models/campaign/reward_create_params.rbs +0 -7
  115. data/sig/growsurf_ruby/models/campaign/reward_update_params.rbs +0 -7
  116. data/sig/growsurf_ruby/models/campaign/webhook.rbs +52 -0
  117. data/sig/growsurf_ruby/models/campaign/webhook_create_params.rbs +51 -0
  118. data/sig/growsurf_ruby/models/campaign/webhook_delete_params.rbs +30 -0
  119. data/sig/growsurf_ruby/models/campaign/webhook_delete_response.rbs +17 -0
  120. data/sig/growsurf_ruby/models/campaign/webhook_event.rbs +28 -0
  121. data/sig/growsurf_ruby/models/campaign/webhook_list_response.rbs +18 -0
  122. data/sig/growsurf_ruby/models/campaign/webhook_test_params.rbs +42 -0
  123. data/sig/growsurf_ruby/models/campaign/webhook_test_response.rbs +54 -0
  124. data/sig/growsurf_ruby/models/campaign/webhook_update_params.rbs +63 -0
  125. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_params.rbs +35 -1
  126. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_response.rbs +533 -3
  127. data/sig/growsurf_ruby/models/campaign_update_params.rbs +1 -4
  128. data/sig/growsurf_ruby/models/commission_structure.rbs +7 -2
  129. data/sig/growsurf_ruby/models/referral_flow_screenshots_response.rbs +54 -0
  130. data/sig/growsurf_ruby/models/reward_tax_valuation.rbs +4 -1
  131. data/sig/growsurf_ruby/models.rbs +8 -0
  132. data/sig/growsurf_ruby/resources/account.rbs +38 -0
  133. data/sig/growsurf_ruby/resources/campaign/participant.rbs +37 -0
  134. data/sig/growsurf_ruby/resources/campaign/rewards.rbs +0 -2
  135. data/sig/growsurf_ruby/resources/campaign/webhooks.rbs +46 -0
  136. data/sig/growsurf_ruby/resources/campaign.rbs +9 -0
  137. metadata +80 -2
@@ -0,0 +1,421 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ # @see GrowsurfRuby::Resources::Campaign::Participant#retrieve_analytics
7
+ class ParticipantAnalyticsResponse < GrowsurfRuby::Internal::Type::BaseModel
8
+ # @!attribute analytics
9
+ #
10
+ # @return [GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse::Analytics]
11
+ required :analytics, -> { GrowsurfRuby::Campaign::ParticipantAnalyticsResponse::Analytics }
12
+
13
+ # @!attribute ranks
14
+ #
15
+ # @return [GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse::Ranks]
16
+ required :ranks, -> { GrowsurfRuby::Campaign::ParticipantAnalyticsResponse::Ranks }
17
+
18
+ # @!attribute share_count
19
+ # Per-channel share counts (e.g. `email`, `facebook`, `twitter`, ...).
20
+ #
21
+ # @return [Hash{Symbol=>Integer}]
22
+ required :share_count,
23
+ GrowsurfRuby::Internal::Type::HashOf[Integer],
24
+ api_name: :shareCount
25
+
26
+ # @!attribute end_date
27
+ # Present only with `include=series`. Window end (Unix ms).
28
+ #
29
+ # @return [Integer, nil]
30
+ optional :end_date, Integer, api_name: :endDate
31
+
32
+ # @!attribute series
33
+ # Present only when `include=series`. This participant's own referral-link activity
34
+ # per period (ascending), windowed by `days`/`startDate`/`endDate` and bucketed by
35
+ # `interval`.
36
+ #
37
+ # @return [Array<GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse::Series>, nil]
38
+ optional :series,
39
+ -> {
40
+ GrowsurfRuby::Internal::Type::ArrayOf[
41
+ GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse::Series
42
+ ]
43
+ }
44
+
45
+ # @!attribute start_date
46
+ # Present only with `include=series`. Window start (Unix ms).
47
+ #
48
+ # @return [Integer, nil]
49
+ optional :start_date, Integer, api_name: :startDate
50
+
51
+ # @!method initialize(analytics:, ranks:, share_count:, end_date: nil, series: nil, start_date: nil)
52
+ # Some parameter documentations has been truncated, see
53
+ # {GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse} for more details.
54
+ #
55
+ # @param analytics [GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse::Analytics]
56
+ #
57
+ # @param ranks [GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse::Ranks]
58
+ #
59
+ # @param share_count [Hash{Symbol=>Integer}] Per-channel share counts (e.g. `email`, `facebook`, `twitter`, ...).
60
+ #
61
+ # @param end_date [Integer] Present only with `include=series`. Window end (Unix ms).
62
+ #
63
+ # @param series [Array<GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse::Series>] Present only when `include=series`. This participant's own referral-link activity
64
+ #
65
+ # @param start_date [Integer] Present only with `include=series`. Window start (Unix ms).
66
+
67
+ # @see GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse#analytics
68
+ class Analytics < GrowsurfRuby::Internal::Type::BaseModel
69
+ # @!attribute currency_iso
70
+ #
71
+ # @return [String, nil]
72
+ optional :currency_iso, String, api_name: :currencyISO
73
+
74
+ # @!attribute expired_referrals
75
+ #
76
+ # @return [Integer, nil]
77
+ optional :expired_referrals, Integer, api_name: :expiredReferrals
78
+
79
+ # @!attribute impressions
80
+ #
81
+ # @return [Integer, nil]
82
+ optional :impressions, Integer
83
+
84
+ # @!attribute invites_sent
85
+ #
86
+ # @return [Integer, nil]
87
+ optional :invites_sent, Integer, api_name: :invitesSent
88
+
89
+ # @!attribute leads
90
+ #
91
+ # @return [Integer, nil]
92
+ optional :leads, Integer
93
+
94
+ # @!attribute monthly_referrals
95
+ #
96
+ # @return [Integer, nil]
97
+ optional :monthly_referrals, Integer, api_name: :monthlyReferrals
98
+
99
+ # @!attribute pending_rewards
100
+ #
101
+ # @return [Integer, nil]
102
+ optional :pending_rewards, Integer, api_name: :pendingRewards
103
+
104
+ # @!attribute referral_revenue
105
+ # Affiliate only. Revenue attributed to this participant's referrals, in minor
106
+ # currency units.
107
+ #
108
+ # @return [Integer, nil]
109
+ optional :referral_revenue, Integer, api_name: :referralRevenue
110
+
111
+ # @!attribute referrals
112
+ #
113
+ # @return [Integer, nil]
114
+ optional :referrals, Integer
115
+
116
+ # @!attribute rewards_earned
117
+ #
118
+ # @return [Integer, nil]
119
+ optional :rewards_earned, Integer, api_name: :rewardsEarned
120
+
121
+ # @!attribute total_commissions
122
+ # Affiliate only. Total commissions earned, in minor currency units.
123
+ #
124
+ # @return [Integer, nil]
125
+ optional :total_commissions, Integer, api_name: :totalCommissions
126
+
127
+ # @!attribute total_paid_out
128
+ # Affiliate only. Total paid out, in minor currency units.
129
+ #
130
+ # @return [Integer, nil]
131
+ optional :total_paid_out, Integer, api_name: :totalPaidOut
132
+
133
+ # @!attribute unique_impressions
134
+ #
135
+ # @return [Integer, nil]
136
+ optional :unique_impressions, Integer, api_name: :uniqueImpressions
137
+
138
+ # @!attribute upcoming_payout
139
+ # Affiliate only. Approved commissions ready to pay, in minor currency units.
140
+ #
141
+ # @return [Integer, nil]
142
+ optional :upcoming_payout, Integer, api_name: :upcomingPayout
143
+
144
+ # @!method initialize(currency_iso: nil, expired_referrals: nil, impressions: nil, invites_sent: nil, leads: nil, monthly_referrals: nil, pending_rewards: nil, referral_revenue: nil, referrals: nil, rewards_earned: nil, total_commissions: nil, total_paid_out: nil, unique_impressions: nil, upcoming_payout: nil)
145
+ # Some parameter documentations has been truncated, see
146
+ # {GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse::Analytics} for
147
+ # more details.
148
+ #
149
+ # @param currency_iso [String]
150
+ #
151
+ # @param expired_referrals [Integer]
152
+ #
153
+ # @param impressions [Integer]
154
+ #
155
+ # @param invites_sent [Integer]
156
+ #
157
+ # @param leads [Integer]
158
+ #
159
+ # @param monthly_referrals [Integer]
160
+ #
161
+ # @param pending_rewards [Integer]
162
+ #
163
+ # @param referral_revenue [Integer] Affiliate only. Revenue attributed to this participant's referrals, in minor curr
164
+ #
165
+ # @param referrals [Integer]
166
+ #
167
+ # @param rewards_earned [Integer]
168
+ #
169
+ # @param total_commissions [Integer] Affiliate only. Total commissions earned, in minor currency units.
170
+ #
171
+ # @param total_paid_out [Integer] Affiliate only. Total paid out, in minor currency units.
172
+ #
173
+ # @param unique_impressions [Integer]
174
+ #
175
+ # @param upcoming_payout [Integer] Affiliate only. Approved commissions ready to pay, in minor currency units.
176
+ end
177
+
178
+ # @see GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse#ranks
179
+ class Ranks < GrowsurfRuby::Internal::Type::BaseModel
180
+ # @!attribute monthly_rank
181
+ #
182
+ # @return [Integer, nil]
183
+ optional :monthly_rank, Integer, api_name: :monthlyRank, nil?: true
184
+
185
+ # @!attribute prev_monthly_rank
186
+ #
187
+ # @return [Integer, nil]
188
+ optional :prev_monthly_rank, Integer, api_name: :prevMonthlyRank, nil?: true
189
+
190
+ # @!attribute rank
191
+ # All-time rank (1-indexed), or null when unranked.
192
+ #
193
+ # @return [Integer, nil]
194
+ optional :rank, Integer, nil?: true
195
+
196
+ # @!method initialize(monthly_rank: nil, prev_monthly_rank: nil, rank: nil)
197
+ # @param monthly_rank [Integer, nil]
198
+ #
199
+ # @param prev_monthly_rank [Integer, nil]
200
+ #
201
+ # @param rank [Integer, nil] All-time rank (1-indexed), or null when unranked.
202
+ end
203
+
204
+ class Series < GrowsurfRuby::Internal::Type::BaseModel
205
+ # @!attribute android_native_shares
206
+ #
207
+ # @return [Integer, nil]
208
+ optional :android_native_shares, Integer, api_name: :androidNativeShares
209
+
210
+ # @!attribute bluesky_shares
211
+ #
212
+ # @return [Integer, nil]
213
+ optional :bluesky_shares, Integer, api_name: :blueskyShares
214
+
215
+ # @!attribute copy_ref_link_shares
216
+ #
217
+ # @return [Integer, nil]
218
+ optional :copy_ref_link_shares, Integer, api_name: :copyRefLinkShares
219
+
220
+ # @!attribute email_shares
221
+ #
222
+ # @return [Integer, nil]
223
+ optional :email_shares, Integer, api_name: :emailShares
224
+
225
+ # @!attribute facebook_shares
226
+ #
227
+ # @return [Integer, nil]
228
+ optional :facebook_shares, Integer, api_name: :facebookShares
229
+
230
+ # @!attribute impressions
231
+ #
232
+ # @return [Integer, nil]
233
+ optional :impressions, Integer
234
+
235
+ # @!attribute invites
236
+ #
237
+ # @return [Integer, nil]
238
+ optional :invites, Integer
239
+
240
+ # @!attribute ios_native_shares
241
+ #
242
+ # @return [Integer, nil]
243
+ optional :ios_native_shares, Integer, api_name: :iosNativeShares
244
+
245
+ # @!attribute linked_in_shares
246
+ #
247
+ # @return [Integer, nil]
248
+ optional :linked_in_shares, Integer, api_name: :linkedInShares
249
+
250
+ # @!attribute messenger_shares
251
+ #
252
+ # @return [Integer, nil]
253
+ optional :messenger_shares, Integer, api_name: :messengerShares
254
+
255
+ # @!attribute participants
256
+ #
257
+ # @return [Integer, nil]
258
+ optional :participants, Integer
259
+
260
+ # @!attribute period_start
261
+ # Start of the period, as a Unix timestamp in milliseconds (UTC).
262
+ #
263
+ # @return [Integer, nil]
264
+ optional :period_start, Integer, api_name: :periodStart
265
+
266
+ # @!attribute pinterest_shares
267
+ #
268
+ # @return [Integer, nil]
269
+ optional :pinterest_shares, Integer, api_name: :pinterestShares
270
+
271
+ # @!attribute qrcode_shares
272
+ #
273
+ # @return [Integer, nil]
274
+ optional :qrcode_shares, Integer, api_name: :qrcodeShares
275
+
276
+ # @!attribute reddit_shares
277
+ #
278
+ # @return [Integer, nil]
279
+ optional :reddit_shares, Integer, api_name: :redditShares
280
+
281
+ # @!attribute referral_credit_expireds
282
+ #
283
+ # @return [Integer, nil]
284
+ optional :referral_credit_expireds, Integer, api_name: :referralCreditExpireds
285
+
286
+ # @!attribute referral_credit_pendings
287
+ #
288
+ # @return [Integer, nil]
289
+ optional :referral_credit_pendings, Integer, api_name: :referralCreditPendings
290
+
291
+ # @!attribute referrals
292
+ #
293
+ # @return [Integer, nil]
294
+ optional :referrals, Integer
295
+
296
+ # @!attribute sms_shares
297
+ #
298
+ # @return [Integer, nil]
299
+ optional :sms_shares, Integer, api_name: :smsShares
300
+
301
+ # @!attribute telegram_shares
302
+ #
303
+ # @return [Integer, nil]
304
+ optional :telegram_shares, Integer, api_name: :telegramShares
305
+
306
+ # @!attribute threads_shares
307
+ #
308
+ # @return [Integer, nil]
309
+ optional :threads_shares, Integer, api_name: :threadsShares
310
+
311
+ # @!attribute total_commission_count
312
+ # Affiliate programs only. Number of commission records.
313
+ #
314
+ # @return [Integer, nil]
315
+ optional :total_commission_count, Integer, api_name: :totalCommissionCount
316
+
317
+ # @!attribute total_commissions
318
+ # Affiliate programs only. Commissions in the smallest unit of the program
319
+ # currency.
320
+ #
321
+ # @return [Integer, nil]
322
+ optional :total_commissions, Integer, api_name: :totalCommissions
323
+
324
+ # @!attribute total_revenue
325
+ # Affiliate programs only. Revenue in the smallest unit of the program currency.
326
+ #
327
+ # @return [Integer, nil]
328
+ optional :total_revenue, Integer, api_name: :totalRevenue
329
+
330
+ # @!attribute tumblr_shares
331
+ #
332
+ # @return [Integer, nil]
333
+ optional :tumblr_shares, Integer, api_name: :tumblrShares
334
+
335
+ # @!attribute twitter_shares
336
+ #
337
+ # @return [Integer, nil]
338
+ optional :twitter_shares, Integer, api_name: :twitterShares
339
+
340
+ # @!attribute unique_impressions
341
+ #
342
+ # @return [Integer, nil]
343
+ optional :unique_impressions, Integer, api_name: :uniqueImpressions
344
+
345
+ # @!attribute wechat_shares
346
+ #
347
+ # @return [Integer, nil]
348
+ optional :wechat_shares, Integer, api_name: :wechatShares
349
+
350
+ # @!attribute whats_app_shares
351
+ #
352
+ # @return [Integer, nil]
353
+ optional :whats_app_shares, Integer, api_name: :whatsAppShares
354
+
355
+ # @!method initialize(android_native_shares: nil, bluesky_shares: nil, copy_ref_link_shares: nil, email_shares: nil, facebook_shares: nil, impressions: nil, invites: nil, ios_native_shares: nil, linked_in_shares: nil, messenger_shares: nil, participants: nil, period_start: nil, pinterest_shares: nil, qrcode_shares: nil, reddit_shares: nil, referral_credit_expireds: nil, referral_credit_pendings: nil, referrals: nil, sms_shares: nil, telegram_shares: nil, threads_shares: nil, total_commission_count: nil, total_commissions: nil, total_revenue: nil, tumblr_shares: nil, twitter_shares: nil, unique_impressions: nil, wechat_shares: nil, whats_app_shares: nil)
356
+ # Some parameter documentations has been truncated, see
357
+ # {GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse::Series} for more
358
+ # details.
359
+ #
360
+ # @param android_native_shares [Integer]
361
+ #
362
+ # @param bluesky_shares [Integer]
363
+ #
364
+ # @param copy_ref_link_shares [Integer]
365
+ #
366
+ # @param email_shares [Integer]
367
+ #
368
+ # @param facebook_shares [Integer]
369
+ #
370
+ # @param impressions [Integer]
371
+ #
372
+ # @param invites [Integer]
373
+ #
374
+ # @param ios_native_shares [Integer]
375
+ #
376
+ # @param linked_in_shares [Integer]
377
+ #
378
+ # @param messenger_shares [Integer]
379
+ #
380
+ # @param participants [Integer]
381
+ #
382
+ # @param period_start [Integer] Start of the period, as a Unix timestamp in milliseconds (UTC).
383
+ #
384
+ # @param pinterest_shares [Integer]
385
+ #
386
+ # @param qrcode_shares [Integer]
387
+ #
388
+ # @param reddit_shares [Integer]
389
+ #
390
+ # @param referral_credit_expireds [Integer]
391
+ #
392
+ # @param referral_credit_pendings [Integer]
393
+ #
394
+ # @param referrals [Integer]
395
+ #
396
+ # @param sms_shares [Integer]
397
+ #
398
+ # @param telegram_shares [Integer]
399
+ #
400
+ # @param threads_shares [Integer]
401
+ #
402
+ # @param total_commission_count [Integer] Affiliate programs only. Number of commission records.
403
+ #
404
+ # @param total_commissions [Integer] Affiliate programs only. Commissions in the smallest unit of the program currenc
405
+ #
406
+ # @param total_revenue [Integer] Affiliate programs only. Revenue in the smallest unit of the program currency.
407
+ #
408
+ # @param tumblr_shares [Integer]
409
+ #
410
+ # @param twitter_shares [Integer]
411
+ #
412
+ # @param unique_impressions [Integer]
413
+ #
414
+ # @param wechat_shares [Integer]
415
+ #
416
+ # @param whats_app_shares [Integer]
417
+ end
418
+ end
419
+ end
420
+ end
421
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ # @see GrowsurfRuby::Resources::Campaign::Participant#bulk_delete
7
+ class ParticipantBulkDeleteParams < GrowsurfRuby::Internal::Type::BaseModel
8
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
9
+ include GrowsurfRuby::Internal::Type::RequestParameters
10
+
11
+ # @!attribute id
12
+ #
13
+ # @return [String]
14
+ required :id, String
15
+
16
+ # @!attribute participants
17
+ # GrowSurf participant IDs and/or email addresses to delete. Mixed entries are
18
+ # allowed.
19
+ #
20
+ # @return [Array<String>]
21
+ required :participants, GrowsurfRuby::Internal::Type::ArrayOf[String]
22
+
23
+ # @!method initialize(id:, participants:, request_options: {})
24
+ # Some parameter documentations has been truncated, see
25
+ # {GrowsurfRuby::Models::Campaign::ParticipantBulkDeleteParams} for more details.
26
+ #
27
+ # @param id [String]
28
+ #
29
+ # @param participants [Array<String>] GrowSurf participant IDs and/or email addresses to delete. Mixed entries are al
30
+ #
31
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}]
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,151 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ # @see GrowsurfRuby::Resources::Campaign::Participant#bulk_delete
7
+ class ParticipantBulkDeleteResponse < GrowsurfRuby::Internal::Type::BaseModel
8
+ # @!attribute results
9
+ # One entry per submitted identifier, in the same order as the request.
10
+ #
11
+ # @return [Array<GrowsurfRuby::Models::Campaign::ParticipantBulkDeleteResponse::Result>]
12
+ required :results,
13
+ -> {
14
+ GrowsurfRuby::Internal::Type::ArrayOf[
15
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result
16
+ ]
17
+ }
18
+
19
+ # @!attribute summary
20
+ #
21
+ # @return [GrowsurfRuby::Models::Campaign::ParticipantBulkDeleteResponse::Summary]
22
+ required :summary, -> { GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Summary }
23
+
24
+ # @!method initialize(results:, summary:)
25
+ # @param results [Array<GrowsurfRuby::Models::Campaign::ParticipantBulkDeleteResponse::Result>] One entry per submitted identifier, in the same order as the request.
26
+ #
27
+ # @param summary [GrowsurfRuby::Models::Campaign::ParticipantBulkDeleteResponse::Summary]
28
+
29
+ class Result < GrowsurfRuby::Internal::Type::BaseModel
30
+ # @!attribute identifier
31
+ # The submitted participant ID or email address, echoed back as received.
32
+ #
33
+ # @return [String]
34
+ required :identifier, String
35
+
36
+ # @!attribute index
37
+ # Zero-based position of this entry in the submitted `participants` array.
38
+ #
39
+ # @return [Integer]
40
+ required :index, Integer
41
+
42
+ # @!attribute status
43
+ # Per-row outcome. `DELETED` — the participant was resolved and removed.
44
+ # `NOT_FOUND` — no participant matches the ID or email. `DUPLICATE` — the entry
45
+ # resolves to the same participant as an earlier entry in the same request.
46
+ # `ERROR` — the lookup or deletion failed for this row.
47
+ #
48
+ # @return [Symbol, GrowsurfRuby::Models::Campaign::ParticipantBulkDeleteResponse::Result::Status]
49
+ required :status, enum: -> { GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result::Status }
50
+
51
+ # @!attribute email
52
+ # The resolved participant's email address. Present on `DELETED` rows.
53
+ #
54
+ # @return [String, nil]
55
+ optional :email, String
56
+
57
+ # @!attribute message
58
+ # Human-readable detail for `NOT_FOUND`, `DUPLICATE`, and `ERROR` rows.
59
+ #
60
+ # @return [String, nil]
61
+ optional :message, String
62
+
63
+ # @!attribute participant_id
64
+ # The resolved GrowSurf participant ID. Present when the entry resolved to a
65
+ # participant.
66
+ #
67
+ # @return [String, nil]
68
+ optional :participant_id, String, api_name: :participantId
69
+
70
+ # @!method initialize(identifier:, index:, status:, email: nil, message: nil, participant_id: nil)
71
+ # Some parameter documentations has been truncated, see
72
+ # {GrowsurfRuby::Models::Campaign::ParticipantBulkDeleteResponse::Result} for
73
+ # more details.
74
+ #
75
+ # @param identifier [String] The submitted participant ID or email address, echoed back as received.
76
+ #
77
+ # @param index [Integer] Zero-based position of this entry in the submitted `participants` array.
78
+ #
79
+ # @param status [Symbol, GrowsurfRuby::Models::Campaign::ParticipantBulkDeleteResponse::Result::Status] Per-row outcome. `DELETED` — the participant was resolved and removed. `NOT_FOU
80
+ #
81
+ # @param email [String] The resolved participant's email address. Present on `DELETED` rows.
82
+ #
83
+ # @param message [String] Human-readable detail for `NOT_FOUND`, `DUPLICATE`, and `ERROR` rows.
84
+ #
85
+ # @param participant_id [String] The resolved GrowSurf participant ID. Present when the entry resolved to a part
86
+
87
+ # Per-row outcome. `DELETED` — the participant was resolved and removed.
88
+ # `NOT_FOUND` — no participant matches the ID or email. `DUPLICATE` — the entry
89
+ # resolves to the same participant as an earlier entry in the same request.
90
+ # `ERROR` — the lookup or deletion failed for this row.
91
+ #
92
+ # @see GrowsurfRuby::Models::Campaign::ParticipantBulkDeleteResponse::Result#status
93
+ module Status
94
+ extend GrowsurfRuby::Internal::Type::Enum
95
+
96
+ DELETED = :DELETED
97
+ NOT_FOUND = :NOT_FOUND
98
+ DUPLICATE = :DUPLICATE
99
+ ERROR = :ERROR
100
+
101
+ # @!method self.values
102
+ # @return [Array<Symbol>]
103
+ end
104
+ end
105
+
106
+ class Summary < GrowsurfRuby::Internal::Type::BaseModel
107
+ # @!attribute deleted_count
108
+ # Entries that resolved to a participant and were deleted.
109
+ #
110
+ # @return [Integer]
111
+ required :deleted_count, Integer, api_name: :deletedCount
112
+
113
+ # @!attribute duplicate_count
114
+ # Entries that resolved to the same participant as an earlier entry.
115
+ #
116
+ # @return [Integer]
117
+ required :duplicate_count, Integer, api_name: :duplicateCount
118
+
119
+ # @!attribute error_count
120
+ # Entries that failed to look up or delete.
121
+ #
122
+ # @return [Integer]
123
+ required :error_count, Integer, api_name: :errorCount
124
+
125
+ # @!attribute not_found_count
126
+ # Entries that did not match any participant.
127
+ #
128
+ # @return [Integer]
129
+ required :not_found_count, Integer, api_name: :notFoundCount
130
+
131
+ # @!attribute total
132
+ # Number of entries submitted in this request.
133
+ #
134
+ # @return [Integer]
135
+ required :total, Integer
136
+
137
+ # @!method initialize(deleted_count:, duplicate_count:, error_count:, not_found_count:, total:)
138
+ # @param deleted_count [Integer] Entries that resolved to a participant and were deleted.
139
+ #
140
+ # @param duplicate_count [Integer] Entries that resolved to the same participant as an earlier entry.
141
+ #
142
+ # @param error_count [Integer] Entries that failed to look up or delete.
143
+ #
144
+ # @param not_found_count [Integer] Entries that did not match any participant.
145
+ #
146
+ # @param total [Integer] Number of entries submitted in this request.
147
+ end
148
+ end
149
+ end
150
+ end
151
+ end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ # @see GrowsurfRuby::Resources::Campaign::Participant#email
7
+ class ParticipantEmailParams < GrowsurfRuby::Internal::Type::BaseModel
8
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
9
+ include GrowsurfRuby::Internal::Type::RequestParameters
10
+
11
+ # @!attribute id
12
+ #
13
+ # @return [String]
14
+ required :id, String
15
+
16
+ # @!attribute participant_id_or_email
17
+ #
18
+ # @return [String]
19
+ required :participant_id_or_email, String
20
+
21
+ # @!attribute body
22
+ # HTML body for a free-form email. You can personalize it with dynamic text,
23
+ # inserting `{{...}}` tokens like `{{firstName}}` or `{{shareUrl}}`. See
24
+ # [Guide to using dynamic text in GrowSurf emails](https://support.growsurf.com/article/213-guide-to-using-dynamic-text-in-growsurf-emails).
25
+ #
26
+ # @return [String, nil]
27
+ optional :body, String
28
+
29
+ # @!attribute email_type
30
+ # The program email template to send (template mode). Send the camelCase key.
31
+ # The valid types depend on the program type; `isEnabled` only controls automatic sends.
32
+ # Referral programs: `welcomeNonReferred`, `referralLinkViewedFirstTime`,
33
+ # `referralLinkUsed`, `referredSignup`, `welcomeReferred`, `goalAchieved`,
34
+ # `campaignEndedWinners`, `campaignEndedNonWinners`, `progressUpdateMonthly`.
35
+ # Affiliate programs: `welcomeNonReferred`, `referralLinkViewedFirstTime`,
36
+ # `referredSignup`, `commissionGenerated`, `commissionAdjusted`, `payoutPending`,
37
+ # `payoutSentSuccess`, `progressUpdateMonthly`. System/transactional types (login
38
+ # link, PayPal confirmation, tax) and the invite email cannot be sent.
39
+ #
40
+ # @return [String, nil]
41
+ optional :email_type, String, api_name: :emailType
42
+
43
+ # @!attribute preheader
44
+ # Optional preheader text for a free-form email.
45
+ #
46
+ # @return [String, nil]
47
+ optional :preheader, String
48
+
49
+ # @!attribute subject
50
+ # Subject line for a free-form email. Supports dynamic text (`{{...}}` tokens),
51
+ # the same as the body.
52
+ #
53
+ # @return [String, nil]
54
+ optional :subject, String
55
+
56
+ # @!method initialize(id:, participant_id_or_email:, body: nil, email_type: nil, preheader: nil, subject: nil, request_options: {})
57
+ # Some parameter documentations has been truncated, see
58
+ # {GrowsurfRuby::Models::Campaign::ParticipantEmailParams} for more details.
59
+ #
60
+ # @param id [String]
61
+ #
62
+ # @param participant_id_or_email [String]
63
+ #
64
+ # @param body [String] 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).
65
+ #
66
+ # @param email_type [String] The program email template to send (template mode). Send the camelCase key; it m
67
+ #
68
+ # @param preheader [String] Optional preheader text for a free-form email.
69
+ #
70
+ # @param subject [String] Subject line for a free-form email. Supports dynamic text (`{{...}}` tokens), the same as the body.
71
+ #
72
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}]
73
+ end
74
+ end
75
+ end
76
+ end