growsurf-ruby 0.8.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 (151) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -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 +43 -5
  23. data/lib/growsurf_ruby/models/campaign/reward_create_params.rb +48 -15
  24. data/lib/growsurf_ruby/models/campaign/reward_delete_params.rb +4 -4
  25. data/lib/growsurf_ruby/models/campaign/reward_update_params.rb +51 -18
  26. data/lib/growsurf_ruby/models/campaign/webhook.rb +72 -0
  27. data/lib/growsurf_ruby/models/campaign/webhook_create_params.rb +52 -0
  28. data/lib/growsurf_ruby/models/campaign/webhook_delete_params.rb +28 -0
  29. data/lib/growsurf_ruby/models/campaign/webhook_delete_response.rb +24 -0
  30. data/lib/growsurf_ruby/models/campaign/webhook_event.rb +23 -0
  31. data/lib/growsurf_ruby/models/campaign/webhook_list_response.rb +18 -0
  32. data/lib/growsurf_ruby/models/campaign/webhook_test_params.rb +42 -0
  33. data/lib/growsurf_ruby/models/campaign/webhook_test_response.rb +50 -0
  34. data/lib/growsurf_ruby/models/campaign/webhook_update_params.rb +59 -0
  35. data/lib/growsurf_ruby/models/campaign.rb +43 -5
  36. data/lib/growsurf_ruby/models/campaign_create_params.rb +1 -15
  37. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_params.rb +36 -1
  38. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_response.rb +538 -1
  39. data/lib/growsurf_ruby/models/campaign_update_params.rb +1 -53
  40. data/lib/growsurf_ruby/models/commission_structure.rb +8 -2
  41. data/lib/growsurf_ruby/models/referral_flow_screenshots_response.rb +72 -0
  42. data/lib/growsurf_ruby/models/reward_tax_valuation.rb +35 -0
  43. data/lib/growsurf_ruby/models.rb +10 -0
  44. data/lib/growsurf_ruby/resources/account.rb +159 -0
  45. data/lib/growsurf_ruby/resources/campaign/design.rb +68 -0
  46. data/lib/growsurf_ruby/resources/campaign/emails.rb +66 -0
  47. data/lib/growsurf_ruby/resources/campaign/installation.rb +67 -0
  48. data/lib/growsurf_ruby/resources/campaign/options.rb +66 -0
  49. data/lib/growsurf_ruby/resources/campaign/participant.rb +170 -2
  50. data/lib/growsurf_ruby/resources/campaign/rewards.rb +36 -32
  51. data/lib/growsurf_ruby/resources/campaign/webhooks.rb +157 -0
  52. data/lib/growsurf_ruby/resources/campaign.rb +62 -27
  53. data/lib/growsurf_ruby/version.rb +1 -1
  54. data/lib/growsurf_ruby.rb +31 -0
  55. data/rbi/growsurf_ruby/client.rbi +3 -0
  56. data/rbi/growsurf_ruby/models/account.rbi +125 -0
  57. data/rbi/growsurf_ruby/models/account_create_params.rbi +73 -0
  58. data/rbi/growsurf_ruby/models/account_create_response.rbi +115 -0
  59. data/rbi/growsurf_ruby/models/account_resend_verification_email_response.rbi +76 -0
  60. data/rbi/growsurf_ruby/models/account_rotate_api_key_response.rbi +30 -0
  61. data/rbi/growsurf_ruby/models/account_update_params.rbi +65 -0
  62. data/rbi/growsurf_ruby/models/campaign/campaign_reward_list_response.rbi +2 -2
  63. data/rbi/growsurf_ruby/models/campaign/create.rbi +8 -0
  64. data/rbi/growsurf_ruby/models/campaign/participant_activity_logs_response.rbi +111 -0
  65. data/rbi/growsurf_ruby/models/campaign/participant_analytics_response.rbi +630 -0
  66. data/rbi/growsurf_ruby/models/campaign/participant_bulk_delete_params.rbi +56 -0
  67. data/rbi/growsurf_ruby/models/campaign/participant_bulk_delete_response.rbi +285 -0
  68. data/rbi/growsurf_ruby/models/campaign/participant_email_params.rbi +118 -0
  69. data/rbi/growsurf_ruby/models/campaign/participant_email_response.rbi +84 -0
  70. data/rbi/growsurf_ruby/models/campaign/participant_list_activity_logs_params.rbi +74 -0
  71. data/rbi/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rbi +207 -0
  72. data/rbi/growsurf_ruby/models/campaign/participant_update_params.rbi +24 -0
  73. data/rbi/growsurf_ruby/models/campaign/reward.rbi +63 -3
  74. data/rbi/growsurf_ruby/models/campaign/reward_create_params.rbi +62 -9
  75. data/rbi/growsurf_ruby/models/campaign/reward_delete_params.rbi +4 -4
  76. data/rbi/growsurf_ruby/models/campaign/reward_update_params.rbi +66 -13
  77. data/rbi/growsurf_ruby/models/campaign/webhook.rbi +93 -0
  78. data/rbi/growsurf_ruby/models/campaign/webhook_create_params.rbi +91 -0
  79. data/rbi/growsurf_ruby/models/campaign/webhook_delete_params.rbi +48 -0
  80. data/rbi/growsurf_ruby/models/campaign/webhook_delete_response.rbi +33 -0
  81. data/rbi/growsurf_ruby/models/campaign/webhook_event.rbi +60 -0
  82. data/rbi/growsurf_ruby/models/campaign/webhook_list_response.rbi +36 -0
  83. data/rbi/growsurf_ruby/models/campaign/webhook_test_params.rbi +69 -0
  84. data/rbi/growsurf_ruby/models/campaign/webhook_test_response.rbi +102 -0
  85. data/rbi/growsurf_ruby/models/campaign/webhook_update_params.rbi +98 -0
  86. data/rbi/growsurf_ruby/models/campaign.rbi +63 -3
  87. data/rbi/growsurf_ruby/models/campaign_create_params.rbi +0 -18
  88. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_params.rbi +91 -0
  89. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_response.rbi +1011 -3
  90. data/rbi/growsurf_ruby/models/campaign_update_params.rbi +0 -78
  91. data/rbi/growsurf_ruby/models/commission_structure.rbi +8 -2
  92. data/rbi/growsurf_ruby/models/referral_flow_screenshots_response.rbi +94 -0
  93. data/rbi/growsurf_ruby/models/reward_tax_valuation.rbi +56 -0
  94. data/rbi/growsurf_ruby/models.rbi +11 -0
  95. data/rbi/growsurf_ruby/resources/account.rbi +112 -0
  96. data/rbi/growsurf_ruby/resources/campaign/design.rbi +52 -0
  97. data/rbi/growsurf_ruby/resources/campaign/emails.rbi +51 -0
  98. data/rbi/growsurf_ruby/resources/campaign/installation.rbi +53 -0
  99. data/rbi/growsurf_ruby/resources/campaign/options.rbi +51 -0
  100. data/rbi/growsurf_ruby/resources/campaign/participant.rbi +160 -0
  101. data/rbi/growsurf_ruby/resources/campaign/rewards.rbi +61 -29
  102. data/rbi/growsurf_ruby/resources/campaign/webhooks.rbi +123 -0
  103. data/rbi/growsurf_ruby/resources/campaign.rbi +58 -32
  104. data/sig/growsurf_ruby/client.rbs +2 -0
  105. data/sig/growsurf_ruby/models/account.rbs +67 -0
  106. data/sig/growsurf_ruby/models/account_create_params.rbs +42 -0
  107. data/sig/growsurf_ruby/models/account_create_response.rbs +47 -0
  108. data/sig/growsurf_ruby/models/account_resend_verification_email_response.rbs +35 -0
  109. data/sig/growsurf_ruby/models/account_rotate_api_key_response.rbs +13 -0
  110. data/sig/growsurf_ruby/models/account_update_params.rbs +42 -0
  111. data/sig/growsurf_ruby/models/campaign/participant_activity_logs_response.rbs +59 -0
  112. data/sig/growsurf_ruby/models/campaign/participant_analytics_response.rbs +407 -0
  113. data/sig/growsurf_ruby/models/campaign/participant_bulk_delete_params.rbs +30 -0
  114. data/sig/growsurf_ruby/models/campaign/participant_bulk_delete_response.rbs +125 -0
  115. data/sig/growsurf_ruby/models/campaign/participant_email_params.rbs +61 -0
  116. data/sig/growsurf_ruby/models/campaign/participant_email_response.rbs +37 -0
  117. data/sig/growsurf_ruby/models/campaign/participant_list_activity_logs_params.rbs +47 -0
  118. data/sig/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rbs +90 -0
  119. data/sig/growsurf_ruby/models/campaign/participant_update_params.rbs +14 -0
  120. data/sig/growsurf_ruby/models/campaign/reward.rbs +18 -3
  121. data/sig/growsurf_ruby/models/campaign/reward_create_params.rbs +19 -8
  122. data/sig/growsurf_ruby/models/campaign/reward_delete_params.rbs +4 -4
  123. data/sig/growsurf_ruby/models/campaign/reward_update_params.rbs +23 -12
  124. data/sig/growsurf_ruby/models/campaign/webhook.rbs +52 -0
  125. data/sig/growsurf_ruby/models/campaign/webhook_create_params.rbs +51 -0
  126. data/sig/growsurf_ruby/models/campaign/webhook_delete_params.rbs +30 -0
  127. data/sig/growsurf_ruby/models/campaign/webhook_delete_response.rbs +17 -0
  128. data/sig/growsurf_ruby/models/campaign/webhook_event.rbs +28 -0
  129. data/sig/growsurf_ruby/models/campaign/webhook_list_response.rbs +18 -0
  130. data/sig/growsurf_ruby/models/campaign/webhook_test_params.rbs +42 -0
  131. data/sig/growsurf_ruby/models/campaign/webhook_test_response.rbs +54 -0
  132. data/sig/growsurf_ruby/models/campaign/webhook_update_params.rbs +63 -0
  133. data/sig/growsurf_ruby/models/campaign.rbs +18 -3
  134. data/sig/growsurf_ruby/models/campaign_create_params.rbs +0 -14
  135. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_params.rbs +35 -1
  136. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_response.rbs +533 -3
  137. data/sig/growsurf_ruby/models/campaign_update_params.rbs +1 -53
  138. data/sig/growsurf_ruby/models/commission_structure.rbs +7 -2
  139. data/sig/growsurf_ruby/models/referral_flow_screenshots_response.rbs +54 -0
  140. data/sig/growsurf_ruby/models/reward_tax_valuation.rbs +22 -0
  141. data/sig/growsurf_ruby/models.rbs +10 -0
  142. data/sig/growsurf_ruby/resources/account.rbs +38 -0
  143. data/sig/growsurf_ruby/resources/campaign/design.rbs +20 -0
  144. data/sig/growsurf_ruby/resources/campaign/emails.rbs +20 -0
  145. data/sig/growsurf_ruby/resources/campaign/installation.rbs +20 -0
  146. data/sig/growsurf_ruby/resources/campaign/options.rbs +20 -0
  147. data/sig/growsurf_ruby/resources/campaign/participant.rbs +37 -0
  148. data/sig/growsurf_ruby/resources/campaign/rewards.rbs +6 -4
  149. data/sig/growsurf_ruby/resources/campaign/webhooks.rbs +46 -0
  150. data/sig/growsurf_ruby/resources/campaign.rbs +17 -9
  151. metadata +95 -2
