growsurf-ruby 1.0.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 (137) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -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 +17 -6
  23. data/lib/growsurf_ruby/models/campaign/reward_create_params.rb +25 -15
  24. data/lib/growsurf_ruby/models/campaign/reward_update_params.rb +25 -15
  25. data/lib/growsurf_ruby/models/campaign/webhook.rb +72 -0
  26. data/lib/growsurf_ruby/models/campaign/webhook_create_params.rb +52 -0
  27. data/lib/growsurf_ruby/models/campaign/webhook_delete_params.rb +28 -0
  28. data/lib/growsurf_ruby/models/campaign/webhook_delete_response.rb +24 -0
  29. data/lib/growsurf_ruby/models/campaign/webhook_event.rb +23 -0
  30. data/lib/growsurf_ruby/models/campaign/webhook_list_response.rb +18 -0
  31. data/lib/growsurf_ruby/models/campaign/webhook_test_params.rb +42 -0
  32. data/lib/growsurf_ruby/models/campaign/webhook_test_response.rb +50 -0
  33. data/lib/growsurf_ruby/models/campaign/webhook_update_params.rb +59 -0
  34. data/lib/growsurf_ruby/models/campaign.rb +17 -6
  35. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_params.rb +36 -1
  36. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_response.rb +538 -1
  37. data/lib/growsurf_ruby/models/campaign_update_params.rb +0 -3
  38. data/lib/growsurf_ruby/models/commission_structure.rb +8 -2
  39. data/lib/growsurf_ruby/models/referral_flow_screenshots_response.rb +72 -0
  40. data/lib/growsurf_ruby/models.rb +8 -0
  41. data/lib/growsurf_ruby/resources/account.rb +159 -0
  42. data/lib/growsurf_ruby/resources/campaign/design.rb +9 -7
  43. data/lib/growsurf_ruby/resources/campaign/emails.rb +8 -5
  44. data/lib/growsurf_ruby/resources/campaign/installation.rb +8 -6
  45. data/lib/growsurf_ruby/resources/campaign/options.rb +8 -5
  46. data/lib/growsurf_ruby/resources/campaign/participant.rb +170 -2
  47. data/lib/growsurf_ruby/resources/campaign/rewards.rb +17 -21
  48. data/lib/growsurf_ruby/resources/campaign/webhooks.rb +157 -0
  49. data/lib/growsurf_ruby/resources/campaign.rb +30 -2
  50. data/lib/growsurf_ruby/version.rb +1 -1
  51. data/lib/growsurf_ruby.rb +26 -0
  52. data/rbi/growsurf_ruby/client.rbi +3 -0
  53. data/rbi/growsurf_ruby/models/account.rbi +125 -0
  54. data/rbi/growsurf_ruby/models/account_create_params.rbi +73 -0
  55. data/rbi/growsurf_ruby/models/account_create_response.rbi +115 -0
  56. data/rbi/growsurf_ruby/models/account_resend_verification_email_response.rbi +76 -0
  57. data/rbi/growsurf_ruby/models/account_rotate_api_key_response.rbi +30 -0
  58. data/rbi/growsurf_ruby/models/account_update_params.rbi +65 -0
  59. data/rbi/growsurf_ruby/models/campaign/campaign_reward_list_response.rbi +2 -2
  60. data/rbi/growsurf_ruby/models/campaign/create.rbi +8 -0
  61. data/rbi/growsurf_ruby/models/campaign/participant_activity_logs_response.rbi +111 -0
  62. data/rbi/growsurf_ruby/models/campaign/participant_analytics_response.rbi +630 -0
  63. data/rbi/growsurf_ruby/models/campaign/participant_bulk_delete_params.rbi +56 -0
  64. data/rbi/growsurf_ruby/models/campaign/participant_bulk_delete_response.rbi +285 -0
  65. data/rbi/growsurf_ruby/models/campaign/participant_email_params.rbi +118 -0
  66. data/rbi/growsurf_ruby/models/campaign/participant_email_response.rbi +84 -0
  67. data/rbi/growsurf_ruby/models/campaign/participant_list_activity_logs_params.rbi +74 -0
  68. data/rbi/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rbi +207 -0
  69. data/rbi/growsurf_ruby/models/campaign/participant_update_params.rbi +24 -0
  70. data/rbi/growsurf_ruby/models/campaign/reward.rbi +25 -4
  71. data/rbi/growsurf_ruby/models/campaign/reward_create_params.rbi +34 -9
  72. data/rbi/growsurf_ruby/models/campaign/reward_update_params.rbi +34 -9
  73. data/rbi/growsurf_ruby/models/campaign/webhook.rbi +93 -0
  74. data/rbi/growsurf_ruby/models/campaign/webhook_create_params.rbi +91 -0
  75. data/rbi/growsurf_ruby/models/campaign/webhook_delete_params.rbi +48 -0
  76. data/rbi/growsurf_ruby/models/campaign/webhook_delete_response.rbi +33 -0
  77. data/rbi/growsurf_ruby/models/campaign/webhook_event.rbi +60 -0
  78. data/rbi/growsurf_ruby/models/campaign/webhook_list_response.rbi +36 -0
  79. data/rbi/growsurf_ruby/models/campaign/webhook_test_params.rbi +69 -0
  80. data/rbi/growsurf_ruby/models/campaign/webhook_test_response.rbi +102 -0
  81. data/rbi/growsurf_ruby/models/campaign/webhook_update_params.rbi +98 -0
  82. data/rbi/growsurf_ruby/models/campaign.rbi +25 -4
  83. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_params.rbi +91 -0
  84. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_response.rbi +1011 -3
  85. data/rbi/growsurf_ruby/models/campaign_update_params.rbi +0 -15
  86. data/rbi/growsurf_ruby/models/commission_structure.rbi +8 -2
  87. data/rbi/growsurf_ruby/models/referral_flow_screenshots_response.rbi +94 -0
  88. data/rbi/growsurf_ruby/models.rbi +9 -0
  89. data/rbi/growsurf_ruby/resources/account.rbi +112 -0
  90. data/rbi/growsurf_ruby/resources/campaign/design.rbi +7 -5
  91. data/rbi/growsurf_ruby/resources/campaign/emails.rbi +7 -5
  92. data/rbi/growsurf_ruby/resources/campaign/installation.rbi +7 -4
  93. data/rbi/growsurf_ruby/resources/campaign/options.rbi +7 -5
  94. data/rbi/growsurf_ruby/resources/campaign/participant.rbi +160 -0
  95. data/rbi/growsurf_ruby/resources/campaign/rewards.rbi +37 -21
  96. data/rbi/growsurf_ruby/resources/campaign/webhooks.rbi +123 -0
  97. data/rbi/growsurf_ruby/resources/campaign.rbi +33 -2
  98. data/sig/growsurf_ruby/client.rbs +2 -0
  99. data/sig/growsurf_ruby/models/account.rbs +67 -0
  100. data/sig/growsurf_ruby/models/account_create_params.rbs +42 -0
  101. data/sig/growsurf_ruby/models/account_create_response.rbs +47 -0
  102. data/sig/growsurf_ruby/models/account_resend_verification_email_response.rbs +35 -0
  103. data/sig/growsurf_ruby/models/account_rotate_api_key_response.rbs +13 -0
  104. data/sig/growsurf_ruby/models/account_update_params.rbs +42 -0
  105. data/sig/growsurf_ruby/models/campaign/participant_activity_logs_response.rbs +59 -0
  106. data/sig/growsurf_ruby/models/campaign/participant_analytics_response.rbs +407 -0
  107. data/sig/growsurf_ruby/models/campaign/participant_bulk_delete_params.rbs +30 -0
  108. data/sig/growsurf_ruby/models/campaign/participant_bulk_delete_response.rbs +125 -0
  109. data/sig/growsurf_ruby/models/campaign/participant_email_params.rbs +61 -0
  110. data/sig/growsurf_ruby/models/campaign/participant_email_response.rbs +37 -0
  111. data/sig/growsurf_ruby/models/campaign/participant_list_activity_logs_params.rbs +47 -0
  112. data/sig/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rbs +90 -0
  113. data/sig/growsurf_ruby/models/campaign/participant_update_params.rbs +14 -0
  114. data/sig/growsurf_ruby/models/campaign/reward_create_params.rbs +0 -7
  115. data/sig/growsurf_ruby/models/campaign/reward_update_params.rbs +0 -7
  116. data/sig/growsurf_ruby/models/campaign/webhook.rbs +52 -0
  117. data/sig/growsurf_ruby/models/campaign/webhook_create_params.rbs +51 -0
  118. data/sig/growsurf_ruby/models/campaign/webhook_delete_params.rbs +30 -0
  119. data/sig/growsurf_ruby/models/campaign/webhook_delete_response.rbs +17 -0
  120. data/sig/growsurf_ruby/models/campaign/webhook_event.rbs +28 -0
  121. data/sig/growsurf_ruby/models/campaign/webhook_list_response.rbs +18 -0
  122. data/sig/growsurf_ruby/models/campaign/webhook_test_params.rbs +42 -0
  123. data/sig/growsurf_ruby/models/campaign/webhook_test_response.rbs +54 -0
  124. data/sig/growsurf_ruby/models/campaign/webhook_update_params.rbs +63 -0
  125. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_params.rbs +35 -1
  126. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_response.rbs +533 -3
  127. data/sig/growsurf_ruby/models/campaign_update_params.rbs +1 -4
  128. data/sig/growsurf_ruby/models/commission_structure.rbs +7 -2
  129. data/sig/growsurf_ruby/models/referral_flow_screenshots_response.rbs +54 -0
  130. data/sig/growsurf_ruby/models/reward_tax_valuation.rbs +4 -1
  131. data/sig/growsurf_ruby/models.rbs +8 -0
  132. data/sig/growsurf_ruby/resources/account.rbs +38 -0
  133. data/sig/growsurf_ruby/resources/campaign/participant.rbs +37 -0
  134. data/sig/growsurf_ruby/resources/campaign/rewards.rbs +0 -2
  135. data/sig/growsurf_ruby/resources/campaign/webhooks.rbs +46 -0
  136. data/sig/growsurf_ruby/resources/campaign.rbs +9 -0
  137. metadata +80 -2
