@labeleer/api 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/bin/import-spec.ts +18 -0
  2. package/openapi-ts.config.ts +35 -0
  3. package/openapi.yaml +2181 -0
  4. package/package.json +5 -7
  5. package/pnpm-workspace.yaml +3 -0
  6. package/prettier.config.ts +13 -0
  7. package/src/generated/client/client.gen.ts +300 -0
  8. package/{dist/client/index.d.ts → src/generated/client/index.ts} +19 -2
  9. package/src/generated/client/types.gen.ts +238 -0
  10. package/src/generated/client/utils.gen.ts +337 -0
  11. package/{dist/client.gen.d.ts → src/generated/client.gen.ts} +17 -3
  12. package/src/generated/core/auth.gen.ts +49 -0
  13. package/src/generated/core/bodySerializer.gen.ts +96 -0
  14. package/src/generated/core/params.gen.ts +188 -0
  15. package/src/generated/core/pathSerializer.gen.ts +186 -0
  16. package/src/generated/core/queryKeySerializer.gen.ts +134 -0
  17. package/src/generated/core/serverSentEvents.gen.ts +265 -0
  18. package/src/generated/core/types.gen.ts +126 -0
  19. package/src/generated/core/utils.gen.ts +146 -0
  20. package/{dist/generated/index.js → src/generated/index.ts} +1 -0
  21. package/src/generated/sdk.gen.ts +890 -0
  22. package/src/generated/types/index.ts +1611 -0
  23. package/src/generated/zod.gen.ts +733 -0
  24. package/src/wrapper.ts +73 -0
  25. package/tsconfig.json +25 -0
  26. package/dist/client/client.gen.d.ts +0 -2
  27. package/dist/client/client.gen.js +0 -217
  28. package/dist/client/index.js +0 -6
  29. package/dist/client/types.gen.d.ts +0 -120
  30. package/dist/client/types.gen.js +0 -2
  31. package/dist/client/utils.gen.d.ts +0 -37
  32. package/dist/client/utils.gen.js +0 -231
  33. package/dist/client.gen.js +0 -3
  34. package/dist/core/auth.gen.d.ts +0 -25
  35. package/dist/core/auth.gen.js +0 -14
  36. package/dist/core/bodySerializer.gen.d.ts +0 -25
  37. package/dist/core/bodySerializer.gen.js +0 -57
  38. package/dist/core/params.gen.d.ts +0 -43
  39. package/dist/core/params.gen.js +0 -112
  40. package/dist/core/pathSerializer.gen.d.ts +0 -33
  41. package/dist/core/pathSerializer.gen.js +0 -114
  42. package/dist/core/queryKeySerializer.gen.d.ts +0 -18
  43. package/dist/core/queryKeySerializer.gen.js +0 -99
  44. package/dist/core/serverSentEvents.gen.d.ts +0 -71
  45. package/dist/core/serverSentEvents.gen.js +0 -136
  46. package/dist/core/types.gen.d.ts +0 -83
  47. package/dist/core/types.gen.js +0 -2
  48. package/dist/core/utils.gen.d.ts +0 -19
  49. package/dist/core/utils.gen.js +0 -87
  50. package/dist/generated/client/client.gen.d.ts +0 -2
  51. package/dist/generated/client/client.gen.js +0 -217
  52. package/dist/generated/client/index.d.ts +0 -10
  53. package/dist/generated/client/index.js +0 -6
  54. package/dist/generated/client/types.gen.d.ts +0 -120
  55. package/dist/generated/client/types.gen.js +0 -2
  56. package/dist/generated/client/utils.gen.d.ts +0 -37
  57. package/dist/generated/client/utils.gen.js +0 -231
  58. package/dist/generated/client.gen.d.ts +0 -12
  59. package/dist/generated/client.gen.js +0 -3
  60. package/dist/generated/core/auth.gen.d.ts +0 -25
  61. package/dist/generated/core/auth.gen.js +0 -14
  62. package/dist/generated/core/bodySerializer.gen.d.ts +0 -25
  63. package/dist/generated/core/bodySerializer.gen.js +0 -57
  64. package/dist/generated/core/params.gen.d.ts +0 -43
  65. package/dist/generated/core/params.gen.js +0 -112
  66. package/dist/generated/core/pathSerializer.gen.d.ts +0 -33
  67. package/dist/generated/core/pathSerializer.gen.js +0 -114
  68. package/dist/generated/core/queryKeySerializer.gen.d.ts +0 -18
  69. package/dist/generated/core/queryKeySerializer.gen.js +0 -99
  70. package/dist/generated/core/serverSentEvents.gen.d.ts +0 -71
  71. package/dist/generated/core/serverSentEvents.gen.js +0 -136
  72. package/dist/generated/core/types.gen.d.ts +0 -83
  73. package/dist/generated/core/types.gen.js +0 -2
  74. package/dist/generated/core/utils.gen.d.ts +0 -19
  75. package/dist/generated/core/utils.gen.js +0 -87
  76. package/dist/generated/index.d.ts +0 -2
  77. package/dist/generated/sdk.gen.d.ts +0 -42
  78. package/dist/generated/sdk.gen.js +0 -190
  79. package/dist/generated/types/index.d.ts +0 -1366
  80. package/dist/generated/types/index.js +0 -181
  81. package/dist/generated/zod.gen.d.ts +0 -3149
  82. package/dist/generated/zod.gen.js +0 -621
  83. package/dist/index.js +0 -2
  84. package/dist/sdk.gen.d.ts +0 -42
  85. package/dist/sdk.gen.js +0 -190
  86. package/dist/types/index.d.ts +0 -1366
  87. package/dist/types/index.js +0 -181
  88. package/dist/wrapper.d.ts +0 -51
  89. package/dist/wrapper.js +0 -49
  90. package/dist/zod.gen.d.ts +0 -3149
  91. package/dist/zod.gen.js +0 -621
  92. /package/{dist/index.d.ts → src/index.ts} +0 -0