@@ -14,10 +14,30 @@ module GrowsurfRuby
14
14
  # @return [GrowsurfRuby::Resources::Campaign::Commission]
15
15
  attr_reader :commission
16
16
 
17
- # Program reward configuration operations.
17
+ # Campaign reward configuration operations.
18
18
  # @return [GrowsurfRuby::Resources::Campaign::Rewards]
19
19
  attr_reader :rewards
20
20
 
21
+ # Program Editor "Design" tab configuration operations.
22
+ # @return [GrowsurfRuby::Resources::Campaign::Design]
23
+ attr_reader :design
24
+
25
+ # Program Editor "Emails" tab configuration operations.
26
+ # @return [GrowsurfRuby::Resources::Campaign::Emails]
27
+ attr_reader :emails
28
+
29
+ # Program Editor "Options" tab configuration operations.
30
+ # @return [GrowsurfRuby::Resources::Campaign::Options]
31
+ attr_reader :options
32
+
33
+ # Program Editor "Installation" tab configuration operations.
34
+ # @return [GrowsurfRuby::Resources::Campaign::Installation]
35
+ attr_reader :installation
36
+
37
+ # Program webhook configuration operations.
38
+ # @return [GrowsurfRuby::Resources::Campaign::Webhooks]
39
+ attr_reader :webhooks
40
+
21
41
  # Retrieves a program for the given program ID.
