growsurf-ruby 1.3.0 → 1.5.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 (142) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -0
  3. data/README.md +10 -7
  4. data/lib/growsurf_ruby/internal/transport/base_client.rb +6 -1
  5. data/lib/growsurf_ruby/internal/type/base_model.rb +26 -0
  6. data/lib/growsurf_ruby/internal/type/base_page.rb +6 -0
  7. data/lib/growsurf_ruby/models/account_create_response.rb +3 -3
  8. data/lib/growsurf_ruby/models/analytics_availability.rb +16 -0
  9. data/lib/growsurf_ruby/models/analytics_unavailable_reason.rb +20 -0
  10. data/lib/growsurf_ruby/models/campaign/delete_program_resource_response.rb +12 -0
  11. data/lib/growsurf_ruby/models/campaign/integration.rb +69 -0
  12. data/lib/growsurf_ruby/models/campaign/integration_list_response.rb +24 -0
  13. data/lib/growsurf_ruby/models/campaign/participant_activation_analytics.rb +75 -0
  14. data/lib/growsurf_ruby/models/campaign/participant_analytics_response.rb +11 -0
  15. data/lib/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rb +17 -17
  16. data/lib/growsurf_ruby/models/campaign/participant_record_transaction_params.rb +9 -1
  17. data/lib/growsurf_ruby/models/campaign/participant_refund_transaction_params.rb +17 -1
  18. data/lib/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rb +8 -8
  19. data/lib/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rb +15 -11
  20. data/lib/growsurf_ruby/models/campaign/participant_reward.rb +16 -3
  21. data/lib/growsurf_ruby/models/campaign/program_resource.rb +51 -0
  22. data/lib/growsurf_ruby/models/campaign/program_resource_create_params.rb +32 -0
  23. data/lib/growsurf_ruby/models/campaign/program_resource_delete_params.rb +14 -0
  24. data/lib/growsurf_ruby/models/campaign/program_resource_list_response.rb +12 -0
  25. data/lib/growsurf_ruby/models/campaign/program_resource_update_params.rb +35 -0
  26. data/lib/growsurf_ruby/models/campaign/program_resource_upload_result.rb +33 -0
  27. data/lib/growsurf_ruby/models/campaign/program_resource_upload_ticket.rb +26 -0
  28. data/lib/growsurf_ruby/models/campaign/program_resource_upload_ticket_params.rb +17 -0
  29. data/lib/growsurf_ruby/models/campaign/reward.rb +22 -1
  30. data/lib/growsurf_ruby/models/campaign/reward_create_params.rb +32 -9
  31. data/lib/growsurf_ruby/models/campaign/reward_update_params.rb +32 -9
  32. data/lib/growsurf_ruby/models/campaign.rb +25 -2
  33. data/lib/growsurf_ruby/models/campaign_activation_analytics_response.rb +186 -0
  34. data/lib/growsurf_ruby/models/campaign_create_params.rb +37 -1
  35. data/lib/growsurf_ruby/models/campaign_engagement_analytics.rb +174 -0
  36. data/lib/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rb +35 -0
  37. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_params.rb +37 -4
  38. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_response.rb +3 -0
  39. data/lib/growsurf_ruby/models/commission_structure.rb +19 -3
  40. data/lib/growsurf_ruby/models/participant_commission_list.rb +24 -6
  41. data/lib/growsurf_ruby/models/participant_payout_list.rb +5 -5
  42. data/lib/growsurf_ruby/models.rb +7 -0
  43. data/lib/growsurf_ruby/resources/account.rb +17 -11
  44. data/lib/growsurf_ruby/resources/campaign/design.rb +11 -5
  45. data/lib/growsurf_ruby/resources/campaign/emails.rb +2 -1
  46. data/lib/growsurf_ruby/resources/campaign/integrations.rb +41 -0
  47. data/lib/growsurf_ruby/resources/campaign/participant.rb +28 -25
  48. data/lib/growsurf_ruby/resources/campaign/program_resources.rb +112 -0
  49. data/lib/growsurf_ruby/resources/campaign/rewards.rb +12 -6
  50. data/lib/growsurf_ruby/resources/campaign.rb +53 -7
  51. data/lib/growsurf_ruby/resources/team.rb +7 -5
  52. data/lib/growsurf_ruby/version.rb +1 -1
  53. data/lib/growsurf_ruby.rb +19 -0
  54. data/rbi/growsurf_ruby/internal/type/base_model.rbi +10 -0
  55. data/rbi/growsurf_ruby/internal/type/base_page.rbi +3 -0
  56. data/rbi/growsurf_ruby/models/analytics_availability.rbi +19 -0
  57. data/rbi/growsurf_ruby/models/analytics_unavailable_reason.rbi +23 -0
  58. data/rbi/growsurf_ruby/models/campaign/delete_program_resource_response.rbi +33 -0
  59. data/rbi/growsurf_ruby/models/campaign/integration.rbi +93 -0
  60. data/rbi/growsurf_ruby/models/campaign/integration_list_response.rbi +46 -0
  61. data/rbi/growsurf_ruby/models/campaign/participant_activation_analytics.rbi +133 -0
  62. data/rbi/growsurf_ruby/models/campaign/participant_analytics_response.rbi +35 -0
  63. data/rbi/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rbi +17 -23
  64. data/rbi/growsurf_ruby/models/campaign/participant_record_transaction_params.rbi +18 -0
  65. data/rbi/growsurf_ruby/models/campaign/participant_refund_transaction_params.rbi +18 -0
  66. data/rbi/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rbi +7 -9
  67. data/rbi/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rbi +16 -10
  68. data/rbi/growsurf_ruby/models/campaign/participant_reward.rbi +29 -6
  69. data/rbi/growsurf_ruby/models/campaign/program_resource.rbi +186 -0
  70. data/rbi/growsurf_ruby/models/campaign/program_resource_create_params.rbi +95 -0
  71. data/rbi/growsurf_ruby/models/campaign/program_resource_delete_params.rbi +37 -0
  72. data/rbi/growsurf_ruby/models/campaign/program_resource_list_response.rbi +29 -0
  73. data/rbi/growsurf_ruby/models/campaign/program_resource_update_params.rbi +105 -0
  74. data/rbi/growsurf_ruby/models/campaign/program_resource_upload_result.rbi +94 -0
  75. data/rbi/growsurf_ruby/models/campaign/program_resource_upload_ticket.rbi +57 -0
  76. data/rbi/growsurf_ruby/models/campaign/program_resource_upload_ticket_params.rbi +53 -0
  77. data/rbi/growsurf_ruby/models/campaign/reward.rbi +55 -0
  78. data/rbi/growsurf_ruby/models/campaign/reward_create_params.rbi +97 -24
  79. data/rbi/growsurf_ruby/models/campaign/reward_update_params.rbi +97 -24
  80. data/rbi/growsurf_ruby/models/campaign.rbi +52 -3
  81. data/rbi/growsurf_ruby/models/campaign_activation_analytics_response.rbi +325 -0
  82. data/rbi/growsurf_ruby/models/campaign_create_params.rbi +91 -0
  83. data/rbi/growsurf_ruby/models/campaign_engagement_analytics.rbi +369 -0
  84. data/rbi/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rbi +59 -0
  85. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_params.rbi +56 -3
  86. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_response.rbi +27 -7
  87. data/rbi/growsurf_ruby/models/commission_structure.rbi +36 -3
  88. data/rbi/growsurf_ruby/models/participant_commission_list.rbi +63 -15
  89. data/rbi/growsurf_ruby/models/participant_payout_list.rbi +15 -15
  90. data/rbi/growsurf_ruby/models.rbi +7 -0
  91. data/rbi/growsurf_ruby/resources/account.rbi +9 -6
  92. data/rbi/growsurf_ruby/resources/campaign/design.rbi +32 -4
  93. data/rbi/growsurf_ruby/resources/campaign/emails.rbi +2 -1
  94. data/rbi/growsurf_ruby/resources/campaign/integrations.rbi +35 -0
  95. data/rbi/growsurf_ruby/resources/campaign/participant.rbi +38 -24
  96. data/rbi/growsurf_ruby/resources/campaign/program_resources.rbi +116 -0
  97. data/rbi/growsurf_ruby/resources/campaign/rewards.rbi +35 -16
  98. data/rbi/growsurf_ruby/resources/campaign.rbi +53 -5
  99. data/rbi/growsurf_ruby/resources/team.rbi +7 -5
  100. data/sig/growsurf_ruby/internal/type/base_model.rbs +6 -0
  101. data/sig/growsurf_ruby/internal/type/base_page.rbs +2 -0
  102. data/sig/growsurf_ruby/models/analytics_availability.rbs +15 -0
  103. data/sig/growsurf_ruby/models/analytics_unavailable_reason.rbs +26 -0
  104. data/sig/growsurf_ruby/models/campaign/delete_program_resource_response.rbs +14 -0
  105. data/sig/growsurf_ruby/models/campaign/integration.rbs +47 -0
  106. data/sig/growsurf_ruby/models/campaign/integration_list_response.rbs +20 -0
  107. data/sig/growsurf_ruby/models/campaign/participant_activation_analytics.rbs +96 -0
  108. data/sig/growsurf_ruby/models/campaign/participant_analytics_response.rbs +22 -1
  109. data/sig/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rbs +17 -22
  110. data/sig/growsurf_ruby/models/campaign/participant_record_transaction_params.rbs +15 -1
  111. data/sig/growsurf_ruby/models/campaign/participant_refund_transaction_params.rbs +15 -1
  112. data/sig/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rbs +8 -10
  113. data/sig/growsurf_ruby/models/campaign/participant_reward.rbs +24 -9
  114. data/sig/growsurf_ruby/models/campaign/program_resource.rbs +94 -0
  115. data/sig/growsurf_ruby/models/campaign/program_resource_create_params.rbs +45 -0
  116. data/sig/growsurf_ruby/models/campaign/program_resource_delete_params.rbs +22 -0
  117. data/sig/growsurf_ruby/models/campaign/program_resource_list_response.rbs +14 -0
  118. data/sig/growsurf_ruby/models/campaign/program_resource_update_params.rbs +48 -0
  119. data/sig/growsurf_ruby/models/campaign/program_resource_upload_result.rbs +58 -0
  120. data/sig/growsurf_ruby/models/campaign/program_resource_upload_ticket.rbs +29 -0
  121. data/sig/growsurf_ruby/models/campaign/program_resource_upload_ticket_params.rbs +29 -0
  122. data/sig/growsurf_ruby/models/campaign/reward.rbs +16 -0
  123. data/sig/growsurf_ruby/models/campaign/reward_create_params.rbs +54 -34
  124. data/sig/growsurf_ruby/models/campaign/reward_update_params.rbs +54 -34
  125. data/sig/growsurf_ruby/models/campaign.rbs +23 -5
  126. data/sig/growsurf_ruby/models/campaign_activation_analytics_response.rbs +202 -0
  127. data/sig/growsurf_ruby/models/campaign_create_params.rbs +29 -0
  128. data/sig/growsurf_ruby/models/campaign_engagement_analytics.rbs +186 -0
  129. data/sig/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rbs +45 -0
  130. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_params.rbs +30 -1
  131. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_response.rbs +21 -3
  132. data/sig/growsurf_ruby/models/commission_structure.rbs +16 -4
  133. data/sig/growsurf_ruby/models/participant_commission_list.rbs +36 -20
  134. data/sig/growsurf_ruby/models/participant_payout_list.rbs +20 -20
  135. data/sig/growsurf_ruby/models.rbs +6 -0
  136. data/sig/growsurf_ruby/resources/campaign/design.rbs +19 -0
  137. data/sig/growsurf_ruby/resources/campaign/integrations.rbs +14 -0
  138. data/sig/growsurf_ruby/resources/campaign/participant.rbs +4 -0
  139. data/sig/growsurf_ruby/resources/campaign/program_resources.rbs +58 -0
  140. data/sig/growsurf_ruby/resources/campaign/rewards.rbs +14 -12
  141. data/sig/growsurf_ruby/resources/campaign.rbs +17 -0
  142. metadata +59 -2
