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
@@ -0,0 +1,369 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ class CampaignEngagementAnalytics < GrowsurfRuby::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ GrowsurfRuby::Models::CampaignEngagementAnalytics,
10
+ GrowsurfRuby::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(T.nilable(Integer)) }
15
+ attr_accessor :coverage_start_at
16
+
17
+ sig { returns(Integer) }
18
+ attr_accessor :metric_contract_version
19
+
20
+ sig { returns(ProgramType::OrSymbol) }
21
+ attr_accessor :program_type
22
+
23
+ sig { returns(String) }
24
+ attr_accessor :timezone
25
+
26
+ sig { returns(Interval::OrSymbol) }
27
+ attr_accessor :interval
28
+
29
+ sig { returns(PlatformFilter) }
30
+ attr_accessor :platform
31
+
32
+ sig { returns(Period) }
33
+ attr_accessor :period
34
+
35
+ sig { returns(GrowsurfRuby::Models::AnalyticsAvailability::OrSymbol) }
36
+ attr_accessor :state
37
+
38
+ sig do
39
+ returns(
40
+ T.nilable(GrowsurfRuby::Models::AnalyticsUnavailableReason::OrSymbol)
41
+ )
42
+ end
43
+ attr_accessor :reason
44
+
45
+ sig { returns(Totals) }
46
+ attr_accessor :totals
47
+
48
+ sig { returns(PreviousPeriod) }
49
+ attr_accessor :previous_period
50
+
51
+ sig { returns(Comparison) }
52
+ attr_accessor :comparison
53
+
54
+ sig { returns(T::Array[SeriesPoint]) }
55
+ attr_accessor :series
56
+
57
+ sig { returns(Breakdowns) }
58
+ attr_accessor :breakdowns
59
+
60
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
61
+ def self.new(**kwargs)
62
+ end
63
+
64
+ module ProgramType
65
+ extend GrowsurfRuby::Internal::Type::Enum
66
+
67
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
68
+ REFERRAL = T.let(:REFERRAL, Symbol)
69
+ AFFILIATE = T.let(:AFFILIATE, Symbol)
70
+ sig { override.returns(T::Array[Symbol]) }
71
+ def self.values
72
+ end
73
+ end
74
+
75
+ module Interval
76
+ extend GrowsurfRuby::Internal::Type::Enum
77
+
78
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
79
+ DAY = T.let(:day, Symbol)
80
+ WEEK = T.let(:week, Symbol)
81
+ MONTH = T.let(:month, Symbol)
82
+ sig { override.returns(T::Array[Symbol]) }
83
+ def self.values
84
+ end
85
+ end
86
+
87
+ module Platform
88
+ extend GrowsurfRuby::Internal::Type::Enum
89
+
90
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
91
+ ALL = T.let(:ALL, Symbol)
92
+ WEB = T.let(:WEB, Symbol)
93
+ IOS = T.let(:IOS, Symbol)
94
+ ANDROID = T.let(:ANDROID, Symbol)
95
+ sig { override.returns(T::Array[Symbol]) }
96
+ def self.values
97
+ end
98
+ end
99
+
100
+ module BreakdownPlatform
101
+ extend GrowsurfRuby::Internal::Type::Enum
102
+
103
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
104
+ WEB = T.let(:WEB, Symbol)
105
+ IOS = T.let(:IOS, Symbol)
106
+ ANDROID = T.let(:ANDROID, Symbol)
107
+ sig { override.returns(T::Array[Symbol]) }
108
+ def self.values
109
+ end
110
+ end
111
+
112
+ module PortalSource
113
+ extend GrowsurfRuby::Internal::Type::Enum
114
+
115
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
116
+ DEFAULT_LAUNCHER = T.let(:DEFAULT_LAUNCHER, Symbol)
117
+ SDK_OPEN = T.let(:SDK_OPEN, Symbol)
118
+ CSS_CLASS = T.let(:CSS_CLASS, Symbol)
119
+ EMBEDDABLE_ELEMENT = T.let(:EMBEDDABLE_ELEMENT, Symbol)
120
+ HOSTED_PORTAL = T.let(:HOSTED_PORTAL, Symbol)
121
+ NATIVE_WINDOW = T.let(:NATIVE_WINDOW, Symbol)
122
+ UNKNOWN = T.let(:UNKNOWN, Symbol)
123
+ sig { override.returns(T::Array[Symbol]) }
124
+ def self.values
125
+ end
126
+ end
127
+
128
+ class Metric < GrowsurfRuby::Internal::Type::BaseModel
129
+ OrHash = T.type_alias { T.any(Metric, GrowsurfRuby::Internal::AnyHash) }
130
+ sig { returns(GrowsurfRuby::Models::AnalyticsAvailability::OrSymbol) }
131
+ attr_accessor :state
132
+
133
+ sig { returns(T.nilable(Float)) }
134
+ attr_accessor :value
135
+
136
+ sig do
137
+ returns(
138
+ T.nilable(
139
+ GrowsurfRuby::Models::AnalyticsUnavailableReason::OrSymbol
140
+ )
141
+ )
142
+ end
143
+ attr_accessor :reason
144
+
145
+ sig { returns(T.nilable(Float)) }
146
+ attr_accessor :delta
147
+
148
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
149
+ def self.new(**kwargs)
150
+ end
151
+ end
152
+
153
+ class Totals < GrowsurfRuby::Internal::Type::BaseModel
154
+ OrHash = T.type_alias { T.any(Totals, GrowsurfRuby::Internal::AnyHash) }
155
+ sig { returns(Metric) }
156
+ attr_accessor :active_participants,
157
+ :sharing_participants,
158
+ :sharing_rate,
159
+ :repeat_active_participants,
160
+ :repeat_sharing_participants,
161
+ :retained_active_participants,
162
+ :portal_views,
163
+ :share_actions
164
+
165
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
166
+ def self.new(**kwargs)
167
+ end
168
+ end
169
+
170
+ class Period < GrowsurfRuby::Internal::Type::BaseModel
171
+ OrHash = T.type_alias { T.any(Period, GrowsurfRuby::Internal::AnyHash) }
172
+ sig { returns(Integer) }
173
+ attr_accessor :from, :to, :previous_from, :previous_to
174
+
175
+ sig { returns(T.nilable(Integer)) }
176
+ attr_accessor :effective_from
177
+
178
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
179
+ def self.new(**kwargs)
180
+ end
181
+ end
182
+
183
+ class PlatformFilter < GrowsurfRuby::Internal::Type::BaseModel
184
+ OrHash =
185
+ T.type_alias do
186
+ T.any(PlatformFilter, GrowsurfRuby::Internal::AnyHash)
187
+ end
188
+ sig { returns(Platform::OrSymbol) }
189
+ attr_accessor :requested, :applied
190
+
191
+ sig { returns(GrowsurfRuby::Models::AnalyticsAvailability::OrSymbol) }
192
+ attr_accessor :state
193
+
194
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
195
+ def self.new(**kwargs)
196
+ end
197
+ end
198
+
199
+ class PreviousPeriod < GrowsurfRuby::Internal::Type::BaseModel
200
+ OrHash =
201
+ T.type_alias do
202
+ T.any(PreviousPeriod, GrowsurfRuby::Internal::AnyHash)
203
+ end
204
+ sig { returns(GrowsurfRuby::Models::AnalyticsAvailability::OrSymbol) }
205
+ attr_accessor :state
206
+
207
+ sig do
208
+ returns(
209
+ T.nilable(
210
+ GrowsurfRuby::Models::AnalyticsUnavailableReason::OrSymbol
211
+ )
212
+ )
213
+ end
214
+ attr_accessor :reason
215
+
216
+ sig { returns(T.nilable(Totals)) }
217
+ attr_accessor :totals
218
+
219
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
220
+ def self.new(**kwargs)
221
+ end
222
+ end
223
+
224
+ class ComparisonMetrics < GrowsurfRuby::Internal::Type::BaseModel
225
+ OrHash =
226
+ T.type_alias do
227
+ T.any(ComparisonMetrics, GrowsurfRuby::Internal::AnyHash)
228
+ end
229
+ sig { returns(T.nilable(Metric)) }
230
+ attr_accessor :active_participants,
231
+ :sharing_participants,
232
+ :repeat_active_participants,
233
+ :repeat_sharing_participants,
234
+ :portal_views,
235
+ :share_actions
236
+
237
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
238
+ def self.new(**kwargs)
239
+ end
240
+ end
241
+
242
+ class Comparison < GrowsurfRuby::Internal::Type::BaseModel
243
+ OrHash =
244
+ T.type_alias { T.any(Comparison, GrowsurfRuby::Internal::AnyHash) }
245
+ sig { returns(GrowsurfRuby::Models::AnalyticsAvailability::OrSymbol) }
246
+ attr_accessor :state
247
+
248
+ sig do
249
+ returns(
250
+ T.nilable(
251
+ GrowsurfRuby::Models::AnalyticsUnavailableReason::OrSymbol
252
+ )
253
+ )
254
+ end
255
+ attr_accessor :reason
256
+
257
+ sig { returns(T.nilable(ComparisonMetrics)) }
258
+ attr_accessor :metrics
259
+
260
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
261
+ def self.new(**kwargs)
262
+ end
263
+ end
264
+
265
+ class SeriesPoint < GrowsurfRuby::Internal::Type::BaseModel
266
+ OrHash =
267
+ T.type_alias { T.any(SeriesPoint, GrowsurfRuby::Internal::AnyHash) }
268
+ sig { returns(Integer) }
269
+ attr_accessor :from,
270
+ :to,
271
+ :active_participants,
272
+ :sharing_participants,
273
+ :portal_views,
274
+ :share_actions
275
+
276
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
277
+ def self.new(**kwargs)
278
+ end
279
+ end
280
+
281
+ class PlatformBreakdown < GrowsurfRuby::Internal::Type::BaseModel
282
+ OrHash =
283
+ T.type_alias do
284
+ T.any(PlatformBreakdown, GrowsurfRuby::Internal::AnyHash)
285
+ end
286
+ sig { returns(BreakdownPlatform::OrSymbol) }
287
+ attr_accessor :key
288
+
289
+ sig { returns(Integer) }
290
+ attr_accessor :active_participants,
291
+ :sharing_participants,
292
+ :portal_views,
293
+ :share_actions
294
+
295
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
296
+ def self.new(**kwargs)
297
+ end
298
+ end
299
+
300
+ class PortalSourceBreakdown < GrowsurfRuby::Internal::Type::BaseModel
301
+ OrHash =
302
+ T.type_alias do
303
+ T.any(PortalSourceBreakdown, GrowsurfRuby::Internal::AnyHash)
304
+ end
305
+ sig { returns(PortalSource::OrSymbol) }
306
+ attr_accessor :key
307
+
308
+ sig { returns(Integer) }
309
+ attr_accessor :active_participants, :portal_views
310
+
311
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
312
+ def self.new(**kwargs)
313
+ end
314
+ end
315
+
316
+ class ShareChannelBreakdown < GrowsurfRuby::Internal::Type::BaseModel
317
+ OrHash =
318
+ T.type_alias do
319
+ T.any(ShareChannelBreakdown, GrowsurfRuby::Internal::AnyHash)
320
+ end
321
+ sig { returns(String) }
322
+ attr_accessor :key
323
+
324
+ sig { returns(Integer) }
325
+ attr_accessor :sharing_participants, :share_actions
326
+
327
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
328
+ def self.new(**kwargs)
329
+ end
330
+ end
331
+
332
+ class FirstShareChannelBreakdown < GrowsurfRuby::Internal::Type::BaseModel
333
+ OrHash =
334
+ T.type_alias do
335
+ T.any(FirstShareChannelBreakdown, GrowsurfRuby::Internal::AnyHash)
336
+ end
337
+ sig { returns(String) }
338
+ attr_accessor :key
339
+
340
+ sig { returns(Integer) }
341
+ attr_accessor :sharing_participants
342
+
343
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
344
+ def self.new(**kwargs)
345
+ end
346
+ end
347
+
348
+ class Breakdowns < GrowsurfRuby::Internal::Type::BaseModel
349
+ OrHash =
350
+ T.type_alias { T.any(Breakdowns, GrowsurfRuby::Internal::AnyHash) }
351
+ sig { returns(T::Array[PlatformBreakdown]) }
352
+ attr_accessor :platforms
353
+
354
+ sig { returns(T::Array[PortalSourceBreakdown]) }
355
+ attr_accessor :portal_view_sources
356
+
357
+ sig { returns(T::Array[ShareChannelBreakdown]) }
358
+ attr_accessor :share_channels
359
+
360
+ sig { returns(T::Array[FirstShareChannelBreakdown]) }
361
+ attr_accessor :first_share_channels
362
+
363
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
364
+ def self.new(**kwargs)
365
+ end
366
+ end
367
+ end
368
+ end
369
+ end
@@ -0,0 +1,59 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ class CampaignRetrieveActivationAnalyticsParams < GrowsurfRuby::Internal::Type::BaseModel
6
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
7
+ include GrowsurfRuby::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ GrowsurfRuby::CampaignRetrieveActivationAnalyticsParams,
13
+ GrowsurfRuby::Internal::AnyHash
14
+ )
15
+ end
16
+ sig { returns(String) }
17
+ attr_accessor :id
18
+
19
+ sig { returns(T.nilable(Integer)) }
20
+ attr_accessor :cohort_from, :cohort_to
21
+
22
+ sig { returns(T.nilable(CohortInterval::OrSymbol)) }
23
+ attr_accessor :cohort_interval
24
+
25
+ sig { returns(T.nilable(ObservationWindowDays::OrInteger)) }
26
+ attr_accessor :observation_window_days
27
+
28
+ sig { returns(T.nilable(String)) }
29
+ attr_accessor :timezone
30
+
31
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
32
+ def self.new(**kwargs)
33
+ end
34
+
35
+ module CohortInterval
36
+ extend GrowsurfRuby::Internal::Type::Enum
37
+
38
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
39
+ DAY = T.let(:day, Symbol)
40
+ WEEK = T.let(:week, Symbol)
41
+ MONTH = T.let(:month, Symbol)
42
+ sig { override.returns(T::Array[Symbol]) }
43
+ def self.values
44
+ end
45
+ end
46
+
47
+ module ObservationWindowDays
48
+ extend GrowsurfRuby::Internal::Type::Enum
49
+
50
+ OrInteger = T.type_alias { Integer }
51
+ SEVEN = T.let(7, Integer)
52
+ THIRTY = T.let(30, Integer)
53
+ sig { override.returns(T::Array[Integer]) }
54
+ def self.values
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -46,7 +46,9 @@ module GrowsurfRuby
46
46
  attr_writer :include