22
42
  #
23
43
  # @overload retrieve(id, request_options: {})
@@ -57,9 +77,11 @@ module GrowsurfRuby
57
77
  end
58
78
 
59
79
  # Creates a program. Only `type` is required; everything else is
60
- # server-defaulted.
80
+ # server-defaulted. Editor-tab configuration (design, emails, options,
81
+ # installation) is not accepted here — configure it via the config sub-resources
82
+ # (e.g. `campaign.options.update`) after the program is created.
61
83
  #
62
- # @overload create(type:, company_logo_image_url: nil, company_name: nil, currency_iso: nil, goal: nil, name: nil, options: nil, rewards: nil, request_options: {})
84
+ # @overload create(type:, company_logo_image_url: nil, company_name: nil, currency_iso: nil, name: nil, rewards: nil, request_options: {})
63
85
  #
64
86
  # @param type [Symbol, GrowsurfRuby::Models::CampaignCreateParams::Type] The program type. Immutable after creation.
65
87
  #
@@ -67,14 +89,10 @@ module GrowsurfRuby
67
89
  #
68
90
  # @param company_name [String]
69
91
  #
70
- # @param currency_iso [String] ISO 4217 currency code. Defaults to USD.
71
- #
72
- # @param goal [String]
92
+ # @param currency_iso [String] ISO 4217 currency code. Defaults to USD. Chosen when the program is created and immutable afterward — it cannot be changed on update.
73
93
  #
