growsurf-ruby 1.4.0 → 1.5.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 +22 -0
  3. data/README.md +10 -7
  4. data/lib/growsurf_ruby/internal/transport/base_client.rb +6 -1
  5. data/lib/growsurf_ruby/internal/type/base_model.rb +26 -0
  6. data/lib/growsurf_ruby/internal/type/base_page.rb +6 -0
  7. data/lib/growsurf_ruby/models/account_create_response.rb +3 -3
  8. data/lib/growsurf_ruby/models/analytics_availability.rb +16 -0
  9. data/lib/growsurf_ruby/models/analytics_unavailable_reason.rb +20 -0
  10. data/lib/growsurf_ruby/models/campaign/delete_program_resource_response.rb +12 -0
  11. data/lib/growsurf_ruby/models/campaign/integration.rb +69 -0
  12. data/lib/growsurf_ruby/models/campaign/integration_list_response.rb +24 -0
  13. data/lib/growsurf_ruby/models/campaign/participant_activation_analytics.rb +75 -0
  14. data/lib/growsurf_ruby/models/campaign/participant_analytics_response.rb +11 -0
  15. data/lib/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rb +17 -17
  16. data/lib/growsurf_ruby/models/campaign/participant_record_transaction_params.rb +9 -1
  17. data/lib/growsurf_ruby/models/campaign/participant_refund_transaction_params.rb +17 -1
  18. data/lib/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rb +8 -8
  19. data/lib/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rb +4 -3
  20. data/lib/growsurf_ruby/models/campaign/participant_reward.rb +15 -3
  21. data/lib/growsurf_ruby/models/campaign/program_resource.rb +51 -0
  22. data/lib/growsurf_ruby/models/campaign/program_resource_create_params.rb +32 -0
  23. data/lib/growsurf_ruby/models/campaign/program_resource_delete_params.rb +14 -0
  24. data/lib/growsurf_ruby/models/campaign/program_resource_list_response.rb +12 -0
  25. data/lib/growsurf_ruby/models/campaign/program_resource_update_params.rb +35 -0
  26. data/lib/growsurf_ruby/models/campaign/program_resource_upload_result.rb +33 -0
  27. data/lib/growsurf_ruby/models/campaign/program_resource_upload_ticket.rb +26 -0
  28. data/lib/growsurf_ruby/models/campaign/program_resource_upload_ticket_params.rb +17 -0
  29. data/lib/growsurf_ruby/models/campaign/reward_create_params.rb +9 -8
  30. data/lib/growsurf_ruby/models/campaign/reward_update_params.rb +9 -8
  31. data/lib/growsurf_ruby/models/campaign.rb +3 -1
  32. data/lib/growsurf_ruby/models/campaign_activation_analytics_response.rb +186 -0
  33. data/lib/growsurf_ruby/models/campaign_create_params.rb +37 -1
  34. data/lib/growsurf_ruby/models/campaign_engagement_analytics.rb +174 -0
  35. data/lib/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rb +35 -0
  36. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_params.rb +37 -4
  37. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_response.rb +3 -0
  38. data/lib/growsurf_ruby/models/commission_structure.rb +4 -1
  39. data/lib/growsurf_ruby/models/participant_commission_list.rb +5 -5
  40. data/lib/growsurf_ruby/models/participant_payout_list.rb +5 -5
  41. data/lib/growsurf_ruby/models.rb +7 -0
  42. data/lib/growsurf_ruby/resources/account.rb +17 -11
  43. data/lib/growsurf_ruby/resources/campaign/design.rb +11 -5
  44. data/lib/growsurf_ruby/resources/campaign/emails.rb +2 -1
  45. data/lib/growsurf_ruby/resources/campaign/integrations.rb +41 -0
  46. data/lib/growsurf_ruby/resources/campaign/participant.rb +25 -24
  47. data/lib/growsurf_ruby/resources/campaign/program_resources.rb +112 -0
  48. data/lib/growsurf_ruby/resources/campaign/rewards.rb +6 -4
  49. data/lib/growsurf_ruby/resources/campaign.rb +53 -7
  50. data/lib/growsurf_ruby/resources/team.rb +7 -5
  51. data/lib/growsurf_ruby/version.rb +1 -1
  52. data/lib/growsurf_ruby.rb +19 -0
  53. data/rbi/growsurf_ruby/internal/type/base_model.rbi +10 -0
  54. data/rbi/growsurf_ruby/internal/type/base_page.rbi +3 -0
  55. data/rbi/growsurf_ruby/models/analytics_availability.rbi +19 -0
  56. data/rbi/growsurf_ruby/models/analytics_unavailable_reason.rbi +23 -0
  57. data/rbi/growsurf_ruby/models/campaign/delete_program_resource_response.rbi +33 -0
  58. data/rbi/growsurf_ruby/models/campaign/integration.rbi +93 -0
  59. data/rbi/growsurf_ruby/models/campaign/integration_list_response.rbi +46 -0
  60. data/rbi/growsurf_ruby/models/campaign/participant_activation_analytics.rbi +133 -0
  61. data/rbi/growsurf_ruby/models/campaign/participant_analytics_response.rbi +35 -0
  62. data/rbi/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rbi +17 -23
  63. data/rbi/growsurf_ruby/models/campaign/participant_record_transaction_params.rbi +18 -0
  64. data/rbi/growsurf_ruby/models/campaign/participant_refund_transaction_params.rbi +18 -0
  65. data/rbi/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rbi +7 -9
  66. data/rbi/growsurf_ruby/models/campaign/participant_reward.rbi +24 -6
  67. data/rbi/growsurf_ruby/models/campaign/program_resource.rbi +186 -0
  68. data/rbi/growsurf_ruby/models/campaign/program_resource_create_params.rbi +95 -0
  69. data/rbi/growsurf_ruby/models/campaign/program_resource_delete_params.rbi +37 -0
  70. data/rbi/growsurf_ruby/models/campaign/program_resource_list_response.rbi +29 -0
  71. data/rbi/growsurf_ruby/models/campaign/program_resource_update_params.rbi +105 -0
  72. data/rbi/growsurf_ruby/models/campaign/program_resource_upload_result.rbi +94 -0
  73. data/rbi/growsurf_ruby/models/campaign/program_resource_upload_ticket.rbi +57 -0
  74. data/rbi/growsurf_ruby/models/campaign/program_resource_upload_ticket_params.rbi +53 -0
  75. data/rbi/growsurf_ruby/models/campaign/reward_create_params.rbi +33 -24
  76. data/rbi/growsurf_ruby/models/campaign/reward_update_params.rbi +33 -24
  77. data/rbi/growsurf_ruby/models/campaign.rbi +6 -3
  78. data/rbi/growsurf_ruby/models/campaign_activation_analytics_response.rbi +325 -0
  79. data/rbi/growsurf_ruby/models/campaign_create_params.rbi +91 -0
  80. data/rbi/growsurf_ruby/models/campaign_engagement_analytics.rbi +369 -0
  81. data/rbi/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rbi +59 -0
  82. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_params.rbi +56 -3
  83. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_response.rbi +27 -7
  84. data/rbi/growsurf_ruby/models/commission_structure.rbi +3 -1
  85. data/rbi/growsurf_ruby/models/participant_commission_list.rbi +15 -15
  86. data/rbi/growsurf_ruby/models/participant_payout_list.rbi +15 -15
  87. data/rbi/growsurf_ruby/models.rbi +7 -0
  88. data/rbi/growsurf_ruby/resources/account.rbi +9 -6
  89. data/rbi/growsurf_ruby/resources/campaign/design.rbi +32 -4
  90. data/rbi/growsurf_ruby/resources/campaign/emails.rbi +2 -1
  91. data/rbi/growsurf_ruby/resources/campaign/integrations.rbi +35 -0
  92. data/rbi/growsurf_ruby/resources/campaign/participant.rbi +27 -18
  93. data/rbi/growsurf_ruby/resources/campaign/program_resources.rbi +116 -0
  94. data/rbi/growsurf_ruby/resources/campaign/rewards.rbi +21 -16
  95. data/rbi/growsurf_ruby/resources/campaign.rbi +53 -5
  96. data/rbi/growsurf_ruby/resources/team.rbi +7 -5
  97. data/sig/growsurf_ruby/internal/type/base_model.rbs +6 -0
  98. data/sig/growsurf_ruby/internal/type/base_page.rbs +2 -0
  99. data/sig/growsurf_ruby/models/analytics_availability.rbs +15 -0
  100. data/sig/growsurf_ruby/models/analytics_unavailable_reason.rbs +26 -0
  101. data/sig/growsurf_ruby/models/campaign/delete_program_resource_response.rbs +14 -0
  102. data/sig/growsurf_ruby/models/campaign/integration.rbs +47 -0
  103. data/sig/growsurf_ruby/models/campaign/integration_list_response.rbs +20 -0
  104. data/sig/growsurf_ruby/models/campaign/participant_activation_analytics.rbs +96 -0
  105. data/sig/growsurf_ruby/models/campaign/participant_analytics_response.rbs +22 -1
  106. data/sig/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rbs +17 -22
  107. data/sig/growsurf_ruby/models/campaign/participant_record_transaction_params.rbs +15 -1
  108. data/sig/growsurf_ruby/models/campaign/participant_refund_transaction_params.rbs +15 -1
  109. data/sig/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rbs +8 -10
  110. data/sig/growsurf_ruby/models/campaign/participant_reward.rbs +22 -8
  111. data/sig/growsurf_ruby/models/campaign/program_resource.rbs +94 -0
  112. data/sig/growsurf_ruby/models/campaign/program_resource_create_params.rbs +45 -0
  113. data/sig/growsurf_ruby/models/campaign/program_resource_delete_params.rbs +22 -0
  114. data/sig/growsurf_ruby/models/campaign/program_resource_list_response.rbs +14 -0
  115. data/sig/growsurf_ruby/models/campaign/program_resource_update_params.rbs +48 -0
  116. data/sig/growsurf_ruby/models/campaign/program_resource_upload_result.rbs +58 -0
  117. data/sig/growsurf_ruby/models/campaign/program_resource_upload_ticket.rbs +29 -0
  118. data/sig/growsurf_ruby/models/campaign/program_resource_upload_ticket_params.rbs +29 -0
  119. data/sig/growsurf_ruby/models/campaign/reward_create_params.rbs +34 -34
  120. data/sig/growsurf_ruby/models/campaign/reward_update_params.rbs +34 -34
  121. data/sig/growsurf_ruby/models/campaign.rbs +7 -5
  122. data/sig/growsurf_ruby/models/campaign_activation_analytics_response.rbs +202 -0
  123. data/sig/growsurf_ruby/models/campaign_create_params.rbs +29 -0
  124. data/sig/growsurf_ruby/models/campaign_engagement_analytics.rbs +186 -0
  125. data/sig/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rbs +45 -0
  126. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_params.rbs +30 -1
  127. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_response.rbs +21 -3
  128. data/sig/growsurf_ruby/models/participant_commission_list.rbs +20 -20
  129. data/sig/growsurf_ruby/models/participant_payout_list.rbs +20 -20
  130. data/sig/growsurf_ruby/models.rbs +6 -0
  131. data/sig/growsurf_ruby/resources/campaign/design.rbs +19 -0
  132. data/sig/growsurf_ruby/resources/campaign/integrations.rbs +14 -0
  133. data/sig/growsurf_ruby/resources/campaign/participant.rbs +4 -0
  134. data/sig/growsurf_ruby/resources/campaign/program_resources.rbs +58 -0
  135. data/sig/growsurf_ruby/resources/campaign/rewards.rbs +12 -12
  136. data/sig/growsurf_ruby/resources/campaign.rbs +17 -0
  137. metadata +59 -2