@@ -44,7 +44,7 @@ module GrowsurfRuby
44
44
  sig { returns(T.nilable(String)) }
45
45
  attr_reader :coupon_code
46
46
 
47
- sig { params(coupon_code: String).void }
47
+ sig { params(coupon_code: T.nilable(String)).void }
48
48
  attr_writer :coupon_code
49
49
 
50
50
  sig { returns(T.nilable(String)) }
@@ -53,10 +53,31 @@ module GrowsurfRuby
53
53
  sig { params(description: String).void }
54
54
  attr_writer :description
55
55
 
56
+ # The referral event that earns this Campaign Reward. Use `LEAD` or
57
+ # `CONVERSION`. `LEAD` requires the program installation's `referralTrigger` to
58
+ # be `CUSTOM`. This field applies only to `SINGLE_SIDED`, `DOUBLE_SIDED`, and
59
+ # `MILESTONE` rewards. When omitted, it defaults to `CONVERSION`.
60
+ sig do
61
+ returns(
62
+ T.nilable(
63
+ GrowsurfRuby::Models::Campaign::RewardCreateParams::Event::OrSymbol
64
+ )
65
+ )
66
+ end
67
+ attr_reader :event
68
+
69
+ sig do
70
+ params(
71
+ event:
72
+ GrowsurfRuby::Models::Campaign::RewardCreateParams::Event::OrSymbol
73
+ ).void
74
+ end
75
+ attr_writer :event
76
+
56
77
  sig { returns(T.nilable(String)) }
