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
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ # @see GrowsurfRuby::Resources::Campaign::Participant#email
7
+ class ParticipantEmailResponse < GrowsurfRuby::Internal::Type::BaseModel
8
+ # @!attribute status
9
+ # The email was accepted for delivery.
10
+ #
11
+ # @return [Symbol, GrowsurfRuby::Models::Campaign::ParticipantEmailResponse::Status]
12
+ required :status, enum: -> { GrowsurfRuby::Campaign::ParticipantEmailResponse::Status }
13
+
14
+ # @!attribute success
15
+ #
16
+ # @return [Boolean]
17
+ required :success, GrowsurfRuby::Internal::Type::Boolean
18
+
19
+ # @!method initialize(status:, success:)
20
+ # @param status [Symbol, GrowsurfRuby::Models::Campaign::ParticipantEmailResponse::Status] The email was accepted for delivery.
21
+ #
22
+ # @param success [Boolean]
23
+
24
+ # The email was accepted for delivery.
25
+ #
26
+ # @see GrowsurfRuby::Models::Campaign::ParticipantEmailResponse#status
27
+ module Status
28
+ extend GrowsurfRuby::Internal::Type::Enum
29
+
30
+ QUEUED = :queued
31
+
32
+ # @!method self.values
33
+ # @return [Array<Symbol>]
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ # @see GrowsurfRuby::Resources::Campaign::Participant#list_activity_logs
7
+ class ParticipantListActivityLogsParams < GrowsurfRuby::Internal::Type::BaseModel
8
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
9
+ include GrowsurfRuby::Internal::Type::RequestParameters
10
+
11
+ # @!attribute id
12
+ #
13
+ # @return [String]
14
+ required :id, String
15
+
16
+ # @!attribute participant_id_or_email
17
+ #
18
+ # @return [String]
19
+ required :participant_id_or_email, String
20
+
21
+ # @!attribute limit
22
+ # Number of logs to return (1–100, default 20).
23
+ #
24
+ # @return [Integer, nil]
25
+ optional :limit, Integer
26
+
27
+ # @!attribute offset
28
+ # Number of logs to skip.
29
+ #
30
+ # @return [Integer, nil]
31
+ optional :offset, Integer
32
+
33
+ # @!method initialize(id:, participant_id_or_email:, limit: nil, offset: nil, request_options: {})
34
+ # @param id [String]
35
+ #
36
+ # @param participant_id_or_email [String]
37
+ #
38
+ # @param limit [Integer] Number of logs to return (1–100, default 20).
39
+ #
40
+ # @param offset [Integer] Number of logs to skip.
41
+ #
42
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}]
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ # @see GrowsurfRuby::Resources::Campaign::Participant#retrieve_analytics
7
+ class ParticipantRetrieveAnalyticsParams < GrowsurfRuby::Internal::Type::BaseModel
8
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
9
+ include GrowsurfRuby::Internal::Type::RequestParameters
10
+
11
+ # @!attribute id
12
+ #
13
+ # @return [String]
14
+ required :id, String
15
+
16
+ # @!attribute participant_id_or_email
17
+ #
18
+ # @return [String]
19
+ required :participant_id_or_email, String
20
+
21
+ # @!attribute days
22
+ # Last number of days to retrieve analytics for. Defaults to 365. Maximum 1825.
23
+ #
24
+ # @return [Integer, nil]
25
+ optional :days, Integer
26
+
27
+ # @!attribute end_date
28
+ # End date of the analytics timeframe as a Unix timestamp in milliseconds.
29
+ # Required if `days` is not set.
30
+ #
31
+ # @return [Integer, nil]
32
+ optional :end_date, Integer
33
+
34
+ # @!attribute include
35
+ # Set to `series` to also return this participant's own activity per period.
36
+ #
37
+ # @return [Symbol, GrowsurfRuby::Models::Campaign::ParticipantRetrieveAnalyticsParams::Include, nil]
38
+ optional :include, enum: -> { GrowsurfRuby::Campaign::ParticipantRetrieveAnalyticsParams::Include }
39
+
40
+ # @!attribute interval
41
+ # Bucket size for the `series` (only used with `include=series`). Defaults to `day`.
42
+ #
43
+ # @return [Symbol, GrowsurfRuby::Models::Campaign::ParticipantRetrieveAnalyticsParams::Interval, nil]
44
+ optional :interval, enum: -> { GrowsurfRuby::Campaign::ParticipantRetrieveAnalyticsParams::Interval }
45
+
46
+ # @!attribute start_date
47
+ # Start date of the analytics timeframe as a Unix timestamp in milliseconds.
48
+ # Required if `days` is not set.
49
+ #
50
+ # @return [Integer, nil]
51
+ optional :start_date, Integer
52
+
53
+ # @!method initialize(id:, participant_id_or_email:, days: nil, end_date: nil, include: nil, interval: nil, start_date: nil, request_options: {})
54
+ # Some parameter documentations has been truncated, see
55
+ # {GrowsurfRuby::Models::Campaign::ParticipantRetrieveAnalyticsParams} for more
56
+ # details.
57
+ #
58
+ # @param id [String]
59
+ #
60
+ # @param participant_id_or_email [String]
61
+ #
62
+ # @param days [Integer] Last number of days to retrieve analytics for. Defaults to 365. Maximum 1825.
63
+ #
64
+ # @param end_date [Integer] End date of the analytics timeframe as a Unix timestamp in milliseconds. Require
65
+ #
66
+ # @param include [Symbol, GrowsurfRuby::Models::Campaign::ParticipantRetrieveAnalyticsParams::Include] Set to `series` to also return this participant's own activity per period.
67
+ #
68
+ # @param interval [Symbol, GrowsurfRuby::Models::Campaign::ParticipantRetrieveAnalyticsParams::Interval] Bucket size for the `series` (only used with `include=series`). Defaults to `day`.
69
+ #
70
+ # @param start_date [Integer] Start date of the analytics timeframe as a Unix timestamp in milliseconds. Requi
71
+ #
72
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}]
73
+
74
+ # Set to `series` to also return this participant's own activity per period.
75
+ module Include
76
+ extend GrowsurfRuby::Internal::Type::Enum
77
+
78
+ SERIES = :series
79
+
80
+ # @!method self.values
81
+ # @return [Array<Symbol>]
82
+ end
83
+
84
+ # Bucket size for the `series` (only used with `include=series`). Defaults to `day`.
85
+ module Interval
86
+ extend GrowsurfRuby::Internal::Type::Enum
87
+
88
+ DAY = :day
89
+ WEEK = :week
90
+ MONTH = :month
91
+
92
+ # @!method self.values
93
+ # @return [Array<Symbol>]
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -39,6 +39,19 @@ module GrowsurfRuby
39
39
  # @return [Hash{Symbol=>Object}, nil]
