@crowdin/n8n-nodes-crowdin 0.10.0 → 0.12.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 (67) hide show
  1. package/dist/nodes/Crowdin/properties/crowdin/fileBased/ai.js +15 -289
  2. package/dist/nodes/Crowdin/properties/crowdin/fileBased/ai.js.map +1 -1
  3. package/dist/nodes/Crowdin/properties/crowdin/fileBased/glossaries.js +116 -65
  4. package/dist/nodes/Crowdin/properties/crowdin/fileBased/glossaries.js.map +1 -1
  5. package/dist/nodes/Crowdin/properties/crowdin/fileBased/index.js +35 -41
  6. package/dist/nodes/Crowdin/properties/crowdin/fileBased/index.js.map +1 -1
  7. package/dist/nodes/Crowdin/properties/crowdin/fileBased/reports.js +2 -2
  8. package/dist/nodes/Crowdin/properties/crowdin/fileBased/reports.js.map +1 -1
  9. package/dist/nodes/Crowdin/properties/crowdin/fileBased/sourceFiles.js +79 -1
  10. package/dist/nodes/Crowdin/properties/crowdin/fileBased/sourceFiles.js.map +1 -1
  11. package/dist/nodes/Crowdin/properties/crowdin/fileBased/tasks.js +272 -1819
  12. package/dist/nodes/Crowdin/properties/crowdin/fileBased/tasks.js.map +1 -1
  13. package/dist/nodes/Crowdin/properties/crowdin/fileBased/translations.js +1720 -50
  14. package/dist/nodes/Crowdin/properties/crowdin/fileBased/translations.js.map +1 -1
  15. package/dist/nodes/Crowdin/properties/crowdin/stringBased/ai.js +15 -289
  16. package/dist/nodes/Crowdin/properties/crowdin/stringBased/ai.js.map +1 -1
  17. package/dist/nodes/Crowdin/properties/crowdin/stringBased/glossaries.js +116 -65
  18. package/dist/nodes/Crowdin/properties/crowdin/stringBased/glossaries.js.map +1 -1
  19. package/dist/nodes/Crowdin/properties/crowdin/stringBased/index.js +35 -41
  20. package/dist/nodes/Crowdin/properties/crowdin/stringBased/index.js.map +1 -1
  21. package/dist/nodes/Crowdin/properties/crowdin/stringBased/reports.js +2 -2
  22. package/dist/nodes/Crowdin/properties/crowdin/stringBased/reports.js.map +1 -1
  23. package/dist/nodes/Crowdin/properties/crowdin/stringBased/tasks.js +273 -1820
  24. package/dist/nodes/Crowdin/properties/crowdin/stringBased/tasks.js.map +1 -1
  25. package/dist/nodes/Crowdin/properties/crowdin/stringBased/translations.js +1678 -33
  26. package/dist/nodes/Crowdin/properties/crowdin/stringBased/translations.js.map +1 -1
  27. package/dist/nodes/Crowdin/properties/enterprise/fileBased/ai.js +51 -283
  28. package/dist/nodes/Crowdin/properties/enterprise/fileBased/ai.js.map +1 -1
  29. package/dist/nodes/Crowdin/properties/enterprise/fileBased/glossaries.js +116 -65
  30. package/dist/nodes/Crowdin/properties/enterprise/fileBased/glossaries.js.map +1 -1
  31. package/dist/nodes/Crowdin/properties/enterprise/fileBased/index.js +19 -25
  32. package/dist/nodes/Crowdin/properties/enterprise/fileBased/index.js.map +1 -1
  33. package/dist/nodes/Crowdin/properties/enterprise/fileBased/reports.js +19 -19
  34. package/dist/nodes/Crowdin/properties/enterprise/fileBased/reports.js.map +1 -1
  35. package/dist/nodes/Crowdin/properties/enterprise/fileBased/sourceFiles.js +79 -1
  36. package/dist/nodes/Crowdin/properties/enterprise/fileBased/sourceFiles.js.map +1 -1
  37. package/dist/nodes/Crowdin/properties/enterprise/fileBased/tasks.js +64 -11
  38. package/dist/nodes/Crowdin/properties/enterprise/fileBased/tasks.js.map +1 -1
  39. package/dist/nodes/Crowdin/properties/enterprise/fileBased/translations.js +1746 -50
  40. package/dist/nodes/Crowdin/properties/enterprise/fileBased/translations.js.map +1 -1
  41. package/dist/nodes/Crowdin/properties/enterprise/stringBased/ai.js +51 -283
  42. package/dist/nodes/Crowdin/properties/enterprise/stringBased/ai.js.map +1 -1
  43. package/dist/nodes/Crowdin/properties/enterprise/stringBased/glossaries.js +116 -65
  44. package/dist/nodes/Crowdin/properties/enterprise/stringBased/glossaries.js.map +1 -1
  45. package/dist/nodes/Crowdin/properties/enterprise/stringBased/index.js +0 -6
  46. package/dist/nodes/Crowdin/properties/enterprise/stringBased/index.js.map +1 -1
  47. package/dist/nodes/Crowdin/properties/enterprise/stringBased/reports.js +19 -19
  48. package/dist/nodes/Crowdin/properties/enterprise/stringBased/reports.js.map +1 -1
  49. package/dist/nodes/Crowdin/properties/enterprise/stringBased/tasks.js +64 -11
  50. package/dist/nodes/Crowdin/properties/enterprise/stringBased/tasks.js.map +1 -1
  51. package/dist/nodes/Crowdin/properties/enterprise/stringBased/translations.js +1704 -33
  52. package/dist/nodes/Crowdin/properties/enterprise/stringBased/translations.js.map +1 -1
  53. package/dist/package.json +1 -1
  54. package/dist/tsconfig.tsbuildinfo +1 -1
  55. package/package.json +1 -1
  56. package/dist/nodes/Crowdin/properties/crowdin/fileBased/bundles.d.ts +0 -2
  57. package/dist/nodes/Crowdin/properties/crowdin/fileBased/bundles.js +0 -1453
  58. package/dist/nodes/Crowdin/properties/crowdin/fileBased/bundles.js.map +0 -1
  59. package/dist/nodes/Crowdin/properties/crowdin/stringBased/bundles.d.ts +0 -2
  60. package/dist/nodes/Crowdin/properties/crowdin/stringBased/bundles.js +0 -1453
  61. package/dist/nodes/Crowdin/properties/crowdin/stringBased/bundles.js.map +0 -1
  62. package/dist/nodes/Crowdin/properties/enterprise/fileBased/bundles.d.ts +0 -2
  63. package/dist/nodes/Crowdin/properties/enterprise/fileBased/bundles.js +0 -1453
  64. package/dist/nodes/Crowdin/properties/enterprise/fileBased/bundles.js.map +0 -1
  65. package/dist/nodes/Crowdin/properties/enterprise/stringBased/bundles.d.ts +0 -2
  66. package/dist/nodes/Crowdin/properties/enterprise/stringBased/bundles.js +0 -1453
  67. package/dist/nodes/Crowdin/properties/enterprise/stringBased/bundles.js.map +0 -1
@@ -16,6 +16,157 @@ exports.translationsProperties = [
16
16
  }
17
17
  },