74
94
  # @param name [String] The program name. Defaults to "Untitled Program".
75
95
  #
76
- # @param options [Hash{Symbol=>Object}] A curated subset of program options to shallow-merge onto the defaults.
77
- #
78
96
  # @param rewards [Array<GrowsurfRuby::Models::Campaign::RewardCreateParams>] Optional inline rewards to create with the program.
79
97
  #
80
98
  # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
@@ -93,10 +111,13 @@ module GrowsurfRuby
93
111
  )
94
112
  end
95
113
 
96
- # Updates a program. Only the fields you send are changed. `type` and `urlId` are
97
- # immutable.
114
+ # Updates a program's identity and lifecycle. Only the fields you send are changed.
115
+ # `type`, `urlId`, and `currencyISO` are immutable. Editor-tab configuration (design, emails,
116
+ # options, installation) is edited via the dedicated config sub-resources
117
+ # (`campaign.design`, `campaign.emails`, `campaign.options`, `campaign.installation`),
118
+ # not here.
98
119
  #
99
- # @overload update(id, company_logo_image_url: nil, company_name: nil, currency_iso: nil, design: nil, emails: nil, goal: nil, installation: nil, name: nil, notifications: nil, options: nil, status: nil, request_options: {})
120
+ # @overload update(id, company_logo_image_url: nil, company_name: nil, name: nil, status: nil, request_options: {})
100
121
  #
101
122
  # @param id [String] Path param: GrowSurf program ID.
102
123
  #
@@ -104,23 +125,9 @@ module GrowsurfRuby
104
125
  #
105
126
  # @param company_name [String] Body param
106
127
  #
107
- # @param currency_iso [String] Body param
108
- #
109
- # @param design [Hash{Symbol=>Object}] Body param
110
- #
111
- # @param emails [Hash{Symbol=>Object}] Body param
112
- #
113
- # @param goal [String] Body param
114
- #
115
- # @param installation [Hash{Symbol=>Object}] Body param
116
- #
117
128
  # @param name [String] Body param
118
129
  #
119
- # @param notifications [Hash{Symbol=>Object}] Body param
120
- #
121
- # @param options [Hash{Symbol=>Object}] Body param
122
- #
123
- # @param status [Symbol, GrowsurfRuby::Models::CampaignUpdateParams::Status] Body param: The program status. Transitions are validated; DELETED is not allowe
130
+ # @param status [Symbol, GrowsurfRuby::Models::CampaignUpdateParams::Status] Body param: The requested program status. `IN_PROGRESS` publishes or resumes the
124
131
  #
125
132
  # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
126
133
  #
@@ -156,6 +163,25 @@ module GrowsurfRuby
156
163
  )
157
164
  end
158
165
 
166
+ # Captures two preview screenshots for the program: the authenticated referrer
167
+ # view and the referred-friend view.
168
+ #
169
+ # @overload get_referral_flow_screenshots(id, request_options: {})
170
+ #
171
+ # @param id [String] GrowSurf program ID.
172
+ #
173
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
174
+ #
175
+ # @return [GrowsurfRuby::Models::ReferralFlowScreenshotsResponse]
176
+ def get_referral_flow_screenshots(id, params = {})
177
+ @client.request(
178
+ method: :get,
179
+ path: ["campaign/%1$s/referral-flow-screenshots", id],
180
+ model: GrowsurfRuby::Models::ReferralFlowScreenshotsResponse,
181
+ options: params[:request_options]
182
+ )
183
+ end
184
+
159
185
  # Some parameter documentations has been truncated, see
160
186
  # {GrowsurfRuby::Models::CampaignCreateMobileParticipantTokenParams} for more
161
187
  # details.
@@ -376,7 +402,7 @@ module GrowsurfRuby
376
402
  #
377
403
  # Retrieves analytics for a program.
378
404
  #
379
- # @overload retrieve_analytics(id, days: nil, end_date: nil, start_date: nil, request_options: {})
405
+ # @overload retrieve_analytics(id, days: nil, end_date: nil, include: nil, interval: nil, start_date: nil, request_options: {})
380
406
  #
381
407
  # @param id [String] GrowSurf program ID.
382
408
  #
@@ -384,6 +410,10 @@ module GrowsurfRuby
384
410
  #
385
411
  # @param end_date [Integer] End date of the analytics timeframe as a Unix timestamp in milliseconds. Require
386
412
  #