40
40
  optional :metadata, GrowsurfRuby::Internal::Type::HashOf[GrowsurfRuby::Internal::Type::Unknown]
41
41
 
42
+ # @!attribute notes
43
+ # Freeform internal notes about the participant (internal only, never exposed to
44
+ # participants).
45
+ #
46
+ # @return [String, nil]
47
+ optional :notes, String
48
+
49
+ # @!attribute paypal_email
50
+ # The participant's PayPal email address, used for affiliate payouts.
51
+ #
52
+ # @return [String, nil]
53
+ optional :paypal_email, String, api_name: :paypalEmail
54
+
42
55
  # @!attribute referral_status
43
56
  #
44
57
  # @return [Symbol, GrowsurfRuby::Models::Campaign::ParticipantUpdateParams::ReferralStatus, nil]
@@ -61,7 +74,10 @@ module GrowsurfRuby
61
74
  # @return [Array<String>, nil]
62
75
  optional :vanity_keys, GrowsurfRuby::Internal::Type::ArrayOf[String], api_name: :vanityKeys
63
76
 
64
- # @!method initialize(id:, participant_id_or_email:, email: nil, first_name: nil, last_name: nil, metadata: nil, referral_status: nil, referred_by: nil, unsubscribed: nil, vanity_keys: nil, request_options: {})
77
+ # @!method initialize(id:, participant_id_or_email:, email: nil, first_name: nil, last_name: nil, metadata: nil, notes: nil, paypal_email: nil, referral_status: nil, referred_by: nil, unsubscribed: nil, vanity_keys: nil, request_options: {})
78
+ # Some parameter documentations has been truncated, see
79
+ # {GrowsurfRuby::Models::Campaign::ParticipantUpdateParams} for more details.
80
+ #
65
81
  # @param id [String]