@@ -0,0 +1,91 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class WebhookCreateParams < GrowsurfRuby::Internal::Type::BaseModel
7
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
8
+ include GrowsurfRuby::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ GrowsurfRuby::Campaign::WebhookCreateParams,
14
+ GrowsurfRuby::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # The URL that receives webhook deliveries.
19
+ sig { returns(String) }
20
+ attr_accessor :payload_url
21
+
22
+ # The events this webhook is subscribed to. When omitted, it is subscribed to no
23
+ # events.
24
+ sig do
25
+ returns(
26
+ T.nilable(T::Array[GrowsurfRuby::Campaign::WebhookEvent::OrSymbol])
27
+ )
28
+ end
29
+ attr_reader :events
30
+
31
+ sig do
32
+ params(
33
+ events: T::Array[GrowsurfRuby::Campaign::WebhookEvent::OrSymbol]
34
+ ).void
35
+ end
36
+ attr_writer :events
37
+
38
+ sig { returns(T.nilable(T::Boolean)) }
39
+ attr_reader :is_enabled
40
+
41
+ sig { params(is_enabled: T::Boolean).void }
42
+ attr_writer :is_enabled
43
+
44
+ # Write-only. Used to sign deliveries (the `GrowSurf-Signature` HMAC header). Never
45
+ # returned.
46
+ sig { returns(T.nilable(String)) }
47
+ attr_reader :secret
48
+
49
+ sig { params(secret: String).void }
50
+ attr_writer :secret
51
+
52
+ sig do
53
+ params(
54
+ payload_url: String,
55
+ events: T::Array[GrowsurfRuby::Campaign::WebhookEvent::OrSymbol],
56
+ is_enabled: T::Boolean,
57
+ secret: String,
58
+ request_options: GrowsurfRuby::RequestOptions::OrHash
59
+ ).returns(T.attached_class)
60
+ end
61
+ def self.new(
62
+ # The URL that receives webhook deliveries.
63
+ payload_url:,
64
+ # The events this webhook is subscribed to. When omitted, it is subscribed to no
65
+ # events.
66
+ events: nil,
67
+ is_enabled: nil,
68
+ # Write-only. Used to sign deliveries (the `GrowSurf-Signature` HMAC header). Never
69
+ # returned.
70
+ secret: nil,
71
+ request_options: {}
72
+ )
73
+ end
74
+
75
+ sig do
76
+ override.returns(
77
+ {
78
+ payload_url: String,
79
+ events: T::Array[GrowsurfRuby::Campaign::WebhookEvent::OrSymbol],
80
+ is_enabled: T::Boolean,
81
+ secret: String,
82
+ request_options: GrowsurfRuby::RequestOptions
83
+ }
84
+ )
85
+ end
86
+ def to_hash
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class WebhookDeleteParams < GrowsurfRuby::Internal::Type::BaseModel
7
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
8
+ include GrowsurfRuby::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ GrowsurfRuby::Campaign::WebhookDeleteParams,
14
+ GrowsurfRuby::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :webhook_id
23
+
24
+ sig do
25
+ params(
26
+ id: String,
27
+ webhook_id: String,
28
+ request_options: GrowsurfRuby::RequestOptions::OrHash
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(id:, webhook_id:, request_options: {})
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ id: String,
38
+ webhook_id: String,
39
+ request_options: GrowsurfRuby::RequestOptions
40
+ }
41
+ )
42
+ end
43
+ def to_hash
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,33 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class WebhookDeleteResponse < GrowsurfRuby::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ GrowsurfRuby::Models::Campaign::WebhookDeleteResponse,
11
+ GrowsurfRuby::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(String) }
16
+ attr_accessor :id
17
+
18
+ sig { returns(T::Boolean) }
19
+ attr_accessor :success
20
+
21
+ sig do
22
+ params(id: String, success: T::Boolean).returns(T.attached_class)
23
+ end
24
+ def self.new(id:, success:)
25
+ end
26
+
27
+ sig { override.returns({ id: String, success: T::Boolean }) }
28
+ def to_hash
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,60 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ # A webhook event name.
7
+ module WebhookEvent
8
+ extend GrowsurfRuby::Internal::Type::Enum
9
+
10
+ TaggedSymbol =
11
+ T.type_alias { T.all(Symbol, GrowsurfRuby::Campaign::WebhookEvent) }
12
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
13
+
14
+ PARTICIPANT_REACHED_A_GOAL =
15
+ T.let(
16
+ :PARTICIPANT_REACHED_A_GOAL,
17
+ GrowsurfRuby::Campaign::WebhookEvent::TaggedSymbol
18
+ )
19
+ NEW_PARTICIPANT_ADDED =
20
+ T.let(
21
+ :NEW_PARTICIPANT_ADDED,
22
+ GrowsurfRuby::Campaign::WebhookEvent::TaggedSymbol
23
+ )
24
+ CAMPAIGN_ENDED =
25
+ T.let(
26
+ :CAMPAIGN_ENDED,
27
+ GrowsurfRuby::Campaign::WebhookEvent::TaggedSymbol
28
+ )
29
+ PARTICIPANT_FRAUD_STATUS_UPDATED =
30
+ T.let(
31
+ :PARTICIPANT_FRAUD_STATUS_UPDATED,
32
+ GrowsurfRuby::Campaign::WebhookEvent::TaggedSymbol
33
+ )
34
+ NEW_COMMISSION_ADDED =
35
+ T.let(
36
+ :NEW_COMMISSION_ADDED,
37
+ GrowsurfRuby::Campaign::WebhookEvent::TaggedSymbol
38
+ )
39
+ COMMISSION_ADJUSTED =
40
+ T.let(
41
+ :COMMISSION_ADJUSTED,
42
+ GrowsurfRuby::Campaign::WebhookEvent::TaggedSymbol
43
+ )
44
+ NEW_PAYOUT_ISSUED =
45
+ T.let(
46
+ :NEW_PAYOUT_ISSUED,
47
+ GrowsurfRuby::Campaign::WebhookEvent::TaggedSymbol
48
+ )
49
+
50
+ sig do
51
+ override.returns(
52
+ T::Array[GrowsurfRuby::Campaign::WebhookEvent::TaggedSymbol]
53
+ )
54
+ end
55
+ def self.values
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,36 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class WebhookListResponse < GrowsurfRuby::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ GrowsurfRuby::Models::Campaign::WebhookListResponse,
11
+ GrowsurfRuby::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(T::Array[GrowsurfRuby::Models::Campaign::Webhook]) }
16
+ attr_accessor :webhooks
17
+
18
+ sig do
19
+ params(
20
+ webhooks: T::Array[GrowsurfRuby::Models::Campaign::Webhook::OrHash]
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(webhooks:)
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { webhooks: T::Array[GrowsurfRuby::Models::Campaign::Webhook] }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,69 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class WebhookTestParams < GrowsurfRuby::Internal::Type::BaseModel
7
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
8
+ include GrowsurfRuby::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ GrowsurfRuby::Campaign::WebhookTestParams,
14
+ GrowsurfRuby::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :webhook_id
23
+
24
+ # The event to simulate. When omitted, the webhook's first enabled event is used
25
+ # (returns `400` if it has no enabled events).
26
+ sig do
27
+ returns(T.nilable(GrowsurfRuby::Campaign::WebhookEvent::OrSymbol))
28
+ end
29
+ attr_reader :event
30
+
31
+ sig do
32
+ params(event: GrowsurfRuby::Campaign::WebhookEvent::OrSymbol).void
33
+ end
34
+ attr_writer :event
35
+
36
+ sig do
37
+ params(
38
+ id: String,
39
+ webhook_id: String,
40
+ event: GrowsurfRuby::Campaign::WebhookEvent::OrSymbol,
41
+ request_options: GrowsurfRuby::RequestOptions::OrHash
42
+ ).returns(T.attached_class)
43
+ end
44
+ def self.new(
45
+ id:,
46
+ webhook_id:,
47
+ # The event to simulate. When omitted, the webhook's first enabled event is used
48
+ # (returns `400` if it has no enabled events).
49
+ event: nil,
50
+ request_options: {}
51
+ )
52
+ end
53
+
54
+ sig do
55
+ override.returns(
56
+ {
57
+ id: String,
58
+ webhook_id: String,
59
+ event: GrowsurfRuby::Campaign::WebhookEvent::OrSymbol,
60
+ request_options: GrowsurfRuby::RequestOptions
61
+ }
62
+ )
63
+ end
64
+ def to_hash
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,102 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class WebhookTestResponse < GrowsurfRuby::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ GrowsurfRuby::Models::Campaign::WebhookTestResponse,
11
+ GrowsurfRuby::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(T::Boolean) }
16
+ attr_accessor :success
17
+
18
+ # The mock event payload that was sent.
19
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
20
+ attr_reader :payload
21
+
22
+ sig { params(payload: T::Hash[Symbol, T.anything]).void }
23
+ attr_writer :payload
24
+
25
+ sig do
26
+ returns(
27
+ T.nilable(GrowsurfRuby::Campaign::WebhookTestResponse::Response)
28
+ )
29
+ end
30
+ attr_reader :response
31
+
32
+ sig do
33
+ params(
34
+ response:
35
+ GrowsurfRuby::Campaign::WebhookTestResponse::Response::OrHash
36
+ ).void
37
+ end
38
+ attr_writer :response
39
+
40
+ sig do
41
+ params(
42
+ success: T::Boolean,
43
+ payload: T::Hash[Symbol, T.anything],
44
+ response:
45
+ GrowsurfRuby::Campaign::WebhookTestResponse::Response::OrHash
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ success:,
50
+ # The mock event payload that was sent.
51
+ payload: nil,
52
+ response: nil
53
+ )
54
+ end
55
+
56
+ sig do
57
+ override.returns(
58
+ {
59
+ success: T::Boolean,
60
+ payload: T::Hash[Symbol, T.anything],
61
+ response: GrowsurfRuby::Campaign::WebhookTestResponse::Response
62
+ }
63
+ )
64
+ end
65
+ def to_hash
66
+ end
67
+
68
+ class Response < GrowsurfRuby::Internal::Type::BaseModel
69
+ OrHash =
70
+ T.type_alias do
71
+ T.any(
72
+ GrowsurfRuby::Campaign::WebhookTestResponse::Response,
73
+ GrowsurfRuby::Internal::AnyHash
74
+ )
75
+ end
76
+
77
+ sig { returns(T.nilable(String)) }
78
+ attr_reader :msg
79
+
80
+ sig { params(msg: String).void }
81
+ attr_writer :msg
82
+
83
+ sig { returns(T.nilable(Integer)) }
84
+ attr_reader :status_code
85
+
86
+ sig { params(status_code: Integer).void }
87
+ attr_writer :status_code
88
+
89
+ sig do
90
+ params(msg: String, status_code: Integer).returns(T.attached_class)
91
+ end
92
+ def self.new(msg: nil, status_code: nil)
93
+ end
94
+
95
+ sig { override.returns({ msg: String, status_code: Integer }) }
96
+ def to_hash
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,98 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class WebhookUpdateParams < GrowsurfRuby::Internal::Type::BaseModel
7
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
8
+ include GrowsurfRuby::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ GrowsurfRuby::Campaign::WebhookUpdateParams,
14
+ GrowsurfRuby::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :webhook_id
23
+
24
+ sig do
25
+ returns(
26
+ T.nilable(T::Array[GrowsurfRuby::Campaign::WebhookEvent::OrSymbol])
27
+ )
28
+ end
29
+ attr_reader :events
30
+
31
+ sig do
32
+ params(
33
+ events: T::Array[GrowsurfRuby::Campaign::WebhookEvent::OrSymbol]
34
+ ).void
35
+ end
36
+ attr_writer :events
37
+
38
+ sig { returns(T.nilable(T::Boolean)) }
39
+ attr_reader :is_enabled
40
+
41
+ sig { params(is_enabled: T::Boolean).void }
42
+ attr_writer :is_enabled
43
+
44
+ sig { returns(T.nilable(String)) }
45
+ attr_reader :payload_url
46
+
47
+ sig { params(payload_url: String).void }
48
+ attr_writer :payload_url
49
+
50
+ # Write-only.
51
+ sig { returns(T.nilable(String)) }
52
+ attr_reader :secret
53
+
54
+ sig { params(secret: String).void }
55
+ attr_writer :secret
56
+
57
+ sig do
58
+ params(
59
+ id: String,
60
+ webhook_id: String,
61
+ events: T::Array[GrowsurfRuby::Campaign::WebhookEvent::OrSymbol],
62
+ is_enabled: T::Boolean,
63
+ payload_url: String,
64
+ secret: String,
65
+ request_options: GrowsurfRuby::RequestOptions::OrHash
66
+ ).returns(T.attached_class)
67
+ end
68
+ def self.new(
69
+ id:,
70
+ webhook_id:,
71
+ events: nil,
72
+ is_enabled: nil,
73
+ payload_url: nil,
74
+ # Write-only.
75
+ secret: nil,
76
+ request_options: {}
77
+ )
78
+ end
79
+
80
+ sig do
81
+ override.returns(
82
+ {
83
+ id: String,
84
+ webhook_id: String,
85
+ events: T::Array[GrowsurfRuby::Campaign::WebhookEvent::OrSymbol],
86
+ is_enabled: T::Boolean,
87
+ payload_url: String,
88
+ secret: String,
89
+ request_options: GrowsurfRuby::RequestOptions
90
+ }
91
+ )
92
+ end
93
+ def to_hash
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -130,6 +130,9 @@ module GrowsurfRuby
130
130
  sig { returns(T.nilable(Integer)) }