413
+ # @param include [String] Comma-separated list of optional enrichments (opt-in to keep the default response
414
+ #
415
+ # @param interval [Symbol, GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::Interval] When set to `day`, `week`, or `month`, the response also includes a `series` array
416
+ #
387
417
  # @param start_date [Integer] Start date of the analytics timeframe as a Unix timestamp in milliseconds. Requi
388
418
  #
389
419
  # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
@@ -412,6 +442,11 @@ module GrowsurfRuby
412
442
  @reward = GrowsurfRuby::Resources::Campaign::Reward.new(client: client)
413
443
  @commission = GrowsurfRuby::Resources::Campaign::Commission.new(client: client)
414
444
  @rewards = GrowsurfRuby::Resources::Campaign::Rewards.new(client: client)
445
+ @design = GrowsurfRuby::Resources::Campaign::Design.new(client: client)
446
+ @emails = GrowsurfRuby::Resources::Campaign::Emails.new(client: client)
447
+ @options = GrowsurfRuby::Resources::Campaign::Options.new(client: client)
448
+ @installation = GrowsurfRuby::Resources::Campaign::Installation.new(client: client)
449
+ @webhooks = GrowsurfRuby::Resources::Campaign::Webhooks.new(client: client)
415
450
  end
416
451
  end
417
452
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GrowsurfRuby
4
- VERSION = "0.8.0"
4
+ VERSION = "1.1.0"
5
5
  end
data/lib/growsurf_ruby.rb CHANGED
@@ -61,11 +61,18 @@ require_relative "growsurf_ruby/models/campaign/commission_delete_params"
61
61
  require_relative "growsurf_ruby/models/campaign/commission_delete_response"
62
62
  require_relative "growsurf_ruby/models/campaign/delete_reward_response"
63
63
  require_relative "growsurf_ruby/models/campaign/fraud_risk_level"
64
+ require_relative "growsurf_ruby/models/campaign/participant_activity_logs_response"
64
65
  require_relative "growsurf_ruby/models/campaign/participant_add_params"
66
+ require_relative "growsurf_ruby/models/campaign/participant_analytics_response"
67
+ require_relative "growsurf_ruby/models/campaign/participant_bulk_delete_params"
68
+ require_relative "growsurf_ruby/models/campaign/participant_bulk_delete_response"
65
69
  require_relative "growsurf_ruby/models/campaign/participant_cancel_delayed_referral_params"
66
70
  require_relative "growsurf_ruby/models/campaign/participant_cancel_delayed_referral_response"
67
71
  require_relative "growsurf_ruby/models/campaign/participant_delete_params"
68
72
  require_relative "growsurf_ruby/models/campaign/participant_delete_response"
73
+ require_relative "growsurf_ruby/models/campaign/participant_email_params"
74
+ require_relative "growsurf_ruby/models/campaign/participant_email_response"
75
+ require_relative "growsurf_ruby/models/campaign/participant_list_activity_logs_params"
69
76
  require_relative "growsurf_ruby/models/campaign/participant_list_commissions_params"
70
77
  require_relative "growsurf_ruby/models/campaign/participant_list_payouts_params"
71
78
  require_relative "growsurf_ruby/models/campaign/participant_list_referrals_params"
@@ -75,6 +82,7 @@ require_relative "growsurf_ruby/models/campaign/participant_record_transaction_p
75
82
  require_relative "growsurf_ruby/models/campaign/participant_record_transaction_response"
76
83
  require_relative "growsurf_ruby/models/campaign/participant_refund_transaction_params"
77
84
  require_relative "growsurf_ruby/models/campaign/participant_refund_transaction_response"
85
+ require_relative "growsurf_ruby/models/campaign/participant_retrieve_analytics_params"
78
86
  require_relative "growsurf_ruby/models/campaign/participant_retrieve_params"
79
87
  require_relative "growsurf_ruby/models/campaign/participant_reward"
80
88
  require_relative "growsurf_ruby/models/campaign/participant_send_invites_params"
@@ -93,6 +101,21 @@ require_relative "growsurf_ruby/models/campaign/reward_delete_response"
93
101
  require_relative "growsurf_ruby/models/campaign/reward_fulfill_params"
94
102
  require_relative "growsurf_ruby/models/campaign/reward_fulfill_response"
95
103
  require_relative "growsurf_ruby/models/campaign/reward_update_params"
