growsurf-ruby 0.7.0 → 1.0.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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/lib/growsurf_ruby/models/campaign/campaign_reward_list_response.rb +21 -0
  5. data/lib/growsurf_ruby/models/campaign/delete_reward_response.rb +26 -0
  6. data/lib/growsurf_ruby/models/campaign/reward.rb +193 -0
  7. data/lib/growsurf_ruby/models/campaign/reward_create_params.rb +212 -0
  8. data/lib/growsurf_ruby/models/campaign/reward_delete_params.rb +4 -4
  9. data/lib/growsurf_ruby/models/campaign/reward_update_params.rb +205 -0
  10. data/lib/growsurf_ruby/models/campaign.rb +28 -1
  11. data/lib/growsurf_ruby/models/campaign_create_params.rb +68 -0
  12. data/lib/growsurf_ruby/models/campaign_update_params.rb +63 -0
  13. data/lib/growsurf_ruby/models/reward_tax_valuation.rb +35 -0
  14. data/lib/growsurf_ruby/models.rb +6 -0
  15. data/lib/growsurf_ruby/resources/campaign/design.rb +66 -0
  16. data/lib/growsurf_ruby/resources/campaign/emails.rb +63 -0
  17. data/lib/growsurf_ruby/resources/campaign/installation.rb +65 -0
  18. data/lib/growsurf_ruby/resources/campaign/options.rb +63 -0
  19. data/lib/growsurf_ruby/resources/campaign/rewards.rb +199 -0
  20. data/lib/growsurf_ruby/resources/campaign.rb +112 -0
  21. data/lib/growsurf_ruby/version.rb +1 -1
  22. data/lib/growsurf_ruby.rb +13 -0
  23. data/rbi/growsurf_ruby/models/campaign/campaign_reward_list_response.rbi +41 -0
  24. data/rbi/growsurf_ruby/models/campaign/delete_reward_response.rbi +38 -0
  25. data/rbi/growsurf_ruby/models/campaign/reward.rbi +291 -0
  26. data/rbi/growsurf_ruby/models/campaign/reward_create_params.rbi +358 -0
  27. data/rbi/growsurf_ruby/models/campaign/reward_delete_params.rbi +4 -4
  28. data/rbi/growsurf_ruby/models/campaign/reward_update_params.rbi +309 -0
  29. data/rbi/growsurf_ruby/models/campaign.rbi +42 -3
  30. data/rbi/growsurf_ruby/models/campaign_create_params.rbi +125 -0
  31. data/rbi/growsurf_ruby/models/campaign_update_params.rbi +130 -0
  32. data/rbi/growsurf_ruby/models/reward_tax_valuation.rbi +56 -0
  33. data/rbi/growsurf_ruby/models.rbi +6 -0
  34. data/rbi/growsurf_ruby/resources/campaign/design.rbi +50 -0
  35. data/rbi/growsurf_ruby/resources/campaign/emails.rbi +49 -0
  36. data/rbi/growsurf_ruby/resources/campaign/installation.rbi +50 -0
  37. data/rbi/growsurf_ruby/resources/campaign/options.rbi +49 -0
  38. data/rbi/growsurf_ruby/resources/campaign/rewards.rbi +216 -0
  39. data/rbi/growsurf_ruby/resources/campaign.rbi +94 -0
  40. data/sig/growsurf_ruby/models/campaign/campaign_reward_list_response.rbs +18 -0
  41. data/sig/growsurf_ruby/models/campaign/delete_reward_response.rbs +17 -0
  42. data/sig/growsurf_ruby/models/campaign/reward.rbs +146 -0
  43. data/sig/growsurf_ruby/models/campaign/reward_create_params.rbs +210 -0
  44. data/sig/growsurf_ruby/models/campaign/reward_delete_params.rbs +4 -4
  45. data/sig/growsurf_ruby/models/campaign/reward_update_params.rbs +200 -0
  46. data/sig/growsurf_ruby/models/campaign.rbs +18 -3
  47. data/sig/growsurf_ruby/models/campaign_create_params.rbs +74 -0
  48. data/sig/growsurf_ruby/models/campaign_update_params.rbs +70 -0
  49. data/sig/growsurf_ruby/models/reward_tax_valuation.rbs +19 -0
  50. data/sig/growsurf_ruby/models.rbs +6 -0
  51. data/sig/growsurf_ruby/resources/campaign/design.rbs +20 -0
  52. data/sig/growsurf_ruby/resources/campaign/emails.rbs +20 -0
  53. data/sig/growsurf_ruby/resources/campaign/installation.rbs +20 -0
  54. data/sig/growsurf_ruby/resources/campaign/options.rbs +20 -0
  55. data/sig/growsurf_ruby/resources/campaign/rewards.rbs +74 -0
  56. data/sig/growsurf_ruby/resources/campaign.rbs +34 -0
  57. metadata +41 -2
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Resources
5
+ class Campaign
6
+ class Options
7
+ # Retrieves a program's options configuration — the same surface as the dashboard
8
+ # Program Editor's **Options** tab (fraud/reCAPTCHA, tax documentation,
9
+ # notification emails, and other program settings).
10
+ #
11
+ # This is a large, nested object. See the API reference for the full field list.
12
+ #
13
+ # @overload retrieve(id, request_options: {})
14
+ #
15
+ # @param id [String] GrowSurf program ID.
16
+ #
17
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
18
+ #
19
+ # @return [Hash{Symbol=>Object}]
20
+ def retrieve(id, params = {})
21
+ @client.request(
22
+ method: :get,
23
+ path: ["campaign/%1$s/options", id],
24
+ model: GrowsurfRuby::Internal::Type::HashOf[GrowsurfRuby::Internal::Type::Unknown],
25
+ options: params[:request_options]
26
+ )
27
+ end
28
+
29
+ # Updates a program's options configuration. Only the fields you send are changed.
30
+ # Unknown fields and invalid values return a `400`.
31
+ #
32
+ # The request body is a partial {CampaignOptions} object — see the API reference
33
+ # for the full field list.
34
+ #
35
+ # @overload update(id, body, request_options: {})
36
+ #
37
+ # @param id [String] GrowSurf program ID.
38
+ #
39
+ # @param body [Hash{Symbol=>Object}] Partial options configuration to merge.
40
+ #
41
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
42
+ #
43
+ # @return [Hash{Symbol=>Object}]
44
+ def update(id, body, params = {})
45
+ @client.request(
46
+ method: :patch,
47
+ path: ["campaign/%1$s/options", id],
48
+ body: body,
49
+ model: GrowsurfRuby::Internal::Type::HashOf[GrowsurfRuby::Internal::Type::Unknown],
50
+ options: params[:request_options]
51
+ )
52
+ end
53
+
54
+ # @api private
55
+ #
56
+ # @param client [GrowsurfRuby::Client]
57
+ def initialize(client:)
58
+ @client = client
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,199 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Resources
5
+ class Campaign
6
+ class Rewards
7
+ # Retrieves the active, visible, and enabled rewards configured for a program.
8
+ #
9
+ # @overload list(id, request_options: {})
10
+ #
11
+ # @param id [String] GrowSurf program ID.
12
+ #
13
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
14
+ #
15
+ # @return [GrowsurfRuby::Models::Campaign::CampaignRewardListResponse]
16
+ def list(id, params = {})
17
+ @client.request(
18
+ method: :get,
19
+ path: ["campaign/%1$s/reward-configs", id],
20
+ model: GrowsurfRuby::Models::Campaign::CampaignRewardListResponse,
21
+ options: params[:request_options]
22
+ )
23
+ end
24
+
25
+ # Creates a reward for a program. The reward `type` must be compatible with the
26
+ # program type.
27
+ #
28
+ # @overload create(id, type:, commission_structure: nil, conversions_required: nil, coupon_code: nil, description: nil, image_url: nil, is_active: nil, is_unlimited: nil, is_visible: nil, limit: nil, limit_duration: nil, metadata: nil, next_milestone_prefix: nil, next_milestone_suffix: nil, number_of_winners: nil, order: nil, referral_coupon_code: nil, referral_description: nil, referred_reward_upfront: nil, referred_value: nil, title: nil, value: nil, request_options: {})
29
+ #
30
+ # @param id [String] Path param: GrowSurf program ID.
31
+ #
32
+ # @param type [Symbol, GrowsurfRuby::Models::Campaign::RewardCreateParams::Type] Body param: The reward type. Immutable after creation.
33
+ #
34
+ # @param commission_structure [GrowsurfRuby::Models::CommissionStructure] Body param
35
+ #
36
+ # @param conversions_required [Integer] Body param
37
+ #
38
+ # @param coupon_code [String] Body param
39
+ #
40
+ # @param description [String] Body param
41
+ #
42
+ # @param image_url [String] Body param
43
+ #
44
+ # @param is_active [Boolean] Body param
45
+ #
46
+ # @param is_unlimited [Boolean] Body param
47
+ #
48
+ # @param is_visible [Boolean] Body param
49
+ #
50
+ # @param limit [Integer] Body param
51
+ #
52
+ # @param limit_duration [Symbol, GrowsurfRuby::Models::Campaign::RewardCreateParams::LimitDuration] Body param
53
+ #
54
+ # @param metadata [Hash{Symbol=>Object}] Body param: Custom key/value metadata (single-level; values are stored as string
55
+ #
56
+ # @param next_milestone_prefix [String] Body param
57
+ #
58
+ # @param next_milestone_suffix [String] Body param
59
+ #
60
+ # @param number_of_winners [Integer] Body param
61
+ #
62
+ # @param order [Integer] Body param
63
+ #
64
+ # @param referral_coupon_code [String] Body param
65
+ #
66
+ # @param referral_description [String] Body param
67
+ #
68
+ # @param referred_reward_upfront [Boolean] Body param
69
+ #
70
+ # @param referred_value [GrowsurfRuby::Models::RewardTaxValuation] Body param: Tax valuation for the referred friend's side of a double-sided rewa
71
+ #
72
+ # @param title [String] Body param
73
+ #
74
+ # @param value [GrowsurfRuby::Models::RewardTaxValuation] Body param: Tax valuation for the reward (the referrer's side of a double-sided
75
+ #
76
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
77
+ #
78
+ # @return [GrowsurfRuby::Models::Campaign::Reward]
79
+ #
80
+ # @see GrowsurfRuby::Models::Campaign::RewardCreateParams
81
+ def create(id, params)
82
+ parsed, options = GrowsurfRuby::Campaign::RewardCreateParams.dump_request(params)
83
+ @client.request(
84
+ method: :post,
85
+ path: ["campaign/%1$s/reward-configs", id],
86
+ body: parsed,
87
+ model: GrowsurfRuby::Models::Campaign::Reward,
88
+ options: options
89
+ )
90
+ end
91
+
92
+ # Updates an existing campaign reward. Only the fields you send are changed;
93
+ # `type` is immutable and must not be supplied.
94
+ #
95
+ # @overload update(campaign_reward_id, id:, commission_structure: nil, conversions_required: nil, coupon_code: nil, description: nil, image_url: nil, is_active: nil, is_unlimited: nil, is_visible: nil, limit: nil, limit_duration: nil, metadata: nil, next_milestone_prefix: nil, next_milestone_suffix: nil, number_of_winners: nil, order: nil, referral_coupon_code: nil, referral_description: nil, referred_reward_upfront: nil, referred_value: nil, title: nil, value: nil, request_options: {})
96
+ #
97
+ # @param campaign_reward_id [String] Path param: Campaign reward ID.
98
+ #
99
+ # @param id [String] Path param: GrowSurf program ID.
100
+ #
101
+ # @param commission_structure [GrowsurfRuby::Models::CommissionStructure] Body param
102
+ #
103
+ # @param conversions_required [Integer] Body param
104
+ #
105
+ # @param coupon_code [String] Body param
106
+ #
107
+ # @param description [String] Body param
108
+ #
109
+ # @param image_url [String] Body param
110
+ #
111
+ # @param is_active [Boolean] Body param
112
+ #
113
+ # @param is_unlimited [Boolean] Body param
114
+ #
115
+ # @param is_visible [Boolean] Body param
116
+ #
117
+ # @param limit [Integer] Body param
118
+ #
119
+ # @param limit_duration [Symbol, GrowsurfRuby::Models::Campaign::RewardUpdateParams::LimitDuration] Body param
120
+ #
121
+ # @param metadata [Hash{Symbol=>Object}] Body param: Custom key/value metadata (single-level; values are stored as string
122
+ #
123
+ # @param next_milestone_prefix [String] Body param
124
+ #
125
+ # @param next_milestone_suffix [String] Body param
126
+ #
127
+ # @param number_of_winners [Integer] Body param
128
+ #
129
+ # @param order [Integer] Body param
130
+ #
131
+ # @param referral_coupon_code [String] Body param
132
+ #
133
+ # @param referral_description [String] Body param
134
+ #
135
+ # @param referred_reward_upfront [Boolean] Body param
136
+ #
137
+ # @param referred_value [GrowsurfRuby::Models::RewardTaxValuation] Body param: Tax valuation for the referred friend's side of a double-sided rewa
138
+ #
139
+ # @param title [String] Body param
140
+ #
141
+ # @param value [GrowsurfRuby::Models::RewardTaxValuation] Body param: Tax valuation for the reward (the referrer's side of a double-sided
142
+ #
143
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
144
+ #
145
+ # @return [GrowsurfRuby::Models::Campaign::Reward]
146
+ #
147
+ # @see GrowsurfRuby::Models::Campaign::RewardUpdateParams
148
+ def update(campaign_reward_id, params)
149
+ parsed, options = GrowsurfRuby::Campaign::RewardUpdateParams.dump_request(params)
150
+ id =
151
+ parsed.delete(:id) do
152
+ raise ArgumentError.new("missing required path argument #{_1}")
153
+ end
154
+ @client.request(
155
+ method: :patch,
156
+ path: ["campaign/%1$s/reward-configs/%2$s", id, campaign_reward_id],
157
+ body: parsed,
158
+ model: GrowsurfRuby::Models::Campaign::Reward,
159
+ options: options
160
+ )
161
+ end
162
+
163
+ # Deletes a campaign reward.
164
+ #
165
+ # @overload delete(campaign_reward_id, id:, request_options: {})
166
+ #
167
+ # @param campaign_reward_id [String] Campaign reward ID.
168
+ #
169
+ # @param id [String] GrowSurf program ID.
170
+ #
171
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
172
+ #
173
+ # @return [GrowsurfRuby::Models::Campaign::DeleteRewardResponse]
174
+ #
175
+ # @see GrowsurfRuby::Models::Campaign::RewardDeleteParams
176
+ def delete(campaign_reward_id, params)
177
+ parsed, options = GrowsurfRuby::Campaign::RewardDeleteParams.dump_request(params)
178
+ id =
179
+ parsed.delete(:id) do
180
+ raise ArgumentError.new("missing required path argument #{_1}")
181
+ end
182
+ @client.request(
183
+ method: :delete,
184
+ path: ["campaign/%1$s/reward-configs/%2$s", id, campaign_reward_id],
185
+ model: GrowsurfRuby::Models::Campaign::DeleteRewardResponse,
186
+ options: options
187
+ )
188
+ end
189
+
190
+ # @api private
191
+ #
192
+ # @param client [GrowsurfRuby::Client]
193
+ def initialize(client:)
194
+ @client = client
195
+ end
196
+ end
197
+ end
198
+ end
199
+ end
@@ -14,6 +14,26 @@ module GrowsurfRuby
14
14
  # @return [GrowsurfRuby::Resources::Campaign::Commission]