131
131
  attr_accessor :conversions_required
132
132
 
133
+ # Legacy static coupon code shown to the referrer in the reward-won email and
134
+ # webhook. Display text only; superseded by a connected billing integration's
135
+ # issued coupon when one exists.
133
136
  sig { returns(T.nilable(String)) }
134
137
  attr_accessor :coupon_code
135
138
 
@@ -152,19 +155,27 @@ module GrowsurfRuby
152
155
  end
153
156
  attr_accessor :limit_duration
154
157
 
158
+ # Text shown before a participant's referral count in milestone-progress copy.
159
+ # Applies to `MILESTONE` rewards.
155
160
  sig { returns(T.nilable(String)) }
156
161
  attr_accessor :next_milestone_prefix
157
162
 
163
+ # Text shown after a participant's referral count in milestone-progress copy.
164
+ # Applies to `MILESTONE` rewards.
158
165
  sig { returns(T.nilable(String)) }
159
166
  attr_accessor :next_milestone_suffix
160
167
 
168
+ # The number of winners (`LEADERBOARD` rewards only). With `limitDuration`
169
+ # `PER_MONTH` this many win each month, otherwise this many win in total.
161
170
  sig { returns(T.nilable(Integer)) }
162
171
  attr_accessor :number_of_winners
163
172
 