47
47
 
48
48
  # When set to `day`, `week`, or `month`, the response also includes a `series` array
49
- # with per-period totals. Defaults to `total` (no series).
49
+ # with per-period totals and uses the same bucket size for `engagement.series`.
50
+ # Defaults to `total` (no legacy series); `engagement.series` uses daily buckets when
51
+ # `interval` is `total` or omitted.
50
52
  sig do
51
53
  returns(
52
54
  T.nilable(
@@ -64,6 +66,23 @@ module GrowsurfRuby
64
66
  end
65
67
  attr_writer :interval
66
68
 
69
+ sig do
70
+ returns(
71
+ T.nilable(
72
+ GrowsurfRuby::CampaignRetrieveAnalyticsParams::Platform::OrSymbol
73
+ )
74
+ )
75
+ end
76
+ attr_reader :platform
77
+
78
+ sig do
79
+ params(
80
+ platform:
81
+ GrowsurfRuby::CampaignRetrieveAnalyticsParams::Platform::OrSymbol
82
+ ).void
83
+ end
84
+ attr_writer :platform
85
+
67
86
  # Start date of the analytics timeframe as a Unix timestamp in milliseconds.
68
87
  # Required if `days` is not set.
69
88
  sig { returns(T.nilable(Integer)) }
@@ -72,6 +91,12 @@ module GrowsurfRuby
72
91
  sig { params(start_date: Integer).void }
73
92
  attr_writer :start_date
74
93
 
94
+ sig { returns(T.nilable(String)) }
95
+ attr_reader :timezone
96
+
97
+ sig { params(timezone: String).void }
98
+ attr_writer :timezone
99
+
75
100
  sig do
76
101
  params(
77
102
  id: String,
@@ -80,7 +105,10 @@ module GrowsurfRuby
80
105
  include: String,
81
106
  interval:
82
107
  GrowsurfRuby::CampaignRetrieveAnalyticsParams::Interval::OrSymbol,
108
+ platform:
109
+ GrowsurfRuby::CampaignRetrieveAnalyticsParams::Platform::OrSymbol,
83
110
  start_date: Integer,
111
+ timezone: String,
84
112
  request_options: GrowsurfRuby::RequestOptions::OrHash
85
113
  ).returns(T.attached_class)
86
114
  end
@@ -101,11 +129,17 @@ module GrowsurfRuby
101
129
  # windows.
102
130
  include: nil,
103
131
  # When set to `day`, `week`, or `month`, the response also includes a `series` array
104
- # with per-period totals. Defaults to `total` (no series).
132
+ # with per-period totals and uses the same bucket size for `engagement.series`.
133
+ # Defaults to `total` (no legacy series); `engagement.series` uses daily buckets when
134
+ # `interval` is `total` or omitted.
105
135
  interval: nil,
136
+ # Participant platform used for `engagement`. Defaults to `ALL`.
137
+ platform: nil,
106
138
  # Start date of the analytics timeframe as a Unix timestamp in milliseconds.
107
139
  # Required if `days` is not set.
108
140
  start_date: nil,
141
+ # IANA timezone used for engagement periods and buckets. Defaults to `UTC`.
142
+ timezone: nil,
109
143
  request_options: {}
110
144
  )
111
145
  end
@@ -119,7 +153,10 @@ module GrowsurfRuby
119
153
  include: String,
120
154
  interval:
121
155
  GrowsurfRuby::CampaignRetrieveAnalyticsParams::Interval::OrSymbol,
156
+ platform:
157
+ GrowsurfRuby::CampaignRetrieveAnalyticsParams::Platform::OrSymbol,
122
158
  start_date: Integer,
159
+ timezone: String,
123
160
  request_options: GrowsurfRuby::RequestOptions
124
161
  }
