growsurf-ruby 1.2.1 → 1.3.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 (118) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/LICENSE +201 -0
  4. data/README.md +1 -1
  5. data/lib/growsurf_ruby/internal/transport/base_client.rb +21 -4
  6. data/lib/growsurf_ruby/models/affiliate_application.rb +249 -0
  7. data/lib/growsurf_ruby/models/affiliate_application_list_response.rb +42 -0
  8. data/lib/growsurf_ruby/models/affiliate_invite.rb +109 -0
  9. data/lib/growsurf_ruby/models/affiliate_invite_list_response.rb +41 -0
  10. data/lib/growsurf_ruby/models/campaign/create.rb +12 -1
  11. data/lib/growsurf_ruby/models/campaign/participant.rb +79 -4
  12. data/lib/growsurf_ruby/models/campaign/participant_analytics_response.rb +28 -17
  13. data/lib/growsurf_ruby/models/campaign/participant_get_payout_destination_params.rb +28 -0
  14. data/lib/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rb +126 -0
  15. data/lib/growsurf_ruby/models/campaign/participant_list_payouts_params.rb +1 -0
  16. data/lib/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_params.rb +50 -0
  17. data/lib/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rb +56 -0
  18. data/lib/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rb +14 -17
  19. data/lib/growsurf_ruby/models/campaign/participant_update_params.rb +25 -9
  20. data/lib/growsurf_ruby/models/campaign/referral_source.rb +3 -0
  21. data/lib/growsurf_ruby/models/campaign/reward.rb +20 -3
  22. data/lib/growsurf_ruby/models/campaign/reward_create_params.rb +3 -3
  23. data/lib/growsurf_ruby/models/campaign/reward_update_params.rb +3 -3
  24. data/lib/growsurf_ruby/models/campaign.rb +2 -2
  25. data/lib/growsurf_ruby/models/campaign_create_affiliate_invite_params.rb +45 -0
  26. data/lib/growsurf_ruby/models/campaign_list_affiliate_applications_params.rb +57 -0
  27. data/lib/growsurf_ruby/models/campaign_list_affiliate_invites_params.rb +58 -0
  28. data/lib/growsurf_ruby/models/campaign_list_payouts_params.rb +1 -0
  29. data/lib/growsurf_ruby/models/campaign_resend_affiliate_invite_params.rb +26 -0
  30. data/lib/growsurf_ruby/models/campaign_retrieve_affiliate_application_params.rb +26 -0
  31. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_params.rb +9 -6
  32. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_response.rb +59 -11
  33. data/lib/growsurf_ruby/models/campaign_review_affiliate_application_params.rb +94 -0
  34. data/lib/growsurf_ruby/models/campaign_revoke_affiliate_invite_params.rb +26 -0
  35. data/lib/growsurf_ruby/models/email_analytics.rb +41 -0
  36. data/lib/growsurf_ruby/models/participant_payout_list.rb +8 -1
  37. data/lib/growsurf_ruby/models/reward_tax_valuation.rb +24 -9
  38. data/lib/growsurf_ruby/models.rb +19 -0
  39. data/lib/growsurf_ruby/resources/campaign/design.rb +14 -12
  40. data/lib/growsurf_ruby/resources/campaign/options.rb +7 -7
  41. data/lib/growsurf_ruby/resources/campaign/participant.rb +96 -11
  42. data/lib/growsurf_ruby/resources/campaign/rewards.rb +2 -2
  43. data/lib/growsurf_ruby/resources/campaign.rb +231 -4
  44. data/lib/growsurf_ruby/version.rb +1 -1
  45. data/lib/growsurf_ruby.rb +16 -0
  46. data/rbi/growsurf_ruby/models/affiliate_application.rbi +431 -0
  47. data/rbi/growsurf_ruby/models/affiliate_application_list_response.rbi +70 -0
  48. data/rbi/growsurf_ruby/models/affiliate_invite.rbi +167 -0
  49. data/rbi/growsurf_ruby/models/affiliate_invite_list_response.rbi +70 -0
  50. data/rbi/growsurf_ruby/models/campaign/create.rbi +17 -0
  51. data/rbi/growsurf_ruby/models/campaign/participant.rbi +169 -3
  52. data/rbi/growsurf_ruby/models/campaign/participant_activity_logs_response.rbi +3 -5
  53. data/rbi/growsurf_ruby/models/campaign/participant_analytics_response.rbi +35 -20
  54. data/rbi/growsurf_ruby/models/campaign/participant_bulk_delete_response.rbi +3 -1
  55. data/rbi/growsurf_ruby/models/campaign/participant_get_payout_destination_params.rbi +48 -0
  56. data/rbi/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rbi +243 -0
  57. data/rbi/growsurf_ruby/models/campaign/participant_list_payouts_params.rbi +5 -0
  58. data/rbi/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_params.rbi +100 -0
  59. data/rbi/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rbi +118 -0
  60. data/rbi/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rbi +22 -52
  61. data/rbi/growsurf_ruby/models/campaign/participant_update_params.rbi +67 -11
  62. data/rbi/growsurf_ruby/models/campaign/referral_source.rbi +9 -0
  63. data/rbi/growsurf_ruby/models/campaign/reward.rbi +23 -2
  64. data/rbi/growsurf_ruby/models/campaign/reward_create_params.rbi +4 -4
  65. data/rbi/growsurf_ruby/models/campaign/reward_update_params.rbi +4 -4
  66. data/rbi/growsurf_ruby/models/campaign.rbi +2 -2
  67. data/rbi/growsurf_ruby/models/campaign_create_affiliate_invite_params.rbi +74 -0
  68. data/rbi/growsurf_ruby/models/campaign_list_affiliate_applications_params.rbi +130 -0
  69. data/rbi/growsurf_ruby/models/campaign_list_affiliate_invites_params.rbi +135 -0
  70. data/rbi/growsurf_ruby/models/campaign_list_payouts_params.rbi +5 -0
  71. data/rbi/growsurf_ruby/models/campaign_resend_affiliate_invite_params.rbi +46 -0
  72. data/rbi/growsurf_ruby/models/campaign_retrieve_affiliate_application_params.rbi +46 -0
  73. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_params.rbi +15 -10
  74. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_response.rbi +68 -18
  75. data/rbi/growsurf_ruby/models/campaign_review_affiliate_application_params.rbi +167 -0
  76. data/rbi/growsurf_ruby/models/campaign_revoke_affiliate_invite_params.rbi +46 -0
  77. data/rbi/growsurf_ruby/models/email_analytics.rbi +200 -0
  78. data/rbi/growsurf_ruby/models/participant_payout_list.rbi +17 -3
  79. data/rbi/growsurf_ruby/models/reward_tax_valuation.rbi +66 -9
  80. data/rbi/growsurf_ruby/models.rbi +25 -0
  81. data/rbi/growsurf_ruby/resources/campaign/design.rbi +9 -8
  82. data/rbi/growsurf_ruby/resources/campaign/options.rbi +7 -7
  83. data/rbi/growsurf_ruby/resources/campaign/participant.rbi +89 -13
  84. data/rbi/growsurf_ruby/resources/campaign/rewards.rbi +4 -4
  85. data/rbi/growsurf_ruby/resources/campaign.rbi +188 -10
  86. data/sig/growsurf_ruby/models/affiliate_application.rbs +192 -0
  87. data/sig/growsurf_ruby/models/affiliate_application_list_response.rbs +39 -0
  88. data/sig/growsurf_ruby/models/affiliate_invite.rbs +92 -0
  89. data/sig/growsurf_ruby/models/affiliate_invite_list_response.rbs +39 -0
  90. data/sig/growsurf_ruby/models/campaign/create.rbs +7 -0
  91. data/sig/growsurf_ruby/models/campaign/participant.rbs +62 -2
  92. data/sig/growsurf_ruby/models/campaign/participant_activity_logs_response.rbs +2 -11
  93. data/sig/growsurf_ruby/models/campaign/participant_analytics_response.rbs +12 -12
  94. data/sig/growsurf_ruby/models/campaign/participant_get_payout_destination_params.rbs +30 -0
  95. data/sig/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rbs +107 -0
  96. data/sig/growsurf_ruby/models/campaign/participant_list_payouts_params.rbs +2 -1
  97. data/sig/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_params.rbs +49 -0
  98. data/sig/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rbs +57 -0
  99. data/sig/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rbs +5 -13
  100. data/sig/growsurf_ruby/models/campaign/participant_update_params.rbs +21 -7
  101. data/sig/growsurf_ruby/models/campaign/referral_source.rbs +4 -1
  102. data/sig/growsurf_ruby/models/campaign/reward.rbs +12 -0
  103. data/sig/growsurf_ruby/models/campaign_create_affiliate_invite_params.rbs +40 -0
  104. data/sig/growsurf_ruby/models/campaign_list_affiliate_applications_params.rbs +61 -0
  105. data/sig/growsurf_ruby/models/campaign_list_affiliate_invites_params.rbs +62 -0
  106. data/sig/growsurf_ruby/models/campaign_list_payouts_params.rbs +2 -1
  107. data/sig/growsurf_ruby/models/campaign_resend_affiliate_invite_params.rbs +28 -0
  108. data/sig/growsurf_ruby/models/campaign_retrieve_affiliate_application_params.rbs +28 -0
  109. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_response.rbs +36 -16
  110. data/sig/growsurf_ruby/models/campaign_review_affiliate_application_params.rbs +79 -0
  111. data/sig/growsurf_ruby/models/campaign_revoke_affiliate_invite_params.rbs +28 -0
  112. data/sig/growsurf_ruby/models/email_analytics.rbs +92 -0
  113. data/sig/growsurf_ruby/models/participant_payout_list.rbs +12 -4
  114. data/sig/growsurf_ruby/models/reward_tax_valuation.rbs +26 -4
  115. data/sig/growsurf_ruby/models.rbs +18 -0
  116. data/sig/growsurf_ruby/resources/campaign/participant.rbs +16 -2
  117. data/sig/growsurf_ruby/resources/campaign.rbs +53 -0
  118. metadata +54 -3
