@crowdin/n8n-nodes-crowdin 0.2.0 → 0.4.0

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 (63) hide show
  1. package/dist/nodes/Crowdin/properties/crowdin/fileBased/ai.js +1120 -103
  2. package/dist/nodes/Crowdin/properties/crowdin/fileBased/ai.js.map +1 -1
  3. package/dist/nodes/Crowdin/properties/crowdin/fileBased/applications.js +5 -5
  4. package/dist/nodes/Crowdin/properties/crowdin/fileBased/applications.js.map +1 -1
  5. package/dist/nodes/Crowdin/properties/crowdin/fileBased/bundles.js +156 -10
  6. package/dist/nodes/Crowdin/properties/crowdin/fileBased/bundles.js.map +1 -1
  7. package/dist/nodes/Crowdin/properties/crowdin/fileBased/distributions.js +0 -102
  8. package/dist/nodes/Crowdin/properties/crowdin/fileBased/distributions.js.map +1 -1
  9. package/dist/nodes/Crowdin/properties/crowdin/fileBased/integrations.js +14 -14
  10. package/dist/nodes/Crowdin/properties/crowdin/fileBased/integrations.js.map +1 -1
  11. package/dist/nodes/Crowdin/properties/crowdin/fileBased/tasks.js +119 -55
  12. package/dist/nodes/Crowdin/properties/crowdin/fileBased/tasks.js.map +1 -1
  13. package/dist/nodes/Crowdin/properties/crowdin/fileBased/translationMemory.js +2 -2
  14. package/dist/nodes/Crowdin/properties/crowdin/fileBased/translationMemory.js.map +1 -1
  15. package/dist/nodes/Crowdin/properties/crowdin/fileBased/translations.js +10 -10
  16. package/dist/nodes/Crowdin/properties/crowdin/fileBased/translations.js.map +1 -1
  17. package/dist/nodes/Crowdin/properties/crowdin/stringBased/ai.js +1120 -103
  18. package/dist/nodes/Crowdin/properties/crowdin/stringBased/ai.js.map +1 -1
  19. package/dist/nodes/Crowdin/properties/crowdin/stringBased/applications.js +5 -5
  20. package/dist/nodes/Crowdin/properties/crowdin/stringBased/applications.js.map +1 -1
  21. package/dist/nodes/Crowdin/properties/crowdin/stringBased/bundles.js +156 -10
  22. package/dist/nodes/Crowdin/properties/crowdin/stringBased/bundles.js.map +1 -1
  23. package/dist/nodes/Crowdin/properties/crowdin/stringBased/index.js +26 -26
  24. package/dist/nodes/Crowdin/properties/crowdin/stringBased/index.js.map +1 -1
  25. package/dist/nodes/Crowdin/properties/crowdin/stringBased/tasks.js +119 -55
  26. package/dist/nodes/Crowdin/properties/crowdin/stringBased/tasks.js.map +1 -1
  27. package/dist/nodes/Crowdin/properties/crowdin/stringBased/translationMemory.js +2 -2
  28. package/dist/nodes/Crowdin/properties/crowdin/stringBased/translationMemory.js.map +1 -1
  29. package/dist/nodes/Crowdin/properties/crowdin/stringBased/translations.js +2 -2
  30. package/dist/nodes/Crowdin/properties/crowdin/stringBased/translations.js.map +1 -1
  31. package/dist/nodes/Crowdin/properties/enterprise/fileBased/ai.js +1009 -97
  32. package/dist/nodes/Crowdin/properties/enterprise/fileBased/ai.js.map +1 -1
  33. package/dist/nodes/Crowdin/properties/enterprise/fileBased/applications.js +5 -5
  34. package/dist/nodes/Crowdin/properties/enterprise/fileBased/applications.js.map +1 -1
  35. package/dist/nodes/Crowdin/properties/enterprise/fileBased/bundles.js +156 -10
  36. package/dist/nodes/Crowdin/properties/enterprise/fileBased/bundles.js.map +1 -1
  37. package/dist/nodes/Crowdin/properties/enterprise/fileBased/distributions.js +0 -102
  38. package/dist/nodes/Crowdin/properties/enterprise/fileBased/distributions.js.map +1 -1
  39. package/dist/nodes/Crowdin/properties/enterprise/fileBased/integrations.js +14 -14
  40. package/dist/nodes/Crowdin/properties/enterprise/fileBased/integrations.js.map +1 -1
  41. package/dist/nodes/Crowdin/properties/enterprise/fileBased/reports.js +2504 -1332
  42. package/dist/nodes/Crowdin/properties/enterprise/fileBased/reports.js.map +1 -1
  43. package/dist/nodes/Crowdin/properties/enterprise/fileBased/tasks.js +40 -8
  44. package/dist/nodes/Crowdin/properties/enterprise/fileBased/tasks.js.map +1 -1
  45. package/dist/nodes/Crowdin/properties/enterprise/fileBased/translationMemory.js +5 -5
  46. package/dist/nodes/Crowdin/properties/enterprise/fileBased/translationMemory.js.map +1 -1
  47. package/dist/nodes/Crowdin/properties/enterprise/stringBased/ai.js +1009 -97
  48. package/dist/nodes/Crowdin/properties/enterprise/stringBased/ai.js.map +1 -1
  49. package/dist/nodes/Crowdin/properties/enterprise/stringBased/applications.js +5 -5
  50. package/dist/nodes/Crowdin/properties/enterprise/stringBased/applications.js.map +1 -1
  51. package/dist/nodes/Crowdin/properties/enterprise/stringBased/bundles.js +156 -10
  52. package/dist/nodes/Crowdin/properties/enterprise/stringBased/bundles.js.map +1 -1
  53. package/dist/nodes/Crowdin/properties/enterprise/stringBased/index.js +87 -87
  54. package/dist/nodes/Crowdin/properties/enterprise/stringBased/index.js.map +1 -1
  55. package/dist/nodes/Crowdin/properties/enterprise/stringBased/reports.js +2504 -1332
  56. package/dist/nodes/Crowdin/properties/enterprise/stringBased/reports.js.map +1 -1
  57. package/dist/nodes/Crowdin/properties/enterprise/stringBased/tasks.js +40 -8
  58. package/dist/nodes/Crowdin/properties/enterprise/stringBased/tasks.js.map +1 -1
  59. package/dist/nodes/Crowdin/properties/enterprise/stringBased/translationMemory.js +5 -5
  60. package/dist/nodes/Crowdin/properties/enterprise/stringBased/translationMemory.js.map +1 -1
  61. package/dist/package.json +1 -1
  62. package/dist/tsconfig.tsbuildinfo +1 -1
  63. package/package.json +1 -1
@@ -105,6 +105,76 @@ exports.aiProperties = [
105
105
  }
106
106
  }
107
107
  },
