test_sdk 0.0.4
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 +7 -0
- data/lib/core/file_utilities.rb +26 -0
- data/lib/environment.rb +7 -0
- data/lib/gemconfig.rb +14 -0
- data/lib/requests.rb +166 -0
- data/lib/test_sdk/benchmark/client.rb +1031 -0
- data/lib/test_sdk/company/client.rb +474 -0
- data/lib/test_sdk/deal/client.rb +584 -0
- data/lib/test_sdk/file/client.rb +692 -0
- data/lib/test_sdk/financials/client.rb +97 -0
- data/lib/test_sdk/group/client.rb +737 -0
- data/lib/test_sdk/macro/client.rb +422 -0
- data/lib/test_sdk/metadata/client.rb +95 -0
- data/lib/test_sdk/product/client.rb +419 -0
- data/lib/test_sdk/talent/client.rb +266 -0
- data/lib/test_sdk/types/account_manager_response.rb +74 -0
- data/lib/test_sdk/types/all_data_metadata_response.rb +68 -0
- data/lib/test_sdk/types/area.rb +74 -0
- data/lib/test_sdk/types/authenticate_api_key_response.rb +55 -0
- data/lib/test_sdk/types/available_categories_response.rb +5 -0
- data/lib/test_sdk/types/available_models_response.rb +69 -0
- data/lib/test_sdk/types/band_response.rb +83 -0
- data/lib/test_sdk/types/benchmark_quantile.rb +465 -0
- data/lib/test_sdk/types/categories_metadata_response.rb +72 -0
- data/lib/test_sdk/types/category_growth_rates.rb +143 -0
- data/lib/test_sdk/types/category_metadata.rb +79 -0
- data/lib/test_sdk/types/category_metadata_default_user_type.rb +8 -0
- data/lib/test_sdk/types/cohorts_response.rb +132 -0
- data/lib/test_sdk/types/column_metadata.rb +110 -0
- data/lib/test_sdk/types/column_mini_metadata.rb +83 -0
- data/lib/test_sdk/types/columns_metadata_response.rb +72 -0
- data/lib/test_sdk/types/company_response.rb +120 -0
- data/lib/test_sdk/types/concentration_endpoint_cdf_detail.rb +96 -0
- data/lib/test_sdk/types/concentration_endpoint_top_users_detail.rb +72 -0
- data/lib/test_sdk/types/concentration_response.rb +103 -0
- data/lib/test_sdk/types/concentration_timeseries_detail.rb +159 -0
- data/lib/test_sdk/types/contribution_response.rb +135 -0
- data/lib/test_sdk/types/create_api_key_response.rb +55 -0
- data/lib/test_sdk/types/create_file_for_signed_url_response.rb +127 -0
- data/lib/test_sdk/types/create_file_response.rb +113 -0
- data/lib/test_sdk/types/deal_combined_metrics_response.rb +477 -0
- data/lib/test_sdk/types/deal_data_availablity_response.rb +109 -0
- data/lib/test_sdk/types/deal_with_files_response.rb +194 -0
- data/lib/test_sdk/types/endpoint_seniority_count.rb +66 -0
- data/lib/test_sdk/types/executive_profile.rb +91 -0
- data/lib/test_sdk/types/executive_profile_position.rb +97 -0
- data/lib/test_sdk/types/file_response.rb +113 -0
- data/lib/test_sdk/types/file_type.rb +14 -0
- data/lib/test_sdk/types/financial_metrics.rb +113 -0
- data/lib/test_sdk/types/financials_response.rb +102 -0
- data/lib/test_sdk/types/frequency.rb +9 -0
- data/lib/test_sdk/types/function_level_growth_accounting.rb +111 -0
- data/lib/test_sdk/types/gcs_signed_url_response.rb +81 -0
- data/lib/test_sdk/types/group_response.rb +158 -0
- data/lib/test_sdk/types/group_user.rb +124 -0
- data/lib/test_sdk/types/group_with_users_response.rb +170 -0
- data/lib/test_sdk/types/growth_accounting_response.rb +226 -0
- data/lib/test_sdk/types/healthz_response.rb +55 -0
- data/lib/test_sdk/types/http_validation_error.rb +61 -0
- data/lib/test_sdk/types/income_statement_entry.rb +81 -0
- data/lib/test_sdk/types/model_metadata.rb +76 -0
- data/lib/test_sdk/types/models_metadata_response.rb +76 -0
- data/lib/test_sdk/types/paginated_response_company_response.rb +83 -0
- data/lib/test_sdk/types/paginated_response_deal_with_files_response.rb +84 -0
- data/lib/test_sdk/types/paginated_response_file_response.rb +83 -0
- data/lib/test_sdk/types/paginated_response_group_user.rb +83 -0
- data/lib/test_sdk/types/permission_model.rb +65 -0
- data/lib/test_sdk/types/priority.rb +10 -0
- data/lib/test_sdk/types/product_info_response.rb +65 -0
- data/lib/test_sdk/types/role_response.rb +95 -0
- data/lib/test_sdk/types/scale.rb +72 -0
- data/lib/test_sdk/types/scale_model.rb +80 -0
- data/lib/test_sdk/types/scale_models_response.rb +5 -0
- data/lib/test_sdk/types/scaling.rb +10 -0
- data/lib/test_sdk/types/status.rb +12 -0
- data/lib/test_sdk/types/tradeoff_model.rb +95 -0
- data/lib/test_sdk/types/tradeoff_models_response.rb +5 -0
- data/lib/test_sdk/types/unit.rb +12 -0
- data/lib/test_sdk/types/unit_economics_info_response.rb +55 -0
- data/lib/test_sdk/types/user_accounting_response.rb +168 -0
- data/lib/test_sdk/types/user_role_response.rb +77 -0
- data/lib/test_sdk/types/user_type.rb +12 -0
- data/lib/test_sdk/types/user_with_groups_response.rb +140 -0
- data/lib/test_sdk/types/user_with_permissions_response.rb +153 -0
- data/lib/test_sdk/types/validation_error.rb +76 -0
- data/lib/test_sdk/types/validation_error_loc_item.rb +52 -0
- data/lib/test_sdk/types/weather_components.rb +123 -0
- data/lib/test_sdk/types/weather_gauge.rb +76 -0
- data/lib/test_sdk/types/weather_market_context.rb +109 -0
- data/lib/test_sdk/types/weather_metadata.rb +113 -0
- data/lib/test_sdk/unit_economics/client.rb +124 -0
- data/lib/test_sdk/user/client.rb +363 -0
- data/lib/test_sdk.rb +190 -0
- data/lib/types_export.rb +77 -0
- metadata +251 -0
@@ -0,0 +1,465 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module NewDemoApiClient
|
7
|
+
class BenchmarkQuantile
|
8
|
+
# @return [Float] Quantile
|
9
|
+
attr_reader :quantile
|
10
|
+
# @return [Float] Revenue
|
11
|
+
attr_reader :revenue
|
12
|
+
# @return [Float] Average Revenue (Rolling Q)
|
13
|
+
attr_reader :rolling3m_average_revenue
|
14
|
+
# @return [Float] Annualized Revenue
|
15
|
+
attr_reader :annualized_revenue
|
16
|
+
# @return [Float] Annualized Revenue (Rolling Q)
|
17
|
+
attr_reader :rolling3m_annualized_revenue
|
18
|
+
# @return [Float] Revenue Share of Top 20%
|
19
|
+
attr_reader :revenue_share_of_top20percent
|
20
|
+
# @return [Float] Revenue Share of Top 10 Users
|
21
|
+
attr_reader :revenue_share_of_top10count
|
22
|
+
# @return [Float] Average to Median Revenue
|
23
|
+
attr_reader :average_to_median
|
24
|
+
# @return [Float] Gini Coefficient
|
25
|
+
attr_reader :gini_coefficient
|
26
|
+
# @return [Float] Average Quick Ratio
|
27
|
+
attr_reader :lifetime_quick_ratio
|
28
|
+
# @return [Float] Average Gross Retention
|
29
|
+
attr_reader :lifetime_gross_retention
|
30
|
+
# @return [Float] Average Net Churn
|
31
|
+
attr_reader :lifetime_net_churn
|
32
|
+
# @return [Float] CMGR3
|
33
|
+
attr_reader :cmgr3
|
34
|
+
# @return [Float] CMGR6
|
35
|
+
attr_reader :cmgr6
|
36
|
+
# @return [Float] CMGR12
|
37
|
+
attr_reader :cmgr12
|
38
|
+
# @return [Float] YoY Growth
|
39
|
+
attr_reader :yoy
|
40
|
+
# @return [Float] Operating Margin
|
41
|
+
attr_reader :operating_margin
|
42
|
+
# @return [Float] Operating Margin (Rolling Q)
|
43
|
+
attr_reader :quarterly_operating_margin
|
44
|
+
# @return [Float] Gross Margin
|
45
|
+
attr_reader :gross_margin
|
46
|
+
# @return [Float] Gross Margin (Rolling Q)
|
47
|
+
attr_reader :quarterly_gross_margin
|
48
|
+
# @return [Float] Magic Number
|
49
|
+
attr_reader :magic_number
|
50
|
+
# @return [Float] Rule of 40
|
51
|
+
attr_reader :rule_of40
|
52
|
+
# @return [Float] Burn Multiple
|
53
|
+
attr_reader :burn_multiple
|
54
|
+
# @return [Float] Acquisition Spend
|
55
|
+
attr_reader :acquisition_spend
|
56
|
+
# @return [Float] Total OPEX
|
57
|
+
attr_reader :total_opex
|
58
|
+
# @return [Float] Logo Retention (6M)
|
59
|
+
attr_reader :logo_retention6m
|
60
|
+
# @return [Float] Logo Retention (12M)
|
61
|
+
attr_reader :logo_retention12m
|
62
|
+
# @return [Float] Revenue Retention (6M)
|
63
|
+
attr_reader :revenue_retention6m
|
64
|
+
# @return [Float] Revenue Retention (12M)
|
65
|
+
attr_reader :revenue_retention12m
|
66
|
+
# @return [Float] LTV6
|
67
|
+
attr_reader :ltv6m
|
68
|
+
# @return [Float] LTV12
|
69
|
+
attr_reader :ltv12m
|
70
|
+
# @return [Float] LTV6/CAC
|
71
|
+
attr_reader :ltv6cac
|
72
|
+
# @return [Float] LTV12/CAC
|
73
|
+
attr_reader :ltv12cac
|
74
|
+
# @return [Float] gmLTV6/CAC
|
75
|
+
attr_reader :gmltv6cac
|
76
|
+
# @return [Float] gmLTV12/CAC
|
77
|
+
attr_reader :gmltv12cac
|
78
|
+
# @return [Float] Average LTV6/CAC
|
79
|
+
attr_reader :lifetime_ltv6cac
|
80
|
+
# @return [Float] Average LTV12/CAC
|
81
|
+
attr_reader :lifetime_ltv12cac
|
82
|
+
# @return [Float] Average gmLTV6/CAC
|
83
|
+
attr_reader :lifetime_gmltv6cac
|
84
|
+
# @return [Float] Average gmLTV12/CAC
|
85
|
+
attr_reader :lifetime_gmltv12cac
|
86
|
+
# @return [Float] CAC
|
87
|
+
attr_reader :cac
|
88
|
+
# @return [Float] IRR
|
89
|
+
attr_reader :irr
|
90
|
+
# @return [Float] Months to Payback
|
91
|
+
attr_reader :periods_to_payback
|
92
|
+
# @return [Float] Number of Employees
|
93
|
+
attr_reader :employee_count
|
94
|
+
# @return [Float] Cumulative Years of Effort
|
95
|
+
attr_reader :cumulative_person_years
|
96
|
+
# @return [Float] Employee Retention (1Y)
|
97
|
+
attr_reader :employee_retention1yr
|
98
|
+
# @return [Float] Employee Retention (2Y)
|
99
|
+
attr_reader :employee_retention2yr
|
100
|
+
# @return [Float] Average Employee Experience (Years)
|
101
|
+
attr_reader :average_years_of_experience
|
102
|
+
# @return [Float] Lifetime Employee Retention
|
103
|
+
attr_reader :lifetime_employee_retention
|
104
|
+
# @return [Float] Sales + Marketing (% Employees)
|
105
|
+
attr_reader :percent_employees_sales_and_marketing
|
106
|
+
# @return [Float] Fully-Loaded Employee Cost
|
107
|
+
attr_reader :fully_loaded_employee_cost
|
108
|
+
# @return [Float] Annualized Revenue per Employee
|
109
|
+
attr_reader :annualized_revenue_per_employee
|
110
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
111
|
+
attr_reader :additional_properties
|
112
|
+
# @return [Object]
|
113
|
+
attr_reader :_field_set
|
114
|
+
protected :_field_set
|
115
|
+
|
116
|
+
OMIT = Object.new
|
117
|
+
|
118
|
+
# @param quantile [Float] Quantile
|
119
|
+
# @param revenue [Float] Revenue
|
120
|
+
# @param rolling3m_average_revenue [Float] Average Revenue (Rolling Q)
|
121
|
+
# @param annualized_revenue [Float] Annualized Revenue
|
122
|
+
# @param rolling3m_annualized_revenue [Float] Annualized Revenue (Rolling Q)
|
123
|
+
# @param revenue_share_of_top20percent [Float] Revenue Share of Top 20%
|
124
|
+
# @param revenue_share_of_top10count [Float] Revenue Share of Top 10 Users
|
125
|
+
# @param average_to_median [Float] Average to Median Revenue
|
126
|
+
# @param gini_coefficient [Float] Gini Coefficient
|
127
|
+
# @param lifetime_quick_ratio [Float] Average Quick Ratio
|
128
|
+
# @param lifetime_gross_retention [Float] Average Gross Retention
|
129
|
+
# @param lifetime_net_churn [Float] Average Net Churn
|
130
|
+
# @param cmgr3 [Float] CMGR3
|
131
|
+
# @param cmgr6 [Float] CMGR6
|
132
|
+
# @param cmgr12 [Float] CMGR12
|
133
|
+
# @param yoy [Float] YoY Growth
|
134
|
+
# @param operating_margin [Float] Operating Margin
|
135
|
+
# @param quarterly_operating_margin [Float] Operating Margin (Rolling Q)
|
136
|
+
# @param gross_margin [Float] Gross Margin
|
137
|
+
# @param quarterly_gross_margin [Float] Gross Margin (Rolling Q)
|
138
|
+
# @param magic_number [Float] Magic Number
|
139
|
+
# @param rule_of40 [Float] Rule of 40
|
140
|
+
# @param burn_multiple [Float] Burn Multiple
|
141
|
+
# @param acquisition_spend [Float] Acquisition Spend
|
142
|
+
# @param total_opex [Float] Total OPEX
|
143
|
+
# @param logo_retention6m [Float] Logo Retention (6M)
|
144
|
+
# @param logo_retention12m [Float] Logo Retention (12M)
|
145
|
+
# @param revenue_retention6m [Float] Revenue Retention (6M)
|
146
|
+
# @param revenue_retention12m [Float] Revenue Retention (12M)
|
147
|
+
# @param ltv6m [Float] LTV6
|
148
|
+
# @param ltv12m [Float] LTV12
|
149
|
+
# @param ltv6cac [Float] LTV6/CAC
|
150
|
+
# @param ltv12cac [Float] LTV12/CAC
|
151
|
+
# @param gmltv6cac [Float] gmLTV6/CAC
|
152
|
+
# @param gmltv12cac [Float] gmLTV12/CAC
|
153
|
+
# @param lifetime_ltv6cac [Float] Average LTV6/CAC
|
154
|
+
# @param lifetime_ltv12cac [Float] Average LTV12/CAC
|
155
|
+
# @param lifetime_gmltv6cac [Float] Average gmLTV6/CAC
|
156
|
+
# @param lifetime_gmltv12cac [Float] Average gmLTV12/CAC
|
157
|
+
# @param cac [Float] CAC
|
158
|
+
# @param irr [Float] IRR
|
159
|
+
# @param periods_to_payback [Float] Months to Payback
|
160
|
+
# @param employee_count [Float] Number of Employees
|
161
|
+
# @param cumulative_person_years [Float] Cumulative Years of Effort
|
162
|
+
# @param employee_retention1yr [Float] Employee Retention (1Y)
|
163
|
+
# @param employee_retention2yr [Float] Employee Retention (2Y)
|
164
|
+
# @param average_years_of_experience [Float] Average Employee Experience (Years)
|
165
|
+
# @param lifetime_employee_retention [Float] Lifetime Employee Retention
|
166
|
+
# @param percent_employees_sales_and_marketing [Float] Sales + Marketing (% Employees)
|
167
|
+
# @param fully_loaded_employee_cost [Float] Fully-Loaded Employee Cost
|
168
|
+
# @param annualized_revenue_per_employee [Float] Annualized Revenue per Employee
|
169
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
170
|
+
# @return [NewDemoApiClient::BenchmarkQuantile]
|
171
|
+
def initialize(quantile:, revenue: OMIT, rolling3m_average_revenue: OMIT, annualized_revenue: OMIT,
|
172
|
+
rolling3m_annualized_revenue: OMIT, revenue_share_of_top20percent: OMIT, revenue_share_of_top10count: OMIT, average_to_median: OMIT, gini_coefficient: OMIT, lifetime_quick_ratio: OMIT, lifetime_gross_retention: OMIT, lifetime_net_churn: OMIT, cmgr3: OMIT, cmgr6: OMIT, cmgr12: OMIT, yoy: OMIT, operating_margin: OMIT, quarterly_operating_margin: OMIT, gross_margin: OMIT, quarterly_gross_margin: OMIT, magic_number: OMIT, rule_of40: OMIT, burn_multiple: OMIT, acquisition_spend: OMIT, total_opex: OMIT, logo_retention6m: OMIT, logo_retention12m: OMIT, revenue_retention6m: OMIT, revenue_retention12m: OMIT, ltv6m: OMIT, ltv12m: OMIT, ltv6cac: OMIT, ltv12cac: OMIT, gmltv6cac: OMIT, gmltv12cac: OMIT, lifetime_ltv6cac: OMIT, lifetime_ltv12cac: OMIT, lifetime_gmltv6cac: OMIT, lifetime_gmltv12cac: OMIT, cac: OMIT, irr: OMIT, periods_to_payback: OMIT, employee_count: OMIT, cumulative_person_years: OMIT, employee_retention1yr: OMIT, employee_retention2yr: OMIT, average_years_of_experience: OMIT, lifetime_employee_retention: OMIT, percent_employees_sales_and_marketing: OMIT, fully_loaded_employee_cost: OMIT, annualized_revenue_per_employee: OMIT, additional_properties: nil)
|
173
|
+
@quantile = quantile
|
174
|
+
@revenue = revenue if revenue != OMIT
|
175
|
+
@rolling3m_average_revenue = rolling3m_average_revenue if rolling3m_average_revenue != OMIT
|
176
|
+
@annualized_revenue = annualized_revenue if annualized_revenue != OMIT
|
177
|
+
@rolling3m_annualized_revenue = rolling3m_annualized_revenue if rolling3m_annualized_revenue != OMIT
|
178
|
+
@revenue_share_of_top20percent = revenue_share_of_top20percent if revenue_share_of_top20percent != OMIT
|
179
|
+
@revenue_share_of_top10count = revenue_share_of_top10count if revenue_share_of_top10count != OMIT
|
180
|
+
@average_to_median = average_to_median if average_to_median != OMIT
|
181
|
+
@gini_coefficient = gini_coefficient if gini_coefficient != OMIT
|
182
|
+
@lifetime_quick_ratio = lifetime_quick_ratio if lifetime_quick_ratio != OMIT
|
183
|
+
@lifetime_gross_retention = lifetime_gross_retention if lifetime_gross_retention != OMIT
|
184
|
+
@lifetime_net_churn = lifetime_net_churn if lifetime_net_churn != OMIT
|
185
|
+
@cmgr3 = cmgr3 if cmgr3 != OMIT
|
186
|
+
@cmgr6 = cmgr6 if cmgr6 != OMIT
|
187
|
+
@cmgr12 = cmgr12 if cmgr12 != OMIT
|
188
|
+
@yoy = yoy if yoy != OMIT
|
189
|
+
@operating_margin = operating_margin if operating_margin != OMIT
|
190
|
+
@quarterly_operating_margin = quarterly_operating_margin if quarterly_operating_margin != OMIT
|
191
|
+
@gross_margin = gross_margin if gross_margin != OMIT
|
192
|
+
@quarterly_gross_margin = quarterly_gross_margin if quarterly_gross_margin != OMIT
|
193
|
+
@magic_number = magic_number if magic_number != OMIT
|
194
|
+
@rule_of40 = rule_of40 if rule_of40 != OMIT
|
195
|
+
@burn_multiple = burn_multiple if burn_multiple != OMIT
|
196
|
+
@acquisition_spend = acquisition_spend if acquisition_spend != OMIT
|
197
|
+
@total_opex = total_opex if total_opex != OMIT
|
198
|
+
@logo_retention6m = logo_retention6m if logo_retention6m != OMIT
|
199
|
+
@logo_retention12m = logo_retention12m if logo_retention12m != OMIT
|
200
|
+
@revenue_retention6m = revenue_retention6m if revenue_retention6m != OMIT
|
201
|
+
@revenue_retention12m = revenue_retention12m if revenue_retention12m != OMIT
|
202
|
+
@ltv6m = ltv6m if ltv6m != OMIT
|
203
|
+
@ltv12m = ltv12m if ltv12m != OMIT
|
204
|
+
@ltv6cac = ltv6cac if ltv6cac != OMIT
|
205
|
+
@ltv12cac = ltv12cac if ltv12cac != OMIT
|
206
|
+
@gmltv6cac = gmltv6cac if gmltv6cac != OMIT
|
207
|
+
@gmltv12cac = gmltv12cac if gmltv12cac != OMIT
|
208
|
+
@lifetime_ltv6cac = lifetime_ltv6cac if lifetime_ltv6cac != OMIT
|
209
|
+
@lifetime_ltv12cac = lifetime_ltv12cac if lifetime_ltv12cac != OMIT
|
210
|
+
@lifetime_gmltv6cac = lifetime_gmltv6cac if lifetime_gmltv6cac != OMIT
|
211
|
+
@lifetime_gmltv12cac = lifetime_gmltv12cac if lifetime_gmltv12cac != OMIT
|
212
|
+
@cac = cac if cac != OMIT
|
213
|
+
@irr = irr if irr != OMIT
|
214
|
+
@periods_to_payback = periods_to_payback if periods_to_payback != OMIT
|
215
|
+
@employee_count = employee_count if employee_count != OMIT
|
216
|
+
@cumulative_person_years = cumulative_person_years if cumulative_person_years != OMIT
|
217
|
+
@employee_retention1yr = employee_retention1yr if employee_retention1yr != OMIT
|
218
|
+
@employee_retention2yr = employee_retention2yr if employee_retention2yr != OMIT
|
219
|
+
@average_years_of_experience = average_years_of_experience if average_years_of_experience != OMIT
|
220
|
+
@lifetime_employee_retention = lifetime_employee_retention if lifetime_employee_retention != OMIT
|
221
|
+
if percent_employees_sales_and_marketing != OMIT
|
222
|
+
@percent_employees_sales_and_marketing = percent_employees_sales_and_marketing
|
223
|
+
end
|
224
|
+
@fully_loaded_employee_cost = fully_loaded_employee_cost if fully_loaded_employee_cost != OMIT
|
225
|
+
@annualized_revenue_per_employee = annualized_revenue_per_employee if annualized_revenue_per_employee != OMIT
|
226
|
+
@additional_properties = additional_properties
|
227
|
+
@_field_set = {
|
228
|
+
"quantile": quantile,
|
229
|
+
"revenue": revenue,
|
230
|
+
"rolling_3m_average_revenue": rolling3m_average_revenue,
|
231
|
+
"annualized_revenue": annualized_revenue,
|
232
|
+
"rolling_3m_annualized_revenue": rolling3m_annualized_revenue,
|
233
|
+
"revenue_share_of_top_20_percent": revenue_share_of_top20percent,
|
234
|
+
"revenue_share_of_top_10_count": revenue_share_of_top10count,
|
235
|
+
"average_to_median": average_to_median,
|
236
|
+
"gini_coefficient": gini_coefficient,
|
237
|
+
"lifetime_quick_ratio": lifetime_quick_ratio,
|
238
|
+
"lifetime_gross_retention": lifetime_gross_retention,
|
239
|
+
"lifetime_net_churn": lifetime_net_churn,
|
240
|
+
"cmgr3": cmgr3,
|
241
|
+
"cmgr6": cmgr6,
|
242
|
+
"cmgr12": cmgr12,
|
243
|
+
"yoy": yoy,
|
244
|
+
"operating_margin": operating_margin,
|
245
|
+
"quarterly_operating_margin": quarterly_operating_margin,
|
246
|
+
"gross_margin": gross_margin,
|
247
|
+
"quarterly_gross_margin": quarterly_gross_margin,
|
248
|
+
"magic_number": magic_number,
|
249
|
+
"rule_of_40": rule_of40,
|
250
|
+
"burn_multiple": burn_multiple,
|
251
|
+
"acquisition_spend": acquisition_spend,
|
252
|
+
"total_opex": total_opex,
|
253
|
+
"logo_retention_6m": logo_retention6m,
|
254
|
+
"logo_retention_12m": logo_retention12m,
|
255
|
+
"revenue_retention_6m": revenue_retention6m,
|
256
|
+
"revenue_retention_12m": revenue_retention12m,
|
257
|
+
"ltv_6m": ltv6m,
|
258
|
+
"ltv_12m": ltv12m,
|
259
|
+
"ltv6_cac": ltv6cac,
|
260
|
+
"ltv12_cac": ltv12cac,
|
261
|
+
"gmltv6_cac": gmltv6cac,
|
262
|
+
"gmltv12_cac": gmltv12cac,
|
263
|
+
"lifetime_ltv6_cac": lifetime_ltv6cac,
|
264
|
+
"lifetime_ltv12_cac": lifetime_ltv12cac,
|
265
|
+
"lifetime_gmltv6_cac": lifetime_gmltv6cac,
|
266
|
+
"lifetime_gmltv12_cac": lifetime_gmltv12cac,
|
267
|
+
"cac": cac,
|
268
|
+
"irr": irr,
|
269
|
+
"periods_to_payback": periods_to_payback,
|
270
|
+
"employee_count": employee_count,
|
271
|
+
"cumulative_person_years": cumulative_person_years,
|
272
|
+
"employee_retention_1yr": employee_retention1yr,
|
273
|
+
"employee_retention_2yr": employee_retention2yr,
|
274
|
+
"average_years_of_experience": average_years_of_experience,
|
275
|
+
"lifetime_employee_retention": lifetime_employee_retention,
|
276
|
+
"percent_employees_sales_and_marketing": percent_employees_sales_and_marketing,
|
277
|
+
"fully_loaded_employee_cost": fully_loaded_employee_cost,
|
278
|
+
"annualized_revenue_per_employee": annualized_revenue_per_employee
|
279
|
+
}.reject do |_k, v|
|
280
|
+
v == OMIT
|
281
|
+
end
|
282
|
+
end
|
283
|
+
|
284
|
+
# Deserialize a JSON object to an instance of BenchmarkQuantile
|
285
|
+
#
|
286
|
+
# @param json_object [String]
|
287
|
+
# @return [NewDemoApiClient::BenchmarkQuantile]
|
288
|
+
def self.from_json(json_object:)
|
289
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
290
|
+
parsed_json = JSON.parse(json_object)
|
291
|
+
quantile = parsed_json["quantile"]
|
292
|
+
revenue = parsed_json["revenue"]
|
293
|
+
rolling3m_average_revenue = parsed_json["rolling_3m_average_revenue"]
|
294
|
+
annualized_revenue = parsed_json["annualized_revenue"]
|
295
|
+
rolling3m_annualized_revenue = parsed_json["rolling_3m_annualized_revenue"]
|
296
|
+
revenue_share_of_top20percent = parsed_json["revenue_share_of_top_20_percent"]
|
297
|
+
revenue_share_of_top10count = parsed_json["revenue_share_of_top_10_count"]
|
298
|
+
average_to_median = parsed_json["average_to_median"]
|
299
|
+
gini_coefficient = parsed_json["gini_coefficient"]
|
300
|
+
lifetime_quick_ratio = parsed_json["lifetime_quick_ratio"]
|
301
|
+
lifetime_gross_retention = parsed_json["lifetime_gross_retention"]
|
302
|
+
lifetime_net_churn = parsed_json["lifetime_net_churn"]
|
303
|
+
cmgr3 = parsed_json["cmgr3"]
|
304
|
+
cmgr6 = parsed_json["cmgr6"]
|
305
|
+
cmgr12 = parsed_json["cmgr12"]
|
306
|
+
yoy = parsed_json["yoy"]
|
307
|
+
operating_margin = parsed_json["operating_margin"]
|
308
|
+
quarterly_operating_margin = parsed_json["quarterly_operating_margin"]
|
309
|
+
gross_margin = parsed_json["gross_margin"]
|
310
|
+
quarterly_gross_margin = parsed_json["quarterly_gross_margin"]
|
311
|
+
magic_number = parsed_json["magic_number"]
|
312
|
+
rule_of40 = parsed_json["rule_of_40"]
|
313
|
+
burn_multiple = parsed_json["burn_multiple"]
|
314
|
+
acquisition_spend = parsed_json["acquisition_spend"]
|
315
|
+
total_opex = parsed_json["total_opex"]
|
316
|
+
logo_retention6m = parsed_json["logo_retention_6m"]
|
317
|
+
logo_retention12m = parsed_json["logo_retention_12m"]
|
318
|
+
revenue_retention6m = parsed_json["revenue_retention_6m"]
|
319
|
+
revenue_retention12m = parsed_json["revenue_retention_12m"]
|
320
|
+
ltv6m = parsed_json["ltv_6m"]
|
321
|
+
ltv12m = parsed_json["ltv_12m"]
|
322
|
+
ltv6cac = parsed_json["ltv6_cac"]
|
323
|
+
ltv12cac = parsed_json["ltv12_cac"]
|
324
|
+
gmltv6cac = parsed_json["gmltv6_cac"]
|
325
|
+
gmltv12cac = parsed_json["gmltv12_cac"]
|
326
|
+
lifetime_ltv6cac = parsed_json["lifetime_ltv6_cac"]
|
327
|
+
lifetime_ltv12cac = parsed_json["lifetime_ltv12_cac"]
|
328
|
+
lifetime_gmltv6cac = parsed_json["lifetime_gmltv6_cac"]
|
329
|
+
lifetime_gmltv12cac = parsed_json["lifetime_gmltv12_cac"]
|
330
|
+
cac = parsed_json["cac"]
|
331
|
+
irr = parsed_json["irr"]
|
332
|
+
periods_to_payback = parsed_json["periods_to_payback"]
|
333
|
+
employee_count = parsed_json["employee_count"]
|
334
|
+
cumulative_person_years = parsed_json["cumulative_person_years"]
|
335
|
+
employee_retention1yr = parsed_json["employee_retention_1yr"]
|
336
|
+
employee_retention2yr = parsed_json["employee_retention_2yr"]
|
337
|
+
average_years_of_experience = parsed_json["average_years_of_experience"]
|
338
|
+
lifetime_employee_retention = parsed_json["lifetime_employee_retention"]
|
339
|
+
percent_employees_sales_and_marketing = parsed_json["percent_employees_sales_and_marketing"]
|
340
|
+
fully_loaded_employee_cost = parsed_json["fully_loaded_employee_cost"]
|
341
|
+
annualized_revenue_per_employee = parsed_json["annualized_revenue_per_employee"]
|
342
|
+
new(
|
343
|
+
quantile: quantile,
|
344
|
+
revenue: revenue,
|
345
|
+
rolling3m_average_revenue: rolling3m_average_revenue,
|
346
|
+
annualized_revenue: annualized_revenue,
|
347
|
+
rolling3m_annualized_revenue: rolling3m_annualized_revenue,
|
348
|
+
revenue_share_of_top20percent: revenue_share_of_top20percent,
|
349
|
+
revenue_share_of_top10count: revenue_share_of_top10count,
|
350
|
+
average_to_median: average_to_median,
|
351
|
+
gini_coefficient: gini_coefficient,
|
352
|
+
lifetime_quick_ratio: lifetime_quick_ratio,
|
353
|
+
lifetime_gross_retention: lifetime_gross_retention,
|
354
|
+
lifetime_net_churn: lifetime_net_churn,
|
355
|
+
cmgr3: cmgr3,
|
356
|
+
cmgr6: cmgr6,
|
357
|
+
cmgr12: cmgr12,
|
358
|
+
yoy: yoy,
|
359
|
+
operating_margin: operating_margin,
|
360
|
+
quarterly_operating_margin: quarterly_operating_margin,
|
361
|
+
gross_margin: gross_margin,
|
362
|
+
quarterly_gross_margin: quarterly_gross_margin,
|
363
|
+
magic_number: magic_number,
|
364
|
+
rule_of40: rule_of40,
|
365
|
+
burn_multiple: burn_multiple,
|
366
|
+
acquisition_spend: acquisition_spend,
|
367
|
+
total_opex: total_opex,
|
368
|
+
logo_retention6m: logo_retention6m,
|
369
|
+
logo_retention12m: logo_retention12m,
|
370
|
+
revenue_retention6m: revenue_retention6m,
|
371
|
+
revenue_retention12m: revenue_retention12m,
|
372
|
+
ltv6m: ltv6m,
|
373
|
+
ltv12m: ltv12m,
|
374
|
+
ltv6cac: ltv6cac,
|
375
|
+
ltv12cac: ltv12cac,
|
376
|
+
gmltv6cac: gmltv6cac,
|
377
|
+
gmltv12cac: gmltv12cac,
|
378
|
+
lifetime_ltv6cac: lifetime_ltv6cac,
|
379
|
+
lifetime_ltv12cac: lifetime_ltv12cac,
|
380
|
+
lifetime_gmltv6cac: lifetime_gmltv6cac,
|
381
|
+
lifetime_gmltv12cac: lifetime_gmltv12cac,
|
382
|
+
cac: cac,
|
383
|
+
irr: irr,
|
384
|
+
periods_to_payback: periods_to_payback,
|
385
|
+
employee_count: employee_count,
|
386
|
+
cumulative_person_years: cumulative_person_years,
|
387
|
+
employee_retention1yr: employee_retention1yr,
|
388
|
+
employee_retention2yr: employee_retention2yr,
|
389
|
+
average_years_of_experience: average_years_of_experience,
|
390
|
+
lifetime_employee_retention: lifetime_employee_retention,
|
391
|
+
percent_employees_sales_and_marketing: percent_employees_sales_and_marketing,
|
392
|
+
fully_loaded_employee_cost: fully_loaded_employee_cost,
|
393
|
+
annualized_revenue_per_employee: annualized_revenue_per_employee,
|
394
|
+
additional_properties: struct
|
395
|
+
)
|
396
|
+
end
|
397
|
+
|
398
|
+
# Serialize an instance of BenchmarkQuantile to a JSON object
|
399
|
+
#
|
400
|
+
# @return [String]
|
401
|
+
def to_json(*_args)
|
402
|
+
@_field_set&.to_json
|
403
|
+
end
|
404
|
+
|
405
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
406
|
+
# hash and check each fields type against the current object's property
|
407
|
+
# definitions.
|
408
|
+
#
|
409
|
+
# @param obj [Object]
|
410
|
+
# @return [Void]
|
411
|
+
def self.validate_raw(obj:)
|
412
|
+
obj.quantile.is_a?(Float) != false || raise("Passed value for field obj.quantile is not the expected type, validation failed.")
|
413
|
+
obj.revenue&.is_a?(Float) != false || raise("Passed value for field obj.revenue is not the expected type, validation failed.")
|
414
|
+
obj.rolling3m_average_revenue&.is_a?(Float) != false || raise("Passed value for field obj.rolling3m_average_revenue is not the expected type, validation failed.")
|
415
|
+
obj.annualized_revenue&.is_a?(Float) != false || raise("Passed value for field obj.annualized_revenue is not the expected type, validation failed.")
|
416
|
+
obj.rolling3m_annualized_revenue&.is_a?(Float) != false || raise("Passed value for field obj.rolling3m_annualized_revenue is not the expected type, validation failed.")
|
417
|
+
obj.revenue_share_of_top20percent&.is_a?(Float) != false || raise("Passed value for field obj.revenue_share_of_top20percent is not the expected type, validation failed.")
|
418
|
+
obj.revenue_share_of_top10count&.is_a?(Float) != false || raise("Passed value for field obj.revenue_share_of_top10count is not the expected type, validation failed.")
|
419
|
+
obj.average_to_median&.is_a?(Float) != false || raise("Passed value for field obj.average_to_median is not the expected type, validation failed.")
|
420
|
+
obj.gini_coefficient&.is_a?(Float) != false || raise("Passed value for field obj.gini_coefficient is not the expected type, validation failed.")
|
421
|
+
obj.lifetime_quick_ratio&.is_a?(Float) != false || raise("Passed value for field obj.lifetime_quick_ratio is not the expected type, validation failed.")
|
422
|
+
obj.lifetime_gross_retention&.is_a?(Float) != false || raise("Passed value for field obj.lifetime_gross_retention is not the expected type, validation failed.")
|
423
|
+
obj.lifetime_net_churn&.is_a?(Float) != false || raise("Passed value for field obj.lifetime_net_churn is not the expected type, validation failed.")
|
424
|
+
obj.cmgr3&.is_a?(Float) != false || raise("Passed value for field obj.cmgr3 is not the expected type, validation failed.")
|
425
|
+
obj.cmgr6&.is_a?(Float) != false || raise("Passed value for field obj.cmgr6 is not the expected type, validation failed.")
|
426
|
+
obj.cmgr12&.is_a?(Float) != false || raise("Passed value for field obj.cmgr12 is not the expected type, validation failed.")
|
427
|
+
obj.yoy&.is_a?(Float) != false || raise("Passed value for field obj.yoy is not the expected type, validation failed.")
|
428
|
+
obj.operating_margin&.is_a?(Float) != false || raise("Passed value for field obj.operating_margin is not the expected type, validation failed.")
|
429
|
+
obj.quarterly_operating_margin&.is_a?(Float) != false || raise("Passed value for field obj.quarterly_operating_margin is not the expected type, validation failed.")
|
430
|
+
obj.gross_margin&.is_a?(Float) != false || raise("Passed value for field obj.gross_margin is not the expected type, validation failed.")
|
431
|
+
obj.quarterly_gross_margin&.is_a?(Float) != false || raise("Passed value for field obj.quarterly_gross_margin is not the expected type, validation failed.")
|
432
|
+
obj.magic_number&.is_a?(Float) != false || raise("Passed value for field obj.magic_number is not the expected type, validation failed.")
|
433
|
+
obj.rule_of40&.is_a?(Float) != false || raise("Passed value for field obj.rule_of40 is not the expected type, validation failed.")
|
434
|
+
obj.burn_multiple&.is_a?(Float) != false || raise("Passed value for field obj.burn_multiple is not the expected type, validation failed.")
|
435
|
+
obj.acquisition_spend&.is_a?(Float) != false || raise("Passed value for field obj.acquisition_spend is not the expected type, validation failed.")
|
436
|
+
obj.total_opex&.is_a?(Float) != false || raise("Passed value for field obj.total_opex is not the expected type, validation failed.")
|
437
|
+
obj.logo_retention6m&.is_a?(Float) != false || raise("Passed value for field obj.logo_retention6m is not the expected type, validation failed.")
|
438
|
+
obj.logo_retention12m&.is_a?(Float) != false || raise("Passed value for field obj.logo_retention12m is not the expected type, validation failed.")
|
439
|
+
obj.revenue_retention6m&.is_a?(Float) != false || raise("Passed value for field obj.revenue_retention6m is not the expected type, validation failed.")
|
440
|
+
obj.revenue_retention12m&.is_a?(Float) != false || raise("Passed value for field obj.revenue_retention12m is not the expected type, validation failed.")
|
441
|
+
obj.ltv6m&.is_a?(Float) != false || raise("Passed value for field obj.ltv6m is not the expected type, validation failed.")
|
442
|
+
obj.ltv12m&.is_a?(Float) != false || raise("Passed value for field obj.ltv12m is not the expected type, validation failed.")
|
443
|
+
obj.ltv6cac&.is_a?(Float) != false || raise("Passed value for field obj.ltv6cac is not the expected type, validation failed.")
|
444
|
+
obj.ltv12cac&.is_a?(Float) != false || raise("Passed value for field obj.ltv12cac is not the expected type, validation failed.")
|
445
|
+
obj.gmltv6cac&.is_a?(Float) != false || raise("Passed value for field obj.gmltv6cac is not the expected type, validation failed.")
|
446
|
+
obj.gmltv12cac&.is_a?(Float) != false || raise("Passed value for field obj.gmltv12cac is not the expected type, validation failed.")
|
447
|
+
obj.lifetime_ltv6cac&.is_a?(Float) != false || raise("Passed value for field obj.lifetime_ltv6cac is not the expected type, validation failed.")
|
448
|
+
obj.lifetime_ltv12cac&.is_a?(Float) != false || raise("Passed value for field obj.lifetime_ltv12cac is not the expected type, validation failed.")
|
449
|
+
obj.lifetime_gmltv6cac&.is_a?(Float) != false || raise("Passed value for field obj.lifetime_gmltv6cac is not the expected type, validation failed.")
|
450
|
+
obj.lifetime_gmltv12cac&.is_a?(Float) != false || raise("Passed value for field obj.lifetime_gmltv12cac is not the expected type, validation failed.")
|
451
|
+
obj.cac&.is_a?(Float) != false || raise("Passed value for field obj.cac is not the expected type, validation failed.")
|
452
|
+
obj.irr&.is_a?(Float) != false || raise("Passed value for field obj.irr is not the expected type, validation failed.")
|
453
|
+
obj.periods_to_payback&.is_a?(Float) != false || raise("Passed value for field obj.periods_to_payback is not the expected type, validation failed.")
|
454
|
+
obj.employee_count&.is_a?(Float) != false || raise("Passed value for field obj.employee_count is not the expected type, validation failed.")
|
455
|
+
obj.cumulative_person_years&.is_a?(Float) != false || raise("Passed value for field obj.cumulative_person_years is not the expected type, validation failed.")
|
456
|
+
obj.employee_retention1yr&.is_a?(Float) != false || raise("Passed value for field obj.employee_retention1yr is not the expected type, validation failed.")
|
457
|
+
obj.employee_retention2yr&.is_a?(Float) != false || raise("Passed value for field obj.employee_retention2yr is not the expected type, validation failed.")
|
458
|
+
obj.average_years_of_experience&.is_a?(Float) != false || raise("Passed value for field obj.average_years_of_experience is not the expected type, validation failed.")
|
459
|
+
obj.lifetime_employee_retention&.is_a?(Float) != false || raise("Passed value for field obj.lifetime_employee_retention is not the expected type, validation failed.")
|
460
|
+
obj.percent_employees_sales_and_marketing&.is_a?(Float) != false || raise("Passed value for field obj.percent_employees_sales_and_marketing is not the expected type, validation failed.")
|
461
|
+
obj.fully_loaded_employee_cost&.is_a?(Float) != false || raise("Passed value for field obj.fully_loaded_employee_cost is not the expected type, validation failed.")
|
462
|
+
obj.annualized_revenue_per_employee&.is_a?(Float) != false || raise("Passed value for field obj.annualized_revenue_per_employee is not the expected type, validation failed.")
|
463
|
+
end
|
464
|
+
end
|
465
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "category_metadata"
|
4
|
+
require "ostruct"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module NewDemoApiClient
|
8
|
+
class CategoriesMetadataResponse
|
9
|
+
# @return [Array<NewDemoApiClient::CategoryMetadata>] A list of major benchmark categories.
|
10
|
+
attr_reader :major
|
11
|
+
# @return [Array<NewDemoApiClient::CategoryMetadata>] A list of minor benchmark categories.
|
12
|
+
attr_reader :minor
|
13
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
14
|
+
attr_reader :additional_properties
|
15
|
+
# @return [Object]
|
16
|
+
attr_reader :_field_set
|
17
|
+
protected :_field_set
|
18
|
+
|
19
|
+
OMIT = Object.new
|
20
|
+
|
21
|
+
# @param major [Array<NewDemoApiClient::CategoryMetadata>] A list of major benchmark categories.
|
22
|
+
# @param minor [Array<NewDemoApiClient::CategoryMetadata>] A list of minor benchmark categories.
|
23
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
24
|
+
# @return [NewDemoApiClient::CategoriesMetadataResponse]
|
25
|
+
def initialize(major:, minor:, additional_properties: nil)
|
26
|
+
@major = major
|
27
|
+
@minor = minor
|
28
|
+
@additional_properties = additional_properties
|
29
|
+
@_field_set = { "major": major, "minor": minor }
|
30
|
+
end
|
31
|
+
|
32
|
+
# Deserialize a JSON object to an instance of CategoriesMetadataResponse
|
33
|
+
#
|
34
|
+
# @param json_object [String]
|
35
|
+
# @return [NewDemoApiClient::CategoriesMetadataResponse]
|
36
|
+
def self.from_json(json_object:)
|
37
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
38
|
+
parsed_json = JSON.parse(json_object)
|
39
|
+
major = parsed_json["major"]&.map do |item|
|
40
|
+
item = item.to_json
|
41
|
+
NewDemoApiClient::CategoryMetadata.from_json(json_object: item)
|
42
|
+
end
|
43
|
+
minor = parsed_json["minor"]&.map do |item|
|
44
|
+
item = item.to_json
|
45
|
+
NewDemoApiClient::CategoryMetadata.from_json(json_object: item)
|
46
|
+
end
|
47
|
+
new(
|
48
|
+
major: major,
|
49
|
+
minor: minor,
|
50
|
+
additional_properties: struct
|
51
|
+
)
|
52
|
+
end
|
53
|
+
|
54
|
+
# Serialize an instance of CategoriesMetadataResponse to a JSON object
|
55
|
+
#
|
56
|
+
# @return [String]
|
57
|
+
def to_json(*_args)
|
58
|
+
@_field_set&.to_json
|
59
|
+
end
|
60
|
+
|
61
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
62
|
+
# hash and check each fields type against the current object's property
|
63
|
+
# definitions.
|
64
|
+
#
|
65
|
+
# @param obj [Object]
|
66
|
+
# @return [Void]
|
67
|
+
def self.validate_raw(obj:)
|
68
|
+
obj.major.is_a?(Array) != false || raise("Passed value for field obj.major is not the expected type, validation failed.")
|
69
|
+
obj.minor.is_a?(Array) != false || raise("Passed value for field obj.minor is not the expected type, validation failed.")
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|