@@ -0,0 +1,109 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ # @see GrowsurfRuby::Resources::Campaign#create_affiliate_invite
6
+ class AffiliateInvite < GrowsurfRuby::Internal::Type::BaseModel
7
+ # @!attribute accepted_at
8
+ # When the invite was accepted, in Unix milliseconds. `null` until accepted.
9
+ #
10
+ # @return [Integer, nil]
11
+ optional :accepted_at, Integer, api_name: :acceptedAt, nil?: true
12
+
13
+ # @!attribute created_at
14
+ # When the invite was created, in Unix milliseconds.
15
+ #
16
+ # @return [Integer, nil]
17
+ optional :created_at, Integer, api_name: :createdAt
18
+
19
+ # @!attribute email
20
+ # Invitee email address.
21
+ #
22
+ # @return [String, nil]
23
+ optional :email, String
24
+
25
+ # @!attribute expires_at
26
+ # When the emailed accept link stops working, in Unix milliseconds.
27
+ #
28
+ # @return [Integer, nil]
29
+ optional :expires_at, Integer, api_name: :expiresAt
30
+
31
+ # @!attribute first_name
32
+ # Invitee first name, when provided.
33
+ #
34
+ # @return [String, nil]
35
+ optional :first_name, String, api_name: :firstName, nil?: true
36
+
37
+ # @!attribute id
38
+ # Invite ID.
39
+ #
40
+ # @return [String, nil]
41
+ optional :id, String
42
+
43
+ # @!attribute last_name
44
+ # Invitee last name, when provided.
45
+ #
46
+ # @return [String, nil]
47
+ optional :last_name, String, api_name: :lastName, nil?: true
48
+
49
+ # @!attribute last_sent_at
50
+ # When the invite email was last sent, in Unix milliseconds.
51
+ #
52
+ # @return [Integer, nil]
53
+ optional :last_sent_at, Integer, api_name: :lastSentAt
54
+
55
+ # @!attribute revoked_at
56
+ # When the invite was revoked, in Unix milliseconds. `null` unless revoked.
57
+ #
58
+ # @return [Integer, nil]
59
+ optional :revoked_at, Integer, api_name: :revokedAt, nil?: true
60
+
61
+ # @!attribute status
62
+ # The invite's lifecycle state. Accepting a pending invite enrolls the invitee as
63
+ # an approved affiliate.
64
+ #
65
+ # @return [Symbol, GrowsurfRuby::Models::AffiliateInvite::Status, nil]
66
+ optional :status, enum: -> { GrowsurfRuby::AffiliateInvite::Status }
67
+
68
+ # @!method initialize(accepted_at: nil, created_at: nil, email: nil, expires_at: nil, first_name: nil, id: nil, last_name: nil, last_sent_at: nil, revoked_at: nil, status: nil)
69
+ # Some parameter documentations has been truncated, see
70
+ # {GrowsurfRuby::Models::AffiliateInvite} for more details.
71
+ #
72
+ # @param accepted_at [Integer, nil] When the invite was accepted, in Unix milliseconds. `null` until accepted.
73
+ #
74
+ # @param created_at [Integer] When the invite was created, in Unix milliseconds.
75
+ #
76
+ # @param email [String] Invitee email address.
77
+ #
78
+ # @param expires_at [Integer] When the emailed accept link stops working, in Unix milliseconds.
79
+ #
80
+ # @param first_name [String, nil] Invitee first name, when provided.
81
+ #
82
+ # @param id [String] Invite ID.
83
+ #
84
+ # @param last_name [String, nil] Invitee last name, when provided.
85
+ #
86
+ # @param last_sent_at [Integer] When the invite email was last sent, in Unix milliseconds.
87
+ #
88
+ # @param revoked_at [Integer, nil] When the invite was revoked, in Unix milliseconds. `null` unless revoked.
89
+ #
90
+ # @param status [Symbol, GrowsurfRuby::Models::AffiliateInvite::Status] The invite's lifecycle state. Accepting a pending invite enrolls the invitee as
91
+
92
+ # The invite's lifecycle state. Accepting a pending invite enrolls the invitee as
93
+ # an approved affiliate.
94
+ #
95
+ # @see GrowsurfRuby::Models::AffiliateInvite#status
96
+ module Status
97
+ extend GrowsurfRuby::Internal::Type::Enum
98
+
99
+ PENDING = :PENDING
100
+ ACCEPTED = :ACCEPTED
101
+ EXPIRED = :EXPIRED
102
+ REVOKED = :REVOKED
103
+
104
+ # @!method self.values
105
+ # @return [Array<Symbol>]
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ # @see GrowsurfRuby::Resources::Campaign#list_affiliate_invites
6
+ class AffiliateInviteListResponse < GrowsurfRuby::Internal::Type::BaseModel
7
+ # @!attribute invites
8
+ # One page of the program's invites, newest first.
9
+ #
10
+ # @return [Array<GrowsurfRuby::Models::AffiliateInvite>]
11
+ required :invites, -> { GrowsurfRuby::Internal::Type::ArrayOf[GrowsurfRuby::AffiliateInvite] }
12
+
13
+ # @!attribute total
14
+ # Total number of invites matching the filter.
15
+ #
16
+ # @return [Integer]
17
+ required :total, Integer
18
+
19
+ # @!attribute limit
20
+ # The page size used.
21
+ #
22
+ # @return [Integer, nil]
23
+ optional :limit, Integer
24
+
25
+ # @!attribute offset
26
+ # The offset this page started at.
27
+ #
28
+ # @return [Integer, nil]
29
+ optional :offset, Integer
30
+
31
+ # @!method initialize(invites:, total:, limit: nil, offset: nil)
32
+ # @param invites [Array<GrowsurfRuby::Models::AffiliateInvite>] One page of the program's invites, newest first.
33
+ #
34
+ # @param total [Integer] Total number of invites matching the filter.
35
+ #
36
+ # @param limit [Integer] The page size used.
37
+ #
38
+ # @param offset [Integer] The offset this page started at.
39
+ end
40
+ end
41
+ end
@@ -24,6 +24,15 @@ module GrowsurfRuby
24
24
  # @return [String, nil]