@@ -9,28 +9,28 @@ module GrowsurfRuby
9
9
  # When the confirmation link expires, as a Unix timestamp in milliseconds.
10
10
  #
11
11
  # @return [Integer, nil]
12
- optional :expires_at, Integer, api_name: :expiresAt, nil?: true
12
+ required :expires_at, Integer, api_name: :expiresAt, nil?: true
13
13
 
14
14
  # @!attribute provider
15
15
  # The provider the participant was asked to confirm.
16
16
  #
17
- # @return [String, nil]
18
- optional :provider, String
17
+ # @return [String]
18
+ required :provider, String
19
19
 
20
20
  # @!attribute provider_display_name
21
21
  # The customer-facing provider name (e.g. "PayPal", "Wise").
22
22
  #
23
- # @return [String, nil]
24
- optional :provider_display_name, String, api_name: :providerDisplayName
23
+ # @return [String]
24
+ required :provider_display_name, String, api_name: :providerDisplayName
25
25
 
26
26
  # @!attribute status
27
27
  # Confirms the message was requested.
28
28
  #
29
- # @return [Symbol, GrowsurfRuby::Models::Campaign::ParticipantRequestPayoutDestinationConfirmationResponse::Status, nil]
30
- optional :status,
29
+ # @return [Symbol, GrowsurfRuby::Models::Campaign::ParticipantRequestPayoutDestinationConfirmationResponse::Status]
30
+ required :status,
31
31
  enum: -> { GrowsurfRuby::Campaign::ParticipantRequestPayoutDestinationConfirmationResponse::Status }