57
78
  attr_reader :image_url
58
79
 
59
- sig { params(image_url: String).void }
80
+ sig { params(image_url: T.nilable(String)).void }
60
81
  attr_writer :image_url
61
82
 
62
83
  # Whether the reward can be earned an unlimited number of times. Defaults to
@@ -110,7 +131,7 @@ module GrowsurfRuby
110
131
  sig { returns(T.nilable(String)) }
111
132
  attr_reader :next_milestone_prefix
112
133
 
113
- sig { params(next_milestone_prefix: String).void }
134
+ sig { params(next_milestone_prefix: T.nilable(String)).void }
114
135
  attr_writer :next_milestone_prefix
115
136
 
116
137
  # Text shown after a participant's referral count in milestone-progress copy.
@@ -118,7 +139,7 @@ module GrowsurfRuby
118
139
  sig { returns(T.nilable(String)) }
119
140
  attr_reader :next_milestone_suffix
120
141
 
121
- sig { params(next_milestone_suffix: String).void }
142
+ sig { params(next_milestone_suffix: T.nilable(String)).void }
122
143
  attr_writer :next_milestone_suffix
123
144
 
124
145
  # The number of winners (`LEADERBOARD` rewards only). With `limitDuration`
@@ -142,13 +163,13 @@ module GrowsurfRuby
142
163
  sig { returns(T.nilable(String)) }