66
82
  #
67
83
  # @param participant_id_or_email [String]
@@ -74,6 +90,10 @@ module GrowsurfRuby
74
90
  #
75
91
  # @param metadata [Hash{Symbol=>Object}] Shallow custom metadata object.
76
92
  #
93
+ # @param notes [String] Freeform internal notes about the participant (internal only, never exposed to pa
94
+ #
95
+ # @param paypal_email [String] The participant's PayPal email address, used for affiliate payouts.
96
+ #
77
97
  # @param referral_status [Symbol, GrowsurfRuby::Models::Campaign::ParticipantUpdateParams::ReferralStatus]
78
98
  #
79
99
  # @param referred_by [String]
@@ -40,6 +40,9 @@ module GrowsurfRuby
40
40
  optional :conversions_required, Integer, api_name: :conversionsRequired, nil?: true
41
41
 
42
42
  # @!attribute coupon_code
43
+ # Legacy static coupon code shown to the referrer in the reward-won email and
44
+ # webhook. Display text only; superseded by a connected billing integration's
45
+ # issued coupon when one exists.
43
46
  #
44
47
  # @return [String, nil]
45
48
  optional :coupon_code, String, api_name: :couponCode, nil?: true
@@ -69,16 +72,22 @@ module GrowsurfRuby
69
72
  nil?: true
70
73
 
71
74
  # @!attribute next_milestone_prefix
75
+ # Text shown before a participant's referral count in milestone-progress copy.
76
+ # Applies to `MILESTONE` rewards.
72
77
  #
73
78
  # @return [String, nil]
74
79
  optional :next_milestone_prefix, String, api_name: :nextMilestonePrefix, nil?: true
75
80
 
76
81
  # @!attribute next_milestone_suffix
82
+ # Text shown after a participant's referral count in milestone-progress copy.
83
+ # Applies to `MILESTONE` rewards.
77
84
  #
78
85
  # @return [String, nil]
79
86
  optional :next_milestone_suffix, String, api_name: :nextMilestoneSuffix, nil?: true
80
87
 
81
88
  # @!attribute number_of_winners
89
+ # The number of winners (`LEADERBOARD` rewards only). With `limitDuration`
90
+ # `PER_MONTH` this many win each month, otherwise this many win in total.
82
91
  #
83
92
  # @return [Integer, nil]
84
93
  optional :number_of_winners, Integer, api_name: :numberOfWinners, nil?: true
@@ -88,6 +97,14 @@ module GrowsurfRuby
88
97
  # @return [Integer, nil]
89
98
  optional :order, Integer, nil?: true
90
99
 
100
+ # @!attribute referral_coupon_code
101
+ # Legacy static coupon code shown to the referred friend (double-sided rewards)
102
+ # in the reward-won email and webhook. Display text only; superseded by a
103
+ # connected billing integration's issued coupon when one exists.
104
+ #
105
+ # @return [String, nil]
106
+ optional :referral_coupon_code, String, api_name: :referralCouponCode, nil?: true
107
+
91
108
  # @!attribute referral_description
92
109
  #
93
110
  # @return [String, nil]
@@ -100,7 +117,22 @@ module GrowsurfRuby
100
117
  GrowsurfRuby::Internal::Type::Boolean,
101
118
  api_name: :referredRewardUpfront
102
119
 