108
+ {
109
+ name: 'AI File Translations',
110
+ value: 'api.users.ai.file-translations.post',
111
+ action: 'AI File Translations',
112
+ description: '**Required scopes:** `ai.translate` (Read and Write).',
113
+ routing: {
114
+ request: {
115
+ method: 'POST',
116
+ url: '=/users/{{$parameter["userId"]}}/ai/file-translations'
117
+ }
118
+ }
119
+ },
120
+ {
121
+ name: 'Get File Translations Status',
122
+ value: 'api.users.ai.file-translations.get',
123
+ action: 'Get File Translations Status',
124
+ description: '**Required scopes:** `ai.translate` (Read and Write).',
125
+ routing: {
126
+ request: {
127
+ method: 'GET',
128
+ url: '=/users/{{$parameter["userId"]}}/ai/file-translations/{{$parameter["jobIdentifier"]}}'
129
+ }
130
+ }
131
+ },
132
+ {
133
+ name: 'Cancel File Translations',
134
+ value: 'api.users.ai.file-translations.delete',
135
+ action: 'Cancel File Translations',
136
+ description: '**Required scopes:** `ai.translate` (Read and Write).',
137
+ routing: {
138
+ request: {
139
+ method: 'DELETE',
140
+ url: '=/users/{{$parameter["userId"]}}/ai/file-translations/{{$parameter["jobIdentifier"]}}'
141
+ },
142
+ output: {
143
+ postReceive: [
144
+ {
145
+ type: 'set',
146
+ properties: {
147
+ value: '={{ { "success": true } }}'
148
+ }
149
+ }
150
+ ]
151
+ }
152
+ }
153
+ },
154
+ {
155
+ name: 'Download Translated File',
156
+ value: 'api.users.ai.file-translations.download',
157
+ action: 'Download Translated File',
158
+ description: '**Required scopes:** `ai.translate` (Read and Write).',
159
+ routing: {
160
+ request: {
161
+ method: 'GET',
162
+ url: '=/users/{{$parameter["userId"]}}/ai/file-translations/{{$parameter["jobIdentifier"]}}/download'
163
+ }
164
+ }
165
+ },
166
+ {
167
+ name: 'Download Translated File Strings',
168
+ value: 'api.users.ai.file-translations.download-strings',
169
+ action: 'Download Translated File Strings',
170
+ description: '**Required scopes:** `ai.translate` (Read and Write).',
171
+ routing: {
172
+ request: {
173
+ method: 'GET',
174
+ url: '=/users/{{$parameter["userId"]}}/ai/file-translations/{{$parameter["jobIdentifier"]}}/translations'
175
+ }
176
+ }
177
+ },
108
178
  {
109
179
  name: 'Clone AI Prompt',
110
180
  value: 'api.users.ai.prompts.clones.post',
@@ -535,6 +605,101 @@ exports.aiProperties = [
535
605
  }
536
606
  }
537
607
  },