143
164
  attr_reader :referral_coupon_code
144
165
 
145
- sig { params(referral_coupon_code: String).void }
166
+ sig { params(referral_coupon_code: T.nilable(String)).void }
146
167
  attr_writer :referral_coupon_code
147
168
 
148
169
  sig { returns(T.nilable(String)) }
149
170
  attr_reader :referral_description
150
171
 
151
- sig { params(referral_description: String).void }
172
+ sig { params(referral_description: T.nilable(String)).void }
152
173
  attr_writer :referral_description
153
174
 
154
175
  sig { returns(T.nilable(T::Boolean)) }
@@ -163,7 +184,10 @@ module GrowsurfRuby
163
184
  attr_reader :referred_value
164
185
 
165
186
  sig do
166
- params(referred_value: GrowsurfRuby::RewardTaxValuation::OrHash).void
187
+ params(
188
+ referred_value:
189
+ T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash)
190
+ ).void
167
191
  end
168
192
  attr_writer :referred_value
169
193
 
@@ -178,7 +202,11 @@ module GrowsurfRuby
178
202
  sig { returns(T.nilable(GrowsurfRuby::RewardTaxValuation)) }
179
203
  attr_reader :value
180
204
 
181
- sig { params(value: GrowsurfRuby::RewardTaxValuation::OrHash).void }
205
+ sig do
206
+ params(
207
+ value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash)
208
+ ).void
209
+ end
182
210
  attr_writer :value
183
211
 
184
212
  sig do
@@ -187,25 +215,28 @@ module GrowsurfRuby
187
215
  GrowsurfRuby::Models::Campaign::RewardCreateParams::Type::OrSymbol,
188
216
  commission_structure: GrowsurfRuby::CommissionStructure::OrHash,
189
217
  conversions_required: Integer,
190
- coupon_code: String,
218
+ coupon_code: T.nilable(String),
191
219
  description: String,
192
- image_url: String,
220
+ event:
221
+ GrowsurfRuby::Models::Campaign::RewardCreateParams::Event::OrSymbol,
222
+ image_url: T.nilable(String),
193
223
  is_unlimited: T::Boolean,
194
224
  is_visible: T::Boolean,
195
225
  limit: Integer,
196
226
  limit_duration:
197
227
  GrowsurfRuby::Models::Campaign::RewardCreateParams::LimitDuration::OrSymbol,
198
228
  metadata: T::Hash[Symbol, T.anything],
199
- next_milestone_prefix: String,
200
- next_milestone_suffix: String,
229
+ next_milestone_prefix: T.nilable(String),
230
+ next_milestone_suffix: T.nilable(String),
201
231
  number_of_winners: Integer,
202
232
  order: Integer,
203
- referral_coupon_code: String,
204
- referral_description: String,
233
+ referral_coupon_code: T.nilable(String),
234
+ referral_description: T.nilable(String),
205
235
  referred_reward_upfront: T::Boolean,
206
- referred_value: GrowsurfRuby::RewardTaxValuation::OrHash,
236
+ referred_value:
237
+ T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash),
207
238
  title: String,
208
- value: GrowsurfRuby::RewardTaxValuation::OrHash,
239
+ value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash),
209
240
  request_options: GrowsurfRuby::RequestOptions::OrHash
210
241
  ).returns(T.attached_class)
211
242
  end
@@ -218,6 +249,11 @@ module GrowsurfRuby
218
249
  # issued coupon when one exists.
219
250
  coupon_code: nil,
220
251
  description: nil,