125
162
  )
@@ -128,7 +165,9 @@ module GrowsurfRuby
128
165
  end
129
166
 
130
167
  # When set to `day`, `week`, or `month`, the response also includes a `series` array
131
- # with per-period totals. Defaults to `total` (no series).
168
+ # with per-period totals and uses the same bucket size for `engagement.series`.
169
+ # Defaults to `total` (no legacy series); `engagement.series` uses daily buckets when
170
+ # `interval` is `total` or omitted.
132
171
  module Interval
133
172
  extend GrowsurfRuby::Internal::Type::Enum
134
173
 
@@ -172,6 +211,20 @@ module GrowsurfRuby
172
211
  def self.values
173
212
  end
174
213
  end
214
+
215
+ module Platform
216
+ extend GrowsurfRuby::Internal::Type::Enum
217
+
218
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
219
+ ALL = T.let(:ALL, Symbol)
220
+ WEB = T.let(:WEB, Symbol)
221
+ IOS = T.let(:IOS, Symbol)
222
+ ANDROID = T.let(:ANDROID, Symbol)
223
+
224
+ sig { override.returns(T::Array[Symbol]) }
225
+ def self.values
226
+ end
227
+ end
175
228
  end
176
229
  end
177
230
  end
@@ -32,6 +32,18 @@ module GrowsurfRuby
32
32
  sig { returns(Integer) }