104
+ require_relative "growsurf_ruby/models/campaign/webhook"
105
+ require_relative "growsurf_ruby/models/campaign/webhook_create_params"
106
+ require_relative "growsurf_ruby/models/campaign/webhook_delete_params"
107
+ require_relative "growsurf_ruby/models/campaign/webhook_delete_response"
108
+ require_relative "growsurf_ruby/models/campaign/webhook_event"
109
+ require_relative "growsurf_ruby/models/campaign/webhook_list_response"
110
+ require_relative "growsurf_ruby/models/campaign/webhook_test_params"
111
+ require_relative "growsurf_ruby/models/campaign/webhook_test_response"
112
+ require_relative "growsurf_ruby/models/campaign/webhook_update_params"
113
+ require_relative "growsurf_ruby/models/account"
114
+ require_relative "growsurf_ruby/models/account_create_params"
115
+ require_relative "growsurf_ruby/models/account_create_response"
116
+ require_relative "growsurf_ruby/models/account_resend_verification_email_response"
117
+ require_relative "growsurf_ruby/models/account_rotate_api_key_response"
118
+ require_relative "growsurf_ruby/models/account_update_params"
96
119
  require_relative "growsurf_ruby/models/campaign"
97
120
  require_relative "growsurf_ruby/models/campaign_create_mobile_participant_token_params"
98
121
  require_relative "growsurf_ruby/models/campaign_create_mobile_participant_token_response"
@@ -113,9 +136,17 @@ require_relative "growsurf_ruby/models/participant_commission_list"
113
136
  require_relative "growsurf_ruby/models/participant_list"
114
137
  require_relative "growsurf_ruby/models/participant_payout_list"
115
138
  require_relative "growsurf_ruby/models/referral_list"
139
+ require_relative "growsurf_ruby/models/referral_flow_screenshots_response"
140
+ require_relative "growsurf_ruby/models/reward_tax_valuation"
116
141
  require_relative "growsurf_ruby/models"
142
+ require_relative "growsurf_ruby/resources/account"
117
143
  require_relative "growsurf_ruby/resources/campaign"
118
144
  require_relative "growsurf_ruby/resources/campaign/commission"
145
+ require_relative "growsurf_ruby/resources/campaign/design"
146
+ require_relative "growsurf_ruby/resources/campaign/emails"
147
+ require_relative "growsurf_ruby/resources/campaign/installation"
148
+ require_relative "growsurf_ruby/resources/campaign/options"
119
149
  require_relative "growsurf_ruby/resources/campaign/participant"
120
150
  require_relative "growsurf_ruby/resources/campaign/reward"
121
151
  require_relative "growsurf_ruby/resources/campaign/rewards"
152
+ require_relative "growsurf_ruby/resources/campaign/webhooks"
@@ -14,6 +14,9 @@ module GrowsurfRuby
14
14
  sig { returns(String) }
15
15
  attr_reader :api_key
16
16
 
17
+ sig { returns(GrowsurfRuby::Resources::Account) }
18
+ attr_reader :account
19
+
17
20
  sig { returns(GrowsurfRuby::Resources::Campaign) }
18
21
  attr_reader :campaign
19
22
 