608
+ {
609
+ displayName: 'POST /users/{userId}/ai/file-translations',
610
+ name: 'operation',
611
+ type: 'notice',
612
+ typeOptions: {
613
+ theme: 'info'
614
+ },
615
+ default: '',
616
+ displayOptions: {
617
+ show: {
618
+ resource: [
619
+ 'ai'
620
+ ],
621
+ operation: [
622
+ 'api.users.ai.file-translations.post'
623
+ ]
624
+ }
625
+ }
626
+ },
627
+ {
628
+ displayName: 'GET /users/{userId}/ai/file-translations/{jobIdentifier}',
629
+ name: 'operation',
630
+ type: 'notice',
631
+ typeOptions: {
632
+ theme: 'info'
633
+ },
634
+ default: '',
635
+ displayOptions: {
636
+ show: {
637
+ resource: [
638
+ 'ai'
639
+ ],
640
+ operation: [
641
+ 'api.users.ai.file-translations.get'
642
+ ]
643
+ }
644
+ }
645
+ },
646
+ {
647
+ displayName: 'DELETE /users/{userId}/ai/file-translations/{jobIdentifier}',
648
+ name: 'operation',
649
+ type: 'notice',
650
+ typeOptions: {
651
+ theme: 'info'
652
+ },
653
+ default: '',
654
+ displayOptions: {
655
+ show: {
656
+ resource: [
657
+ 'ai'
658
+ ],
659
+ operation: [
660
+ 'api.users.ai.file-translations.delete'
661
+ ]
662
+ }
663
+ }
664
+ },
665
+ {
666
+ displayName: 'GET /users/{userId}/ai/file-translations/{jobIdentifier}/download',
667
+ name: 'operation',
668
+ type: 'notice',
669
+ typeOptions: {
670
+ theme: 'info'
671
+ },
672
+ default: '',
673
+ displayOptions: {
674
+ show: {
675
+ resource: [
676
+ 'ai'
677
+ ],
678
+ operation: [
679
+ 'api.users.ai.file-translations.download'
680
+ ]
681
+ }
682
+ }
683
+ },
684
+ {
685
+ displayName: 'GET /users/{userId}/ai/file-translations/{jobIdentifier}/translations',
686
+ name: 'operation',
687
+ type: 'notice',
688
+ typeOptions: {
689
+ theme: 'info'
690
+ },
691
+ default: '',
692
+ displayOptions: {
693
+ show: {
694
+ resource: [
695
+ 'ai'
696
+ ],
697
+ operation: [
698
+ 'api.users.ai.file-translations.download-strings'
699
+ ]
700
+ }
701
+ }
702
+ },
538
703
  {
539
704
  displayName: 'POST /users/{userId}/ai/prompts/{aiPromptId}/clones',
540
705
  name: 'operation',
@@ -891,63 +1056,830 @@ exports.aiProperties = [
891
1056
  'ai'
892
1057
  ],
893
1058
  operation: [
894
- 'api.users.ai.translate.strings.post'
1059
+ 'api.users.ai.translate.strings.post'
1060
+ ]
1061
+ }
1062
+ }
1063
+ },
1064
+ {
1065
+ displayName: 'GET /projects/{projectId}/ai/settings',
1066
+ name: 'operation',
1067
+ type: 'notice',
1068
+ typeOptions: {
1069
+ theme: 'info'
1070
+ },
1071
+ default: '',
1072
+ displayOptions: {
1073
+ show: {
1074
+ resource: [
1075
+ 'ai'
1076
+ ],
1077
+ operation: [
1078
+ 'api.projects.ai.settings.get'
1079
+ ]
1080
+ }
1081
+ }
1082
+ },
1083
+ {
1084
+ displayName: 'User Id',
1085
+ name: 'userId',
1086
+ required: true,
1087
+ description: 'User Identifier',
1088
+ default: '',
1089
+ type: 'options',
1090
+ displayOptions: {
1091
+ show: {
1092
+ resource: [
1093
+ 'ai'
1094
+ ],
1095
+ operation: [
1096
+ 'api.ai.prompts.snippets.getMany'
1097
+ ]
1098
+ }
1099
+ },
1100
+ typeOptions: {
1101
+ loadOptionsMethod: 'getUsers'
1102
+ }
1103
+ },
1104
+ {
1105
+ displayName: 'Limit',
1106
+ name: 'limit',
1107
+ description: 'Max number of results to return',
1108
+ default: 50,
1109
+ type: 'number',
1110
+ routing: {
1111
+ send: {
1112
+ type: 'query',
1113
+ property: 'limit',
1114
+ value: '={{ typeof $value === \'number\' ? $value : undefined }}',
1115
+ propertyInDotNotation: false
1116
+ }
1117
+ },
1118
+ displayOptions: {
1119
+ show: {
1120
+ resource: [
1121
+ 'ai'
1122
+ ],
1123
+ operation: [
1124
+ 'api.ai.prompts.snippets.getMany'
1125
+ ],
1126
+ returnAll: [
1127
+ false
1128
+ ]
1129
+ }
1130
+ },
1131
+ typeOptions: {
1132
+ minValue: 1
1133
+ }
1134
+ },
1135
+ {
1136
+ displayName: 'User Id',
1137
+ name: 'userId',
1138
+ required: true,
1139
+ description: 'User Identifier',
1140
+ default: '',
1141
+ type: 'options',
1142
+ displayOptions: {
1143
+ show: {
1144
+ resource: [
1145
+ 'ai'
1146
+ ],
1147
+ operation: [
1148
+ 'api.ai.prompts.snippets.post'
1149
+ ]
1150
+ }
1151
+ },
1152
+ typeOptions: {
1153
+ loadOptionsMethod: 'getUsers'
1154
+ }
1155
+ },
1156
+ {
1157
+ displayName: 'Description',
1158
+ required: true,
1159
+ name: 'description',
1160
+ type: 'string',
1161
+ default: '',
1162
+ description: 'The description must be unique and must be between 3 and 255 characters.',
1163
+ routing: {
1164
+ send: {
1165
+ property: 'description',
1166
+ propertyInDotNotation: false,
1167
+ type: 'body',
1168
+ value: '={{ $value || undefined }}'
1169
+ }
1170
+ },
1171
+ displayOptions: {
1172
+ show: {
1173
+ resource: [
1174
+ 'ai'
1175
+ ],
1176
+ operation: [
1177
+ 'api.ai.prompts.snippets.post'
1178
+ ]
1179
+ }
1180
+ },
1181
+ placeholder: 'Product description'
1182
+ },
1183
+ {
1184
+ displayName: 'Placeholder',
1185
+ required: true,
1186
+ name: 'placeholder',
1187
+ type: 'string',
1188
+ default: '',
1189
+ description: 'The placeholder must be unique and must start with `%custom:` and end with `%`. Allowed characters: `a-z`, `A-Z`, `0-9`, `-`. The full length must not exceed 255 characters.',
1190
+ routing: {
1191
+ send: {
1192
+ property: 'placeholder',
1193
+ propertyInDotNotation: false,
1194
+ type: 'body',
1195
+ value: '={{ $value || undefined }}'
1196
+ }
1197
+ },
1198
+ displayOptions: {
1199
+ show: {
1200
+ resource: [
1201
+ 'ai'
1202
+ ],
1203
+ operation: [
1204
+ 'api.ai.prompts.snippets.post'
1205
+ ]
1206
+ }
1207
+ },
1208
+ placeholder: '%custom:productDescription%'
1209
+ },
1210
+ {
1211
+ displayName: 'Value',
1212
+ required: true,
1213
+ name: 'value',
1214
+ type: 'string',
1215
+ default: '',
1216
+ description: 'The text that will be utilized in the prompt. The value must not exceed 4000 characters.',
1217
+ routing: {
1218
+ send: {
1219
+ property: 'value',
1220
+ propertyInDotNotation: false,
1221
+ type: 'body',
1222
+ value: '={{ $value || undefined }}'
1223
+ }
1224
+ },
1225
+ displayOptions: {
1226
+ show: {
1227
+ resource: [
1228
+ 'ai'
1229
+ ],
1230
+ operation: [
1231
+ 'api.ai.prompts.snippets.post'
1232
+ ]
1233
+ }
1234
+ },
1235
+ placeholder: 'The product is the professional consulting service that transform challenges into opportunities.'
1236
+ },
1237
+ {
1238
+ displayName: 'User Id',
1239
+ name: 'userId',
1240
+ required: true,
1241
+ description: 'User Identifier',
1242
+ default: '',
1243
+ type: 'options',
1244
+ displayOptions: {
1245
+ show: {
1246
+ resource: [
1247
+ 'ai'
1248
+ ],
1249
+ operation: [
1250
+ 'api.ai.prompts.snippets.get'
1251
+ ]
1252
+ }
1253
+ },
1254
+ typeOptions: {
1255
+ loadOptionsMethod: 'getUsers'
1256
+ }
1257
+ },
1258
+ {
1259
+ displayName: 'Ai Snippet Id',
1260
+ name: 'aiSnippetId',
1261
+ required: true,
1262
+ description: 'AI Snippet identifier. Get via [List AI Snippets](#operation/api.ai.prompts.snippets.getMany)',
1263
+ default: '',
1264
+ type: 'options',
1265
+ displayOptions: {
1266
+ show: {
1267
+ resource: [
1268
+ 'ai'
1269
+ ],
1270
+ operation: [
1271
+ 'api.ai.prompts.snippets.get'
1272
+ ]
1273
+ }
1274
+ },
1275
+ typeOptions: {
1276
+ loadOptionsMethod: 'getAiSnippets'
1277
+ }
1278
+ },
1279
+ {
1280
+ displayName: 'User Id',
1281
+ name: 'userId',
1282
+ required: true,
1283
+ description: 'User Identifier',
1284
+ default: '',
1285
+ type: 'options',
1286
+ displayOptions: {
1287
+ show: {
1288
+ resource: [
1289
+ 'ai'
1290
+ ],
1291
+ operation: [
1292
+ 'api.ai.prompts.snippets.delete'
1293
+ ]
1294
+ }
1295
+ },
1296
+ typeOptions: {
1297
+ loadOptionsMethod: 'getUsers'
1298
+ }
1299
+ },
1300
+ {
1301
+ displayName: 'Ai Snippet Id',
1302
+ name: 'aiSnippetId',
1303
+ required: true,
1304
+ description: 'AI Snippet identifier. Get via [List AI Snippets](#operation/api.ai.prompts.snippets.getMany)',
1305
+ default: '',
1306
+ type: 'options',
1307
+ displayOptions: {
1308
+ show: {
1309
+ resource: [
1310
+ 'ai'
1311
+ ],
1312
+ operation: [
1313
+ 'api.ai.prompts.snippets.delete'
1314
+ ]
1315
+ }
1316
+ },
1317
+ typeOptions: {
1318
+ loadOptionsMethod: 'getAiSnippets'
1319
+ }
1320
+ },
1321
+ {
1322
+ displayName: 'User Id',
1323
+ name: 'userId',
1324
+ required: true,
1325
+ description: 'User Identifier',
1326
+ default: '',
1327
+ type: 'options',
1328
+ displayOptions: {
1329
+ show: {
1330
+ resource: [
1331
+ 'ai'
1332
+ ],
1333
+ operation: [
1334
+ 'api.ai.prompts.snippets.patch'
1335
+ ]
1336
+ }
1337
+ },
1338
+ typeOptions: {
1339
+ loadOptionsMethod: 'getUsers'
1340
+ }
1341
+ },
1342
+ {
1343
+ displayName: 'Ai Snippet Id',
1344
+ name: 'aiSnippetId',
1345
+ required: true,
1346
+ description: 'AI Snippet identifier. Get via [List AI Snippets](#operation/api.ai.prompts.snippets.getMany)',
1347
+ default: '',
1348
+ type: 'options',
1349
+ displayOptions: {
1350
+ show: {
1351
+ resource: [
1352
+ 'ai'
1353
+ ],
1354
+ operation: [
1355
+ 'api.ai.prompts.snippets.patch'
1356
+ ]
1357
+ }
1358
+ },
1359
+ typeOptions: {
1360
+ loadOptionsMethod: 'getAiSnippets'
1361
+ }
1362
+ },
1363
+ {
1364
+ displayName: 'User Id',
1365
+ name: 'userId',
1366
+ required: true,
1367
+ description: 'User Identifier',
1368
+ default: '',
1369
+ type: 'options',
1370
+ displayOptions: {
1371
+ show: {
1372
+ resource: [
1373
+ 'ai'
1374
+ ],
1375
+ operation: [
1376
+ 'api.users.ai.file-translations.post'
1377
+ ]
1378
+ }
1379
+ },
1380
+ typeOptions: {
1381
+ loadOptionsMethod: 'getUsers'
1382
+ }
1383
+ },
1384
+ {
1385
+ displayName: 'Storage Id',
1386
+ required: true,
1387
+ name: 'storageId',
1388
+ type: 'options',
1389
+ default: '',
1390
+ description: 'Storage Identifier of the file to translate. Get via [List Storages](#operation/api.storages.getMany)',
1391
+ routing: {
1392
+ send: {
1393
+ property: 'storageId',
1394
+ propertyInDotNotation: false,
1395
+ type: 'body',
1396
+ value: '={{ $value }}'
1397
+ }
1398
+ },
1399
+ displayOptions: {
1400
+ show: {
1401
+ resource: [
1402
+ 'ai'
1403
+ ],
1404
+ operation: [
1405
+ 'api.users.ai.file-translations.post'
1406
+ ]
1407
+ }
1408
+ },
1409
+ typeOptions: {
1410
+ loadOptionsMethod: 'getStorages'
1411
+ }
1412
+ },
1413
+ {
1414
+ displayName: 'Source Language Id',
1415
+ name: 'sourceLanguageId',
1416
+ type: 'options',
1417
+ default: '',
1418
+ description: 'Source Language Identifier. Get via [List Supported Languages](#operation/api.languages.getMany). If not specified, auto-detection will be used.',
1419
+ routing: {
1420
+ send: {
1421
+ property: 'sourceLanguageId',
1422
+ propertyInDotNotation: false,
1423
+ type: 'body',
1424
+ value: '={{ $value || undefined }}'
1425
+ }
1426
+ },
1427
+ displayOptions: {
1428
+ show: {
1429
+ resource: [
1430
+ 'ai'
1431
+ ],
1432
+ operation: [
1433
+ 'api.users.ai.file-translations.post'
1434
+ ]
1435
+ }
1436
+ },
1437
+ typeOptions: {
1438
+ loadOptionsMethod: 'getLanguages'
1439
+ }
1440
+ },
1441
+ {
1442
+ displayName: 'Target Language Id',
1443
+ required: true,
1444
+ name: 'targetLanguageId',
1445
+ type: 'options',
1446
+ default: '',
1447
+ description: 'Target Language Identifier. Get via [List Supported Languages](#operation/api.languages.getMany)',
1448
+ routing: {
1449
+ send: {
1450
+ property: 'targetLanguageId',
1451
+ propertyInDotNotation: false,
1452
+ type: 'body',
1453
+ value: '={{ $value || undefined }}'
1454
+ }
1455
+ },
1456
+ displayOptions: {
1457
+ show: {
1458
+ resource: [
1459
+ 'ai'
1460
+ ],
1461
+ operation: [
1462
+ 'api.users.ai.file-translations.post'
1463
+ ]
1464
+ }
1465
+ },
1466
+ typeOptions: {
1467
+ loadOptionsMethod: 'getLanguages'
1468
+ }
1469
+ },
1470
+ {
1471
+ displayName: 'Type',
1472
+ name: 'type',
1473
+ type: 'options',
1474
+ default: '',
1475
+ description: 'Values available:\n- empty value or \'auto\' — Try to detect file type by extension or MIME type\n- \'android\' — Android (*.xml)\n- \'macosx\' — Mac OS X / iOS (*.strings)\n- \'resx\' — .NET, Windows Phone (*.resx)\n- \'properties\' — Java (*.properties)\n- \'gettext\' — GNU GetText (*.po, *.pot)\n- \'yaml\' — Ruby On Rails (*.yaml, *.yml)\n- \'php\' — Hypertext Preprocessor (*.php)\n- \'json\' — Generic JSON (*.json)\n- \'xml\' — Generic XML (*.xml)\n- \'ini\' — Generic INI (*.ini)\n- \'rc\' — Windows Resources (*.rc)\n- \'resw\' — Windows 8 Metro (*.resw)\n- \'resjson\' — Windows 8 Metro (*.resjson)\n- \'qtts\' — Nokia Qt (*.ts)\n- \'joomla\' — Joomla localizable resources (*.ini)\n- \'chrome\' — Google Chrome Extension (*.json)\n- \'dtd\' — Mozilla DTD (*.dtd)\n- \'dklang\' — Delphi DKLang (*.dklang)\n- \'flex\' — Flex (*.properties)\n- \'nsh\' — NSIS Installer Resources (*.nsh)\n- \'wxl\' — WiX Installer (*.wxl)\n- \'xliff\' — XLIFF (*.xliff, *.xlf)\n- \'xliff_two\' — XLIFF 2.0 (*.xliff, *.xlf)\n- \'html\' — HTML (*.html, *.htm, *.xhtml, *.xhtm, *.xht, *.hbs, *.liquid)\n- \'haml\' — Haml (*.haml)\n- \'txt\' — Plain Text (*.txt)\n- \'csv\' — Comma Separated Values (*.csv)\n- \'md\' — Markdown (*.md, *.text, *.markdown...)\n- \'flsnp\' — MadCap Flare (*.flnsp, .flpgpl .fltoc)\n- \'fm_html\' — Jekyll HTML (*.html)\n- \'fm_md\' — Jekyll Markdown (*.md)\n- \'mediawiki\' — MediaWiki (*.wiki, *.wikitext, *.mediawiki)\n- \'docx\' — Microsoft Office, OpenOffice.org Documents, Adobe InDesign, Adobe FrameMaker(*.docx, *.dotx, *.docm, *.dotm, *.xlsx, *.xltx, *.xlsm, *.xltm, *.pptx, *.potx, *.ppsx, *.pptm, *.potm, *.ppsm, *.odt, *.ods, *.odg, *.odp, *.imdl, *.mif)\n- \'xlsx\' — Microsoft Excel (*.xlsx)\n- \'sbv\' — Youtube .sbv (*.sbv)\n- \'properties_play\' — Play Framework\n- \'properties_xml\' — Java Application (*.xml)\n- \'maxthon\' — Maxthon Browser (*.ini)\n- \'go_json\' — Go (*.gotext.json)\n- \'dita\' — DITA Document (*.dita, *.ditamap)\n- \'mif\' — Adobe FrameMaker (*.mif)\n- \'idml\' — Adobe InDesign (*.idml)\n- \'stringsdict\' — iOS (*.stringsdict)\n- \'plist\' — Mac OS property list (*.plist)\n- \'vtt\' — Video Subtitling and WebVTT (*.vtt)\n- \'vdf\' — Steamworks Localization Valve Data File (*.vdf)\n- \'srt\' — SubRip .srt (*.srt)\n- \'stf\' — Salesforce (*.stf)\n- \'toml\' — Toml (*.toml)\n- \'contentful_rt\' — Contentful (*.json)\n- \'svg\' — SVG (*.svg)\n- \'js\' — JavaScript (*.js)\n- \'coffee\' — CoffeeScript (*.coffee)\n- \'nestjs_i18n\' - NestJS i18n\n- \'loc\' — LOC (*.loc)\n\n__Note__: Use `docx` type to import each cell as a separate source string for XLSX file',
1476
+ options: [
1477
+ {
1478
+ name: '-',
1479
+ value: ''
1480
+ },
1481
+ {
1482
+ name: 'auto',
1483
+ value: 'auto'
1484
+ },
1485
+ {
1486
+ name: 'android',
1487
+ value: 'android'
1488
+ },
1489
+ {
1490
+ name: 'macosx',
1491
+ value: 'macosx'
1492
+ },
1493
+ {
1494
+ name: 'resx',
1495
+ value: 'resx'
1496
+ },
1497
+ {
1498
+ name: 'properties',
1499
+ value: 'properties'
1500
+ },
1501
+ {
1502
+ name: 'gettext',
1503
+ value: 'gettext'
1504
+ },
1505
+ {
1506
+ name: 'yaml',
1507
+ value: 'yaml'
1508
+ },
1509
+ {
1510
+ name: 'php',
1511
+ value: 'php'
1512
+ },
1513
+ {
1514
+ name: 'json',
1515
+ value: 'json'
1516
+ },
1517
+ {
1518
+ name: 'xml',
1519
+ value: 'xml'
1520
+ },
1521
+ {
1522
+ name: 'ini',
1523
+ value: 'ini'
1524
+ },
1525
+ {
1526
+ name: 'rc',
1527
+ value: 'rc'
1528
+ },
1529
+ {
1530
+ name: 'resw',
1531
+ value: 'resw'
1532
+ },
1533
+ {
1534
+ name: 'resjson',
1535
+ value: 'resjson'
1536
+ },
1537
+ {
1538
+ name: 'qtts',
1539
+ value: 'qtts'
1540
+ },
1541
+ {
1542
+ name: 'joomla',
1543
+ value: 'joomla'
1544
+ },
1545
+ {
1546
+ name: 'chrome',
1547
+ value: 'chrome'
1548
+ },
1549
+ {
1550
+ name: 'dtd',
1551
+ value: 'dtd'
1552
+ },
1553
+ {
1554
+ name: 'dklang',
1555
+ value: 'dklang'
1556
+ },
1557
+ {
1558
+ name: 'flex',
1559
+ value: 'flex'
1560
+ },
1561
+ {
1562
+ name: 'nsh',
1563
+ value: 'nsh'
1564
+ },
1565
+ {
1566
+ name: 'wxl',
1567
+ value: 'wxl'
1568
+ },
1569
+ {
1570
+ name: 'xliff',
1571
+ value: 'xliff'
1572
+ },
1573
+ {
1574
+ name: 'xliff_two',
1575
+ value: 'xliff_two'
1576
+ },
1577
+ {
1578
+ name: 'html',
1579
+ value: 'html'
1580
+ },
1581
+ {
1582
+ name: 'haml',
1583
+ value: 'haml'
1584
+ },
1585
+ {
1586
+ name: 'txt',
1587
+ value: 'txt'
1588
+ },
1589
+ {
1590
+ name: 'csv',
1591
+ value: 'csv'
1592
+ },
1593
+ {
1594
+ name: 'md',
1595
+ value: 'md'
1596
+ },
1597
+ {
1598
+ name: 'mdx_v1',
1599
+ value: 'mdx_v1'
1600
+ },
1601
+ {
1602
+ name: 'mdx_v2',
1603
+ value: 'mdx_v2'
1604
+ },
1605
+ {
1606
+ name: 'flsnp',
1607
+ value: 'flsnp'
1608
+ },
1609
+ {
1610
+ name: 'fm_html',
1611
+ value: 'fm_html'
1612
+ },
1613
+ {
1614
+ name: 'fm_md',
1615
+ value: 'fm_md'
1616
+ },
1617
+ {
1618
+ name: 'mediawiki',
1619
+ value: 'mediawiki'
1620
+ },
1621
+ {
1622
+ name: 'docx',
1623
+ value: 'docx'
1624
+ },
1625
+ {
1626
+ name: 'xlsx',
1627
+ value: 'xlsx'
1628
+ },
1629
+ {
1630
+ name: 'sbv',
1631
+ value: 'sbv'
1632
+ },
1633
+ {
1634
+ name: 'properties_play',
1635
+ value: 'properties_play'
1636
+ },
1637
+ {
1638
+ name: 'properties_xml',
1639
+ value: 'properties_xml'
1640
+ },
1641
+ {
1642
+ name: 'maxthon',
1643
+ value: 'maxthon'
1644
+ },
1645
+ {
1646
+ name: 'go_json',
1647
+ value: 'go_json'
1648
+ },
1649
+ {
1650
+ name: 'dita',
1651
+ value: 'dita'
1652
+ },
1653
+ {
1654
+ name: 'idml',
1655
+ value: 'idml'
1656
+ },
1657
+ {
1658
+ name: 'mif',
1659
+ value: 'mif'
1660
+ },
1661
+ {
1662
+ name: 'stringsdict',
1663
+ value: 'stringsdict'
1664
+ },
1665
+ {
1666
+ name: 'plist',
1667
+ value: 'plist'
1668
+ },
1669
+ {
1670
+ name: 'vtt',
1671
+ value: 'vtt'
1672
+ },
1673
+ {
1674
+ name: 'vdf',
1675
+ value: 'vdf'
1676
+ },
1677
+ {
1678
+ name: 'srt',
1679
+ value: 'srt'
1680
+ },
1681
+ {
1682
+ name: 'stf',
1683
+ value: 'stf'
1684
+ },
1685
+ {
1686
+ name: 'toml',
1687
+ value: 'toml'
1688
+ },
1689
+ {
1690
+ name: 'contentful_rt',
1691
+ value: 'contentful_rt'
1692
+ },
1693
+ {
1694
+ name: 'svg',
1695
+ value: 'svg'
1696
+ },
1697
+ {
1698
+ name: 'js',
1699
+ value: 'js'
1700
+ },
1701
+ {
1702
+ name: 'coffee',
1703
+ value: 'coffee'
1704
+ },
1705
+ {
1706
+ name: 'ts',
1707
+ value: 'ts'
1708
+ },
1709
+ {
1710
+ name: 'i18next_json',
1711
+ value: 'i18next_json'
1712
+ },
1713
+ {
1714
+ name: 'xaml',
1715
+ value: 'xaml'
1716
+ },
1717
+ {
1718
+ name: 'arb',
1719
+ value: 'arb'
1720
+ },
1721
+ {
1722
+ name: 'adoc',
1723
+ value: 'adoc'
1724
+ },
1725
+ {
1726
+ name: 'fbt',
1727
+ value: 'fbt'
1728
+ },
1729
+ {
1730
+ name: 'webxml',
1731
+ value: 'webxml'
1732
+ },
1733
+ {
1734
+ name: 'nestjs_i18n',
1735
+ value: 'nestjs_i18n'
1736
+ },
1737
+ {
1738
+ name: 'loc',
1739
+ value: 'loc'
1740
+ }
1741
+ ],
1742
+ routing: {
1743
+ send: {
1744
+ property: 'type',
1745
+ propertyInDotNotation: false,
1746
+ type: 'body',
1747
+ value: '={{ $value || undefined }}'
1748
+ }
1749
+ },
1750
+ displayOptions: {
1751
+ show: {
1752
+ resource: [
1753
+ 'ai'
1754
+ ],
1755
+ operation: [
1756
+ 'api.users.ai.file-translations.post'
1757
+ ]
1758
+ }
1759
+ }
1760
+ },
1761
+ {
1762
+ displayName: 'Parser Version',
1763
+ name: 'parserVersion',
1764
+ type: 'number',
1765
+ default: 0,
1766
+ description: 'Using latest parser version by default.\n\n__Note:__ Must be used together with `type`',
1767
+ routing: {
1768
+ send: {
1769
+ property: 'parserVersion',
1770
+ propertyInDotNotation: false,
1771
+ type: 'body',
1772
+ value: '={{ $value !== 0 ? $value : undefined }}'
1773
+ }
1774
+ },
1775
+ displayOptions: {
1776
+ show: {
1777
+ resource: [
1778
+ 'ai'
1779
+ ],
1780
+ operation: [
1781
+ 'api.users.ai.file-translations.post'
1782
+ ]
1783
+ }
1784
+ },
1785
+ placeholder: '1'
1786
+ },
1787
+ {
1788
+ displayName: 'Tm Ids',
1789
+ name: 'tmIds',
1790
+ type: 'multiOptions',
1791
+ default: [],
1792
+ description: 'Array of Translation Memory IDs. Get via [List TMs](#operation/api.tms.getMany)',
1793
+ routing: {
1794
+ send: {
1795
+ property: 'tmIds',
1796
+ propertyInDotNotation: false,
1797
+ type: 'body',
1798
+ value: '={{ $value }}'
1799
+ }
1800
+ },
1801
+ displayOptions: {
1802
+ show: {
1803
+ resource: [
1804
+ 'ai'
1805
+ ],
1806
+ operation: [
1807
+ 'api.users.ai.file-translations.post'
895
1808
  ]
896
1809
  }
1810
+ },
1811
+ typeOptions: {
1812
+ loadOptionsMethod: 'getTranslationMemoriesMulti'
897
1813
  }
898
1814
  },
