crowdin-api 1.14.0 → 1.15.1

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 (81) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/docs.yml +1 -0
  3. data/.rubocop.yml +4 -0
  4. data/.rubocop_todo.yml +1 -0
  5. data/AGENTS.md +63 -0
  6. data/CLAUDE.md +1 -0
  7. data/Gemfile.lock +7 -7
  8. data/README.md +1 -1
  9. data/crowdin-api.gemspec +1 -1
  10. data/lib/crowdin-api/api_resources/advisor.rb +86 -0
  11. data/lib/crowdin-api/api_resources/ai.rb +974 -0
  12. data/lib/crowdin-api/api_resources/applications.rb +247 -10
  13. data/lib/crowdin-api/api_resources/bundles.rb +45 -29
  14. data/lib/crowdin-api/api_resources/clients.rb +23 -0
  15. data/lib/crowdin-api/api_resources/custom_spellcheckers.rb +36 -0
  16. data/lib/crowdin-api/api_resources/dictionaries.rb +5 -5
  17. data/lib/crowdin-api/api_resources/distributions.rb +15 -15
  18. data/lib/crowdin-api/api_resources/external_qa_checks.rb +36 -0
  19. data/lib/crowdin-api/api_resources/fields.rb +78 -0
  20. data/lib/crowdin-api/api_resources/glossaries.rb +62 -50
  21. data/lib/crowdin-api/api_resources/integrations.rb +201 -0
  22. data/lib/crowdin-api/api_resources/labels.rb +32 -0
  23. data/lib/crowdin-api/api_resources/languages.rb +16 -0
  24. data/lib/crowdin-api/api_resources/machine_translation_engines.rb +17 -0
  25. data/lib/crowdin-api/api_resources/notifications.rb +15 -6
  26. data/lib/crowdin-api/api_resources/organization.rb +33 -0
  27. data/lib/crowdin-api/api_resources/organization_webhooks.rb +71 -0
  28. data/lib/crowdin-api/api_resources/placeholders.rb +182 -0
  29. data/lib/crowdin-api/api_resources/projects.rb +137 -41
  30. data/lib/crowdin-api/api_resources/reports.rb +310 -26
  31. data/lib/crowdin-api/api_resources/screenshots.rb +48 -0
  32. data/lib/crowdin-api/api_resources/security_logs.rb +63 -0
  33. data/lib/crowdin-api/api_resources/source_files.rb +370 -65
  34. data/lib/crowdin-api/api_resources/source_strings.rb +62 -0
  35. data/lib/crowdin-api/api_resources/storages.rb +11 -11
  36. data/lib/crowdin-api/api_resources/string_comments.rb +46 -0
  37. data/lib/crowdin-api/api_resources/string_corrections.rb +21 -6
  38. data/lib/crowdin-api/api_resources/string_translations.rb +96 -0
  39. data/lib/crowdin-api/api_resources/style_guides.rb +71 -0
  40. data/lib/crowdin-api/api_resources/tasks.rb +140 -10
  41. data/lib/crowdin-api/api_resources/teams.rb +99 -0
  42. data/lib/crowdin-api/api_resources/translation_memory.rb +138 -0
  43. data/lib/crowdin-api/api_resources/translation_status.rb +65 -0
  44. data/lib/crowdin-api/api_resources/translations.rb +122 -2
  45. data/lib/crowdin-api/api_resources/users.rb +136 -6
  46. data/lib/crowdin-api/api_resources/vendors.rb +2 -0
  47. data/lib/crowdin-api/api_resources/webhooks.rb +16 -0
  48. data/lib/crowdin-api/api_resources/workflows.rb +24 -0
  49. data/lib/crowdin-api/client/version.rb +1 -1
  50. data/lib/crowdin-api/core/request.rb +1 -1
  51. data/lib/crowdin-api.rb +3 -1
  52. data/spec/api_resources/advisor_spec.rb +45 -0
  53. data/spec/api_resources/ai_spec.rb +863 -0
  54. data/spec/api_resources/applications_spec.rb +138 -0
  55. data/spec/api_resources/bundles_spec.rb +8 -0
  56. data/spec/api_resources/clients_spec.rb +13 -0
  57. data/spec/api_resources/custom_spellcheckers_spec.rb +21 -0
  58. data/spec/api_resources/external_qa_checks_spec.rb +21 -0
  59. data/spec/api_resources/fields_spec.rb +45 -0
  60. data/spec/api_resources/glossaries_spec.rb +18 -0
  61. data/spec/api_resources/integrations_spec.rb +117 -0
  62. data/spec/api_resources/organization_spec.rb +21 -0
  63. data/spec/api_resources/organization_webhooks_spec.rb +45 -0
  64. data/spec/api_resources/placeholders_spec.rb +103 -0
  65. data/spec/api_resources/projects_spec.rb +58 -0
  66. data/spec/api_resources/reports_spec.rb +221 -0
  67. data/spec/api_resources/security_logs_spec.rb +39 -0
  68. data/spec/api_resources/source_files_spec.rb +182 -0
  69. data/spec/api_resources/source_strings_spec.rb +26 -0
  70. data/spec/api_resources/string_comments_spec.rb +18 -0
  71. data/spec/api_resources/string_corrections_spec.rb +25 -19
  72. data/spec/api_resources/string_translations_spec.rb +26 -0
  73. data/spec/api_resources/style_guides_spec.rb +45 -0
  74. data/spec/api_resources/tasks_spec.rb +60 -0
  75. data/spec/api_resources/teams_spec.rb +42 -0
  76. data/spec/api_resources/translation_memory_spec.rb +58 -0
  77. data/spec/api_resources/translation_status_spec.rb +26 -0
  78. data/spec/api_resources/translations_spec.rb +42 -0
  79. data/spec/api_resources/users_spec.rb +84 -0
  80. data/spec/api_resources/workflows_spec.rb +10 -0
  81. metadata +29 -3
