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.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -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 +15 -11
  20. data/lib/growsurf_ruby/models/campaign/participant_reward.rb +16 -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.rb +22 -1
  30. data/lib/growsurf_ruby/models/campaign/reward_create_params.rb +32 -9
  31. data/lib/growsurf_ruby/models/campaign/reward_update_params.rb +32 -9
  32. data/lib/growsurf_ruby/models/campaign.rb +25 -2
  33. data/lib/growsurf_ruby/models/campaign_activation_analytics_response.rb +186 -0
  34. data/lib/growsurf_ruby/models/campaign_create_params.rb +37 -1
  35. data/lib/growsurf_ruby/models/campaign_engagement_analytics.rb +174 -0
  36. data/lib/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rb +35 -0
  37. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_params.rb +37 -4
  38. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_response.rb +3 -0
  39. data/lib/growsurf_ruby/models/commission_structure.rb +19 -3
  40. data/lib/growsurf_ruby/models/participant_commission_list.rb +24 -6
  41. data/lib/growsurf_ruby/models/participant_payout_list.rb +5 -5
  42. data/lib/growsurf_ruby/models.rb +7 -0
  43. data/lib/growsurf_ruby/resources/account.rb +17 -11
  44. data/lib/growsurf_ruby/resources/campaign/design.rb +11 -5
  45. data/lib/growsurf_ruby/resources/campaign/emails.rb +2 -1
  46. data/lib/growsurf_ruby/resources/campaign/integrations.rb +41 -0
  47. data/lib/growsurf_ruby/resources/campaign/participant.rb +28 -25
  48. data/lib/growsurf_ruby/resources/campaign/program_resources.rb +112 -0
  49. data/lib/growsurf_ruby/resources/campaign/rewards.rb +12 -6
  50. data/lib/growsurf_ruby/resources/campaign.rb +53 -7
  51. data/lib/growsurf_ruby/resources/team.rb +7 -5
  52. data/lib/growsurf_ruby/version.rb +1 -1
  53. data/lib/growsurf_ruby.rb +19 -0
  54. data/rbi/growsurf_ruby/internal/type/base_model.rbi +10 -0
  55. data/rbi/growsurf_ruby/internal/type/base_page.rbi +3 -0
  56. data/rbi/growsurf_ruby/models/analytics_availability.rbi +19 -0
  57. data/rbi/growsurf_ruby/models/analytics_unavailable_reason.rbi +23 -0
  58. data/rbi/growsurf_ruby/models/campaign/delete_program_resource_response.rbi +33 -0
  59. data/rbi/growsurf_ruby/models/campaign/integration.rbi +93 -0
  60. data/rbi/growsurf_ruby/models/campaign/integration_list_response.rbi +46 -0
  61. data/rbi/growsurf_ruby/models/campaign/participant_activation_analytics.rbi +133 -0
  62. data/rbi/growsurf_ruby/models/campaign/participant_analytics_response.rbi +35 -0
  63. data/rbi/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rbi +17 -23
  64. data/rbi/growsurf_ruby/models/campaign/participant_record_transaction_params.rbi +18 -0
  65. data/rbi/growsurf_ruby/models/campaign/participant_refund_transaction_params.rbi +18 -0
  66. data/rbi/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rbi +7 -9
  67. data/rbi/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rbi +16 -10
  68. data/rbi/growsurf_ruby/models/campaign/participant_reward.rbi +29 -6
  69. data/rbi/growsurf_ruby/models/campaign/program_resource.rbi +186 -0
  70. data/rbi/growsurf_ruby/models/campaign/program_resource_create_params.rbi +95 -0
  71. data/rbi/growsurf_ruby/models/campaign/program_resource_delete_params.rbi +37 -0
  72. data/rbi/growsurf_ruby/models/campaign/program_resource_list_response.rbi +29 -0
  73. data/rbi/growsurf_ruby/models/campaign/program_resource_update_params.rbi +105 -0
  74. data/rbi/growsurf_ruby/models/campaign/program_resource_upload_result.rbi +94 -0
  75. data/rbi/growsurf_ruby/models/campaign/program_resource_upload_ticket.rbi +57 -0
  76. data/rbi/growsurf_ruby/models/campaign/program_resource_upload_ticket_params.rbi +53 -0
  77. data/rbi/growsurf_ruby/models/campaign/reward.rbi +55 -0
  78. data/rbi/growsurf_ruby/models/campaign/reward_create_params.rbi +97 -24
  79. data/rbi/growsurf_ruby/models/campaign/reward_update_params.rbi +97 -24
  80. data/rbi/growsurf_ruby/models/campaign.rbi +52 -3
  81. data/rbi/growsurf_ruby/models/campaign_activation_analytics_response.rbi +325 -0
  82. data/rbi/growsurf_ruby/models/campaign_create_params.rbi +91 -0
  83. data/rbi/growsurf_ruby/models/campaign_engagement_analytics.rbi +369 -0
  84. data/rbi/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rbi +59 -0
  85. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_params.rbi +56 -3
  86. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_response.rbi +27 -7
  87. data/rbi/growsurf_ruby/models/commission_structure.rbi +36 -3
  88. data/rbi/growsurf_ruby/models/participant_commission_list.rbi +63 -15
  89. data/rbi/growsurf_ruby/models/participant_payout_list.rbi +15 -15
  90. data/rbi/growsurf_ruby/models.rbi +7 -0
  91. data/rbi/growsurf_ruby/resources/account.rbi +9 -6
  92. data/rbi/growsurf_ruby/resources/campaign/design.rbi +32 -4
  93. data/rbi/growsurf_ruby/resources/campaign/emails.rbi +2 -1
  94. data/rbi/growsurf_ruby/resources/campaign/integrations.rbi +35 -0
  95. data/rbi/growsurf_ruby/resources/campaign/participant.rbi +38 -24
  96. data/rbi/growsurf_ruby/resources/campaign/program_resources.rbi +116 -0
  97. data/rbi/growsurf_ruby/resources/campaign/rewards.rbi +35 -16
  98. data/rbi/growsurf_ruby/resources/campaign.rbi +53 -5
  99. data/rbi/growsurf_ruby/resources/team.rbi +7 -5
  100. data/sig/growsurf_ruby/internal/type/base_model.rbs +6 -0
  101. data/sig/growsurf_ruby/internal/type/base_page.rbs +2 -0
  102. data/sig/growsurf_ruby/models/analytics_availability.rbs +15 -0
  103. data/sig/growsurf_ruby/models/analytics_unavailable_reason.rbs +26 -0
  104. data/sig/growsurf_ruby/models/campaign/delete_program_resource_response.rbs +14 -0
  105. data/sig/growsurf_ruby/models/campaign/integration.rbs +47 -0
  106. data/sig/growsurf_ruby/models/campaign/integration_list_response.rbs +20 -0
  107. data/sig/growsurf_ruby/models/campaign/participant_activation_analytics.rbs +96 -0
  108. data/sig/growsurf_ruby/models/campaign/participant_analytics_response.rbs +22 -1
  109. data/sig/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rbs +17 -22
  110. data/sig/growsurf_ruby/models/campaign/participant_record_transaction_params.rbs +15 -1
  111. data/sig/growsurf_ruby/models/campaign/participant_refund_transaction_params.rbs +15 -1
  112. data/sig/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rbs +8 -10
  113. data/sig/growsurf_ruby/models/campaign/participant_reward.rbs +24 -9
  114. data/sig/growsurf_ruby/models/campaign/program_resource.rbs +94 -0
  115. data/sig/growsurf_ruby/models/campaign/program_resource_create_params.rbs +45 -0
  116. data/sig/growsurf_ruby/models/campaign/program_resource_delete_params.rbs +22 -0
  117. data/sig/growsurf_ruby/models/campaign/program_resource_list_response.rbs +14 -0
  118. data/sig/growsurf_ruby/models/campaign/program_resource_update_params.rbs +48 -0
  119. data/sig/growsurf_ruby/models/campaign/program_resource_upload_result.rbs +58 -0
  120. data/sig/growsurf_ruby/models/campaign/program_resource_upload_ticket.rbs +29 -0
  121. data/sig/growsurf_ruby/models/campaign/program_resource_upload_ticket_params.rbs +29 -0
  122. data/sig/growsurf_ruby/models/campaign/reward.rbs +16 -0
  123. data/sig/growsurf_ruby/models/campaign/reward_create_params.rbs +54 -34
  124. data/sig/growsurf_ruby/models/campaign/reward_update_params.rbs +54 -34
  125. data/sig/growsurf_ruby/models/campaign.rbs +23 -5
  126. data/sig/growsurf_ruby/models/campaign_activation_analytics_response.rbs +202 -0
  127. data/sig/growsurf_ruby/models/campaign_create_params.rbs +29 -0
  128. data/sig/growsurf_ruby/models/campaign_engagement_analytics.rbs +186 -0
  129. data/sig/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rbs +45 -0
  130. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_params.rbs +30 -1
  131. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_response.rbs +21 -3
  132. data/sig/growsurf_ruby/models/commission_structure.rbs +16 -4
  133. data/sig/growsurf_ruby/models/participant_commission_list.rbs +36 -20
  134. data/sig/growsurf_ruby/models/participant_payout_list.rbs +20 -20
  135. data/sig/growsurf_ruby/models.rbs +6 -0
  136. data/sig/growsurf_ruby/resources/campaign/design.rbs +19 -0
  137. data/sig/growsurf_ruby/resources/campaign/integrations.rbs +14 -0
  138. data/sig/growsurf_ruby/resources/campaign/participant.rbs +4 -0
  139. data/sig/growsurf_ruby/resources/campaign/program_resources.rbs +58 -0
  140. data/sig/growsurf_ruby/resources/campaign/rewards.rbs +14 -12
  141. data/sig/growsurf_ruby/resources/campaign.rbs +17 -0
  142. metadata +59 -2