899
1815
  {
900
- displayName: 'GET /projects/{projectId}/ai/settings',
901
- name: 'operation',
902
- type: 'notice',
903
- typeOptions: {
904
- theme: 'info'
1816
+ displayName: 'Glossary Ids',
1817
+ name: 'glossaryIds',
1818
+ type: 'multiOptions',
1819
+ default: [],
1820
+ description: 'Array of Glossary Identifiers. Get via [List Glossaries](#operation/api.glossaries.getMany)',
1821
+ routing: {
1822
+ send: {
1823
+ property: 'glossaryIds',
1824
+ propertyInDotNotation: false,
1825
+ type: 'body',
1826
+ value: '={{ $value }}'
1827
+ }
905
1828
  },
906
- default: '',
907
1829
  displayOptions: {
908
1830
  show: {
909
1831
  resource: [
910
1832
  'ai'
911
1833
  ],
912
1834
  operation: [
913
- 'api.projects.ai.settings.get'
1835
+ 'api.users.ai.file-translations.post'
914
1836
  ]
915
1837
  }
1838
+ },
1839
+ typeOptions: {
1840
+ loadOptionsMethod: 'getGlossariesMulti'
916
1841
  }
917
1842
  },
918
1843
  {
919
- displayName: 'User Id',
920
- name: 'userId',
921
- required: true,
922
- description: 'User Identifier',
923
- default: '',
1844
+ displayName: 'Ai Prompt Id',
1845
+ name: 'aiPromptId',
924
1846
  type: 'options',
1847
+ default: '',
1848
+ description: 'Pre-Translation Prompt Identifier. Get via [List Prompts](#operation/api.ai.prompts.getMany)\n\n__Note:__ Can\'t be used with `aiProviderId` or `aiModelId` in same request',
1849
+ routing: {
1850
+ send: {
1851
+ property: 'aiPromptId',
1852
+ propertyInDotNotation: false,
1853
+ type: 'body',
1854
+ value: '={{ typeof $value === \'number\' ? $value : undefined }}'
1855
+ }
1856
+ },
925
1857
  displayOptions: {
926
1858
  show: {
927
1859
  resource: [
928
1860
  'ai'
929
1861
  ],
930
1862
  operation: [
931
- 'api.ai.prompts.snippets.getMany'
1863
+ 'api.users.ai.file-translations.post'
932
1864
  ]
933
1865
  }
934
1866
  },
935
1867
  typeOptions: {
936
- loadOptionsMethod: 'getUsers'
1868
+ loadOptionsMethod: 'getAiPrompts'
937
1869
  }
938
1870
  },
939
1871
  {
940
- displayName: 'Limit',
941
- name: 'limit',
942
- description: 'Max number of results to return',
943
- default: 50,
944
- type: 'number',
1872
+ displayName: 'Ai Provider Id',
1873
+ name: 'aiProviderId',
1874
+ type: 'options',
1875
+ default: '',
1876
+ description: 'AI Provider Identifier. Get via [List AI Providers](#operation/api.ai.providers.getMany)\n\n__Note:__ Must be used together with `aiModelId`. Can\'t be used with `aiPromptId` in same request',
945
1877
  routing: {
946
1878
  send: {
947
- type: 'query',
948
- property: 'limit',
949
- value: '={{ typeof $value === \'number\' ? $value : undefined }}',
950
- propertyInDotNotation: false
1879
+ property: 'aiProviderId',
1880
+ propertyInDotNotation: false,
1881
+ type: 'body',
1882
+ value: '={{ typeof $value === \'number\' ? $value : undefined }}'
951
1883
  }
952
1884
  },
953
1885
  displayOptions: {
@@ -956,51 +1888,57 @@ exports.aiProperties = [
956
1888
  'ai'
957
1889
  ],
958
1890
  operation: [
959
- 'api.ai.prompts.snippets.getMany'
960
- ],
961
- returnAll: [
962
- false
1891
+ 'api.users.ai.file-translations.post'
963
1892
  ]
964
1893
  }
965
1894
  },
966
1895
  typeOptions: {
967
- minValue: 1
1896
+ loadOptionsMethod: 'getAiProviders'
968
1897
  }
969
1898
  },
