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,1031 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../requests"
|
4
|
+
require_relative "../types/available_categories_response"
|
5
|
+
require "json"
|
6
|
+
require_relative "../types/benchmark_quantile"
|
7
|
+
require_relative "../types/scale_models_response"
|
8
|
+
require_relative "../types/available_models_response"
|
9
|
+
require_relative "../types/tradeoff_models_response"
|
10
|
+
require_relative "../types/user_type"
|
11
|
+
require_relative "../types/deal_combined_metrics_response"
|
12
|
+
require_relative "../types/columns_metadata_response"
|
13
|
+
require_relative "../types/models_metadata_response"
|
14
|
+
require_relative "../types/categories_metadata_response"
|
15
|
+
require "async"
|
16
|
+
|
17
|
+
module NewDemoApiClient
|
18
|
+
class BenchmarkClient
|
19
|
+
# @return [NewDemoApiClient::RequestClient]
|
20
|
+
attr_reader :request_client
|
21
|
+
|
22
|
+
# @param request_client [NewDemoApiClient::RequestClient]
|
23
|
+
# @return [NewDemoApiClient::BenchmarkClient]
|
24
|
+
def initialize(request_client:)
|
25
|
+
@request_client = request_client
|
26
|
+
end
|
27
|
+
|
28
|
+
# Get the list of categories with benchmark models available for the account.
|
29
|
+
#
|
30
|
+
# @param group_id [Integer]
|
31
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
32
|
+
# @return [NewDemoApiClient::AVAILABLE_CATEGORIES_RESPONSE]
|
33
|
+
# @example
|
34
|
+
# api = NewDemoApiClient::Client.new(
|
35
|
+
# base_url: "https://api.example.com",
|
36
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
37
|
+
# token: "YOUR_AUTH_TOKEN"
|
38
|
+
# )
|
39
|
+
# api.benchmark.get_available_benchmark_categories(group_id: 1)
|
40
|
+
def get_available_benchmark_categories(group_id:, request_options: nil)
|
41
|
+
response = @request_client.conn.get do |req|
|
42
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
43
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
44
|
+
req.headers = {
|
45
|
+
**(req.headers || {}),
|
46
|
+
**@request_client.get_headers,
|
47
|
+
**(request_options&.additional_headers || {})
|
48
|
+
}.compact
|
49
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
50
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
51
|
+
end
|
52
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
53
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
54
|
+
end
|
55
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/data/benchmark/available-benchmark-categories"
|
56
|
+
end
|
57
|
+
JSON.parse(response.body)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Get the benchmark quantiles for a given category at a specified revenue scale.
|
61
|
+
# If columns are specified, only those columns will be returned.
|
62
|
+
#
|
63
|
+
# @param group_id [Integer]
|
64
|
+
# @param category [String]
|
65
|
+
# @param revenue [Float] Annualized revenue scale for which to obtain benchmarks
|
66
|
+
# @param column [String]
|
67
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
68
|
+
# @return [Array<NewDemoApiClient::BenchmarkQuantile>]
|
69
|
+
# @example
|
70
|
+
# api = NewDemoApiClient::Client.new(
|
71
|
+
# base_url: "https://api.example.com",
|
72
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
73
|
+
# token: "YOUR_AUTH_TOKEN"
|
74
|
+
# )
|
75
|
+
# api.benchmark.get_quantiles(
|
76
|
+
# group_id: 1,
|
77
|
+
# category: "category",
|
78
|
+
# revenue: 1.1
|
79
|
+
# )
|
80
|
+
def get_quantiles(group_id:, category:, revenue:, column: nil, request_options: nil)
|
81
|
+
response = @request_client.conn.get do |req|
|
82
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
83
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
84
|
+
req.headers = {
|
85
|
+
**(req.headers || {}),
|
86
|
+
**@request_client.get_headers,
|
87
|
+
**(request_options&.additional_headers || {})
|
88
|
+
}.compact
|
89
|
+
req.params = {
|
90
|
+
**(request_options&.additional_query_parameters || {}),
|
91
|
+
"revenue": revenue,
|
92
|
+
"column": column
|
93
|
+
}.compact
|
94
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
95
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
96
|
+
end
|
97
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/data/benchmark/quantiles/#{category}"
|
98
|
+
end
|
99
|
+
parsed_json = JSON.parse(response.body)
|
100
|
+
parsed_json&.map do |item|
|
101
|
+
item = item.to_json
|
102
|
+
NewDemoApiClient::BenchmarkQuantile.from_json(json_object: item)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
# Get the scaling models for a given category. Multiple models can be specified.
|
107
|
+
#
|
108
|
+
# @param group_id [Integer]
|
109
|
+
# @param category [String]
|
110
|
+
# @param model [String]
|
111
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
112
|
+
# @return [NewDemoApiClient::SCALE_MODELS_RESPONSE]
|
113
|
+
# @example
|
114
|
+
# api = NewDemoApiClient::Client.new(
|
115
|
+
# base_url: "https://api.example.com",
|
116
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
117
|
+
# token: "YOUR_AUTH_TOKEN"
|
118
|
+
# )
|
119
|
+
# api.benchmark.get_scaling(group_id: 1, category: "category")
|
120
|
+
def get_scaling(group_id:, category:, model: nil, request_options: nil)
|
121
|
+
response = @request_client.conn.get do |req|
|
122
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
123
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
124
|
+
req.headers = {
|
125
|
+
**(req.headers || {}),
|
126
|
+
**@request_client.get_headers,
|
127
|
+
**(request_options&.additional_headers || {})
|
128
|
+
}.compact
|
129
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "model": model }.compact
|
130
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
131
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
132
|
+
end
|
133
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/data/benchmark/scaling/#{category}"
|
134
|
+
end
|
135
|
+
parsed_json = JSON.parse(response.body)
|
136
|
+
parsed_json&.transform_values do |value|
|
137
|
+
value = value.to_json
|
138
|
+
NewDemoApiClient::ScaleModel.from_json(json_object: value)
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
# Get the list of available scaling and tradeoff models for the account.
|
143
|
+
#
|
144
|
+
# @param group_id [Integer]
|
145
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
146
|
+
# @return [NewDemoApiClient::AvailableModelsResponse]
|
147
|
+
# @example
|
148
|
+
# api = NewDemoApiClient::Client.new(
|
149
|
+
# base_url: "https://api.example.com",
|
150
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
151
|
+
# token: "YOUR_AUTH_TOKEN"
|
152
|
+
# )
|
153
|
+
# api.benchmark.get_available_models(group_id: 1)
|
154
|
+
def get_available_models(group_id:, request_options: nil)
|
155
|
+
response = @request_client.conn.get do |req|
|
156
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
157
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
158
|
+
req.headers = {
|
159
|
+
**(req.headers || {}),
|
160
|
+
**@request_client.get_headers,
|
161
|
+
**(request_options&.additional_headers || {})
|
162
|
+
}.compact
|
163
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
164
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
165
|
+
end
|
166
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
167
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
168
|
+
end
|
169
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/data/benchmark/available-models"
|
170
|
+
end
|
171
|
+
NewDemoApiClient::AvailableModelsResponse.from_json(json_object: response.body)
|
172
|
+
end
|
173
|
+
|
174
|
+
# Get the tradeoff at scale model for a given category.
|
175
|
+
#
|
176
|
+
# @param group_id [Integer]
|
177
|
+
# @param category [String]
|
178
|
+
# @param revenue [Float] Annualized revenue scale for which to obtain benchmarks
|
179
|
+
# @param model [String]
|
180
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
181
|
+
# @return [NewDemoApiClient::TRADEOFF_MODELS_RESPONSE]
|
182
|
+
# @example
|
183
|
+
# api = NewDemoApiClient::Client.new(
|
184
|
+
# base_url: "https://api.example.com",
|
185
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
186
|
+
# token: "YOUR_AUTH_TOKEN"
|
187
|
+
# )
|
188
|
+
# api.benchmark.get_tradeoff_at_scale(
|
189
|
+
# group_id: 1,
|
190
|
+
# category: "category",
|
191
|
+
# revenue: 1.1
|
192
|
+
# )
|
193
|
+
def get_tradeoff_at_scale(group_id:, category:, revenue:, model: nil, request_options: nil)
|
194
|
+
response = @request_client.conn.get do |req|
|
195
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
196
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
197
|
+
req.headers = {
|
198
|
+
**(req.headers || {}),
|
199
|
+
**@request_client.get_headers,
|
200
|
+
**(request_options&.additional_headers || {})
|
201
|
+
}.compact
|
202
|
+
req.params = {
|
203
|
+
**(request_options&.additional_query_parameters || {}),
|
204
|
+
"revenue": revenue,
|
205
|
+
"model": model
|
206
|
+
}.compact
|
207
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
208
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
209
|
+
end
|
210
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/data/benchmark/tradeoff-at-scale/#{category}"
|
211
|
+
end
|
212
|
+
parsed_json = JSON.parse(response.body)
|
213
|
+
parsed_json&.transform_values do |value|
|
214
|
+
value = value.to_json
|
215
|
+
NewDemoApiClient::TradeoffModel.from_json(json_object: value)
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
# Get the categories with benchmark models available for the company associated
|
220
|
+
# with the deal.
|
221
|
+
#
|
222
|
+
# @param group_id [Integer]
|
223
|
+
# @param deal_id [Integer]
|
224
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
225
|
+
# @return [NewDemoApiClient::AVAILABLE_CATEGORIES_RESPONSE]
|
226
|
+
# @example
|
227
|
+
# api = NewDemoApiClient::Client.new(
|
228
|
+
# base_url: "https://api.example.com",
|
229
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
230
|
+
# token: "YOUR_AUTH_TOKEN"
|
231
|
+
# )
|
232
|
+
# api.benchmark.get_available_company_categories(group_id: 1, deal_id: 1)
|
233
|
+
def get_available_company_categories(group_id:, deal_id:, request_options: nil)
|
234
|
+
response = @request_client.conn.get do |req|
|
235
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
236
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
237
|
+
req.headers = {
|
238
|
+
**(req.headers || {}),
|
239
|
+
**@request_client.get_headers,
|
240
|
+
**(request_options&.additional_headers || {})
|
241
|
+
}.compact
|
242
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
243
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
244
|
+
end
|
245
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
246
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
247
|
+
end
|
248
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/benchmark/available-categories"
|
249
|
+
end
|
250
|
+
JSON.parse(response.body)
|
251
|
+
end
|
252
|
+
|
253
|
+
# Get the combined time series data for the deal.
|
254
|
+
#
|
255
|
+
# @param user_type [NewDemoApiClient::UserType]
|
256
|
+
# @param group_id [Integer]
|
257
|
+
# @param deal_id [Integer]
|
258
|
+
# @param column [String]
|
259
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
260
|
+
# @return [Array<NewDemoApiClient::DealCombinedMetricsResponse>]
|
261
|
+
# @example
|
262
|
+
# api = NewDemoApiClient::Client.new(
|
263
|
+
# base_url: "https://api.example.com",
|
264
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
265
|
+
# token: "YOUR_AUTH_TOKEN"
|
266
|
+
# )
|
267
|
+
# api.benchmark.get_combined_time_series(
|
268
|
+
# user_type: BUSINESS,
|
269
|
+
# group_id: 1,
|
270
|
+
# deal_id: 1
|
271
|
+
# )
|
272
|
+
def get_combined_time_series(user_type:, group_id:, deal_id:, column: nil, request_options: nil)
|
273
|
+
response = @request_client.conn.get do |req|
|
274
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
275
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
276
|
+
req.headers = {
|
277
|
+
**(req.headers || {}),
|
278
|
+
**@request_client.get_headers,
|
279
|
+
**(request_options&.additional_headers || {})
|
280
|
+
}.compact
|
281
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "column": column }.compact
|
282
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
283
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
284
|
+
end
|
285
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{user_type}/deal/#{group_id}/data/benchmark/combined-time-series/#{deal_id}"
|
286
|
+
end
|
287
|
+
parsed_json = JSON.parse(response.body)
|
288
|
+
parsed_json&.map do |item|
|
289
|
+
item = item.to_json
|
290
|
+
NewDemoApiClient::DealCombinedMetricsResponse.from_json(json_object: item)
|
291
|
+
end
|
292
|
+
end
|
293
|
+
|
294
|
+
# Get the time series data endpoint for the deal.
|
295
|
+
#
|
296
|
+
# @param user_type [NewDemoApiClient::UserType]
|
297
|
+
# @param group_id [Integer]
|
298
|
+
# @param deal_id [Integer]
|
299
|
+
# @param column [String]
|
300
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
301
|
+
# @return [NewDemoApiClient::DealCombinedMetricsResponse]
|
302
|
+
# @example
|
303
|
+
# api = NewDemoApiClient::Client.new(
|
304
|
+
# base_url: "https://api.example.com",
|
305
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
306
|
+
# token: "YOUR_AUTH_TOKEN"
|
307
|
+
# )
|
308
|
+
# api.benchmark.get_time_series_endpoint(
|
309
|
+
# user_type: BUSINESS,
|
310
|
+
# group_id: 1,
|
311
|
+
# deal_id: 1
|
312
|
+
# )
|
313
|
+
def get_time_series_endpoint(user_type:, group_id:, deal_id:, column: nil, request_options: nil)
|
314
|
+
response = @request_client.conn.get do |req|
|
315
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
316
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
317
|
+
req.headers = {
|
318
|
+
**(req.headers || {}),
|
319
|
+
**@request_client.get_headers,
|
320
|
+
**(request_options&.additional_headers || {})
|
321
|
+
}.compact
|
322
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "column": column }.compact
|
323
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
324
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
325
|
+
end
|
326
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{user_type}/deal/#{group_id}/data/benchmark/time-series-endpoint/#{deal_id}"
|
327
|
+
end
|
328
|
+
NewDemoApiClient::DealCombinedMetricsResponse.from_json(json_object: response.body)
|
329
|
+
end
|
330
|
+
|
331
|
+
# Get the benchmark quantiles for a given category.
|
332
|
+
#
|
333
|
+
# @param group_id [Integer]
|
334
|
+
# @param deal_id [Integer]
|
335
|
+
# @param category [String]
|
336
|
+
# @param column [String]
|
337
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
338
|
+
# @return [Array<NewDemoApiClient::BenchmarkQuantile>]
|
339
|
+
# @example
|
340
|
+
# api = NewDemoApiClient::Client.new(
|
341
|
+
# base_url: "https://api.example.com",
|
342
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
343
|
+
# token: "YOUR_AUTH_TOKEN"
|
344
|
+
# )
|
345
|
+
# api.benchmark.get_deal_benchmark_quantiles(
|
346
|
+
# group_id: 1,
|
347
|
+
# deal_id: 1,
|
348
|
+
# category: "category"
|
349
|
+
# )
|
350
|
+
def get_deal_benchmark_quantiles(group_id:, deal_id:, category:, column: nil, request_options: nil)
|
351
|
+
response = @request_client.conn.get do |req|
|
352
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
353
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
354
|
+
req.headers = {
|
355
|
+
**(req.headers || {}),
|
356
|
+
**@request_client.get_headers,
|
357
|
+
**(request_options&.additional_headers || {})
|
358
|
+
}.compact
|
359
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "column": column }.compact
|
360
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
361
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
362
|
+
end
|
363
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/benchmark/quantiles/#{category}"
|
364
|
+
end
|
365
|
+
parsed_json = JSON.parse(response.body)
|
366
|
+
parsed_json&.map do |item|
|
367
|
+
item = item.to_json
|
368
|
+
NewDemoApiClient::BenchmarkQuantile.from_json(json_object: item)
|
369
|
+
end
|
370
|
+
end
|
371
|
+
|
372
|
+
# Get the tradeoff models for a given category.
|
373
|
+
#
|
374
|
+
# @param group_id [Integer]
|
375
|
+
# @param deal_id [Integer]
|
376
|
+
# @param category [String]
|
377
|
+
# @param model [String]
|
378
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
379
|
+
# @return [NewDemoApiClient::TRADEOFF_MODELS_RESPONSE]
|
380
|
+
# @example
|
381
|
+
# api = NewDemoApiClient::Client.new(
|
382
|
+
# base_url: "https://api.example.com",
|
383
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
384
|
+
# token: "YOUR_AUTH_TOKEN"
|
385
|
+
# )
|
386
|
+
# api.benchmark.get_deal_benchmark_tradeoff_at_scale(
|
387
|
+
# group_id: 1,
|
388
|
+
# deal_id: 1,
|
389
|
+
# category: "category"
|
390
|
+
# )
|
391
|
+
def get_deal_benchmark_tradeoff_at_scale(group_id:, deal_id:, category:, model: nil, request_options: nil)
|
392
|
+
response = @request_client.conn.get do |req|
|
393
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
394
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
395
|
+
req.headers = {
|
396
|
+
**(req.headers || {}),
|
397
|
+
**@request_client.get_headers,
|
398
|
+
**(request_options&.additional_headers || {})
|
399
|
+
}.compact
|
400
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "model": model }.compact
|
401
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
402
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
403
|
+
end
|
404
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/benchmark/tradeoff-at-scale/#{category}"
|
405
|
+
end
|
406
|
+
parsed_json = JSON.parse(response.body)
|
407
|
+
parsed_json&.transform_values do |value|
|
408
|
+
value = value.to_json
|
409
|
+
NewDemoApiClient::TradeoffModel.from_json(json_object: value)
|
410
|
+
end
|
411
|
+
end
|
412
|
+
|
413
|
+
# Get the columns metadata.
|
414
|
+
#
|
415
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
416
|
+
# @return [NewDemoApiClient::ColumnsMetadataResponse]
|
417
|
+
# @example
|
418
|
+
# api = NewDemoApiClient::Client.new(
|
419
|
+
# base_url: "https://api.example.com",
|
420
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
421
|
+
# token: "YOUR_AUTH_TOKEN"
|
422
|
+
# )
|
423
|
+
# api.benchmark.get_columns_metadata
|
424
|
+
def get_columns_metadata(request_options: nil)
|
425
|
+
response = @request_client.conn.get do |req|
|
426
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
427
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
428
|
+
req.headers = {
|
429
|
+
**(req.headers || {}),
|
430
|
+
**@request_client.get_headers,
|
431
|
+
**(request_options&.additional_headers || {})
|
432
|
+
}.compact
|
433
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
434
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
435
|
+
end
|
436
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
437
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
438
|
+
end
|
439
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/benchmark/metadata/columns"
|
440
|
+
end
|
441
|
+
NewDemoApiClient::ColumnsMetadataResponse.from_json(json_object: response.body)
|
442
|
+
end
|
443
|
+
|
444
|
+
# Get the models metadata.
|
445
|
+
#
|
446
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
447
|
+
# @return [Array<NewDemoApiClient::ModelsMetadataResponse>]
|
448
|
+
# @example
|
449
|
+
# api = NewDemoApiClient::Client.new(
|
450
|
+
# base_url: "https://api.example.com",
|
451
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
452
|
+
# token: "YOUR_AUTH_TOKEN"
|
453
|
+
# )
|
454
|
+
# api.benchmark.get_models_metadata
|
455
|
+
def get_models_metadata(request_options: nil)
|
456
|
+
response = @request_client.conn.get do |req|
|
457
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
458
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
459
|
+
req.headers = {
|
460
|
+
**(req.headers || {}),
|
461
|
+
**@request_client.get_headers,
|
462
|
+
**(request_options&.additional_headers || {})
|
463
|
+
}.compact
|
464
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
465
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
466
|
+
end
|
467
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
468
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
469
|
+
end
|
470
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/benchmark/metadata/models"
|
471
|
+
end
|
472
|
+
parsed_json = JSON.parse(response.body)
|
473
|
+
parsed_json&.map do |item|
|
474
|
+
item = item.to_json
|
475
|
+
NewDemoApiClient::ModelsMetadataResponse.from_json(json_object: item)
|
476
|
+
end
|
477
|
+
end
|
478
|
+
|
479
|
+
# Get the categories metadata.
|
480
|
+
#
|
481
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
482
|
+
# @return [NewDemoApiClient::CategoriesMetadataResponse]
|
483
|
+
# @example
|
484
|
+
# api = NewDemoApiClient::Client.new(
|
485
|
+
# base_url: "https://api.example.com",
|
486
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
487
|
+
# token: "YOUR_AUTH_TOKEN"
|
488
|
+
# )
|
489
|
+
# api.benchmark.get_categories_metadata
|
490
|
+
def get_categories_metadata(request_options: nil)
|
491
|
+
response = @request_client.conn.get do |req|
|
492
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
493
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
494
|
+
req.headers = {
|
495
|
+
**(req.headers || {}),
|
496
|
+
**@request_client.get_headers,
|
497
|
+
**(request_options&.additional_headers || {})
|
498
|
+
}.compact
|
499
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
500
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
501
|
+
end
|
502
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
503
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
504
|
+
end
|
505
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/benchmark/metadata/categories"
|
506
|
+
end
|
507
|
+
NewDemoApiClient::CategoriesMetadataResponse.from_json(json_object: response.body)
|
508
|
+
end
|
509
|
+
end
|
510
|
+
|
511
|
+
class AsyncBenchmarkClient
|
512
|
+
# @return [NewDemoApiClient::AsyncRequestClient]
|
513
|
+
attr_reader :request_client
|
514
|
+
|
515
|
+
# @param request_client [NewDemoApiClient::AsyncRequestClient]
|
516
|
+
# @return [NewDemoApiClient::AsyncBenchmarkClient]
|
517
|
+
def initialize(request_client:)
|
518
|
+
@request_client = request_client
|
519
|
+
end
|
520
|
+
|
521
|
+
# Get the list of categories with benchmark models available for the account.
|
522
|
+
#
|
523
|
+
# @param group_id [Integer]
|
524
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
525
|
+
# @return [NewDemoApiClient::AVAILABLE_CATEGORIES_RESPONSE]
|
526
|
+
# @example
|
527
|
+
# api = NewDemoApiClient::Client.new(
|
528
|
+
# base_url: "https://api.example.com",
|
529
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
530
|
+
# token: "YOUR_AUTH_TOKEN"
|
531
|
+
# )
|
532
|
+
# api.benchmark.get_available_benchmark_categories(group_id: 1)
|
533
|
+
def get_available_benchmark_categories(group_id:, request_options: nil)
|
534
|
+
Async do
|
535
|
+
response = @request_client.conn.get do |req|
|
536
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
537
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
538
|
+
req.headers = {
|
539
|
+
**(req.headers || {}),
|
540
|
+
**@request_client.get_headers,
|
541
|
+
**(request_options&.additional_headers || {})
|
542
|
+
}.compact
|
543
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
544
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
545
|
+
end
|
546
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
547
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
548
|
+
end
|
549
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/data/benchmark/available-benchmark-categories"
|
550
|
+
end
|
551
|
+
parsed_json = JSON.parse(response.body)
|
552
|
+
parsed_json
|
553
|
+
end
|
554
|
+
end
|
555
|
+
|
556
|
+
# Get the benchmark quantiles for a given category at a specified revenue scale.
|
557
|
+
# If columns are specified, only those columns will be returned.
|
558
|
+
#
|
559
|
+
# @param group_id [Integer]
|
560
|
+
# @param category [String]
|
561
|
+
# @param revenue [Float] Annualized revenue scale for which to obtain benchmarks
|
562
|
+
# @param column [String]
|
563
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
564
|
+
# @return [Array<NewDemoApiClient::BenchmarkQuantile>]
|
565
|
+
# @example
|
566
|
+
# api = NewDemoApiClient::Client.new(
|
567
|
+
# base_url: "https://api.example.com",
|
568
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
569
|
+
# token: "YOUR_AUTH_TOKEN"
|
570
|
+
# )
|
571
|
+
# api.benchmark.get_quantiles(
|
572
|
+
# group_id: 1,
|
573
|
+
# category: "category",
|
574
|
+
# revenue: 1.1
|
575
|
+
# )
|
576
|
+
def get_quantiles(group_id:, category:, revenue:, column: nil, request_options: nil)
|
577
|
+
Async do
|
578
|
+
response = @request_client.conn.get do |req|
|
579
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
580
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
581
|
+
req.headers = {
|
582
|
+
**(req.headers || {}),
|
583
|
+
**@request_client.get_headers,
|
584
|
+
**(request_options&.additional_headers || {})
|
585
|
+
}.compact
|
586
|
+
req.params = {
|
587
|
+
**(request_options&.additional_query_parameters || {}),
|
588
|
+
"revenue": revenue,
|
589
|
+
"column": column
|
590
|
+
}.compact
|
591
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
592
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
593
|
+
end
|
594
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/data/benchmark/quantiles/#{category}"
|
595
|
+
end
|
596
|
+
parsed_json = JSON.parse(response.body)
|
597
|
+
parsed_json&.map do |item|
|
598
|
+
item = item.to_json
|
599
|
+
NewDemoApiClient::BenchmarkQuantile.from_json(json_object: item)
|
600
|
+
end
|
601
|
+
end
|
602
|
+
end
|
603
|
+
|
604
|
+
# Get the scaling models for a given category. Multiple models can be specified.
|
605
|
+
#
|
606
|
+
# @param group_id [Integer]
|
607
|
+
# @param category [String]
|
608
|
+
# @param model [String]
|
609
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
610
|
+
# @return [NewDemoApiClient::SCALE_MODELS_RESPONSE]
|
611
|
+
# @example
|
612
|
+
# api = NewDemoApiClient::Client.new(
|
613
|
+
# base_url: "https://api.example.com",
|
614
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
615
|
+
# token: "YOUR_AUTH_TOKEN"
|
616
|
+
# )
|
617
|
+
# api.benchmark.get_scaling(group_id: 1, category: "category")
|
618
|
+
def get_scaling(group_id:, category:, model: nil, request_options: nil)
|
619
|
+
Async do
|
620
|
+
response = @request_client.conn.get do |req|
|
621
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
622
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
623
|
+
req.headers = {
|
624
|
+
**(req.headers || {}),
|
625
|
+
**@request_client.get_headers,
|
626
|
+
**(request_options&.additional_headers || {})
|
627
|
+
}.compact
|
628
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "model": model }.compact
|
629
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
630
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
631
|
+
end
|
632
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/data/benchmark/scaling/#{category}"
|
633
|
+
end
|
634
|
+
parsed_json = JSON.parse(response.body)
|
635
|
+
parsed_json&.transform_values do |value|
|
636
|
+
value = value.to_json
|
637
|
+
NewDemoApiClient::ScaleModel.from_json(json_object: value)
|
638
|
+
end
|
639
|
+
end
|
640
|
+
end
|
641
|
+
|
642
|
+
# Get the list of available scaling and tradeoff models for the account.
|
643
|
+
#
|
644
|
+
# @param group_id [Integer]
|
645
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
646
|
+
# @return [NewDemoApiClient::AvailableModelsResponse]
|
647
|
+
# @example
|
648
|
+
# api = NewDemoApiClient::Client.new(
|
649
|
+
# base_url: "https://api.example.com",
|
650
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
651
|
+
# token: "YOUR_AUTH_TOKEN"
|
652
|
+
# )
|
653
|
+
# api.benchmark.get_available_models(group_id: 1)
|
654
|
+
def get_available_models(group_id:, request_options: nil)
|
655
|
+
Async do
|
656
|
+
response = @request_client.conn.get do |req|
|
657
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
658
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
659
|
+
req.headers = {
|
660
|
+
**(req.headers || {}),
|
661
|
+
**@request_client.get_headers,
|
662
|
+
**(request_options&.additional_headers || {})
|
663
|
+
}.compact
|
664
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
665
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
666
|
+
end
|
667
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
668
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
669
|
+
end
|
670
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/data/benchmark/available-models"
|
671
|
+
end
|
672
|
+
NewDemoApiClient::AvailableModelsResponse.from_json(json_object: response.body)
|
673
|
+
end
|
674
|
+
end
|
675
|
+
|
676
|
+
# Get the tradeoff at scale model for a given category.
|
677
|
+
#
|
678
|
+
# @param group_id [Integer]
|
679
|
+
# @param category [String]
|
680
|
+
# @param revenue [Float] Annualized revenue scale for which to obtain benchmarks
|
681
|
+
# @param model [String]
|
682
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
683
|
+
# @return [NewDemoApiClient::TRADEOFF_MODELS_RESPONSE]
|
684
|
+
# @example
|
685
|
+
# api = NewDemoApiClient::Client.new(
|
686
|
+
# base_url: "https://api.example.com",
|
687
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
688
|
+
# token: "YOUR_AUTH_TOKEN"
|
689
|
+
# )
|
690
|
+
# api.benchmark.get_tradeoff_at_scale(
|
691
|
+
# group_id: 1,
|
692
|
+
# category: "category",
|
693
|
+
# revenue: 1.1
|
694
|
+
# )
|
695
|
+
def get_tradeoff_at_scale(group_id:, category:, revenue:, model: nil, request_options: nil)
|
696
|
+
Async do
|
697
|
+
response = @request_client.conn.get do |req|
|
698
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
699
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
700
|
+
req.headers = {
|
701
|
+
**(req.headers || {}),
|
702
|
+
**@request_client.get_headers,
|
703
|
+
**(request_options&.additional_headers || {})
|
704
|
+
}.compact
|
705
|
+
req.params = {
|
706
|
+
**(request_options&.additional_query_parameters || {}),
|
707
|
+
"revenue": revenue,
|
708
|
+
"model": model
|
709
|
+
}.compact
|
710
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
711
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
712
|
+
end
|
713
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/data/benchmark/tradeoff-at-scale/#{category}"
|
714
|
+
end
|
715
|
+
parsed_json = JSON.parse(response.body)
|
716
|
+
parsed_json&.transform_values do |value|
|
717
|
+
value = value.to_json
|
718
|
+
NewDemoApiClient::TradeoffModel.from_json(json_object: value)
|
719
|
+
end
|
720
|
+
end
|
721
|
+
end
|
722
|
+
|
723
|
+
# Get the categories with benchmark models available for the company associated
|
724
|
+
# with the deal.
|
725
|
+
#
|
726
|
+
# @param group_id [Integer]
|
727
|
+
# @param deal_id [Integer]
|
728
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
729
|
+
# @return [NewDemoApiClient::AVAILABLE_CATEGORIES_RESPONSE]
|
730
|
+
# @example
|
731
|
+
# api = NewDemoApiClient::Client.new(
|
732
|
+
# base_url: "https://api.example.com",
|
733
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
734
|
+
# token: "YOUR_AUTH_TOKEN"
|
735
|
+
# )
|
736
|
+
# api.benchmark.get_available_company_categories(group_id: 1, deal_id: 1)
|
737
|
+
def get_available_company_categories(group_id:, deal_id:, request_options: nil)
|
738
|
+
Async do
|
739
|
+
response = @request_client.conn.get do |req|
|
740
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
741
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
742
|
+
req.headers = {
|
743
|
+
**(req.headers || {}),
|
744
|
+
**@request_client.get_headers,
|
745
|
+
**(request_options&.additional_headers || {})
|
746
|
+
}.compact
|
747
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
748
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
749
|
+
end
|
750
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
751
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
752
|
+
end
|
753
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/benchmark/available-categories"
|
754
|
+
end
|
755
|
+
parsed_json = JSON.parse(response.body)
|
756
|
+
parsed_json
|
757
|
+
end
|
758
|
+
end
|
759
|
+
|
760
|
+
# Get the combined time series data for the deal.
|
761
|
+
#
|
762
|
+
# @param user_type [NewDemoApiClient::UserType]
|
763
|
+
# @param group_id [Integer]
|
764
|
+
# @param deal_id [Integer]
|
765
|
+
# @param column [String]
|
766
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
767
|
+
# @return [Array<NewDemoApiClient::DealCombinedMetricsResponse>]
|
768
|
+
# @example
|
769
|
+
# api = NewDemoApiClient::Client.new(
|
770
|
+
# base_url: "https://api.example.com",
|
771
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
772
|
+
# token: "YOUR_AUTH_TOKEN"
|
773
|
+
# )
|
774
|
+
# api.benchmark.get_combined_time_series(
|
775
|
+
# user_type: BUSINESS,
|
776
|
+
# group_id: 1,
|
777
|
+
# deal_id: 1
|
778
|
+
# )
|
779
|
+
def get_combined_time_series(user_type:, group_id:, deal_id:, column: nil, request_options: nil)
|
780
|
+
Async do
|
781
|
+
response = @request_client.conn.get do |req|
|
782
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
783
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
784
|
+
req.headers = {
|
785
|
+
**(req.headers || {}),
|
786
|
+
**@request_client.get_headers,
|
787
|
+
**(request_options&.additional_headers || {})
|
788
|
+
}.compact
|
789
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "column": column }.compact
|
790
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
791
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
792
|
+
end
|
793
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{user_type}/deal/#{group_id}/data/benchmark/combined-time-series/#{deal_id}"
|
794
|
+
end
|
795
|
+
parsed_json = JSON.parse(response.body)
|
796
|
+
parsed_json&.map do |item|
|
797
|
+
item = item.to_json
|
798
|
+
NewDemoApiClient::DealCombinedMetricsResponse.from_json(json_object: item)
|
799
|
+
end
|
800
|
+
end
|
801
|
+
end
|
802
|
+
|
803
|
+
# Get the time series data endpoint for the deal.
|
804
|
+
#
|
805
|
+
# @param user_type [NewDemoApiClient::UserType]
|
806
|
+
# @param group_id [Integer]
|
807
|
+
# @param deal_id [Integer]
|
808
|
+
# @param column [String]
|
809
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
810
|
+
# @return [NewDemoApiClient::DealCombinedMetricsResponse]
|
811
|
+
# @example
|
812
|
+
# api = NewDemoApiClient::Client.new(
|
813
|
+
# base_url: "https://api.example.com",
|
814
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
815
|
+
# token: "YOUR_AUTH_TOKEN"
|
816
|
+
# )
|
817
|
+
# api.benchmark.get_time_series_endpoint(
|
818
|
+
# user_type: BUSINESS,
|
819
|
+
# group_id: 1,
|
820
|
+
# deal_id: 1
|
821
|
+
# )
|
822
|
+
def get_time_series_endpoint(user_type:, group_id:, deal_id:, column: nil, request_options: nil)
|
823
|
+
Async do
|
824
|
+
response = @request_client.conn.get do |req|
|
825
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
826
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
827
|
+
req.headers = {
|
828
|
+
**(req.headers || {}),
|
829
|
+
**@request_client.get_headers,
|
830
|
+
**(request_options&.additional_headers || {})
|
831
|
+
}.compact
|
832
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "column": column }.compact
|
833
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
834
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
835
|
+
end
|
836
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{user_type}/deal/#{group_id}/data/benchmark/time-series-endpoint/#{deal_id}"
|
837
|
+
end
|
838
|
+
NewDemoApiClient::DealCombinedMetricsResponse.from_json(json_object: response.body)
|
839
|
+
end
|
840
|
+
end
|
841
|
+
|
842
|
+
# Get the benchmark quantiles for a given category.
|
843
|
+
#
|
844
|
+
# @param group_id [Integer]
|
845
|
+
# @param deal_id [Integer]
|
846
|
+
# @param category [String]
|
847
|
+
# @param column [String]
|
848
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
849
|
+
# @return [Array<NewDemoApiClient::BenchmarkQuantile>]
|
850
|
+
# @example
|
851
|
+
# api = NewDemoApiClient::Client.new(
|
852
|
+
# base_url: "https://api.example.com",
|
853
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
854
|
+
# token: "YOUR_AUTH_TOKEN"
|
855
|
+
# )
|
856
|
+
# api.benchmark.get_deal_benchmark_quantiles(
|
857
|
+
# group_id: 1,
|
858
|
+
# deal_id: 1,
|
859
|
+
# category: "category"
|
860
|
+
# )
|
861
|
+
def get_deal_benchmark_quantiles(group_id:, deal_id:, category:, column: nil, request_options: nil)
|
862
|
+
Async do
|
863
|
+
response = @request_client.conn.get do |req|
|
864
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
865
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
866
|
+
req.headers = {
|
867
|
+
**(req.headers || {}),
|
868
|
+
**@request_client.get_headers,
|
869
|
+
**(request_options&.additional_headers || {})
|
870
|
+
}.compact
|
871
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "column": column }.compact
|
872
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
873
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
874
|
+
end
|
875
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/benchmark/quantiles/#{category}"
|
876
|
+
end
|
877
|
+
parsed_json = JSON.parse(response.body)
|
878
|
+
parsed_json&.map do |item|
|
879
|
+
item = item.to_json
|
880
|
+
NewDemoApiClient::BenchmarkQuantile.from_json(json_object: item)
|
881
|
+
end
|
882
|
+
end
|
883
|
+
end
|
884
|
+
|
885
|
+
# Get the tradeoff models for a given category.
|
886
|
+
#
|
887
|
+
# @param group_id [Integer]
|
888
|
+
# @param deal_id [Integer]
|
889
|
+
# @param category [String]
|
890
|
+
# @param model [String]
|
891
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
892
|
+
# @return [NewDemoApiClient::TRADEOFF_MODELS_RESPONSE]
|
893
|
+
# @example
|
894
|
+
# api = NewDemoApiClient::Client.new(
|
895
|
+
# base_url: "https://api.example.com",
|
896
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
897
|
+
# token: "YOUR_AUTH_TOKEN"
|
898
|
+
# )
|
899
|
+
# api.benchmark.get_deal_benchmark_tradeoff_at_scale(
|
900
|
+
# group_id: 1,
|
901
|
+
# deal_id: 1,
|
902
|
+
# category: "category"
|
903
|
+
# )
|
904
|
+
def get_deal_benchmark_tradeoff_at_scale(group_id:, deal_id:, category:, model: nil, request_options: nil)
|
905
|
+
Async do
|
906
|
+
response = @request_client.conn.get do |req|
|
907
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
908
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
909
|
+
req.headers = {
|
910
|
+
**(req.headers || {}),
|
911
|
+
**@request_client.get_headers,
|
912
|
+
**(request_options&.additional_headers || {})
|
913
|
+
}.compact
|
914
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "model": model }.compact
|
915
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
916
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
917
|
+
end
|
918
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/deal/#{deal_id}/data/benchmark/tradeoff-at-scale/#{category}"
|
919
|
+
end
|
920
|
+
parsed_json = JSON.parse(response.body)
|
921
|
+
parsed_json&.transform_values do |value|
|
922
|
+
value = value.to_json
|
923
|
+
NewDemoApiClient::TradeoffModel.from_json(json_object: value)
|
924
|
+
end
|
925
|
+
end
|
926
|
+
end
|
927
|
+
|
928
|
+
# Get the columns metadata.
|
929
|
+
#
|
930
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
931
|
+
# @return [NewDemoApiClient::ColumnsMetadataResponse]
|
932
|
+
# @example
|
933
|
+
# api = NewDemoApiClient::Client.new(
|
934
|
+
# base_url: "https://api.example.com",
|
935
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
936
|
+
# token: "YOUR_AUTH_TOKEN"
|
937
|
+
# )
|
938
|
+
# api.benchmark.get_columns_metadata
|
939
|
+
def get_columns_metadata(request_options: nil)
|
940
|
+
Async do
|
941
|
+
response = @request_client.conn.get do |req|
|
942
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
943
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
944
|
+
req.headers = {
|
945
|
+
**(req.headers || {}),
|
946
|
+
**@request_client.get_headers,
|
947
|
+
**(request_options&.additional_headers || {})
|
948
|
+
}.compact
|
949
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
950
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
951
|
+
end
|
952
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
953
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
954
|
+
end
|
955
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/benchmark/metadata/columns"
|
956
|
+
end
|
957
|
+
NewDemoApiClient::ColumnsMetadataResponse.from_json(json_object: response.body)
|
958
|
+
end
|
959
|
+
end
|
960
|
+
|
961
|
+
# Get the models metadata.
|
962
|
+
#
|
963
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
964
|
+
# @return [Array<NewDemoApiClient::ModelsMetadataResponse>]
|
965
|
+
# @example
|
966
|
+
# api = NewDemoApiClient::Client.new(
|
967
|
+
# base_url: "https://api.example.com",
|
968
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
969
|
+
# token: "YOUR_AUTH_TOKEN"
|
970
|
+
# )
|
971
|
+
# api.benchmark.get_models_metadata
|
972
|
+
def get_models_metadata(request_options: nil)
|
973
|
+
Async do
|
974
|
+
response = @request_client.conn.get do |req|
|
975
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
976
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
977
|
+
req.headers = {
|
978
|
+
**(req.headers || {}),
|
979
|
+
**@request_client.get_headers,
|
980
|
+
**(request_options&.additional_headers || {})
|
981
|
+
}.compact
|
982
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
983
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
984
|
+
end
|
985
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
986
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
987
|
+
end
|
988
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/benchmark/metadata/models"
|
989
|
+
end
|
990
|
+
parsed_json = JSON.parse(response.body)
|
991
|
+
parsed_json&.map do |item|
|
992
|
+
item = item.to_json
|
993
|
+
NewDemoApiClient::ModelsMetadataResponse.from_json(json_object: item)
|
994
|
+
end
|
995
|
+
end
|
996
|
+
end
|
997
|
+
|
998
|
+
# Get the categories metadata.
|
999
|
+
#
|
1000
|
+
# @param request_options [NewDemoApiClient::RequestOptions]
|
1001
|
+
# @return [NewDemoApiClient::CategoriesMetadataResponse]
|
1002
|
+
# @example
|
1003
|
+
# api = NewDemoApiClient::Client.new(
|
1004
|
+
# base_url: "https://api.example.com",
|
1005
|
+
# environment: NewDemoApiClient::Environment::DEFAULT,
|
1006
|
+
# token: "YOUR_AUTH_TOKEN"
|
1007
|
+
# )
|
1008
|
+
# api.benchmark.get_categories_metadata
|
1009
|
+
def get_categories_metadata(request_options: nil)
|
1010
|
+
Async do
|
1011
|
+
response = @request_client.conn.get do |req|
|
1012
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
1013
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
1014
|
+
req.headers = {
|
1015
|
+
**(req.headers || {}),
|
1016
|
+
**@request_client.get_headers,
|
1017
|
+
**(request_options&.additional_headers || {})
|
1018
|
+
}.compact
|
1019
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
1020
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
1021
|
+
end
|
1022
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
1023
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
1024
|
+
end
|
1025
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/benchmark/metadata/categories"
|
1026
|
+
end
|
1027
|
+
NewDemoApiClient::CategoriesMetadataResponse.from_json(json_object: response.body)
|
1028
|
+
end
|
1029
|
+
end
|
1030
|
+
end
|
1031
|
+
end
|