25
25
  optional :ip_address, String, api_name: :ipAddress
26
26
 
27
+ # @!attribute is_affiliate
28
+ # Affiliate programs only. Controls affiliate enrollment for a new participant.
29
+ # `true` enrolls the participant with `affiliateStatus: APPROVED`; `false` creates
30
+ # a non-affiliate without `affiliateStatus`. Existing participants are returned
31
+ # unchanged.
32
+ #
33
+ # @return [Boolean, nil]
34
+ optional :is_affiliate, GrowsurfRuby::Internal::Type::Boolean, api_name: :isAffiliate
35
+
27
36
  # @!attribute last_name
28
37
  #
29
38
  # @return [String, nil]
@@ -60,7 +69,7 @@ module GrowsurfRuby
60
69
  # @return [String, nil]
61
70
  optional :referred_by, String, api_name: :referredBy
62
71
 
63
- # @!method initialize(email:, fingerprint: nil, first_name: nil, ip_address: nil, last_name: nil, metadata: nil, mobile_instance_id: nil, referral_status: nil, referred_by: nil)
72
+ # @!method initialize(email:, fingerprint: nil, first_name: nil, ip_address: nil, is_affiliate: nil, last_name: nil, metadata: nil, mobile_instance_id: nil, referral_status: nil, referred_by: nil)
64
73
  # Some parameter documentations has been truncated, see