252
+ # The referral event that earns this Campaign Reward. Use `LEAD` or
253
+ # `CONVERSION`. `LEAD` requires the program installation's `referralTrigger` to
254
+ # be `CUSTOM`. This field applies only to `SINGLE_SIDED`, `DOUBLE_SIDED`, and
255
+ # `MILESTONE` rewards. When omitted, it defaults to `CONVERSION`.
256
+ event: nil,
221
257
  image_url: nil,
222
258
  # Whether the reward can be earned an unlimited number of times. Defaults to
223
259
  # `true`, except `MILESTONE` rewards, which can only be earned once.
@@ -264,25 +300,28 @@ module GrowsurfRuby
264
300
  GrowsurfRuby::Models::Campaign::RewardCreateParams::Type::OrSymbol,
265
301
  commission_structure: GrowsurfRuby::CommissionStructure::OrHash,
266
302
  conversions_required: Integer,
267
- coupon_code: String,
303
+ coupon_code: T.nilable(String),
268
304
  description: String,
269
- image_url: String,
305
+ event:
306
+ GrowsurfRuby::Models::Campaign::RewardCreateParams::Event::OrSymbol,
307
+ image_url: T.nilable(String),
270
308
  is_unlimited: T::Boolean,
271
309
  is_visible: T::Boolean,
272
310
  limit: Integer,
273
311
  limit_duration:
274
312
  GrowsurfRuby::Models::Campaign::RewardCreateParams::LimitDuration::OrSymbol,
275
313
  metadata: T::Hash[Symbol, T.anything],
276
- next_milestone_prefix: String,
277
- next_milestone_suffix: String,
314
+ next_milestone_prefix: T.nilable(String),
315
+ next_milestone_suffix: T.nilable(String),
278
316
  number_of_winners: Integer,
279
317
  order: Integer,
280
- referral_coupon_code: String,
281
- referral_description: String,
318
+ referral_coupon_code: T.nilable(String),
319
+ referral_description: T.nilable(String),
282
320
  referred_reward_upfront: T::Boolean,
283
- referred_value: GrowsurfRuby::RewardTaxValuation::OrHash,
321
+ referred_value:
322
+ T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash),
284
323
  title: String,
285
- value: GrowsurfRuby::RewardTaxValuation::OrHash,
324
+ value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash),
286
325
  request_options: GrowsurfRuby::RequestOptions
287
326
  }
288
327
  )
@@ -339,6 +378,40 @@ module GrowsurfRuby
339
378
  end
340
379
  end
341
380
 
381
+ module Event
382
+ extend GrowsurfRuby::Internal::Type::Enum
383
+
384
+ TaggedSymbol =
385
+ T.type_alias do
386
+ T.all(
387
+ Symbol,
388
+ GrowsurfRuby::Models::Campaign::RewardCreateParams::Event
389
+ )
390
+ end
391
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
392
+
393
+ LEAD =
394
+ T.let(
395
+ :LEAD,
396
+ GrowsurfRuby::Models::Campaign::RewardCreateParams::Event::TaggedSymbol
397
+ )
398
+ CONVERSION =
399
+ T.let(
400
+ :CONVERSION,
401
+ GrowsurfRuby::Models::Campaign::RewardCreateParams::Event::TaggedSymbol
402
+ )
403
+
404
+ sig do
405
+ override.returns(
406
+ T::Array[
407
+ GrowsurfRuby::Models::Campaign::RewardCreateParams::Event::TaggedSymbol
408
+ ]
409
+ )
410
+ end
411
+ def self.values
412
+ end
413
+ end
414
+
342
415
  module LimitDuration
343
416
  extend GrowsurfRuby::Internal::Type::Enum
344
417
 
@@ -43,7 +43,7 @@ module GrowsurfRuby
43
43
  sig { returns(T.nilable(String)) }
44
44
  attr_reader :coupon_code
45
45
 
46
- sig { params(coupon_code: String).void }
46
+ sig { params(coupon_code: T.nilable(String)).void }
47
47
  attr_writer :coupon_code
48
48
 
49
49
  sig { returns(T.nilable(String)) }
@@ -52,10 +52,31 @@ module GrowsurfRuby
52
52
  sig { params(description: String).void }
53
53
  attr_writer :description
54
54
 
55
+ # The referral event that earns this Campaign Reward. Use `LEAD` or
56
+ # `CONVERSION`. `LEAD` requires the program installation's `referralTrigger` to
57
+ # be `CUSTOM`. This field applies only to `SINGLE_SIDED`, `DOUBLE_SIDED`, and
58
+ # `MILESTONE` rewards. When omitted, the stored event is preserved.
59
+ sig do
60
+ returns(
61
+ T.nilable(
62
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::Event::OrSymbol
63
+ )
64
+ )
65
+ end
66
+ attr_reader :event
67
+
68
+ sig do
69
+ params(
70
+ event:
71
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::Event::OrSymbol
72
+ ).void
73
+ end
74
+ attr_writer :event
75
+
55
76
  sig { returns(T.nilable(String)) }
