growsurf-ruby 1.3.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -0
- data/README.md +10 -7
- data/lib/growsurf_ruby/internal/transport/base_client.rb +6 -1
- data/lib/growsurf_ruby/internal/type/base_model.rb +26 -0
- data/lib/growsurf_ruby/internal/type/base_page.rb +6 -0
- data/lib/growsurf_ruby/models/account_create_response.rb +3 -3
- data/lib/growsurf_ruby/models/analytics_availability.rb +16 -0
- data/lib/growsurf_ruby/models/analytics_unavailable_reason.rb +20 -0
- data/lib/growsurf_ruby/models/campaign/delete_program_resource_response.rb +12 -0
- data/lib/growsurf_ruby/models/campaign/integration.rb +69 -0
- data/lib/growsurf_ruby/models/campaign/integration_list_response.rb +24 -0
- data/lib/growsurf_ruby/models/campaign/participant_activation_analytics.rb +75 -0
- data/lib/growsurf_ruby/models/campaign/participant_analytics_response.rb +11 -0
- data/lib/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rb +17 -17
- data/lib/growsurf_ruby/models/campaign/participant_record_transaction_params.rb +9 -1
- data/lib/growsurf_ruby/models/campaign/participant_refund_transaction_params.rb +17 -1
- data/lib/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rb +8 -8
- data/lib/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rb +15 -11
- data/lib/growsurf_ruby/models/campaign/participant_reward.rb +16 -3
- data/lib/growsurf_ruby/models/campaign/program_resource.rb +51 -0
- data/lib/growsurf_ruby/models/campaign/program_resource_create_params.rb +32 -0
- data/lib/growsurf_ruby/models/campaign/program_resource_delete_params.rb +14 -0
- data/lib/growsurf_ruby/models/campaign/program_resource_list_response.rb +12 -0
- data/lib/growsurf_ruby/models/campaign/program_resource_update_params.rb +35 -0
- data/lib/growsurf_ruby/models/campaign/program_resource_upload_result.rb +33 -0
- data/lib/growsurf_ruby/models/campaign/program_resource_upload_ticket.rb +26 -0
- data/lib/growsurf_ruby/models/campaign/program_resource_upload_ticket_params.rb +17 -0
- data/lib/growsurf_ruby/models/campaign/reward.rb +22 -1
- data/lib/growsurf_ruby/models/campaign/reward_create_params.rb +32 -9
- data/lib/growsurf_ruby/models/campaign/reward_update_params.rb +32 -9
- data/lib/growsurf_ruby/models/campaign.rb +25 -2
- data/lib/growsurf_ruby/models/campaign_activation_analytics_response.rb +186 -0
- data/lib/growsurf_ruby/models/campaign_create_params.rb +37 -1
- data/lib/growsurf_ruby/models/campaign_engagement_analytics.rb +174 -0
- data/lib/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rb +35 -0
- data/lib/growsurf_ruby/models/campaign_retrieve_analytics_params.rb +37 -4
- data/lib/growsurf_ruby/models/campaign_retrieve_analytics_response.rb +3 -0
- data/lib/growsurf_ruby/models/commission_structure.rb +19 -3
- data/lib/growsurf_ruby/models/participant_commission_list.rb +24 -6
- data/lib/growsurf_ruby/models/participant_payout_list.rb +5 -5
- data/lib/growsurf_ruby/models.rb +7 -0
- data/lib/growsurf_ruby/resources/account.rb +17 -11
- data/lib/growsurf_ruby/resources/campaign/design.rb +11 -5
- data/lib/growsurf_ruby/resources/campaign/emails.rb +2 -1
- data/lib/growsurf_ruby/resources/campaign/integrations.rb +41 -0
- data/lib/growsurf_ruby/resources/campaign/participant.rb +28 -25
- data/lib/growsurf_ruby/resources/campaign/program_resources.rb +112 -0
- data/lib/growsurf_ruby/resources/campaign/rewards.rb +12 -6
- data/lib/growsurf_ruby/resources/campaign.rb +53 -7
- data/lib/growsurf_ruby/resources/team.rb +7 -5
- data/lib/growsurf_ruby/version.rb +1 -1
- data/lib/growsurf_ruby.rb +19 -0
- data/rbi/growsurf_ruby/internal/type/base_model.rbi +10 -0
- data/rbi/growsurf_ruby/internal/type/base_page.rbi +3 -0
- data/rbi/growsurf_ruby/models/analytics_availability.rbi +19 -0
- data/rbi/growsurf_ruby/models/analytics_unavailable_reason.rbi +23 -0
- data/rbi/growsurf_ruby/models/campaign/delete_program_resource_response.rbi +33 -0
- data/rbi/growsurf_ruby/models/campaign/integration.rbi +93 -0
- data/rbi/growsurf_ruby/models/campaign/integration_list_response.rbi +46 -0
- data/rbi/growsurf_ruby/models/campaign/participant_activation_analytics.rbi +133 -0
- data/rbi/growsurf_ruby/models/campaign/participant_analytics_response.rbi +35 -0
- data/rbi/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rbi +17 -23
- data/rbi/growsurf_ruby/models/campaign/participant_record_transaction_params.rbi +18 -0
- data/rbi/growsurf_ruby/models/campaign/participant_refund_transaction_params.rbi +18 -0
- data/rbi/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rbi +7 -9
- data/rbi/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rbi +16 -10
- data/rbi/growsurf_ruby/models/campaign/participant_reward.rbi +29 -6
- data/rbi/growsurf_ruby/models/campaign/program_resource.rbi +186 -0
- data/rbi/growsurf_ruby/models/campaign/program_resource_create_params.rbi +95 -0
- data/rbi/growsurf_ruby/models/campaign/program_resource_delete_params.rbi +37 -0
- data/rbi/growsurf_ruby/models/campaign/program_resource_list_response.rbi +29 -0
- data/rbi/growsurf_ruby/models/campaign/program_resource_update_params.rbi +105 -0
- data/rbi/growsurf_ruby/models/campaign/program_resource_upload_result.rbi +94 -0
- data/rbi/growsurf_ruby/models/campaign/program_resource_upload_ticket.rbi +57 -0
- data/rbi/growsurf_ruby/models/campaign/program_resource_upload_ticket_params.rbi +53 -0
- data/rbi/growsurf_ruby/models/campaign/reward.rbi +55 -0
- data/rbi/growsurf_ruby/models/campaign/reward_create_params.rbi +97 -24
- data/rbi/growsurf_ruby/models/campaign/reward_update_params.rbi +97 -24
- data/rbi/growsurf_ruby/models/campaign.rbi +52 -3
- data/rbi/growsurf_ruby/models/campaign_activation_analytics_response.rbi +325 -0
- data/rbi/growsurf_ruby/models/campaign_create_params.rbi +91 -0
- data/rbi/growsurf_ruby/models/campaign_engagement_analytics.rbi +369 -0
- data/rbi/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rbi +59 -0
- data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_params.rbi +56 -3
- data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_response.rbi +27 -7
- data/rbi/growsurf_ruby/models/commission_structure.rbi +36 -3
- data/rbi/growsurf_ruby/models/participant_commission_list.rbi +63 -15
- data/rbi/growsurf_ruby/models/participant_payout_list.rbi +15 -15
- data/rbi/growsurf_ruby/models.rbi +7 -0
- data/rbi/growsurf_ruby/resources/account.rbi +9 -6
- data/rbi/growsurf_ruby/resources/campaign/design.rbi +32 -4
- data/rbi/growsurf_ruby/resources/campaign/emails.rbi +2 -1
- data/rbi/growsurf_ruby/resources/campaign/integrations.rbi +35 -0
- data/rbi/growsurf_ruby/resources/campaign/participant.rbi +38 -24
- data/rbi/growsurf_ruby/resources/campaign/program_resources.rbi +116 -0
- data/rbi/growsurf_ruby/resources/campaign/rewards.rbi +35 -16
- data/rbi/growsurf_ruby/resources/campaign.rbi +53 -5
- data/rbi/growsurf_ruby/resources/team.rbi +7 -5
- data/sig/growsurf_ruby/internal/type/base_model.rbs +6 -0
- data/sig/growsurf_ruby/internal/type/base_page.rbs +2 -0
- data/sig/growsurf_ruby/models/analytics_availability.rbs +15 -0
- data/sig/growsurf_ruby/models/analytics_unavailable_reason.rbs +26 -0
- data/sig/growsurf_ruby/models/campaign/delete_program_resource_response.rbs +14 -0
- data/sig/growsurf_ruby/models/campaign/integration.rbs +47 -0
- data/sig/growsurf_ruby/models/campaign/integration_list_response.rbs +20 -0
- data/sig/growsurf_ruby/models/campaign/participant_activation_analytics.rbs +96 -0
- data/sig/growsurf_ruby/models/campaign/participant_analytics_response.rbs +22 -1
- data/sig/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rbs +17 -22
- data/sig/growsurf_ruby/models/campaign/participant_record_transaction_params.rbs +15 -1
- data/sig/growsurf_ruby/models/campaign/participant_refund_transaction_params.rbs +15 -1
- data/sig/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rbs +8 -10
- data/sig/growsurf_ruby/models/campaign/participant_reward.rbs +24 -9
- data/sig/growsurf_ruby/models/campaign/program_resource.rbs +94 -0
- data/sig/growsurf_ruby/models/campaign/program_resource_create_params.rbs +45 -0
- data/sig/growsurf_ruby/models/campaign/program_resource_delete_params.rbs +22 -0
- data/sig/growsurf_ruby/models/campaign/program_resource_list_response.rbs +14 -0
- data/sig/growsurf_ruby/models/campaign/program_resource_update_params.rbs +48 -0
- data/sig/growsurf_ruby/models/campaign/program_resource_upload_result.rbs +58 -0
- data/sig/growsurf_ruby/models/campaign/program_resource_upload_ticket.rbs +29 -0
- data/sig/growsurf_ruby/models/campaign/program_resource_upload_ticket_params.rbs +29 -0
- data/sig/growsurf_ruby/models/campaign/reward.rbs +16 -0
- data/sig/growsurf_ruby/models/campaign/reward_create_params.rbs +54 -34
- data/sig/growsurf_ruby/models/campaign/reward_update_params.rbs +54 -34
- data/sig/growsurf_ruby/models/campaign.rbs +23 -5
- data/sig/growsurf_ruby/models/campaign_activation_analytics_response.rbs +202 -0
- data/sig/growsurf_ruby/models/campaign_create_params.rbs +29 -0
- data/sig/growsurf_ruby/models/campaign_engagement_analytics.rbs +186 -0
- data/sig/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rbs +45 -0
- data/sig/growsurf_ruby/models/campaign_retrieve_analytics_params.rbs +30 -1
- data/sig/growsurf_ruby/models/campaign_retrieve_analytics_response.rbs +21 -3
- data/sig/growsurf_ruby/models/commission_structure.rbs +16 -4
- data/sig/growsurf_ruby/models/participant_commission_list.rbs +36 -20
- data/sig/growsurf_ruby/models/participant_payout_list.rbs +20 -20
- data/sig/growsurf_ruby/models.rbs +6 -0
- data/sig/growsurf_ruby/resources/campaign/design.rbs +19 -0
- data/sig/growsurf_ruby/resources/campaign/integrations.rbs +14 -0
- data/sig/growsurf_ruby/resources/campaign/participant.rbs +4 -0
- data/sig/growsurf_ruby/resources/campaign/program_resources.rbs +58 -0
- data/sig/growsurf_ruby/resources/campaign/rewards.rbs +14 -12
- data/sig/growsurf_ruby/resources/campaign.rbs +17 -0
- metadata +59 -2
|
@@ -18,6 +18,10 @@ module GrowsurfRuby
|
|
|
18
18
|
# @return [GrowsurfRuby::Resources::Campaign::Rewards]
|
|
19
19
|
attr_reader :rewards
|
|
20
20
|
|
|
21
|
+
# Program Resource management and secure FILE upload operations.
|
|
22
|
+
# @return [GrowsurfRuby::Resources::Campaign::ProgramResources]
|
|
23
|
+
attr_reader :resources
|
|
24
|
+
|
|
21
25
|
# Program Editor "Design" tab configuration operations.
|
|
22
26
|
# @return [GrowsurfRuby::Resources::Campaign::Design]
|
|
23
27
|
attr_reader :design
|
|
@@ -34,6 +38,10 @@ module GrowsurfRuby
|
|
|
34
38
|
# @return [GrowsurfRuby::Resources::Campaign::Installation]
|
|
35
39
|
attr_reader :installation
|
|
36
40
|
|
|
41
|
+
# Integration status operations.
|
|
42
|
+
# @return [GrowsurfRuby::Resources::Campaign::Integrations]
|
|
43
|
+
attr_reader :integrations
|
|
44
|
+
|
|
37
45
|
# Program webhook configuration operations.
|
|
38
46
|
# @return [GrowsurfRuby::Resources::Campaign::Webhooks]
|
|
39
47
|
attr_reader :webhooks
|
|
@@ -79,7 +87,7 @@ module GrowsurfRuby
|
|
|
79
87
|
# Creates a new program, plus any optional campaign rewards. The new program is
|
|
80
88
|
# created in `DRAFT` status and owned by the API key's bound team.
|
|
81
89
|
#
|
|
82
|
-
# @overload create(type:, company_logo_image_url: nil, company_name: nil, currency_iso: nil, name: nil, rewards: nil, request_options: {})
|
|
90
|
+
# @overload create(type:, company_logo_image_url: nil, company_name: nil, currency_iso: nil, goal: nil, name: nil, rewards: nil, request_options: {})
|
|
83
91
|
#
|
|
84
92
|
# @param type [Symbol, GrowsurfRuby::Models::CampaignCreateParams::Type] The program type. Immutable after creation.
|
|
85
93
|
#
|
|
@@ -89,6 +97,8 @@ module GrowsurfRuby
|
|
|
89
97
|
#
|
|
90
98
|
# @param currency_iso [String] ISO 4217 currency code. Defaults to USD. Chosen when the program is created and immutable afterward — it cannot be changed on update.
|
|
91
99
|
#
|
|
100
|
+
# @param goal [Symbol, GrowsurfRuby::Models::CampaignCreateParams::Goal] What the program is for, which seeds share settings that suit that audience. Programs selling to businesses start with the LinkedIn share button visible; consumer, financial, education, insurance, newsletter, and waitlist programs start with it hidden. Set only when the program is created.
|
|
101
|
+
#
|
|
92
102
|
# @param name [String] The program name. Defaults to a generated friendly label plus the creation date.
|
|
93
103
|
#
|
|
94
104
|
# @param rewards [Array<GrowsurfRuby::Models::Campaign::RewardCreateParams>] Optional inline rewards to create with the program.
|
|
@@ -531,13 +541,11 @@ module GrowsurfRuby
|
|
|
531
541
|
#
|
|
532
542
|
# Retrieves analytics for a program. Pass `interval` to also get a time-series
|
|
533
543
|
# (`series`) alongside the totals, and `include` to add previous-period totals,
|
|
534
|
-
# status breakdowns, derived rates,
|
|
535
|
-
#
|
|
536
|
-
#
|
|
537
|
-
# ratios from `0` to `1`, and `isPartial` identifies windows that begin before
|
|
538
|
-
# complete coverage.
|
|
544
|
+
# status breakdowns, derived rates, email performance, or participant engagement.
|
|
545
|
+
# Add `engagement` for covered activity totals, comparisons, series, and breakdowns.
|
|
546
|
+
# Unknown coverage returns explicit unavailable states rather than zeroes.
|
|
539
547
|
#
|
|
540
|
-
# @overload retrieve_analytics(id, days: nil, end_date: nil, include: nil, interval: nil, start_date: nil, request_options: {})
|
|
548
|
+
# @overload retrieve_analytics(id, days: nil, end_date: nil, include: nil, interval: nil, platform: nil, start_date: nil, timezone: nil, request_options: {})
|
|
541
549
|
#
|
|
542
550
|
# @param id [String] GrowSurf program ID.
|
|
543
551
|
#
|
|
@@ -549,8 +557,12 @@ module GrowsurfRuby
|
|
|
549
557
|
#
|
|
550
558
|
# @param interval [Symbol, GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::Interval] When set to `day`, `week`, or `month`, the response also includes a `series` array
|
|
551
559
|
#
|
|
560
|
+
# @param platform [Symbol, GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::Platform] Limits engagement events to one client platform.
|
|
561
|
+
#
|
|
552
562
|
# @param start_date [Integer] Start date of the analytics timeframe as a Unix timestamp in milliseconds. Requi
|
|
553
563
|
#
|
|
564
|
+
# @param timezone [String] IANA timezone used for engagement interval boundaries and distinct-day calculations.
|
|
565
|
+
#
|
|
554
566
|
# @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
555
567
|
#
|
|
556
568
|
# @return [GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse]
|
|
@@ -568,6 +580,38 @@ module GrowsurfRuby
|
|
|
568
580
|
)
|
|
569
581
|
end
|
|
570
582
|
|
|
583
|
+
# Retrieves activation cohorts for a program. Each cohort follows eligible
|
|
584
|
+
# participants through portal views, sharing, referral visits, leads, and credited
|
|
585
|
+
# referrals. Coverage states distinguish unknown values from zeroes.
|
|
586
|
+
#
|
|
587
|
+
# @overload retrieve_activation_analytics(id, cohort_from: nil, cohort_to: nil, cohort_interval: nil, observation_window_days: nil, timezone: nil, request_options: {})
|
|
588
|
+
#
|
|
589
|
+
# @param id [String] GrowSurf program ID.
|
|
590
|
+
# @param cohort_from [Integer] Inclusive cohort enrollment start, as a Unix timestamp in milliseconds.
|
|
591
|
+
# @param cohort_to [Integer] Exclusive cohort enrollment end, as a Unix timestamp in milliseconds.
|
|
592
|
+
# @param cohort_interval [Symbol, GrowsurfRuby::Models::CampaignRetrieveActivationAnalyticsParams::CohortInterval] Cohort bucket size. Defaults to `day`.
|
|
593
|
+
# @param observation_window_days [Integer] Days after enrollment allowed for each participant to reach a stage. Use `7` or `30`.
|
|
594
|
+
# @param timezone [String] IANA timezone used for cohort bounds. Defaults to `UTC`.
|
|
595
|
+
# @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
596
|
+
# @return [GrowsurfRuby::Models::CampaignActivationAnalyticsResponse]
|
|
597
|
+
# @see GrowsurfRuby::Models::CampaignRetrieveActivationAnalyticsParams
|
|
598
|
+
def retrieve_activation_analytics(id, params = {})
|
|
599
|
+
parsed, options = GrowsurfRuby::CampaignRetrieveActivationAnalyticsParams.dump_request(params)
|
|
600
|
+
query = GrowsurfRuby::Internal::Util.encode_query_params(parsed)
|
|
601
|
+
@client.request(
|
|
602
|
+
method: :get,
|
|
603
|
+
path: ["campaign/%1$s/analytics/activation", id],
|
|
604
|
+
query: query.transform_keys(
|
|
605
|
+
cohort_from: "cohortFrom",
|
|
606
|
+
cohort_to: "cohortTo",
|
|
607
|
+
cohort_interval: "cohortInterval",
|
|
608
|
+
observation_window_days: "observationWindowDays"
|
|
609
|
+
),
|
|
610
|
+
model: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse,
|
|
611
|
+
options: options
|
|
612
|
+
)
|
|
613
|
+
end
|
|
614
|
+
|
|
571
615
|
# Some parameter documentations has been truncated, see
|
|
572
616
|
# {GrowsurfRuby::Models::CampaignReviewAffiliateApplicationParams} for more
|
|
573
617
|
# details.
|
|
@@ -653,10 +697,12 @@ module GrowsurfRuby
|
|
|
653
697
|
@reward = GrowsurfRuby::Resources::Campaign::Reward.new(client: client)
|
|
654
698
|
@commission = GrowsurfRuby::Resources::Campaign::Commission.new(client: client)
|
|
655
699
|
@rewards = GrowsurfRuby::Resources::Campaign::Rewards.new(client: client)
|
|
700
|
+
@resources = GrowsurfRuby::Resources::Campaign::ProgramResources.new(client: client)
|
|
656
701
|
@design = GrowsurfRuby::Resources::Campaign::Design.new(client: client)
|
|
657
702
|
@emails = GrowsurfRuby::Resources::Campaign::Emails.new(client: client)
|
|
658
703
|
@options = GrowsurfRuby::Resources::Campaign::Options.new(client: client)
|
|
659
704
|
@installation = GrowsurfRuby::Resources::Campaign::Installation.new(client: client)
|
|
705
|
+
@integrations = GrowsurfRuby::Resources::Campaign::Integrations.new(client: client)
|
|
660
706
|
@webhooks = GrowsurfRuby::Resources::Campaign::Webhooks.new(client: client)
|
|
661
707
|
end
|
|
662
708
|
end
|
|
@@ -87,11 +87,13 @@ module GrowsurfRuby
|
|
|
87
87
|
)
|
|
88
88
|
end
|
|
89
89
|
|
|
90
|
-
# Resends the email-verification message to the
|
|
91
|
-
#
|
|
92
|
-
#
|
|
93
|
-
#
|
|
94
|
-
#
|
|
90
|
+
# Resends the email-verification message to the owner of the account the API key
|
|
91
|
+
# belongs to. This is the recovery path for a `403` with error code
|
|
92
|
+
# `EMAIL_NOT_VERIFIED_ERROR`, so it stays callable with any GrowSurf API key while the
|
|
93
|
+
# rest of the API is locked. The response never reveals the owner's email address. A
|
|
94
|
+
# `200` with `status: SENT` is returned only when an email was actually dispatched.
|
|
95
|
+
# Returns `400` if the email is already verified, and `429` if a verification email was
|
|
96
|
+
# sent too recently — wait a moment, then retry.
|
|
95
97
|
#
|
|
96
98
|
# @overload resend_owner_verification_email(request_options: {})
|
|
97
99
|
#
|
data/lib/growsurf_ruby.rb
CHANGED
|
@@ -52,6 +52,10 @@ require_relative "growsurf_ruby/errors"
|
|
|
52
52
|
require_relative "growsurf_ruby/internal/transport/base_client"
|
|
53
53
|
require_relative "growsurf_ruby/internal/transport/pooled_net_requester"
|
|
54
54
|
require_relative "growsurf_ruby/client"
|
|
55
|
+
require_relative "growsurf_ruby/models/analytics_availability"
|
|
56
|
+
require_relative "growsurf_ruby/models/analytics_unavailable_reason"
|
|
57
|
+
require_relative "growsurf_ruby/models/campaign_activation_analytics_response"
|
|
58
|
+
require_relative "growsurf_ruby/models/campaign_engagement_analytics"
|
|
55
59
|
require_relative "growsurf_ruby/models/campaign/create"
|
|
56
60
|
require_relative "growsurf_ruby/models/campaign/participant"
|
|
57
61
|
require_relative "growsurf_ruby/models/campaign/campaign_reward_list_response"
|
|
@@ -63,6 +67,7 @@ require_relative "growsurf_ruby/models/campaign/delete_reward_response"
|
|
|
63
67
|
require_relative "growsurf_ruby/models/campaign/fraud_risk_level"
|
|
64
68
|
require_relative "growsurf_ruby/models/campaign/participant_activity_logs_response"
|
|
65
69
|
require_relative "growsurf_ruby/models/campaign/participant_add_params"
|
|
70
|
+
require_relative "growsurf_ruby/models/campaign/participant_activation_analytics"
|
|
66
71
|
require_relative "growsurf_ruby/models/email_analytics"
|
|
67
72
|
require_relative "growsurf_ruby/models/campaign/participant_analytics_response"
|
|
68
73
|
require_relative "growsurf_ruby/models/campaign/participant_bulk_delete_params"
|
|
@@ -95,6 +100,15 @@ require_relative "growsurf_ruby/models/campaign/participant_send_invites_respons
|
|
|
95
100
|
require_relative "growsurf_ruby/models/campaign/participant_trigger_referral_params"
|
|
96
101
|
require_relative "growsurf_ruby/models/campaign/participant_trigger_referral_response"
|
|
97
102
|
require_relative "growsurf_ruby/models/campaign/participant_update_params"
|
|
103
|
+
require_relative "growsurf_ruby/models/campaign/program_resource"
|
|
104
|
+
require_relative "growsurf_ruby/models/campaign/program_resource_upload_result"
|
|
105
|
+
require_relative "growsurf_ruby/models/campaign/program_resource_create_params"
|
|
106
|
+
require_relative "growsurf_ruby/models/campaign/program_resource_delete_params"
|
|
107
|
+
require_relative "growsurf_ruby/models/campaign/program_resource_list_response"
|
|
108
|
+
require_relative "growsurf_ruby/models/campaign/program_resource_update_params"
|
|
109
|
+
require_relative "growsurf_ruby/models/campaign/program_resource_upload_ticket"
|
|
110
|
+
require_relative "growsurf_ruby/models/campaign/program_resource_upload_ticket_params"
|
|
111
|
+
require_relative "growsurf_ruby/models/campaign/delete_program_resource_response"
|
|
98
112
|
require_relative "growsurf_ruby/models/campaign/referral_source"
|
|
99
113
|
require_relative "growsurf_ruby/models/campaign/referral_status"
|
|
100
114
|
require_relative "growsurf_ruby/models/campaign/reward"
|
|
@@ -106,6 +120,8 @@ require_relative "growsurf_ruby/models/campaign/reward_delete_response"
|
|
|
106
120
|
require_relative "growsurf_ruby/models/campaign/reward_fulfill_params"
|
|
107
121
|
require_relative "growsurf_ruby/models/campaign/reward_fulfill_response"
|
|
108
122
|
require_relative "growsurf_ruby/models/campaign/reward_update_params"
|
|
123
|
+
require_relative "growsurf_ruby/models/campaign/integration"
|
|
124
|
+
require_relative "growsurf_ruby/models/campaign/integration_list_response"
|
|
109
125
|
require_relative "growsurf_ruby/models/campaign/webhook"
|
|
110
126
|
require_relative "growsurf_ruby/models/campaign/webhook_create_params"
|
|
111
127
|
require_relative "growsurf_ruby/models/campaign/webhook_delete_params"
|
|
@@ -141,6 +157,7 @@ require_relative "growsurf_ruby/models/campaign_list_referrals_params"
|
|
|
141
157
|
require_relative "growsurf_ruby/models/campaign_list_response"
|
|
142
158
|
require_relative "growsurf_ruby/models/campaign_resend_affiliate_invite_params"
|
|
143
159
|
require_relative "growsurf_ruby/models/campaign_retrieve_affiliate_application_params"
|
|
160
|
+
require_relative "growsurf_ruby/models/campaign_retrieve_activation_analytics_params"
|
|
144
161
|
require_relative "growsurf_ruby/models/campaign_retrieve_analytics_params"
|
|
145
162
|
require_relative "growsurf_ruby/models/campaign_retrieve_analytics_response"
|
|
146
163
|
require_relative "growsurf_ruby/models/campaign_retrieve_params"
|
|
@@ -165,4 +182,6 @@ require_relative "growsurf_ruby/resources/campaign/options"
|
|
|
165
182
|
require_relative "growsurf_ruby/resources/campaign/participant"
|
|
166
183
|
require_relative "growsurf_ruby/resources/campaign/reward"
|
|
167
184
|
require_relative "growsurf_ruby/resources/campaign/rewards"
|
|
185
|
+
require_relative "growsurf_ruby/resources/campaign/program_resources"
|
|
186
|
+
require_relative "growsurf_ruby/resources/campaign/integrations"
|
|
168
187
|
require_relative "growsurf_ruby/resources/campaign/webhooks"
|
|
@@ -264,6 +264,16 @@ module GrowsurfRuby
|
|
|
264
264
|
def deep_to_h
|
|
265
265
|
end
|
|
266
266
|
|
|
267
|
+
sig { returns(T::Hash[String, String]) }
|
|
268
|
+
attr_reader :response_headers
|
|
269
|
+
|
|
270
|
+
# @api private
|
|
271
|
+
sig do
|
|
272
|
+
params(headers: T::Hash[String, String]).returns(T.self_type)
|
|
273
|
+
end
|
|
274
|
+
def attach_response_headers(headers)
|
|
275
|
+
end
|
|
276
|
+
|
|
267
277
|
sig do
|
|
268
278
|
params(keys: T.nilable(T::Array[Symbol])).returns(
|
|
269
279
|
GrowsurfRuby::Internal::AnyHash
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module GrowsurfRuby
|
|
4
|
+
module Models
|
|
5
|
+
module AnalyticsAvailability
|
|
6
|
+
extend GrowsurfRuby::Internal::Type::Enum
|
|
7
|
+
|
|
8
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
9
|
+
|
|
10
|
+
AVAILABLE = T.let(:AVAILABLE, Symbol)
|
|
11
|
+
PARTIAL = T.let(:PARTIAL, Symbol)
|
|
12
|
+
UNAVAILABLE = T.let(:UNAVAILABLE, Symbol)
|
|
13
|
+
|
|
14
|
+
sig { override.returns(T::Array[Symbol]) }
|
|
15
|
+
def self.values
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module GrowsurfRuby
|
|
4
|
+
module Models
|
|
5
|
+
module AnalyticsUnavailableReason
|
|
6
|
+
extend GrowsurfRuby::Internal::Type::Enum
|
|
7
|
+
|
|
8
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
9
|
+
|
|
10
|
+
COVERAGE_UNAVAILABLE = T.let(:COVERAGE_UNAVAILABLE, Symbol)
|
|
11
|
+
PRE_COVERAGE = T.let(:PRE_COVERAGE, Symbol)
|
|
12
|
+
PARTIAL_COVERAGE = T.let(:PARTIAL_COVERAGE, Symbol)
|
|
13
|
+
INSUFFICIENT_COVERAGE = T.let(:INSUFFICIENT_COVERAGE, Symbol)
|
|
14
|
+
EMPTY_DENOMINATOR = T.let(:EMPTY_DENOMINATOR, Symbol)
|
|
15
|
+
QUERY_LIMIT_EXCEEDED = T.let(:QUERY_LIMIT_EXCEEDED, Symbol)
|
|
16
|
+
PARTICIPANT_NOT_ELIGIBLE = T.let(:PARTICIPANT_NOT_ELIGIBLE, Symbol)
|
|
17
|
+
|
|
18
|
+
sig { override.returns(T::Array[Symbol]) }
|
|
19
|
+
def self.values
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module GrowsurfRuby
|
|
4
|
+
module Models
|
|
5
|
+
module Campaign
|
|
6
|
+
class DeleteProgramResourceResponse < GrowsurfRuby::Internal::Type::BaseModel
|
|
7
|
+
OrHash =
|
|
8
|
+
T.type_alias do
|
|
9
|
+
T.any(
|
|
10
|
+
DeleteProgramResourceResponse,
|
|
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,93 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module GrowsurfRuby
|
|
4
|
+
module Models
|
|
5
|
+
module Campaign
|
|
6
|
+
class Integration < GrowsurfRuby::Internal::Type::BaseModel
|
|
7
|
+
OrHash =
|
|
8
|
+
T.type_alias do
|
|
9
|
+
T.any(
|
|
10
|
+
GrowsurfRuby::Models::Campaign::Integration,
|
|
11
|
+
GrowsurfRuby::Internal::AnyHash
|
|
12
|
+
)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Stable integration key, the same value the GrowSurf dashboard uses for this
|
|
16
|
+
# integration.
|
|
17
|
+
sig { returns(String) }
|
|
18
|
+
attr_accessor :id
|
|
19
|
+
|
|
20
|
+
# Whether GrowSurf switched the integration off after repeated delivery failures.
|
|
21
|
+
# Its credentials are still stored, but it delivers nothing until it is
|
|
22
|
+
# reconnected in the GrowSurf dashboard.
|
|
23
|
+
sig { returns(T::Boolean) }
|
|
24
|
+
attr_accessor :auto_disabled
|
|
25
|
+
|
|
26
|
+
# Dashboard link that opens this integration's connect panel in the GrowSurf Program
|
|
27
|
+
# Editor. Give it to the person running the program: connecting an account is a step
|
|
28
|
+
# they complete in the dashboard, and the API cannot do it for them.
|
|
29
|
+
sig { returns(String) }
|
|
30
|
+
attr_accessor :connect_url
|
|
31
|
+
|
|
32
|
+
# Whether the program has stored credentials for this integration.
|
|
33
|
+
sig { returns(T::Boolean) }
|
|
34
|
+
attr_accessor :connected
|
|
35
|
+
|
|
36
|
+
# Whether the integration is switched on and currently working.
|
|
37
|
+
sig { returns(T::Boolean) }
|
|
38
|
+
attr_accessor :enabled
|
|
39
|
+
|
|
40
|
+
# Display name, matching what the GrowSurf dashboard calls this integration.
|
|
41
|
+
sig { returns(String) }
|
|
42
|
+
attr_accessor :name
|
|
43
|
+
|
|
44
|
+
# One integration a program can connect, with its current state.
|
|
45
|
+
sig do
|
|
46
|
+
params(
|
|
47
|
+
id: String,
|
|
48
|
+
auto_disabled: T::Boolean,
|
|
49
|
+
connect_url: String,
|
|
50
|
+
connected: T::Boolean,
|
|
51
|
+
enabled: T::Boolean,
|
|
52
|
+
name: String
|
|
53
|
+
).returns(T.attached_class)
|
|
54
|
+
end
|
|
55
|
+
def self.new(
|
|
56
|
+
# Stable integration key, the same value the GrowSurf dashboard uses for this
|
|
57
|
+
# integration.
|
|
58
|
+
id:,
|
|
59
|
+
# Whether GrowSurf switched the integration off after repeated delivery failures.
|
|
60
|
+
# Its credentials are still stored, but it delivers nothing until it is
|
|
61
|
+
# reconnected in the GrowSurf dashboard.
|
|
62
|
+
auto_disabled:,
|
|
63
|
+
# Dashboard link that opens this integration's connect panel in the GrowSurf Program
|
|
64
|
+
# Editor. Give it to the person running the program: connecting an account is a step
|
|
65
|
+
# they complete in the dashboard, and the API cannot do it for them.
|
|
66
|
+
connect_url:,
|
|
67
|
+
# Whether the program has stored credentials for this integration.
|
|
68
|
+
connected:,
|
|
69
|
+
# Whether the integration is switched on and currently working.
|
|
70
|
+
enabled:,
|
|
71
|
+
# Display name, matching what the GrowSurf dashboard calls this integration.
|
|
72
|
+
name:
|
|
73
|
+
)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
sig do
|
|
77
|
+
override.returns(
|
|
78
|
+
{
|
|
79
|
+
id: String,
|
|
80
|
+
auto_disabled: T::Boolean,
|
|
81
|
+
connect_url: String,
|
|
82
|
+
connected: T::Boolean,
|
|
83
|
+
enabled: T::Boolean,
|
|
84
|
+
name: String
|
|
85
|
+
}
|
|
86
|
+
)
|
|
87
|
+
end
|
|
88
|
+
def to_hash
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module GrowsurfRuby
|
|
4
|
+
module Models
|
|
5
|
+
module Campaign
|
|
6
|
+
class IntegrationListResponse < GrowsurfRuby::Internal::Type::BaseModel
|
|
7
|
+
OrHash =
|
|
8
|
+
T.type_alias do
|
|
9
|
+
T.any(
|
|
10
|
+
GrowsurfRuby::Models::Campaign::IntegrationListResponse,
|
|
11
|
+
GrowsurfRuby::Internal::AnyHash
|
|
12
|
+
)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Every integration this program can connect, in the order the GrowSurf dashboard
|
|
16
|
+
# lists them.
|
|
17
|
+
sig { returns(T::Array[GrowsurfRuby::Models::Campaign::Integration]) }
|
|
18
|
+
attr_accessor :integrations
|
|
19
|
+
|
|
20
|
+
sig do
|
|
21
|
+
params(
|
|
22
|
+
integrations:
|
|
23
|
+
T::Array[GrowsurfRuby::Models::Campaign::Integration::OrHash]
|
|
24
|
+
).returns(T.attached_class)
|
|
25
|
+
end
|
|
26
|
+
def self.new(
|
|
27
|
+
# Every integration this program can connect, in the order the GrowSurf dashboard
|
|
28
|
+
# lists them.
|
|
29
|
+
integrations:
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
sig do
|
|
34
|
+
override.returns(
|
|
35
|
+
{
|
|
36
|
+
integrations:
|
|
37
|
+
T::Array[GrowsurfRuby::Models::Campaign::Integration]
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
end
|
|
41
|
+
def to_hash
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module GrowsurfRuby
|
|
4
|
+
module Models
|
|
5
|
+
module Campaign
|
|
6
|
+
class ParticipantActivationAnalytics < GrowsurfRuby::Internal::Type::BaseModel
|
|
7
|
+
OrHash =
|
|
8
|
+
T.type_alias do
|
|
9
|
+
T.any(
|
|
10
|
+
GrowsurfRuby::Models::Campaign::ParticipantActivationAnalytics,
|
|
11
|
+
GrowsurfRuby::Internal::AnyHash
|
|
12
|
+
)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
sig { returns(T.nilable(Integer)) }
|
|
16
|
+
attr_accessor :coverage_start_at, :enrolled_as_advocate_at
|
|
17
|
+
|
|
18
|
+
sig { returns(Integer) }
|
|
19
|
+
attr_accessor :metric_contract_version
|
|
20
|
+
|
|
21
|
+
sig { returns(ProgramType::OrSymbol) }
|
|
22
|
+
attr_accessor :program_type
|
|
23
|
+
|
|
24
|
+
sig { returns(GrowsurfRuby::Models::AnalyticsAvailability::OrSymbol) }
|
|
25
|
+
attr_accessor :state
|
|
26
|
+
|
|
27
|
+
sig do
|
|
28
|
+
returns(
|
|
29
|
+
T.nilable(
|
|
30
|
+
GrowsurfRuby::Models::AnalyticsUnavailableReason::OrSymbol
|
|
31
|
+
)
|
|
32
|
+
)
|
|
33
|
+
end
|
|
34
|
+
attr_accessor :reason
|
|
35
|
+
|
|
36
|
+
sig { returns(Cohort) }
|
|
37
|
+
attr_accessor :cohort
|
|
38
|
+
|
|
39
|
+
sig { returns(Milestones) }
|
|
40
|
+
attr_accessor :milestones
|
|
41
|
+
|
|
42
|
+
sig { params(kwargs: T.untyped).returns(T.attached_class) }
|
|
43
|
+
def self.new(**kwargs)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
module ProgramType
|
|
47
|
+
extend GrowsurfRuby::Internal::Type::Enum
|
|
48
|
+
|
|
49
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
50
|
+
REFERRAL = T.let(:REFERRAL, Symbol)
|
|
51
|
+
AFFILIATE = T.let(:AFFILIATE, Symbol)
|
|
52
|
+
sig { override.returns(T::Array[Symbol]) }
|
|
53
|
+
def self.values
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
module AnchorField
|
|
58
|
+
extend GrowsurfRuby::Internal::Type::Enum
|
|
59
|
+
|
|
60
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
61
|
+
ENROLLED_AS_ADVOCATE_AT = T.let(:enrolledAsAdvocateAt, Symbol)
|
|
62
|
+
APPROVED_AS_AFFILIATE_AT = T.let(:approvedAsAffiliateAt, Symbol)
|
|
63
|
+
sig { override.returns(T::Array[Symbol]) }
|
|
64
|
+
def self.values
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
module ShareChannel
|
|
69
|
+
extend GrowsurfRuby::Internal::Type::Enum
|
|
70
|
+
|
|
71
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
72
|
+
EMAIL = T.let(:email, Symbol)
|
|
73
|
+
FACEBOOK = T.let(:facebook, Symbol)
|
|
74
|
+
TWITTER = T.let(:twitter, Symbol)
|
|
75
|
+
LINKEDIN = T.let(:linkedin, Symbol)
|
|
76
|
+
PINTEREST = T.let(:pinterest, Symbol)
|
|
77
|
+
THREADS = T.let(:threads, Symbol)
|
|
78
|
+
BLUESKY = T.let(:bluesky, Symbol)
|
|
79
|
+
SMS = T.let(:sms, Symbol)
|
|
80
|
+
MESSENGER = T.let(:messenger, Symbol)
|
|
81
|
+
WHATSAPP = T.let(:whatsapp, Symbol)
|
|
82
|
+
WECHAT = T.let(:wechat, Symbol)
|
|
83
|
+
TELEGRAM = T.let(:telegram, Symbol)
|
|
84
|
+
REDDIT = T.let(:reddit, Symbol)
|
|
85
|
+
TUMBLR = T.let(:tumblr, Symbol)
|
|
86
|
+
QRCODE = T.let(:qrcode, Symbol)
|
|
87
|
+
COPY_REF_LINK = T.let(:copyRefLink, Symbol)
|
|
88
|
+
IOS_NATIVE_SHARE = T.let(:iosNativeShare, Symbol)
|
|
89
|
+
ANDROID_NATIVE_SHARE = T.let(:androidNativeShare, Symbol)
|
|
90
|
+
sig { override.returns(T::Array[Symbol]) }
|
|
91
|
+
def self.values
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
class Cohort < GrowsurfRuby::Internal::Type::BaseModel
|
|
96
|
+
OrHash =
|
|
97
|
+
T.type_alias { T.any(Cohort, GrowsurfRuby::Internal::AnyHash) }
|
|
98
|
+
sig { returns(AnchorField::OrSymbol) }
|
|
99
|
+
attr_accessor :anchor_field
|
|
100
|
+
|
|
101
|
+
sig { returns(T.nilable(Integer)) }
|
|
102
|
+
attr_accessor :anchor_at
|
|
103
|
+
|
|
104
|
+
sig { params(kwargs: T.untyped).returns(T.attached_class) }
|
|
105
|
+
def self.new(**kwargs)
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
class Milestones < GrowsurfRuby::Internal::Type::BaseModel
|
|
110
|
+
OrHash =
|
|
111
|
+
T.type_alias { T.any(Milestones, GrowsurfRuby::Internal::AnyHash) }
|
|
112
|
+
sig { returns(T.nilable(Integer)) }
|
|
113
|
+
attr_accessor :first_portal_viewed_at,
|
|
114
|
+
:first_referral_link_copied_at,
|
|
115
|
+
:first_share_at,
|
|
116
|
+
:first_unique_click_at,
|
|
117
|
+
:first_lead_at,
|
|
118
|
+
:first_referral_at,
|
|
119
|
+
:first_reward_at,
|
|
120
|
+
:first_commission_at,
|
|
121
|
+
:payout_setup_completed_at
|
|
122
|
+
|
|
123
|
+
sig { returns(T.nilable(ShareChannel::OrSymbol)) }
|
|
124
|
+
attr_accessor :first_share_channel
|
|
125
|
+
|
|
126
|
+
sig { params(kwargs: T.untyped).returns(T.attached_class) }
|
|
127
|
+
def self.new(**kwargs)
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|