65
74
  # {GrowsurfRuby::Models::Campaign::Create} for more details.
66
75
  #
@@ -72,6 +81,8 @@ module GrowsurfRuby
72
81
  #
73
82
  # @param ip_address [String]
74
83
  #
84
+ # @param is_affiliate [Boolean] Affiliate programs only. Controls affiliate enrollment for a new participant.
85
+ #
75
86
  # @param last_name [String]
76
87
  #
77
88
  # @param metadata [Hash{Symbol=>Object}] Shallow custom metadata object.
@@ -41,9 +41,26 @@ module GrowsurfRuby
41
41
  required :rewards, -> { GrowsurfRuby::Internal::Type::ArrayOf[GrowsurfRuby::Campaign::ParticipantReward] }
42
42
 
43
43
  # @!attribute share_url
44
+ # The unique share URL of the participant. Omitted for affiliate program
45
+ # participants who are not approved affiliates.
44
46
  #
45
- # @return [String]
46
- required :share_url, String, api_name: :shareUrl
47
+ # @return [String, nil]
48
+ optional :share_url, String, api_name: :shareUrl
49
+
50
+ # @!attribute affiliate_enrollment_source
51
+ # Affiliate programs only. How the affiliate enrolled (`OPEN_ENROLLMENT`,
52
+ # `APPLICATION`, `PARTICIPANT_AUTH`, `INVITE`, `REST_API`, `CSV`, or `DASHBOARD`).
53
+ # `null` when not recorded.
54
+ #
55
+ # @return [String, nil]
56
+ optional :affiliate_enrollment_source, String, api_name: :affiliateEnrollmentSource, nil?: true
57
+
58
+ # @!attribute affiliate_status
59
+ # Affiliate programs only. The enrolled affiliate's status (`APPROVED`,
60
+ # `SUSPENDED`, or `BANNED`). `null` for participants who are not affiliates.
61
+ #
62
+ # @return [String, nil]
63
+ optional :affiliate_status, String, api_name: :affiliateStatus, nil?: true
47
64
 
48
65
  # @!attribute all_matching_fraudsters
49
66
  #
@@ -96,6 +113,13 @@ module GrowsurfRuby
96
113
  # @return [String, nil]
97
114
  optional :ip_address, String, api_name: :ipAddress, nil?: true
98
115
 
116
+ # @!attribute is_affiliate
117
+ # Affiliate programs only. Whether this participant is an enrolled affiliate. A
118
+ # referred customer who has not joined the program is `false`.
119
+ #
120
+ # @return [Boolean, nil]
121
+ optional :is_affiliate, GrowsurfRuby::Internal::Type::Boolean, api_name: :isAffiliate
122
+
99
123
  # @!attribute is_new
100
124
  #
101
125
  # @return [Boolean, nil]
@@ -137,6 +161,16 @@ module GrowsurfRuby
137
161
  # @return [String, nil]
138
162
  optional :notes, String, nil?: true
139
163
 
164
+ # @!attribute payout_settings
165
+ # Payout-related actions the participant must complete before a payout can be
166
+ # released (e.g. configuring a payout destination or submitting a W-9/W-8 tax form).
167
+ # Always present; the requiredActions array is empty when no action is required.
168
+ #
169
+ # @return [GrowsurfRuby::Models::Campaign::CampaignParticipant::PayoutSettings, nil]
170
+ optional :payout_settings,
171
+ -> { GrowsurfRuby::Campaign::CampaignParticipant::PayoutSettings },
172
+ api_name: :payoutSettings
173
+
140
174
  # @!attribute paypal_email_address
141
175
  #
142
176
  # @return [String, nil]
@@ -215,7 +249,7 @@ module GrowsurfRuby
215
249
  # @return [Array<String>, nil]
216
250
  optional :vanity_keys, GrowsurfRuby::Internal::Type::ArrayOf[String], api_name: :vanityKeys
217
251
 