164
173
  sig { returns(T.nilable(Integer)) }
165
174
  attr_accessor :order
166
175
 
167
- # The coupon code delivered to the referred friend (double-sided rewards).
176
+ # Legacy static coupon code shown to the referred friend (double-sided rewards)
177
+ # in the reward-won email and webhook. Display text only; superseded by a
178
+ # connected billing integration's issued coupon when one exists.
168
179
  sig { returns(T.nilable(String)) }
169
180
  attr_accessor :referral_coupon_code
170
181
 
@@ -223,8 +234,7 @@ module GrowsurfRuby
223
234
  referral_coupon_code: T.nilable(String),
224
235
  referral_description: T.nilable(String),
225
236
  referred_reward_upfront: T::Boolean,
226
- referred_value:
227
- T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash),
237
+ referred_value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash),
228
238
  value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash)
229
239
  ).returns(T.attached_class)
230
240
  end
@@ -236,17 +246,28 @@ module GrowsurfRuby
236
246
  type:,
237
247
  commission_structure: nil,
238
248
  conversions_required: nil,
249
+ # Legacy static coupon code shown to the referrer in the reward-won email and
250
+ # webhook. Display text only; superseded by a connected billing integration's
251
+ # issued coupon when one exists.
239
252
  coupon_code: nil,
240
253
  description: nil,
241
254
  image_url: nil,
242
255
  # `-1` represents an unlimited reward in REST responses.
243
256
  limit: nil,
244
257
  limit_duration: nil,
258
+ # Text shown before a participant's referral count in milestone-progress copy.
259
+ # Applies to `MILESTONE` rewards.
245
260
  next_milestone_prefix: nil,
261
+ # Text shown after a participant's referral count in milestone-progress copy.
262
+ # Applies to `MILESTONE` rewards.
246
263
  next_milestone_suffix: nil,
264
+ # The number of winners (`LEADERBOARD` rewards only). With `limitDuration`
265
+ # `PER_MONTH` this many win each month, otherwise this many win in total.
247
266
  number_of_winners: nil,
248
267
  order: nil,
249
- # The coupon code delivered to the referred friend (double-sided rewards).
268
+ # Legacy static coupon code shown to the referred friend (double-sided rewards)
269
+ # in the reward-won email and webhook. Display text only; superseded by a
270
+ # connected billing integration's issued coupon when one exists.
250
271
  referral_coupon_code: nil,
251
272
  referral_description: nil,
252
273
  referred_reward_upfront: nil,