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,422 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../requests"
4
+ require "json"
5
+ require_relative "../types/weather_metadata"
6
+ require_relative "../types/weather_gauge"
7
+ require_relative "../types/weather_components"
8
+ require_relative "../types/weather_market_context"
9
+ require "async"
10
+
11
+ module NewDemoApiClient
12
+ class MacroClient
13
+ # @return [NewDemoApiClient::RequestClient]
14
+ attr_reader :request_client
15
+
16
+ # @param request_client [NewDemoApiClient::RequestClient]
17
+ # @return [NewDemoApiClient::MacroClient]
18
+ def initialize(request_client:)
19
+ @request_client = request_client
20
+ end
21
+
22
+ # Returns the available segmentations for the weather module.
23
+ #
24
+ # @param request_options [NewDemoApiClient::RequestOptions]
25
+ # @return [Array<String>]
26
+ # @example
27
+ # api = NewDemoApiClient::Client.new(
28
+ # base_url: "https://api.example.com",
29
+ # environment: NewDemoApiClient::Environment::DEFAULT,
30
+ # token: "YOUR_AUTH_TOKEN"
31
+ # )
32
+ # api.macro.get_segmentations
33
+ def get_segmentations(request_options: nil)
34
+ response = @request_client.conn.get do |req|
35
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
36
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
37
+ req.headers = {
38
+ **(req.headers || {}),
39
+ **@request_client.get_headers,
40
+ **(request_options&.additional_headers || {})
41
+ }.compact
42
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
43
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
44
+ end
45
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
46
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
47
+ end
48
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/weather/segmentations"
49
+ end
50
+ JSON.parse(response.body)
51
+ end
52
+
53
+ # Returns segmentation metadata for each of the classes of segmentations "geo" and
54
+ # "sector".
55
+ # The geography ("geo") segmentation type refers to major geographic
56
+ # segmentations.
57
+ # The "sector" segmentation type refers to major business model categories in the
58
+ # USA geography.
59
+ # The metadata includes parameters used to generate the respective indicators, and
60
+ # the metadata needed to
61
+ # retrieve the series from the API.
62
+ #
63
+ # @param segmentation [String]
64
+ # @param request_options [NewDemoApiClient::RequestOptions]
65
+ # @return [Array<NewDemoApiClient::WeatherMetadata>]
66
+ # @example
67
+ # api = NewDemoApiClient::Client.new(
68
+ # base_url: "https://api.example.com",
69
+ # environment: NewDemoApiClient::Environment::DEFAULT,
70
+ # token: "YOUR_AUTH_TOKEN"
71
+ # )
72
+ # api.macro.get_metadata(segmentation: "segmentation")
73
+ def get_metadata(segmentation:, request_options: nil)
74
+ response = @request_client.conn.get do |req|
75
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
76
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
77
+ req.headers = {
78
+ **(req.headers || {}),
79
+ **@request_client.get_headers,
80
+ **(request_options&.additional_headers || {})
81
+ }.compact
82
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
83
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
84
+ end
85
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
86
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
87
+ end
88
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/weather/#{segmentation}/metadata"
89
+ end
90
+ parsed_json = JSON.parse(response.body)
91
+ parsed_json&.map do |item|
92
+ item = item.to_json
93
+ NewDemoApiClient::WeatherMetadata.from_json(json_object: item)
94
+ end
95
+ end
96
+
97
+ # Returns the overall weather indicator, combined across all stages, for the given
98
+ # segmentation slug(s).
99
+ # If no slug is provided, the endpoint will return the gauge for all available
100
+ # segmentations.
101
+ #
102
+ # @param segmentation [String]
103
+ # @param slug [String]
104
+ # @param request_options [NewDemoApiClient::RequestOptions]
105
+ # @return [Array<NewDemoApiClient::WeatherGauge>]
106
+ # @example
107
+ # api = NewDemoApiClient::Client.new(
108
+ # base_url: "https://api.example.com",
109
+ # environment: NewDemoApiClient::Environment::DEFAULT,
110
+ # token: "YOUR_AUTH_TOKEN"
111
+ # )
112
+ # api.macro.get_gauge(segmentation: "segmentation")
113
+ def get_gauge(segmentation:, slug: nil, request_options: nil)
114
+ response = @request_client.conn.get do |req|
115
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
116
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
117
+ req.headers = {
118
+ **(req.headers || {}),
119
+ **@request_client.get_headers,
120
+ **(request_options&.additional_headers || {})
121
+ }.compact
122
+ req.params = { **(request_options&.additional_query_parameters || {}), "slug": slug }.compact
123
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
124
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
125
+ end
126
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/weather/#{segmentation}/gauges"
127
+ end
128
+ parsed_json = JSON.parse(response.body)
129
+ parsed_json&.map do |item|
130
+ item = item.to_json
131
+ NewDemoApiClient::WeatherGauge.from_json(json_object: item)
132
+ end
133
+ end
134
+
135
+ # Returns the individual components of the weather indicator and some of the
136
+ # underlying inputs of those component gauges for the given segmentation slug.
137
+ #
138
+ # @param segmentation [String]
139
+ # @param slug [String]
140
+ # @param request_options [NewDemoApiClient::RequestOptions]
141
+ # @return [Array<NewDemoApiClient::WeatherComponents>]
142
+ # @example
143
+ # api = NewDemoApiClient::Client.new(
144
+ # base_url: "https://api.example.com",
145
+ # environment: NewDemoApiClient::Environment::DEFAULT,
146
+ # token: "YOUR_AUTH_TOKEN"
147
+ # )
148
+ # api.macro.get_components(segmentation: "segmentation", slug: "slug")
149
+ def get_components(segmentation:, slug:, request_options: nil)
150
+ response = @request_client.conn.get do |req|
151
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
152
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
153
+ req.headers = {
154
+ **(req.headers || {}),
155
+ **@request_client.get_headers,
156
+ **(request_options&.additional_headers || {})
157
+ }.compact
158
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
159
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
160
+ end
161
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
162
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
163
+ end
164
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/weather/#{segmentation}/#{slug}/components"
165
+ end
166
+ parsed_json = JSON.parse(response.body)
167
+ parsed_json&.map do |item|
168
+ item = item.to_json
169
+ NewDemoApiClient::WeatherComponents.from_json(json_object: item)
170
+ end
171
+ end
172
+
173
+ # Returns simplified contextual metrics about relevant stages and market activity
174
+ # for the given segmentation slug.
175
+ #
176
+ # @param segmentation [String]
177
+ # @param slug [String]
178
+ # @param request_options [NewDemoApiClient::RequestOptions]
179
+ # @return [Array<NewDemoApiClient::WeatherMarketContext>]
180
+ # @example
181
+ # api = NewDemoApiClient::Client.new(
182
+ # base_url: "https://api.example.com",
183
+ # environment: NewDemoApiClient::Environment::DEFAULT,
184
+ # token: "YOUR_AUTH_TOKEN"
185
+ # )
186
+ # api.macro.get_market_context(segmentation: "segmentation", slug: "slug")
187
+ def get_market_context(segmentation:, slug:, request_options: nil)
188
+ response = @request_client.conn.get do |req|
189
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
190
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
191
+ req.headers = {
192
+ **(req.headers || {}),
193
+ **@request_client.get_headers,
194
+ **(request_options&.additional_headers || {})
195
+ }.compact
196
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
197
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
198
+ end
199
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
200
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
201
+ end
202
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/weather/#{segmentation}/#{slug}/market-context"
203
+ end
204
+ parsed_json = JSON.parse(response.body)
205
+ parsed_json&.map do |item|
206
+ item = item.to_json
207
+ NewDemoApiClient::WeatherMarketContext.from_json(json_object: item)
208
+ end
209
+ end
210
+ end
211
+
212
+ class AsyncMacroClient
213
+ # @return [NewDemoApiClient::AsyncRequestClient]
214
+ attr_reader :request_client
215
+
216
+ # @param request_client [NewDemoApiClient::AsyncRequestClient]
217
+ # @return [NewDemoApiClient::AsyncMacroClient]
218
+ def initialize(request_client:)
219
+ @request_client = request_client
220
+ end
221
+
222
+ # Returns the available segmentations for the weather module.
223
+ #
224
+ # @param request_options [NewDemoApiClient::RequestOptions]
225
+ # @return [Array<String>]
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.macro.get_segmentations
233
+ def get_segmentations(request_options: nil)
234
+ Async do
235
+ response = @request_client.conn.get do |req|
236
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
237
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
238
+ req.headers = {
239
+ **(req.headers || {}),
240
+ **@request_client.get_headers,
241
+ **(request_options&.additional_headers || {})
242
+ }.compact
243
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
244
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
245
+ end
246
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
247
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
248
+ end
249
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/weather/segmentations"
250
+ end
251
+ parsed_json = JSON.parse(response.body)
252
+ parsed_json
253
+ end
254
+ end
255
+
256
+ # Returns segmentation metadata for each of the classes of segmentations "geo" and
257
+ # "sector".
258
+ # The geography ("geo") segmentation type refers to major geographic
259
+ # segmentations.
260
+ # The "sector" segmentation type refers to major business model categories in the
261
+ # USA geography.
262
+ # The metadata includes parameters used to generate the respective indicators, and
263
+ # the metadata needed to
264
+ # retrieve the series from the API.
265
+ #
266
+ # @param segmentation [String]
267
+ # @param request_options [NewDemoApiClient::RequestOptions]
268
+ # @return [Array<NewDemoApiClient::WeatherMetadata>]
269
+ # @example
270
+ # api = NewDemoApiClient::Client.new(
271
+ # base_url: "https://api.example.com",
272
+ # environment: NewDemoApiClient::Environment::DEFAULT,
273
+ # token: "YOUR_AUTH_TOKEN"
274
+ # )
275
+ # api.macro.get_metadata(segmentation: "segmentation")
276
+ def get_metadata(segmentation:, request_options: nil)
277
+ Async do
278
+ response = @request_client.conn.get do |req|
279
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
280
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
281
+ req.headers = {
282
+ **(req.headers || {}),
283
+ **@request_client.get_headers,
284
+ **(request_options&.additional_headers || {})
285
+ }.compact
286
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
287
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
288
+ end
289
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
290
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
291
+ end
292
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/weather/#{segmentation}/metadata"
293
+ end
294
+ parsed_json = JSON.parse(response.body)
295
+ parsed_json&.map do |item|
296
+ item = item.to_json
297
+ NewDemoApiClient::WeatherMetadata.from_json(json_object: item)
298
+ end
299
+ end
300
+ end
301
+
302
+ # Returns the overall weather indicator, combined across all stages, for the given
303
+ # segmentation slug(s).
304
+ # If no slug is provided, the endpoint will return the gauge for all available
305
+ # segmentations.
306
+ #
307
+ # @param segmentation [String]
308
+ # @param slug [String]
309
+ # @param request_options [NewDemoApiClient::RequestOptions]
310
+ # @return [Array<NewDemoApiClient::WeatherGauge>]
311
+ # @example
312
+ # api = NewDemoApiClient::Client.new(
313
+ # base_url: "https://api.example.com",
314
+ # environment: NewDemoApiClient::Environment::DEFAULT,
315
+ # token: "YOUR_AUTH_TOKEN"
316
+ # )
317
+ # api.macro.get_gauge(segmentation: "segmentation")
318
+ def get_gauge(segmentation:, slug: nil, request_options: nil)
319
+ Async do
320
+ response = @request_client.conn.get do |req|
321
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
322
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
323
+ req.headers = {
324
+ **(req.headers || {}),
325
+ **@request_client.get_headers,
326
+ **(request_options&.additional_headers || {})
327
+ }.compact
328
+ req.params = { **(request_options&.additional_query_parameters || {}), "slug": slug }.compact
329
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
330
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
331
+ end
332
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/weather/#{segmentation}/gauges"
333
+ end
334
+ parsed_json = JSON.parse(response.body)
335
+ parsed_json&.map do |item|
336
+ item = item.to_json
337
+ NewDemoApiClient::WeatherGauge.from_json(json_object: item)
338
+ end
339
+ end
340
+ end
341
+
342
+ # Returns the individual components of the weather indicator and some of the
343
+ # underlying inputs of those component gauges for the given segmentation slug.
344
+ #
345
+ # @param segmentation [String]
346
+ # @param slug [String]
347
+ # @param request_options [NewDemoApiClient::RequestOptions]
348
+ # @return [Array<NewDemoApiClient::WeatherComponents>]
349
+ # @example
350
+ # api = NewDemoApiClient::Client.new(
351
+ # base_url: "https://api.example.com",
352
+ # environment: NewDemoApiClient::Environment::DEFAULT,
353
+ # token: "YOUR_AUTH_TOKEN"
354
+ # )
355
+ # api.macro.get_components(segmentation: "segmentation", slug: "slug")
356
+ def get_components(segmentation:, slug:, request_options: nil)
357
+ Async do
358
+ response = @request_client.conn.get do |req|
359
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
360
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
361
+ req.headers = {
362
+ **(req.headers || {}),
363
+ **@request_client.get_headers,
364
+ **(request_options&.additional_headers || {})
365
+ }.compact
366
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
367
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
368
+ end
369
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
370
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
371
+ end
372
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/weather/#{segmentation}/#{slug}/components"
373
+ end
374
+ parsed_json = JSON.parse(response.body)
375
+ parsed_json&.map do |item|
376
+ item = item.to_json
377
+ NewDemoApiClient::WeatherComponents.from_json(json_object: item)
378
+ end
379
+ end
380
+ end
381
+
382
+ # Returns simplified contextual metrics about relevant stages and market activity
383
+ # for the given segmentation slug.
384
+ #
385
+ # @param segmentation [String]
386
+ # @param slug [String]
387
+ # @param request_options [NewDemoApiClient::RequestOptions]
388
+ # @return [Array<NewDemoApiClient::WeatherMarketContext>]
389
+ # @example
390
+ # api = NewDemoApiClient::Client.new(
391
+ # base_url: "https://api.example.com",
392
+ # environment: NewDemoApiClient::Environment::DEFAULT,
393
+ # token: "YOUR_AUTH_TOKEN"
394
+ # )
395
+ # api.macro.get_market_context(segmentation: "segmentation", slug: "slug")
396
+ def get_market_context(segmentation:, slug:, request_options: nil)
397
+ Async do
398
+ response = @request_client.conn.get do |req|
399
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
400
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
401
+ req.headers = {
402
+ **(req.headers || {}),
403
+ **@request_client.get_headers,
404
+ **(request_options&.additional_headers || {})
405
+ }.compact
406
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
407
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
408
+ end
409
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
410
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
411
+ end
412
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/data/weather/#{segmentation}/#{slug}/market-context"
413
+ end
414
+ parsed_json = JSON.parse(response.body)
415
+ parsed_json&.map do |item|
416
+ item = item.to_json
417
+ NewDemoApiClient::WeatherMarketContext.from_json(json_object: item)
418
+ end
419
+ end
420
+ end
421
+ end
422
+ end
@@ -0,0 +1,95 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../requests"
4
+ require_relative "../types/all_data_metadata_response"
5
+ require "async"
6
+
7
+ module NewDemoApiClient
8
+ class MetadataClient
9
+ # @return [NewDemoApiClient::RequestClient]
10
+ attr_reader :request_client
11
+
12
+ # @param request_client [NewDemoApiClient::RequestClient]
13
+ # @return [NewDemoApiClient::MetadataClient]
14
+ def initialize(request_client:)
15
+ @request_client = request_client
16
+ end
17
+
18
+ # Retrieve select metadata about all diligence data for a group.
19
+ #
20
+ # @param group_id [Integer]
21
+ # @param request_options [NewDemoApiClient::RequestOptions]
22
+ # @return [NewDemoApiClient::AllDataMetadataResponse]
23
+ # @example
24
+ # api = NewDemoApiClient::Client.new(
25
+ # base_url: "https://api.example.com",
26
+ # environment: NewDemoApiClient::Environment::DEFAULT,
27
+ # token: "YOUR_AUTH_TOKEN"
28
+ # )
29
+ # api.metadata.get_diligence_metadata(group_id: 1)
30
+ def get_diligence_metadata(group_id:, request_options: nil)
31
+ response = @request_client.conn.get do |req|
32
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
33
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
34
+ req.headers = {
35
+ **(req.headers || {}),
36
+ **@request_client.get_headers,
37
+ **(request_options&.additional_headers || {})
38
+ }.compact
39
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
40
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
41
+ end
42
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
43
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
44
+ end
45
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/data/metadata"
46
+ end
47
+ NewDemoApiClient::AllDataMetadataResponse.from_json(json_object: response.body)
48
+ end
49
+ end
50
+
51
+ class AsyncMetadataClient
52
+ # @return [NewDemoApiClient::AsyncRequestClient]
53
+ attr_reader :request_client
54
+
55
+ # @param request_client [NewDemoApiClient::AsyncRequestClient]
56
+ # @return [NewDemoApiClient::AsyncMetadataClient]
57
+ def initialize(request_client:)
58
+ @request_client = request_client
59
+ end
60
+
61
+ # Retrieve select metadata about all diligence data for a group.
62
+ #
63
+ # @param group_id [Integer]
64
+ # @param request_options [NewDemoApiClient::RequestOptions]
65
+ # @return [NewDemoApiClient::AllDataMetadataResponse]
66
+ # @example
67
+ # api = NewDemoApiClient::Client.new(
68
+ # base_url: "https://api.example.com",
69
+ # environment: NewDemoApiClient::Environment::DEFAULT,
70
+ # token: "YOUR_AUTH_TOKEN"
71
+ # )
72
+ # api.metadata.get_diligence_metadata(group_id: 1)
73
+ def get_diligence_metadata(group_id:, request_options: nil)
74
+ Async do
75
+ response = @request_client.conn.get do |req|
76
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
77
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
78
+ req.headers = {
79
+ **(req.headers || {}),
80
+ **@request_client.get_headers,
81
+ **(request_options&.additional_headers || {})
82
+ }.compact
83
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
84
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
85
+ end
86
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
87
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
88
+ end
89
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/data/metadata"
90
+ end
91
+ NewDemoApiClient::AllDataMetadataResponse.from_json(json_object: response.body)
92
+ end
93
+ end
94
+ end
95
+ end