103
- # @!method initialize(id:, is_unlimited:, metadata:, type:, commission_structure: nil, conversions_required: nil, coupon_code: nil, description: nil, image_url: nil, limit: nil, limit_duration: nil, next_milestone_prefix: nil, next_milestone_suffix: nil, number_of_winners: nil, order: nil, referral_description: nil, referred_reward_upfront: nil)
120
+ # @!attribute referred_value
121
+ # Tax valuation for the referred friend's side of a double-sided reward.
122
+ #
123
+ # @return [GrowsurfRuby::Models::RewardTaxValuation, nil]
124
+ optional :referred_value,
125
+ -> { GrowsurfRuby::RewardTaxValuation },
126
+ api_name: :referredValue,
127
+ nil?: true
128
+
129
+ # @!attribute value
130
+ # Tax valuation for the reward (the referrer's side of a double-sided reward).
131
+ #
132
+ # @return [GrowsurfRuby::Models::RewardTaxValuation, nil]
133
+ optional :value, -> { GrowsurfRuby::RewardTaxValuation }, nil?: true
134
+
135
+ # @!method initialize(id:, is_unlimited:, metadata:, type:, commission_structure: nil, conversions_required: nil, coupon_code: nil, description: nil, image_url: nil, limit: nil, limit_duration: 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, value: nil)
104
136
  # @param id [String]
105
137
  #
106
138
  # @param is_unlimited [Boolean]
@@ -113,7 +145,7 @@ module GrowsurfRuby
113
145
  #
114
146
  # @param conversions_required [Integer, nil]
115
147
  #
116
- # @param coupon_code [String, nil]
148
+ # @param coupon_code [String, nil] Legacy static coupon code shown to the referrer in the reward-won email and web
117
149
  #
118
150
  # @param description [String, nil]
119
151
  #
@@ -123,17 +155,23 @@ module GrowsurfRuby
123
155
  #
124
156
  # @param limit_duration [Symbol, GrowsurfRuby::Models::Campaign::Reward::LimitDuration, nil]
125
157
  #
126
- # @param next_milestone_prefix [String, nil]
158
+ # @param next_milestone_prefix [String, nil] Text shown before a participant's referral count in milestone-progress copy. App
127
159
  #
128
- # @param next_milestone_suffix [String, nil]
160
+ # @param next_milestone_suffix [String, nil] Text shown after a participant's referral count in milestone-progress copy. Appl
129
161
  #
130
- # @param number_of_winners [Integer, nil]
162
+ # @param number_of_winners [Integer, nil] The number of winners (`LEADERBOARD` rewards only). With `limitDuration` `PER_MO
131
163
  #
132
164
  # @param order [Integer, nil]
133
165
  #
166
+ # @param referral_coupon_code [String, nil] Legacy static coupon code shown to the referred friend (double-sided rewards) in
167
+ #
134
168
  # @param referral_description [String, nil]
135
169
  #
136
170
  # @param referred_reward_upfront [Boolean]
171
+ #
172
+ # @param referred_value [GrowsurfRuby::Models::RewardTaxValuation, nil] Tax valuation for the referred friend's side of a double-sided reward.
173
+ #
174
+ # @param value [GrowsurfRuby::Models::RewardTaxValuation, nil] Tax valuation for the reward (the referrer's side of a double-sided reward).
137
175
 
138
176
  # @see GrowsurfRuby::Models::Campaign::Reward#type
139
177
  module Type
@@ -26,6 +26,9 @@ module GrowsurfRuby
26
26
  optional :conversions_required, Integer, api_name: :conversionsRequired
27
27
 
28
28
  # @!attribute coupon_code
29
+ # Legacy static coupon code shown to the referrer in the reward-won email and
30
+ # webhook. Display text only; superseded by a connected billing integration's
31
+ # issued coupon when one exists.
29
32
  #
30
33
  # @return [String, nil]
31
34
  optional :coupon_code, String, api_name: :couponCode
@@ -40,17 +43,16 @@ module GrowsurfRuby
40
43
  # @return [String, nil]