33
33
  attr_accessor :start_date
34
34
 
35
+ sig do
36
+ returns(T.nilable(GrowsurfRuby::Models::CampaignEngagementAnalytics))
37
+ end
38
+ attr_reader :engagement
39
+
40
+ sig do
41
+ params(
42
+ engagement: GrowsurfRuby::Models::CampaignEngagementAnalytics::OrHash
43
+ ).void
44
+ end
45
+ attr_writer :engagement
46
+
35
47
  # Present only when `include` contains `previousPeriod`.
36
48
  sig do
37
49
  returns(
@@ -115,6 +127,7 @@ module GrowsurfRuby
115
127
  GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::Analytics::OrHash,
116
128
  end_date: Integer,
117
129
  start_date: Integer,
130
+ engagement: GrowsurfRuby::Models::CampaignEngagementAnalytics::OrHash,
118
131
  previous_period:
119
132
  GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::PreviousPeriod::OrHash,
120
133
  rates:
@@ -131,6 +144,8 @@ module GrowsurfRuby
131
144
  analytics:,
132
145
  end_date:,
133
146
  start_date:,
147
+ # Present only when `include` contains `engagement`.
148
+ engagement: nil,
134
149
  # Present only when `include` contains `previousPeriod`.
135
150
  previous_period: nil,
136
151
  # Present only when `include` contains `rates`.
@@ -150,6 +165,7 @@ module GrowsurfRuby
150
165
  GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::Analytics,
151
166
  end_date: Integer,
152
167
  start_date: Integer,
168
+ engagement: GrowsurfRuby::Models::CampaignEngagementAnalytics,
153
169
  previous_period:
154
170
  GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::PreviousPeriod,
155
171
  rates:
@@ -1386,16 +1402,20 @@ module GrowsurfRuby
1386
1402
 
1387
1403
  # Reward counts grouped by review and fulfillment status.
1388
1404
  sig do
1389
- params(completed: Integer, unapproved: Integer, unfulfilled: Integer).returns(T.attached_class)
1405
+ params(
1406
+ completed: Integer,
1407
+ unapproved: Integer,
1408
+ unfulfilled: Integer
1409
+ ).returns(T.attached_class)
1390
1410
  end
1391
- def self.new(
1392
- completed: nil,
1393
- unapproved: nil,
1394
- unfulfilled: nil
1395
- )
1411
+ def self.new(completed: nil, unapproved: nil, unfulfilled: nil)
1396
1412
  end
1397
1413
 
1398
- sig { override.returns({ completed: Integer, unapproved: Integer, unfulfilled: Integer }) }
1414
+ sig do
1415
+ override.returns(
1416
+ { completed: Integer, unapproved: Integer, unfulfilled: Integer }
1417
+ )
1418
+ end
1399
1419
  def to_hash
1400
1420
  end
1401
1421
  end
@@ -26,7 +26,14 @@ module GrowsurfRuby
26
26
  sig { returns(T.nilable(Integer)) }
27
27
  attr_accessor :duration_in_months
28
28
 
29
- sig { returns(T.nilable(String)) }
29
+ # The event that generates a commission. `CLICK` and `LEAD` require `FIXED` with
30
+ # a positive `amount`; `amountISO` defaults to the program currency when omitted.
31
+ # `SALE` supports `FIXED` or `PERCENT`. Missing legacy values read as `SALE`.
32
+ sig do
33
+ returns(
34
+ T.nilable(GrowsurfRuby::CommissionStructure::Event::TaggedSymbol)
35
+ )
36
+ end
30
37
  attr_accessor :event
31
38
 
32
39
  sig { returns(T.nilable(T::Boolean)) }
@@ -82,7 +89,7 @@ module GrowsurfRuby
82
89
  approval_required: T.nilable(T::Boolean),
83
90
  duration: T.nilable(String),
84
91
  duration_in_months: T.nilable(Integer),
85
- event: T.nilable(String),
92
+ event: T.nilable(GrowsurfRuby::CommissionStructure::Event::OrSymbol),
86
93
  has_intro: T.nilable(T::Boolean),
87
94
  has_max_amount: T.nilable(T::Boolean),
88
95
  hold_duration: T.nilable(Integer),
@@ -131,7 +138,8 @@ module GrowsurfRuby
131
138
  approval_required: T.nilable(T::Boolean),
132
139
  duration: T.nilable(String),
133
140
  duration_in_months: T.nilable(Integer),
134
- event: T.nilable(String),
141
+ event:
142
+ T.nilable(GrowsurfRuby::CommissionStructure::Event::TaggedSymbol),
135
143
  has_intro: T.nilable(T::Boolean),
136
144
  has_max_amount: T.nilable(T::Boolean),
137
145
  hold_duration: T.nilable(Integer),
@@ -153,6 +161,31 @@ module GrowsurfRuby
153
161
  def to_hash
154
162
  end
155
163
 
164
+ module Event
165
+ extend GrowsurfRuby::Internal::Type::Enum
166
+
167
+ TaggedSymbol =
168
+ T.type_alias do
169
+ T.all(Symbol, GrowsurfRuby::CommissionStructure::Event)
170
+ end
171
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
172
+
173
+ CLICK =
174
+ T.let(:CLICK, GrowsurfRuby::CommissionStructure::Event::TaggedSymbol)
175
+ LEAD =
176
+ T.let(:LEAD, GrowsurfRuby::CommissionStructure::Event::TaggedSymbol)
177
+ SALE =
178
+ T.let(:SALE, GrowsurfRuby::CommissionStructure::Event::TaggedSymbol)
179
+
180
+ sig do
181
+ override.returns(
182
+ T::Array[GrowsurfRuby::CommissionStructure::Event::TaggedSymbol]
183
+ )
184
+ end
185
+ def self.values
186
+ end
187
+ end
188
+
156
189
  module Type
157
190
  extend GrowsurfRuby::Internal::Type::Enum
158
191