@@ -0,0 +1,974 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module ApiResources
5
+ module Ai
6
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.projects.ai.settings.get API Documentation}
7
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.ai.settings.get Enterprise API Documentation}
8
+ def get_project_ai_settings(project_id = config.project_id)
9
+ project_id || raise_project_id_is_required_error
10
+
11
+ request = Web::Request.new(
12
+ connection,
13
+ :get,
14
+ "#{config.target_api_url}/projects/#{project_id}/ai/settings"
15
+ )
16
+ Web::SendRequest.new(request).perform
17
+ end
18
+
19
+ # @param body [Hash] Request Body
20
+ # @param user_id [Integer] User Identifier (Crowdin only)
21
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.file-translations.post API Documentation}
22
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.file-translations.post Enterprise API Documentation}
23
+ def ai_file_translations(body = {}, user_id = nil)
24
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
25
+
26
+ endpoint = 'ai/file-translations'
27
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
28
+ request = Web::Request.new(
29
+ connection,
30
+ :post,
31
+ "#{config.target_api_url}/#{endpoint}",
32
+ { params: body }
33
+ )
34
+ Web::SendRequest.new(request).perform
35
+ end
36
+
37
+ # @param job_identifier [String] AI File Translations job identifier
38
+ # @param user_id [Integer] User Identifier (Crowdin only)
39
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.file-translations.delete API Documentation}
40
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.file-translations.delete Enterprise API Documentation}
41
+ def cancel_file_translations(job_identifier, user_id = nil)
42
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
43
+
44
+ endpoint = "ai/file-translations/#{job_identifier}"
45
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
46
+ request = Web::Request.new(
47
+ connection,
48
+ :delete,
49
+ "#{config.target_api_url}/#{endpoint}"
50
+ )
51
+ Web::SendRequest.new(request).perform
52
+ end
53
+
54
+ # @param job_identifier [String] AI File Translations job identifier
55
+ # @param user_id [Integer] User Identifier (Crowdin only)
56
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.file-translations.get API Documentation}
57
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.file-translations.get Enterprise API Documentation}
58
+ def get_file_translations_status(job_identifier, user_id = nil)
59
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
60
+
61
+ endpoint = "ai/file-translations/#{job_identifier}"
62
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
63
+ request = Web::Request.new(
64
+ connection,
65
+ :get,
66
+ "#{config.target_api_url}/#{endpoint}"
67
+ )
68
+ Web::SendRequest.new(request).perform
69
+ end
70
+
71
+ # @param job_identifier [String] AI File Translations job identifier
72
+ # @param destination [String] Destination of File
73
+ # @param user_id [Integer] User Identifier (Crowdin only)
74
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.file-translations.download API Documentation}
75
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.file-translations.download Enterprise API Documentation}
76
+ def download_translated_file(job_identifier, destination = nil, user_id = nil)
77
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
78
+
79
+ endpoint = "ai/file-translations/#{job_identifier}/download"
80
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
81
+ request = Web::Request.new(
82
+ connection,
83
+ :get,
84
+ "#{config.target_api_url}/#{endpoint}"
85
+ )
86
+ Web::SendRequest.new(request, destination).perform
87
+ end
88
+
89
+ # @param job_identifier [String] AI File Translations job identifier
90
+ # @param destination [String] Destination of File
91
+ # @param user_id [Integer] User Identifier (Crowdin only)
92
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.file-translations.download-strings API Documentation}
93
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.file-translations.download-strings Enterprise API Documentation}
94
+ def download_translated_file_strings(job_identifier, destination = nil, user_id = nil)
95
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
96
+
97
+ endpoint = "ai/file-translations/#{job_identifier}/translations"
98
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
99
+ request = Web::Request.new(
100
+ connection,
101
+ :get,
102
+ "#{config.target_api_url}/#{endpoint}"
103
+ )
104
+ Web::SendRequest.new(request, destination).perform
105
+ end
106
+
107
+ # @param query [Hash] Request Query Parameters
108
+ # @param user_id [Integer] User Identifier (Crowdin only)
109
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.prompts.getMany API Documentation}
110
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.getMany Enterprise API Documentation}
111
+ def list_ai_prompts(query = {}, user_id = nil)
112
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
113
+
114
+ endpoint = 'ai/prompts'
115
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
116
+ request = Web::Request.new(
117
+ connection,
118
+ :get,
119
+ "#{config.target_api_url}/#{endpoint}",
120
+ { params: query }
121
+ )
122
+ Web::SendRequest.new(request).perform
123
+ end
124
+
125
+ # @param body [Hash] Request Body
126
+ # @param user_id [Integer] User Identifier (Crowdin only)
127
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.prompts.post API Documentation}
128
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.post Enterprise API Documentation}
129
+ def add_ai_prompt(body = {}, user_id = nil)
130
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
131
+
132
+ endpoint = 'ai/prompts'
133
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
134
+ request = Web::Request.new(
135
+ connection,
136
+ :post,
137
+ "#{config.target_api_url}/#{endpoint}",
138
+ { params: body }
139
+ )
140
+ Web::SendRequest.new(request).perform
141
+ end
142
+
143
+ # @param query [Hash] Request Query Parameters
144
+ # @param user_id [Integer] User Identifier (Crowdin only)
145
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.prompts.fine-tuning.jobs.getMany API Documentation}
146
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.fine-tuning.jobs.getMany Enterprise API Documentation}
147
+ def list_ai_prompt_fine_tuning_jobs(query = {}, user_id = nil)
148
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
149
+
150
+ endpoint = 'ai/prompts/fine-tuning/jobs'
151
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
152
+ request = Web::Request.new(
153
+ connection,
154
+ :get,
155
+ "#{config.target_api_url}/#{endpoint}",
156
+ { params: query }
157
+ )
158
+ Web::SendRequest.new(request).perform
159
+ end
160
+
161
+ # @param ai_prompt_id [Integer] AI Prompt identifier
162
+ # @param user_id [Integer] User Identifier (Crowdin only)
163
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.prompts.delete API Documentation}
164
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.delete Enterprise API Documentation}
165
+ def delete_ai_prompt(ai_prompt_id, user_id = nil)
166
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
167
+
168
+ endpoint = "ai/prompts/#{ai_prompt_id}"
169
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
170
+ request = Web::Request.new(
171
+ connection,
172
+ :delete,
173
+ "#{config.target_api_url}/#{endpoint}"
174
+ )
175
+ Web::SendRequest.new(request).perform
176
+ end
177
+
178
+ # @param ai_prompt_id [Integer] AI Prompt identifier
179
+ # @param user_id [Integer] User Identifier (Crowdin only)
180
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.prompts.get API Documentation}
181
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.get Enterprise API Documentation}
182
+ def get_ai_prompt(ai_prompt_id, user_id = nil)
183
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
184
+
185
+ endpoint = "ai/prompts/#{ai_prompt_id}"
186
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
187
+ request = Web::Request.new(
188
+ connection,
189
+ :get,
190
+ "#{config.target_api_url}/#{endpoint}"
191
+ )
192
+ Web::SendRequest.new(request).perform
193
+ end
194
+
195
+ # @param ai_prompt_id [Integer] AI Prompt identifier
196
+ # @param body [Array] Request Body
197
+ # @param user_id [Integer] User Identifier (Crowdin only)
198
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.prompts.patch API Documentation}
199
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.patch Enterprise API Documentation}
200
+ def edit_ai_prompt(ai_prompt_id, body = [], user_id = nil)
201
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
202
+
203
+ endpoint = "ai/prompts/#{ai_prompt_id}"
204
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
205
+ request = Web::Request.new(
206
+ connection,
207
+ :patch,
208
+ "#{config.target_api_url}/#{endpoint}",
209
+ { params: body }
210
+ )
211
+ Web::SendRequest.new(request).perform
212
+ end
213
+
214
+ # @param ai_prompt_id [Integer] AI Prompt identifier
215
+ # @param body [Hash] Request Body
216
+ # @param user_id [Integer] User Identifier (Crowdin only)
217
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.prompts.clones.post API Documentation}
218
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.clones.post Enterprise API Documentation}
219
+ def clone_ai_prompt(ai_prompt_id, body = {}, user_id = nil)
220
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
221
+
222
+ endpoint = "ai/prompts/#{ai_prompt_id}/clones"
223
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
224
+ request = Web::Request.new(
225
+ connection,
226
+ :post,
227
+ "#{config.target_api_url}/#{endpoint}",
228
+ { params: body }
229
+ )
230
+ Web::SendRequest.new(request).perform
231
+ end
232
+
233
+ # @param ai_prompt_id [Integer] AI Prompt identifier
234
+ # @param body [Hash] Request Body
235
+ # @param user_id [Integer] User Identifier (Crowdin only)
236
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.prompts.completions.post API Documentation}
237
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.completions.post Enterprise API Documentation}
238
+ def generate_ai_prompt_completion(ai_prompt_id, body = {}, user_id = nil)
239
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
240
+
241
+ endpoint = "ai/prompts/#{ai_prompt_id}/completions"
242
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
243
+ request = Web::Request.new(
244
+ connection,
245
+ :post,
246
+ "#{config.target_api_url}/#{endpoint}",
247
+ { params: body }
248
+ )
249
+ Web::SendRequest.new(request).perform
250
+ end
251
+
252
+ # @param ai_prompt_id [Integer] AI Prompt identifier
253
+ # @param completion_id [String] Ai Prompt Completion Identifier
254
+ # @param user_id [Integer] User Identifier (Crowdin only)
255
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.prompts.completions.delete API Documentation}
256
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.completions.delete Enterprise API Documentation}
257
+ def cancel_ai_prompt_completion(ai_prompt_id, completion_id, user_id = nil)
258
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
259
+
260
+ endpoint = "ai/prompts/#{ai_prompt_id}/completions/#{completion_id}"
261
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
262
+ request = Web::Request.new(
263
+ connection,
264
+ :delete,
265
+ "#{config.target_api_url}/#{endpoint}"
266
+ )
267
+ Web::SendRequest.new(request).perform
268
+ end
269
+
270
+ # @param ai_prompt_id [Integer] AI Prompt identifier
271
+ # @param completion_id [String] Ai Prompt Completion Identifier
272
+ # @param user_id [Integer] User Identifier (Crowdin only)
273
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.prompts.completions.get API Documentation}
274
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.completions.get Enterprise API Documentation}
275
+ def get_ai_prompt_completion_status(ai_prompt_id, completion_id, user_id = nil)
276
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
277
+
278
+ endpoint = "ai/prompts/#{ai_prompt_id}/completions/#{completion_id}"
279
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
280
+ request = Web::Request.new(
281
+ connection,
282
+ :get,
283
+ "#{config.target_api_url}/#{endpoint}"
284
+ )
285
+ Web::SendRequest.new(request).perform
286
+ end
287
+
288
+ # @param ai_prompt_id [Integer] AI Prompt identifier
289
+ # @param completion_id [String] Ai Prompt Completion Identifier
290
+ # @param destination [String] Destination of File
291
+ # @param user_id [Integer] User Identifier (Crowdin only)
292
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.prompts.completions.download.download API Documentation}
293
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.completions.download.download Enterprise API Documentation}
294
+ def download_ai_prompt_completion(ai_prompt_id, completion_id, destination = nil, user_id = nil)
295
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
296
+
297
+ endpoint = "ai/prompts/#{ai_prompt_id}/completions/#{completion_id}/download"
298
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
299
+ request = Web::Request.new(
300
+ connection,
301
+ :get,
302
+ "#{config.target_api_url}/#{endpoint}"
303
+ )
304
+ Web::SendRequest.new(request, destination).perform
305
+ end
306
+
307
+ # @param ai_prompt_id [Integer] AI Prompt identifier
308
+ # @param body [Hash] Request Body
309
+ # @param user_id [Integer] User Identifier (Crowdin only)
310
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.prompts.fine-tuning.datasets.post API Documentation}
311
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.fine-tuning.datasets.post Enterprise API Documentation}
312
+ def generate_ai_prompt_fine_tuning_dataset(ai_prompt_id, body = {}, user_id = nil)
313
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
314
+
315
+ endpoint = "ai/prompts/#{ai_prompt_id}/fine-tuning/datasets"
316
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
317
+ request = Web::Request.new(
318
+ connection,
319
+ :post,
320
+ "#{config.target_api_url}/#{endpoint}",
321
+ { params: body }
322
+ )
323
+ Web::SendRequest.new(request).perform
324
+ end
325
+
326
+ # @param ai_prompt_id [Integer] AI Prompt identifier
327
+ # @param job_identifier [String] AI Prompt Fine-Tuning Dataset Generation Identifier, consists of 36 characters
328
+ # @param user_id [Integer] User Identifier (Crowdin only)
329
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.prompts.fine-tuning.datasets.get API Documentation}
330
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.fine-tuning.datasets.get Enterprise API Documentation}
331
+ def get_ai_prompt_fine_tuning_dataset_generation_status(ai_prompt_id, job_identifier, user_id = nil)
332
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
333
+
334
+ endpoint = "ai/prompts/#{ai_prompt_id}/fine-tuning/datasets/#{job_identifier}"
335
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
336
+ request = Web::Request.new(
337
+ connection,
338
+ :get,
339
+ "#{config.target_api_url}/#{endpoint}"
340
+ )
341
+ Web::SendRequest.new(request).perform
342
+ end
343
+
344
+ # @param ai_prompt_id [Integer] AI Prompt identifier
345
+ # @param job_identifier [String] AI Prompt Fine-Tuning Dataset Generation Identifier, consists of 36 characters
346
+ # @param destination [String] Destination of File
347
+ # @param user_id [Integer] User Identifier (Crowdin only)
348
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.prompts.fine-tuning.datasets.download.get API Documentation}
349
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.fine-tuning.datasets.download.get Enterprise API Documentation}
350
+ def download_ai_prompt_fine_tuning_dataset(ai_prompt_id, job_identifier, destination = nil, user_id = nil)
351
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
352
+
353
+ endpoint = "ai/prompts/#{ai_prompt_id}/fine-tuning/datasets/#{job_identifier}/download"
354
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
355
+ request = Web::Request.new(
356
+ connection,
357
+ :get,
358
+ "#{config.target_api_url}/#{endpoint}"
359
+ )
360
+ Web::SendRequest.new(request, destination).perform
361
+ end
362
+
363
+ # @param ai_prompt_id [Integer] AI Prompt identifier
364
+ # @param body [Hash] Request Body
365
+ # @param user_id [Integer] User Identifier (Crowdin only)
366
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.prompts.fine-tuning.jobs.post API Documentation}
367
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.fine-tuning.jobs.post Enterprise API Documentation}
368
+ def create_ai_prompt_fine_tuning_job(ai_prompt_id, body = {}, user_id = nil)
369
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
370
+
371
+ endpoint = "ai/prompts/#{ai_prompt_id}/fine-tuning/jobs"
372
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
373
+ request = Web::Request.new(
374
+ connection,
375
+ :post,
376
+ "#{config.target_api_url}/#{endpoint}",
377
+ { params: body }
378
+ )
379
+ Web::SendRequest.new(request).perform
380
+ end
381
+
382
+ # @param ai_prompt_id [Integer] AI Prompt identifier
383
+ # @param job_identifier [String] AI Prompt Fine-Tuning Job Identifier, consists of 36 characters
384
+ # @param user_id [Integer] User Identifier (Crowdin only)
385
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.prompts.fine-tuning.jobs.get API Documentation}
386
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.fine-tuning.jobs.get Enterprise API Documentation}
387
+ def get_ai_prompt_fine_tuning_job_status(ai_prompt_id, job_identifier, user_id = nil)
388
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
389
+
390
+ endpoint = "ai/prompts/#{ai_prompt_id}/fine-tuning/jobs/#{job_identifier}"
391
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
392
+ request = Web::Request.new(
393
+ connection,
394
+ :get,
395
+ "#{config.target_api_url}/#{endpoint}"
396
+ )
397
+ Web::SendRequest.new(request).perform
398
+ end
399
+
400
+ # @param ai_prompt_id [Integer] AI Prompt identifier
401
+ # @param job_identifier [String] AI Prompt Fine-Tuning Job Identifier, consists of 36 characters
402
+ # @param user_id [Integer] User Identifier (Crowdin only)
403
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.prompts.fine-tuning.jobs.events.getMany API Documentation}
404
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.fine-tuning.jobs.events.getMany Enterprise API Documentation}
405
+ def list_ai_prompt_fine_tuning_events(ai_prompt_id, job_identifier, user_id = nil)
406
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
407
+
408
+ endpoint = "ai/prompts/#{ai_prompt_id}/fine-tuning/jobs/#{job_identifier}/events"
409
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
410
+ request = Web::Request.new(
411
+ connection,
412
+ :get,
413
+ "#{config.target_api_url}/#{endpoint}"
414
+ )
415
+ Web::SendRequest.new(request).perform
416
+ end
417
+
418
+ # @param query [Hash] Request Query Parameters
419
+ # @param user_id [Integer] User Identifier (Crowdin only)
420
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.providers.getMany API Documentation}
421
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.getMany Enterprise API Documentation}
422
+ def list_ai_providers(query = {}, user_id = nil)
423
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
424
+
425
+ endpoint = 'ai/providers'
426
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
427
+ request = Web::Request.new(
428
+ connection,
429
+ :get,
430
+ "#{config.target_api_url}/#{endpoint}",
431
+ { params: query }
432
+ )
433
+ Web::SendRequest.new(request).perform
434
+ end
435
+
436
+ # @param body [Hash] Request Body
437
+ # @param user_id [Integer] User Identifier (Crowdin only)
438
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.providers.post API Documentation}
439
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.post Enterprise API Documentation}
440
+ def add_ai_provider(body = {}, user_id = nil)
441
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
442
+
443
+ endpoint = 'ai/providers'
444
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
445
+ request = Web::Request.new(
446
+ connection,
447
+ :post,
448
+ "#{config.target_api_url}/#{endpoint}",
449
+ { params: body }
450
+ )
451
+ Web::SendRequest.new(request).perform
452
+ end
453
+
454
+ # @param user_id [Integer] User Identifier (Crowdin only)
455
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.providers.models.crowdin.getMany API Documentation}
456
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.models.enterprise.getMany Enterprise API Documentation}
457
+ def list_all_ai_provider_models(user_id = nil)
458
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
459
+
460
+ endpoint = 'ai/providers/models'
461
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
462
+ request = Web::Request.new(
463
+ connection,
464
+ :get,
465
+ "#{config.target_api_url}/#{endpoint}"
466
+ )
467
+ Web::SendRequest.new(request).perform
468
+ end
469
+
470
+ # @param query [Hash] Request Query Parameters
471
+ # @param user_id [Integer] User Identifier (Crowdin only)
472
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.providers.supported-models.crowdin.getMany API Documentation}
473
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.supported-models.enterprise.getMany Enterprise API Documentation}
474
+ def list_supported_ai_provider_models(query = {}, user_id = nil)
475
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
476
+
477
+ endpoint = 'ai/providers/supported-models'
478
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
479
+ request = Web::Request.new(
480
+ connection,
481
+ :get,
482
+ "#{config.target_api_url}/#{endpoint}",
483
+ { params: query }
484
+ )
485
+ Web::SendRequest.new(request).perform
486
+ end
487
+
488
+ # @param ai_provider_id [Integer] AI Provider identifier
489
+ # @param user_id [Integer] User Identifier (Crowdin only)
490
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.providers.delete API Documentation}
491
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.delete Enterprise API Documentation}
492
+ def delete_ai_provider(ai_provider_id, user_id = nil)
493
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
494
+
495
+ endpoint = "ai/providers/#{ai_provider_id}"
496
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
497
+ request = Web::Request.new(
498
+ connection,
499
+ :delete,
500
+ "#{config.target_api_url}/#{endpoint}"
501
+ )
502
+ Web::SendRequest.new(request).perform
503
+ end
504
+
505
+ # @param ai_provider_id [Integer] AI Provider identifier
506
+ # @param user_id [Integer] User Identifier (Crowdin only)
507
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.providers.get API Documentation}
508
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.get Enterprise API Documentation}
509
+ def get_ai_provider(ai_provider_id, user_id = nil)
510
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
511
+
512
+ endpoint = "ai/providers/#{ai_provider_id}"
513
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
514
+ request = Web::Request.new(
515
+ connection,
516
+ :get,
517
+ "#{config.target_api_url}/#{endpoint}"
518
+ )
519
+ Web::SendRequest.new(request).perform
520
+ end
521
+
522
+ # @param ai_provider_id [Integer] AI Provider identifier
523
+ # @param body [Array] Request Body
524
+ # @param user_id [Integer] User Identifier (Crowdin only)
525
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.providers.patch API Documentation}
526
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.patch Enterprise API Documentation}
527
+ def edit_ai_provider(ai_provider_id, body = [], user_id = nil)
528
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
529
+
530
+ endpoint = "ai/providers/#{ai_provider_id}"
531
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
532
+ request = Web::Request.new(
533
+ connection,
534
+ :patch,
535
+ "#{config.target_api_url}/#{endpoint}",
536
+ { params: body }
537
+ )
538
+ Web::SendRequest.new(request).perform
539
+ end
540
+
541
+ # @param ai_provider_id [Integer] AI Provider identifier
542
+ # @param body [Hash] Request Body
543
+ # @param user_id [Integer] User Identifier (Crowdin only)
544
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.providers.chat.completions.post API Documentation}
545
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.chat.completions.post Enterprise API Documentation}
546
+ def create_ai_proxy_chat_completion(ai_provider_id, body = {}, user_id = nil)
547
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
548
+
549
+ endpoint = "ai/providers/#{ai_provider_id}/chat/completions"
550
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
551
+ request = Web::Request.new(
552
+ connection,
553
+ :post,
554
+ "#{config.target_api_url}/#{endpoint}",
555
+ { params: body }
556
+ )
557
+ Web::SendRequest.new(request).perform
558
+ end
559
+
560
+ # @param ai_provider_id [Integer] AI Provider identifier
561
+ # @param path [String] Raw provider API path after `/gateway/`
562
+ # @param user_id [Integer] User Identifier (Crowdin only)
563
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.providers.gateway.crowdin.delete API Documentation}
564
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.gateway.enterprise.delete Enterprise API Documentation}
565
+ def ai_gateway_delete(ai_provider_id, path, user_id = nil)
566
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
567
+
568
+ endpoint = "ai/providers/#{ai_provider_id}/gateway/#{path}"
569
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
570
+ request = Web::Request.new(
571
+ connection,
572
+ :delete,
573
+ "#{config.target_api_url}/#{endpoint}"
574
+ )
575
+ Web::SendRequest.new(request).perform
576
+ end
577
+
578
+ # @param ai_provider_id [Integer] AI Provider identifier
579
+ # @param path [String] Raw provider API path after `/gateway/`
580
+ # @param user_id [Integer] User Identifier (Crowdin only)
581
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.providers.gateway.crowdin.get API Documentation}
582
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.gateway.enterprise.get Enterprise API Documentation}
583
+ def ai_gateway_get(ai_provider_id, path, user_id = nil)
584
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
585
+
586
+ endpoint = "ai/providers/#{ai_provider_id}/gateway/#{path}"
587
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
588
+ request = Web::Request.new(
589
+ connection,
590
+ :get,
591
+ "#{config.target_api_url}/#{endpoint}"
592
+ )
593
+ Web::SendRequest.new(request).perform
594
+ end
595
+
596
+ # @param ai_provider_id [Integer] AI Provider identifier
597
+ # @param path [String] Raw provider API path after `/gateway/`
598
+ # @param body [Hash] Request Body
599
+ # @param user_id [Integer] User Identifier (Crowdin only)
600
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.providers.gateway.crowdin.patch API Documentation}
601
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.gateway.enterprise.patch Enterprise API Documentation}
602
+ def ai_gateway_patch(ai_provider_id, path, body = {}, user_id = nil)
603
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
604
+
605
+ endpoint = "ai/providers/#{ai_provider_id}/gateway/#{path}"
606
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
607
+ request = Web::Request.new(
608
+ connection,
609
+ :patch,
610
+ "#{config.target_api_url}/#{endpoint}",
611
+ { params: body }
612
+ )
613
+ Web::SendRequest.new(request).perform
614
+ end
615
+
616
+ # @param ai_provider_id [Integer] AI Provider identifier
617
+ # @param path [String] Raw provider API path after `/gateway/`
618
+ # @param body [Hash] Request Body
619
+ # @param user_id [Integer] User Identifier (Crowdin only)
620
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.providers.gateway.crowdin.post API Documentation}
621
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.gateway.enterprise.post Enterprise API Documentation}
622
+ def ai_gateway_post(ai_provider_id, path, body = {}, user_id = nil)
623
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
624
+
625
+ endpoint = "ai/providers/#{ai_provider_id}/gateway/#{path}"
626
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
627
+ request = Web::Request.new(
628
+ connection,
629
+ :post,
630
+ "#{config.target_api_url}/#{endpoint}",
631
+ { params: body }
632
+ )
633
+ Web::SendRequest.new(request).perform
634
+ end
635
+
636
+ # @param ai_provider_id [Integer] AI Provider identifier
637
+ # @param path [String] Raw provider API path after `/gateway/`
638
+ # @param body [Hash] Request Body
639
+ # @param user_id [Integer] User Identifier (Crowdin only)
640
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.providers.gateway.crowdin.put API Documentation}
641
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.gateway.enterprise.put Enterprise API Documentation}
642
+ def ai_gateway_put(ai_provider_id, path, body = {}, user_id = nil)
643
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
644
+
645
+ endpoint = "ai/providers/#{ai_provider_id}/gateway/#{path}"
646
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
647
+ request = Web::Request.new(
648
+ connection,
649
+ :put,
650
+ "#{config.target_api_url}/#{endpoint}",
651
+ { params: body }
652
+ )
653
+ Web::SendRequest.new(request).perform
654
+ end
655
+
656
+ # @param ai_provider_id [Integer] AI Provider identifier
657
+ # @param user_id [Integer] User Identifier (Crowdin only)
658
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.providers.models.getMany API Documentation}
659
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.models.getMany Enterprise API Documentation}
660
+ def list_ai_provider_models(ai_provider_id, user_id = nil)
661
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
662
+
663
+ endpoint = "ai/providers/#{ai_provider_id}/models"
664
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
665
+ request = Web::Request.new(
666
+ connection,
667
+ :get,
668
+ "#{config.target_api_url}/#{endpoint}"
669
+ )
670
+ Web::SendRequest.new(request).perform
671
+ end
672
+
673
+ # @param body [Hash] Request Body
674
+ # @param user_id [Integer] User Identifier (Crowdin only)
675
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.reports.post API Documentation}
676
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.reports.post Enterprise API Documentation}
677
+ def generate_ai_report(body = {}, user_id = nil)
678
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
679
+
680
+ endpoint = 'ai/reports'
681
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
682
+ request = Web::Request.new(
683
+ connection,
684
+ :post,
685
+ "#{config.target_api_url}/#{endpoint}",
686
+ { params: body }
687
+ )
688
+ Web::SendRequest.new(request).perform
689
+ end
690
+
691
+ # @param ai_report_id [String] AI Report Identifier, consists of 36 characters
692
+ # @param user_id [Integer] User Identifier (Crowdin only)
693
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.reports.get API Documentation}
694
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.reports.get Enterprise API Documentation}
695
+ def check_ai_report_generation_status(ai_report_id, user_id = nil)
696
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
697
+
698
+ endpoint = "ai/reports/#{ai_report_id}"
699
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
700
+ request = Web::Request.new(
701
+ connection,
702
+ :get,
703
+ "#{config.target_api_url}/#{endpoint}"
704
+ )
705
+ Web::SendRequest.new(request).perform
706
+ end
707
+
708
+ # @param ai_report_id [String] AI Report Identifier, consists of 36 characters
709
+ # @param destination [String] Destination of File
710
+ # @param user_id [Integer] User Identifier (Crowdin only)
711
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.reports.download.download API Documentation}
712
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.reports.download.download Enterprise API Documentation}
713
+ def download_ai_report(ai_report_id, destination = nil, user_id = nil)
714
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
715
+
716
+ endpoint = "ai/reports/#{ai_report_id}/download"
717
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
718
+ request = Web::Request.new(
719
+ connection,
720
+ :get,
721
+ "#{config.target_api_url}/#{endpoint}"
722
+ )
723
+ Web::SendRequest.new(request, destination).perform
724
+ end
725
+
726
+ # @param query [Hash] Request Query Parameters
727
+ # @param user_id [Integer] User Identifier (Crowdin only)
728
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.requestLogs.getMany API Documentation}
729
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.requestLogs.getMany Enterprise API Documentation}
730
+ def list_ai_request_logs(query = {}, user_id = nil)
731
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
732
+
733
+ endpoint = 'ai/request-logs'
734
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
735
+ request = Web::Request.new(
736
+ connection,
737
+ :get,
738
+ "#{config.target_api_url}/#{endpoint}",
739
+ { params: query }
740
+ )
741
+ Web::SendRequest.new(request).perform
742
+ end
743
+
744
+ # @param body [Hash] Request Body
745
+ # @param user_id [Integer] User Identifier (Crowdin only)
746
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.requestLogs.exports.post API Documentation}
747
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.requestLogs.exports.post Enterprise API Documentation}
748
+ def export_ai_request_logs(body = {}, user_id = nil)
749
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
750
+
751
+ endpoint = 'ai/request-logs/exports'
752
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
753
+ request = Web::Request.new(
754
+ connection,
755
+ :post,
756
+ "#{config.target_api_url}/#{endpoint}",
757
+ { params: body }
758
+ )
759
+ Web::SendRequest.new(request).perform
760
+ end
761
+
762
+ # @param export_id [String] ID of the AI request logs export, 36 characters
763
+ # @param user_id [Integer] User Identifier (Crowdin only)
764
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.requestLogs.exports.get API Documentation}
765
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.requestLogs.exports.get Enterprise API Documentation}
766
+ def check_ai_request_logs_export_status(export_id, user_id = nil)
767
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
768
+
769
+ endpoint = "ai/request-logs/exports/#{export_id}"
770
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
771
+ request = Web::Request.new(
772
+ connection,
773
+ :get,
774
+ "#{config.target_api_url}/#{endpoint}"
775
+ )
776
+ Web::SendRequest.new(request).perform
777
+ end
778
+
779
+ # @param export_id [String] ID of the AI request logs export, 36 characters
780
+ # @param destination [String] Destination of File
781
+ # @param user_id [Integer] User Identifier (Crowdin only)
782
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.requestLogs.exports.download API Documentation}
783
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.requestLogs.exports.download Enterprise API Documentation}
784
+ def download_ai_request_logs_export(export_id, destination = nil, user_id = nil)
785
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
786
+
787
+ endpoint = "ai/request-logs/exports/#{export_id}/download"
788
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
789
+ request = Web::Request.new(
790
+ connection,
791
+ :get,
792
+ "#{config.target_api_url}/#{endpoint}"
793
+ )
794
+ Web::SendRequest.new(request, destination).perform
795
+ end
796
+
797
+ # @param user_id [Integer] User Identifier (Crowdin only)
798
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.settings.get API Documentation}
799
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.settings.get Enterprise API Documentation}
800
+ def get_ai_settings(user_id = nil)
801
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
802
+
803
+ endpoint = 'ai/settings'
804
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
805
+ request = Web::Request.new(
806
+ connection,
807
+ :get,
808
+ "#{config.target_api_url}/#{endpoint}"
809
+ )
810
+ Web::SendRequest.new(request).perform
811
+ end
812
+
813
+ # @param body [Array] Request Body
814
+ # @param user_id [Integer] User Identifier (Crowdin only)
815
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.settings.patch API Documentation}
816
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.settings.patch Enterprise API Documentation}
817
+ def edit_ai_settings(body = [], user_id = nil)
818
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
819
+
820
+ endpoint = 'ai/settings'
821
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
822
+ request = Web::Request.new(
823
+ connection,
824
+ :patch,
825
+ "#{config.target_api_url}/#{endpoint}",
826
+ { params: body }
827
+ )
828
+ Web::SendRequest.new(request).perform
829
+ end
830
+
831
+ # @param query [Hash] Request Query Parameters
832
+ # @param user_id [Integer] User Identifier (Crowdin only)
833
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.prompts.snippets.getMany API Documentation}
834
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.snippets.getMany Enterprise API Documentation}
835
+ def list_ai_snippets(query = {}, user_id = nil)
836
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
837
+
838
+ endpoint = 'ai/settings/snippets'
839
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
840
+ request = Web::Request.new(
841
+ connection,
842
+ :get,
843
+ "#{config.target_api_url}/#{endpoint}",
844
+ { params: query }
845
+ )
846
+ Web::SendRequest.new(request).perform
847
+ end
848
+
849
+ # @param body [Hash] Request Body
850
+ # @param user_id [Integer] User Identifier (Crowdin only)
851
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.prompts.snippets.post API Documentation}
852
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.snippets.post Enterprise API Documentation}
853
+ def add_ai_snippet(body = {}, user_id = nil)
854
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
855
+
856
+ endpoint = 'ai/settings/snippets'
857
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
858
+ request = Web::Request.new(
859
+ connection,
860
+ :post,
861
+ "#{config.target_api_url}/#{endpoint}",
862
+ { params: body }
863
+ )
864
+ Web::SendRequest.new(request).perform
865
+ end
866
+
867
+ # @param ai_snippet_id [Integer] AI Snippet identifier
868
+ # @param user_id [Integer] User Identifier (Crowdin only)
869
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.prompts.snippets.delete API Documentation}
870
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.snippets.delete Enterprise API Documentation}
871
+ def delete_ai_snippet(ai_snippet_id, user_id = nil)
872
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
873
+
874
+ endpoint = "ai/settings/snippets/#{ai_snippet_id}"
875
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
876
+ request = Web::Request.new(
877
+ connection,
878
+ :delete,
879
+ "#{config.target_api_url}/#{endpoint}"
880
+ )
881
+ Web::SendRequest.new(request).perform
882
+ end
883
+
884
+ # @param ai_snippet_id [Integer] AI Snippet identifier
885
+ # @param user_id [Integer] User Identifier (Crowdin only)
886
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.prompts.snippets.get API Documentation}
887
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.snippets.get Enterprise API Documentation}
888
+ def get_ai_snippet(ai_snippet_id, user_id = nil)
889
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
890
+
891
+ endpoint = "ai/settings/snippets/#{ai_snippet_id}"
892
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
893
+ request = Web::Request.new(
894
+ connection,
895
+ :get,
896
+ "#{config.target_api_url}/#{endpoint}"
897
+ )
898
+ Web::SendRequest.new(request).perform
899
+ end
900
+
901
+ # @param ai_snippet_id [Integer] AI Snippet identifier
902
+ # @param body [Array] Request Body
903
+ # @param user_id [Integer] User Identifier (Crowdin only)
904
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.prompts.snippets.patch API Documentation}
905
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.prompts.snippets.patch Enterprise API Documentation}
906
+ def edit_ai_snippet(ai_snippet_id, body = [], user_id = nil)
907
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
908
+
909
+ endpoint = "ai/settings/snippets/#{ai_snippet_id}"
910
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
911
+ request = Web::Request.new(
912
+ connection,
913
+ :patch,
914
+ "#{config.target_api_url}/#{endpoint}",
915
+ { params: body }
916
+ )
917
+ Web::SendRequest.new(request).perform
918
+ end
919
+
920
+ # @param body [Hash] Request Body
921
+ # @param user_id [Integer] User Identifier (Crowdin only)
922
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.translate.strings.post API Documentation}
923
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.translate.strings.post Enterprise API Documentation}
924
+ def ai_translate_strings(body = {}, user_id = nil)
925
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
926
+
927
+ endpoint = 'ai/translate'
928
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
929
+ request = Web::Request.new(
930
+ connection,
931
+ :post,
932
+ "#{config.target_api_url}/#{endpoint}",
933
+ { params: body }
934
+ )
935
+ Web::SendRequest.new(request).perform
936
+ end
937
+
938
+ # @param query [Hash] Request Query Parameters
939
+ # @param user_id [Integer] User Identifier (Crowdin only)
940
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.usage.members.getMany API Documentation}
941
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.usage.members.getMany Enterprise API Documentation}
942
+ def list_ai_usage_members(query = {}, user_id = nil)
943
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
944
+
945
+ endpoint = 'ai/usage/members'
946
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
947
+ request = Web::Request.new(
948
+ connection,
949
+ :get,
950
+ "#{config.target_api_url}/#{endpoint}",
951
+ { params: query }
952
+ )
953
+ Web::SendRequest.new(request).perform
954
+ end
955
+
956
+ # @param member_id [Integer] User Identifier
957
+ # @param user_id [Integer] User Identifier (Crowdin only)
958
+ # * {https://support.crowdin.com/developer/api/v2/#operation/api.ai.usage.members.get API Documentation}
959
+ # * {https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.usage.members.get Enterprise API Documentation}
960
+ def get_ai_usage_member(member_id, user_id = nil)
961
+ enterprise_mode? || user_id || raise_parameter_is_required_error(:user_id)
962
+
963
+ endpoint = "ai/usage/members/#{member_id}"
964
+ endpoint = "users/#{user_id}/#{endpoint}" unless enterprise_mode?
965
+ request = Web::Request.new(
966
+ connection,
967
+ :get,
968
+ "#{config.target_api_url}/#{endpoint}"
969
+ )
970
+ Web::SendRequest.new(request).perform
971
+ end
972
+ end
973
+ end
974
+ end