@@ -0,0 +1,202 @@
1
+ module GrowsurfRuby
2
+ module Models
3
+ class CampaignActivationAnalyticsResponse < GrowsurfRuby::Internal::Type::BaseModel
4
+ type program_type = :REFERRAL | :AFFILIATE
5
+ type cohort_interval = :day | :week | :month
6
+ type portal_viewed_label =
7
+ :"Referral portal viewed" | :"Affiliate portal viewed"
8
+ type stage_key =
9
+ :ELIGIBLE
10
+ | :PORTAL_VIEWED
11
+ | :SHARE_ACTION
12
+ | :UNIQUE_REFERRAL_VISIT
13
+ | :LEAD
14
+ | :CREDITED_REFERRAL
15
+ type stalled_segment_key =
16
+ :ELIGIBLE_NO_PORTAL_VIEW
17
+ | :PORTAL_VIEWED_NO_SHARE_ACTION
18
+ | :SHARED_NO_UNIQUE_REFERRAL_VISIT
19
+ | :UNIQUE_VISIT_NO_LEAD
20
+ | :LEAD_NO_CREDITED_REFERRAL
21
+ type stalled_segment_from_stage =
22
+ :ELIGIBLE | :PORTAL_VIEWED | :SHARE_ACTION | :UNIQUE_REFERRAL_VISIT | :LEAD
23
+ type stalled_segment_to_stage =
24
+ :PORTAL_VIEWED | :SHARE_ACTION | :UNIQUE_REFERRAL_VISIT | :LEAD | :CREDITED_REFERRAL
25
+ type improvement_area_key =
26
+ :PORTAL_ACCESS
27
+ | :SHARING_EXPERIENCE
28
+ | :SHARE_EFFECTIVENESS
29
+ | :VISITOR_SIGNUP
30
+ | :ATTRIBUTION_AND_QUALIFICATION
31
+ type anchor_field = :enrolledAsAdvocateAt | :approvedAsAffiliateAt
32
+
33
+ attr_accessor coverage_start_at: Integer?
34
+ attr_accessor metric_contract_version: Integer
35
+ attr_accessor program_type: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::program_type
36
+ attr_accessor timezone: String
37
+ attr_accessor cohort_interval: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::cohort_interval
38
+ attr_accessor observation_window_days: Integer
39
+ attr_accessor portal_viewed_label: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::portal_viewed_label
40
+ attr_accessor portal_viewed_helper_text: String
41
+ attr_accessor aggregate: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::CohortResult
42
+ attr_accessor cohorts: ::Array[GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::CohortResult]
43
+ def initialize: (**untyped) -> void
44
+
45
+ module ProgramType
46
+ extend GrowsurfRuby::Internal::Type::Enum
47
+ REFERRAL: :REFERRAL
48
+ AFFILIATE: :AFFILIATE
49
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::program_type]
50
+ end
51
+
52
+ module CohortInterval
53
+ extend GrowsurfRuby::Internal::Type::Enum
54
+ DAY: :day
55
+ WEEK: :week
56
+ MONTH: :month
57
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::cohort_interval]
58
+ end
59
+
60
+ module PortalViewedLabel
61
+ extend GrowsurfRuby::Internal::Type::Enum
62
+ REFERRAL: :"Referral portal viewed"
63
+ AFFILIATE: :"Affiliate portal viewed"
64
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::portal_viewed_label]
65
+ end
66
+
67
+ module StageKey
68
+ extend GrowsurfRuby::Internal::Type::Enum
69
+ ELIGIBLE: :ELIGIBLE
70
+ PORTAL_VIEWED: :PORTAL_VIEWED
71
+ SHARE_ACTION: :SHARE_ACTION
72
+ UNIQUE_REFERRAL_VISIT: :UNIQUE_REFERRAL_VISIT
73
+ LEAD: :LEAD
74
+ CREDITED_REFERRAL: :CREDITED_REFERRAL
75
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::stage_key]
76
+ end
77
+
78
+ module StalledSegmentKey
79
+ extend GrowsurfRuby::Internal::Type::Enum
80
+ ELIGIBLE_NO_PORTAL_VIEW: :ELIGIBLE_NO_PORTAL_VIEW
81
+ PORTAL_VIEWED_NO_SHARE_ACTION: :PORTAL_VIEWED_NO_SHARE_ACTION
82
+ SHARED_NO_UNIQUE_REFERRAL_VISIT: :SHARED_NO_UNIQUE_REFERRAL_VISIT
83
+ UNIQUE_VISIT_NO_LEAD: :UNIQUE_VISIT_NO_LEAD
84
+ LEAD_NO_CREDITED_REFERRAL: :LEAD_NO_CREDITED_REFERRAL
85
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::stalled_segment_key]
86
+ end
87
+
88
+
89
+ module StalledSegmentFromStage
90
+ extend GrowsurfRuby::Internal::Type::Enum
91
+ ELIGIBLE: :ELIGIBLE
92
+ PORTAL_VIEWED: :PORTAL_VIEWED
93
+ SHARE_ACTION: :SHARE_ACTION
94
+ UNIQUE_REFERRAL_VISIT: :UNIQUE_REFERRAL_VISIT
95
+ LEAD: :LEAD
96
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::stalled_segment_from_stage]
97
+ end
98
+
99
+ module StalledSegmentToStage
100
+ extend GrowsurfRuby::Internal::Type::Enum
101
+ PORTAL_VIEWED: :PORTAL_VIEWED
102
+ SHARE_ACTION: :SHARE_ACTION
103
+ UNIQUE_REFERRAL_VISIT: :UNIQUE_REFERRAL_VISIT
104
+ LEAD: :LEAD
105
+ CREDITED_REFERRAL: :CREDITED_REFERRAL
106
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::stalled_segment_to_stage]
107
+ end
108
+
109
+ module ImprovementAreaKey
110
+ extend GrowsurfRuby::Internal::Type::Enum
111
+ PORTAL_ACCESS: :PORTAL_ACCESS
112
+ SHARING_EXPERIENCE: :SHARING_EXPERIENCE
113
+ SHARE_EFFECTIVENESS: :SHARE_EFFECTIVENESS
114
+ VISITOR_SIGNUP: :VISITOR_SIGNUP
115
+ ATTRIBUTION_AND_QUALIFICATION: :ATTRIBUTION_AND_QUALIFICATION
116
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::improvement_area_key]
117
+ end
118
+
119
+ module AnchorField
120
+ extend GrowsurfRuby::Internal::Type::Enum
121
+ ENROLLED_AS_ADVOCATE_AT: :enrolledAsAdvocateAt
122
+ APPROVED_AS_AFFILIATE_AT: :approvedAsAffiliateAt
123
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::anchor_field]
124
+ end
125
+
126
+ class Stage < GrowsurfRuby::Internal::Type::BaseModel
127
+ attr_accessor key: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::stage_key
128
+ attr_accessor count: Integer
129
+ attr_accessor conversion_rate_from_prior: Float?
130
+ attr_accessor conversion_rate_from_eligible: Float?
131
+ attr_accessor drop_off_count: Integer?
132
+ attr_accessor drop_off_rate: Float?
133
+ attr_accessor median_time_to_stage_ms: Float?
134
+ attr_accessor stalled_segment_key: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::stalled_segment_key?
135
+ def initialize: (**untyped) -> void
136
+ end
137
+
138
+ class StageCounts < GrowsurfRuby::Internal::Type::BaseModel
139
+ attr_accessor eligible: Integer
140
+ attr_accessor portal_viewed: Integer
141
+ attr_accessor share_action: Integer
142
+ attr_accessor unique_referral_visit: Integer
143
+ attr_accessor lead: Integer
144
+ attr_accessor credited_referral: Integer
145
+ def initialize: (**untyped) -> void
146
+ end
147
+
148
+ class StalledSegment < GrowsurfRuby::Internal::Type::BaseModel
149
+ attr_accessor key: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::stalled_segment_key
150
+ attr_accessor from_stage: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::stalled_segment_from_stage
151
+ attr_accessor to_stage: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::stalled_segment_to_stage
152
+ attr_accessor count: Integer
153
+ def initialize: (**untyped) -> void
154
+ end
155
+
156
+ class OutcomeCount < GrowsurfRuby::Internal::Type::BaseModel
157
+ attr_accessor count: Integer
158
+ def initialize: (**untyped) -> void
159
+ end
160
+
161
+ class Outcomes < GrowsurfRuby::Internal::Type::BaseModel
162
+ attr_accessor first_reward: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::OutcomeCount?
163
+ attr_accessor first_commission: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::OutcomeCount?
164
+ attr_accessor payout_setup_completed: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::OutcomeCount?
165
+ def initialize: (**untyped) -> void
166
+ end
167
+
168
+ class LargestDrop < GrowsurfRuby::Internal::Type::BaseModel
169
+ attr_accessor from_stage: String
170
+ attr_accessor to_stage: String
171
+ attr_accessor count: Integer
172
+ attr_accessor rate: Float
173
+ attr_accessor stalled_segment_key: String
174
+ attr_accessor improvement_area_key: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::improvement_area_key
175
+ attr_accessor improvement_area: String
176
+ def initialize: (**untyped) -> void
177
+ end
178
+
179
+ class CohortBounds < GrowsurfRuby::Internal::Type::BaseModel
180
+ attr_accessor from: Integer
181
+ attr_accessor to: Integer
182
+ attr_accessor effective_from: Integer?
183
+ attr_accessor matured_at: Integer
184
+ attr_accessor as_of: Integer
185
+ attr_accessor anchor_field: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::anchor_field
186
+ def initialize: (**untyped) -> void
187
+ end
188
+
189
+ class CohortResult < GrowsurfRuby::Internal::Type::BaseModel
190
+ attr_accessor state: GrowsurfRuby::Models::analytics_availability
191
+ attr_accessor reason: GrowsurfRuby::Models::analytics_unavailable_reason?
192
+ attr_accessor cohort: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::CohortBounds
193
+ attr_accessor strict_stages: ::Array[GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::Stage]?
194
+ attr_accessor raw_stage_counts: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::StageCounts?
195
+ attr_accessor stalled_segments: ::Array[GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::StalledSegment]?
196
+ attr_accessor outcomes: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::Outcomes?
197
+ attr_accessor largest_drop: GrowsurfRuby::Models::CampaignActivationAnalyticsResponse::LargestDrop?
198
+ def initialize: (**untyped) -> void
199
+ end
200
+ end
201
+ end
202
+ end
@@ -6,6 +6,7 @@ module GrowsurfRuby
6
6
  company_logo_image_url: String,