41
44
  optional :image_url, String, api_name: :imageUrl
42
45
 
43
- # @!attribute is_active
44
- #
45
- # @return [Boolean, nil]
46
- optional :is_active, GrowsurfRuby::Internal::Type::Boolean, api_name: :isActive
47
-
48
46
  # @!attribute is_unlimited
47
+ # Whether the reward can be earned an unlimited number of times. Defaults to
48
+ # `true`, except `MILESTONE` rewards, which can only be earned once.
49
49
  #
50
50
  # @return [Boolean, nil]
51
51
  optional :is_unlimited, GrowsurfRuby::Internal::Type::Boolean, api_name: :isUnlimited
52
52
 
53
53
  # @!attribute is_visible
54
+ # Whether the reward is enabled. When `false` the reward is disabled: hidden from
55
+ # participants and no longer awarded, including those who already earned it.
54
56
  #
55
57
  # @return [Boolean, nil]
56
58
  optional :is_visible, GrowsurfRuby::Internal::Type::Boolean, api_name: :isVisible
@@ -74,16 +76,23 @@ module GrowsurfRuby
74
76
  optional :metadata, GrowsurfRuby::Internal::Type::HashOf[GrowsurfRuby::Internal::Type::Unknown]
75
77
 
76
78
  # @!attribute next_milestone_prefix
79
+ # Text shown before a participant's referral count in milestone-progress copy.
80
+ # Applies to `MILESTONE` rewards.
77
81
  #
78
82
  # @return [String, nil]
79
83
  optional :next_milestone_prefix, String, api_name: :nextMilestonePrefix
80
84
 
81
85
  # @!attribute next_milestone_suffix
86
+ # Text shown after a participant's referral count in milestone-progress copy.
87
+ # Applies to `MILESTONE` rewards.
82
88
  #
83
89
  # @return [String, nil]
84
90
  optional :next_milestone_suffix, String, api_name: :nextMilestoneSuffix
85
91
 
86
92
  # @!attribute number_of_winners
93
+ # The number of winners (`LEADERBOARD` rewards only). With `limitDuration`
94
+ # `PER_MONTH` this many win each month, otherwise this many win in total;
95
+ # omitting it defaults to `3`.
87
96
  #
88
97
  # @return [Integer, nil]
89
98
  optional :number_of_winners, Integer, api_name: :numberOfWinners
@@ -94,6 +103,9 @@ module GrowsurfRuby
94
103
  optional :order, Integer
95
104
 
96
105
  # @!attribute referral_coupon_code
106
+ # Legacy static coupon code shown to the referred friend (double-sided rewards)
107
+ # in the reward-won email and webhook. Display text only; superseded by a
108
+ # connected billing integration's issued coupon when one exists.
97
109
  #
98
110
  # @return [String, nil]
99
111
  optional :referral_coupon_code, String, api_name: :referralCouponCode
@@ -110,29 +122,46 @@ module GrowsurfRuby
110
122
  GrowsurfRuby::Internal::Type::Boolean,
111
123
  api_name: :referredRewardUpfront
112
124
 
125
+ # @!attribute referred_value
126
+ # Tax valuation for the referred friend's side of a double-sided reward.
127
+ # Defaults to not tax-reportable (a purchase rebate).
128
+ #
129
+ # @return [GrowsurfRuby::Models::RewardTaxValuation, nil]
130
+ optional :referred_value,
131
+ -> { GrowsurfRuby::RewardTaxValuation },
132
+ api_name: :referredValue
133
+
113
134
  # @!attribute title
114
135
  #
115
136
  # @return [String, nil]
116
137
  optional :title, String
117
138
 