package/openapi.yaml ADDED
@@ -0,0 +1,2181 @@
1
+ openapi: 3.1.0
2
+ info:
3
+ title: Labeleer API
4
+ version: 1.0.0
5
+ paths:
6
+ /api/invitations:
7
+ get:
8
+ operationId: getInvitations
9
+ responses:
10
+ "200":
11
+ description: Ok
12
+ content:
13
+ application/json:
14
+ schema:
15
+ $ref: "#/components/schemas/GetInvitationsResponse"
16
+ "401":
17
+ description: Unauthorized
18
+ content:
19
+ application/json:
20
+ schema:
21
+ $ref: "#/components/schemas/ErrorResponse"
22
+ "500":
23
+ description: Internal Server Error
24
+ content:
25
+ application/json:
26
+ schema:
27
+ $ref: "#/components/schemas/ErrorResponse"
28
+ post:
29
+ operationId: respondToInvitation
30
+ requestBody:
31
+ required: true
32
+ content:
33
+ application/json:
34
+ schema:
35
+ type: object
36
+ properties:
37
+ invitationId:
38
+ type: string
39
+ status:
40
+ type: string
41
+ enum:
42
+ - accepted
43
+ - declined
44
+ required:
45
+ - invitationId
46
+ - status
47
+ responses:
48
+ "201":
49
+ description: Resource Created
50
+ content:
51
+ application/json:
52
+ schema:
53
+ $ref: "#/components/schemas/SuccessResponse"
54
+ "400":
55
+ description: Bad Request
56
+ content:
57
+ application/json:
58
+ schema:
59
+ $ref: "#/components/schemas/ErrorResponse"
60
+ "401":
61
+ description: Unauthorized
62
+ content:
63
+ application/json:
64
+ schema:
65
+ $ref: "#/components/schemas/ErrorResponse"
66
+ "403":
67
+ description: Forbidden
68
+ content:
69
+ application/json:
70
+ schema:
71
+ $ref: "#/components/schemas/ErrorResponse"
72
+ "500":
73
+ description: Internal Server Error
74
+ content:
75
+ application/json:
76
+ schema:
77
+ $ref: "#/components/schemas/ErrorResponse"
78
+ /api/project/{projectId}/access-token:
79
+ post:
80
+ operationId: createAccessToken
81
+ parameters:
82
+ - in: path
83
+ name: projectId
84
+ required: true
85
+ schema:
86
+ type: string
87
+ requestBody:
88
+ required: true
89
+ content:
90
+ application/json:
91
+ schema:
92
+ type: object
93
+ properties:
94
+ permissions:
95
+ type: object
96
+ properties:
97
+ translations:
98
+ type: string
99
+ enum:
100
+ - viewer
101
+ - editor
102
+ languages:
103
+ type: string
104
+ enum:
105
+ - viewer
106
+ - editor
107
+ collaborators:
108
+ type: string
109
+ enum:
110
+ - viewer
111
+ - editor
112
+ project:
113
+ type: string
114
+ enum:
115
+ - viewer
116
+ - editor
117
+ required:
118
+ - permissions
119
+ responses:
120
+ "201":
121
+ description: Resource Created
122
+ content:
123
+ application/json:
124
+ schema:
125
+ $ref: "#/components/schemas/CreateAccessTokenResponse"
126
+ "400":
127
+ description: Bad Request
128
+ content:
129
+ application/json:
130
+ schema:
131
+ $ref: "#/components/schemas/ErrorResponse"
132
+ "401":
133
+ description: Unauthorized
134
+ content:
135
+ application/json:
136
+ schema:
137
+ $ref: "#/components/schemas/ErrorResponse"
138
+ "403":
139
+ description: Forbidden
140
+ content:
141
+ application/json:
142
+ schema:
143
+ $ref: "#/components/schemas/ErrorResponse"
144
+ "500":
145
+ description: Internal Server Error
146
+ content:
147
+ application/json:
148
+ schema:
149
+ $ref: "#/components/schemas/ErrorResponse"
150
+ delete:
151
+ operationId: revokeAccessToken
152
+ parameters:
153
+ - in: path
154
+ name: projectId
155
+ required: true
156
+ schema:
157
+ type: string
158
+ responses:
159
+ "200":
160
+ description: Ok
161
+ content:
162
+ application/json:
163
+ schema:
164
+ $ref: "#/components/schemas/SuccessResponse"
165
+ "400":
166
+ description: Bad Request
167
+ content:
168
+ application/json:
169
+ schema:
170
+ $ref: "#/components/schemas/ErrorResponse"
171
+ "401":
172
+ description: Unauthorized
173
+ content:
174
+ application/json:
175
+ schema:
176
+ $ref: "#/components/schemas/ErrorResponse"
177
+ "403":
178
+ description: Forbidden
179
+ content:
180
+ application/json:
181
+ schema:
182
+ $ref: "#/components/schemas/ErrorResponse"
183
+ "500":
184
+ description: Internal Server Error
185
+ content:
186
+ application/json:
187
+ schema:
188
+ $ref: "#/components/schemas/ErrorResponse"
189
+ patch:
190
+ operationId: updateAccessToken
191
+ parameters:
192
+ - in: path
193
+ name: projectId
194
+ required: true
195
+ schema:
196
+ type: string
197
+ requestBody:
198
+ required: true
199
+ content:
200
+ application/json:
201
+ schema:
202
+ type: object
203
+ properties:
204
+ permissions:
205
+ type: object
206
+ properties:
207
+ translations:
208
+ type: string
209
+ enum:
210
+ - viewer
211
+ - editor
212
+ languages:
213
+ type: string
214
+ enum:
215
+ - viewer
216
+ - editor
217
+ collaborators:
218
+ type: string
219
+ enum:
220
+ - viewer
221
+ - editor
222
+ project:
223
+ type: string
224
+ enum:
225
+ - viewer
226
+ - editor
227
+ required:
228
+ - permissions
229
+ responses:
230
+ "200":
231
+ description: Ok
232
+ content:
233
+ application/json:
234
+ schema:
235
+ $ref: "#/components/schemas/UpdateAccessTokenResponse"
236
+ "400":
237
+ description: Bad Request
238
+ content:
239
+ application/json:
240
+ schema:
241
+ $ref: "#/components/schemas/ErrorResponse"
242
+ "401":
243
+ description: Unauthorized
244
+ content:
245
+ application/json:
246
+ schema:
247
+ $ref: "#/components/schemas/ErrorResponse"
248
+ "403":
249
+ description: Forbidden
250
+ content:
251
+ application/json:
252
+ schema:
253
+ $ref: "#/components/schemas/ErrorResponse"
254
+ "404":
255
+ description: Not Found
256
+ content:
257
+ application/json:
258
+ schema:
259
+ $ref: "#/components/schemas/ErrorResponse"
260
+ "500":
261
+ description: Internal Server Error
262
+ content:
263
+ application/json:
264
+ schema:
265
+ $ref: "#/components/schemas/ErrorResponse"
266
+ /api/project/{projectId}/invite:
267
+ post:
268
+ operationId: inviteUserToProject
269
+ parameters:
270
+ - in: path
271
+ name: projectId
272
+ required: true
273
+ schema:
274
+ type: string
275
+ requestBody:
276
+ required: true
277
+ content:
278
+ application/json:
279
+ schema:
280
+ type: object
281
+ properties:
282
+ email:
283
+ type: string
284
+ format: email
285
+ pattern: ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
286
+ required:
287
+ - email
288
+ responses:
289
+ "201":
290
+ description: Resource Created
291
+ content:
292
+ application/json:
293
+ schema:
294
+ $ref: "#/components/schemas/SuccessResponse"
295
+ "400":
296
+ description: Bad Request
297
+ content:
298
+ application/json:
299
+ schema:
300
+ $ref: "#/components/schemas/ErrorResponse"
301
+ "401":
302
+ description: Unauthorized
303
+ content:
304
+ application/json:
305
+ schema:
306
+ $ref: "#/components/schemas/ErrorResponse"
307
+ "403":
308
+ description: Forbidden
309
+ content:
310
+ application/json:
311
+ schema:
312
+ $ref: "#/components/schemas/ErrorResponse"
313
+ "500":
314
+ description: Internal Server Error
315
+ content:
316
+ application/json:
317
+ schema:
318
+ $ref: "#/components/schemas/ErrorResponse"
319
+ /api/project/{projectId}:
320
+ put:
321
+ operationId: updateProject
322
+ parameters:
323
+ - in: path
324
+ name: projectId
325
+ required: true
326
+ schema:
327
+ type: string
328
+ requestBody:
329
+ required: true
330
+ content:
331
+ application/json:
332
+ schema:
333
+ $ref: "#/components/schemas/UpdateProjectResponse"
334
+ responses:
335
+ "200":
336
+ description: Ok
337
+ content:
338
+ application/json:
339
+ schema:
340
+ $ref: "#/components/schemas/SuccessResponse"
341
+ "400":
342
+ description: Bad Request
343
+ content:
344
+ application/json:
345
+ schema:
346
+ $ref: "#/components/schemas/ErrorResponse"
347
+ "401":
348
+ description: Unauthorized
349
+ content:
350
+ application/json:
351
+ schema:
352
+ $ref: "#/components/schemas/ErrorResponse"
353
+ "403":
354
+ description: Forbidden
355
+ content:
356
+ application/json:
357
+ schema:
358
+ $ref: "#/components/schemas/ErrorResponse"
359
+ "500":
360
+ description: Internal Server Error
361
+ content:
362
+ application/json:
363
+ schema:
364
+ $ref: "#/components/schemas/ErrorResponse"
365
+ delete:
366
+ operationId: deleteProject
367
+ parameters:
368
+ - in: path
369
+ name: projectId
370
+ required: true
371
+ schema:
372
+ type: string
373
+ responses:
374
+ "200":
375
+ description: Ok
376
+ content:
377
+ application/json:
378
+ schema:
379
+ $ref: "#/components/schemas/SuccessResponse"
380
+ "400":
381
+ description: Bad Request
382
+ content:
383
+ application/json:
384
+ schema:
385
+ $ref: "#/components/schemas/ErrorResponse"
386
+ "401":
387
+ description: Unauthorized
388
+ content:
389
+ application/json:
390
+ schema:
391
+ $ref: "#/components/schemas/ErrorResponse"
392
+ "403":
393
+ description: Forbidden
394
+ content:
395
+ application/json:
396
+ schema:
397
+ $ref: "#/components/schemas/ErrorResponse"
398
+ "500":
399
+ description: Internal Server Error
400
+ content:
401
+ application/json:
402
+ schema:
403
+ $ref: "#/components/schemas/ErrorResponse"
404
+ /api/project/{projectId}/users/{userId}:
405
+ get:
406
+ operationId: getUserProjectPermissions
407
+ parameters:
408
+ - in: path
409
+ name: projectId
410
+ required: true
411
+ schema:
412
+ type: string
413
+ - in: path
414
+ name: userId
415
+ required: true
416
+ schema:
417
+ type: string
418
+ responses:
419
+ "200":
420
+ description: Ok
421
+ content:
422
+ application/json:
423
+ schema:
424
+ $ref: "#/components/schemas/GetUserPermissionsResponse"
425
+ "400":
426
+ description: Bad Request
427
+ content:
428
+ application/json:
429
+ schema:
430
+ $ref: "#/components/schemas/ErrorResponse"
431
+ "401":
432
+ description: Unauthorized
433
+ content:
434
+ application/json:
435
+ schema:
436
+ $ref: "#/components/schemas/ErrorResponse"
437
+ "403":
438
+ description: Forbidden
439
+ content:
440
+ application/json:
441
+ schema:
442
+ $ref: "#/components/schemas/ErrorResponse"
443
+ "500":
444
+ description: Internal Server Error
445
+ content:
446
+ application/json:
447
+ schema:
448
+ $ref: "#/components/schemas/ErrorResponse"
449
+ put:
450
+ operationId: updateUserPermissions
451
+ parameters:
452
+ - in: path
453
+ name: projectId
454
+ required: true
455
+ schema:
456
+ type: string
457
+ - in: path
458
+ name: userId
459
+ required: true
460
+ schema:
461
+ type: string
462
+ requestBody:
463
+ required: true
464
+ content:
465
+ application/json:
466
+ schema:
467
+ $ref: "#/components/schemas/UpdateUserPermissionsRequestBody"
468
+ responses:
469
+ "200":
470
+ description: Ok
471
+ content:
472
+ application/json:
473
+ schema:
474
+ $ref: "#/components/schemas/SuccessResponse"
475
+ "400":
476
+ description: Bad Request
477
+ content:
478
+ application/json:
479
+ schema:
480
+ $ref: "#/components/schemas/ErrorResponse"
481
+ "401":
482
+ description: Unauthorized
483
+ content:
484
+ application/json:
485
+ schema:
486
+ $ref: "#/components/schemas/ErrorResponse"
487
+ "403":
488
+ description: Forbidden
489
+ content:
490
+ application/json:
491
+ schema:
492
+ $ref: "#/components/schemas/ErrorResponse"
493
+ "500":
494
+ description: Internal Server Error
495
+ content:
496
+ application/json:
497
+ schema:
498
+ $ref: "#/components/schemas/ErrorResponse"
499
+ delete:
500
+ operationId: removeUserFromProject
501
+ parameters:
502
+ - in: path
503
+ name: projectId
504
+ required: true
505
+ schema:
506
+ type: string
507
+ - in: path
508
+ name: userId
509
+ required: true
510
+ schema:
511
+ type: string
512
+ responses:
513
+ "200":
514
+ description: Ok
515
+ content:
516
+ application/json:
517
+ schema:
518
+ $ref: "#/components/schemas/SuccessResponse"
519
+ "400":
520
+ description: Bad Request
521
+ content:
522
+ application/json:
523
+ schema:
524
+ $ref: "#/components/schemas/ErrorResponse"
525
+ "401":
526
+ description: Unauthorized
527
+ content:
528
+ application/json:
529
+ schema:
530
+ $ref: "#/components/schemas/ErrorResponse"
531
+ "403":
532
+ description: Forbidden
533
+ content:
534
+ application/json:
535
+ schema:
536
+ $ref: "#/components/schemas/ErrorResponse"
537
+ "500":
538
+ description: Internal Server Error
539
+ content:
540
+ application/json:
541
+ schema:
542
+ $ref: "#/components/schemas/ErrorResponse"
543
+ /api/project:
544
+ get:
545
+ operationId: getProjects
546
+ responses:
547
+ "200":
548
+ description: Ok
549
+ content:
550
+ application/json:
551
+ schema:
552
+ $ref: "#/components/schemas/GetProjectsResponse"
553
+ "401":
554
+ description: Unauthorized
555
+ content:
556
+ application/json:
557
+ schema:
558
+ $ref: "#/components/schemas/ErrorResponse"
559
+ "403":
560
+ description: Forbidden
561
+ content:
562
+ application/json:
563
+ schema:
564
+ $ref: "#/components/schemas/ErrorResponse"
565
+ "500":
566
+ description: Internal Server Error
567
+ content:
568
+ application/json:
569
+ schema:
570
+ $ref: "#/components/schemas/ErrorResponse"
571
+ post:
572
+ operationId: createProject
573
+ requestBody:
574
+ required: true
575
+ content:
576
+ application/json:
577
+ schema:
578
+ $ref: "#/components/schemas/CreateProjectRequest"
579
+ responses:
580
+ "201":
581
+ description: Resource Created
582
+ content:
583
+ application/json:
584
+ schema:
585
+ $ref: "#/components/schemas/CreateProjectResponse"
586
+ "400":
587
+ description: Bad Request
588
+ content:
589
+ application/json:
590
+ schema:
591
+ $ref: "#/components/schemas/ErrorResponse"
592
+ "401":
593
+ description: Unauthorized
594
+ content:
595
+ application/json:
596
+ schema:
597
+ $ref: "#/components/schemas/ErrorResponse"
598
+ "403":
599
+ description: Forbidden
600
+ content:
601
+ application/json:
602
+ schema:
603
+ $ref: "#/components/schemas/ErrorResponse"
604
+ "500":
605
+ description: Internal Server Error
606
+ content:
607
+ application/json:
608
+ schema:
609
+ $ref: "#/components/schemas/ErrorResponse"
610
+ /api/translation/generate:
611
+ post:
612
+ operationId: generateTranslations
613
+ parameters:
614
+ - in: query
615
+ name: project_id
616
+ required: true
617
+ schema:
618
+ type: string
619
+ - in: query
620
+ name: key
621
+ required: true
622
+ schema:
623
+ type: string
624
+ - in: query
625
+ name: from_locale
626
+ required: true
627
+ schema:
628
+ $ref: "#/components/schemas/Locale"
629
+ - in: query
630
+ name: to_locale
631
+ required: true
632
+ schema:
633
+ $ref: "#/components/schemas/Locale"
634
+ responses:
635
+ "200":
636
+ description: Ok
637
+ content:
638
+ text/event-stream:
639
+ schema:
640
+ type: string
641
+ "400":
642
+ description: Bad Request
643
+ content:
644
+ application/json:
645
+ schema:
646
+ $ref: "#/components/schemas/ErrorResponse"
647
+ "401":
648
+ description: Unauthorized
649
+ content:
650
+ application/json:
651
+ schema:
652
+ $ref: "#/components/schemas/ErrorResponse"
653
+ "403":
654
+ description: Forbidden
655
+ content:
656
+ application/json:
657
+ schema:
658
+ $ref: "#/components/schemas/ErrorResponse"
659
+ "404":
660
+ description: Not Found
661
+ content:
662
+ application/json:
663
+ schema:
664
+ $ref: "#/components/schemas/ErrorResponse"
665
+ "500":
666
+ description: Internal Server Error
667
+ content:
668
+ application/json:
669
+ schema:
670
+ $ref: "#/components/schemas/ErrorResponse"
671
+ /api/translation:
672
+ put:
673
+ operationId: renameTranslationKey
674
+ requestBody:
675
+ required: true
676
+ content:
677
+ application/json:
678
+ schema:
679
+ type: object
680
+ properties:
681
+ projectId:
682
+ type: string
683
+ keyId:
684
+ type: string
685
+ newKeyName:
686
+ type: string
687
+ minLength: 4
688
+ maxLength: 512
689
+ required:
690
+ - projectId
691
+ - keyId
692
+ - newKeyName
693
+ responses:
694
+ "200":
695
+ description: Ok
696
+ content:
697
+ application/json:
698
+ schema:
699
+ $ref: "#/components/schemas/SuccessResponse"
700
+ "400":
701
+ description: Bad Request
702
+ content:
703
+ application/json:
704
+ schema:
705
+ $ref: "#/components/schemas/ErrorResponse"
706
+ "401":
707
+ description: Unauthorized
708
+ content:
709
+ application/json:
710
+ schema:
711
+ $ref: "#/components/schemas/ErrorResponse"
712
+ "403":
713
+ description: Forbidden
714
+ content:
715
+ application/json:
716
+ schema:
717
+ $ref: "#/components/schemas/ErrorResponse"
718
+ "500":
719
+ description: Internal Server Error
720
+ content:
721
+ application/json:
722
+ schema:
723
+ $ref: "#/components/schemas/ErrorResponse"
724
+ delete:
725
+ operationId: deleteTranslation
726
+ parameters:
727
+ - in: query
728
+ name: projectId
729
+ required: true
730
+ schema:
731
+ type: string
732
+ - in: query
733
+ name: keyId
734
+ required: true
735
+ schema:
736
+ type: string
737
+ responses:
738
+ "200":
739
+ description: Ok
740
+ content:
741
+ application/json:
742
+ schema:
743
+ $ref: "#/components/schemas/SuccessResponse"
744
+ "400":
745
+ description: Bad Request
746
+ content:
747
+ application/json:
748
+ schema:
749
+ $ref: "#/components/schemas/ErrorResponse"
750
+ "401":
751
+ description: Unauthorized
752
+ content:
753
+ application/json:
754
+ schema:
755
+ $ref: "#/components/schemas/ErrorResponse"
756
+ "403":
757
+ description: Forbidden
758
+ content:
759
+ application/json:
760
+ schema:
761
+ $ref: "#/components/schemas/ErrorResponse"
762
+ "500":
763
+ description: Internal Server Error
764
+ content:
765
+ application/json:
766
+ schema:
767
+ $ref: "#/components/schemas/ErrorResponse"
768
+ get:
769
+ operationId: getTranslation
770
+ parameters:
771
+ - in: query
772
+ name: projectId
773
+ required: true
774
+ schema:
775
+ type: string
776
+ - in: query
777
+ name: keyId
778
+ required: true
779
+ schema:
780
+ type: string
781
+ responses:
782
+ "200":
783
+ description: Ok
784
+ content:
785
+ application/json:
786
+ schema:
787
+ $ref: "#/components/schemas/GetTranslationDataResponse"
788
+ "400":
789
+ description: Bad Request
790
+ content:
791
+ application/json:
792
+ schema:
793
+ $ref: "#/components/schemas/ErrorResponse"
794
+ "401":
795
+ description: Unauthorized
796
+ content:
797
+ application/json:
798
+ schema:
799
+ $ref: "#/components/schemas/ErrorResponse"
800
+ "403":
801
+ description: Forbidden
802
+ content:
803
+ application/json:
804
+ schema:
805
+ $ref: "#/components/schemas/ErrorResponse"
806
+ "404":
807
+ description: Not Found
808
+ content:
809
+ application/json:
810
+ schema:
811
+ $ref: "#/components/schemas/ErrorResponse"
812
+ "500":
813
+ description: Internal Server Error
814
+ content:
815
+ application/json:
816
+ schema:
817
+ $ref: "#/components/schemas/ErrorResponse"
818
+ /api/translation/tags:
819
+ patch:
820
+ operationId: updateTranslationTags
821
+ requestBody:
822
+ required: true
823
+ content:
824
+ application/json:
825
+ schema:
826
+ $ref: "#/components/schemas/UpdateTranslationTagsRequestBody"
827
+ responses:
828
+ "200":
829
+ description: Ok
830
+ content:
831
+ application/json:
832
+ schema:
833
+ $ref: "#/components/schemas/UpdateTranslationTagsResponse"
834
+ "400":
835
+ description: Bad Request
836
+ content:
837
+ application/json:
838
+ schema:
839
+ $ref: "#/components/schemas/ErrorResponse"
840
+ "401":
841
+ description: Unauthorized
842
+ content:
843
+ application/json:
844
+ schema:
845
+ $ref: "#/components/schemas/ErrorResponse"
846
+ "403":
847
+ description: Forbidden
848
+ content:
849
+ application/json:
850
+ schema:
851
+ $ref: "#/components/schemas/ErrorResponse"
852
+ "500":
853
+ description: Internal Server Error
854
+ content:
855
+ application/json:
856
+ schema:
857
+ $ref: "#/components/schemas/ErrorResponse"
858
+ get:
859
+ operationId: getTranslationTags
860
+ parameters:
861
+ - in: query
862
+ name: projectId
863
+ required: true
864
+ schema:
865
+ type: string
866
+ - in: query
867
+ name: keyId
868
+ required: true
869
+ schema:
870
+ type: string
871
+ responses:
872
+ "200":
873
+ description: Ok
874
+ content:
875
+ application/json:
876
+ schema:
877
+ $ref: "#/components/schemas/GetTranslationTagsResponse"
878
+ "400":
879
+ description: Bad Request
880
+ content:
881
+ application/json:
882
+ schema:
883
+ $ref: "#/components/schemas/ErrorResponse"
884
+ "401":
885
+ description: Unauthorized
886
+ content:
887
+ application/json:
888
+ schema:
889
+ $ref: "#/components/schemas/ErrorResponse"
890
+ "403":
891
+ description: Forbidden
892
+ content:
893
+ application/json:
894
+ schema:
895
+ $ref: "#/components/schemas/ErrorResponse"
896
+ "500":
897
+ description: Internal Server Error
898
+ content:
899
+ application/json:
900
+ schema:
901
+ $ref: "#/components/schemas/ErrorResponse"
902
+ /api/translations/export:
903
+ get:
904
+ operationId: exportTranslations
905
+ parameters:
906
+ - in: query
907
+ name: projectId
908
+ required: true
909
+ schema:
910
+ type: string
911
+ - in: query
912
+ name: format
913
+ required: true
914
+ schema:
915
+ type: string
916
+ enum:
917
+ - json
918
+ - yaml
919
+ - ts
920
+ - po
921
+ - android_strings
922
+ - apple_strings
923
+ - xliff
924
+ - xcstrings
925
+ - in: query
926
+ name: file_name
927
+ required: false
928
+ schema:
929
+ type: string
930
+ - in: query
931
+ name: include_tags
932
+ required: false
933
+ schema:
934
+ $ref: "#/components/schemas/Booleanish"
935
+ - in: query
936
+ name: include_untranslated
937
+ required: false
938
+ schema:
939
+ $ref: "#/components/schemas/Booleanish"
940
+ - in: query
941
+ name: include_description
942
+ required: false
943
+ schema:
944
+ $ref: "#/components/schemas/Booleanish"
945
+ responses:
946
+ "200":
947
+ description: Ok
948
+ content:
949
+ application/zip:
950
+ schema: {}
951
+ application/json:
952
+ schema:
953
+ type: string
954
+ application/yaml:
955
+ schema:
956
+ type: string
957
+ application/x-qt-translation:
958
+ schema:
959
+ type: string
960
+ text/x-gettext-translation:
961
+ schema:
962
+ type: string
963
+ application/xml:
964
+ schema:
965
+ type: string
966
+ text/plain+apple-strings:
967
+ schema:
968
+ type: string
969
+ application/x-xliff+xml:
970
+ schema:
971
+ type: string
972
+ application/json+xcstrings:
973
+ schema:
974
+ type: string
975
+ "204":
976
+ description: No Content
977
+ "400":
978
+ description: Bad Request
979
+ content:
980
+ application/json:
981
+ schema:
982
+ $ref: "#/components/schemas/ErrorResponse"
983
+ "401":
984
+ description: Unauthorized
985
+ content:
986
+ application/json:
987
+ schema:
988
+ $ref: "#/components/schemas/ErrorResponse"
989
+ "403":
990
+ description: Forbidden
991
+ content:
992
+ application/json:
993
+ schema:
994
+ $ref: "#/components/schemas/ErrorResponse"
995
+ "500":
996
+ description: Internal Server Error
997
+ content:
998
+ application/json:
999
+ schema:
1000
+ $ref: "#/components/schemas/ErrorResponse"
1001
+ /api/translations/locales:
1002
+ get:
1003
+ operationId: getLocales
1004
+ parameters:
1005
+ - in: query
1006
+ name: projectId
1007
+ required: true
1008
+ schema:
1009
+ type: string
1010
+ responses:
1011
+ "200":
1012
+ description: Ok
1013
+ content:
1014
+ application/json:
1015
+ schema:
1016
+ $ref: "#/components/schemas/GetLocaleResponse"
1017
+ "400":
1018
+ description: Bad Request
1019
+ content:
1020
+ application/json:
1021
+ schema:
1022
+ $ref: "#/components/schemas/ErrorResponse"
1023
+ "401":
1024
+ description: Unauthorized
1025
+ content:
1026
+ application/json:
1027
+ schema:
1028
+ $ref: "#/components/schemas/ErrorResponse"
1029
+ "403":
1030
+ description: Forbidden
1031
+ content:
1032
+ application/json:
1033
+ schema:
1034
+ $ref: "#/components/schemas/ErrorResponse"
1035
+ "500":
1036
+ description: Internal Server Error
1037
+ content:
1038
+ application/json:
1039
+ schema:
1040
+ $ref: "#/components/schemas/ErrorResponse"
1041
+ delete:
1042
+ operationId: deleteLocale
1043
+ parameters:
1044
+ - in: query
1045
+ name: projectId
1046
+ required: true
1047
+ schema:
1048
+ type: string
1049
+ - in: query
1050
+ name: locale
1051
+ required: true
1052
+ schema:
1053
+ $ref: "#/components/schemas/Locale"
1054
+ responses:
1055
+ "200":
1056
+ description: Ok
1057
+ content:
1058
+ application/json:
1059
+ schema:
1060
+ $ref: "#/components/schemas/SuccessResponse"
1061
+ "400":
1062
+ description: Bad Request
1063
+ content:
1064
+ application/json:
1065
+ schema:
1066
+ $ref: "#/components/schemas/ErrorResponse"
1067
+ "401":
1068
+ description: Unauthorized
1069
+ content:
1070
+ application/json:
1071
+ schema:
1072
+ $ref: "#/components/schemas/ErrorResponse"
1073
+ "403":
1074
+ description: Forbidden
1075
+ content:
1076
+ application/json:
1077
+ schema:
1078
+ $ref: "#/components/schemas/ErrorResponse"
1079
+ "500":
1080
+ description: Internal Server Error
1081
+ content:
1082
+ application/json:
1083
+ schema:
1084
+ $ref: "#/components/schemas/ErrorResponse"
1085
+ post:
1086
+ operationId: addLocale
1087
+ requestBody:
1088
+ required: true
1089
+ content:
1090
+ application/json:
1091
+ schema:
1092
+ $ref: "#/components/schemas/CreateLocaleRequestBody"
1093
+ responses:
1094
+ "201":
1095
+ description: Resource Created
1096
+ content:
1097
+ application/json:
1098
+ schema:
1099
+ $ref: "#/components/schemas/CreateLocaleResponse"
1100
+ "400":
1101
+ description: Bad Request
1102
+ content:
1103
+ application/json:
1104
+ schema:
1105
+ $ref: "#/components/schemas/ErrorResponse"
1106
+ "401":
1107
+ description: Unauthorized
1108
+ content:
1109
+ application/json:
1110
+ schema:
1111
+ $ref: "#/components/schemas/ErrorResponse"
1112
+ "403":
1113
+ description: Forbidden
1114
+ content:
1115
+ application/json:
1116
+ schema:
1117
+ $ref: "#/components/schemas/ErrorResponse"
1118
+ "500":
1119
+ description: Internal Server Error
1120
+ content:
1121
+ application/json:
1122
+ schema:
1123
+ $ref: "#/components/schemas/ErrorResponse"
1124
+ put:
1125
+ operationId: updateReferenceLocale
1126
+ requestBody:
1127
+ required: true
1128
+ content:
1129
+ application/json:
1130
+ schema:
1131
+ $ref: "#/components/schemas/UpdateReferenceLocaleRequestBody"
1132
+ responses:
1133
+ "200":
1134
+ description: Ok
1135
+ content:
1136
+ application/json:
1137
+ schema:
1138
+ $ref: "#/components/schemas/SuccessResponse"
1139
+ "400":
1140
+ description: Bad Request
1141
+ content:
1142
+ application/json:
1143
+ schema:
1144
+ $ref: "#/components/schemas/ErrorResponse"
1145
+ "401":
1146
+ description: Unauthorized
1147
+ content:
1148
+ application/json:
1149
+ schema:
1150
+ $ref: "#/components/schemas/ErrorResponse"
1151
+ "403":
1152
+ description: Forbidden
1153
+ content:
1154
+ application/json:
1155
+ schema:
1156
+ $ref: "#/components/schemas/ErrorResponse"
1157
+ "500":
1158
+ description: Internal Server Error
1159
+ content:
1160
+ application/json:
1161
+ schema:
1162
+ $ref: "#/components/schemas/ErrorResponse"
1163
+ /api/translations:
1164
+ get:
1165
+ operationId: getTranslations
1166
+ parameters:
1167
+ - in: query
1168
+ name: projectId
1169
+ required: true
1170
+ schema:
1171
+ type: string
1172
+ - in: query
1173
+ name: limit
1174
+ required: false
1175
+ schema:
1176
+ type: string
1177
+ - in: query
1178
+ name: offset
1179
+ required: false
1180
+ schema:
1181
+ type: string
1182
+ - in: query
1183
+ name: q
1184
+ required: false
1185
+ schema:
1186
+ type: string
1187
+ - in: query
1188
+ name: tags
1189
+ required: false
1190
+ schema:
1191
+ type: string
1192
+ - in: query
1193
+ name: lang
1194
+ required: false
1195
+ schema:
1196
+ type: string
1197
+ - in: query
1198
+ name: case_sensitive
1199
+ required: false
1200
+ schema:
1201
+ $ref: "#/components/schemas/Booleanish"
1202
+ - in: query
1203
+ name: untranslated_only
1204
+ required: false
1205
+ schema:
1206
+ $ref: "#/components/schemas/Booleanish"
1207
+ responses:
1208
+ "200":
1209
+ description: Ok
1210
+ content:
1211
+ application/json:
1212
+ schema:
1213
+ $ref: "#/components/schemas/GetTranslationsResponse"
1214
+ "400":
1215
+ description: Bad Request
1216
+ content:
1217
+ application/json:
1218
+ schema:
1219
+ $ref: "#/components/schemas/ErrorResponse"
1220
+ "401":
1221
+ description: Unauthorized
1222
+ content:
1223
+ application/json:
1224
+ schema:
1225
+ $ref: "#/components/schemas/ErrorResponse"
1226
+ "403":
1227
+ description: Forbidden
1228
+ content:
1229
+ application/json:
1230
+ schema:
1231
+ $ref: "#/components/schemas/ErrorResponse"
1232
+ "500":
1233
+ description: Internal Server Error
1234
+ content:
1235
+ application/json:
1236
+ schema:
1237
+ $ref: "#/components/schemas/ErrorResponse"
1238
+ post:
1239
+ operationId: updateTranslations
1240
+ requestBody:
1241
+ required: true
1242
+ content:
1243
+ application/json:
1244
+ schema:
1245
+ $ref: "#/components/schemas/UpdateTranslationsRequestBody"
1246
+ responses:
1247
+ "201":
1248
+ description: Resource Created
1249
+ content:
1250
+ application/json:
1251
+ schema:
1252
+ $ref: "#/components/schemas/SuccessResponse"
1253
+ "400":
1254
+ description: Bad Request
1255
+ content:
1256
+ application/json:
1257
+ schema:
1258
+ $ref: "#/components/schemas/ErrorResponse"
1259
+ "401":
1260
+ description: Unauthorized
1261
+ content:
1262
+ application/json:
1263
+ schema:
1264
+ $ref: "#/components/schemas/ErrorResponse"
1265
+ "403":
1266
+ description: Forbidden
1267
+ content:
1268
+ application/json:
1269
+ schema:
1270
+ $ref: "#/components/schemas/ErrorResponse"
1271
+ "500":
1272
+ description: Internal Server Error
1273
+ content:
1274
+ application/json:
1275
+ schema:
1276
+ $ref: "#/components/schemas/ErrorResponse"
1277
+ delete:
1278
+ operationId: deleteTranslations
1279
+ requestBody:
1280
+ required: true
1281
+ content:
1282
+ application/json:
1283
+ schema:
1284
+ $ref: "#/components/schemas/DeleteTranslationsRequestBody"
1285
+ responses:
1286
+ "200":
1287
+ description: Ok
1288
+ content:
1289
+ application/json:
1290
+ schema:
1291
+ $ref: "#/components/schemas/SuccessResponse"
1292
+ "400":
1293
+ description: Bad Request
1294
+ content:
1295
+ application/json:
1296
+ schema:
1297
+ $ref: "#/components/schemas/ErrorResponse"
1298
+ "401":
1299
+ description: Unauthorized
1300
+ content:
1301
+ application/json:
1302
+ schema:
1303
+ $ref: "#/components/schemas/ErrorResponse"
1304
+ "403":
1305
+ description: Forbidden
1306
+ content:
1307
+ application/json:
1308
+ schema:
1309
+ $ref: "#/components/schemas/ErrorResponse"
1310
+ "500":
1311
+ description: Internal Server Error
1312
+ content:
1313
+ application/json:
1314
+ schema:
1315
+ $ref: "#/components/schemas/ErrorResponse"
1316
+ components:
1317
+ schemas:
1318
+ ErrorResponse:
1319
+ type: object
1320
+ properties:
1321
+ error:
1322
+ type: string
1323
+ details:
1324
+ type: string
1325
+ required:
1326
+ - error
1327
+ additionalProperties: false
1328
+ SuccessResponse:
1329
+ type: object
1330
+ properties:
1331
+ success:
1332
+ type: boolean
1333
+ required:
1334
+ - success
1335
+ additionalProperties: false
1336
+ PermissionCategory:
1337
+ type: string
1338
+ enum:
1339
+ - translations
1340
+ - languages
1341
+ - collaborators
1342
+ - project
1343
+ PermissionRole:
1344
+ type: string
1345
+ enum:
1346
+ - viewer
1347
+ - editor
1348
+ ProjectPermissions:
1349
+ type: object
1350
+ propertyNames:
1351
+ $ref: "#/components/schemas/PermissionCategory"
1352
+ additionalProperties:
1353
+ $ref: "#/components/schemas/PermissionRole"
1354
+ Role:
1355
+ type: string
1356
+ enum:
1357
+ - owner
1358
+ - collaborator
1359
+ ProjectFeature:
1360
+ type: string
1361
+ enum:
1362
+ - auto-translate
1363
+ - suggestions
1364
+ Locale:
1365
+ type: string
1366
+ enum:
1367
+ - af_ZA
1368
+ - am_ET
1369
+ - ar_SA
1370
+ - ar_EG
1371
+ - ar_AE
1372
+ - ar_MA
1373
+ - ha_NG
1374
+ - ig_NG
1375
+ - om_ET
1376
+ - ps_AF
1377
+ - so_SO
1378
+ - sw_KE
1379
+ - sw_TZ
1380
+ - wo_SN
1381
+ - xh_ZA
1382
+ - yo_NG
1383
+ - yo_BJ
1384
+ - zu_ZA
1385
+ - az_AZ
1386
+ - hy_AM
1387
+ - ka_GE
1388
+ - kk_KZ
1389
+ - ky_KG
1390
+ - tk_TM
1391
+ - ug_CN
1392
+ - uz_UZ
1393
+ - ks_IN
1394
+ - ks_PK
1395
+ - be_BY
1396
+ - bg_BG
1397
+ - bs_BA
1398
+ - cs_CZ
1399
+ - hr_HR
1400
+ - lt_LT
1401
+ - lv_LV
1402
+ - mk_MK
1403
+ - pl_PL
1404
+ - ru_RU
1405
+ - sk_SK
1406
+ - sl_SI
1407
+ - sq_AL
1408
+ - sr_RS
1409
+ - sr_BA
1410
+ - sr_ME
1411
+ - uk_UA
1412
+ - ca_ES
1413
+ - cy_GB
1414
+ - da_DK
1415
+ - de_DE
1416
+ - de_AT
1417
+ - de_CH
1418
+ - el_GR
1419
+ - et_EE
1420
+ - eu_ES
1421
+ - fi_FI
1422
+ - ga_IE
1423
+ - gl_ES
1424
+ - hu_HU
1425
+ - is_IS
1426
+ - it_IT
1427
+ - it_CH
1428
+ - mt_MT
1429
+ - nl_NL
1430
+ - nl_BE
1431
+ - no_NO
1432
+ - nn_NO
1433
+ - ro_RO
1434
+ - sv_SE
1435
+ - en_US
1436
+ - en_GB
1437
+ - en_AU
1438
+ - en_CA
1439
+ - en_NZ
1440
+ - en_IN
1441
+ - en_IE
1442
+ - en_ZA
1443
+ - en_SG
1444
+ - fr_FR
1445
+ - fr_CA
1446
+ - fr_BE
1447
+ - fr_CH
1448
+ - fr_MA
1449
+ - es_ES
1450
+ - es_MX
1451
+ - es_AR
1452
+ - es_CO
1453
+ - es_CL
1454
+ - es_PE
1455
+ - es_VE
1456
+ - es_US
1457
+ - pt_PT
1458
+ - pt_BR
1459
+ - as_IN
1460
+ - bho_IN
1461
+ - bn_BD
1462
+ - bn_IN
1463
+ - dv_MV
1464
+ - fa_IR
1465
+ - fa_AF
1466
+ - gu_IN
1467
+ - he_IL
1468
+ - hi_IN
1469
+ - kn_IN
1470
+ - ku_TR
1471
+ - ku_IR
1472
+ - ku_IQ
1473
+ - ku_SY
1474
+ - mai_IN
1475
+ - ml_IN
1476
+ - mr_IN
1477
+ - ne_NP
1478
+ - pa_IN
1479
+ - pa_PK
1480
+ - sd_IN
1481
+ - sd_PK
1482
+ - si_LK
1483
+ - ta_IN
1484
+ - te_IN
1485
+ - ur_PK
1486
+ - ur_IN
1487
+ - bo_CN
1488
+ - bo_IN
1489
+ - dz_BT
1490
+ - id_ID
1491
+ - ja_JP
1492
+ - jv_ID
1493
+ - km_KH
1494
+ - ko_KR
1495
+ - lo_LA
1496
+ - mn_MN
1497
+ - ms_MY
1498
+ - ms_BN
1499
+ - my_MM
1500
+ - su_ID
1501
+ - th_TH
1502
+ - tl_PH
1503
+ - vi_VN
1504
+ - zh_CN
1505
+ - zh_TW
1506
+ - zh_HK
1507
+ - zh_SG
1508
+ - gug_PY
1509
+ - yi_US
1510
+ - yi_IL
1511
+ - yi_DE
1512
+ - tr_TR
1513
+ Timestamp:
1514
+ type: string
1515
+ format: date-time
1516
+ pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
1517
+ Plurality:
1518
+ type: string
1519
+ enum:
1520
+ - zero
1521
+ - one
1522
+ - two
1523
+ - few
1524
+ - many
1525
+ - other
1526
+ Pagination:
1527
+ type: object
1528
+ properties:
1529
+ offset:
1530
+ type: number
1531
+ count:
1532
+ type: number
1533
+ totalCount:
1534
+ type: number
1535
+ required:
1536
+ - offset
1537
+ - count
1538
+ - totalCount
1539
+ additionalProperties: false
1540
+ User:
1541
+ type: object
1542
+ properties:
1543
+ id:
1544
+ type: string
1545
+ name:
1546
+ type: string
1547
+ email:
1548
+ type: string
1549
+ thumbnail_url:
1550
+ type: string
1551
+ format: uri
1552
+ required:
1553
+ - id
1554
+ - name
1555
+ - email
1556
+ additionalProperties: false
1557
+ Collaborator:
1558
+ type: object
1559
+ properties:
1560
+ id:
1561
+ type: string
1562
+ name:
1563
+ type: string
1564
+ email:
1565
+ type: string
1566
+ thumbnail_url:
1567
+ type: string
1568
+ format: uri
1569
+ role:
1570
+ $ref: "#/components/schemas/Role"
1571
+ required:
1572
+ - id
1573
+ - name
1574
+ - email
1575
+ - role
1576
+ additionalProperties: false
1577
+ Project:
1578
+ type: object
1579
+ properties:
1580
+ id:
1581
+ type: string
1582
+ description:
1583
+ type: string
1584
+ name:
1585
+ type: string
1586
+ created_on:
1587
+ $ref: "#/components/schemas/Timestamp"
1588
+ features:
1589
+ type: array
1590
+ items:
1591
+ $ref: "#/components/schemas/ProjectFeature"
1592
+ updated_on:
1593
+ $ref: "#/components/schemas/Timestamp"
1594
+ owner_user_id:
1595
+ type: string
1596
+ created_by:
1597
+ $ref: "#/components/schemas/Collaborator"
1598
+ users:
1599
+ type: array
1600
+ items:
1601
+ $ref: "#/components/schemas/Collaborator"
1602
+ required:
1603
+ - id
1604
+ - name
1605
+ - created_on
1606
+ - features
1607
+ - owner_user_id
1608
+ - created_by
1609
+ - users
1610
+ additionalProperties: false
1611
+ InvitationProject:
1612
+ type: object
1613
+ properties:
1614
+ id:
1615
+ type: string
1616
+ name:
1617
+ type: string
1618
+ description:
1619
+ type: string
1620
+ required:
1621
+ - id
1622
+ - name
1623
+ additionalProperties: false
1624
+ InvitedBy:
1625
+ type: object
1626
+ properties:
1627
+ user_id:
1628
+ type: string
1629
+ name:
1630
+ type: string
1631
+ thumbnail_url:
1632
+ type: string
1633
+ email:
1634
+ type: string
1635
+ required:
1636
+ - user_id
1637
+ - name
1638
+ - email
1639
+ additionalProperties: false
1640
+ Invitation:
1641
+ type: object
1642
+ properties:
1643
+ id:
1644
+ type: string
1645
+ role:
1646
+ $ref: "#/components/schemas/Role"
1647
+ invited_on:
1648
+ $ref: "#/components/schemas/Timestamp"
1649
+ project:
1650
+ $ref: "#/components/schemas/InvitationProject"
1651
+ invited_by:
1652
+ $ref: "#/components/schemas/InvitedBy"
1653
+ required:
1654
+ - id
1655
+ - role
1656
+ - invited_on
1657
+ - project
1658
+ - invited_by
1659
+ additionalProperties: false
1660
+ TranslationTags:
1661
+ type: array
1662
+ items:
1663
+ type: string
1664
+ TranslationItem:
1665
+ type: object
1666
+ properties:
1667
+ key:
1668
+ type: string
1669
+ key_id:
1670
+ type: string
1671
+ translations:
1672
+ type: object
1673
+ propertyNames:
1674
+ $ref: "#/components/schemas/Locale"
1675
+ additionalProperties:
1676
+ type: string
1677
+ plurals:
1678
+ type: object
1679
+ propertyNames:
1680
+ $ref: "#/components/schemas/Locale"
1681
+ additionalProperties:
1682
+ type: object
1683
+ propertyNames:
1684
+ $ref: "#/components/schemas/Plurality"
1685
+ additionalProperties:
1686
+ type: string
1687
+ comment_count:
1688
+ type: number
1689
+ description:
1690
+ type: string
1691
+ tags:
1692
+ $ref: "#/components/schemas/TranslationTags"
1693
+ required:
1694
+ - key
1695
+ - key_id
1696
+ - translations
1697
+ - plurals
1698
+ - comment_count
1699
+ - tags
1700
+ additionalProperties: false
1701
+ ExtendedTranslationItem:
1702
+ type: object
1703
+ properties:
1704
+ key:
1705
+ type: string
1706
+ key_id:
1707
+ type: string
1708
+ translations:
1709
+ type: object
1710
+ propertyNames:
1711
+ $ref: "#/components/schemas/Locale"
1712
+ additionalProperties:
1713
+ type: string
1714
+ plurals:
1715
+ type: object
1716
+ propertyNames:
1717
+ $ref: "#/components/schemas/Locale"
1718
+ additionalProperties:
1719
+ type: object
1720
+ propertyNames:
1721
+ $ref: "#/components/schemas/Plurality"
1722
+ additionalProperties:
1723
+ type: string
1724
+ comment_count:
1725
+ type: number
1726
+ description:
1727
+ type: string
1728
+ tags:
1729
+ $ref: "#/components/schemas/TranslationTags"
1730
+ created_at:
1731
+ $ref: "#/components/schemas/Timestamp"
1732
+ updated_at:
1733
+ $ref: "#/components/schemas/Timestamp"
1734
+ created_by:
1735
+ type: object
1736
+ properties:
1737
+ id:
1738
+ type: string
1739
+ name:
1740
+ type: string
1741
+ email:
1742
+ type: string
1743
+ thumbnail:
1744
+ type: string
1745
+ required:
1746
+ - id
1747
+ - name
1748
+ - email
1749
+ additionalProperties: false
1750
+ required:
1751
+ - key
1752
+ - key_id
1753
+ - translations
1754
+ - plurals
1755
+ - comment_count
1756
+ - tags
1757
+ - created_at
1758
+ additionalProperties: false
1759
+ TranslationExportItem:
1760
+ type: object
1761
+ properties:
1762
+ key:
1763
+ type: string
1764
+ tags:
1765
+ $ref: "#/components/schemas/TranslationTags"
1766
+ description:
1767
+ type: string
1768
+ translations:
1769
+ type: object
1770
+ propertyNames:
1771
+ $ref: "#/components/schemas/Locale"
1772
+ additionalProperties:
1773
+ type: string
1774
+ plurals:
1775
+ type: object
1776
+ propertyNames:
1777
+ $ref: "#/components/schemas/Locale"
1778
+ additionalProperties:
1779
+ type: object
1780
+ propertyNames:
1781
+ $ref: "#/components/schemas/Plurality"
1782
+ additionalProperties:
1783
+ type: string
1784
+ required:
1785
+ - key
1786
+ - tags
1787
+ - translations
1788
+ - plurals
1789
+ additionalProperties: false
1790
+ LanguageItem:
1791
+ type: object
1792
+ properties:
1793
+ id:
1794
+ type: string
1795
+ locale:
1796
+ $ref: "#/components/schemas/Locale"
1797
+ is_reference:
1798
+ type: boolean
1799
+ required:
1800
+ - id
1801
+ - locale
1802
+ - is_reference
1803
+ additionalProperties: false
1804
+ Comment:
1805
+ type: object
1806
+ properties:
1807
+ id:
1808
+ type: string
1809
+ key_id:
1810
+ type: string
1811
+ project_id:
1812
+ type: string
1813
+ created_on:
1814
+ $ref: "#/components/schemas/Timestamp"
1815
+ edited_on:
1816
+ $ref: "#/components/schemas/Timestamp"
1817
+ user:
1818
+ type: object
1819
+ properties:
1820
+ id:
1821
+ type: string
1822
+ name:
1823
+ type: string
1824
+ email:
1825
+ type: string
1826
+ thumbnail_url:
1827
+ type: string
1828
+ required:
1829
+ - id
1830
+ - name
1831
+ - email
1832
+ additionalProperties: false
1833
+ content:
1834
+ type: string
1835
+ required:
1836
+ - id
1837
+ - key_id
1838
+ - project_id
1839
+ - created_on
1840
+ - user
1841
+ - content
1842
+ additionalProperties: false
1843
+ ProjectApiKeyDetails:
1844
+ type: object
1845
+ properties:
1846
+ id:
1847
+ type: string
1848
+ name:
1849
+ type: string
1850
+ start:
1851
+ type: string
1852
+ enabled:
1853
+ type: boolean
1854
+ permissions:
1855
+ $ref: "#/components/schemas/ProjectPermissions"
1856
+ created_on:
1857
+ $ref: "#/components/schemas/Timestamp"
1858
+ last_request:
1859
+ $ref: "#/components/schemas/Timestamp"
1860
+ request_count:
1861
+ type: number
1862
+ expires_on:
1863
+ $ref: "#/components/schemas/Timestamp"
1864
+ required:
1865
+ - id
1866
+ - start
1867
+ - enabled
1868
+ - permissions
1869
+ - created_on
1870
+ - request_count
1871
+ additionalProperties: false
1872
+ Booleanish:
1873
+ default: false
1874
+ type: boolean
1875
+ GetInvitationsResponse:
1876
+ type: object
1877
+ properties:
1878
+ data:
1879
+ type: array
1880
+ items:
1881
+ $ref: "#/components/schemas/Invitation"
1882
+ required:
1883
+ - data
1884
+ additionalProperties: false
1885
+ CreateAccessTokenResponse:
1886
+ type: object
1887
+ properties:
1888
+ key:
1889
+ type: string
1890
+ details:
1891
+ $ref: "#/components/schemas/ProjectApiKeyDetails"
1892
+ required:
1893
+ - key
1894
+ - details
1895
+ additionalProperties: false
1896
+ UpdateAccessTokenResponse:
1897
+ type: object
1898
+ properties:
1899
+ details:
1900
+ $ref: "#/components/schemas/ProjectApiKeyDetails"
1901
+ required:
1902
+ - details
1903
+ additionalProperties: false
1904
+ UpdateProjectResponse:
1905
+ type: object
1906
+ properties:
1907
+ name:
1908
+ type: string
1909
+ minLength: 3
1910
+ maxLength: 50
1911
+ description:
1912
+ type: string
1913
+ maxLength: 500
1914
+ required:
1915
+ - name
1916
+ additionalProperties: false
1917
+ GetUserPermissionsResponse:
1918
+ type: object
1919
+ properties:
1920
+ data:
1921
+ $ref: "#/components/schemas/ProjectPermissions"
1922
+ required:
1923
+ - data
1924
+ additionalProperties: false
1925
+ UpdateUserPermissionsRequestBody:
1926
+ type: object
1927
+ properties:
1928
+ permissions:
1929
+ type: object
1930
+ properties:
1931
+ translations:
1932
+ type: string
1933
+ enum:
1934
+ - viewer
1935
+ - editor
1936
+ languages:
1937
+ type: string
1938
+ enum:
1939
+ - viewer
1940
+ - editor
1941
+ collaborators:
1942
+ type: string
1943
+ enum:
1944
+ - viewer
1945
+ - editor
1946
+ project:
1947
+ type: string
1948
+ enum:
1949
+ - viewer
1950
+ - editor
1951
+ additionalProperties: false
1952
+ required:
1953
+ - permissions
1954
+ additionalProperties: false
1955
+ CreateProjectRequest:
1956
+ type: object
1957
+ properties:
1958
+ name:
1959
+ type: string
1960
+ minLength: 1
1961
+ maxLength: 50
1962
+ description:
1963
+ type: string
1964
+ maxLength: 500
1965
+ locales:
1966
+ type: array
1967
+ items:
1968
+ $ref: "#/components/schemas/Locale"
1969
+ required:
1970
+ - name
1971
+ additionalProperties: false
1972
+ CreateProjectResponse:
1973
+ type: object
1974
+ properties:
1975
+ data:
1976
+ $ref: "#/components/schemas/Project"
1977
+ required:
1978
+ - data
1979
+ additionalProperties: false
1980
+ GetProjectsResponse:
1981
+ type: object
1982
+ properties:
1983
+ data:
1984
+ type: array
1985
+ items:
1986
+ $ref: "#/components/schemas/Project"
1987
+ required:
1988
+ - data
1989
+ additionalProperties: false
1990
+ GetTranslationDataResponse:
1991
+ type: object
1992
+ properties:
1993
+ data:
1994
+ $ref: "#/components/schemas/ExtendedTranslationItem"
1995
+ required:
1996
+ - data
1997
+ additionalProperties: false
1998
+ GetTranslationTagsRequest:
1999
+ type: object
2000
+ properties:
2001
+ projectId:
2002
+ type: string
2003
+ keyId:
2004
+ type: string
2005
+ required:
2006
+ - projectId
2007
+ - keyId
2008
+ additionalProperties: false
2009
+ GetTranslationTagsResponse:
2010
+ type: object
2011
+ properties:
2012
+ data:
2013
+ $ref: "#/components/schemas/TranslationTags"
2014
+ required:
2015
+ - data
2016
+ additionalProperties: false
2017
+ UpdateTranslationTagsRequestBody:
2018
+ type: object
2019
+ properties:
2020
+ projectId:
2021
+ type: string
2022
+ keyId:
2023
+ type: string
2024
+ tags:
2025
+ minItems: 1
2026
+ type: array
2027
+ items:
2028
+ type: string
2029
+ maxLength: 32
2030
+ required:
2031
+ - projectId
2032
+ - keyId
2033
+ - tags
2034
+ additionalProperties: false
2035
+ UpdateTranslationTagsResponse:
2036
+ type: object
2037
+ properties:
2038
+ data:
2039
+ $ref: "#/components/schemas/TranslationTags"
2040
+ required:
2041
+ - data
2042
+ additionalProperties: false
2043
+ TranslationsExportRequestQuery:
2044
+ type: object
2045
+ properties:
2046
+ projectId:
2047
+ type: string
2048
+ format:
2049
+ type: string
2050
+ enum:
2051
+ - json
2052
+ - yaml
2053
+ - ts
2054
+ - po
2055
+ - android_strings
2056
+ - apple_strings
2057
+ - xliff
2058
+ - xcstrings
2059
+ file_name:
2060
+ type: string
2061
+ include_tags:
2062
+ $ref: "#/components/schemas/Booleanish"
2063
+ include_untranslated:
2064
+ $ref: "#/components/schemas/Booleanish"
2065
+ include_description:
2066
+ $ref: "#/components/schemas/Booleanish"
2067
+ required:
2068
+ - projectId
2069
+ - format
2070
+ additionalProperties: false
2071
+ GetLocaleResponse:
2072
+ type: object
2073
+ properties:
2074
+ data:
2075
+ type: array
2076
+ items:
2077
+ $ref: "#/components/schemas/LanguageItem"
2078
+ required:
2079
+ - data
2080
+ additionalProperties: false
2081
+ CreateLocaleRequestBody:
2082
+ type: object
2083
+ properties:
2084
+ projectId:
2085
+ type: string
2086
+ locale:
2087
+ $ref: "#/components/schemas/Locale"
2088
+ required:
2089
+ - projectId
2090
+ - locale
2091
+ additionalProperties: false
2092
+ CreateLocaleResponse:
2093
+ type: object
2094
+ properties:
2095
+ data:
2096
+ type: array
2097
+ items:
2098
+ $ref: "#/components/schemas/LanguageItem"
2099
+ required:
2100
+ - data
2101
+ additionalProperties: false
2102
+ UpdateReferenceLocaleRequestBody:
2103
+ type: object
2104
+ properties:
2105
+ projectId:
2106
+ type: string
2107
+ locale:
2108
+ $ref: "#/components/schemas/Locale"
2109
+ required:
2110
+ - projectId
2111
+ - locale
2112
+ additionalProperties: false
2113
+ GetTranslationsResponse:
2114
+ type: object
2115
+ properties:
2116
+ data:
2117
+ type: array
2118
+ items:
2119
+ $ref: "#/components/schemas/TranslationItem"
2120
+ pagination:
2121
+ $ref: "#/components/schemas/Pagination"
2122
+ required:
2123
+ - data
2124
+ - pagination
2125
+ additionalProperties: false
2126
+ UpdateTranslationsRequestBody:
2127
+ type: object
2128
+ properties:
2129
+ projectId:
2130
+ type: string
2131
+ entries:
2132
+ type: object
2133
+ propertyNames:
2134
+ type: string
2135
+ additionalProperties:
2136
+ type: object
2137
+ properties:
2138
+ tags:
2139
+ type: array
2140
+ items:
2141
+ type: string
2142
+ description:
2143
+ type: string
2144
+ translations:
2145
+ type: object
2146
+ propertyNames:
2147
+ $ref: "#/components/schemas/Locale"
2148
+ additionalProperties:
2149
+ type: string
2150
+ plurals:
2151
+ type: object
2152
+ propertyNames:
2153
+ $ref: "#/components/schemas/Locale"
2154
+ additionalProperties:
2155
+ type: object
2156
+ propertyNames:
2157
+ $ref: "#/components/schemas/Plurality"
2158
+ additionalProperties:
2159
+ type: string
2160
+ required:
2161
+ - translations
2162
+ additionalProperties: false
2163
+ required:
2164
+ - projectId
2165
+ - entries
2166
+ additionalProperties: false
2167
+ DeleteTranslationsRequestBody:
2168
+ type: object
2169
+ properties:
2170
+ projectId:
2171
+ type: string
2172
+ keys:
2173
+ minItems: 1
2174
+ type: array
2175
+ items:
2176
+ type: string
2177
+ required:
2178
+ - projectId
2179
+ - keys
2180
+ additionalProperties: false
2181
+