218
- # @!method initialize(id:, email:, monthly_rank:, monthly_referral_count:, rank:, referral_count:, rewards:, share_url:, all_matching_fraudsters: nil, created_at: nil, fingerprint: nil, first_name: nil, fraud_reason_code: nil, fraud_risk_level: nil, impression_count: nil, invite_count: nil, ip_address: nil, is_new: nil, is_winner: nil, last_name: nil, metadata: nil, mobile_instance_id: nil, monthly_referrals: nil, notes: nil, paypal_email_address: nil, prev_monthly_rank: nil, prev_monthly_referral_count: nil, referrals: nil, referral_source: nil, referral_status: nil, referred_by: nil, referrer: nil, share_count: nil, unique_impression_count: nil, unread_commissions_count: nil, unread_payouts_count: nil, unsubscribed: nil, vanity_keys: nil)
252
+ # @!method initialize(id:, email:, monthly_rank:, monthly_referral_count:, rank:, referral_count:, rewards:, share_url: nil, affiliate_enrollment_source: nil, affiliate_status: nil, all_matching_fraudsters: nil, created_at: nil, fingerprint: nil, first_name: nil, fraud_reason_code: nil, fraud_risk_level: nil, impression_count: nil, invite_count: nil, ip_address: nil, is_affiliate: nil, is_new: nil, is_winner: nil, last_name: nil, metadata: nil, mobile_instance_id: nil, monthly_referrals: nil, notes: nil, payout_settings: nil, paypal_email_address: nil, prev_monthly_rank: nil, prev_monthly_referral_count: nil, referrals: nil, referral_source: nil, referral_status: nil, referred_by: nil, referrer: nil, share_count: nil, unique_impression_count: nil, unread_commissions_count: nil, unread_payouts_count: nil, unsubscribed: nil, vanity_keys: nil)
219
253
  # Some parameter documentations has been truncated, see
220
254
  # {GrowsurfRuby::Models::Campaign::CampaignParticipant} for more details.
221
255
  #
@@ -233,7 +267,12 @@ module GrowsurfRuby
233
267
  #
234
268
  # @param rewards [Array<GrowsurfRuby::Models::Campaign::ParticipantReward>]
235
269
  #
236
- # @param share_url [String]
270
+ # @param share_url [String, nil] The unique share URL of the participant. Omitted for
271
+ # affiliate program participants who are not approved affiliates.
272
+ #
273
+ # @param affiliate_enrollment_source [String, nil] Affiliate programs only. How the affiliate enrolled (`OPEN_ENROLLMENT`,
274
+ #
275
+ # @param affiliate_status [String, nil] Affiliate programs only. The enrolled affiliate's status (`APPROVED`,
237
276
  #
238
277
  # @param all_matching_fraudsters [Array<Hash{Symbol=>Object}>]
239
278
  #
@@ -253,6 +292,8 @@ module GrowsurfRuby
253
292
  #
254
293
  # @param ip_address [String, nil]
255
294
  #
295
+ # @param is_affiliate [Boolean] Affiliate programs only. Whether this participant is an enrolled affiliate. A
296
+ #
256
297
  # @param is_new [Boolean]
257
298
  #
258
299
  # @param is_winner [Boolean]
@@ -267,6 +308,8 @@ module GrowsurfRuby
267
308
  #
268
309
  # @param notes [String, nil]
269
310
  #
311
+ # @param payout_settings [GrowsurfRuby::Models::Campaign::CampaignParticipant::PayoutSettings] Payout-related actions the participant must complete before a payout can be
312
+ #
270
313
  # @param paypal_email_address [String]
271
314
  #
272
315
  # @param prev_monthly_rank [Integer]
@@ -295,6 +338,38 @@ module GrowsurfRuby
295
338
  #
296
339
  # @param vanity_keys [Array<String>]
297
340
 
341
+ # @see GrowsurfRuby::Models::Campaign::CampaignParticipant#payout_settings
342
+ class PayoutSettings < GrowsurfRuby::Internal::Type::BaseModel
343
+ # @!attribute required_actions
344
+ # Actions the participant must complete before payouts can be sent.
345
+ #
346
+ # @return [Array<Symbol, GrowsurfRuby::Models::Campaign::CampaignParticipant::PayoutSettings::RequiredAction>, nil]
347
+ optional :required_actions,
348
+ -> {
349
+ GrowsurfRuby::Internal::Type::ArrayOf[
350
+ enum: GrowsurfRuby::Campaign::CampaignParticipant::PayoutSettings::RequiredAction
351
+ ]
352
+ },
353
+ api_name: :requiredActions
354
+
355
+ # @!method initialize(required_actions: nil)
356
+ # Payout-related actions the participant must complete before a payout can be
357
+ # released (e.g. configuring a payout destination or submitting a W-9/W-8 tax form).
358
+ # Always present; the requiredActions array is empty when no action is required.
359
+ #
360
+ # @param required_actions [Array<Symbol, GrowsurfRuby::Models::Campaign::CampaignParticipant::PayoutSettings::RequiredAction>] Actions the participant must complete before payouts can be sent.
361
+
362
+ module RequiredAction
363
+ extend GrowsurfRuby::Internal::Type::Enum
364
+
365
+ PAYOUT_DESTINATION = :PAYOUT_DESTINATION
366
+ TAX_INFO = :TAX_INFO
367
+
368
+ # @!method self.values
369
+ # @return [Array<Symbol>]
370
+ end
371
+ end
372
+
298
373
  # @see GrowsurfRuby::Models::Campaign::CampaignParticipant#referrer
299
374
  class Referrer < GrowsurfRuby::Internal::Type::BaseModel
300
375
  # @!attribute id
@@ -23,8 +23,11 @@ module GrowsurfRuby
23
23
  GrowsurfRuby::Internal::Type::HashOf[Integer],