18
18
  options: [
19
+ {
20
+ name: 'List Bundles',
21
+ value: 'api.projects.bundles.getMany',
22
+ action: 'List Bundles',
23
+ description: '**Required scopes:** `project.translation` (Read only).',
24
+ routing: {
25
+ request: {
26
+ method: 'GET',
27
+ url: '=/projects/{{$parameter["projectId"]}}/bundles'
28
+ },
29
+ send: {
30
+ paginate: '={{$parameter["returnAll"]}}'
31
+ },
32
+ output: {
33
+ postReceive: [
34
+ {
35
+ type: 'rootProperty',
36
+ enabled: '={{!$parameter["returnAll"]}}',
37
+ properties: {
38
+ property: 'data'
39
+ }
40
+ }
41
+ ]
42
+ }
43
+ }
44
+ },
45
+ {
46
+ name: 'Add Bundle',
47
+ value: 'api.projects.bundles.post',
48
+ action: 'Add Bundle',
49
+ description: '**Required scopes:** `project.source.file` (Read and Write).',
50
+ routing: {
51
+ request: {
52
+ method: 'POST',
53
+ url: '=/projects/{{$parameter["projectId"]}}/bundles'
54
+ }
55
+ }
56
+ },
57
+ {
58
+ name: 'Get Bundle',
59
+ value: 'api.projects.bundles.get',
60
+ action: 'Get Bundle',
61
+ description: '**Required scopes:** `project.source.file` (Read only).',
62
+ routing: {
63
+ request: {
64
+ method: 'GET',
65
+ url: '=/projects/{{$parameter["projectId"]}}/bundles/{{$parameter["bundleId"]}}'
66
+ }
67
+ }
68
+ },
69
+ {
70
+ name: 'Delete Bundle',
71
+ value: 'api.projects.bundles.delete',
72
+ action: 'Delete Bundle',
73
+ description: '**Required scopes:** `project.source.file` (Read and Write).',
74
+ routing: {
75
+ request: {
76
+ method: 'DELETE',
77
+ url: '=/projects/{{$parameter["projectId"]}}/bundles/{{$parameter["bundleId"]}}'
78
+ },
79
+ output: {
80
+ postReceive: [
81
+ {
82
+ type: 'set',
83
+ properties: {
84
+ value: '={{ { "success": true } }}'
85
+ }
86
+ }
87
+ ]
88
+ }
89
+ }
90
+ },
91
+ {
92
+ name: 'Edit Bundle',
93
+ value: 'api.projects.bundles.patch',
94
+ action: 'Edit Bundle',
95
+ description: '**Required scopes:** `project.source.file` (Read and Write).',
96
+ routing: {
97
+ request: {
98
+ method: 'PATCH',
99
+ url: '=/projects/{{$parameter["projectId"]}}/bundles/{{$parameter["bundleId"]}}'
100
+ },
101
+ send: {
102
+ preSend: [
103
+ preSend_1.transformToJsonPatch
104
+ ]
105
+ }
106
+ }
107
+ },
108
+ {
109
+ name: 'Download Bundle',
110
+ value: 'api.projects.bundles.exports.download.get',
111
+ action: 'Download Bundle',
112
+ description: '**Required scopes:** `project.translation` (Read only).',
113
+ routing: {
114
+ request: {
115
+ method: 'GET',
116
+ url: '=/projects/{{$parameter["projectId"]}}/bundles/{{$parameter["bundleId"]}}/exports/{{$parameter["exportId"]}}/download'
117
+ }
118
+ }
119
+ },
120
+ {
121
+ name: 'Export Bundle',
122
+ value: 'api.projects.bundles.exports.post',
123
+ action: 'Export Bundle',
124
+ description: '**Required scopes:** `project.translation` (Read only).',
125
+ routing: {
126
+ request: {
127
+ method: 'POST',
128
+ url: '=/projects/{{$parameter["projectId"]}}/bundles/{{$parameter["bundleId"]}}/exports'
129
+ }
130
+ }
131
+ },
132
+ {
133
+ name: 'Check Bundle Export Status',
134
+ value: 'api.projects.bundles.exports.get',
135
+ action: 'Check Bundle Export Status',
136
+ description: '**Required scopes:** `project.translation` (Read only).',
137
+ routing: {
138
+ request: {
139
+ method: 'GET',
140
+ url: '=/projects/{{$parameter["projectId"]}}/bundles/{{$parameter["bundleId"]}}/exports/{{$parameter["exportId"]}}'
141
+ }
142
+ }
143
+ },
144
+ {
145
+ name: 'Bundle List Files',
146
+ value: 'api.projects.bundles.files.getMany',
147
+ action: 'Bundle List Files',
148
+ description: '**Required scopes:** `project.source.file` (Read only).',
149
+ routing: {
150
+ request: {
151
+ method: 'GET',
152
+ url: '=/projects/{{$parameter["projectId"]}}/bundles/{{$parameter["bundleId"]}}/files'
153
+ },
154
+ send: {
155
+ paginate: '={{$parameter["returnAll"]}}'
156
+ },
157
+ output: {
158
+ postReceive: [
159
+ {
160
+ type: 'rootProperty',
161
+ enabled: '={{!$parameter["returnAll"]}}',
162
+ properties: {
163
+ property: 'data'
164
+ }
165
+ }
166
+ ]
167
+ }
168
+ }
169
+ },
19
170
  {
20
171
  name: 'List Pre-Translations',
21
172
  value: 'api.projects.pre-translations.getMany',
@@ -263,10 +414,10 @@ exports.translationsProperties = [
263
414
  }
264
415
  }
265
416
  ],
266
- default: 'api.projects.pre-translations.getMany'
417
+ default: 'api.projects.bundles.getMany'
267
418
  },
268
419
  {
269
- displayName: 'GET /projects/{projectId}/pre-translations',
420
+ displayName: 'GET /projects/{projectId}/bundles',
270
421
  name: 'operation',
271
422
  type: 'notice',
272
423
  typeOptions: {
@@ -279,13 +430,13 @@ exports.translationsProperties = [
279
430
  'translations'
280
431
  ],
281
432
  operation: [
282
- 'api.projects.pre-translations.getMany'
433
+ 'api.projects.bundles.getMany'
283
434
  ]
284
435
  }
285
436
  }
286
437
  },
287
438
  {
288
- displayName: 'POST /projects/{projectId}/pre-translations',
439
+ displayName: 'POST /projects/{projectId}/bundles',
289
440
  name: 'operation',
290
441
  type: 'notice',
291
442
  typeOptions: {
@@ -298,13 +449,13 @@ exports.translationsProperties = [
298
449
  'translations'
299
450
  ],
300
451
  operation: [
301
- 'api.projects.pre-translations.post'
452
+ 'api.projects.bundles.post'
302
453
  ]
303
454
  }
304
455
  }
305
456
  },
306
457
  {
307
- displayName: 'GET /projects/{projectId}/pre-translations/{preTranslationId}',
458
+ displayName: 'GET /projects/{projectId}/bundles/{bundleId}',
308
459
  name: 'operation',
309
460
  type: 'notice',
310
461
  typeOptions: {
@@ -317,13 +468,13 @@ exports.translationsProperties = [
317
468
  'translations'
318
469
  ],
319
470
  operation: [
320
- 'api.projects.pre-translations.get'
471
+ 'api.projects.bundles.get'
321
472
  ]
322
473
  }
323
474
  }
324
475
  },
325
476
  {
326
- displayName: 'PATCH /projects/{projectId}/pre-translations/{preTranslationId}',
477
+ displayName: 'DELETE /projects/{projectId}/bundles/{bundleId}',
327
478
  name: 'operation',
328
479
  type: 'notice',
329
480
  typeOptions: {
@@ -336,13 +487,13 @@ exports.translationsProperties = [
336
487
  'translations'
337
488
  ],
338
489
  operation: [
339
- 'api.projects.pre-translations.patch'
490
+ 'api.projects.bundles.delete'
340
491
  ]
341
492
  }
342
493
  }
343
494
  },
344
495
  {
345
- displayName: 'GET /projects/{projectId}/pre-translations/{preTranslationId}/report',
496
+ displayName: 'PATCH /projects/{projectId}/bundles/{bundleId}',
346
497
  name: 'operation',
347
498
  type: 'notice',
348
499
  typeOptions: {
@@ -355,13 +506,13 @@ exports.translationsProperties = [
355
506
  'translations'
356
507
  ],
357
508
  operation: [
358
- 'api.projects.pre-translations.report.getReport'
509
+ 'api.projects.bundles.patch'
359
510
  ]
360
511
  }
361
512
  }
362
513
  },
363
514
  {
364
- displayName: 'POST /projects/{projectId}/translations/validate-qa-checks',
515
+ displayName: 'GET /projects/{projectId}/bundles/{bundleId}/exports/{exportId}/download',
365
516
  name: 'operation',
366
517
  type: 'notice',
367
518
  typeOptions: {
@@ -374,13 +525,13 @@ exports.translationsProperties = [
374
525
  'translations'
375
526
  ],
376
527
  operation: [
377
- 'api.projects.translations.validate-qa-checks.post'
528
+ 'api.projects.bundles.exports.download.get'
378
529
  ]
379
530
  }
380
531
  }
381
532
  },
382
533
  {
383
- displayName: 'POST /projects/{projectId}/translations/builds/directories/{directoryId}',
534
+ displayName: 'POST /projects/{projectId}/bundles/{bundleId}/exports',
384
535
  name: 'operation',
385
536
  type: 'notice',
386
537
  typeOptions: {
@@ -393,13 +544,13 @@ exports.translationsProperties = [
393
544
  'translations'
394
545
  ],
395
546
  operation: [
396
- 'api.projects.translations.builds.directories.post'
547
+ 'api.projects.bundles.exports.post'
397
548
  ]
398
549
  }
399
550
  }
400
551
  },
401
552
  {
402
- displayName: 'POST /projects/{projectId}/translations/builds/files/{fileId}',
553
+ displayName: 'GET /projects/{projectId}/bundles/{bundleId}/exports/{exportId}',
403
554
  name: 'operation',
404
555
  type: 'notice',
405
556
  typeOptions: {
@@ -412,13 +563,13 @@ exports.translationsProperties = [
412
563
  'translations'
413
564
  ],
414
565
  operation: [
415
- 'api.projects.translations.builds.files.post'
566
+ 'api.projects.bundles.exports.get'
416
567
  ]
417
568
  }
418
569
  }
419
570
  },
420
571
  {
421
- displayName: 'GET /projects/{projectId}/translations/builds',
572
+ displayName: 'GET /projects/{projectId}/bundles/{bundleId}/files',
422
573
  name: 'operation',
423
574
  type: 'notice',
424
575
  typeOptions: {
@@ -431,13 +582,13 @@ exports.translationsProperties = [
431
582
  'translations'
432
583
  ],
433
584
  operation: [
434
- 'api.projects.translations.builds.getMany'
585
+ 'api.projects.bundles.files.getMany'
435
586
  ]
436
587
  }
437
588
  }
438
589
  },
439
590
  {
440
- displayName: 'POST /projects/{projectId}/translations/builds',
591
+ displayName: 'GET /projects/{projectId}/pre-translations',
441
592
  name: 'operation',
442
593
  type: 'notice',
443
594
  typeOptions: {
@@ -450,13 +601,13 @@ exports.translationsProperties = [
450
601
  'translations'
451
602
  ],
452
603
  operation: [
453
- 'api.projects.translations.builds.post'
604
+ 'api.projects.pre-translations.getMany'
454
605
  ]
455
606
  }
456
607
  }