118
- # @!method initialize(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, title: nil, request_options: {})
139
+ # @!attribute value
140
+ # Tax valuation for the reward (the referrer's side of a double-sided reward).
141
+ # Used by tax documentation / 1099 reporting.
142
+ #
143
+ # @return [GrowsurfRuby::Models::RewardTaxValuation, nil]
144
+ optional :value, -> { GrowsurfRuby::RewardTaxValuation }
145
+
146
+ # @!method initialize(type:, commission_structure: nil, conversions_required: nil, coupon_code: nil, description: nil, image_url: 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: {})
147
+ # Some parameter documentations has been truncated, see
148
+ # {GrowsurfRuby::Models::Campaign::RewardCreateParams} for more details.
149
+ #
119
150
  # @param type [Symbol, GrowsurfRuby::Models::Campaign::RewardCreateParams::Type]
120
151
  #
121
152
  # @param commission_structure [GrowsurfRuby::Models::CommissionStructure]
122
153
  #
123
154
  # @param conversions_required [Integer]
124
155
  #
125
- # @param coupon_code [String]
156
+ # @param coupon_code [String] Legacy static coupon code shown to the referrer in the reward-won email and web
126
157
  #
127
158
  # @param description [String]
128
159
  #
129
160
  # @param image_url [String]
130
161
  #
131
- # @param is_active [Boolean]
132
- #
133
- # @param is_unlimited [Boolean]
162
+ # @param is_unlimited [Boolean] Whether the reward can be earned an unlimited number of times. Defaults to `true
134
163
  #
135
- # @param is_visible [Boolean]
164
+ # @param is_visible [Boolean] Whether the reward is enabled. When `false` the reward is disabled: hidden from
136
165
  #
137
166
  # @param limit [Integer]
138
167
  #
@@ -140,22 +169,26 @@ module GrowsurfRuby
140
169
  #
141
170
  # @param metadata [Hash{Symbol=>Object}] Custom key/value metadata (single-level; values are stored as strings).
142
171
  #
143
- # @param next_milestone_prefix [String]
172
+ # @param next_milestone_prefix [String] Text shown before a participant's referral count in milestone-progress copy. App
144
173
  #
145
- # @param next_milestone_suffix [String]
174
+ # @param next_milestone_suffix [String] Text shown after a participant's referral count in milestone-progress copy. Appl
146
175
  #
147
- # @param number_of_winners [Integer]
176
+ # @param number_of_winners [Integer] The number of winners (`LEADERBOARD` rewards only). With `limitDuration` `PER_MO
148
177
  #
149
178
  # @param order [Integer]
150
179
  #
151
- # @param referral_coupon_code [String]
180
+ # @param referral_coupon_code [String] Legacy static coupon code shown to the referred friend (double-sided rewards) in
152
181
  #
153
182
  # @param referral_description [String]
154
183
  #
155
184
  # @param referred_reward_upfront [Boolean]
156
185
  #
186
+ # @param referred_value [GrowsurfRuby::Models::RewardTaxValuation] Tax valuation for the referred friend's side of a double-sided reward. Defaults
187
+ #
157
188
  # @param title [String]
158
189
  #
190
+ # @param value [GrowsurfRuby::Models::RewardTaxValuation] Tax valuation for the reward (the referrer's side of a double-sided reward). Use
191
+ #
159
192
  # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}]
160
193
 
161
194
  # @see GrowsurfRuby::Models::Campaign::RewardCreateParams#type
@@ -13,14 +13,14 @@ module GrowsurfRuby
13
13
  # @return [String]
14
14
  required :id, String
15
15
 
16
- # @!attribute reward_id
16
+ # @!attribute campaign_reward_id
17
17
  #
18
18
  # @return [String]
19
- required :reward_id, String
19
+ required :campaign_reward_id, String
20
20
 
21
- # @!method initialize(id:, reward_id:, request_options: {})
21
+ # @!method initialize(id:, campaign_reward_id:, request_options: {})
22
22
  # @param id [String]
23
- # @param reward_id [String]
23
+ # @param campaign_reward_id [String]
24
24
  # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}]
25
25
  end
26
26
  end
@@ -13,10 +13,10 @@ module GrowsurfRuby
13
13
  # @return [String]
14
14
  required :id, String
15
15
 
16
- # @!attribute reward_id
16
+ # @!attribute campaign_reward_id
17
17
  #