@@ -0,0 +1,125 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ class Account < GrowsurfRuby::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(GrowsurfRuby::Account, GrowsurfRuby::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :email
13
+
14
+ # The account's unique identifier.
15
+ sig { returns(String) }
16
+ attr_accessor :id
17
+
18
+ # GrowSurf-team verification state. `VERIFIED` is required before a program can
19
+ # send participant emails.
20
+ sig { returns(GrowsurfRuby::Account::VerificationStatus::OrSymbol) }
21
+ attr_accessor :verification_status
22
+
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :company
25
+
26
+ # When the account was created, as a Unix timestamp in milliseconds.
27
+ sig { returns(T.nilable(Integer)) }
28
+ attr_accessor :created_at
29
+
30
+ sig { returns(T.nilable(String)) }
31
+ attr_accessor :first_name
32
+
33
+ sig { returns(T.nilable(String)) }
34
+ attr_accessor :last_name
35
+
36
+ # When team verification was last requested, as a Unix timestamp in milliseconds.
37
+ sig { returns(T.nilable(Integer)) }
38
+ attr_accessor :verification_requested_at
39
+
40
+ sig do
41
+ params(
42
+ email: String,
43
+ id: String,
44
+ verification_status:
45
+ GrowsurfRuby::Account::VerificationStatus::OrSymbol,
46
+ company: T.nilable(String),
47
+ created_at: T.nilable(Integer),
48
+ first_name: T.nilable(String),
49
+ last_name: T.nilable(String),
50
+ verification_requested_at: T.nilable(Integer)
51
+ ).returns(T.attached_class)
52
+ end
53
+ def self.new(
54
+ email:,
55
+ # The account's unique identifier.
56
+ id:,
57
+ # GrowSurf-team verification state. `VERIFIED` is required before a program can
58
+ # send participant emails.
59
+ verification_status:,
60
+ company: nil,
61
+ # When the account was created, as a Unix timestamp in milliseconds.
62
+ created_at: nil,
63
+ first_name: nil,
64
+ last_name: nil,
65
+ # When team verification was last requested, as a Unix timestamp in milliseconds.
66
+ verification_requested_at: nil
67
+ )
68
+ end
69
+
70
+ sig do
71
+ override.returns(
72
+ {
73
+ email: String,
74
+ id: String,
75
+ verification_status:
76
+ GrowsurfRuby::Account::VerificationStatus::TaggedSymbol,
77
+ company: T.nilable(String),
78
+ created_at: T.nilable(Integer),
79
+ first_name: T.nilable(String),
80
+ last_name: T.nilable(String),
81
+ verification_requested_at: T.nilable(Integer)
82
+ }
83
+ )
84
+ end
85
+ def to_hash
86
+ end
87
+
88
+ # GrowSurf-team verification state. `VERIFIED` is required before a program can
89
+ # send participant emails.
90
+ module VerificationStatus
91
+ extend GrowsurfRuby::Internal::Type::Enum
92
+
93
+ TaggedSymbol =
94
+ T.type_alias do
95
+ T.all(Symbol, GrowsurfRuby::Account::VerificationStatus)
96
+ end
97
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
98
+
99
+ NOT_REQUESTED =
100
+ T.let(
101
+ :NOT_REQUESTED,
102
+ GrowsurfRuby::Account::VerificationStatus::TaggedSymbol
103
+ )
104
+ REQUESTED =
105
+ T.let(
106
+ :REQUESTED,
107
+ GrowsurfRuby::Account::VerificationStatus::TaggedSymbol
108
+ )
109
+ VERIFIED =
110
+ T.let(
111
+ :VERIFIED,
112
+ GrowsurfRuby::Account::VerificationStatus::TaggedSymbol
113
+ )
114
+
115
+ sig do
116
+ override.returns(
117
+ T::Array[GrowsurfRuby::Account::VerificationStatus::TaggedSymbol]
118
+ )
119
+ end
120
+ def self.values
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,73 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ class AccountCreateParams < 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::AccountCreateParams,
13
+ GrowsurfRuby::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The email address for the new account. Personal emails and disposable email addresses are not accepted.
18
+ sig { returns(String) }
19
+ attr_accessor :email
20
+
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :company
23
+
24
+ sig { params(company: String).void }
25
+ attr_writer :company
26
+
27
+ sig { returns(T.nilable(String)) }
28
+ attr_reader :first_name
29
+
30
+ sig { params(first_name: String).void }
31
+ attr_writer :first_name
32
+
33
+ sig { returns(T.nilable(String)) }
34
+ attr_reader :last_name
35
+
36
+ sig { params(last_name: String).void }
37
+ attr_writer :last_name
38
+
39
+ sig do
40
+ params(
41
+ email: String,
42
+ company: String,
43
+ first_name: String,
44
+ last_name: String,
45
+ request_options: GrowsurfRuby::RequestOptions::OrHash
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ # The email address for the new account. Personal emails and disposable email addresses are not accepted.
50
+ email:,
51
+ company: nil,
52
+ first_name: nil,
53
+ last_name: nil,
54
+ request_options: {}
55
+ )
56
+ end
57
+
58
+ sig do
59
+ override.returns(
60
+ {
61
+ email: String,
62
+ company: String,
63
+ first_name: String,
64
+ last_name: String,
65
+ request_options: GrowsurfRuby::RequestOptions
66
+ }
67
+ )
68
+ end
69
+ def to_hash
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,115 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ class AccountCreateResponse < GrowsurfRuby::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ GrowsurfRuby::Models::AccountCreateResponse,
10
+ GrowsurfRuby::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # An API key for the new account. Use it as the `Bearer` token on subsequent
15
+ # requests. Locked (`403` `EMAIL_NOT_VERIFIED_ERROR`) until the account's email
16
+ # is verified, and rotated when the account owner first signs in to the GrowSurf
17
+ # dashboard.
18
+ sig { returns(String) }
19
+ attr_accessor :api_key
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :email
23
+
24
+ # The new account's unique identifier.
25
+ sig { returns(String) }
26
+ attr_accessor :id
27
+
28
+ # GrowSurf account verification state. `VERIFIED` is required before a program
29
+ # can send participant emails.
30
+ sig do
31
+ returns(
32
+ GrowsurfRuby::Models::AccountCreateResponse::VerificationStatus::TaggedSymbol
33
+ )
34
+ end
35
+ attr_accessor :verification_status
36
+
37
+ sig do
38
+ params(
39
+ api_key: String,
40
+ email: String,
41
+ id: String,
42
+ verification_status:
43
+ GrowsurfRuby::Models::AccountCreateResponse::VerificationStatus::OrSymbol
44
+ ).returns(T.attached_class)
45
+ end
46
+ def self.new(
47
+ # An API key for the new account. Use it as the `Bearer` token on subsequent
48
+ # requests. Locked (`403` `EMAIL_NOT_VERIFIED_ERROR`) until the account's email
49
+ # is verified, and rotated when the account owner first signs in to the GrowSurf
50
+ # dashboard.
51
+ api_key:,
52
+ email:,
53
+ # The new account's unique identifier.
54
+ id:,
55
+ # GrowSurf account verification state. `VERIFIED` is required before a program
56
+ # can send participant emails.
57
+ verification_status:
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ api_key: String,
65
+ email: String,
66
+ id: String,
67
+ verification_status:
68
+ GrowsurfRuby::Models::AccountCreateResponse::VerificationStatus::TaggedSymbol
69
+ }
70
+ )
71
+ end
72
+ def to_hash
73
+ end
74
+
75
+ module VerificationStatus
76
+ extend GrowsurfRuby::Internal::Type::Enum
77
+
78
+ TaggedSymbol =
79
+ T.type_alias do
80
+ T.all(
81
+ Symbol,
82
+ GrowsurfRuby::Models::AccountCreateResponse::VerificationStatus
83
+ )
84
+ end
85
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
86
+
87
+ NOT_REQUESTED =
88
+ T.let(
89
+ :NOT_REQUESTED,
90
+ GrowsurfRuby::Models::AccountCreateResponse::VerificationStatus::TaggedSymbol
91
+ )
92
+ REQUESTED =
93
+ T.let(
94
+ :REQUESTED,
95
+ GrowsurfRuby::Models::AccountCreateResponse::VerificationStatus::TaggedSymbol
96
+ )
97
+ VERIFIED =
98
+ T.let(
99
+ :VERIFIED,
100
+ GrowsurfRuby::Models::AccountCreateResponse::VerificationStatus::TaggedSymbol
101
+ )
102
+
103
+ sig do
104
+ override.returns(
105
+ T::Array[
106
+ GrowsurfRuby::Models::AccountCreateResponse::VerificationStatus::TaggedSymbol
107
+ ]
108
+ )
109
+ end
110
+ def self.values
111
+ end
112
+ end
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,76 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ class AccountResendVerificationEmailResponse < GrowsurfRuby::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ GrowsurfRuby::Models::AccountResendVerificationEmailResponse,
10
+ GrowsurfRuby::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig do
15
+ returns(
16
+ GrowsurfRuby::Models::AccountResendVerificationEmailResponse::Status::TaggedSymbol
17
+ )
18
+ end
19
+ attr_accessor :status
20
+
21
+ sig { returns(T::Boolean) }
22
+ attr_accessor :success
23
+
24
+ sig do
25
+ params(
26
+ status:
27
+ GrowsurfRuby::Models::AccountResendVerificationEmailResponse::Status::OrSymbol,
28
+ success: T::Boolean
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(status:, success:)
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ status:
38
+ GrowsurfRuby::Models::AccountResendVerificationEmailResponse::Status::TaggedSymbol,
39
+ success: T::Boolean
40
+ }
41
+ )
42
+ end
43
+ def to_hash
44
+ end
45
+
46
+ module Status
47
+ extend GrowsurfRuby::Internal::Type::Enum
48
+
49
+ TaggedSymbol =
50
+ T.type_alias do
51
+ T.all(
52
+ Symbol,
53
+ GrowsurfRuby::Models::AccountResendVerificationEmailResponse::Status
54
+ )
55
+ end
56
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
57
+
58
+ SENT =
59
+ T.let(
60
+ :SENT,
61
+ GrowsurfRuby::Models::AccountResendVerificationEmailResponse::Status::TaggedSymbol
62
+ )
63
+
64
+ sig do
65
+ override.returns(
66
+ T::Array[
67
+ GrowsurfRuby::Models::AccountResendVerificationEmailResponse::Status::TaggedSymbol
68
+ ]
69
+ )
70
+ end
71
+ def self.values
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,30 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ class AccountRotateAPIKeyResponse < GrowsurfRuby::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ GrowsurfRuby::Models::AccountRotateAPIKeyResponse,
10
+ GrowsurfRuby::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The new API key. The previous key is revoked immediately.
15
+ sig { returns(String) }
16
+ attr_accessor :api_key
17
+
18
+ sig { params(api_key: String).returns(T.attached_class) }
19
+ def self.new(
20
+ # The new API key. The previous key is revoked immediately.
21
+ api_key:
22
+ )
23
+ end
24
+
25
+ sig { override.returns({ api_key: String }) }
26
+ def to_hash
27
+ end
28
+ end
29
+ end
30
+ end