15
15
  attr_reader :commission
16
16
 
17
+ # Campaign reward configuration operations.
18
+ # @return [GrowsurfRuby::Resources::Campaign::Rewards]
19
+ attr_reader :rewards
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
+
17
37
  # Retrieves a program for the given program ID.
18
38
  #
19
39
  # @overload retrieve(id, request_options: {})
@@ -52,6 +72,93 @@ module GrowsurfRuby
52
72
  )
53
73
  end
54
74
 
75
+ # Creates a program. Only `type` is required; everything else is
76
+ # server-defaulted. Editor-tab configuration (design, emails, options,
77
+ # installation) is not accepted here — configure it via the config sub-resources
78
+ # (e.g. `campaign.options.update`) after the program is created.
79
+ #
80
+ # @overload create(type:, company_logo_image_url: nil, company_name: nil, currency_iso: nil, name: nil, rewards: nil, request_options: {})
81
+ #
82
+ # @param type [Symbol, GrowsurfRuby::Models::CampaignCreateParams::Type] The program type. Immutable after creation.
83
+ #
84
+ # @param company_logo_image_url [String]
85
+ #
86
+ # @param company_name [String]
87
+ #
88
+ # @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.
89
+ #
90
+ # @param name [String] The program name. Defaults to "Untitled Program".
91
+ #
92
+ # @param rewards [Array<GrowsurfRuby::Models::Campaign::RewardCreateParams>] Optional inline rewards to create with the program.
93
+ #
94
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
95
+ #
96
+ # @return [GrowsurfRuby::Models::CampaignAPI]
97
+ #
98
+ # @see GrowsurfRuby::Models::CampaignCreateParams
99
+ def create(params)
100
+ parsed, options = GrowsurfRuby::CampaignCreateParams.dump_request(params)
101
+ @client.request(
102
+ method: :post,
103
+ path: "campaigns",
104
+ body: parsed,
105
+ model: GrowsurfRuby::CampaignAPI,
106
+ options: options
107
+ )
108
+ end
109
+
110
+ # Updates a program's identity and lifecycle. Only the fields you send are changed.
111
+ # `type`, `urlId`, and `currencyISO` are immutable. Editor-tab configuration (design, emails,
112
+ # options, installation) is edited via the dedicated config sub-resources
113
+ # (`campaign.design`, `campaign.emails`, `campaign.options`, `campaign.installation`),
114
+ # not here.
115
+ #
116
+ # @overload update(id, company_logo_image_url: nil, company_name: nil, name: nil, status: nil, request_options: {})
117
+ #
118
+ # @param id [String] Path param: GrowSurf program ID.
119
+ #
120
+ # @param company_logo_image_url [String] Body param
121
+ #
122
+ # @param company_name [String] Body param
123
+ #
124
+ # @param name [String] Body param
125
+ #
126
+ # @param status [Symbol, GrowsurfRuby::Models::CampaignUpdateParams::Status] Body param: The program status. Transitions are validated; DELETED is not allowe
127
+ #
128
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
129
+ #
130
+ # @return [GrowsurfRuby::Models::CampaignAPI]
131
+ #
132
+ # @see GrowsurfRuby::Models::CampaignUpdateParams
133
+ def update(id, params)
134
+ parsed, options = GrowsurfRuby::CampaignUpdateParams.dump_request(params)
135
+ @client.request(
136
+ method: :patch,
137
+ path: ["campaign/%1$s", id],
138
+ body: parsed,
139
+ model: GrowsurfRuby::CampaignAPI,
140
+ options: options
141
+ )
142
+ end
143
+
144
+ # Clones an existing program, returning the newly created program.
145
+ #
146
+ # @overload clone(id, request_options: {})
147
+ #
148
+ # @param id [String] GrowSurf program ID.
149
+ #
150
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
151
+ #
152
+ # @return [GrowsurfRuby::Models::CampaignAPI]
153
+ def clone(id, params = {})
154
+ @client.request(
155
+ method: :post,
156
+ path: ["campaign/%1$s/clone", id],
157
+ model: GrowsurfRuby::CampaignAPI,
158
+ options: params[:request_options]
159
+ )
160
+ end
161
+
55
162
  # Some parameter documentations has been truncated, see