24
24
  api_name: :shareCount
25
25
 
26
+ # Present only when `include` contains `email`.
27
+ optional :email, -> { GrowsurfRuby::Models::EmailAnalytics }
28
+
26
29
  # @!attribute end_date
27
- # Present only with `include=series`. Window end (Unix ms).
30
+ # Present only when `include` contains `series` or `email`. Window end (Unix ms).
28
31
  #
29
32
  # @return [Integer, nil]
30
33
  optional :end_date, Integer, api_name: :endDate
@@ -43,7 +46,7 @@ module GrowsurfRuby
43
46
  }
44
47
 
45
48
  # @!attribute start_date
46
- # Present only with `include=series`. Window start (Unix ms).
49
+ # Present only when `include` contains `series` or `email`. Window start (Unix ms).
47
50
  #
48
51
  # @return [Integer, nil]
49
52
  optional :start_date, Integer, api_name: :startDate
@@ -58,11 +61,11 @@ module GrowsurfRuby
58
61
  #
59
62
  # @param share_count [Hash{Symbol=>Integer}] Per-channel share counts (e.g. `email`, `facebook`, `twitter`, ...).
60
63
  #
61
- # @param end_date [Integer] Present only with `include=series`. Window end (Unix ms).
64
+ # @param end_date [Integer] Present only when `include` contains `series` or `email`. Window end (Unix ms).
62
65
  #
63
66
  # @param series [Array<GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse::Series>] Present only when `include=series`. This participant's own referral-link activity
64
67
  #
65
- # @param start_date [Integer] Present only with `include=series`. Window start (Unix ms).
68
+ # @param start_date [Integer] Present only when `include` contains `series` or `email`. Window start (Unix ms).
66
69
 
67
70
  # @see GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse#analytics
68
71
  class Analytics < GrowsurfRuby::Internal::Type::BaseModel
@@ -96,10 +99,13 @@ module GrowsurfRuby
96
99
  # @return [Integer, nil]
97
100
  optional :monthly_referrals, Integer, api_name: :monthlyReferrals
98
101
 
99
- # @!attribute pending_rewards
102
+ # @!attribute reward_status
103
+ # This participant's reward counts grouped by review and fulfillment status.
100
104
  #
101
- # @return [Integer, nil]
102
- optional :pending_rewards, Integer, api_name: :pendingRewards
105
+ # @return [GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::StatusCounts::RewardStatus, nil]
106
+ optional :reward_status,
107
+ -> { GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::StatusCounts::RewardStatus },
108
+ api_name: :rewardStatus
103
109
 
104
110
  # @!attribute referral_revenue
105
111
  # Affiliate only. Revenue attributed to this participant's referrals, in minor
@@ -113,11 +119,6 @@ module GrowsurfRuby
113
119
  # @return [Integer, nil]
114
120
  optional :referrals, Integer
115
121
 
116
- # @!attribute rewards_earned
117
- #
118
- # @return [Integer, nil]
119
- optional :rewards_earned, Integer, api_name: :rewardsEarned
120
-
121
122
  # @!attribute total_commissions
122
123
  # Affiliate only. Total commissions earned, in minor currency units.
123
124
  #
@@ -141,7 +142,7 @@ module GrowsurfRuby
141
142
  # @return [Integer, nil]
142
143
  optional :upcoming_payout, Integer, api_name: :upcomingPayout
143
144
 
144
- # @!method initialize(currency_iso: nil, expired_referrals: nil, impressions: nil, invites_sent: nil, leads: nil, monthly_referrals: nil, pending_rewards: nil, referral_revenue: nil, referrals: nil, rewards_earned: nil, total_commissions: nil, total_paid_out: nil, unique_impressions: nil, upcoming_payout: nil)
145
+ # @!method initialize(currency_iso: nil, expired_referrals: nil, impressions: nil, invites_sent: nil, leads: nil, monthly_referrals: nil, referral_revenue: nil, referrals: nil, reward_status: nil, total_commissions: nil, total_paid_out: nil, unique_impressions: nil, upcoming_payout: nil)
145
146
  # Some parameter documentations has been truncated, see
146
147
  # {GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse::Analytics} for
147
148
  # more details.
@@ -158,13 +159,11 @@ module GrowsurfRuby
158
159
  #
159
160
  # @param monthly_referrals [Integer]
160
161
  #
161
- # @param pending_rewards [Integer]
162
- #
163
162
  # @param referral_revenue [Integer] Affiliate only. Revenue attributed to this participant's referrals, in minor curr
164
163
  #
165
164
  # @param referrals [Integer]
166
165
  #
167
- # @param rewards_earned [Integer]
166
+ # @param reward_status [GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::StatusCounts::RewardStatus] This participant's reward counts grouped by review and fulfillment status.
168
167
  #
169
168
  # @param total_commissions [Integer] Affiliate only. Total commissions earned, in minor currency units.
170
169
  #
@@ -222,6 +221,9 @@ module GrowsurfRuby
222
221
  # @return [Integer, nil]
223
222
  optional :email_shares, Integer, api_name: :emailShares
224
223
 
224
+ # Per-period email counts when both `series` and `email` are requested.
225
+ optional :email, -> { GrowsurfRuby::Models::EmailAnalytics::Counts }
226
+
225
227
  # @!attribute facebook_shares
226
228
  #
227
229
  # @return [Integer, nil]
@@ -337,6 +339,13 @@ module GrowsurfRuby
337
339
  # @return [Integer, nil]