32
32
 
33
- # @!method initialize(expires_at: nil, provider: nil, provider_display_name: nil, status: nil)
33
+ # @!method initialize(expires_at:, provider:, provider_display_name:, status:)
34
34
  # @param expires_at [Integer, nil] When the confirmation link expires, as a Unix timestamp in milliseconds.
35
35
  #
36
36
  # @param provider [String] The provider the participant was asked to confirm.
@@ -37,9 +37,10 @@ module GrowsurfRuby
37
37
  # Comma-separated optional data. `series` returns this participant's own activity
38
38
  # per period; `email` returns `sent`, `delivered`, `opened`, `clicked`, `bounced`,
39
39
  # `spamComplaints`, and per-email-type metrics attributed to the participant for
40
- # the requested analytics window (including invitations they sent). Request both
41
- # in either order to add email counts to every series item for emails sent during
42
- # that period. Only documented tokens are accepted; an unknown token returns `400`.
40
+ # the requested analytics window (including invitations they sent); `activation`
41
+ # returns the cohort anchor and covered first milestones. Request
42
+ # `activation,series` to add covered portal-view and share-action counts to every
43
+ # series item. Only documented tokens are accepted; an unknown token returns `400`.
43
44
  #
44
45
  # @return [String, nil]
45
46
  optional :include, String
@@ -27,7 +27,12 @@ module GrowsurfRuby
27
27
  # @!attribute approved_at
28
28
  #
29
29
  # @return [Integer, nil]
30
- optional :approved_at, Integer, api_name: :approvedAt
30
+ optional :approved_at, Integer, api_name: :approvedAt, nil?: true
31
+
32
+ # @!attribute amount
33
+ #
34
+ # @return [Float, nil]
35
+ optional :amount, Float, nil?: true
31
36
 
32
37
  # @!attribute commission_structure
33
38
  #
@@ -37,10 +42,15 @@ module GrowsurfRuby
37
42
  api_name: :commissionStructure,
38
43
  nil?: true
39
44
 
45
+ # @!attribute currency_iso
46
+ #
47
+ # @return [String, nil]
48
+ optional :currency_iso, String, api_name: :currencyISO, nil?: true
49
+
40
50
  # @!attribute fulfilled_at
41
51
  #
42
52
  # @return [Integer, nil]