970
1899
  {
971
- displayName: 'User Id',
972
- name: 'userId',
973
- required: true,
974
- description: 'User Identifier',
975
- default: '',
1900
+ displayName: 'Ai Model Id',
1901
+ name: 'aiModelId',
976
1902
  type: 'options',
1903
+ default: '',
1904
+ description: 'AI Model ID. Get via [List AI Provider Models](#operation/api.ai.providers.models.getMany)\n\n__Note:__ Must be used together with `aiProviderId`. Can\'t be used with `aiPromptId` in same request',
1905
+ routing: {
1906
+ send: {
1907
+ property: 'aiModelId',
1908
+ propertyInDotNotation: false,
1909
+ type: 'body',
1910
+ value: '={{ $value || undefined }}'
1911
+ }
1912
+ },
977
1913
  displayOptions: {
978
1914
  show: {
979
1915
  resource: [
980
1916
  'ai'
981
1917
  ],
982
1918
  operation: [
983
- 'api.ai.prompts.snippets.post'
1919
+ 'api.users.ai.file-translations.post'
984
1920
  ]
985
1921
  }
986
1922
  },
987
1923
  typeOptions: {
988
- loadOptionsMethod: 'getUsers'
1924
+ loadOptionsMethod: 'getAiProviderModels',
1925
+ loadOptionsDependsOn: [
1926
+ 'aiProviderId'
1927
+ ]
989
1928
  }
990
1929
  },