338
340
  optional :twitter_shares, Integer, api_name: :twitterShares
339
341
 
342
+ # @!attribute unique_commission_referrals
343
+ # Affiliate programs only. Number of unique referred participants represented by
344
+ # commissions in the requested timeframe.
345
+ #
346
+ # @return [Integer, nil]
347
+ optional :unique_commission_referrals, Integer, api_name: :uniqueCommissionReferrals
348
+
340
349
  # @!attribute unique_impressions
341
350
  #
342
351
  # @return [Integer, nil]
@@ -352,7 +361,7 @@ module GrowsurfRuby
352
361
  # @return [Integer, nil]
353
362
  optional :whats_app_shares, Integer, api_name: :whatsAppShares
354
363
 
355
- # @!method initialize(android_native_shares: nil, bluesky_shares: nil, copy_ref_link_shares: nil, email_shares: nil, facebook_shares: nil, impressions: nil, invites: nil, ios_native_shares: nil, linked_in_shares: nil, messenger_shares: nil, participants: nil, period_start: nil, pinterest_shares: nil, qrcode_shares: nil, reddit_shares: nil, referral_credit_expireds: nil, referral_credit_pendings: nil, referrals: nil, sms_shares: nil, telegram_shares: nil, threads_shares: nil, total_commission_count: nil, total_commissions: nil, total_revenue: nil, tumblr_shares: nil, twitter_shares: nil, unique_impressions: nil, wechat_shares: nil, whats_app_shares: nil)
364
+ # @!method initialize(android_native_shares: nil, bluesky_shares: nil, copy_ref_link_shares: nil, email_shares: nil, facebook_shares: nil, impressions: nil, invites: nil, ios_native_shares: nil, linked_in_shares: nil, messenger_shares: nil, participants: nil, period_start: nil, pinterest_shares: nil, qrcode_shares: nil, reddit_shares: nil, referral_credit_expireds: nil, referral_credit_pendings: nil, referrals: nil, sms_shares: nil, telegram_shares: nil, threads_shares: nil, total_commission_count: nil, total_commissions: nil, total_revenue: nil, tumblr_shares: nil, twitter_shares: nil, unique_commission_referrals: nil, unique_impressions: nil, wechat_shares: nil, whats_app_shares: nil)
356
365
  # Some parameter documentations has been truncated, see
357
366
  # {GrowsurfRuby::Models::Campaign::ParticipantAnalyticsResponse::Series} for more
358
367
  # details.
@@ -409,6 +418,8 @@ module GrowsurfRuby
409
418
  #
410
419
  # @param twitter_shares [Integer]
411
420
  #
421
+ # @param unique_commission_referrals [Integer] Affiliate programs only. Number of unique referred participants represented by commissions in the requested timeframe.
422
+ #
412
423
  # @param unique_impressions [Integer]
413
424
  #