43
- optional :fulfilled_at, Integer, api_name: :fulfilledAt
53
+ optional :fulfilled_at, Integer, api_name: :fulfilledAt, nil?: true
44
54
 
45
55
  # @!attribute is_available
46
56
  #
@@ -72,13 +82,15 @@ module GrowsurfRuby
72
82
  # @return [Boolean, nil]
73
83
  optional :unread, GrowsurfRuby::Internal::Type::Boolean
74
84
 
75
- # @!method initialize(id:, reward_id:, status:, approved: nil, approved_at: nil, commission_structure: nil, fulfilled_at: nil, is_available: nil, is_fulfilled: nil, is_referrer: nil, referred_id: nil, referrer_id: nil, unread: nil)
85
+ # @!method initialize(id:, reward_id:, status:, approved: nil, approved_at: nil, amount: nil, commission_structure: nil, currency_iso: nil, fulfilled_at: nil, is_available: nil, is_fulfilled: nil, is_referrer: nil, referred_id: nil, referrer_id: nil, unread: nil)
76
86
  # @param id [String]
77
87
  # @param reward_id [String]
78
88
  # @param status [Symbol, GrowsurfRuby::Models::Campaign::ParticipantReward::Status]
79
89
  # @param approved [Boolean]
80
90
  # @param approved_at [Integer]
91
+ # @param amount [Float]
81
92
  # @param commission_structure [GrowsurfRuby::Models::CommissionStructure, nil]
93
+ # @param currency_iso [String]
82
94
  # @param fulfilled_at [Integer]
83
95
  # @param is_available [Boolean]
84
96
  # @param is_fulfilled [Boolean]
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class ProgramResourceFile < GrowsurfRuby::Internal::Type::BaseModel
7
+ required :file_name, String, api_name: :fileName
8
+ required :mime_type, String, api_name: :mimeType
9
+ required :bytes, Integer
10
+ required :format, String
11
+ required :moderation_status,
12
+ enum: -> { GrowsurfRuby::Campaign::ProgramResourceFile::ModerationStatus },
13
+ api_name: :moderationStatus
14
+
15
+ module ModerationStatus
16
+ extend GrowsurfRuby::Internal::Type::Enum
17
+
18
+ PENDING = :PENDING
19
+ APPROVED = :APPROVED
20
+ REJECTED = :REJECTED
21
+ end
22
+ end
23
+
24
+ # A program-owned participant resource returned by the REST API.
25
+ class ProgramResource < GrowsurfRuby::Internal::Type::BaseModel
26
+ required :id, String
27
+ required :type, enum: -> { GrowsurfRuby::Campaign::ProgramResource::Type }
28
+ required :title, String
29
+ required :description, String, nil?: true
30
+ required :category, String, nil?: true
31
+ required :url, String, nil?: true
32
+ required :text, String, nil?: true
33
+ required :file, -> { GrowsurfRuby::Campaign::ProgramResourceFile }, nil?: true
34
+ required :is_published, GrowsurfRuby::Internal::Type::Boolean, api_name: :isPublished
35
+ required :position, Integer
36
+ # Unix time in milliseconds when the resource was created.
37
+ required :created_at, Integer, api_name: :createdAt
38
+ # Unix time in milliseconds when the resource was last updated.
39
+ required :updated_at, Integer, api_name: :updatedAt
40
+
41
+ module Type
42
+ extend GrowsurfRuby::Internal::Type::Enum
43
+
44
+ FILE = :FILE
45
+ LINK = :LINK
46
+ TEXT = :TEXT
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class ProgramResourceCreateParams < GrowsurfRuby::Internal::Type::BaseModel
7
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
8
+ include GrowsurfRuby::Internal::Type::RequestParameters
9
+
10
+ required :type, enum: -> { GrowsurfRuby::Campaign::ProgramResourceCreateParams::Type }
11
+ required :title, String
12
+ optional :description, String, nil?: true
13
+ optional :category, String, nil?: true
14
+ optional :is_published, GrowsurfRuby::Internal::Type::Boolean, api_name: :isPublished
15
+ optional :url, String
16
+ optional :text, String
17
+ optional :upload_ticket, String, api_name: :uploadTicket
18
+ optional :upload_result,
19
+ GrowsurfRuby::Models::Campaign::ProgramResourceUploadResult,
20
+ api_name: :uploadResult
21
+
22
+ module Type
23
+ extend GrowsurfRuby::Internal::Type::Enum
24
+
25
+ FILE = :FILE
26
+ LINK = :LINK
27
+ TEXT = :TEXT
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class ProgramResourceDeleteParams < GrowsurfRuby::Internal::Type::BaseModel
7
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
8
+ include GrowsurfRuby::Internal::Type::RequestParameters
9
+
10
+ required :id, String
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class ProgramResourceListResponse < GrowsurfRuby::Internal::Type::BaseModel
7
+ required :resources,
8
+ -> { GrowsurfRuby::Internal::Type::ArrayOf[GrowsurfRuby::Campaign::ProgramResource] }
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class ProgramResourceUpdateParams < GrowsurfRuby::Internal::Type::BaseModel
7
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
8
+ include GrowsurfRuby::Internal::Type::RequestParameters
9
+
10
+ required :id, String
11
+ optional :type, enum: -> { GrowsurfRuby::Campaign::ProgramResourceUpdateParams::Type }
12
+ optional :title, String
13
+ optional :description, String, nil?: true
14
+ optional :category, String, nil?: true
15
+ optional :is_published, GrowsurfRuby::Internal::Type::Boolean, api_name: :isPublished
16
+ # Zero-based destination. Must be from 0 through 99 and within the current Resource list.
17
+ optional :position, Integer
18
+ optional :url, String
19
+ optional :text, String
20
+ optional :upload_ticket, String, api_name: :uploadTicket
21
+ optional :upload_result,
22
+ GrowsurfRuby::Models::Campaign::ProgramResourceUploadResult,
23
+ api_name: :uploadResult
24
+
25
+ module Type
26
+ extend GrowsurfRuby::Internal::Type::Enum
27
+
28
+ FILE = :FILE
29
+ LINK = :LINK
30
+ TEXT = :TEXT
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ # The unmodified signed result returned after uploading with a GrowSurf ticket.
7
+ class ProgramResourceUploadResult < GrowsurfRuby::Internal::Type::BaseModel
8
+ optional :asset_id, String
9
+ required :public_id, String
10
+ required :version, Integer
11
+ required :signature, String
12
+ required :resource_type, enum: -> { GrowsurfRuby::Models::Campaign::ProgramResourceUploadResult::ResourceType }
13
+ required :type, enum: -> { GrowsurfRuby::Models::Campaign::ProgramResourceUploadResult::Type }
14
+ required :bytes, Integer
15
+ required :secure_url, String
16
+ optional :format, String
17
+
18
+ module ResourceType
19
+ extend GrowsurfRuby::Internal::Type::Enum
20
+
21
+ IMAGE = :image
22
+ RAW = :raw
23
+ end
24
+
25
+ module Type
26
+ extend GrowsurfRuby::Internal::Type::Enum
27
+
28
+ AUTHENTICATED = :authenticated
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ module ProgramResourceUploadParameter
7
+ extend GrowsurfRuby::Internal::Type::Union
8
+
9
+ variant GrowsurfRuby::Internal::Type::Boolean
10
+ variant String
11
+ variant Integer
12
+ variant Float
13
+ end
14
+
15
+ class ProgramResourceUploadTicket < GrowsurfRuby::Internal::Type::BaseModel
16
+ required :ticket, String
17
+ required :expires_in, Integer, api_name: :expiresIn
18
+ required :upload_url, String, api_name: :uploadUrl
19
+ # Opaque signed scalar fields that must be sent unchanged with the file upload.
20
+ required :upload_parameters,
21
+ GrowsurfRuby::Internal::Type::HashOf[GrowsurfRuby::Models::Campaign::ProgramResourceUploadParameter],
22
+ api_name: :uploadParameters
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class ProgramResourceUploadTicketParams < GrowsurfRuby::Internal::Type::BaseModel
7
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
8
+ include GrowsurfRuby::Internal::Type::RequestParameters
9
+
10
+ # File name sent to GrowSurf. Must contain 1 through 120 characters.
11
+ required :file_name, String, api_name: :fileName
12
+ required :mime_type, String, api_name: :mimeType
13
+ required :bytes, Integer
14
+ end
15
+ end
16
+ end
17
+ end
@@ -31,7 +31,7 @@ module GrowsurfRuby
31
31
  # issued coupon when one exists.