457
608
  },
458
609
  {
459
- displayName: 'GET /projects/{projectId}/translations/builds/{buildId}/download',
610
+ displayName: 'POST /projects/{projectId}/pre-translations',
460
611
  name: 'operation',
461
612
  type: 'notice',
462
613
  typeOptions: {
@@ -469,13 +620,13 @@ exports.translationsProperties = [
469
620
  'translations'
470
621
  ],
471
622
  operation: [
472
- 'api.projects.translations.builds.download.download'
623
+ 'api.projects.pre-translations.post'
473
624
  ]
474
625
  }
475
626
  }
476
627
  },
477
628
  {
478
- displayName: 'GET /projects/{projectId}/translations/builds/{buildId}',
629
+ displayName: 'GET /projects/{projectId}/pre-translations/{preTranslationId}',
479
630
  name: 'operation',
480
631
  type: 'notice',
481
632
  typeOptions: {
@@ -488,13 +639,13 @@ exports.translationsProperties = [
488
639
  'translations'
489
640
  ],
490
641
  operation: [
491
- 'api.projects.translations.builds.get'
642
+ 'api.projects.pre-translations.get'
492
643
  ]
493
644
  }
494
645
  }
495
646
  },
496
647
  {
497
- displayName: 'DELETE /projects/{projectId}/translations/builds/{buildId}',
648
+ displayName: 'PATCH /projects/{projectId}/pre-translations/{preTranslationId}',
498
649
  name: 'operation',
499
650
  type: 'notice',
500
651
  typeOptions: {
@@ -507,13 +658,13 @@ exports.translationsProperties = [
507
658
  'translations'
508
659
  ],
509
660
  operation: [
510
- 'api.projects.translations.builds.delete'
661
+ 'api.projects.pre-translations.patch'
511
662
  ]
512
663
  }
513
664
  }
514
665
  },
515
666
  {
516
- displayName: 'POST /projects/{projectId}/translations/exports',
667
+ displayName: 'GET /projects/{projectId}/pre-translations/{preTranslationId}/report',
517
668
  name: 'operation',
518
669
  type: 'notice',
519
670
  typeOptions: {
@@ -526,13 +677,13 @@ exports.translationsProperties = [
526
677
  'translations'
527
678
  ],
528
679
  operation: [
529
- 'api.projects.translations.exports.post'
680
+ 'api.projects.pre-translations.report.getReport'
530
681
  ]
531
682
  }
532
683
  }
533
684
  },
534
685
  {
535
- displayName: 'POST /projects/{projectId}/translations/imports',
686
+ displayName: 'POST /projects/{projectId}/translations/validate-qa-checks',
536
687
  name: 'operation',
537
688
  type: 'notice',
538
689
  typeOptions: {
@@ -545,13 +696,13 @@ exports.translationsProperties = [
545
696
  'translations'
546
697
  ],
547
698
  operation: [
548
- 'api.projects.translations.imports'
699
+ 'api.projects.translations.validate-qa-checks.post'
549
700
  ]
550
701
  }
551
702
  }
552
703
  },