56
163
  # {GrowsurfRuby::Models::CampaignCreateMobileParticipantTokenParams} for more
57
164
  # details.
@@ -307,6 +414,11 @@ module GrowsurfRuby
307
414
  @participant = GrowsurfRuby::Resources::Campaign::Participant.new(client: client)
308
415
  @reward = GrowsurfRuby::Resources::Campaign::Reward.new(client: client)
309
416
  @commission = GrowsurfRuby::Resources::Campaign::Commission.new(client: client)
417
+ @rewards = GrowsurfRuby::Resources::Campaign::Rewards.new(client: client)
418
+ @design = GrowsurfRuby::Resources::Campaign::Design.new(client: client)
419
+ @emails = GrowsurfRuby::Resources::Campaign::Emails.new(client: client)
420
+ @options = GrowsurfRuby::Resources::Campaign::Options.new(client: client)
421
+ @installation = GrowsurfRuby::Resources::Campaign::Installation.new(client: client)
310
422
  end
311
423
  end
312
424
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GrowsurfRuby
4
- VERSION = "0.7.0"
4
+ VERSION = "1.0.0"
5
5
  end
data/lib/growsurf_ruby.rb CHANGED
@@ -54,10 +54,12 @@ require_relative "growsurf_ruby/internal/transport/pooled_net_requester"
54
54
  require_relative "growsurf_ruby/client"