7
7
  company_name: String,
8
8
  currency_iso: String,
9
+ goal: GrowsurfRuby::Models::CampaignCreateParams::goal,
9
10
  name: String,
10
11
  rewards: ::Array[GrowsurfRuby::Campaign::RewardCreateParams]
11
12
  }
@@ -29,6 +30,12 @@ module GrowsurfRuby
29
30
 
30
31
  def currency_iso=: (String) -> String
31
32
 
33
+ attr_reader goal: GrowsurfRuby::Models::CampaignCreateParams::goal?
34
+
35
+ def goal=: (
36
+ GrowsurfRuby::Models::CampaignCreateParams::goal
37
+ ) -> GrowsurfRuby::Models::CampaignCreateParams::goal
38
+
32
39
  attr_reader name: String?
33
40
 
34
41
  def name=: (String) -> String
@@ -44,6 +51,7 @@ module GrowsurfRuby
44
51
  ?company_logo_image_url: String,
45
52
  ?company_name: String,
46
53
  ?currency_iso: String,
54
+ ?goal: GrowsurfRuby::Models::CampaignCreateParams::goal,
47
55
  ?name: String,
48
56
  ?rewards: ::Array[GrowsurfRuby::Campaign::RewardCreateParams],
49
57
  ?request_options: GrowsurfRuby::request_opts
