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,285 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class ParticipantBulkDeleteResponse < GrowsurfRuby::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ GrowsurfRuby::Models::Campaign::ParticipantBulkDeleteResponse,
11
+ GrowsurfRuby::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # One entry per submitted identifier, in the same order as the request.
16
+ sig do
17
+ returns(
18
+ T::Array[
19
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result
20
+ ]
21
+ )
22
+ end
23
+ attr_accessor :results
24
+
25
+ sig do
26
+ returns(GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Summary)
27
+ end
28
+ attr_reader :summary
29
+
30
+ sig do
31
+ params(
32
+ summary:
33
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Summary::OrHash
34
+ ).void
35
+ end
36
+ attr_writer :summary
37
+
38
+ sig do
39
+ params(
40
+ results:
41
+ T::Array[
42
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result::OrHash
43
+ ],
44
+ summary:
45
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Summary::OrHash
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ # One entry per submitted identifier, in the same order as the request.
50
+ results:,
51
+ summary:
52
+ )
53
+ end
54
+
55
+ sig do
56
+ override.returns(
57
+ {
58
+ results:
59
+ T::Array[
60
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result
61
+ ],
62
+ summary:
63
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Summary
64
+ }
65
+ )
66
+ end
67
+ def to_hash
68
+ end
69
+
70
+ class Result < GrowsurfRuby::Internal::Type::BaseModel
71
+ OrHash =
72
+ T.type_alias do
73
+ T.any(
74
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result,
75
+ GrowsurfRuby::Internal::AnyHash
76
+ )
77
+ end
78
+
79
+ # The submitted participant ID or email address, echoed back as received.
80
+ sig { returns(String) }
81
+ attr_accessor :identifier
82
+
83
+ # Zero-based position of this entry in the submitted `participants` array.
84
+ sig { returns(Integer) }
85
+ attr_accessor :index
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
+ sig do
92
+ returns(
93
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result::Status::TaggedSymbol
94
+ )
95
+ end
96
+ attr_accessor :status
97
+
98
+ # The resolved participant's email address. Present on `DELETED` rows.
99
+ sig { returns(T.nilable(String)) }
100
+ attr_reader :email
101
+
102
+ sig { params(email: String).void }
103
+ attr_writer :email
104
+
105
+ # Human-readable detail for `NOT_FOUND`, `DUPLICATE`, and `ERROR` rows.
106
+ sig { returns(T.nilable(String)) }
107
+ attr_reader :message
108
+
109
+ sig { params(message: String).void }
110
+ attr_writer :message
111
+
112
+ # The resolved GrowSurf participant ID. Present when the entry resolved to a
113
+ # participant.
114
+ sig { returns(T.nilable(String)) }
115
+ attr_reader :participant_id
116
+
117
+ sig { params(participant_id: String).void }
118
+ attr_writer :participant_id
119
+
120
+ sig do
121
+ params(
122
+ identifier: String,
123
+ index: Integer,
124
+ status:
125
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result::Status::OrSymbol,
126
+ email: String,
127
+ message: String,
128
+ participant_id: String
129
+ ).returns(T.attached_class)
130
+ end
131
+ def self.new(
132
+ # The submitted participant ID or email address, echoed back as received.
133
+ identifier:,
134
+ # Zero-based position of this entry in the submitted `participants` array.
135
+ index:,
136
+ # Per-row outcome. `DELETED` — the participant was resolved and removed.
137
+ # `NOT_FOUND` — no participant matches the ID or email. `DUPLICATE` — the entry
138
+ # resolves to the same participant as an earlier entry in the same request.
139
+ # `ERROR` — the lookup or deletion failed for this row.
140
+ status:,
141
+ # The resolved participant's email address. Present on `DELETED` rows.
142
+ email: nil,
143
+ # Human-readable detail for `NOT_FOUND`, `DUPLICATE`, and `ERROR` rows.
144
+ message: nil,
145
+ # The resolved GrowSurf participant ID. Present when the entry resolved to a
146
+ # participant.
147
+ participant_id: nil
148
+ )
149
+ end
150
+
151
+ sig do
152
+ override.returns(
153
+ {
154
+ identifier: String,
155
+ index: Integer,
156
+ status:
157
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result::Status::TaggedSymbol,
158
+ email: String,
159
+ message: String,
160
+ participant_id: String
161
+ }
162
+ )
163
+ end
164
+ def to_hash
165
+ end
166
+
167
+ # Per-row outcome. `DELETED` — the participant was resolved and removed.
168
+ # `NOT_FOUND` — no participant matches the ID or email. `DUPLICATE` — the entry
169
+ # resolves to the same participant as an earlier entry in the same request.
170
+ # `ERROR` — the lookup or deletion failed for this row.
171
+ module Status
172
+ extend GrowsurfRuby::Internal::Type::Enum
173
+
174
+ TaggedSymbol =
175
+ T.type_alias do
176
+ T.all(
177
+ Symbol,
178
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result::Status
179
+ )
180
+ end
181
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
182
+
183
+ DELETED =
184
+ T.let(
185
+ :DELETED,
186
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result::Status::TaggedSymbol
187
+ )
188
+ NOT_FOUND =
189
+ T.let(
190
+ :NOT_FOUND,
191
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result::Status::TaggedSymbol
192
+ )
193
+ DUPLICATE =
194
+ T.let(
195
+ :DUPLICATE,
196
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result::Status::TaggedSymbol
197
+ )
198
+ ERROR =
199
+ T.let(
200
+ :ERROR,
201
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result::Status::TaggedSymbol
202
+ )
203
+
204
+ sig do
205
+ override.returns(
206
+ T::Array[
207
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Result::Status::TaggedSymbol
208
+ ]
209
+ )
210
+ end
211
+ def self.values
212
+ end
213
+ end
214
+ end
215
+
216
+ class Summary < GrowsurfRuby::Internal::Type::BaseModel
217
+ OrHash =
218
+ T.type_alias do
219
+ T.any(
220
+ GrowsurfRuby::Campaign::ParticipantBulkDeleteResponse::Summary,
221
+ GrowsurfRuby::Internal::AnyHash
222
+ )
223
+ end
224
+
225
+ # Entries that resolved to a participant and were deleted.
226
+ sig { returns(Integer) }
227
+ attr_accessor :deleted_count
228
+
229
+ # Entries that resolved to the same participant as an earlier entry.
230
+ sig { returns(Integer) }
231
+ attr_accessor :duplicate_count
232
+
233
+ # Entries that failed to look up or delete.
234
+ sig { returns(Integer) }
235
+ attr_accessor :error_count
236
+
237
+ # Entries that did not match any participant.
238
+ sig { returns(Integer) }
239
+ attr_accessor :not_found_count
240
+
241
+ # Number of entries submitted in this request.
242
+ sig { returns(Integer) }
243
+ attr_accessor :total
244
+
245
+ sig do
246
+ params(
247
+ deleted_count: Integer,
248
+ duplicate_count: Integer,
249
+ error_count: Integer,
250
+ not_found_count: Integer,
251
+ total: Integer
252
+ ).returns(T.attached_class)
253
+ end
254
+ def self.new(
255
+ # Entries that resolved to a participant and were deleted.
256
+ deleted_count:,
257
+ # Entries that resolved to the same participant as an earlier entry.
258
+ duplicate_count:,
259
+ # Entries that failed to look up or delete.
260
+ error_count:,
261
+ # Entries that did not match any participant.
262
+ not_found_count:,
263
+ # Number of entries submitted in this request.
264
+ total:
265
+ )
266
+ end
267
+
268
+ sig do
269
+ override.returns(
270
+ {
271
+ deleted_count: Integer,
272
+ duplicate_count: Integer,
273
+ error_count: Integer,
274
+ not_found_count: Integer,
275
+ total: Integer
276
+ }
277
+ )
278
+ end
279
+ def to_hash
280
+ end
281
+ end
282
+ end
283
+ end
284
+ end
285
+ end
@@ -0,0 +1,118 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class ParticipantEmailParams < GrowsurfRuby::Internal::Type::BaseModel
7
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
8
+ include GrowsurfRuby::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ GrowsurfRuby::Campaign::ParticipantEmailParams,
14
+ GrowsurfRuby::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :participant_id_or_email
23
+
24
+ # HTML body for a free-form email. You can personalize it with dynamic text,
25
+ # inserting `{{...}}` tokens like `{{firstName}}` or `{{shareUrl}}`. See
26
+ # [Guide to using dynamic text in GrowSurf emails](https://support.growsurf.com/article/213-guide-to-using-dynamic-text-in-growsurf-emails).
27
+ sig { returns(T.nilable(String)) }
28
+ attr_reader :body
29
+
30
+ sig { params(body: String).void }
31
+ attr_writer :body
32
+
33
+ # The program email template to send (template mode). Send the camelCase key.
34
+ # The valid types depend on the program type; `isEnabled` only controls automatic sends.
35
+ # Referral programs: `welcomeNonReferred`, `referralLinkViewedFirstTime`,
36
+ # `referralLinkUsed`, `referredSignup`, `welcomeReferred`, `goalAchieved`,
37
+ # `campaignEndedWinners`, `campaignEndedNonWinners`, `progressUpdateMonthly`.
38
+ # Affiliate programs: `welcomeNonReferred`, `referralLinkViewedFirstTime`,
39
+ # `referredSignup`, `commissionGenerated`, `commissionAdjusted`, `payoutPending`,
40
+ # `payoutSentSuccess`, `progressUpdateMonthly`. System/transactional types (login
41
+ # link, PayPal confirmation, tax) and the invite email cannot be sent.
42
+ sig { returns(T.nilable(String)) }
43
+ attr_reader :email_type
44
+
45
+ sig { params(email_type: String).void }
46
+ attr_writer :email_type
47
+
48
+ # Optional preheader text for a free-form email.
49
+ sig { returns(T.nilable(String)) }
50
+ attr_reader :preheader
51
+
52
+ sig { params(preheader: String).void }
53
+ attr_writer :preheader
54
+
55
+ # Subject line for a free-form email. Supports dynamic text (`{{...}}` tokens),
56
+ # the same as the body.
57
+ sig { returns(T.nilable(String)) }
58
+ attr_reader :subject
59
+
60
+ sig { params(subject: String).void }
61
+ attr_writer :subject
62
+
63
+ sig do
64
+ params(
65
+ id: String,
66
+ participant_id_or_email: String,
67
+ body: String,
68
+ email_type: String,
69
+ preheader: String,
70
+ subject: String,
71
+ request_options: GrowsurfRuby::RequestOptions::OrHash
72
+ ).returns(T.attached_class)
73
+ end
74
+ def self.new(
75
+ id:,
76
+ participant_id_or_email:,
77
+ # HTML body for a free-form email. You can personalize it with dynamic text,
78
+ # inserting `{{...}}` tokens like `{{firstName}}` or `{{shareUrl}}`. See
79
+ # [Guide to using dynamic text in GrowSurf emails](https://support.growsurf.com/article/213-guide-to-using-dynamic-text-in-growsurf-emails).
80
+ body: nil,
81
+ # The program email template to send (template mode). Send the camelCase key.
82
+ # The valid types depend on the program type; `isEnabled` only controls automatic sends.
83
+ # Referral programs: `welcomeNonReferred`, `referralLinkViewedFirstTime`,
84
+ # `referralLinkUsed`, `referredSignup`, `welcomeReferred`, `goalAchieved`,
85
+ # `campaignEndedWinners`, `campaignEndedNonWinners`, `progressUpdateMonthly`.
86
+ # Affiliate programs: `welcomeNonReferred`, `referralLinkViewedFirstTime`,
87
+ # `referredSignup`, `commissionGenerated`, `commissionAdjusted`, `payoutPending`,
88
+ # `payoutSentSuccess`, `progressUpdateMonthly`. System/transactional types (login
89
+ # link, PayPal confirmation, tax) and the invite email cannot be sent.
90
+ email_type: nil,
91
+ # Optional preheader text for a free-form email.
92
+ preheader: nil,
93
+ # Subject line for a free-form email. Supports dynamic text (`{{...}}` tokens),
94
+ # the same as the body.
95
+ subject: nil,
96
+ request_options: {}
97
+ )
98
+ end
99
+
100
+ sig do
101
+ override.returns(
102
+ {
103
+ id: String,
104
+ participant_id_or_email: String,
105
+ body: String,
106
+ email_type: String,
107
+ preheader: String,
108
+ subject: String,
109
+ request_options: GrowsurfRuby::RequestOptions
110
+ }
111
+ )
112
+ end
113
+ def to_hash
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,84 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class ParticipantEmailResponse < GrowsurfRuby::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ GrowsurfRuby::Models::Campaign::ParticipantEmailResponse,
11
+ GrowsurfRuby::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The email was accepted for delivery.
16
+ sig do
17
+ returns(
18
+ GrowsurfRuby::Campaign::ParticipantEmailResponse::Status::TaggedSymbol
19
+ )
20
+ end
21
+ attr_accessor :status
22
+
23
+ sig { returns(T::Boolean) }
24
+ attr_accessor :success
25
+
26
+ sig do
27
+ params(
28
+ status:
29
+ GrowsurfRuby::Campaign::ParticipantEmailResponse::Status::OrSymbol,
30
+ success: T::Boolean
31
+ ).returns(T.attached_class)
32
+ end
33
+ def self.new(
34
+ # The email was accepted for delivery.
35
+ status:,
36
+ success:
37
+ )
38
+ end
39
+
40
+ sig do
41
+ override.returns(
42
+ {
43
+ status:
44
+ GrowsurfRuby::Campaign::ParticipantEmailResponse::Status::TaggedSymbol,
45
+ success: T::Boolean
46
+ }
47
+ )
48
+ end
49
+ def to_hash
50
+ end
51
+
52
+ # The email was accepted for delivery.
53
+ module Status
54
+ extend GrowsurfRuby::Internal::Type::Enum
55
+
56
+ TaggedSymbol =
57
+ T.type_alias do
58
+ T.all(
59
+ Symbol,
60
+ GrowsurfRuby::Campaign::ParticipantEmailResponse::Status
61
+ )
62
+ end
63
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
64
+
65
+ QUEUED =
66
+ T.let(
67
+ :queued,
68
+ GrowsurfRuby::Campaign::ParticipantEmailResponse::Status::TaggedSymbol
69
+ )
70
+
71
+ sig do
72
+ override.returns(
73
+ T::Array[
74
+ GrowsurfRuby::Campaign::ParticipantEmailResponse::Status::TaggedSymbol
75
+ ]
76
+ )
77
+ end
78
+ def self.values
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,74 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class ParticipantListActivityLogsParams < GrowsurfRuby::Internal::Type::BaseModel
7
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
8
+ include GrowsurfRuby::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ GrowsurfRuby::Campaign::ParticipantListActivityLogsParams,
14
+ GrowsurfRuby::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :participant_id_or_email
23
+
24
+ # Number of logs to return (1–100, default 20).
25
+ sig { returns(T.nilable(Integer)) }
26
+ attr_reader :limit
27
+
28
+ sig { params(limit: Integer).void }
29
+ attr_writer :limit
30
+
31
+ # Number of logs to skip.
32
+ sig { returns(T.nilable(Integer)) }
33
+ attr_reader :offset
34
+
35
+ sig { params(offset: Integer).void }
36
+ attr_writer :offset
37
+
38
+ sig do
39
+ params(
40
+ id: String,
41
+ participant_id_or_email: String,
42
+ limit: Integer,
43
+ offset: Integer,
44
+ request_options: GrowsurfRuby::RequestOptions::OrHash
45
+ ).returns(T.attached_class)
46
+ end
47
+ def self.new(
48
+ id:,
49
+ participant_id_or_email:,
50
+ # Number of logs to return (1–100, default 20).
51
+ limit: nil,
52
+ # Number of logs to skip.
53
+ offset: nil,
54
+ request_options: {}
55
+ )
56
+ end
57
+
58
+ sig do
59
+ override.returns(
60
+ {
61
+ id: String,
62
+ participant_id_or_email: String,
63
+ limit: Integer,
64
+ offset: Integer,
65
+ request_options: GrowsurfRuby::RequestOptions
66
+ }
67
+ )
68
+ end
69
+ def to_hash
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end