32
32
  #
33
33
  # @return [String, nil]
34
- optional :coupon_code, String, api_name: :couponCode
34
+ optional :coupon_code, String, api_name: :couponCode, nil?: true
35
35
 
36
36
  # @!attribute description
37
37
  #
@@ -50,7 +50,7 @@ module GrowsurfRuby
50
50
  # @!attribute image_url
51
51
  #
52
52
  # @return [String, nil]
53
- optional :image_url, String, api_name: :imageUrl
53
+ optional :image_url, String, api_name: :imageUrl, nil?: true
54
54
 
55
55
  # @!attribute is_unlimited
56
56
  # Whether the reward can be earned an unlimited number of times. Defaults to
@@ -89,14 +89,14 @@ module GrowsurfRuby
89
89
  # Applies to `MILESTONE` rewards.
90
90
  #
91
91
  # @return [String, nil]
92
- optional :next_milestone_prefix, String, api_name: :nextMilestonePrefix
92
+ optional :next_milestone_prefix, String, api_name: :nextMilestonePrefix, nil?: true
93
93
 
94
94
  # @!attribute next_milestone_suffix
95
95
  # Text shown after a participant's referral count in milestone-progress copy.
96
96
  # Applies to `MILESTONE` rewards.
97
97
  #
98
98
  # @return [String, nil]
99
- optional :next_milestone_suffix, String, api_name: :nextMilestoneSuffix
99
+ optional :next_milestone_suffix, String, api_name: :nextMilestoneSuffix, nil?: true
100
100
 
101
101
  # @!attribute number_of_winners
102
102
  # The number of winners (`LEADERBOARD` rewards only). With `limitDuration`
@@ -117,12 +117,12 @@ module GrowsurfRuby
117
117
  # connected billing integration's issued coupon when one exists.
118
118
  #
119
119
  # @return [String, nil]