56
77
  attr_reader :image_url
57
78
 
58
- sig { params(image_url: String).void }
79
+ sig { params(image_url: T.nilable(String)).void }
59
80
  attr_writer :image_url
60
81
 
61
82
  # Whether the reward can be earned an unlimited number of times. Defaults to
@@ -109,7 +130,7 @@ module GrowsurfRuby
109
130
  sig { returns(T.nilable(String)) }
110
131
  attr_reader :next_milestone_prefix
111
132
 
112
- sig { params(next_milestone_prefix: String).void }
133
+ sig { params(next_milestone_prefix: T.nilable(String)).void }
113
134
  attr_writer :next_milestone_prefix
114
135
 
115
136
  # Text shown after a participant's referral count in milestone-progress copy.
@@ -117,7 +138,7 @@ module GrowsurfRuby
117
138
  sig { returns(T.nilable(String)) }
118
139
  attr_reader :next_milestone_suffix
119
140
 
120
- sig { params(next_milestone_suffix: String).void }
141
+ sig { params(next_milestone_suffix: T.nilable(String)).void }
121
142
  attr_writer :next_milestone_suffix
122
143
 
123
144
  # The number of winners (`LEADERBOARD` rewards only). With `limitDuration`
@@ -141,13 +162,13 @@ module GrowsurfRuby
141
162
  sig { returns(T.nilable(String)) }
142
163
  attr_reader :referral_coupon_code
143
164
 
144
- sig { params(referral_coupon_code: String).void }
165
+ sig { params(referral_coupon_code: T.nilable(String)).void }
145
166
  attr_writer :referral_coupon_code
146
167
 
147
168
  sig { returns(T.nilable(String)) }
148
169
  attr_reader :referral_description
149
170
 
150
- sig { params(referral_description: String).void }
171
+ sig { params(referral_description: T.nilable(String)).void }
151
172
  attr_writer :referral_description
152
173
 
153
174
  sig { returns(T.nilable(T::Boolean)) }
@@ -162,7 +183,10 @@ module GrowsurfRuby
162
183
  attr_reader :referred_value
163
184
 
164
185
  sig do
165
- params(referred_value: GrowsurfRuby::RewardTaxValuation::OrHash).void
186
+ params(
187
+ referred_value:
188
+ T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash)
189
+ ).void
166
190
  end
167
191
  attr_writer :referred_value
168
192
 
@@ -177,7 +201,11 @@ module GrowsurfRuby
177
201
  sig { returns(T.nilable(GrowsurfRuby::RewardTaxValuation)) }
178
202
  attr_reader :value
179
203
 
180
- sig { params(value: GrowsurfRuby::RewardTaxValuation::OrHash).void }
204
+ sig do
205
+ params(
206
+ value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash)
207
+ ).void
208
+ end
181
209
  attr_writer :value
182
210
 
183
211
  sig do
@@ -186,25 +214,28 @@ module GrowsurfRuby
186
214
  campaign_reward_id: String,
187
215
  commission_structure: GrowsurfRuby::CommissionStructure::OrHash,
188
216
  conversions_required: Integer,
189
- coupon_code: String,
217
+ coupon_code: T.nilable(String),
190
218
  description: String,
191
- image_url: String,
219
+ event:
220
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::Event::OrSymbol,
221
+ image_url: T.nilable(String),
192
222
  is_unlimited: T::Boolean,
193
223
  is_visible: T::Boolean,
194
224
  limit: Integer,
195
225
  limit_duration:
196
226
  GrowsurfRuby::Models::Campaign::RewardUpdateParams::LimitDuration::OrSymbol,
197
227
  metadata: T::Hash[Symbol, T.anything],
198
- next_milestone_prefix: String,
199
- next_milestone_suffix: String,
228
+ next_milestone_prefix: T.nilable(String),
229
+ next_milestone_suffix: T.nilable(String),
200
230
  number_of_winners: Integer,
201
231
  order: Integer,
202
- referral_coupon_code: String,
203
- referral_description: String,
232
+ referral_coupon_code: T.nilable(String),
233
+ referral_description: T.nilable(String),
204
234
  referred_reward_upfront: T::Boolean,
205
- referred_value: GrowsurfRuby::RewardTaxValuation::OrHash,
235
+ referred_value:
236
+ T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash),
206
237
  title: String,