@@ -54,6 +62,7 @@ module GrowsurfRuby
54
62
  company_logo_image_url: String,
55
63
  company_name: String,
56
64
  currency_iso: String,
65
+ goal: GrowsurfRuby::Models::CampaignCreateParams::goal,
57
66
  name: String,
58
67
  rewards: ::Array[GrowsurfRuby::Campaign::RewardCreateParams],
59
68
  request_options: GrowsurfRuby::RequestOptions
@@ -69,6 +78,26 @@ module GrowsurfRuby
69
78
 
70
79
  def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignCreateParams::type_]
71
80
  end
81
+
82
+ type goal =
83
+ :CUSTOMERS | :USERS | :SUBSCRIBERS | :WAITLIST | :B2B_SAAS_SELF_SERVICE | :B2B_SAAS_ENTERPRISE | :B2C_SUBSCRIPTIONS | :FINANCIAL_SERVICES | :ONLINE_EDUCATION | :ONLINE_INSURANCE
84
+
85
+ module Goal
86
+ extend GrowsurfRuby::Internal::Type::Enum
87
+
88
+ CUSTOMERS: :CUSTOMERS
89
+ USERS: :USERS
90
+ SUBSCRIBERS: :SUBSCRIBERS
91
+ WAITLIST: :WAITLIST
92
+ B2B_SAAS_SELF_SERVICE: :B2B_SAAS_SELF_SERVICE
93
+ B2B_SAAS_ENTERPRISE: :B2B_SAAS_ENTERPRISE
94
+ B2C_SUBSCRIPTIONS: :B2C_SUBSCRIPTIONS
95
+ FINANCIAL_SERVICES: :FINANCIAL_SERVICES
96
+ ONLINE_EDUCATION: :ONLINE_EDUCATION
97
+ ONLINE_INSURANCE: :ONLINE_INSURANCE
98
+
99
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignCreateParams::goal]
100
+ end
72
101
  end