991
1930
  {
992
- displayName: 'Description',
993
- required: true,
994
- name: 'description',
995
- type: 'string',
996
- default: '',
997
- description: 'The description must be unique and must be between 3 and 255 characters.',
1931
+ displayName: 'Instructions',
1932
+ name: 'instructions',
1933
+ type: 'fixedCollection',
1934
+ default: {},
1935
+ description: 'Custom instructions for translation',
998
1936
  routing: {
999
1937
  send: {
1000
- property: 'description',
1938
+ property: 'instructions',
1001
1939
  propertyInDotNotation: false,
1002
1940
  type: 'body',
1003
- value: '={{ $value || undefined }}'
1941
+ value: '={{ $value.items?.map(i => i._value) || undefined }}'
1004
1942
  }
1005
1943
  },
1006
1944
  displayOptions: {
@@ -1009,25 +1947,41 @@ exports.aiProperties = [
1009
1947
  'ai'
1010
1948
  ],
1011
1949
  operation: [
1012
- 'api.ai.prompts.snippets.post'
1950
+ 'api.users.ai.file-translations.post'
1013
1951
  ]
1014
1952
  }
1015
1953
  },
1016
- placeholder: 'Product description'
1954
+ typeOptions: {
1955
+ multipleValues: true
1956
+ },
1957
+ placeholder: 'Add Item',
1958
+ options: [
1959
+ {
1960
+ displayName: 'Items',
1961
+ name: 'items',
1962
+ values: [
1963
+ {
1964
+ displayName: 'Value',
1965
+ name: '_value',
1966
+ type: 'string',
1967
+ default: ''
1968
+ }
1969
+ ]
1970
+ }
1971
+ ]
1017
1972
  },