207
- value: GrowsurfRuby::RewardTaxValuation::OrHash,
238
+ value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash),
208
239
  request_options: GrowsurfRuby::RequestOptions::OrHash
209
240
  ).returns(T.attached_class)
210
241
  end
@@ -218,6 +249,11 @@ module GrowsurfRuby
218
249
  # issued coupon when one exists.
219
250
  coupon_code: nil,
220
251
  description: nil,
252
+ # The referral event that earns this Campaign Reward. Use `LEAD` or
253
+ # `CONVERSION`. `LEAD` requires the program installation's `referralTrigger` to
254
+ # be `CUSTOM`. This field applies only to `SINGLE_SIDED`, `DOUBLE_SIDED`, and
255
+ # `MILESTONE` rewards. When omitted, the stored event is preserved.
256
+ event: nil,
221
257
  image_url: nil,
222
258
  # Whether the reward can be earned an unlimited number of times. Defaults to
223
259
  # `true`, except `MILESTONE` rewards, which can only be earned once.
@@ -264,25 +300,28 @@ module GrowsurfRuby
264
300
  campaign_reward_id: String,
265
301
  commission_structure: GrowsurfRuby::CommissionStructure::OrHash,
266
302
  conversions_required: Integer,
267
- coupon_code: String,
303
+ coupon_code: T.nilable(String),
268
304
  description: String,
269
- image_url: String,
305
+ event:
306
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::Event::OrSymbol,
307
+ image_url: T.nilable(String),
270
308
  is_unlimited: T::Boolean,
271
309
  is_visible: T::Boolean,
272
310
  limit: Integer,
273
311
  limit_duration:
274
312
  GrowsurfRuby::Models::Campaign::RewardUpdateParams::LimitDuration::OrSymbol,
275
313
  metadata: T::Hash[Symbol, T.anything],
276
- next_milestone_prefix: String,
277
- next_milestone_suffix: String,
314
+ next_milestone_prefix: T.nilable(String),
315
+ next_milestone_suffix: T.nilable(String),
278
316
  number_of_winners: Integer,
279
317
  order: Integer,
280
- referral_coupon_code: String,
281
- referral_description: String,
318
+ referral_coupon_code: T.nilable(String),
319
+ referral_description: T.nilable(String),
282
320
  referred_reward_upfront: T::Boolean,
283
- referred_value: GrowsurfRuby::RewardTaxValuation::OrHash,
321
+ referred_value:
322
+ T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash),
284
323
  title: String,
285
- value: GrowsurfRuby::RewardTaxValuation::OrHash,
324
+ value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash),
286
325
  request_options: GrowsurfRuby::RequestOptions
287
326
  }
288
327
  )
@@ -290,6 +329,40 @@ module GrowsurfRuby
290
329
  def to_hash
291
330
  end
292
331
 
332
+ module Event
333
+ extend GrowsurfRuby::Internal::Type::Enum
334
+
335
+ TaggedSymbol =
336
+ T.type_alias do
337
+ T.all(
338
+ Symbol,
339
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::Event
340
+ )
341
+ end
342
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
343
+
344
+ LEAD =
345
+ T.let(
346
+ :LEAD,
347
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::Event::TaggedSymbol
348
+ )
349
+ CONVERSION =
350
+ T.let(
351
+ :CONVERSION,
352
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::Event::TaggedSymbol
353
+ )
354
+
355
+ sig do
356
+ override.returns(
357
+ T::Array[
358
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::Event::TaggedSymbol
359
+ ]
360
+ )
361
+ end
362
+ def self.values
363
+ end
364
+ end
365
+
293
366
  module LimitDuration
294
367
  extend GrowsurfRuby::Internal::Type::Enum
295
368
 
@@ -41,7 +41,7 @@ module GrowsurfRuby
41
41
  sig { returns(T.nilable(String)) }
42
42
  attr_reader :currency_iso
43
43
 
44
- sig { params(currency_iso: String).void }
44
+ sig { params(currency_iso: T.nilable(String)).void }
45
45
  attr_writer :currency_iso
46
46
 
47
47
  sig do
@@ -56,7 +56,7 @@ module GrowsurfRuby
56
56
  status: GrowsurfRuby::CampaignAPI::Status::OrSymbol,
57
57
  type: GrowsurfRuby::CampaignAPI::Type::OrSymbol,
58
58
  winner_count: Integer,
59
- currency_iso: String
59
+ currency_iso: T.nilable(String)
60
60
  ).returns(T.attached_class)
61
61
  end
62
62
  def self.new(
@@ -87,7 +87,7 @@ module GrowsurfRuby
87
87
  status: GrowsurfRuby::CampaignAPI::Status::TaggedSymbol,
88
88
  type: GrowsurfRuby::CampaignAPI::Type::TaggedSymbol,
89
89
  winner_count: Integer,
90
- currency_iso: String
90
+ currency_iso: T.nilable(String)
91
91
  }