55
55
  require_relative "growsurf_ruby/models/campaign/create"
56
56
  require_relative "growsurf_ruby/models/campaign/participant"
57
+ require_relative "growsurf_ruby/models/campaign/campaign_reward_list_response"
57
58
  require_relative "growsurf_ruby/models/campaign/commission_approve_params"
58
59
  require_relative "growsurf_ruby/models/campaign/commission_approve_response"
59
60
  require_relative "growsurf_ruby/models/campaign/commission_delete_params"
60
61
  require_relative "growsurf_ruby/models/campaign/commission_delete_response"
62
+ require_relative "growsurf_ruby/models/campaign/delete_reward_response"
61
63
  require_relative "growsurf_ruby/models/campaign/fraud_risk_level"
62
64
  require_relative "growsurf_ruby/models/campaign/participant_add_params"
63
65
  require_relative "growsurf_ruby/models/campaign/participant_cancel_delayed_referral_params"
@@ -82,15 +84,19 @@ require_relative "growsurf_ruby/models/campaign/participant_trigger_referral_res
82
84
  require_relative "growsurf_ruby/models/campaign/participant_update_params"
83
85
  require_relative "growsurf_ruby/models/campaign/referral_source"
84
86
  require_relative "growsurf_ruby/models/campaign/referral_status"