553
704
  {
554
- displayName: 'GET /projects/{projectId}/translations/imports/{importTranslationId}',
705
+ displayName: 'POST /projects/{projectId}/translations/builds/directories/{directoryId}',
555
706
  name: 'operation',
556
707
  type: 'notice',
557
708
  typeOptions: {
@@ -564,28 +715,1190 @@ exports.translationsProperties = [
564
715
  'translations'
565
716
  ],
566
717
  operation: [
567
- 'api.projects.translations.imports.get'
718
+ 'api.projects.translations.builds.directories.post'
719
+ ]
720
+ }
721
+ }
722
+ },
723
+ {
724
+ displayName: 'POST /projects/{projectId}/translations/builds/files/{fileId}',
725
+ name: 'operation',
726
+ type: 'notice',
727
+ typeOptions: {
728
+ theme: 'info'
729
+ },
730
+ default: '',
731
+ displayOptions: {
732
+ show: {
733
+ resource: [
734
+ 'translations'
735
+ ],
736
+ operation: [
737
+ 'api.projects.translations.builds.files.post'
738
+ ]
739
+ }
740
+ }
741
+ },
742
+ {
743
+ displayName: 'GET /projects/{projectId}/translations/builds',
744
+ name: 'operation',
745
+ type: 'notice',
746
+ typeOptions: {
747
+ theme: 'info'
748
+ },
749
+ default: '',
750
+ displayOptions: {
751
+ show: {
752
+ resource: [
753
+ 'translations'
754
+ ],
755
+ operation: [
756
+ 'api.projects.translations.builds.getMany'
757
+ ]
758
+ }
759
+ }
760
+ },
761
+ {
762
+ displayName: 'POST /projects/{projectId}/translations/builds',
763
+ name: 'operation',
764
+ type: 'notice',
765
+ typeOptions: {
766
+ theme: 'info'
767
+ },
768
+ default: '',
769
+ displayOptions: {
770
+ show: {
771
+ resource: [
772
+ 'translations'
773
+ ],
774
+ operation: [
775
+ 'api.projects.translations.builds.post'
776
+ ]
777
+ }
778
+ }
779
+ },
780
+ {
781
+ displayName: 'GET /projects/{projectId}/translations/builds/{buildId}/download',
782
+ name: 'operation',
783
+ type: 'notice',
784
+ typeOptions: {
785
+ theme: 'info'
786
+ },
787
+ default: '',
788
+ displayOptions: {
789
+ show: {
790
+ resource: [
791
+ 'translations'
792
+ ],
793
+ operation: [
794
+ 'api.projects.translations.builds.download.download'
795
+ ]
796
+ }
797
+ }
798
+ },
799
+ {
800
+ displayName: 'GET /projects/{projectId}/translations/builds/{buildId}',
801
+ name: 'operation',
802
+ type: 'notice',
803
+ typeOptions: {
804
+ theme: 'info'
805
+ },
806
+ default: '',
807
+ displayOptions: {
808
+ show: {
809
+ resource: [
810
+ 'translations'
811
+ ],
812
+ operation: [
813
+ 'api.projects.translations.builds.get'
568
814
  ]
569
815
  }
570
- }
571
- },
572
- {
573
- displayName: 'GET /projects/{projectId}/translations/imports/{importTranslationId}/report',
574
- name: 'operation',
575
- type: 'notice',
576
- typeOptions: {
577
- theme: 'info'
816
+ }
817
+ },
818
+ {
819
+ displayName: 'DELETE /projects/{projectId}/translations/builds/{buildId}',
820
+ name: 'operation',
821
+ type: 'notice',
822
+ typeOptions: {
823
+ theme: 'info'
824
+ },
825
+ default: '',
826
+ displayOptions: {
827
+ show: {
828
+ resource: [
829
+ 'translations'
830
+ ],
831
+ operation: [
832
+ 'api.projects.translations.builds.delete'
833
+ ]
834
+ }
835
+ }
836
+ },
837
+ {
838
+ displayName: 'POST /projects/{projectId}/translations/exports',
839
+ name: 'operation',
840
+ type: 'notice',
841
+ typeOptions: {
842
+ theme: 'info'
843
+ },
844
+ default: '',
845
+ displayOptions: {
846
+ show: {
847
+ resource: [
848
+ 'translations'
849
+ ],
850
+ operation: [
851
+ 'api.projects.translations.exports.post'
852
+ ]
853
+ }
854
+ }
855
+ },
856
+ {
857
+ displayName: 'POST /projects/{projectId}/translations/imports',
858
+ name: 'operation',
859
+ type: 'notice',
860
+ typeOptions: {
861
+ theme: 'info'
862
+ },
863
+ default: '',
864
+ displayOptions: {
865
+ show: {
866
+ resource: [
867
+ 'translations'
868
+ ],
869
+ operation: [
870
+ 'api.projects.translations.imports'
871
+ ]
872
+ }
873
+ }
874
+ },
875
+ {
876
+ displayName: 'GET /projects/{projectId}/translations/imports/{importTranslationId}',
877
+ name: 'operation',
878
+ type: 'notice',
879
+ typeOptions: {
880
+ theme: 'info'
881
+ },
882
+ default: '',
883
+ displayOptions: {
884
+ show: {
885
+ resource: [
886
+ 'translations'
887
+ ],
888
+ operation: [
889
+ 'api.projects.translations.imports.get'
890
+ ]
891
+ }
892
+ }
893
+ },
894
+ {
895
+ displayName: 'GET /projects/{projectId}/translations/imports/{importTranslationId}/report',
896
+ name: 'operation',
897
+ type: 'notice',
898
+ typeOptions: {
899
+ theme: 'info'
900
+ },
901
+ default: '',
902
+ displayOptions: {
903
+ show: {
904
+ resource: [
905
+ 'translations'
906
+ ],
907
+ operation: [
908
+ 'api.projects.translations.imports.report.get'
909
+ ]
910
+ }
911
+ }
912
+ },
913
+ {
914
+ displayName: 'Project Id',
915
+ name: 'projectId',
916
+ required: true,
917
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
918
+ default: '',
919
+ type: 'options',
920
+ displayOptions: {
921
+ show: {
922
+ resource: [
923
+ 'translations'
924
+ ],
925
+ operation: [
926
+ 'api.projects.bundles.getMany'
927
+ ]
928
+ }
929
+ },
930
+ typeOptions: {
931
+ loadOptionsMethod: 'getProjects'
932
+ }
933
+ },
934
+ {
935
+ displayName: 'Limit',
936
+ name: 'limit',
937
+ description: 'Max number of results to return',
938
+ default: 50,
939
+ type: 'number',
940
+ routing: {
941
+ send: {
942
+ type: 'query',
943
+ property: 'limit',
944
+ value: '={{ typeof $value === \'number\' ? $value : undefined }}',
945
+ propertyInDotNotation: false
946
+ }
947
+ },
948
+ displayOptions: {
949
+ show: {
950
+ resource: [
951
+ 'translations'
952
+ ],
953
+ operation: [
954
+ 'api.projects.bundles.getMany'
955
+ ],
956
+ returnAll: [
957
+ false
958
+ ]
959
+ }
960
+ },
961
+ typeOptions: {
962
+ minValue: 1
963
+ }
964
+ },
965
+ {
966
+ displayName: 'Project Id',
967
+ name: 'projectId',
968
+ required: true,
969
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
970
+ default: '',
971
+ type: 'options',
972
+ displayOptions: {
973
+ show: {
974
+ resource: [
975
+ 'translations'
976
+ ],
977
+ operation: [
978
+ 'api.projects.bundles.post'
979
+ ]
980
+ }
981
+ },
982
+ typeOptions: {
983
+ loadOptionsMethod: 'getProjects'
984
+ }
985
+ },
986
+ {
987
+ displayName: 'Name',
988
+ required: true,
989
+ name: 'name',
990
+ type: 'string',
991
+ default: '',
992
+ description: 'Defines name',
993
+ routing: {
994
+ send: {
995
+ property: 'name',
996
+ propertyInDotNotation: false,
997
+ type: 'body',
998
+ value: '={{ $value || undefined }}'
999
+ }
1000
+ },
1001
+ displayOptions: {
1002
+ show: {
1003
+ resource: [
1004
+ 'translations'
1005
+ ],
1006
+ operation: [
1007
+ 'api.projects.bundles.post'
1008
+ ]
1009
+ }
1010
+ },
1011
+ placeholder: 'Resx bundle'
1012
+ },
1013
+ {
1014
+ displayName: 'Format',
1015
+ name: 'format',
1016
+ type: 'string',
1017
+ default: '',
1018
+ description: 'Defines export file format. If not provided, files will be exported in their original format.\n\n__Note:__ Required for strings-based projects',
1019
+ routing: {
1020
+ send: {
1021
+ property: 'format',
1022
+ propertyInDotNotation: false,
1023
+ type: 'body',
1024
+ value: '={{ $value || undefined }}'
1025
+ }
1026
+ },
1027
+ displayOptions: {
1028
+ show: {
1029
+ resource: [
1030
+ 'translations'
1031
+ ],
1032
+ operation: [
1033
+ 'api.projects.bundles.post'
1034
+ ]
1035
+ }
1036
+ },
1037
+ placeholder: 'crowdin-resx'
1038
+ },
1039
+ {
1040
+ displayName: 'Source Patterns',
1041
+ required: true,
1042
+ name: 'sourcePatterns',
1043
+ type: 'fixedCollection',
1044
+ default: {},
1045
+ routing: {
1046
+ send: {
1047
+ property: 'sourcePatterns',
1048
+ propertyInDotNotation: false,
1049
+ type: 'body',
1050
+ value: '={{ $value.items?.map(i => i._value) || undefined }}'
1051
+ }
1052
+ },
1053
+ displayOptions: {
1054
+ show: {
1055
+ resource: [
1056
+ 'translations'
1057
+ ],
1058
+ operation: [
1059
+ 'api.projects.bundles.post'
1060
+ ]
1061
+ }
1062
+ },
1063
+ typeOptions: {
1064
+ multipleValues: true
1065
+ },
1066
+ placeholder: 'Add Item',
1067
+ options: [
1068
+ {
1069
+ displayName: 'Items',
1070
+ name: 'items',
1071
+ values: [
1072
+ {
1073
+ displayName: 'Value',
1074
+ name: '_value',
1075
+ type: 'string',
1076
+ default: ''
1077
+ }
1078
+ ]
1079
+ }
1080
+ ]
1081
+ },
1082
+ {
1083
+ displayName: 'Ignore Patterns',
1084
+ name: 'ignorePatterns',
1085
+ type: 'fixedCollection',
1086
+ default: {},
1087
+ routing: {
1088
+ send: {
1089
+ property: 'ignorePatterns',
1090
+ propertyInDotNotation: false,
1091
+ type: 'body',
1092
+ value: '={{ $value.items?.map(i => i._value) || undefined }}'
1093
+ }
1094
+ },
1095
+ displayOptions: {
1096
+ show: {
1097
+ resource: [
1098
+ 'translations'
1099
+ ],
1100
+ operation: [
1101
+ 'api.projects.bundles.post'
1102
+ ]
1103
+ }
1104
+ },
1105
+ typeOptions: {
1106
+ multipleValues: true
1107
+ },
1108
+ placeholder: 'Add Item',
1109
+ options: [
1110
+ {
1111
+ displayName: 'Items',
1112
+ name: 'items',
1113
+ values: [
1114
+ {
1115
+ displayName: 'Value',
1116
+ name: '_value',
1117
+ type: 'string',
1118
+ default: ''
1119
+ }
1120
+ ]
1121
+ }
1122
+ ]
1123
+ },
1124
+ {
1125
+ displayName: 'Export Pattern',
1126
+ name: 'exportPattern',
1127
+ type: 'string',
1128
+ default: '',
1129
+ description: 'Bundle export pattern. Defines bundle name in resulting translations bundle. **Required** if `format` is specified. If `format` is not specified, uses default pattern based on file structure\n\n__Note:__ Can\'t contain `: * ? " < > |` symbols',
1130
+ routing: {
1131
+ send: {
1132
+ property: 'exportPattern',
1133
+ propertyInDotNotation: false,
1134
+ type: 'body',
1135
+ value: '={{ $value || undefined }}'
1136
+ }
1137
+ },
1138
+ displayOptions: {
1139
+ show: {
1140
+ resource: [
1141
+ 'translations'
1142
+ ],
1143
+ operation: [
1144
+ 'api.projects.bundles.post'
1145
+ ]
1146
+ }
1147
+ },
1148
+ placeholder: 'strings-%two_letter_code%.resx'
1149
+ },
1150
+ {
1151
+ displayName: 'Is Multilingual',
1152
+ name: 'isMultilingual',
1153
+ type: 'boolean',
1154
+ default: false,
1155
+ description: 'Export translations in multilingual file',
1156
+ routing: {
1157
+ send: {
1158
+ property: 'isMultilingual',
1159
+ propertyInDotNotation: false,
1160
+ type: 'body',
1161
+ value: '={{ $value }}'
1162
+ }
1163
+ },
1164
+ displayOptions: {
1165
+ show: {
1166
+ resource: [
1167
+ 'translations'
1168
+ ],
1169
+ operation: [
1170
+ 'api.projects.bundles.post'
1171
+ ]
1172
+ }
1173
+ }
1174
+ },
1175
+ {
1176
+ displayName: 'Include Project Source Language',
1177
+ name: 'includeProjectSourceLanguage',
1178
+ type: 'boolean',
1179
+ default: false,
1180
+ description: 'Add project source language to bundle',
1181
+ routing: {
1182
+ send: {
1183
+ property: 'includeProjectSourceLanguage',
1184
+ propertyInDotNotation: false,
1185
+ type: 'body',
1186
+ value: '={{ $value }}'
1187
+ }
1188
+ },
1189
+ displayOptions: {
1190
+ show: {
1191
+ resource: [
1192
+ 'translations'
1193
+ ],
1194
+ operation: [
1195
+ 'api.projects.bundles.post'
1196
+ ]
1197
+ }
1198
+ }
1199
+ },
1200
+ {
1201
+ displayName: 'Source Language Export Pattern',
1202
+ name: 'sourceLanguageExportPattern',
1203
+ type: 'string',
1204
+ default: '',
1205
+ description: 'Source language export pattern. Works only when `includeProjectSourceLanguage` is enabled.\n\n__Note:__ Can\'t contain `: * ? " < > |` symbols',
1206
+ routing: {
1207
+ send: {
1208
+ property: 'sourceLanguageExportPattern',
1209
+ propertyInDotNotation: false,
1210
+ type: 'body',
1211
+ value: '={{ $value || undefined }}'
1212
+ }
1213
+ },
1214
+ displayOptions: {
1215
+ show: {
1216
+ resource: [
1217
+ 'translations'
1218
+ ],
1219
+ operation: [
1220
+ 'api.projects.bundles.post'
1221
+ ]
1222
+ }
1223
+ },
1224
+ placeholder: 'strings-%two_letter_code%.resx'
1225
+ },
1226
+ {
1227
+ displayName: 'Include In Context Pseudo Language',
1228
+ name: 'includeInContextPseudoLanguage',
1229
+ type: 'boolean',
1230
+ default: true,
1231
+ description: 'Add In-Context pseudo-language to bundle',
1232
+ routing: {
1233
+ send: {
1234
+ property: 'includeInContextPseudoLanguage',
1235
+ propertyInDotNotation: false,
1236
+ type: 'body',
1237
+ value: '={{ $value }}'
1238
+ }
1239
+ },
1240
+ displayOptions: {
1241
+ show: {
1242
+ resource: [
1243
+ 'translations'
1244
+ ],
1245
+ operation: [
1246
+ 'api.projects.bundles.post'
1247
+ ]
1248
+ }
1249
+ }
1250
+ },
1251
+ {
1252
+ displayName: 'Label Ids',
1253
+ name: 'labelIds',
1254
+ type: 'multiOptions',
1255
+ default: [],
1256
+ description: 'Label Identifiers. Get via [List Labels](#operation/api.projects.labels.getMany)\n\n__Note:__ Can\'t be used when `format` is `null`',
1257
+ routing: {
1258
+ send: {
1259
+ property: 'labelIds',
1260
+ propertyInDotNotation: false,
1261
+ type: 'body',
1262
+ value: '={{ $value }}'
1263
+ }
1264
+ },
1265
+ displayOptions: {
1266
+ show: {
1267
+ resource: [
1268
+ 'translations'
1269
+ ],
1270
+ operation: [
1271
+ 'api.projects.bundles.post'
1272
+ ]
1273
+ }
1274
+ },
1275
+ typeOptions: {
1276
+ loadOptionsMethod: 'getProjectLabelsMulti',
1277
+ loadOptionsDependsOn: [
1278
+ 'projectId'
1279
+ ]
1280
+ }
1281
+ },
1282
+ {
1283
+ displayName: 'Exclude Label Ids',
1284
+ name: 'excludeLabelIds',
1285
+ type: 'multiOptions',
1286
+ default: [],
1287
+ description: 'Label Identifiers. Get via [List Labels](#operation/api.projects.labels.getMany)\n\n__Note:__ Can\'t be used when `format` is `null`',
1288
+ routing: {
1289
+ send: {
1290
+ property: 'excludeLabelIds',
1291
+ propertyInDotNotation: false,
1292
+ type: 'body',
1293
+ value: '={{ $value }}'
1294
+ }
1295
+ },
1296
+ displayOptions: {
1297
+ show: {
1298
+ resource: [
1299
+ 'translations'
1300
+ ],
1301
+ operation: [
1302
+ 'api.projects.bundles.post'
1303
+ ]
1304
+ }
1305
+ },
1306
+ typeOptions: {
1307
+ loadOptionsMethod: 'getProjectLabelsMulti',
1308
+ loadOptionsDependsOn: [
1309
+ 'projectId'
1310
+ ]
1311
+ }
1312
+ },
1313
+ {
1314
+ displayName: 'Label Match Rule',
1315
+ name: 'labelMatchRule',
1316
+ type: 'options',
1317
+ default: '',
1318
+ description: 'Match rule for labels:\n- "all" - all labels must be present in string\n- "any" - any of the labels must be present in string\n\n __Note:__ Can only be used when `labelIds` parameter is provided',
1319
+ options: [
1320
+ {
1321
+ name: '-',
1322
+ value: ''
1323
+ },
1324
+ {
1325
+ name: 'all',
1326
+ value: 'all'
1327
+ },
1328
+ {
1329
+ name: 'any',
1330
+ value: 'any'
1331
+ }
1332
+ ],
1333
+ routing: {
1334
+ send: {
1335
+ property: 'labelMatchRule',
1336
+ propertyInDotNotation: false,
1337
+ type: 'body',
1338
+ value: '={{ $value || undefined }}'
1339
+ }
1340
+ },
1341
+ displayOptions: {
1342
+ show: {
1343
+ resource: [
1344
+ 'translations'
1345
+ ],
1346
+ operation: [
1347
+ 'api.projects.bundles.post'
1348
+ ]
1349
+ }
1350
+ }
1351
+ },
1352
+ {
1353
+ displayName: 'Exclude Label Match Rule',
1354
+ name: 'excludeLabelMatchRule',
1355
+ type: 'options',
1356
+ default: '',
1357
+ description: 'Match rule for excluded labels:\n - "all" - all labels must be present in string\n - "any" - any of the labels must be present in string\n\n __Note:__ Can only be used when `excludeLabelIds` parameter is provided',
1358
+ options: [
1359
+ {
1360
+ name: '-',
1361
+ value: ''
1362
+ },
1363
+ {
1364
+ name: 'all',
1365
+ value: 'all'
1366
+ },
1367
+ {
1368
+ name: 'any',
1369
+ value: 'any'
1370
+ }
1371
+ ],
1372
+ routing: {
1373
+ send: {
1374
+ property: 'excludeLabelMatchRule',
1375
+ propertyInDotNotation: false,
1376
+ type: 'body',
1377
+ value: '={{ $value || undefined }}'
1378
+ }
1379
+ },
1380
+ displayOptions: {
1381
+ show: {
1382
+ resource: [
1383
+ 'translations'
1384
+ ],
1385
+ operation: [
1386
+ 'api.projects.bundles.post'
1387
+ ]
1388
+ }
1389
+ }
1390
+ },
1391
+ {
1392
+ displayName: 'Language Ids',
1393
+ name: 'languageIds',
1394
+ type: 'multiOptions',
1395
+ default: [],
1396
+ description: 'Language Identifiers. Get via [List Supported Languages](#operation/api.languages.getMany). If provided, bundle will only export specified languages. If not provided, bundle will export all project target languages.',
1397
+ routing: {
1398
+ send: {
1399
+ property: 'languageIds',
1400
+ propertyInDotNotation: false,
1401
+ type: 'body',
1402
+ value: '={{ $value }}'
1403
+ }
1404
+ },
1405
+ displayOptions: {
1406
+ show: {
1407
+ resource: [
1408
+ 'translations'
1409
+ ],
1410
+ operation: [
1411
+ 'api.projects.bundles.post'
1412
+ ]
1413
+ }
1414
+ },
1415
+ typeOptions: {
1416
+ loadOptionsMethod: 'getLanguagesMulti'
1417
+ }
1418
+ },
1419
+ {
1420
+ displayName: 'Project Id',
1421
+ name: 'projectId',
1422
+ required: true,
1423
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
1424
+ default: '',
1425
+ type: 'options',
1426
+ displayOptions: {
1427
+ show: {
1428
+ resource: [
1429
+ 'translations'
1430
+ ],
1431
+ operation: [
1432
+ 'api.projects.bundles.get'
1433
+ ]
1434
+ }
1435
+ },
1436
+ typeOptions: {
1437
+ loadOptionsMethod: 'getProjects'
1438
+ }
1439
+ },
1440
+ {
1441
+ displayName: 'Bundle Id',
1442
+ name: 'bundleId',
1443
+ required: true,
1444
+ description: 'Bundle Identifier. Get via [List Bundles](#operation/api.projects.bundles.getMany)',
1445
+ default: '',
1446
+ type: 'options',
1447
+ displayOptions: {
1448
+ show: {
1449
+ resource: [
1450
+ 'translations'
1451
+ ],
1452
+ operation: [
1453
+ 'api.projects.bundles.get'
1454
+ ]
1455
+ }
1456
+ },
1457
+ typeOptions: {
1458
+ loadOptionsMethod: 'getProjectBundles',
1459
+ loadOptionsDependsOn: [
1460
+ 'projectId'
1461
+ ]
1462
+ }
1463
+ },
1464
+ {
1465
+ displayName: 'Project Id',
1466
+ name: 'projectId',
1467
+ required: true,
1468
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
1469
+ default: '',
1470
+ type: 'options',
1471
+ displayOptions: {
1472
+ show: {
1473
+ resource: [
1474
+ 'translations'
1475
+ ],
1476
+ operation: [
1477
+ 'api.projects.bundles.delete'
1478
+ ]
1479
+ }
1480
+ },
1481
+ typeOptions: {
1482
+ loadOptionsMethod: 'getProjects'
1483
+ }
1484
+ },
1485
+ {
1486
+ displayName: 'Bundle Id',
1487
+ name: 'bundleId',
1488
+ required: true,
1489
+ description: 'Bundle Identifier. Get via [List Bundles](#operation/api.projects.bundles.getMany)',
1490
+ default: '',
1491
+ type: 'options',
1492
+ displayOptions: {
1493
+ show: {
1494
+ resource: [
1495
+ 'translations'
1496
+ ],
1497
+ operation: [
1498
+ 'api.projects.bundles.delete'
1499
+ ]
1500
+ }
1501
+ },
1502
+ typeOptions: {
1503
+ loadOptionsMethod: 'getProjectBundles',
1504
+ loadOptionsDependsOn: [
1505
+ 'projectId'
1506
+ ]
1507
+ }
1508
+ },
1509
+ {
1510
+ displayName: 'Project Id',
1511
+ name: 'projectId',
1512
+ required: true,
1513
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
1514
+ default: '',
1515
+ type: 'options',
1516
+ displayOptions: {
1517
+ show: {
1518
+ resource: [
1519
+ 'translations'
1520
+ ],
1521
+ operation: [
1522
+ 'api.projects.bundles.patch'
1523
+ ]
1524
+ }
1525
+ },
1526
+ typeOptions: {
1527
+ loadOptionsMethod: 'getProjects'
1528
+ }
1529
+ },
1530
+ {
1531
+ displayName: 'Bundle Id',
1532
+ name: 'bundleId',
1533
+ required: true,
1534
+ description: 'Bundle Identifier. Get via [List Bundles](#operation/api.projects.bundles.getMany)',
1535
+ default: '',
1536
+ type: 'options',
1537
+ displayOptions: {
1538
+ show: {
1539
+ resource: [
1540
+ 'translations'
1541
+ ],
1542
+ operation: [
1543
+ 'api.projects.bundles.patch'
1544
+ ]
1545
+ }
1546
+ },
1547
+ typeOptions: {
1548
+ loadOptionsMethod: 'getProjectBundles',
1549
+ loadOptionsDependsOn: [
1550
+ 'projectId'
1551
+ ]
1552
+ }
1553
+ },
1554
+ {
1555
+ displayName: 'Project Id',
1556
+ name: 'projectId',
1557
+ required: true,
1558
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
1559
+ default: '',
1560
+ type: 'options',
1561
+ displayOptions: {
1562
+ show: {
1563
+ resource: [
1564
+ 'translations'
1565
+ ],
1566
+ operation: [
1567
+ 'api.projects.bundles.exports.download.get'
1568
+ ]
1569
+ }
1570
+ },
1571
+ typeOptions: {
1572
+ loadOptionsMethod: 'getProjects'
1573
+ }
1574
+ },
1575
+ {
1576
+ displayName: 'Bundle Id',
1577
+ name: 'bundleId',
1578
+ required: true,
1579
+ description: 'Bundle Identifier. Get via [List Bundles](#operation/api.projects.bundles.getMany)',
1580
+ default: '',
1581
+ type: 'options',
1582
+ displayOptions: {
1583
+ show: {
1584
+ resource: [
1585
+ 'translations'
1586
+ ],
1587
+ operation: [
1588
+ 'api.projects.bundles.exports.download.get'
1589
+ ]
1590
+ }
1591
+ },
1592
+ typeOptions: {
1593
+ loadOptionsMethod: 'getProjectBundles',
1594
+ loadOptionsDependsOn: [
1595
+ 'projectId'
1596
+ ]
1597
+ }
1598
+ },
1599
+ {
1600
+ displayName: 'Export Id',
1601
+ name: 'exportId',
1602
+ required: true,
1603
+ description: 'Export Identifier, consists of 36 characters. Get via [Export Bundle](#operation/api.projects.bundles.exports.post)',
1604
+ default: '',
1605
+ type: 'string',
1606
+ displayOptions: {
1607
+ show: {
1608
+ resource: [
1609
+ 'translations'
1610
+ ],
1611
+ operation: [
1612
+ 'api.projects.bundles.exports.download.get'
1613
+ ]
1614
+ }
1615
+ }
1616
+ },
1617
+ {
1618
+ displayName: 'Project Id',
1619
+ name: 'projectId',
1620
+ required: true,
1621
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
1622
+ default: '',
1623
+ type: 'options',
1624
+ displayOptions: {
1625
+ show: {
1626
+ resource: [
1627
+ 'translations'
1628
+ ],
1629
+ operation: [
1630
+ 'api.projects.bundles.exports.post'
1631
+ ]
1632
+ }
1633
+ },
1634
+ typeOptions: {
1635
+ loadOptionsMethod: 'getProjects'
1636
+ }
1637
+ },
1638
+ {
1639
+ displayName: 'Bundle Id',
1640
+ name: 'bundleId',
1641
+ required: true,
1642
+ description: 'Bundle Identifier. Get via [List Bundles](#operation/api.projects.bundles.getMany)',
1643
+ default: '',
1644
+ type: 'options',
1645
+ displayOptions: {
1646
+ show: {
1647
+ resource: [
1648
+ 'translations'
1649
+ ],
1650
+ operation: [
1651
+ 'api.projects.bundles.exports.post'
1652
+ ]
1653
+ }
1654
+ },
1655
+ typeOptions: {
1656
+ loadOptionsMethod: 'getProjectBundles',
1657
+ loadOptionsDependsOn: [
1658
+ 'projectId'
1659
+ ]
1660
+ }
1661
+ },
1662
+ {
1663
+ displayName: 'Target Language Ids',
1664
+ name: 'targetLanguageIds',
1665
+ type: 'multiOptions',
1666
+ default: [],
1667
+ description: 'Specify target languages for export. Get via [List Supported Languages](#operation/api.languages.getMany)\n\n * Leave this field empty to export all target languages',
1668
+ routing: {
1669
+ send: {
1670
+ property: 'targetLanguageIds',
1671
+ propertyInDotNotation: false,
1672
+ type: 'body',
1673
+ value: '={{ $value }}'
1674
+ }
1675
+ },
1676
+ displayOptions: {
1677
+ show: {
1678
+ resource: [
1679
+ 'translations'
1680
+ ],
1681
+ operation: [
1682
+ 'api.projects.bundles.exports.post'
1683
+ ]
1684
+ }
1685
+ },
1686
+ typeOptions: {
1687
+ loadOptionsMethod: 'getLanguagesMulti'
1688
+ }
1689
+ },
1690
+ {
1691
+ displayName: 'Skip Untranslated Strings',
1692
+ name: 'skipUntranslatedStrings',
1693
+ type: 'boolean',
1694
+ default: false,
1695
+ description: 'Defines whether to export only translated strings\n\n__Note:__ `true` value can\'t be used with `skipUntranslatedFiles=true` in same request',
1696
+ routing: {
1697
+ send: {
1698
+ property: 'skipUntranslatedStrings',
1699
+ propertyInDotNotation: false,
1700
+ type: 'body',
1701
+ value: '={{ $value }}'
1702
+ }
1703
+ },
1704
+ displayOptions: {
1705
+ show: {
1706
+ resource: [
1707
+ 'translations'
1708
+ ],
1709
+ operation: [
1710
+ 'api.projects.bundles.exports.post'
1711
+ ]
1712
+ }
1713
+ }
1714
+ },
1715
+ {
1716
+ displayName: 'Skip Untranslated Files',
1717
+ name: 'skipUntranslatedFiles',
1718
+ type: 'boolean',
1719
+ default: false,
1720
+ description: 'Defines whether to export only translated files\n\n__Note:__ `true` value can\'t be used with `skipUntranslatedStrings=true` in same request',
1721
+ routing: {
1722
+ send: {
1723
+ property: 'skipUntranslatedFiles',
1724
+ propertyInDotNotation: false,
1725
+ type: 'body',
1726
+ value: '={{ $value }}'
1727
+ }
1728
+ },
1729
+ displayOptions: {
1730
+ show: {
1731
+ resource: [
1732
+ 'translations'
1733
+ ],
1734
+ operation: [
1735
+ 'api.projects.bundles.exports.post'
1736
+ ]
1737
+ }
1738
+ }
1739
+ },
1740
+ {
1741
+ displayName: 'Export Approved Only',
1742
+ name: 'exportApprovedOnly',
1743
+ type: 'boolean',
1744
+ default: false,
1745
+ description: 'Defines whether to export only approved strings\n\n[More info](https://support.crowdin.com/project-settings/export/)',
1746
+ routing: {
1747
+ send: {
1748
+ property: 'exportApprovedOnly',
1749
+ propertyInDotNotation: false,
1750
+ type: 'body',
1751
+ value: '={{ $value }}'
1752
+ }
1753
+ },
1754
+ displayOptions: {
1755
+ show: {
1756
+ resource: [
1757
+ 'translations'
1758
+ ],
1759
+ operation: [
1760
+ 'api.projects.bundles.exports.post'
1761
+ ]
1762
+ }
1763
+ }
1764
+ },
1765
+ {
1766
+ displayName: 'Project Id',
1767
+ name: 'projectId',
1768
+ required: true,
1769
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
1770
+ default: '',
1771
+ type: 'options',
1772
+ displayOptions: {
1773
+ show: {
1774
+ resource: [
1775
+ 'translations'
1776
+ ],
1777
+ operation: [
1778
+ 'api.projects.bundles.exports.get'
1779
+ ]
1780
+ }
1781
+ },
1782
+ typeOptions: {
1783
+ loadOptionsMethod: 'getProjects'
1784
+ }
1785
+ },
1786
+ {
1787
+ displayName: 'Bundle Id',
1788
+ name: 'bundleId',
1789
+ required: true,
1790
+ description: 'Bundle Identifier. Get via [List Bundles](#operation/api.projects.bundles.getMany)',
1791
+ default: '',
1792
+ type: 'options',
1793
+ displayOptions: {
1794
+ show: {
1795
+ resource: [
1796
+ 'translations'
1797
+ ],
1798
+ operation: [
1799
+ 'api.projects.bundles.exports.get'
1800
+ ]
1801
+ }
1802
+ },
1803
+ typeOptions: {
1804
+ loadOptionsMethod: 'getProjectBundles',
1805
+ loadOptionsDependsOn: [
1806
+ 'projectId'
1807
+ ]
1808
+ }
1809
+ },
1810
+ {
1811
+ displayName: 'Export Id',
1812
+ name: 'exportId',
1813
+ required: true,
1814
+ description: 'Export Identifier, consists of 36 characters. Get via [Export Bundle](#operation/api.projects.bundles.exports.post)',
1815
+ default: '',
1816
+ type: 'string',
1817
+ displayOptions: {
1818
+ show: {
1819
+ resource: [
1820
+ 'translations'
1821
+ ],
1822
+ operation: [
1823
+ 'api.projects.bundles.exports.get'
1824
+ ]
1825
+ }
1826
+ }
1827
+ },
1828
+ {
1829
+ displayName: 'Project Id',
1830
+ name: 'projectId',
1831
+ required: true,
1832
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
1833
+ default: '',
1834
+ type: 'options',
1835
+ displayOptions: {
1836
+ show: {
1837
+ resource: [
1838
+ 'translations'
1839
+ ],
1840
+ operation: [
1841
+ 'api.projects.bundles.files.getMany'
1842
+ ]
1843
+ }
1844
+ },
1845
+ typeOptions: {
1846
+ loadOptionsMethod: 'getProjects'
1847
+ }
1848
+ },
1849
+ {
1850
+ displayName: 'Bundle Id',
1851
+ name: 'bundleId',
1852
+ required: true,
1853
+ description: 'Bundle Identifier. Get via [List Bundles](#operation/api.projects.bundles.getMany)',
1854
+ default: '',
1855
+ type: 'options',
1856
+ displayOptions: {
1857
+ show: {
1858
+ resource: [
1859
+ 'translations'
1860
+ ],
1861
+ operation: [
1862
+ 'api.projects.bundles.files.getMany'
1863
+ ]
1864
+ }
1865
+ },
1866
+ typeOptions: {
1867
+ loadOptionsMethod: 'getProjectBundles',
1868
+ loadOptionsDependsOn: [
1869
+ 'projectId'
1870
+ ]
1871
+ }
1872
+ },
1873
+ {
1874
+ displayName: 'Limit',
1875
+ name: 'limit',
1876
+ description: 'Max number of results to return',
1877
+ default: 50,
1878
+ type: 'number',
1879
+ routing: {
1880
+ send: {
1881
+ type: 'query',
1882
+ property: 'limit',
1883
+ value: '={{ typeof $value === \'number\' ? $value : undefined }}',
1884
+ propertyInDotNotation: false
1885
+ }
578
1886
  },
579
- default: '',
580
1887
  displayOptions: {
581
1888
  show: {
582
1889
  resource: [
583
1890
  'translations'
584
1891
  ],
585
1892
  operation: [
586
- 'api.projects.translations.imports.report.get'
1893
+ 'api.projects.bundles.files.getMany'
1894
+ ],
1895
+ returnAll: [
1896
+ false
587
1897
  ]
588
1898
  }
1899
+ },
1900
+ typeOptions: {
1901
+ minValue: 1
589
1902
  }
590
1903
  },