73
102
  end
74
103
  end
@@ -0,0 +1,186 @@
1
+ module GrowsurfRuby
2
+ module Models
3
+ class CampaignEngagementAnalytics < GrowsurfRuby::Internal::Type::BaseModel
4
+ type program_type = :REFERRAL | :AFFILIATE
5
+ type interval = :day | :week | :month
6
+ type platform_value = :ALL | :WEB | :IOS | :ANDROID
7
+ type breakdown_platform = :WEB | :IOS | :ANDROID
8
+ type portal_source =
9
+ :DEFAULT_LAUNCHER
10
+ | :SDK_OPEN
11
+ | :CSS_CLASS
12
+ | :EMBEDDABLE_ELEMENT
13
+ | :HOSTED_PORTAL
14
+ | :NATIVE_WINDOW
15
+ | :UNKNOWN
16
+
17
+ attr_accessor coverage_start_at: Integer?
18
+ attr_accessor metric_contract_version: Integer
19
+ attr_accessor program_type: GrowsurfRuby::Models::CampaignEngagementAnalytics::program_type
20
+ attr_accessor timezone: String
21
+ attr_accessor interval: GrowsurfRuby::Models::CampaignEngagementAnalytics::interval
22
+ attr_accessor platform: GrowsurfRuby::Models::CampaignEngagementAnalytics::PlatformFilter
23
+ attr_accessor period: GrowsurfRuby::Models::CampaignEngagementAnalytics::Period
24
+ attr_accessor state: GrowsurfRuby::Models::analytics_availability
25
+ attr_accessor reason: GrowsurfRuby::Models::analytics_unavailable_reason?
26
+ attr_accessor totals: GrowsurfRuby::Models::CampaignEngagementAnalytics::Totals
27
+ attr_accessor previous_period: GrowsurfRuby::Models::CampaignEngagementAnalytics::PreviousPeriod
28
+ attr_accessor comparison: GrowsurfRuby::Models::CampaignEngagementAnalytics::Comparison
29
+ attr_accessor series: ::Array[GrowsurfRuby::Models::CampaignEngagementAnalytics::SeriesPoint]
30
+ attr_accessor breakdowns: GrowsurfRuby::Models::CampaignEngagementAnalytics::Breakdowns
31
+
32
+ def initialize: (**untyped) -> void
33
+
34
+ module ProgramType
35
+ extend GrowsurfRuby::Internal::Type::Enum
36
+ REFERRAL: :REFERRAL
37
+ AFFILIATE: :AFFILIATE
38
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignEngagementAnalytics::program_type]
39
+ end
40
+
41
+ module Interval
42
+ extend GrowsurfRuby::Internal::Type::Enum
43
+ DAY: :day
44
+ WEEK: :week
45
+ MONTH: :month
46
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignEngagementAnalytics::interval]
47
+ end
48
+
49
+ module Platform
50
+ extend GrowsurfRuby::Internal::Type::Enum
51
+ ALL: :ALL
52
+ WEB: :WEB
53
+ IOS: :IOS
54
+ ANDROID: :ANDROID
55
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignEngagementAnalytics::platform_value]
56
+ end
57
+
58
+ module BreakdownPlatform
59
+ extend GrowsurfRuby::Internal::Type::Enum
60
+ WEB: :WEB
61
+ IOS: :IOS
62
+ ANDROID: :ANDROID
63
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignEngagementAnalytics::breakdown_platform]
64
+ end
65
+
66
+ module PortalSource
67
+ extend GrowsurfRuby::Internal::Type::Enum
68
+ DEFAULT_LAUNCHER: :DEFAULT_LAUNCHER
69
+ SDK_OPEN: :SDK_OPEN
70
+ CSS_CLASS: :CSS_CLASS
71
+ EMBEDDABLE_ELEMENT: :EMBEDDABLE_ELEMENT
72
+ HOSTED_PORTAL: :HOSTED_PORTAL
73
+ NATIVE_WINDOW: :NATIVE_WINDOW
74
+ UNKNOWN: :UNKNOWN
75
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignEngagementAnalytics::portal_source]
76
+ end
77
+
78
+ class Metric < GrowsurfRuby::Internal::Type::BaseModel
79
+ attr_accessor state: GrowsurfRuby::Models::analytics_availability
80
+ attr_accessor value: Float?
81
+ attr_accessor reason: GrowsurfRuby::Models::analytics_unavailable_reason?
82
+ attr_accessor delta: Float?
83
+ def initialize: (**untyped) -> void
84
+ end
85
+
86
+ class Totals < GrowsurfRuby::Internal::Type::BaseModel
87
+ attr_accessor active_participants: GrowsurfRuby::Models::CampaignEngagementAnalytics::Metric
88
+ attr_accessor sharing_participants: GrowsurfRuby::Models::CampaignEngagementAnalytics::Metric
89
+ attr_accessor sharing_rate: GrowsurfRuby::Models::CampaignEngagementAnalytics::Metric
90
+ attr_accessor repeat_active_participants: GrowsurfRuby::Models::CampaignEngagementAnalytics::Metric
91
+ attr_accessor repeat_sharing_participants: GrowsurfRuby::Models::CampaignEngagementAnalytics::Metric
92
+ attr_accessor retained_active_participants: GrowsurfRuby::Models::CampaignEngagementAnalytics::Metric
93
+ attr_accessor portal_views: GrowsurfRuby::Models::CampaignEngagementAnalytics::Metric
94
+ attr_accessor share_actions: GrowsurfRuby::Models::CampaignEngagementAnalytics::Metric
95
+ def initialize: (**untyped) -> void
96
+ end
97
+
98
+ class Period < GrowsurfRuby::Internal::Type::BaseModel
99
+ attr_accessor from: Integer
100
+ attr_accessor to: Integer
101
+ attr_accessor effective_from: Integer?
102
+ attr_accessor previous_from: Integer
103
+ attr_accessor previous_to: Integer
104
+ def initialize: (**untyped) -> void
105
+ end
106
+
107
+ class PlatformFilter < GrowsurfRuby::Internal::Type::BaseModel
108
+ attr_accessor requested: GrowsurfRuby::Models::CampaignEngagementAnalytics::platform_value
109
+ attr_accessor applied: GrowsurfRuby::Models::CampaignEngagementAnalytics::platform_value
110
+ attr_accessor state: GrowsurfRuby::Models::analytics_availability
111
+ def initialize: (**untyped) -> void
112
+ end
113
+
114
+ class PreviousPeriod < GrowsurfRuby::Internal::Type::BaseModel
115
+ attr_accessor state: GrowsurfRuby::Models::analytics_availability
116
+ attr_accessor reason: GrowsurfRuby::Models::analytics_unavailable_reason?
117
+ attr_accessor totals: GrowsurfRuby::Models::CampaignEngagementAnalytics::Totals?
118
+ def initialize: (**untyped) -> void
119
+ end
120
+
121
+ class ComparisonMetrics < GrowsurfRuby::Internal::Type::BaseModel
122
+ attr_accessor active_participants: GrowsurfRuby::Models::CampaignEngagementAnalytics::Metric?
123
+ attr_accessor sharing_participants: GrowsurfRuby::Models::CampaignEngagementAnalytics::Metric?
124
+ attr_accessor repeat_active_participants: GrowsurfRuby::Models::CampaignEngagementAnalytics::Metric?
125
+ attr_accessor repeat_sharing_participants: GrowsurfRuby::Models::CampaignEngagementAnalytics::Metric?
126
+ attr_accessor portal_views: GrowsurfRuby::Models::CampaignEngagementAnalytics::Metric?
127
+ attr_accessor share_actions: GrowsurfRuby::Models::CampaignEngagementAnalytics::Metric?
128
+ def initialize: (**untyped) -> void
129
+ end
130
+
131
+ class Comparison < GrowsurfRuby::Internal::Type::BaseModel
132
+ attr_accessor state: GrowsurfRuby::Models::analytics_availability
133
+ attr_accessor reason: GrowsurfRuby::Models::analytics_unavailable_reason?
134
+ attr_accessor metrics: GrowsurfRuby::Models::CampaignEngagementAnalytics::ComparisonMetrics?
135
+ def initialize: (**untyped) -> void
136
+ end
137
+
138
+ class SeriesPoint < GrowsurfRuby::Internal::Type::BaseModel
139
+ attr_accessor from: Integer
140
+ attr_accessor to: Integer
141
+ attr_accessor active_participants: Integer
142
+ attr_accessor sharing_participants: Integer
143
+ attr_accessor portal_views: Integer
144
+ attr_accessor share_actions: Integer
145
+ def initialize: (**untyped) -> void
146
+ end
147
+
148
+ class PlatformBreakdown < GrowsurfRuby::Internal::Type::BaseModel
149
+ attr_accessor key: GrowsurfRuby::Models::CampaignEngagementAnalytics::breakdown_platform
150
+ attr_accessor active_participants: Integer
151
+ attr_accessor sharing_participants: Integer
152
+ attr_accessor portal_views: Integer
153
+ attr_accessor share_actions: Integer
154
+ def initialize: (**untyped) -> void
155
+ end
156
+
157
+ class PortalSourceBreakdown < GrowsurfRuby::Internal::Type::BaseModel
158
+ attr_accessor key: GrowsurfRuby::Models::CampaignEngagementAnalytics::portal_source
159
+ attr_accessor active_participants: Integer
160
+ attr_accessor portal_views: Integer
161
+ def initialize: (**untyped) -> void
162
+ end
163
+
164
+ class ShareChannelBreakdown < GrowsurfRuby::Internal::Type::BaseModel
165
+ attr_accessor key: String
166
+ attr_accessor sharing_participants: Integer
167
+ attr_accessor share_actions: Integer
168
+ def initialize: (**untyped) -> void
169
+ end
170
+
171
+ class FirstShareChannelBreakdown < GrowsurfRuby::Internal::Type::BaseModel
172
+ attr_accessor key: String
173
+ attr_accessor sharing_participants: Integer
174
+ def initialize: (**untyped) -> void
175
+ end
176
+
177
+ class Breakdowns < GrowsurfRuby::Internal::Type::BaseModel
178
+ attr_accessor platforms: ::Array[GrowsurfRuby::Models::CampaignEngagementAnalytics::PlatformBreakdown]
179
+ attr_accessor portal_view_sources: ::Array[GrowsurfRuby::Models::CampaignEngagementAnalytics::PortalSourceBreakdown]
180
+ attr_accessor share_channels: ::Array[GrowsurfRuby::Models::CampaignEngagementAnalytics::ShareChannelBreakdown]
181
+ attr_accessor first_share_channels: ::Array[GrowsurfRuby::Models::CampaignEngagementAnalytics::FirstShareChannelBreakdown]
182
+ def initialize: (**untyped) -> void
183
+ end
184
+ end
185
+ end
186
+ end
@@ -0,0 +1,45 @@
1
+ module GrowsurfRuby
2
+ module Models
3
+ type campaign_retrieve_activation_analytics_params =
4
+ {
5
+ id: String,
6
+ cohort_from: Integer,
7
+ cohort_to: Integer,
8
+ cohort_interval: GrowsurfRuby::Models::CampaignRetrieveActivationAnalyticsParams::cohort_interval,
9
+ observation_window_days: GrowsurfRuby::Models::CampaignRetrieveActivationAnalyticsParams::observation_window_days,
10
+ timezone: String
11
+ }
12
+ & GrowsurfRuby::Internal::Type::request_parameters
13
+
14
+ class CampaignRetrieveActivationAnalyticsParams < GrowsurfRuby::Internal::Type::BaseModel
15
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
16
+ include GrowsurfRuby::Internal::Type::RequestParameters
17
+
18
+ type cohort_interval = :day | :week | :month
19
+ type observation_window_days = 7 | 30
20
+
21
+ attr_accessor id: String
22
+ attr_accessor cohort_from: Integer?
23
+ attr_accessor cohort_to: Integer?
24
+ attr_accessor cohort_interval: GrowsurfRuby::Models::CampaignRetrieveActivationAnalyticsParams::cohort_interval?
25
+ attr_accessor observation_window_days: GrowsurfRuby::Models::CampaignRetrieveActivationAnalyticsParams::observation_window_days?
26
+ attr_accessor timezone: String?
27
+ def initialize: (**untyped) -> void
28
+
29
+ module CohortInterval
30
+ extend GrowsurfRuby::Internal::Type::Enum
31
+ DAY: :day
32
+ WEEK: :week
33
+ MONTH: :month
34
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignRetrieveActivationAnalyticsParams::cohort_interval]
35
+ end
36
+
37
+ module ObservationWindowDays
38
+ extend GrowsurfRuby::Internal::Type::Enum
39
+ SEVEN: 7
40
+ THIRTY: 30
41
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignRetrieveActivationAnalyticsParams::observation_window_days]
42
+ end
43
+ end
44
+ end
45
+ end
@@ -7,7 +7,9 @@ module GrowsurfRuby
7
7
  end_date: Integer,
