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.
Files changed (95) hide show
  1. checksums.yaml +7 -0
  2. data/lib/core/file_utilities.rb +26 -0
  3. data/lib/environment.rb +7 -0
  4. data/lib/gemconfig.rb +14 -0
  5. data/lib/requests.rb +166 -0
  6. data/lib/test_sdk/benchmark/client.rb +1031 -0
  7. data/lib/test_sdk/company/client.rb +474 -0
  8. data/lib/test_sdk/deal/client.rb +584 -0
  9. data/lib/test_sdk/file/client.rb +692 -0
  10. data/lib/test_sdk/financials/client.rb +97 -0
  11. data/lib/test_sdk/group/client.rb +737 -0
  12. data/lib/test_sdk/macro/client.rb +422 -0
  13. data/lib/test_sdk/metadata/client.rb +95 -0
  14. data/lib/test_sdk/product/client.rb +419 -0
  15. data/lib/test_sdk/talent/client.rb +266 -0
  16. data/lib/test_sdk/types/account_manager_response.rb +74 -0
  17. data/lib/test_sdk/types/all_data_metadata_response.rb +68 -0
  18. data/lib/test_sdk/types/area.rb +74 -0
  19. data/lib/test_sdk/types/authenticate_api_key_response.rb +55 -0
  20. data/lib/test_sdk/types/available_categories_response.rb +5 -0
  21. data/lib/test_sdk/types/available_models_response.rb +69 -0
  22. data/lib/test_sdk/types/band_response.rb +83 -0
  23. data/lib/test_sdk/types/benchmark_quantile.rb +465 -0
  24. data/lib/test_sdk/types/categories_metadata_response.rb +72 -0
  25. data/lib/test_sdk/types/category_growth_rates.rb +143 -0
  26. data/lib/test_sdk/types/category_metadata.rb +79 -0
  27. data/lib/test_sdk/types/category_metadata_default_user_type.rb +8 -0
  28. data/lib/test_sdk/types/cohorts_response.rb +132 -0
  29. data/lib/test_sdk/types/column_metadata.rb +110 -0
  30. data/lib/test_sdk/types/column_mini_metadata.rb +83 -0
  31. data/lib/test_sdk/types/columns_metadata_response.rb +72 -0
  32. data/lib/test_sdk/types/company_response.rb +120 -0
  33. data/lib/test_sdk/types/concentration_endpoint_cdf_detail.rb +96 -0
  34. data/lib/test_sdk/types/concentration_endpoint_top_users_detail.rb +72 -0
  35. data/lib/test_sdk/types/concentration_response.rb +103 -0
  36. data/lib/test_sdk/types/concentration_timeseries_detail.rb +159 -0
  37. data/lib/test_sdk/types/contribution_response.rb +135 -0
  38. data/lib/test_sdk/types/create_api_key_response.rb +55 -0
  39. data/lib/test_sdk/types/create_file_for_signed_url_response.rb +127 -0
  40. data/lib/test_sdk/types/create_file_response.rb +113 -0
  41. data/lib/test_sdk/types/deal_combined_metrics_response.rb +477 -0
  42. data/lib/test_sdk/types/deal_data_availablity_response.rb +109 -0
  43. data/lib/test_sdk/types/deal_with_files_response.rb +194 -0
  44. data/lib/test_sdk/types/endpoint_seniority_count.rb +66 -0
  45. data/lib/test_sdk/types/executive_profile.rb +91 -0
  46. data/lib/test_sdk/types/executive_profile_position.rb +97 -0
  47. data/lib/test_sdk/types/file_response.rb +113 -0
  48. data/lib/test_sdk/types/file_type.rb +14 -0
  49. data/lib/test_sdk/types/financial_metrics.rb +113 -0
  50. data/lib/test_sdk/types/financials_response.rb +102 -0
  51. data/lib/test_sdk/types/frequency.rb +9 -0
  52. data/lib/test_sdk/types/function_level_growth_accounting.rb +111 -0
  53. data/lib/test_sdk/types/gcs_signed_url_response.rb +81 -0
  54. data/lib/test_sdk/types/group_response.rb +158 -0
  55. data/lib/test_sdk/types/group_user.rb +124 -0
  56. data/lib/test_sdk/types/group_with_users_response.rb +170 -0
  57. data/lib/test_sdk/types/growth_accounting_response.rb +226 -0
  58. data/lib/test_sdk/types/healthz_response.rb +55 -0
  59. data/lib/test_sdk/types/http_validation_error.rb +61 -0
  60. data/lib/test_sdk/types/income_statement_entry.rb +81 -0
  61. data/lib/test_sdk/types/model_metadata.rb +76 -0
  62. data/lib/test_sdk/types/models_metadata_response.rb +76 -0
  63. data/lib/test_sdk/types/paginated_response_company_response.rb +83 -0
  64. data/lib/test_sdk/types/paginated_response_deal_with_files_response.rb +84 -0
  65. data/lib/test_sdk/types/paginated_response_file_response.rb +83 -0
  66. data/lib/test_sdk/types/paginated_response_group_user.rb +83 -0
  67. data/lib/test_sdk/types/permission_model.rb +65 -0
  68. data/lib/test_sdk/types/priority.rb +10 -0
  69. data/lib/test_sdk/types/product_info_response.rb +65 -0
  70. data/lib/test_sdk/types/role_response.rb +95 -0
  71. data/lib/test_sdk/types/scale.rb +72 -0
  72. data/lib/test_sdk/types/scale_model.rb +80 -0
  73. data/lib/test_sdk/types/scale_models_response.rb +5 -0
  74. data/lib/test_sdk/types/scaling.rb +10 -0
  75. data/lib/test_sdk/types/status.rb +12 -0
  76. data/lib/test_sdk/types/tradeoff_model.rb +95 -0
  77. data/lib/test_sdk/types/tradeoff_models_response.rb +5 -0
  78. data/lib/test_sdk/types/unit.rb +12 -0
  79. data/lib/test_sdk/types/unit_economics_info_response.rb +55 -0
  80. data/lib/test_sdk/types/user_accounting_response.rb +168 -0
  81. data/lib/test_sdk/types/user_role_response.rb +77 -0
  82. data/lib/test_sdk/types/user_type.rb +12 -0
  83. data/lib/test_sdk/types/user_with_groups_response.rb +140 -0
  84. data/lib/test_sdk/types/user_with_permissions_response.rb +153 -0
  85. data/lib/test_sdk/types/validation_error.rb +76 -0
  86. data/lib/test_sdk/types/validation_error_loc_item.rb +52 -0
  87. data/lib/test_sdk/types/weather_components.rb +123 -0
  88. data/lib/test_sdk/types/weather_gauge.rb +76 -0
  89. data/lib/test_sdk/types/weather_market_context.rb +109 -0
  90. data/lib/test_sdk/types/weather_metadata.rb +113 -0
  91. data/lib/test_sdk/unit_economics/client.rb +124 -0
  92. data/lib/test_sdk/user/client.rb +363 -0
  93. data/lib/test_sdk.rb +190 -0
  94. data/lib/types_export.rb +77 -0
  95. 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