120
- optional :referral_coupon_code, String, api_name: :referralCouponCode
120
+ optional :referral_coupon_code, String, api_name: :referralCouponCode, nil?: true
121
121
 
122
122
  # @!attribute referral_description
123
123
  #
124
124
  # @return [String, nil]
125
- optional :referral_description, String, api_name: :referralDescription
125
+ optional :referral_description, String, api_name: :referralDescription, nil?: true
126
126
 
127
127
  # @!attribute referred_reward_upfront
128
128
  #
@@ -138,7 +138,8 @@ module GrowsurfRuby
138
138
  # @return [GrowsurfRuby::Models::RewardTaxValuation, nil]
139
139
  optional :referred_value,
140
140
  -> { GrowsurfRuby::RewardTaxValuation },
141
- api_name: :referredValue
141
+ api_name: :referredValue,
142
+ nil?: true
142
143
 
143
144
  # @!attribute title
144
145
  #
@@ -150,7 +151,7 @@ module GrowsurfRuby
150
151
  # Used by tax documentation / 1099 reporting.
151
152
  #
152
153
  # @return [GrowsurfRuby::Models::RewardTaxValuation, nil]
153
- optional :value, -> { GrowsurfRuby::RewardTaxValuation }
154
+ optional :value, -> { GrowsurfRuby::RewardTaxValuation }, nil?: true
154
155
 
155
156
  # @!method initialize(type:, commission_structure: nil, conversions_required: nil, coupon_code: nil, description: nil, event: 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: {})
156
157
  # Some parameter documentations has been truncated, see
@@ -36,7 +36,7 @@ module GrowsurfRuby
36
36
  # issued coupon when one exists.
37
37
  #
38
38
  # @return [String, nil]
39
- optional :coupon_code, String, api_name: :couponCode
39
+ optional :coupon_code, String, api_name: :couponCode, nil?: true
40
40
 
41
41
  # @!attribute description
42
42
  #
@@ -55,7 +55,7 @@ module GrowsurfRuby
55
55
  # @!attribute image_url
56
56
  #
57
57
  # @return [String, nil]
58
- optional :image_url, String, api_name: :imageUrl
58
+ optional :image_url, String, api_name: :imageUrl, nil?: true
59
59
 
60
60
  # @!attribute is_unlimited
61
61
  # Whether the reward can be earned an unlimited number of times. Defaults to
@@ -94,14 +94,14 @@ module GrowsurfRuby
94
94
  # Applies to `MILESTONE` rewards.
95
95
  #
96
96
  # @return [String, nil]
97
- optional :next_milestone_prefix, String, api_name: :nextMilestonePrefix
97
+ optional :next_milestone_prefix, String, api_name: :nextMilestonePrefix, nil?: true
98
98
 
99
99
  # @!attribute next_milestone_suffix
100
100
  # Text shown after a participant's referral count in milestone-progress copy.
101
101
  # Applies to `MILESTONE` rewards.
102
102
  #
103
103
  # @return [String, nil]
104
- optional :next_milestone_suffix, String, api_name: :nextMilestoneSuffix
104
+ optional :next_milestone_suffix, String, api_name: :nextMilestoneSuffix, nil?: true
105
105
 
106
106
  # @!attribute number_of_winners
107
107
  # The number of winners (`LEADERBOARD` rewards only). With `limitDuration`
@@ -122,12 +122,12 @@ module GrowsurfRuby
122
122
  # connected billing integration's issued coupon when one exists.
123
123
  #
124
124
  # @return [String, nil]
125
- optional :referral_coupon_code, String, api_name: :referralCouponCode
125
+ optional :referral_coupon_code, String, api_name: :referralCouponCode, nil?: true
126
126
 
127
127
  # @!attribute referral_description
128
128
  #
129
129
  # @return [String, nil]
130
- optional :referral_description, String, api_name: :referralDescription
130
+ optional :referral_description, String, api_name: :referralDescription, nil?: true
131
131
 
132
132
  # @!attribute referred_reward_upfront
133
133
  #
@@ -143,7 +143,8 @@ module GrowsurfRuby
143
143
  # @return [GrowsurfRuby::Models::RewardTaxValuation, nil]
144
144
  optional :referred_value,
145
145
  -> { GrowsurfRuby::RewardTaxValuation },
146
- api_name: :referredValue
146
+ api_name: :referredValue,
147
+ nil?: true
147
148
 
148
149
  # @!attribute title
149
150
  #
@@ -155,7 +156,7 @@ module GrowsurfRuby
155
156
  # Used by tax documentation / 1099 reporting.
156
157
  #
157
158
  # @return [GrowsurfRuby::Models::RewardTaxValuation, nil]
158
- optional :value, -> { GrowsurfRuby::RewardTaxValuation }
159
+ optional :value, -> { GrowsurfRuby::RewardTaxValuation }, nil?: true
159
160
 
160
161
  # @!method initialize(id:, campaign_reward_id:, commission_structure: nil, conversions_required: nil, coupon_code: nil, description: nil, event: 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: {})
161
162
  # Some parameter documentations has been truncated, see
@@ -57,7 +57,7 @@ module GrowsurfRuby
57
57
  # @!attribute currency_iso
58
58
  #
59
59
  # @return [String, nil]