8
8
  include: String,
9
9
  interval: GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::interval,
10
- start_date: Integer
10
+ platform: GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::platform,
11
+ start_date: Integer,
12
+ timezone: String
11
13
  }
12
14
  & GrowsurfRuby::Internal::Type::request_parameters
13
15
 
@@ -35,17 +37,29 @@ module GrowsurfRuby
35
37
  GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::interval
36
38
  ) -> GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::interval
37
39
 
40
+ attr_reader platform: GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::platform?
41
+
42
+ def platform=: (
43
+ GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::platform
44
+ ) -> GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::platform
45
+
38
46
  attr_reader start_date: Integer?
39
47
 
40
48
  def start_date=: (Integer) -> Integer
41
49
 
50
+ attr_reader timezone: String?
51
+
52
+ def timezone=: (String) -> String
53
+
42
54
  def initialize: (
43
55
  id: String,
44
56
  ?days: Integer,
45
57
  ?end_date: Integer,
46
58
  ?include: String,
47
59
  ?interval: GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::interval,
60
+ ?platform: GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::platform,
48
61
  ?start_date: Integer,
62
+ ?timezone: String,
49
63
  ?request_options: GrowsurfRuby::request_opts
50
64
  ) -> void
51
65
 
@@ -55,12 +69,16 @@ module GrowsurfRuby
55
69
  end_date: Integer,