1018
1973
  {
1019
- displayName: 'Placeholder',
1020
- required: true,
1021
- name: 'placeholder',
1022
- type: 'string',
1023
- default: '',
1024
- description: 'The placeholder must be unique and must start with `%custom:` and end with `%`. Allowed characters: `a-z`, `A-Z`, `0-9`, `-`. The full length must not exceed 255 characters.',
1974
+ displayName: 'Attachment Ids',
1975
+ name: 'attachmentIds',
1976
+ type: 'fixedCollection',
1977
+ default: {},
1978
+ description: 'Storage IDs of images to pass to AI as attachments (max 10). Get via [List Storages](#operation/api.storages.getMany)\n\nOnly image files are allowed:\n * jpeg\n * jpg\n * png\n * gif\n * webp',
1025
1979
  routing: {
1026
1980
  send: {
1027
- property: 'placeholder',
1981
+ property: 'attachmentIds',
1028
1982
  propertyInDotNotation: false,
1029
1983
  type: 'body',
1030
- value: '={{ $value || undefined }}'
1984
+ value: '={{ $value.items?.map(i => i._value) || undefined }}'
1031
1985
  }
1032
1986
  },
1033
1987
  displayOptions: {
@@ -1036,38 +1990,68 @@ exports.aiProperties = [
1036
1990
  'ai'
1037
1991
  ],
1038
1992
  operation: [
1039
- 'api.ai.prompts.snippets.post'
1993
+ 'api.users.ai.file-translations.post'
1040
1994
  ]
1041
1995
  }
1042
1996
  },
1043
- placeholder: '%custom:productDescription%'
1997
+ typeOptions: {
1998
+ multipleValues: true
1999
+ },
2000
+ placeholder: 'Add Item',
2001
+ options: [
2002
+ {
2003
+ displayName: 'Items',
2004
+ name: 'items',
2005
+ values: [
2006
+ {
2007
+ displayName: 'Value',
2008
+ name: '_value',
2009
+ type: 'number',
2010
+ default: 0,
2011
+ placeholder: '0'
2012
+ }
2013
+ ]
2014
+ }
2015
+ ]
1044
2016
  },
1045
2017
  {
1046
- displayName: 'Value',
2018
+ displayName: 'User Id',
2019
+ name: 'userId',
1047
2020
  required: true,
1048
- name: 'value',
1049
- type: 'string',
2021
+ description: 'User Identifier',
1050
2022
  default: '',
1051
- description: 'The text that will be utilized in the prompt. The value must not exceed 4000 characters.',
1052
- routing: {
1053
- send: {
1054
- property: 'value',
1055
- propertyInDotNotation: false,
1056
- type: 'body',
1057
- value: '={{ $value || undefined }}'
2023
+ type: 'options',
2024
+ displayOptions: {
2025
+ show: {
2026
+ resource: [
2027
+ 'ai'
2028
+ ],
2029
+ operation: [
2030
+ 'api.users.ai.file-translations.get'
2031
+ ]
1058
2032
  }
1059
2033
  },
2034
+ typeOptions: {
2035
+ loadOptionsMethod: 'getUsers'
2036
+ }
2037
+ },
2038
+ {
2039
+ displayName: 'Job Identifier',
2040
+ name: 'jobIdentifier',
2041
+ required: true,
2042
+ description: 'AI File Translations job identifier',
2043
+ default: '',
2044
+ type: 'string',
1060
2045
  displayOptions: {
1061
2046
  show: {
1062
2047
  resource: [
1063
2048
  'ai'
1064
2049
  ],
1065
2050
  operation: [
1066
- 'api.ai.prompts.snippets.post'
2051
+ 'api.users.ai.file-translations.get'
1067
2052
  ]
1068
2053
  }
1069
- },
1070
- placeholder: 'The product is the professional consulting service that transform challenges into opportunities.'
2054
+ }
1071
2055
  },
1072
2056
  {
1073
2057
  displayName: 'User Id',
@@ -1082,7 +2066,7 @@ exports.aiProperties = [
1082
2066
  'ai'
1083
2067
  ],
1084
2068
  operation: [
1085
- 'api.ai.prompts.snippets.get'
2069
+ 'api.users.ai.file-translations.delete'
1086
2070
  ]
1087
2071
  }
1088
2072
  },
@@ -1091,24 +2075,21 @@ exports.aiProperties = [
1091
2075
  }
1092
2076
  },
1093
2077
  {
1094
- displayName: 'Ai Snippet Id',
1095
- name: 'aiSnippetId',
2078
+ displayName: 'Job Identifier',
2079
+ name: 'jobIdentifier',
1096
2080
  required: true,
1097
- description: 'AI Snippet identifier. Get via [List AI Snippets](#operation/api.ai.prompts.snippets.getMany)',
2081
+ description: 'AI File Translations job identifier',
1098
2082
  default: '',
1099
- type: 'options',
2083
+ type: 'string',
1100
2084
  displayOptions: {
1101
2085
  show: {
1102
2086
  resource: [
1103
2087
  'ai'
1104
2088
  ],
1105
2089
  operation: [
1106
- 'api.ai.prompts.snippets.get'
2090
+ 'api.users.ai.file-translations.delete'
1107
2091
  ]
1108
2092
  }
1109
- },
1110
- typeOptions: {
1111
- loadOptionsMethod: 'getAiSnippets'
1112
2093
  }
1113
2094
  },
1114
2095
  {
@@ -1124,7 +2105,7 @@ exports.aiProperties = [
1124
2105
  'ai'
1125
2106
  ],
1126
2107
  operation: [
1127
- 'api.ai.prompts.snippets.delete'
2108
+ 'api.users.ai.file-translations.download'
1128
2109
  ]
1129
2110
  }
1130
2111
  },
@@ -1133,24 +2114,21 @@ exports.aiProperties = [
1133
2114
  }
1134
2115
  },