60
- optional :currency_iso, String, api_name: :currencyISO
60
+ optional :currency_iso, String, api_name: :currencyISO, nil?: true
61
61
 
62
62
  # @!method initialize(id:, impression_count:, invite_count:, name:, participant_count:, referral_count:, rewards:, status:, type:, winner_count:, currency_iso: nil)
63
63
  # @param id [String]
@@ -293,8 +293,10 @@ module GrowsurfRuby
293
293
  extend GrowsurfRuby::Internal::Type::Enum
294
294
 
295
295
  DRAFT = :DRAFT
296
+ PENDING = :PENDING
296
297
  IN_PROGRESS = :IN_PROGRESS
297
298
  COMPLETE = :COMPLETE
299
+ CANCELLED = :CANCELLED
298
300
  DELETED = :DELETED
299
301
 
300
302
  # @!method self.values
@@ -0,0 +1,186 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ # Activation cohorts for eligible participants in a referral or affiliate program.
6
+ class CampaignActivationAnalyticsResponse < GrowsurfRuby::Internal::Type::BaseModel
7
+ required :coverage_start_at, Integer, api_name: :coverageStartAt, nil?: true
8
+ required :metric_contract_version, Integer, api_name: :metricContractVersion
9
+ required :program_type,
10
+ enum: -> { GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::ProgramType },
11
+ api_name: :programType
12
+ required :timezone, String
13
+ required :cohort_interval,
14
+ enum: -> { GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::CohortInterval },
15
+ api_name: :cohortInterval
16
+ required :observation_window_days, Integer, api_name: :observationWindowDays
17
+ required :portal_viewed_label,
18
+ enum: -> { GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::PortalViewedLabel },
19
+ api_name: :portalViewedLabel
20
+ required :portal_viewed_helper_text, String, api_name: :portalViewedHelperText
21
+ required :aggregate, -> { GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::CohortResult }
22
+ required :cohorts,
23
+ -> {
24
+ GrowsurfRuby::Internal::Type::ArrayOf[
25
+ GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::CohortResult
26
+ ]
27
+ }
28
+
29
+ module ProgramType
30
+ extend GrowsurfRuby::Internal::Type::Enum
31
+
32
+ REFERRAL = :REFERRAL
33
+ AFFILIATE = :AFFILIATE
34
+ end
35
+
36
+ module CohortInterval
37
+ extend GrowsurfRuby::Internal::Type::Enum
38
+
39
+ DAY = :day
40
+ WEEK = :week
41
+ MONTH = :month
42
+ end
43
+
44
+ module PortalViewedLabel
45
+ extend GrowsurfRuby::Internal::Type::Enum
46
+
47
+ REFERRAL = :"Referral portal viewed"
48
+ AFFILIATE = :"Affiliate portal viewed"
49
+ end
50
+
51
+ module StageKey
52
+ extend GrowsurfRuby::Internal::Type::Enum
53
+
54
+ ELIGIBLE = :ELIGIBLE
55
+ PORTAL_VIEWED = :PORTAL_VIEWED
56
+ SHARE_ACTION = :SHARE_ACTION
57
+ UNIQUE_REFERRAL_VISIT = :UNIQUE_REFERRAL_VISIT
58
+ LEAD = :LEAD
59
+ CREDITED_REFERRAL = :CREDITED_REFERRAL
60
+ end
61
+
62
+ module StalledSegmentKey
63
+ extend GrowsurfRuby::Internal::Type::Enum
64
+
65
+ ELIGIBLE_NO_PORTAL_VIEW = :ELIGIBLE_NO_PORTAL_VIEW
66
+ PORTAL_VIEWED_NO_SHARE_ACTION = :PORTAL_VIEWED_NO_SHARE_ACTION
67
+ SHARED_NO_UNIQUE_REFERRAL_VISIT = :SHARED_NO_UNIQUE_REFERRAL_VISIT
68
+ UNIQUE_VISIT_NO_LEAD = :UNIQUE_VISIT_NO_LEAD
69
+ LEAD_NO_CREDITED_REFERRAL = :LEAD_NO_CREDITED_REFERRAL
70
+ end
71
+
72
+ module StalledSegmentFromStage
73
+ extend GrowsurfRuby::Internal::Type::Enum
74
+
75
+ ELIGIBLE = :ELIGIBLE
76
+ PORTAL_VIEWED = :PORTAL_VIEWED
77
+ SHARE_ACTION = :SHARE_ACTION
78
+ UNIQUE_REFERRAL_VISIT = :UNIQUE_REFERRAL_VISIT
79
+ LEAD = :LEAD
80
+ end
81
+
82
+ module StalledSegmentToStage
83
+ extend GrowsurfRuby::Internal::Type::Enum
84
+
85
+ PORTAL_VIEWED = :PORTAL_VIEWED
86
+ SHARE_ACTION = :SHARE_ACTION
87
+ UNIQUE_REFERRAL_VISIT = :UNIQUE_REFERRAL_VISIT
88
+ LEAD = :LEAD
89
+ CREDITED_REFERRAL = :CREDITED_REFERRAL
90
+ end
91
+
92
+ class Stage < GrowsurfRuby::Internal::Type::BaseModel
93
+ required :key, enum: -> { StageKey }
94
+ required :count, Integer
95
+ required :conversion_rate_from_prior, Float, api_name: :conversionRateFromPrior, nil?: true
96
+ required :conversion_rate_from_eligible, Float, api_name: :conversionRateFromEligible, nil?: true
97
+ required :drop_off_count, Integer, api_name: :dropOffCount, nil?: true
98
+ required :drop_off_rate, Float, api_name: :dropOffRate, nil?: true
99
+ required :median_time_to_stage_ms, Float, api_name: :medianTimeToStageMs, nil?: true
100
+ required :stalled_segment_key,
101
+ enum: -> { StalledSegmentKey },
102
+ api_name: :stalledSegmentKey,
103
+ nil?: true
104
+ end
105
+
106
+ class StageCounts < GrowsurfRuby::Internal::Type::BaseModel
107
+ required :eligible, Integer, api_name: :ELIGIBLE
108
+ required :portal_viewed, Integer, api_name: :PORTAL_VIEWED
109
+ required :share_action, Integer, api_name: :SHARE_ACTION
110
+ required :unique_referral_visit, Integer, api_name: :UNIQUE_REFERRAL_VISIT
111
+ required :lead, Integer, api_name: :LEAD
112
+ required :credited_referral, Integer, api_name: :CREDITED_REFERRAL
113
+ end
114
+
115
+ class StalledSegment < GrowsurfRuby::Internal::Type::BaseModel
116
+ required :key, enum: -> { StalledSegmentKey }
117
+ required :from_stage, enum: -> { StalledSegmentFromStage }, api_name: :fromStage
118
+ required :to_stage, enum: -> { StalledSegmentToStage }, api_name: :toStage
119
+ required :count, Integer
120
+ end
121
+
122
+ class OutcomeCount < GrowsurfRuby::Internal::Type::BaseModel
123
+ required :count, Integer
124
+ end
125
+
126
+ class Outcomes < GrowsurfRuby::Internal::Type::BaseModel
127
+ optional :first_reward, -> { OutcomeCount }, api_name: :FIRST_REWARD
128
+ optional :first_commission, -> { OutcomeCount }, api_name: :FIRST_COMMISSION
129
+ optional :payout_setup_completed, -> { OutcomeCount }, api_name: :PAYOUT_SETUP_COMPLETED
130
+ end
131
+
132
+ module ImprovementAreaKey
133
+ extend GrowsurfRuby::Internal::Type::Enum
134
+
135
+ PORTAL_ACCESS = :PORTAL_ACCESS
136
+ SHARING_EXPERIENCE = :SHARING_EXPERIENCE
137
+ SHARE_EFFECTIVENESS = :SHARE_EFFECTIVENESS
138
+ VISITOR_SIGNUP = :VISITOR_SIGNUP
139
+ ATTRIBUTION_AND_QUALIFICATION = :ATTRIBUTION_AND_QUALIFICATION
140
+ end
141
+
142
+ class LargestDrop < GrowsurfRuby::Internal::Type::BaseModel
143
+ required :from_stage, String, api_name: :fromStage
144
+ required :to_stage, String, api_name: :toStage
145
+ required :count, Integer
146
+ required :rate, Float
147
+ required :stalled_segment_key, String, api_name: :stalledSegmentKey
148
+ required :improvement_area_key, enum: -> { ImprovementAreaKey }, api_name: :improvementAreaKey
149
+ required :improvement_area, String, api_name: :improvementArea
150
+ end
151
+
152
+ module AnchorField
153
+ extend GrowsurfRuby::Internal::Type::Enum
154
+
155
+ ENROLLED_AS_ADVOCATE_AT = :enrolledAsAdvocateAt
156
+ APPROVED_AS_AFFILIATE_AT = :approvedAsAffiliateAt
157
+ end
158
+
159
+ class CohortBounds < GrowsurfRuby::Internal::Type::BaseModel
160
+ required :from, Integer
161
+ required :to, Integer
162
+ required :effective_from, Integer, api_name: :effectiveFrom, nil?: true
163
+ required :matured_at, Integer, api_name: :maturedAt
164
+ required :as_of, Integer, api_name: :asOf
165
+ required :anchor_field, enum: -> { AnchorField }, api_name: :anchorField
166
+ end
167
+
168
+ class CohortResult < GrowsurfRuby::Internal::Type::BaseModel
169
+ required :state, enum: -> { GrowsurfRuby::Models::AnalyticsAvailability }
170
+ required :reason, enum: -> { GrowsurfRuby::Models::AnalyticsUnavailableReason }, nil?: true
171
+ required :cohort, -> { CohortBounds }
172
+ required :strict_stages,
173
+ -> { GrowsurfRuby::Internal::Type::ArrayOf[Stage] },
174
+ api_name: :strictStages,
175
+ nil?: true
176
+ required :raw_stage_counts, -> { StageCounts }, api_name: :rawStageCounts, nil?: true
177
+ required :stalled_segments,
178
+ -> { GrowsurfRuby::Internal::Type::ArrayOf[StalledSegment] },
179
+ api_name: :stalledSegments,
180
+ nil?: true
181
+ required :outcomes, -> { Outcomes }, nil?: true
182
+ required :largest_drop, -> { LargestDrop }, api_name: :largestDrop, nil?: true
183
+ end
184
+ end
185
+ end
186
+ end