87
+ require_relative "growsurf_ruby/models/campaign/reward"
85
88
  require_relative "growsurf_ruby/models/campaign/reward_approve_params"
86
89
  require_relative "growsurf_ruby/models/campaign/reward_approve_response"
90
+ require_relative "growsurf_ruby/models/campaign/reward_create_params"
87
91
  require_relative "growsurf_ruby/models/campaign/reward_delete_params"
88
92
  require_relative "growsurf_ruby/models/campaign/reward_delete_response"
89
93
  require_relative "growsurf_ruby/models/campaign/reward_fulfill_params"
90
94
  require_relative "growsurf_ruby/models/campaign/reward_fulfill_response"
95
+ require_relative "growsurf_ruby/models/campaign/reward_update_params"
91
96
  require_relative "growsurf_ruby/models/campaign"
92
97
  require_relative "growsurf_ruby/models/campaign_create_mobile_participant_token_params"
93
98
  require_relative "growsurf_ruby/models/campaign_create_mobile_participant_token_response"
99
+ require_relative "growsurf_ruby/models/campaign_create_params"
94
100
  require_relative "growsurf_ruby/models/campaign_list_commissions_params"
95
101
  require_relative "growsurf_ruby/models/campaign_list_leaderboard_params"
96
102
  require_relative "growsurf_ruby/models/campaign_list_params"