591
1904
  {
@@ -946,7 +2259,7 @@ exports.translationsProperties = [
946
2259
  name: 'duplicateTranslations',
947
2260
  type: 'boolean',
948
2261
  default: false,
949
- description: 'Adds translations even if the same translation already exists. Default is `false`',
2262
+ description: 'Adds translations even if the same translation already exists. Default is `false`.\n\n__Note:__ Cannot be used when `replaceTranslationsOption` is `all` (replacing all translations already overrides duplicate handling).',
950
2263
  routing: {
951
2264
  send: {
952
2265
  property: 'duplicateTranslations',
@@ -971,7 +2284,7 @@ exports.translationsProperties = [
971
2284
  name: 'skipApprovedTranslations',
972
2285
  type: 'boolean',
973
2286
  default: false,
974
- description: 'Skip approved translations. Default is `false`\n\n__Note:__ Works only with TM pre-translation method',
2287
+ description: 'Skip strings that already have approved translations. Default is `false`.\n\n__Note:__ Cannot be used together with `resetApprovalStatus`.',
975
2288
  routing: {
976
2289
  send: {
977
2290
  property: 'skipApprovedTranslations',
@@ -992,14 +2305,126 @@ exports.translationsProperties = [
992
2305
  }
993
2306
  },
994
2307
  {
995
- displayName: 'Translate Untranslated Only',
996
- name: 'translateUntranslatedOnly',
2308
+ displayName: 'Scope',
2309
+ name: 'scope',
2310
+ type: 'options',
2311
+ default: '',
2312
+ description: 'Which strings to apply pre-translation to. Default is `untranslated`. Available values:\n- \'untranslated\' – strings without an existing translation (default)\n- \'translated\' – strings that already have a translation (re-translation)\n- \'all\' – both untranslated and translated strings\n\n__Note:__ Cannot be used together with the deprecated `translateUntranslatedOnly`.',
2313
+ options: [
2314
+ {
2315
+ name: '-',
2316
+ value: ''
2317
+ },
2318
+ {
2319
+ name: 'untranslated',
2320
+ value: 'untranslated'
2321
+ },
2322
+ {
2323
+ name: 'translated',
2324
+ value: 'translated'
2325
+ },
2326
+ {
2327
+ name: 'all',
2328
+ value: 'all'
2329
+ }
2330
+ ],
2331
+ routing: {
2332
+ send: {
2333
+ property: 'scope',
2334
+ propertyInDotNotation: false,
2335
+ type: 'body',
2336
+ value: '={{ $value || undefined }}'
2337
+ }
2338
+ },
2339
+ displayOptions: {
2340
+ show: {
2341
+ resource: [
2342
+ 'translations'
2343
+ ],
2344
+ operation: [
2345
+ 'api.projects.pre-translations.post'
2346
+ ]
2347
+ }
2348
+ }
2349
+ },
2350
+ {
2351
+ displayName: 'Translation Modified Before',
2352
+ name: 'dateTime:translationModifiedBefore',
2353
+ type: 'dateTime',
2354
+ default: '',
2355
+ description: 'Re-translates only if a string\'s current translation was modified prior to this date. Useful after modifying contextual resources like screenshots, style guides, or glossaries.\n\n__Note:__ Requires `scope` to be `translated` or `all`. Cannot be used with `scope: "untranslated"` or `translateUntranslatedOnly: true`.',
2356
+ routing: {
2357
+ send: {
2358
+ property: 'translationModifiedBefore',
2359
+ propertyInDotNotation: false,
2360
+ type: 'body',
2361
+ value: '={{ $value || undefined }}'
2362
+ }
2363
+ },
2364
+ displayOptions: {
2365
+ show: {
2366
+ resource: [
2367
+ 'translations'
2368
+ ],
2369
+ operation: [
2370
+ 'api.projects.pre-translations.post'
2371
+ ]
2372
+ }
2373
+ },
2374
+ placeholder: '2026-01-01T00:00:00+00:00'
2375
+ },
2376
+ {
2377
+ displayName: 'Replace Translations Option',
2378
+ name: 'replaceTranslationsOption',
2379
+ type: 'options',
2380
+ default: '',
2381
+ description: 'Defines whether to replace existing translations with new pre-translations. Default is `none`. Available values:\n- \'none\' – add the new translation alongside existing ones (default)\n- \'autoTranslated\' – replace auto-generated translations (TM, MT, AI). Human translations are kept\n- \'all\' – replace all existing translations\n\n__Note:__ Values other than `none` require `scope` to be `translated` or `all` (cannot be combined with `scope: "untranslated"` or `translateUntranslatedOnly: true`).',
2382
+ options: [
2383
+ {
2384
+ name: '-',
2385
+ value: ''
2386
+ },
2387
+ {
2388
+ name: 'none',
2389
+ value: 'none'
2390
+ },
2391
+ {
2392
+ name: 'autoTranslated',
2393
+ value: 'autoTranslated'
2394
+ },
2395
+ {
2396
+ name: 'all',
2397
+ value: 'all'
2398
+ }
2399
+ ],
2400
+ routing: {
2401
+ send: {
2402
+ property: 'replaceTranslationsOption',
2403
+ propertyInDotNotation: false,
2404
+ type: 'body',
2405
+ value: '={{ $value || undefined }}'
2406
+ }
2407
+ },
2408
+ displayOptions: {
2409
+ show: {
2410
+ resource: [
2411
+ 'translations'
2412
+ ],
2413
+ operation: [
2414
+ 'api.projects.pre-translations.post'
2415
+ ]
2416
+ }
2417
+ }
2418
+ },
2419
+ {
2420
+ displayName: 'Reset Approval Status',
2421
+ name: 'resetApprovalStatus',
997
2422
  type: 'boolean',
998
- default: true,
999
- description: 'Applies pre-translation for untranslated strings only. Default is `true`',
2423
+ default: false,
2424
+ description: 'Removes approval on existing translations when applying pre-translations. Default is `false`.\n\n__Note:__ Requires `scope` to be `translated` or `all`. Cannot be used together with `skipApprovedTranslations`, `autoApproveOption` (any value other than `none`), or when `replaceTranslationsOption` is `all` (replaced translations lose approval automatically). Cannot be used with `scope: "untranslated"` or `translateUntranslatedOnly: true`.',
1000
2425
  routing: {
1001
2426
  send: {
1002
- property: 'translateUntranslatedOnly',
2427
+ property: 'resetApprovalStatus',
1003
2428
  propertyInDotNotation: false,
1004
2429
  type: 'body',
1005
2430
  value: '={{ $value }}'
@@ -1178,6 +2603,31 @@ exports.translationsProperties = [
1178
2603
  loadOptionsMethod: 'getLanguages'
1179
2604
  }
1180
2605
  },
2606
+ {
2607
+ displayName: 'Custom Instruction',
2608
+ name: 'customInstruction',
2609
+ type: 'string',
2610
+ default: '',
2611
+ description: 'Custom instruction for AI pre-translation. This instruction will be appended to the AI prompt text.\n\n__Note:__ Available only for AI pre-translation method',
2612
+ routing: {
2613
+ send: {
2614
+ property: 'customInstruction',
2615
+ propertyInDotNotation: false,
2616
+ type: 'body',
2617
+ value: '={{ $value || undefined }}'
2618
+ }
2619
+ },
2620
+ displayOptions: {
2621
+ show: {
2622
+ resource: [
2623
+ 'translations'
2624
+ ],
2625
+ operation: [
2626
+ 'api.projects.pre-translations.post'
2627
+ ]
2628
+ }
2629
+ }
2630
+ },
1181
2631
  {
1182
2632
  displayName: 'Project Id',
1183
2633
  name: 'projectId',
@@ -2705,6 +4155,192 @@ exports.translationsProperties = [
2705
4155
  }
2706
4156
  }
2707
4157
  },
4158
+ {
4159
+ displayName: 'Update Fields',
4160
+ name: 'updateFields',
4161
+ type: 'collection',
4162
+ placeholder: 'Add Field',
4163
+ default: {},
4164
+ displayOptions: {
4165
+ show: {
4166
+ resource: [
4167
+ 'translations'
4168
+ ],
4169
+ operation: [
4170
+ 'api.projects.bundles.patch'
4171
+ ]
4172
+ }
4173
+ },
4174
+ options: [
4175
+ {
4176
+ displayName: 'Name',
4177
+ name: 'name',
4178
+ type: 'string',
4179
+ default: '',
4180
+ description: 'Defines name',
4181
+ placeholder: 'Resx bundle'
4182
+ },
4183
+ {
4184
+ displayName: 'Format',
4185
+ name: 'format',
4186
+ type: 'string',
4187
+ default: '',
4188
+ description: 'Defines export file format. If not provided, files will be exported in their original format.\n\n__Note:__ Required for strings-based projects',
4189
+ placeholder: 'crowdin-resx'
4190
+ },
4191
+ {
4192
+ displayName: 'Source Patterns',
4193
+ name: 'sourcePatterns',
4194
+ type: 'fixedCollection',
4195
+ default: {},
4196
+ typeOptions: {
4197
+ multipleValues: true
4198
+ },
4199
+ placeholder: 'Add Item',
4200
+ options: [
4201
+ {
4202
+ name: 'items',
4203
+ displayName: 'Items',
4204
+ values: [
4205
+ {
4206
+ displayName: 'Value',
4207
+ name: '_value',
4208
+ type: 'string',
4209
+ default: ''
4210
+ }
4211
+ ]
4212
+ }
4213
+ ]
4214
+ },
4215
+ {
4216
+ displayName: 'Ignore Patterns',
4217
+ name: 'ignorePatterns',
4218
+ type: 'fixedCollection',
4219
+ default: {},
4220
+ typeOptions: {
4221
+ multipleValues: true
4222
+ },
4223
+ placeholder: 'Add Item',
4224
+ options: [
4225
+ {
4226
+ name: 'items',
4227
+ displayName: 'Items',
4228
+ values: [
4229
+ {
4230
+ displayName: 'Value',
4231
+ name: '_value',
4232
+ type: 'string',
4233
+ default: ''
4234
+ }
4235
+ ]
4236
+ }
4237
+ ]
4238
+ },
4239
+ {
4240
+ displayName: 'Export Pattern',
4241
+ name: 'exportPattern',
4242
+ type: 'string',
4243
+ default: '',
4244
+ description: 'Bundle export pattern. Defines bundle name in resulting translations bundle. **Required** if `format` is specified. If `format` is not specified, uses default pattern based on file structure\n\n__Note:__ Can\'t contain `: * ? " < > |` symbols',
4245
+ placeholder: 'strings-%two_letter_code%.resx'
4246
+ },
4247
+ {
4248
+ displayName: 'Is Multilingual',
4249
+ name: 'isMultilingual',
4250
+ type: 'boolean',
4251
+ default: false,
4252
+ description: 'Export translations in multilingual file'
4253
+ },
4254
+ {
4255
+ displayName: 'Include Project Source Language',
4256
+ name: 'includeProjectSourceLanguage',
4257
+ type: 'boolean',
4258
+ default: false,
4259
+ description: 'Add project source language to bundle'
4260
+ },
4261
+ {
4262
+ displayName: 'Include In Context Pseudo Language',
4263
+ name: 'includeInContextPseudoLanguage',
4264
+ type: 'boolean',
4265
+ default: true,
4266
+ description: 'Add In-Context pseudo-language to bundle'
4267
+ },
4268
+ {
4269
+ displayName: 'Label Ids',
4270
+ name: 'labelIds',
4271
+ type: 'multiOptions',
4272
+ default: [],
4273
+ description: 'Label Identifiers. Get via [List Labels](#operation/api.projects.labels.getMany)\n\n__Note:__ Can\'t be used when `format` is `null`',
4274
+ typeOptions: {
4275
+ loadOptionsMethod: 'getProjectLabelsMulti',
4276
+ loadOptionsDependsOn: [
4277
+ 'projectId'
4278
+ ]
4279
+ }
4280
+ },
4281
+ {
4282
+ displayName: 'Exclude Label Ids',
4283
+ name: 'excludeLabelIds',
4284
+ type: 'multiOptions',
4285
+ default: [],
4286
+ description: 'Label Identifiers. Get via [List Labels](#operation/api.projects.labels.getMany)\n\n__Note:__ Can\'t be used when `format` is `null`',
4287
+ typeOptions: {
4288
+ loadOptionsMethod: 'getProjectLabelsMulti',
4289
+ loadOptionsDependsOn: [
4290
+ 'projectId'
4291
+ ]
4292
+ }
4293
+ },
4294
+ {
4295
+ displayName: 'Label Match Rule',
4296
+ name: 'labelMatchRule',
4297
+ type: 'options',
4298
+ default: '',
4299
+ description: 'Match rule for labels:\n- "all" - all labels must be present in string\n- "any" - any of the labels must be present in string\n\n __Note:__ Can only be used when `labelIds` parameter is provided',
4300
+ options: [
4301
+ {
4302
+ name: '-',
4303
+ value: ''
4304
+ },
4305
+ {
4306
+ name: 'all',
4307
+ value: 'all'
4308
+ },
4309
+ {
4310
+ name: 'any',
4311
+ value: 'any'
4312
+ }
4313
+ ]
4314
+ },
4315
+ {
4316
+ displayName: 'Exclude Label Match Rule',
4317
+ name: 'excludeLabelMatchRule',
4318
+ type: 'options',
4319
+ default: '',
4320
+ description: 'Match rule for excluded labels:\n - "all" - all labels must be present in string\n - "any" - any of the labels must be present in string\n\n __Note:__ Can only be used when `excludeLabelIds` parameter is provided',
4321
+ options: [
4322
+ {
4323
+ name: '-',
4324
+ value: ''
4325
+ },
4326
+ {
4327
+ name: 'all',
4328
+ value: 'all'
4329
+ },
4330
+ {
4331
+ name: 'any',
4332
+ value: 'any'
4333
+ }
4334
+ ]
4335
+ }
4336
+ ],
4337
+ routing: {
4338
+ send: {
4339
+ type: 'body',
4340
+ value: '={{ $value }}'
4341
+ }
4342
+ }
4343
+ },
2708
4344
  {
2709
4345
  displayName: 'Update Fields',
2710
4346
  name: 'updateFields',
@@ -2788,6 +4424,40 @@ exports.translationsProperties = [
2788
4424
  }
2789
4425
  }
2790
4426
  },
4427
+ {
4428
+ displayName: 'Return All',
4429
+ name: 'returnAll',
4430
+ type: 'boolean',
4431
+ default: true,
4432
+ description: 'Whether to return all results or only up to a given limit',
4433
+ displayOptions: {
4434
+ show: {
4435
+ resource: [
4436
+ 'translations'
4437
+ ],
4438
+ operation: [
4439
+ 'api.projects.bundles.getMany'
4440
+ ]
4441
+ }
4442
+ }
4443
+ },
4444
+ {
4445
+ displayName: 'Return All',
4446
+ name: 'returnAll',
4447
+ type: 'boolean',
4448
+ default: true,
4449
+ description: 'Whether to return all results or only up to a given limit',
4450
+ displayOptions: {
4451
+ show: {
4452
+ resource: [
4453
+ 'translations'
4454
+ ],
4455
+ operation: [
4456
+ 'api.projects.bundles.files.getMany'
4457
+ ]
4458
+ }
4459
+ }
4460
+ },
2791
4461
  {
2792
4462
  displayName: 'Return All',
2793
4463
  name: 'returnAll',