56
70
  include: String,
57
71
  interval: GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::interval,
72
+ platform: GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::platform,
58
73
  start_date: Integer,
74
+ timezone: String,
59
75
  request_options: GrowsurfRuby::RequestOptions
60
76
  }
61
77
 
62
78
  type interval = :day | :week | :month | :total
63
79
 
80
+ type platform = :ALL | :WEB | :IOS | :ANDROID
81
+
64
82
  module Interval
65
83
  extend GrowsurfRuby::Internal::Type::Enum
66
84
 
@@ -71,6 +89,17 @@ module GrowsurfRuby
71
89
 
72
90
  def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::interval]
73
91
  end
92
+
93
+ module Platform
94
+ extend GrowsurfRuby::Internal::Type::Enum
95
+
96
+ ALL: :ALL
97
+ WEB: :WEB
98
+ IOS: :IOS
99
+ ANDROID: :ANDROID
100
+
101
+ def self?.values: -> ::Array[GrowsurfRuby::Models::CampaignRetrieveAnalyticsParams::platform]
102
+ end
74
103
  end
75
104
  end
76
105
  end
@@ -5,6 +5,7 @@ module GrowsurfRuby
5
5
  analytics: GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::Analytics,
6
6
  end_date: Integer,
7
7
  start_date: Integer,
