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,737 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../requests"
4
+ require_relative "../types/group_with_users_response"
5
+ require_relative "../types/paginated_response_group_user"
6
+ require_relative "../types/group_response"
7
+ require_relative "../../core/file_utilities"
8
+ require_relative "../types/user_role_response"
9
+ require "async"
10
+
11
+ module NewDemoApiClient
12
+ class GroupClient
13
+ # @return [NewDemoApiClient::RequestClient]
14
+ attr_reader :request_client
15
+
16
+ # @param request_client [NewDemoApiClient::RequestClient]
17
+ # @return [NewDemoApiClient::GroupClient]
18
+ def initialize(request_client:)
19
+ @request_client = request_client
20
+ end
21
+
22
+ # Lookup a group by its domain.
23
+ #
24
+ # @param domain [String]
25
+ # @param sort_by [String]
26
+ # @param sort_order [String]
27
+ # @param page [Integer]
28
+ # @param page_size [Integer]
29
+ # @param request_options [NewDemoApiClient::RequestOptions]
30
+ # @return [NewDemoApiClient::GroupWithUsersResponse]
31
+ # @example
32
+ # api = NewDemoApiClient::Client.new(
33
+ # base_url: "https://api.example.com",
34
+ # environment: NewDemoApiClient::Environment::DEFAULT,
35
+ # token: "YOUR_AUTH_TOKEN"
36
+ # )
37
+ # api.group.get_by_domain(domain: "domain")
38
+ def get_by_domain(domain:, sort_by: nil, sort_order: nil, page: nil, page_size: nil, request_options: nil)
39
+ response = @request_client.conn.get do |req|
40
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
41
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
42
+ req.headers = {
43
+ **(req.headers || {}),
44
+ **@request_client.get_headers,
45
+ **(request_options&.additional_headers || {})
46
+ }.compact
47
+ req.params = {
48
+ **(request_options&.additional_query_parameters || {}),
49
+ "domain": domain,
50
+ "sort_by": sort_by,
51
+ "sort_order": sort_order,
52
+ "page": page,
53
+ "page_size": page_size
54
+ }.compact
55
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
56
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
57
+ end
58
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group"
59
+ end
60
+ NewDemoApiClient::GroupWithUsersResponse.from_json(json_object: response.body)
61
+ end
62
+
63
+ # Get a group by its ID.
64
+ #
65
+ # @param group_id [Integer]
66
+ # @param request_options [NewDemoApiClient::RequestOptions]
67
+ # @return [NewDemoApiClient::GroupWithUsersResponse]
68
+ # @example
69
+ # api = NewDemoApiClient::Client.new(
70
+ # base_url: "https://api.example.com",
71
+ # environment: NewDemoApiClient::Environment::DEFAULT,
72
+ # token: "YOUR_AUTH_TOKEN"
73
+ # )
74
+ # api.group.get(group_id: 1)
75
+ def get(group_id:, request_options: nil)
76
+ response = @request_client.conn.get do |req|
77
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
78
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
79
+ req.headers = {
80
+ **(req.headers || {}),
81
+ **@request_client.get_headers,
82
+ **(request_options&.additional_headers || {})
83
+ }.compact
84
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
85
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
86
+ end
87
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
88
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
89
+ end
90
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}"
91
+ end
92
+ NewDemoApiClient::GroupWithUsersResponse.from_json(json_object: response.body)
93
+ end
94
+
95
+ # Update a group.
96
+ #
97
+ # @param group_id [Integer]
98
+ # @param name [String]
99
+ # @param domain [String]
100
+ # @param thumbnail_url [String] The thumbnail URL of the group
101
+ # @param analysis_email [String] The email address for analysis to be sent to
102
+ # @param data_api_access [Boolean] Whether the group has access to the data API
103
+ # @param account_manager_id [Integer]
104
+ # @param request_options [NewDemoApiClient::RequestOptions]
105
+ # @return [NewDemoApiClient::GroupWithUsersResponse]
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.group.update(group_id: 1)
113
+ def update(group_id:, name: nil, domain: nil, thumbnail_url: nil, analysis_email: nil, data_api_access: nil,
114
+ account_manager_id: nil, request_options: nil)
115
+ response = @request_client.conn.put do |req|
116
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
117
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
118
+ req.headers = {
119
+ **(req.headers || {}),
120
+ **@request_client.get_headers,
121
+ **(request_options&.additional_headers || {})
122
+ }.compact
123
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
124
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
125
+ end
126
+ req.body = {
127
+ **(request_options&.additional_body_parameters || {}),
128
+ name: name,
129
+ domain: domain,
130
+ thumbnail_url: thumbnail_url,
131
+ analysis_email: analysis_email,
132
+ data_api_access: data_api_access,
133
+ account_manager_id: account_manager_id
134
+ }.compact
135
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}"
136
+ end
137
+ NewDemoApiClient::GroupWithUsersResponse.from_json(json_object: response.body)
138
+ end
139
+
140
+ # Get all users in a group.
141
+ #
142
+ # @param group_id [Integer]
143
+ # @param sort_by [String]
144
+ # @param sort_order [String]
145
+ # @param page [Integer]
146
+ # @param page_size [Integer]
147
+ # @param request_options [NewDemoApiClient::RequestOptions]
148
+ # @return [NewDemoApiClient::PaginatedResponseGroupUser]
149
+ # @example
150
+ # api = NewDemoApiClient::Client.new(
151
+ # base_url: "https://api.example.com",
152
+ # environment: NewDemoApiClient::Environment::DEFAULT,
153
+ # token: "YOUR_AUTH_TOKEN"
154
+ # )
155
+ # api.group.list_users(group_id: 1)
156
+ def list_users(group_id:, sort_by: nil, sort_order: nil, page: nil, page_size: nil, request_options: nil)
157
+ response = @request_client.conn.get do |req|
158
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
159
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
160
+ req.headers = {
161
+ **(req.headers || {}),
162
+ **@request_client.get_headers,
163
+ **(request_options&.additional_headers || {})
164
+ }.compact
165
+ req.params = {
166
+ **(request_options&.additional_query_parameters || {}),
167
+ "sort_by": sort_by,
168
+ "sort_order": sort_order,
169
+ "page": page,
170
+ "page_size": page_size
171
+ }.compact
172
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
173
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
174
+ end
175
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/user/all"
176
+ end
177
+ NewDemoApiClient::PaginatedResponseGroupUser.from_json(json_object: response.body)
178
+ end
179
+
180
+ # Get all users in a group.
181
+ #
182
+ # @param group_id [Integer]
183
+ # @param name [String]
184
+ # @param email [String]
185
+ # @param sort_by [String]
186
+ # @param sort_order [String]
187
+ # @param page [Integer]
188
+ # @param page_size [Integer]
189
+ # @param request_options [NewDemoApiClient::RequestOptions]
190
+ # @return [NewDemoApiClient::PaginatedResponseGroupUser]
191
+ # @example
192
+ # api = NewDemoApiClient::Client.new(
193
+ # base_url: "https://api.example.com",
194
+ # environment: NewDemoApiClient::Environment::DEFAULT,
195
+ # token: "YOUR_AUTH_TOKEN"
196
+ # )
197
+ # api.group.search_users(group_id: 1)
198
+ def search_users(group_id:, name: nil, email: nil, sort_by: nil, sort_order: nil, page: nil, page_size: nil,
199
+ request_options: nil)
200
+ response = @request_client.conn.get do |req|
201
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
202
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
203
+ req.headers = {
204
+ **(req.headers || {}),
205
+ **@request_client.get_headers,
206
+ **(request_options&.additional_headers || {})
207
+ }.compact
208
+ req.params = {
209
+ **(request_options&.additional_query_parameters || {}),
210
+ "name": name,
211
+ "email": email,
212
+ "sort_by": sort_by,
213
+ "sort_order": sort_order,
214
+ "page": page,
215
+ "page_size": page_size
216
+ }.compact
217
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
218
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
219
+ end
220
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/user/search"
221
+ end
222
+ NewDemoApiClient::PaginatedResponseGroupUser.from_json(json_object: response.body)
223
+ end
224
+
225
+ # Upload an avatar for a group.
226
+ #
227
+ # @param group_id [Integer]
228
+ # @param image [String, IO]
229
+ # @param request_options [NewDemoApiClient::RequestOptions]
230
+ # @return [NewDemoApiClient::GroupResponse]
231
+ # @example
232
+ # api = NewDemoApiClient::Client.new(
233
+ # base_url: "https://api.example.com",
234
+ # environment: NewDemoApiClient::Environment::DEFAULT,
235
+ # token: "YOUR_AUTH_TOKEN"
236
+ # )
237
+ # api.group.upload_group_avatar(group_id: 1, image: my_file.txt)
238
+ def upload_group_avatar(group_id:, image:, request_options: nil)
239
+ response = @request_client.conn.post do |req|
240
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
241
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
242
+ req.headers = {
243
+ **(req.headers || {}),
244
+ **@request_client.get_headers,
245
+ **(request_options&.additional_headers || {})
246
+ }.compact
247
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
248
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
249
+ end
250
+ req.body = {
251
+ **(request_options&.additional_body_parameters || {}),
252
+ image: NewDemoApiClient::FileUtilities.as_faraday_multipart(file_like: image)
253
+ }.compact
254
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/avatar"
255
+ end
256
+ NewDemoApiClient::GroupResponse.from_json(json_object: response.body)
257
+ end
258
+
259
+ # Add a user role to a group.
260
+ #
261
+ # @param user_id [Integer]
262
+ # @param group_id [Integer]
263
+ # @param role_id [Integer]
264
+ # @param role_name [String]
265
+ # @param request_options [NewDemoApiClient::RequestOptions]
266
+ # @return [NewDemoApiClient::UserRoleResponse]
267
+ # @example
268
+ # api = NewDemoApiClient::Client.new(
269
+ # base_url: "https://api.example.com",
270
+ # environment: NewDemoApiClient::Environment::DEFAULT,
271
+ # token: "YOUR_AUTH_TOKEN"
272
+ # )
273
+ # api.group.create_user_role(user_id: 1, group_id: 1)
274
+ def create_user_role(user_id:, group_id:, role_id: nil, role_name: nil, request_options: nil)
275
+ response = @request_client.conn.post do |req|
276
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
277
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
278
+ req.headers = {
279
+ **(req.headers || {}),
280
+ **@request_client.get_headers,
281
+ **(request_options&.additional_headers || {})
282
+ }.compact
283
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
284
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
285
+ end
286
+ req.body = {
287
+ **(request_options&.additional_body_parameters || {}),
288
+ role_id: role_id,
289
+ role_name: role_name
290
+ }.compact
291
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{user_id}/user/#{group_id}"
292
+ end
293
+ NewDemoApiClient::UserRoleResponse.from_json(json_object: response.body)
294
+ end
295
+
296
+ # Update the roles of a user in a group.
297
+ #
298
+ # @param user_id [Integer]
299
+ # @param group_id [Integer]
300
+ # @param role_ids [Array<Integer>]
301
+ # @param request_options [NewDemoApiClient::RequestOptions]
302
+ # @return [NewDemoApiClient::UserRoleResponse]
303
+ # @example
304
+ # api = NewDemoApiClient::Client.new(
305
+ # base_url: "https://api.example.com",
306
+ # environment: NewDemoApiClient::Environment::DEFAULT,
307
+ # token: "YOUR_AUTH_TOKEN"
308
+ # )
309
+ # api.group.update_user_roles(
310
+ # user_id: 1,
311
+ # group_id: 1,
312
+ # role_ids: [1]
313
+ # )
314
+ def update_user_roles(user_id:, group_id:, role_ids:, request_options: nil)
315
+ response = @request_client.conn.put do |req|
316
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
317
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
318
+ req.headers = {
319
+ **(req.headers || {}),
320
+ **@request_client.get_headers,
321
+ **(request_options&.additional_headers || {})
322
+ }.compact
323
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
324
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
325
+ end
326
+ req.body = { **(request_options&.additional_body_parameters || {}), role_ids: role_ids }.compact
327
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{user_id}/user/#{group_id}"
328
+ end
329
+ NewDemoApiClient::UserRoleResponse.from_json(json_object: response.body)
330
+ end
331
+
332
+ # Remove a user from a group.
333
+ #
334
+ # @param user_id [Integer]
335
+ # @param group_id [Integer]
336
+ # @param request_options [NewDemoApiClient::RequestOptions]
337
+ # @return [NewDemoApiClient::UserRoleResponse]
338
+ # @example
339
+ # api = NewDemoApiClient::Client.new(
340
+ # base_url: "https://api.example.com",
341
+ # environment: NewDemoApiClient::Environment::DEFAULT,
342
+ # token: "YOUR_AUTH_TOKEN"
343
+ # )
344
+ # api.group.remove_user(user_id: 1, group_id: 1)
345
+ def remove_user(user_id:, group_id:, request_options: nil)
346
+ response = @request_client.conn.delete do |req|
347
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
348
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
349
+ req.headers = {
350
+ **(req.headers || {}),
351
+ **@request_client.get_headers,
352
+ **(request_options&.additional_headers || {})
353
+ }.compact
354
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
355
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
356
+ end
357
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
358
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
359
+ end
360
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{user_id}/user/#{group_id}"
361
+ end
362
+ NewDemoApiClient::UserRoleResponse.from_json(json_object: response.body)
363
+ end
364
+ end
365
+
366
+ class AsyncGroupClient
367
+ # @return [NewDemoApiClient::AsyncRequestClient]
368
+ attr_reader :request_client
369
+
370
+ # @param request_client [NewDemoApiClient::AsyncRequestClient]
371
+ # @return [NewDemoApiClient::AsyncGroupClient]
372
+ def initialize(request_client:)
373
+ @request_client = request_client
374
+ end
375
+
376
+ # Lookup a group by its domain.
377
+ #
378
+ # @param domain [String]
379
+ # @param sort_by [String]
380
+ # @param sort_order [String]
381
+ # @param page [Integer]
382
+ # @param page_size [Integer]
383
+ # @param request_options [NewDemoApiClient::RequestOptions]
384
+ # @return [NewDemoApiClient::GroupWithUsersResponse]
385
+ # @example
386
+ # api = NewDemoApiClient::Client.new(
387
+ # base_url: "https://api.example.com",
388
+ # environment: NewDemoApiClient::Environment::DEFAULT,
389
+ # token: "YOUR_AUTH_TOKEN"
390
+ # )
391
+ # api.group.get_by_domain(domain: "domain")
392
+ def get_by_domain(domain:, sort_by: nil, sort_order: nil, page: nil, page_size: nil, request_options: nil)
393
+ Async do
394
+ response = @request_client.conn.get do |req|
395
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
396
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
397
+ req.headers = {
398
+ **(req.headers || {}),
399
+ **@request_client.get_headers,
400
+ **(request_options&.additional_headers || {})
401
+ }.compact
402
+ req.params = {
403
+ **(request_options&.additional_query_parameters || {}),
404
+ "domain": domain,
405
+ "sort_by": sort_by,
406
+ "sort_order": sort_order,
407
+ "page": page,
408
+ "page_size": page_size
409
+ }.compact
410
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
411
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
412
+ end
413
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group"
414
+ end
415
+ NewDemoApiClient::GroupWithUsersResponse.from_json(json_object: response.body)
416
+ end
417
+ end
418
+
419
+ # Get a group by its ID.
420
+ #
421
+ # @param group_id [Integer]
422
+ # @param request_options [NewDemoApiClient::RequestOptions]
423
+ # @return [NewDemoApiClient::GroupWithUsersResponse]
424
+ # @example
425
+ # api = NewDemoApiClient::Client.new(
426
+ # base_url: "https://api.example.com",
427
+ # environment: NewDemoApiClient::Environment::DEFAULT,
428
+ # token: "YOUR_AUTH_TOKEN"
429
+ # )
430
+ # api.group.get(group_id: 1)
431
+ def get(group_id:, request_options: nil)
432
+ Async do
433
+ response = @request_client.conn.get do |req|
434
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
435
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
436
+ req.headers = {
437
+ **(req.headers || {}),
438
+ **@request_client.get_headers,
439
+ **(request_options&.additional_headers || {})
440
+ }.compact
441
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
442
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
443
+ end
444
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
445
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
446
+ end
447
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}"
448
+ end
449
+ NewDemoApiClient::GroupWithUsersResponse.from_json(json_object: response.body)
450
+ end
451
+ end
452
+
453
+ # Update a group.
454
+ #
455
+ # @param group_id [Integer]
456
+ # @param name [String]
457
+ # @param domain [String]
458
+ # @param thumbnail_url [String] The thumbnail URL of the group
459
+ # @param analysis_email [String] The email address for analysis to be sent to
460
+ # @param data_api_access [Boolean] Whether the group has access to the data API
461
+ # @param account_manager_id [Integer]
462
+ # @param request_options [NewDemoApiClient::RequestOptions]
463
+ # @return [NewDemoApiClient::GroupWithUsersResponse]
464
+ # @example
465
+ # api = NewDemoApiClient::Client.new(
466
+ # base_url: "https://api.example.com",
467
+ # environment: NewDemoApiClient::Environment::DEFAULT,
468
+ # token: "YOUR_AUTH_TOKEN"
469
+ # )
470
+ # api.group.update(group_id: 1)
471
+ def update(group_id:, name: nil, domain: nil, thumbnail_url: nil, analysis_email: nil, data_api_access: nil,
472
+ account_manager_id: nil, request_options: nil)
473
+ Async do
474
+ response = @request_client.conn.put do |req|
475
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
476
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
477
+ req.headers = {
478
+ **(req.headers || {}),
479
+ **@request_client.get_headers,
480
+ **(request_options&.additional_headers || {})
481
+ }.compact
482
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
483
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
484
+ end
485
+ req.body = {
486
+ **(request_options&.additional_body_parameters || {}),
487
+ name: name,
488
+ domain: domain,
489
+ thumbnail_url: thumbnail_url,
490
+ analysis_email: analysis_email,
491
+ data_api_access: data_api_access,
492
+ account_manager_id: account_manager_id
493
+ }.compact
494
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}"
495
+ end
496
+ NewDemoApiClient::GroupWithUsersResponse.from_json(json_object: response.body)
497
+ end
498
+ end
499
+
500
+ # Get all users in a group.
501
+ #
502
+ # @param group_id [Integer]
503
+ # @param sort_by [String]
504
+ # @param sort_order [String]
505
+ # @param page [Integer]
506
+ # @param page_size [Integer]
507
+ # @param request_options [NewDemoApiClient::RequestOptions]
508
+ # @return [NewDemoApiClient::PaginatedResponseGroupUser]
509
+ # @example
510
+ # api = NewDemoApiClient::Client.new(
511
+ # base_url: "https://api.example.com",
512
+ # environment: NewDemoApiClient::Environment::DEFAULT,
513
+ # token: "YOUR_AUTH_TOKEN"
514
+ # )
515
+ # api.group.list_users(group_id: 1)
516
+ def list_users(group_id:, sort_by: nil, sort_order: nil, page: nil, page_size: nil, request_options: nil)
517
+ Async do
518
+ response = @request_client.conn.get do |req|
519
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
520
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
521
+ req.headers = {
522
+ **(req.headers || {}),
523
+ **@request_client.get_headers,
524
+ **(request_options&.additional_headers || {})
525
+ }.compact
526
+ req.params = {
527
+ **(request_options&.additional_query_parameters || {}),
528
+ "sort_by": sort_by,
529
+ "sort_order": sort_order,
530
+ "page": page,
531
+ "page_size": page_size
532
+ }.compact
533
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
534
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
535
+ end
536
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/user/all"
537
+ end
538
+ NewDemoApiClient::PaginatedResponseGroupUser.from_json(json_object: response.body)
539
+ end
540
+ end
541
+
542
+ # Get all users in a group.
543
+ #
544
+ # @param group_id [Integer]
545
+ # @param name [String]
546
+ # @param email [String]
547
+ # @param sort_by [String]
548
+ # @param sort_order [String]
549
+ # @param page [Integer]
550
+ # @param page_size [Integer]
551
+ # @param request_options [NewDemoApiClient::RequestOptions]
552
+ # @return [NewDemoApiClient::PaginatedResponseGroupUser]
553
+ # @example
554
+ # api = NewDemoApiClient::Client.new(
555
+ # base_url: "https://api.example.com",
556
+ # environment: NewDemoApiClient::Environment::DEFAULT,
557
+ # token: "YOUR_AUTH_TOKEN"
558
+ # )
559
+ # api.group.search_users(group_id: 1)
560
+ def search_users(group_id:, name: nil, email: nil, sort_by: nil, sort_order: nil, page: nil, page_size: nil,
561
+ request_options: nil)
562
+ Async do
563
+ response = @request_client.conn.get do |req|
564
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
565
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
566
+ req.headers = {
567
+ **(req.headers || {}),
568
+ **@request_client.get_headers,
569
+ **(request_options&.additional_headers || {})
570
+ }.compact
571
+ req.params = {
572
+ **(request_options&.additional_query_parameters || {}),
573
+ "name": name,
574
+ "email": email,
575
+ "sort_by": sort_by,
576
+ "sort_order": sort_order,
577
+ "page": page,
578
+ "page_size": page_size
579
+ }.compact
580
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
581
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
582
+ end
583
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/user/search"
584
+ end
585
+ NewDemoApiClient::PaginatedResponseGroupUser.from_json(json_object: response.body)
586
+ end
587
+ end
588
+
589
+ # Upload an avatar for a group.
590
+ #
591
+ # @param group_id [Integer]
592
+ # @param image [String, IO]
593
+ # @param request_options [NewDemoApiClient::RequestOptions]
594
+ # @return [NewDemoApiClient::GroupResponse]
595
+ # @example
596
+ # api = NewDemoApiClient::Client.new(
597
+ # base_url: "https://api.example.com",
598
+ # environment: NewDemoApiClient::Environment::DEFAULT,
599
+ # token: "YOUR_AUTH_TOKEN"
600
+ # )
601
+ # api.group.upload_group_avatar(group_id: 1, image: my_file.txt)
602
+ def upload_group_avatar(group_id:, image:, request_options: nil)
603
+ Async do
604
+ response = @request_client.conn.post do |req|
605
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
606
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
607
+ req.headers = {
608
+ **(req.headers || {}),
609
+ **@request_client.get_headers,
610
+ **(request_options&.additional_headers || {})
611
+ }.compact
612
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
613
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
614
+ end
615
+ req.body = {
616
+ **(request_options&.additional_body_parameters || {}),
617
+ image: NewDemoApiClient::FileUtilities.as_faraday_multipart(file_like: image)
618
+ }.compact
619
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{group_id}/avatar"
620
+ end
621
+ NewDemoApiClient::GroupResponse.from_json(json_object: response.body)
622
+ end
623
+ end
624
+
625
+ # Add a user role to a group.
626
+ #
627
+ # @param user_id [Integer]
628
+ # @param group_id [Integer]
629
+ # @param role_id [Integer]
630
+ # @param role_name [String]
631
+ # @param request_options [NewDemoApiClient::RequestOptions]
632
+ # @return [NewDemoApiClient::UserRoleResponse]
633
+ # @example
634
+ # api = NewDemoApiClient::Client.new(
635
+ # base_url: "https://api.example.com",
636
+ # environment: NewDemoApiClient::Environment::DEFAULT,
637
+ # token: "YOUR_AUTH_TOKEN"
638
+ # )
639
+ # api.group.create_user_role(user_id: 1, group_id: 1)
640
+ def create_user_role(user_id:, group_id:, role_id: nil, role_name: nil, request_options: nil)
641
+ Async do
642
+ response = @request_client.conn.post do |req|
643
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
644
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
645
+ req.headers = {
646
+ **(req.headers || {}),
647
+ **@request_client.get_headers,
648
+ **(request_options&.additional_headers || {})
649
+ }.compact
650
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
651
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
652
+ end
653
+ req.body = {
654
+ **(request_options&.additional_body_parameters || {}),
655
+ role_id: role_id,
656
+ role_name: role_name
657
+ }.compact
658
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{user_id}/user/#{group_id}"
659
+ end
660
+ NewDemoApiClient::UserRoleResponse.from_json(json_object: response.body)
661
+ end
662
+ end
663
+
664
+ # Update the roles of a user in a group.
665
+ #
666
+ # @param user_id [Integer]
667
+ # @param group_id [Integer]
668
+ # @param role_ids [Array<Integer>]
669
+ # @param request_options [NewDemoApiClient::RequestOptions]
670
+ # @return [NewDemoApiClient::UserRoleResponse]
671
+ # @example
672
+ # api = NewDemoApiClient::Client.new(
673
+ # base_url: "https://api.example.com",
674
+ # environment: NewDemoApiClient::Environment::DEFAULT,
675
+ # token: "YOUR_AUTH_TOKEN"
676
+ # )
677
+ # api.group.update_user_roles(
678
+ # user_id: 1,
679
+ # group_id: 1,
680
+ # role_ids: [1]
681
+ # )
682
+ def update_user_roles(user_id:, group_id:, role_ids:, request_options: nil)
683
+ Async do
684
+ response = @request_client.conn.put do |req|
685
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
686
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
687
+ req.headers = {
688
+ **(req.headers || {}),
689
+ **@request_client.get_headers,
690
+ **(request_options&.additional_headers || {})
691
+ }.compact
692
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
693
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
694
+ end
695
+ req.body = { **(request_options&.additional_body_parameters || {}), role_ids: role_ids }.compact
696
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{user_id}/user/#{group_id}"
697
+ end
698
+ NewDemoApiClient::UserRoleResponse.from_json(json_object: response.body)
699
+ end
700
+ end
701
+
702
+ # Remove a user from a group.
703
+ #
704
+ # @param user_id [Integer]
705
+ # @param group_id [Integer]
706
+ # @param request_options [NewDemoApiClient::RequestOptions]
707
+ # @return [NewDemoApiClient::UserRoleResponse]
708
+ # @example
709
+ # api = NewDemoApiClient::Client.new(
710
+ # base_url: "https://api.example.com",
711
+ # environment: NewDemoApiClient::Environment::DEFAULT,
712
+ # token: "YOUR_AUTH_TOKEN"
713
+ # )
714
+ # api.group.remove_user(user_id: 1, group_id: 1)
715
+ def remove_user(user_id:, group_id:, request_options: nil)
716
+ Async do
717
+ response = @request_client.conn.delete do |req|
718
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
719
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
720
+ req.headers = {
721
+ **(req.headers || {}),
722
+ **@request_client.get_headers,
723
+ **(request_options&.additional_headers || {})
724
+ }.compact
725
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
726
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
727
+ end
728
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
729
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
730
+ end
731
+ req.url "#{@request_client.get_url(request_options: request_options)}/api/v1/group/#{user_id}/user/#{group_id}"
732
+ end
733
+ NewDemoApiClient::UserRoleResponse.from_json(json_object: response.body)
734
+ end
735
+ end
736
+ end
737
+ end