18
18
  # @return [String]
19
- required :reward_id, String
19
+ required :campaign_reward_id, String
20
20
 
21
21
  # @!attribute commission_structure
22
22
  #
@@ -31,6 +31,9 @@ module GrowsurfRuby
31
31
  optional :conversions_required, Integer, api_name: :conversionsRequired
32
32
 
33
33
  # @!attribute coupon_code
34
+ # Legacy static coupon code shown to the referrer in the reward-won email and
35
+ # webhook. Display text only; superseded by a connected billing integration's
36
+ # issued coupon when one exists.
34
37
  #
35
38
  # @return [String, nil]
36
39
  optional :coupon_code, String, api_name: :couponCode
@@ -45,17 +48,16 @@ module GrowsurfRuby
45
48
  # @return [String, nil]
46
49
  optional :image_url, String, api_name: :imageUrl
47
50
 
48
- # @!attribute is_active
49
- #
50
- # @return [Boolean, nil]
51
- optional :is_active, GrowsurfRuby::Internal::Type::Boolean, api_name: :isActive
52
-
53
51
  # @!attribute is_unlimited
52
+ # Whether the reward can be earned an unlimited number of times. Defaults to
53
+ # `true`, except `MILESTONE` rewards, which can only be earned once.
54
54
  #
55
55
  # @return [Boolean, nil]
56
56
  optional :is_unlimited, GrowsurfRuby::Internal::Type::Boolean, api_name: :isUnlimited
57
57
 
58
58
  # @!attribute is_visible
59
+ # Whether the reward is enabled. When `false` the reward is disabled: hidden from
60
+ # participants and no longer awarded, including those who already earned it.
59
61
  #
60
62
  # @return [Boolean, nil]
61
63
  optional :is_visible, GrowsurfRuby::Internal::Type::Boolean, api_name: :isVisible
@@ -79,16 +81,23 @@ module GrowsurfRuby
79
81
  optional :metadata, GrowsurfRuby::Internal::Type::HashOf[GrowsurfRuby::Internal::Type::Unknown]
80
82
 
81
83
  # @!attribute next_milestone_prefix
84
+ # Text shown before a participant's referral count in milestone-progress copy.
85
+ # Applies to `MILESTONE` rewards.
82
86
  #
83
87
  # @return [String, nil]
84
88
  optional :next_milestone_prefix, String, api_name: :nextMilestonePrefix
85
89
 
86
90
  # @!attribute next_milestone_suffix
91
+ # Text shown after a participant's referral count in milestone-progress copy.
92
+ # Applies to `MILESTONE` rewards.
87
93
  #
88
94
  # @return [String, nil]
89
95
  optional :next_milestone_suffix, String, api_name: :nextMilestoneSuffix
90
96
 
91
97
  # @!attribute number_of_winners
98
+ # The number of winners (`LEADERBOARD` rewards only). With `limitDuration`
99
+ # `PER_MONTH` this many win each month, otherwise this many win in total;
100
+ # omitting it defaults to `3`.
92
101
  #
93
102
  # @return [Integer, nil]
94
103
  optional :number_of_winners, Integer, api_name: :numberOfWinners
@@ -99,6 +108,9 @@ module GrowsurfRuby
99
108
  optional :order, Integer
100
109
 
101
110
  # @!attribute referral_coupon_code
111
+ # Legacy static coupon code shown to the referred friend (double-sided rewards)
112
+ # in the reward-won email and webhook. Display text only; superseded by a
113
+ # connected billing integration's issued coupon when one exists.
102
114
  #
103
115
  # @return [String, nil]
104
116
  optional :referral_coupon_code, String, api_name: :referralCouponCode
@@ -115,31 +127,48 @@ module GrowsurfRuby
115
127
  GrowsurfRuby::Internal::Type::Boolean,
116
128
  api_name: :referredRewardUpfront
117
129
 
