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,474 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../requests"
4
+ require_relative "../types/company_response"
5
+ require_relative "../types/paginated_response_company_response"
6
+ require "json"
7
+ require "async"
8
+
9
+ module NewDemoApiClient
10
+ class CompanyClient
11
+ # @return [NewDemoApiClient::RequestClient]
12
+ attr_reader :request_client
13
+
14
+ # @param request_client [NewDemoApiClient::RequestClient]
15
+ # @return [NewDemoApiClient::CompanyClient]
16
+ def initialize(request_client:)
17
+ @request_client = request_client
18
+ end
19
+
20
+ # Lookup a company by domain.
21
+ #
22
+ # @param group_id [Integer]
23
+ # @param domain [String]
24
+ # @param request_options [NewDemoApiClient::RequestOptions]
25
+ # @return [NewDemoApiClient::CompanyResponse]
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.company.get_by_domain(group_id: 1, domain: "domain")
33
+ def get_by_domain(group_id:, domain:, 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
+ req.params = { **(request_options&.additional_query_parameters || {}), "domain": domain }.compact
43
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
44
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
45
+ end
46
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/company"
47
+ end
48
+ NewDemoApiClient::CompanyResponse.from_json(json_object: response.body)
49
+ end
50
+
51
+ # Create a new company. If a non-canonical domain is provided, it will be
52
+ # normalized to a canonical form.
53
+ #
54
+ # @param group_id [Integer]
55
+ # @param name [String]
56
+ # @param domain [String] The domain of the company. Must be a valid domain or URL. The domain will be
57
+ # normalized to a canonical form.
58
+ # @param thumbnail [String] The thumbnail URL of the company
59
+ # @param request_options [NewDemoApiClient::RequestOptions]
60
+ # @return [NewDemoApiClient::CompanyResponse]
61
+ # @example
62
+ # api = NewDemoApiClient::Client.new(
63
+ # base_url: "https://api.example.com",
64
+ # environment: NewDemoApiClient::Environment::DEFAULT,
65
+ # token: "YOUR_AUTH_TOKEN"
66
+ # )
67
+ # api.company.create_company(group_id: 1, domain: "domain")
68
+ def create_company(group_id:, domain:, name: nil, thumbnail: nil, request_options: nil)
69
+ response = @request_client.conn.post do |req|
70
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
71
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
72
+ req.headers = {
73
+ **(req.headers || {}),
74
+ **@request_client.get_headers,
75
+ **(request_options&.additional_headers || {})
76
+ }.compact
77
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
78
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
79
+ end
80
+ req.body = {
81
+ **(request_options&.additional_body_parameters || {}),
82
+ name: name,
83
+ domain: domain,
84
+ thumbnail: thumbnail
85
+ }.compact
86
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/company"
87
+ end
88
+ NewDemoApiClient::CompanyResponse.from_json(json_object: response.body)
89
+ end
90
+
91
+ # Get all companies for a group.
92
+ #
93
+ # @param group_id [Integer]
94
+ # @param sort_by [String]
95
+ # @param sort_order [String]
96
+ # @param page [Integer]
97
+ # @param page_size [Integer]
98
+ # @param request_options [NewDemoApiClient::RequestOptions]
99
+ # @return [NewDemoApiClient::PaginatedResponseCompanyResponse]
100
+ # @example
101
+ # api = NewDemoApiClient::Client.new(
102
+ # base_url: "https://api.example.com",
103
+ # environment: NewDemoApiClient::Environment::DEFAULT,
104
+ # token: "YOUR_AUTH_TOKEN"
105
+ # )
106
+ # api.company.list(group_id: 1)
107
+ def list(group_id:, sort_by: nil, sort_order: nil, page: nil, page_size: nil, request_options: nil)
108
+ response = @request_client.conn.get do |req|
109
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
110
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
111
+ req.headers = {
112
+ **(req.headers || {}),
113
+ **@request_client.get_headers,
114
+ **(request_options&.additional_headers || {})
115
+ }.compact
116
+ req.params = {
117
+ **(request_options&.additional_query_parameters || {}),
118
+ "sort_by": sort_by,
119
+ "sort_order": sort_order,
120
+ "page": page,
121
+ "page_size": page_size
122
+ }.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/group/#{group_id}/company/all"
127
+ end
128
+ NewDemoApiClient::PaginatedResponseCompanyResponse.from_json(json_object: response.body)
129
+ end
130
+
131
+ # Get a company by ID.
132
+ #
133
+ # @param group_id [Integer]
134
+ # @param company_id [Integer]
135
+ # @param request_options [NewDemoApiClient::RequestOptions]
136
+ # @return [NewDemoApiClient::CompanyResponse]
137
+ # @example
138
+ # api = NewDemoApiClient::Client.new(
139
+ # base_url: "https://api.example.com",
140
+ # environment: NewDemoApiClient::Environment::DEFAULT,
141
+ # token: "YOUR_AUTH_TOKEN"
142
+ # )
143
+ # api.company.get(group_id: 1, company_id: 1)
144
+ def get(group_id:, company_id:, request_options: nil)
145
+ response = @request_client.conn.get do |req|
146
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
147
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
148
+ req.headers = {
149
+ **(req.headers || {}),
150
+ **@request_client.get_headers,
151
+ **(request_options&.additional_headers || {})
152
+ }.compact
153
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
154
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
155
+ end
156
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
157
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
158
+ end
159
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/company/#{company_id}"
160
+ end
161
+ NewDemoApiClient::CompanyResponse.from_json(json_object: response.body)
162
+ end
163
+
164
+ # Update a company.
165
+ #
166
+ # @param group_id [Integer]
167
+ # @param company_id [Integer]
168
+ # @param name [String]
169
+ # @param domain [String]
170
+ # @param thumbnail [String] The thumbnail URL of the company
171
+ # @param request_options [NewDemoApiClient::RequestOptions]
172
+ # @return [NewDemoApiClient::CompanyResponse]
173
+ # @example
174
+ # api = NewDemoApiClient::Client.new(
175
+ # base_url: "https://api.example.com",
176
+ # environment: NewDemoApiClient::Environment::DEFAULT,
177
+ # token: "YOUR_AUTH_TOKEN"
178
+ # )
179
+ # api.company.update(group_id: 1, company_id: 1)
180
+ def update(group_id:, company_id:, name: nil, domain: nil, thumbnail: nil, request_options: nil)
181
+ response = @request_client.conn.put do |req|
182
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
183
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
184
+ req.headers = {
185
+ **(req.headers || {}),
186
+ **@request_client.get_headers,
187
+ **(request_options&.additional_headers || {})
188
+ }.compact
189
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
190
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
191
+ end
192
+ req.body = {
193
+ **(request_options&.additional_body_parameters || {}),
194
+ name: name,
195
+ domain: domain,
196
+ thumbnail: thumbnail
197
+ }.compact
198
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/company/#{company_id}"
199
+ end
200
+ NewDemoApiClient::CompanyResponse.from_json(json_object: response.body)
201
+ end
202
+
203
+ # Delete a company.
204
+ #
205
+ # @param company_id [Integer]
206
+ # @param group_id [Integer]
207
+ # @param archive [Boolean]
208
+ # @param request_options [NewDemoApiClient::RequestOptions]
209
+ # @return [Object]
210
+ # @example
211
+ # api = NewDemoApiClient::Client.new(
212
+ # base_url: "https://api.example.com",
213
+ # environment: NewDemoApiClient::Environment::DEFAULT,
214
+ # token: "YOUR_AUTH_TOKEN"
215
+ # )
216
+ # api.company.delete(company_id: 1, group_id: 1)
217
+ def delete(company_id:, group_id:, archive: nil, request_options: nil)
218
+ response = @request_client.conn.delete do |req|
219
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
220
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
221
+ req.headers = {
222
+ **(req.headers || {}),
223
+ **@request_client.get_headers,
224
+ **(request_options&.additional_headers || {})
225
+ }.compact
226
+ req.params = { **(request_options&.additional_query_parameters || {}), "archive": archive }.compact
227
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
228
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
229
+ end
230
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{company_id}/company/#{group_id}"
231
+ end
232
+ JSON.parse(response.body)
233
+ end
234
+ end
235
+
236
+ class AsyncCompanyClient
237
+ # @return [NewDemoApiClient::AsyncRequestClient]
238
+ attr_reader :request_client
239
+
240
+ # @param request_client [NewDemoApiClient::AsyncRequestClient]
241
+ # @return [NewDemoApiClient::AsyncCompanyClient]
242
+ def initialize(request_client:)
243
+ @request_client = request_client
244
+ end
245
+
246
+ # Lookup a company by domain.
247
+ #
248
+ # @param group_id [Integer]
249
+ # @param domain [String]
250
+ # @param request_options [NewDemoApiClient::RequestOptions]
251
+ # @return [NewDemoApiClient::CompanyResponse]
252
+ # @example
253
+ # api = NewDemoApiClient::Client.new(
254
+ # base_url: "https://api.example.com",
255
+ # environment: NewDemoApiClient::Environment::DEFAULT,
256
+ # token: "YOUR_AUTH_TOKEN"
257
+ # )
258
+ # api.company.get_by_domain(group_id: 1, domain: "domain")
259
+ def get_by_domain(group_id:, domain:, request_options: nil)
260
+ Async do
261
+ response = @request_client.conn.get do |req|
262
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
263
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
264
+ req.headers = {
265
+ **(req.headers || {}),
266
+ **@request_client.get_headers,
267
+ **(request_options&.additional_headers || {})
268
+ }.compact
269
+ req.params = { **(request_options&.additional_query_parameters || {}), "domain": domain }.compact
270
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
271
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
272
+ end
273
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/company"
274
+ end
275
+ NewDemoApiClient::CompanyResponse.from_json(json_object: response.body)
276
+ end
277
+ end
278
+
279
+ # Create a new company. If a non-canonical domain is provided, it will be
280
+ # normalized to a canonical form.
281
+ #
282
+ # @param group_id [Integer]
283
+ # @param name [String]
284
+ # @param domain [String] The domain of the company. Must be a valid domain or URL. The domain will be
285
+ # normalized to a canonical form.
286
+ # @param thumbnail [String] The thumbnail URL of the company
287
+ # @param request_options [NewDemoApiClient::RequestOptions]
288
+ # @return [NewDemoApiClient::CompanyResponse]
289
+ # @example
290
+ # api = NewDemoApiClient::Client.new(
291
+ # base_url: "https://api.example.com",
292
+ # environment: NewDemoApiClient::Environment::DEFAULT,
293
+ # token: "YOUR_AUTH_TOKEN"
294
+ # )
295
+ # api.company.create_company(group_id: 1, domain: "domain")
296
+ def create_company(group_id:, domain:, name: nil, thumbnail: nil, request_options: nil)
297
+ Async do
298
+ response = @request_client.conn.post do |req|
299
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
300
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
301
+ req.headers = {
302
+ **(req.headers || {}),
303
+ **@request_client.get_headers,
304
+ **(request_options&.additional_headers || {})
305
+ }.compact
306
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
307
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
308
+ end
309
+ req.body = {
310
+ **(request_options&.additional_body_parameters || {}),
311
+ name: name,
312
+ domain: domain,
313
+ thumbnail: thumbnail
314
+ }.compact
315
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/company"
316
+ end
317
+ NewDemoApiClient::CompanyResponse.from_json(json_object: response.body)
318
+ end
319
+ end
320
+
321
+ # Get all companies for a group.
322
+ #
323
+ # @param group_id [Integer]
324
+ # @param sort_by [String]
325
+ # @param sort_order [String]
326
+ # @param page [Integer]
327
+ # @param page_size [Integer]
328
+ # @param request_options [NewDemoApiClient::RequestOptions]
329
+ # @return [NewDemoApiClient::PaginatedResponseCompanyResponse]
330
+ # @example
331
+ # api = NewDemoApiClient::Client.new(
332
+ # base_url: "https://api.example.com",
333
+ # environment: NewDemoApiClient::Environment::DEFAULT,
334
+ # token: "YOUR_AUTH_TOKEN"
335
+ # )
336
+ # api.company.list(group_id: 1)
337
+ def list(group_id:, sort_by: nil, sort_order: nil, page: nil, page_size: nil, request_options: nil)
338
+ Async do
339
+ response = @request_client.conn.get do |req|
340
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
341
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
342
+ req.headers = {
343
+ **(req.headers || {}),
344
+ **@request_client.get_headers,
345
+ **(request_options&.additional_headers || {})
346
+ }.compact
347
+ req.params = {
348
+ **(request_options&.additional_query_parameters || {}),
349
+ "sort_by": sort_by,
350
+ "sort_order": sort_order,
351
+ "page": page,
352
+ "page_size": page_size
353
+ }.compact
354
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
355
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
356
+ end
357
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/company/all"
358
+ end
359
+ NewDemoApiClient::PaginatedResponseCompanyResponse.from_json(json_object: response.body)
360
+ end
361
+ end
362
+
363
+ # Get a company by ID.
364
+ #
365
+ # @param group_id [Integer]
366
+ # @param company_id [Integer]
367
+ # @param request_options [NewDemoApiClient::RequestOptions]
368
+ # @return [NewDemoApiClient::CompanyResponse]
369
+ # @example
370
+ # api = NewDemoApiClient::Client.new(
371
+ # base_url: "https://api.example.com",
372
+ # environment: NewDemoApiClient::Environment::DEFAULT,
373
+ # token: "YOUR_AUTH_TOKEN"
374
+ # )
375
+ # api.company.get(group_id: 1, company_id: 1)
376
+ def get(group_id:, company_id:, request_options: nil)
377
+ Async do
378
+ response = @request_client.conn.get do |req|
379
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
380
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
381
+ req.headers = {
382
+ **(req.headers || {}),
383
+ **@request_client.get_headers,
384
+ **(request_options&.additional_headers || {})
385
+ }.compact
386
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
387
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
388
+ end
389
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
390
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
391
+ end
392
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/company/#{company_id}"
393
+ end
394
+ NewDemoApiClient::CompanyResponse.from_json(json_object: response.body)
395
+ end
396
+ end
397
+
398
+ # Update a company.
399
+ #
400
+ # @param group_id [Integer]
401
+ # @param company_id [Integer]
402
+ # @param name [String]
403
+ # @param domain [String]
404
+ # @param thumbnail [String] The thumbnail URL of the company
405
+ # @param request_options [NewDemoApiClient::RequestOptions]
406
+ # @return [NewDemoApiClient::CompanyResponse]
407
+ # @example
408
+ # api = NewDemoApiClient::Client.new(
409
+ # base_url: "https://api.example.com",
410
+ # environment: NewDemoApiClient::Environment::DEFAULT,
411
+ # token: "YOUR_AUTH_TOKEN"
412
+ # )
413
+ # api.company.update(group_id: 1, company_id: 1)
414
+ def update(group_id:, company_id:, name: nil, domain: nil, thumbnail: nil, request_options: nil)
415
+ Async do
416
+ response = @request_client.conn.put do |req|
417
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
418
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
419
+ req.headers = {
420
+ **(req.headers || {}),
421
+ **@request_client.get_headers,
422
+ **(request_options&.additional_headers || {})
423
+ }.compact
424
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
425
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
426
+ end
427
+ req.body = {
428
+ **(request_options&.additional_body_parameters || {}),
429
+ name: name,
430
+ domain: domain,
431
+ thumbnail: thumbnail
432
+ }.compact
433
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/company/#{company_id}"
434
+ end
435
+ NewDemoApiClient::CompanyResponse.from_json(json_object: response.body)
436
+ end
437
+ end
438
+
439
+ # Delete a company.
440
+ #
441
+ # @param company_id [Integer]
442
+ # @param group_id [Integer]
443
+ # @param archive [Boolean]
444
+ # @param request_options [NewDemoApiClient::RequestOptions]
445
+ # @return [Object]
446
+ # @example
447
+ # api = NewDemoApiClient::Client.new(
448
+ # base_url: "https://api.example.com",
449
+ # environment: NewDemoApiClient::Environment::DEFAULT,
450
+ # token: "YOUR_AUTH_TOKEN"
451
+ # )
452
+ # api.company.delete(company_id: 1, group_id: 1)
453
+ def delete(company_id:, group_id:, archive: nil, request_options: nil)
454
+ Async do
455
+ response = @request_client.conn.delete do |req|
456
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
457
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
458
+ req.headers = {
459
+ **(req.headers || {}),
460
+ **@request_client.get_headers,
461
+ **(request_options&.additional_headers || {})
462
+ }.compact
463
+ req.params = { **(request_options&.additional_query_parameters || {}), "archive": archive }.compact
464
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
465
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
466
+ end
467
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{company_id}/company/#{group_id}"
468
+ end
469
+ parsed_json = JSON.parse(response.body)
470
+ parsed_json
471
+ end
472
+ end
473
+ end
474
+ end