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