130
+ # @!attribute referred_value
131
+ # Tax valuation for the referred friend's side of a double-sided reward.
132
+ # Defaults to not tax-reportable (a purchase rebate).
133
+ #
134
+ # @return [GrowsurfRuby::Models::RewardTaxValuation, nil]
135
+ optional :referred_value,
136
+ -> { GrowsurfRuby::RewardTaxValuation },
137
+ api_name: :referredValue
138
+
118
139
  # @!attribute title
119
140
  #
120
141
  # @return [String, nil]
121
142
  optional :title, String
122
143
 
123
- # @!method initialize(id:, reward_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, title: nil, request_options: {})
144
+ # @!attribute value
145
+ # Tax valuation for the reward (the referrer's side of a double-sided reward).
146
+ # Used by tax documentation / 1099 reporting.
147
+ #
148
+ # @return [GrowsurfRuby::Models::RewardTaxValuation, nil]
149
+ optional :value, -> { GrowsurfRuby::RewardTaxValuation }
150
+
151
+ # @!method initialize(id:, campaign_reward_id:, commission_structure: nil, conversions_required: nil, coupon_code: nil, description: nil, image_url: 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: {})
152
+ # Some parameter documentations has been truncated, see
153
+ # {GrowsurfRuby::Models::Campaign::RewardUpdateParams} for more details.
154
+ #
124
155
  # @param id [String]
125
156
  #
126
- # @param reward_id [String]
157
+ # @param campaign_reward_id [String]
127
158
  #
128
159
  # @param commission_structure [GrowsurfRuby::Models::CommissionStructure]
129
160
  #
130
161
  # @param conversions_required [Integer]
131
162
  #
132
- # @param coupon_code [String]
163
+ # @param coupon_code [String] Legacy static coupon code shown to the referrer in the reward-won email and web
133
164
  #
134
165
  # @param description [String]
135
166
  #
136
167
  # @param image_url [String]
137
168
  #
138
- # @param is_active [Boolean]
139
- #
140
- # @param is_unlimited [Boolean]
169
+ # @param is_unlimited [Boolean] Whether the reward can be earned an unlimited number of times. Defaults to `true
141
170
  #
142
- # @param is_visible [Boolean]
171
+ # @param is_visible [Boolean] Whether the reward is enabled. When `false` the reward is disabled: hidden from
143
172
  #
144
173
  # @param limit [Integer]
145
174
  #
@@ -147,22 +176,26 @@ module GrowsurfRuby
147
176
  #
148
177
  # @param metadata [Hash{Symbol=>Object}] Custom key/value metadata (single-level; values are stored as strings).
149
178
  #
150
- # @param next_milestone_prefix [String]
179
+ # @param next_milestone_prefix [String] Text shown before a participant's referral count in milestone-progress copy. App
151
180
  #
152
- # @param next_milestone_suffix [String]
181
+ # @param next_milestone_suffix [String] Text shown after a participant's referral count in milestone-progress copy. Appl
153
182
  #
154
- # @param number_of_winners [Integer]
183
+ # @param number_of_winners [Integer] The number of winners (`LEADERBOARD` rewards only). With `limitDuration` `PER_MO
155
184
  #
156
185
  # @param order [Integer]
157
186
  #
158
- # @param referral_coupon_code [String]
187
+ # @param referral_coupon_code [String] Legacy static coupon code shown to the referred friend (double-sided rewards) in
159
188
  #
160
189
  # @param referral_description [String]
161
190
  #
162
191
  # @param referred_reward_upfront [Boolean]
163
192
  #
193
+ # @param referred_value [GrowsurfRuby::Models::RewardTaxValuation] Tax valuation for the referred friend's side of a double-sided reward. Defaults
194
+ #
164
195
  # @param title [String]
165
196
  #
197
+ # @param value [GrowsurfRuby::Models::RewardTaxValuation] Tax valuation for the reward (the referrer's side of a double-sided reward). Use
198
+ #
166
199
  # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}]
167
200
 
168
201
  # @see GrowsurfRuby::Models::Campaign::RewardUpdateParams#limit_duration