@@ -101,13 +107,20 @@ require_relative "growsurf_ruby/models/campaign_list_response"
101
107
  require_relative "growsurf_ruby/models/campaign_retrieve_analytics_params"
102
108
  require_relative "growsurf_ruby/models/campaign_retrieve_analytics_response"
103
109
  require_relative "growsurf_ruby/models/campaign_retrieve_params"
110
+ require_relative "growsurf_ruby/models/campaign_update_params"
104
111
  require_relative "growsurf_ruby/models/commission_structure"
105
112
  require_relative "growsurf_ruby/models/participant_commission_list"
106
113
  require_relative "growsurf_ruby/models/participant_list"
107
114
  require_relative "growsurf_ruby/models/participant_payout_list"
108
115
  require_relative "growsurf_ruby/models/referral_list"
116
+ require_relative "growsurf_ruby/models/reward_tax_valuation"
109
117
  require_relative "growsurf_ruby/models"
110
118
  require_relative "growsurf_ruby/resources/campaign"
111
119
  require_relative "growsurf_ruby/resources/campaign/commission"
120
+ require_relative "growsurf_ruby/resources/campaign/design"
121
+ require_relative "growsurf_ruby/resources/campaign/emails"
122
+ require_relative "growsurf_ruby/resources/campaign/installation"
123
+ require_relative "growsurf_ruby/resources/campaign/options"
112
124
  require_relative "growsurf_ruby/resources/campaign/participant"