414
425
  # @param wechat_shares [Integer]
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ # @see GrowsurfRuby::Resources::Campaign::Participant#get_payout_destination
7
+ class ParticipantGetPayoutDestinationParams < 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
+ # @!method initialize(id:, participant_id_or_email:, request_options: {})
22
+ # @param id [String]
23
+ # @param participant_id_or_email [String]
24
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}]
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,126 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ # @see GrowsurfRuby::Resources::Campaign::Participant#get_payout_destination
7
+ class ParticipantGetPayoutDestinationResponse < GrowsurfRuby::Internal::Type::BaseModel
8
+ # @!attribute active_provider
9
+ # The provider that currently gets paid, or null until the participant confirms
10
+ # one.
11
+ #
12
+ # @return [String, nil]
13
+ optional :active_provider, String, api_name: :activeProvider, nil?: true
14
+
15
+ # @!attribute destinations
16
+ # One entry per enabled payout provider describing the participant's destination
17
+ # for it.
18
+ #
19
+ # @return [Array<GrowsurfRuby::Models::Campaign::ParticipantGetPayoutDestinationResponse::Destination>, nil]
20
+ optional :destinations,
21
+ -> {
22
+ GrowsurfRuby::Internal::Type::ArrayOf[
23
+ GrowsurfRuby::Campaign::ParticipantGetPayoutDestinationResponse::Destination
24
+ ]
25
+ }
26
+
27
+ # @!attribute enabled_providers
28
+ # The payout providers enabled for this program.
29
+ #
30
+ # @return [Array<String>, nil]
31
+ optional :enabled_providers,
32
+ -> {
33
+ GrowsurfRuby::Internal::Type::ArrayOf[String]
34
+ },
35
+ api_name: :enabledProviders
36
+
37
+ # @!method initialize(active_provider: nil, destinations: nil, enabled_providers: nil)
38
+ # @param active_provider [String, nil] The provider that currently gets paid, or null until the participant confirms one.
39
+ #
40
+ # @param destinations [Array<GrowsurfRuby::Models::Campaign::ParticipantGetPayoutDestinationResponse::Destination>] One entry per enabled payout provider describing the participant's destination for it.
41
+ #
42
+ # @param enabled_providers [Array<String>] The payout providers enabled for this program.
43
+
44
+ # @see GrowsurfRuby::Models::Campaign::ParticipantGetPayoutDestinationResponse#destinations
45
+ class Destination < GrowsurfRuby::Internal::Type::BaseModel
46
+ # @!attribute claim_email
47
+ # The confirmed payout email for this provider.
48
+ #
49
+ # @return [String, nil]
50
+ optional :claim_email, String, api_name: :claimEmail, nil?: true
51
+
52
+ # @!attribute confirmed_at
53
+ # When the destination was confirmed, as a Unix timestamp in milliseconds.
54
+ #
55
+ # @return [Integer, nil]
56
+ optional :confirmed_at, Integer, api_name: :confirmedAt, nil?: true
57
+
58
+ # @!attribute legal_entity_type
59
+ # The legal recipient type the participant confirmed, if any.
60
+ #
61
+ # @return [Symbol, GrowsurfRuby::Models::Campaign::ParticipantGetPayoutDestinationResponse::Destination::LegalEntityType, nil]
62
+ optional :legal_entity_type,
63
+ enum: -> {
64
+ GrowsurfRuby::Campaign::ParticipantGetPayoutDestinationResponse::Destination::LegalEntityType
65
+ },
66
+ api_name: :legalEntityType,
67
+ nil?: true
68
+
69
+ # @!attribute needs_repair_reason
70
+ # When status is `NEEDS_REPAIR`, why (e.g. a bounced delivery).
71
+ #
72
+ # @return [String, nil]
73
+ optional :needs_repair_reason, String, api_name: :needsRepairReason, nil?: true
74
+
75
+ # @!attribute provider
76
+ # The payout provider this entry describes.
77
+ #
78
+ # @return [String, nil]
79
+ optional :provider, String
80
+
81
+ # @!attribute provider_display_name
82
+ # The customer-facing provider name (e.g. "PayPal", "Wise").
83
+ #
84
+ # @return [String, nil]
85
+ optional :provider_display_name, String, api_name: :providerDisplayName
86
+
87
+ # @!attribute status
88
+ # The destination's current status: `NONE` (not set up), `PENDING_CONFIRMATION`,
89
+ # `CONFIRMED`, `ACTIVE`, `NEEDS_REPAIR`, or `EXPIRED`. Historical superseded
90
+ # or revoked destinations are projected as `NONE`.
91
+ #
92
+ # @return [String, nil]
93
+ optional :status, String
94
+
95
+ # @!method initialize(claim_email: nil, confirmed_at: nil, legal_entity_type: nil, needs_repair_reason: nil, provider: nil, provider_display_name: nil, status: nil)
96
+ # @param claim_email [String, nil] The confirmed payout email for this provider.
97
+ #
98
+ # @param confirmed_at [Integer, nil] When the destination was confirmed, as a Unix timestamp in milliseconds.
99
+ #
100
+ # @param legal_entity_type [Symbol, GrowsurfRuby::Models::Campaign::ParticipantGetPayoutDestinationResponse::Destination::LegalEntityType, nil] The legal recipient type the participant confirmed, if any.
101
+ #
102
+ # @param needs_repair_reason [String, nil] When status is `NEEDS_REPAIR`, why (e.g. a bounced delivery).
103
+ #
104
+ # @param provider [String] The payout provider this entry describes.
105
+ #
106
+ # @param provider_display_name [String] The customer-facing provider name (e.g. "PayPal", "Wise").
107
+ #
108
+ # @param status [String] The destination's current status: `NONE` (not set up), `PENDING_CONFIRMATION`, `CONFIRMED`, `ACTIVE`, `NEEDS_REPAIR`, or `EXPIRED`.
109
+
110
+ # The legal recipient type the participant confirmed, if any.
111
+ #
112
+ # @see GrowsurfRuby::Models::Campaign::ParticipantGetPayoutDestinationResponse::Destination#legal_entity_type
113
+ module LegalEntityType
114
+ extend GrowsurfRuby::Internal::Type::Enum
115
+
116
+ INDIVIDUAL = :INDIVIDUAL
117
+ BUSINESS = :BUSINESS
118
+
119
+ # @!method self.values
120
+ # @return [Array<Symbol>]
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end
@@ -57,6 +57,7 @@ module GrowsurfRuby
57
57
  QUEUED = :QUEUED
58
58
  ISSUED = :ISSUED
59
59
  FAILED = :FAILED
60
+ REVERSED = :REVERSED
60
61
 
61
62
  # @!method self.values
62
63
  # @return [Array<Symbol>]
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ # @see GrowsurfRuby::Resources::Campaign::Participant#request_payout_destination_confirmation
7
+ class ParticipantRequestPayoutDestinationConfirmationParams < 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 provider
22
+ # The payout provider the participant should confirm a destination for.
23
+ #
24
+ # @return [Symbol, GrowsurfRuby::Models::Campaign::ParticipantRequestPayoutDestinationConfirmationParams::Provider]
25
+ required :provider,
26
+ enum: -> { GrowsurfRuby::Campaign::ParticipantRequestPayoutDestinationConfirmationParams::Provider }
27
+
28
+ # @!method initialize(id:, participant_id_or_email:, provider:, request_options: {})
29
+ # @param id [String]
30
+ #
31
+ # @param participant_id_or_email [String]
32
+ #
33
+ # @param provider [Symbol, GrowsurfRuby::Models::Campaign::ParticipantRequestPayoutDestinationConfirmationParams::Provider] The payout provider the participant should confirm a destination for.
34
+ #
35
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}]
36
+
37
+ # The payout provider the participant should confirm a destination for.
38
+ module Provider
39
+ extend GrowsurfRuby::Internal::Type::Enum
40
+
41
+ PAYPAL = :PAYPAL
42
+ WISECOM = :WISECOM
43
+
44
+ # @!method self.values
45
+ # @return [Array<Symbol>]
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end