8
+ engagement: GrowsurfRuby::Models::CampaignEngagementAnalytics,
8
9
  previous_period: GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::PreviousPeriod,
9
10
  rates: GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::Rates,
10
11
  series: ::Array[GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::Series],
@@ -18,6 +19,12 @@ module GrowsurfRuby
18
19
 
19
20
  attr_accessor start_date: Integer
20
21
 
22
+ attr_reader engagement: GrowsurfRuby::Models::CampaignEngagementAnalytics?
23
+
24
+ def engagement=: (
25
+ GrowsurfRuby::Models::CampaignEngagementAnalytics
26
+ ) -> GrowsurfRuby::Models::CampaignEngagementAnalytics
27
+
21
28
  attr_reader previous_period: GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::PreviousPeriod?
22
29
 
23
30
  def previous_period=: (
@@ -46,6 +53,7 @@ module GrowsurfRuby
46
53
  analytics: GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::Analytics,
47
54
  end_date: Integer,
48
55
  start_date: Integer,
56
+ ?engagement: GrowsurfRuby::Models::CampaignEngagementAnalytics,
49
57
  ?previous_period: GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::PreviousPeriod,
50
58
  ?rates: GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::Rates,
51
59
  ?series: ::Array[GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::Series],
@@ -56,6 +64,7 @@ module GrowsurfRuby
56
64
  analytics: GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::Analytics,
57
65
  end_date: Integer,
58
66
  start_date: Integer,
67
+ engagement: GrowsurfRuby::Models::CampaignEngagementAnalytics,
59
68
  previous_period: GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::PreviousPeriod,
60
69
  rates: GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::Rates,
61
70
  series: ::Array[GrowsurfRuby::Models::CampaignRetrieveAnalyticsResponse::Series],
@@ -763,7 +772,8 @@ module GrowsurfRuby
763
772
  end
764
773
  end
765
774
 
766
- type reward_status = { completed: Integer, unapproved: Integer, unfulfilled: Integer }
775
+ type reward_status =
776
+ { completed: Integer, unapproved: Integer, unfulfilled: Integer }
767
777
 
768
778
  class RewardStatus < GrowsurfRuby::Internal::Type::BaseModel
769
779
  attr_reader completed: Integer?
@@ -778,9 +788,17 @@ module GrowsurfRuby
778
788
 
779
789
  def unfulfilled=: (Integer) -> Integer
780
790
 
781
- def initialize: (?completed: Integer, ?unapproved: Integer, ?unfulfilled: Integer) -> void
791
+ def initialize: (
792
+ ?completed: Integer,
793
+ ?unapproved: Integer,
794
+ ?unfulfilled: Integer
795
+ ) -> void
782
796
 
783
- def to_hash: -> { completed: Integer, unapproved: Integer, unfulfilled: Integer }
797
+ def to_hash: -> {
798
+ completed: Integer,
799
+ unapproved: Integer,
800
+ unfulfilled: Integer
801
+ }
784
802
  end
785
803
  end
786
804
  end