92
92
  )
93
93
  end
@@ -139,6 +139,16 @@ module GrowsurfRuby
139
139
  sig { returns(T.nilable(String)) }
140
140
  attr_accessor :description
141
141
 
142
+ # The referral event that earns this Campaign Reward. Present only for
143
+ # `SINGLE_SIDED`, `DOUBLE_SIDED`, and `MILESTONE` rewards. Legacy Campaign
144
+ # Rewards return `CONVERSION`.
145
+ sig do
146
+ returns(
147
+ T.nilable(GrowsurfRuby::CampaignAPI::Reward::Event::TaggedSymbol)
148
+ )
149
+ end
150
+ attr_accessor :event
151
+
142
152
  sig { returns(T.nilable(String)) }
143
153
  attr_accessor :image_url
144
154
 
@@ -221,6 +231,8 @@ module GrowsurfRuby
221
231
  conversions_required: T.nilable(Integer),
222
232
  coupon_code: T.nilable(String),
223
233
  description: T.nilable(String),
234
+ event:
235
+ T.nilable(GrowsurfRuby::CampaignAPI::Reward::Event::OrSymbol),
224
236
  image_url: T.nilable(String),
225
237
  limit: T.nilable(Integer),
226
238
  limit_duration:
@@ -251,6 +263,10 @@ module GrowsurfRuby
251
263
  # issued coupon when one exists.
252
264
  coupon_code: nil,
253
265
  description: nil,
266
+ # The referral event that earns this Campaign Reward. Present only for
267
+ # `SINGLE_SIDED`, `DOUBLE_SIDED`, and `MILESTONE` rewards. Legacy Campaign
268
+ # Rewards return `CONVERSION`.
269
+ event: nil,
254
270
  image_url: nil,
255
271
  # `-1` represents an unlimited reward in REST responses.
256
272
  limit: nil,
@@ -290,6 +306,10 @@ module GrowsurfRuby
290
306
  conversions_required: T.nilable(Integer),
291
307
  coupon_code: T.nilable(String),
292
308
  description: T.nilable(String),
309
+ event:
310
+ T.nilable(
311
+ GrowsurfRuby::CampaignAPI::Reward::Event::TaggedSymbol
312
+ ),
293
313
  image_url: T.nilable(String),
294
314
  limit: T.nilable(Integer),
295
315
  limit_duration:
@@ -355,6 +375,32 @@ module GrowsurfRuby
355
375
  end
356
376
  end
357
377
 
378
+ module Event
379
+ extend GrowsurfRuby::Internal::Type::Enum
380
+
381
+ TaggedSymbol =
382
+ T.type_alias do
383
+ T.all(Symbol, GrowsurfRuby::CampaignAPI::Reward::Event)
384
+ end
385
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
386
+
387
+ LEAD =
388
+ T.let(:LEAD, GrowsurfRuby::CampaignAPI::Reward::Event::TaggedSymbol)
389
+ CONVERSION =
390
+ T.let(
391
+ :CONVERSION,
392
+ GrowsurfRuby::CampaignAPI::Reward::Event::TaggedSymbol
393
+ )
394
+
395
+ sig do
396
+ override.returns(
397
+ T::Array[GrowsurfRuby::CampaignAPI::Reward::Event::TaggedSymbol]
398
+ )
399
+ end
400
+ def self.values
401
+ end
402
+ end
403
+
358
404
  module LimitDuration
359
405
  extend GrowsurfRuby::Internal::Type::Enum
360
406
 
@@ -395,10 +441,13 @@ module GrowsurfRuby
395
441
  OrSymbol = T.type_alias { T.any(Symbol, String) }
396
442
 
397
443
  DRAFT = T.let(:DRAFT, GrowsurfRuby::CampaignAPI::Status::TaggedSymbol)
444
+ PENDING = T.let(:PENDING, GrowsurfRuby::CampaignAPI::Status::TaggedSymbol)
398
445
  IN_PROGRESS =
399
446
  T.let(:IN_PROGRESS, GrowsurfRuby::CampaignAPI::Status::TaggedSymbol)
400
447
  COMPLETE =
401
448
  T.let(:COMPLETE, GrowsurfRuby::CampaignAPI::Status::TaggedSymbol)
449
+ CANCELLED =
450
+ T.let(:CANCELLED, GrowsurfRuby::CampaignAPI::Status::TaggedSymbol)
402
451
  DELETED =
403
452
  T.let(:DELETED, GrowsurfRuby::CampaignAPI::Status::TaggedSymbol)
404
453