113
125
  require_relative "growsurf_ruby/resources/campaign/reward"
126
+ require_relative "growsurf_ruby/resources/campaign/rewards"
@@ -0,0 +1,41 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class CampaignRewardListResponse < GrowsurfRuby::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ GrowsurfRuby::Models::Campaign::CampaignRewardListResponse,
11
+ GrowsurfRuby::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The program's active, visible, and enabled rewards.
16
+ sig { returns(T::Array[GrowsurfRuby::Models::Campaign::Reward]) }
17
+ attr_accessor :rewards
18
+
19
+ # The list of a program's configured rewards.
20
+ sig do
21
+ params(
22
+ rewards: T::Array[GrowsurfRuby::Models::Campaign::Reward::OrHash]
23
+ ).returns(T.attached_class)
24
+ end
25
+ def self.new(
26
+ # The program's active, visible, and enabled rewards.
27
+ rewards:
28
+ )
29
+ end
30
+
31
+ sig do
32
+ override.returns(
33
+ { rewards: T::Array[GrowsurfRuby::Models::Campaign::Reward] }
34
+ )
35
+ end
36
+ def to_hash
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class DeleteRewardResponse < GrowsurfRuby::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ GrowsurfRuby::Models::Campaign::DeleteRewardResponse,
11
+ GrowsurfRuby::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The deleted reward ID.
16
+ sig { returns(String) }
17
+ attr_accessor :id
18
+
19
+ sig { returns(T::Boolean) }
20
+ attr_accessor :success
21
+
22
+ sig do
23
+ params(id: String, success: T::Boolean).returns(T.attached_class)
24
+ end
25
+ def self.new(
26
+ # The deleted reward ID.
27
+ id:,
28
+ success:
29
+ )
30
+ end
31
+
32
+ sig { override.returns({ id: String, success: T::Boolean }) }
33
+ def to_hash
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end