1135
2116
  {
1136
- displayName: 'Ai Snippet Id',
1137
- name: 'aiSnippetId',
2117
+ displayName: 'Job Identifier',
2118
+ name: 'jobIdentifier',
1138
2119
  required: true,
1139
- description: 'AI Snippet identifier. Get via [List AI Snippets](#operation/api.ai.prompts.snippets.getMany)',
2120
+ description: 'AI File Translations job identifier',
1140
2121
  default: '',
1141
- type: 'options',
2122
+ type: 'string',
1142
2123
  displayOptions: {
1143
2124
  show: {
1144
2125
  resource: [
1145
2126
  'ai'
1146
2127
  ],
1147
2128
  operation: [
1148
- 'api.ai.prompts.snippets.delete'
2129
+ 'api.users.ai.file-translations.download'
1149
2130
  ]
1150
2131
  }
1151
- },
1152
- typeOptions: {
1153
- loadOptionsMethod: 'getAiSnippets'
1154
2132
  }
1155
2133
  },
1156
2134
  {
@@ -1166,7 +2144,7 @@ exports.aiProperties = [
1166
2144
  'ai'
1167
2145
  ],
1168
2146
  operation: [
1169
- 'api.ai.prompts.snippets.patch'
2147
+ 'api.users.ai.file-translations.download-strings'
1170
2148
  ]
1171
2149
  }
1172
2150
  },
@@ -1175,24 +2153,21 @@ exports.aiProperties = [
1175
2153
  }
1176
2154
  },
1177
2155
  {
1178
- displayName: 'Ai Snippet Id',
1179
- name: 'aiSnippetId',
2156
+ displayName: 'Job Identifier',
2157
+ name: 'jobIdentifier',
1180
2158
  required: true,
1181
- description: 'AI Snippet identifier. Get via [List AI Snippets](#operation/api.ai.prompts.snippets.getMany)',
2159
+ description: 'AI File Translations job identifier',
1182
2160
  default: '',
1183
- type: 'options',
2161
+ type: 'string',
1184
2162
  displayOptions: {
1185
2163
  show: {
1186
2164
  resource: [
1187
2165
  'ai'
1188
2166
  ],
1189
2167
  operation: [
1190
- 'api.ai.prompts.snippets.patch'
2168
+ 'api.users.ai.file-translations.download-strings'
1191
2169
  ]
1192
2170
  }
1193
- },
1194
- typeOptions: {
1195
- loadOptionsMethod: 'getAiSnippets'
1196
2171
  }
1197
2172
  },
1198
2173
  {
@@ -2328,6 +3303,10 @@ exports.aiProperties = [
2328
3303
  name: 'google_gemini',
2329
3304
  value: 'google_gemini'
2330
3305
  },
3306
+ {
3307
+ name: 'google_gemini_ai_studio',
3308
+ value: 'google_gemini_ai_studio'
3309
+ },
2331
3310
  {
2332
3311
  name: 'mistral_ai',
2333
3312
  value: 'mistral_ai'
@@ -2443,8 +3422,8 @@ exports.aiProperties = [
2443
3422
  ]
2444
3423
  },
2445
3424
  {
2446
- displayName: 'Google Gemini',
2447
- name: '_googleGemini',
3425
+ displayName: 'Google Gemini (Vertex AI)',
3426
+ name: '_googleGeminiVertexAi',
2448
3427
  values: [
2449
3428
  {
2450
3429
  displayName: 'Project',
@@ -2469,6 +3448,23 @@ exports.aiProperties = [
2469
3448
  }
2470
3449
  ]
2471
3450
  },
3451
+ {
3452
+ displayName: 'Google Gemini (AI Studio)',
3453
+ name: '_googleGeminiAiStudio',
3454
+ values: [
3455
+ {
3456
+ displayName: 'Api Key',
3457
+ name: 'apiKey',
3458
+ type: 'string',
3459
+ default: '',
3460
+ description: 'API key from Google AI Studio',
3461
+ required: true,
3462
+ typeOptions: {
3463
+ password: true
3464
+ }
3465
+ }
3466
+ ]
3467
+ },
2472
3468
  {
2473
3469
  displayName: 'Mistral AI',
2474
3470
  name: '_mistralAi',
@@ -2628,7 +3624,7 @@ exports.aiProperties = [
2628
3624
  name: 'useSystemCredentials',
2629
3625
  type: 'boolean',
2630
3626
  default: false,
2631
- description: 'Enables the paid service AI provider via Crowdin.\n\n__Note__: Set to true if `credentials` is not provided. Not supported for `custom_ai`, `x_ai`, `watsonx` and `deepseek` types.',
3627
+ description: 'Enables the paid service AI provider via Crowdin.\n\n__Note__: Set to true if `credentials` is not provided. Not supported for `custom_ai`, `x_ai`, `watsonx`, `deepseek` and `google_gemini_ai_studio` types.',
2632
3628
  routing: {
2633
3629
  send: {
2634
3630
  property: 'useSystemCredentials',
@@ -3272,7 +4268,7 @@ exports.aiProperties = [
3272
4268
  name: 'sourceLanguageId',
3273
4269
  type: 'options',
3274
4270
  default: '',
3275
- description: 'Source Language Identifier. Get via [List Supported Languages](#operation/api.languages.getMany)',
4271
+ description: 'Source Language Identifier. Get via [List Supported Languages](#operation/api.languages.getMany). If not specified, auto-detection will be used.',
3276
4272
  routing: {
3277
4273
  send: {
3278
4274
  property: 'sourceLanguageId',
@@ -4225,6 +5221,10 @@ exports.aiProperties = [
4225
5221
  name: 'google_gemini',
4226
5222
  value: 'google_gemini'
4227
5223
  },
5224
+ {
5225
+ name: 'google_gemini_ai_studio',
5226
+ value: 'google_gemini_ai_studio'
5227
+ },
4228
5228
  {
4229
5229
  name: 'mistral_ai',
4230
5230
  value: 'mistral_ai'
@@ -4312,8 +5312,8 @@ exports.aiProperties = [
4312
5312
  ]
4313
5313
  },
4314
5314
  {
4315
- name: '_googleGemini',
4316
- displayName: 'Google Gemini',
5315
+ name: '_googleGeminiVertexAi',
5316
+ displayName: 'Google Gemini (Vertex AI)',
4317
5317
  values: [
4318
5318
  {
4319
5319
  displayName: 'Project',
@@ -4338,6 +5338,23 @@ exports.aiProperties = [
4338
5338
  }
4339
5339
  ]
4340
5340
  },
5341
+ {
5342
+ name: '_googleGeminiAiStudio',
5343
+ displayName: 'Google Gemini (AI Studio)',
5344
+ values: [
5345
+ {
5346
+ displayName: 'Api Key',
5347
+ name: 'apiKey',
5348
+ type: 'string',
5349
+ default: '',
5350
+ description: 'API key from Google AI Studio',
5351
+ required: true,
5352
+ typeOptions: {
5353
+ password: true
5354
+ }
5355
+ }
5356
+ ]
5357
+ },
4341
5358
  {
4342
5359
  name: '_mistralAi',
4343
5360
  displayName: 'Mistral AI',
@@ -4468,7 +5485,7 @@ exports.aiProperties = [
4468
5485
  name: 'useSystemCredentials',
4469
5486
  type: 'boolean',
4470
5487
  default: false,
4471
- description: 'Enables the paid service AI provider via Crowdin.\n\n__Note__: Set to true if `credentials` is not provided. Not supported for `custom_ai`, `x_ai`, `watsonx` and `deepseek` types.'
5488
+ description: 'Enables the paid service AI provider via Crowdin.\n\n__Note__: Set to true if `credentials` is not provided. Not supported for `custom_ai`, `x_ai`, `watsonx`, `deepseek` and `google_gemini_ai_studio` types.'
4472
5489
  }
4473
5490
  ],
4474
5491
  routing: {