generaltranslation 9.4.2 → 9.4.3

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.
package/dist/openapi.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "info": {
4
4
  "title": "General Translation API",
5
5
  "version": "2026-03-06.v1",
6
- "description": "The public General Translation API. Use it to upload source content and translated files, download translations, queue and translate content, create projects, manage branches and tags, and read project and job status.\n\nMost endpoints operate on a single project. All endpoints live under `https://api.gtx.dev`.\n\nAuthenticate every request with an API key as a bearer token in the standard `Authorization: Bearer <key>` header. Project keys (`gtx-api-`, `gtx-dev-`) are bound to one project. Organization keys (`gtx-org-`) work across projects but must include the target project in the `gt-project-id` header for project-scoped routes. Organization-scoped routes, such as `POST /v2/orgs/{orgId}/projects`, require the target organization in the `orgId` path parameter. The credential must have access to that organization.",
6
+ "description": "The public General Translation API. Use it to upload source content and translated files, download translations, queue and translate content, create projects, manage branches and tags, and read project and job status.\n\nMost endpoints operate on a single project. All endpoints live under `https://api.gtx.dev`.\n\nAuthenticate every request with an API key as a bearer token in the standard `Authorization: Bearer <key>` header. Project keys (`gtx-api-`) are bound to one project, and their permissions decide what they may do. Organization keys (`gtx-org-`) work across projects but must include the target project in the `gt-project-id` header for project-scoped routes. Organization-scoped routes, such as `POST /v2/orgs/{orgId}/projects`, require the target organization in the `orgId` path parameter. The credential must have access to that organization.",
7
7
  "contact": {
8
8
  "name": "General Translation Support",
9
9
  "email": "support@generaltranslation.com",
@@ -303,6 +303,18 @@
303
303
  "type": "string",
304
304
  "enum": ["MD", "MDX"]
305
305
  },
306
+ "ProjectApiKeyPermission": {
307
+ "type": "string",
308
+ "enum": [
309
+ "project:write",
310
+ "project:context:read",
311
+ "project:context:write",
312
+ "project:files:read",
313
+ "project:files:write",
314
+ "project:translations:generate",
315
+ "project:translations:enqueue"
316
+ ]
317
+ },
306
318
  "CreateCliWizardSessionResponse": {
307
319
  "type": "object",
308
320
  "properties": {
@@ -325,7 +337,7 @@
325
337
  "enum": ["development", "production", "all"],
326
338
  "default": "production",
327
339
  "deprecated": true,
328
- "description": "Compatibility response slots. The wizard creates one project API key for all requested environments."
340
+ "description": "Deprecated: the wizard creates one project API key and returns it in each requested slot."
329
341
  },
330
342
  "CliWizardSessionReadyResponse": {
331
343
  "anyOf": [
@@ -1446,12 +1458,12 @@
1446
1458
  }
1447
1459
  }
1448
1460
  },
1449
- "/v1/integrations/figma-plugin/info": {
1461
+ "/v1/integrations/plugins/{provider}/info": {
1450
1462
  "post": {
1451
- "operationId": "figmaPluginInfo",
1463
+ "operationId": "pluginInfo",
1452
1464
  "x-internal": true,
1453
- "summary": "Figma plugin info",
1454
- "description": "Run the Figma plugin info command.",
1465
+ "summary": "Plugin info",
1466
+ "description": "Run the info command for a design-tool plugin.",
1455
1467
  "tags": ["Integrations"],
1456
1468
  "security": [
1457
1469
  {
@@ -1462,6 +1474,15 @@
1462
1474
  }
1463
1475
  ],
1464
1476
  "parameters": [
1477
+ {
1478
+ "schema": {
1479
+ "type": "string",
1480
+ "enum": ["figma", "after-effects"]
1481
+ },
1482
+ "required": true,
1483
+ "name": "provider",
1484
+ "in": "path"
1485
+ },
1465
1486
  {
1466
1487
  "schema": {
1467
1488
  "$ref": "#/components/schemas/ApiVersion"
@@ -1487,56 +1508,120 @@
1487
1508
  "content": {
1488
1509
  "application/json": {
1489
1510
  "schema": {
1490
- "type": "object",
1491
- "properties": {
1492
- "figmaFileName": {
1493
- "type": "string",
1494
- "minLength": 1,
1495
- "maxLength": 255
1511
+ "anyOf": [
1512
+ {
1513
+ "type": "object",
1514
+ "properties": {
1515
+ "fileName": {
1516
+ "type": "string",
1517
+ "minLength": 1,
1518
+ "maxLength": 255
1519
+ }
1520
+ },
1521
+ "required": ["fileName"],
1522
+ "additionalProperties": false
1523
+ },
1524
+ {
1525
+ "type": "object",
1526
+ "properties": {
1527
+ "projectStamp": {
1528
+ "type": "string",
1529
+ "minLength": 1,
1530
+ "maxLength": 255
1531
+ }
1532
+ },
1533
+ "required": ["projectStamp"],
1534
+ "additionalProperties": false
1496
1535
  }
1497
- },
1498
- "required": ["figmaFileName"],
1499
- "additionalProperties": false
1536
+ ]
1500
1537
  }
1501
1538
  }
1502
1539
  }
1503
1540
  },
1504
1541
  "responses": {
1505
1542
  "200": {
1506
- "description": "Figma plugin result",
1543
+ "description": "Plugin command result",
1507
1544
  "content": {
1508
1545
  "application/json": {
1509
1546
  "schema": {
1510
- "type": "object",
1511
- "properties": {
1512
- "project": {
1547
+ "anyOf": [
1548
+ {
1513
1549
  "type": "object",
1514
1550
  "properties": {
1515
- "id": {
1516
- "type": "string"
1517
- },
1518
- "name": {
1519
- "type": "string"
1520
- },
1521
- "integrationId": {
1522
- "type": "string"
1523
- },
1524
- "sourceLocale": {
1551
+ "project": {
1525
1552
  "type": "object",
1526
1553
  "properties": {
1527
- "code": {
1554
+ "id": {
1528
1555
  "type": "string"
1529
1556
  },
1530
1557
  "name": {
1531
1558
  "type": "string"
1532
1559
  },
1533
- "emoji": {
1560
+ "integrationId": {
1534
1561
  "type": "string"
1562
+ },
1563
+ "sourceLocale": {
1564
+ "type": "object",
1565
+ "properties": {
1566
+ "code": {
1567
+ "type": "string"
1568
+ },
1569
+ "name": {
1570
+ "type": "string"
1571
+ },
1572
+ "emoji": {
1573
+ "type": "string"
1574
+ }
1575
+ },
1576
+ "required": ["code", "name", "emoji"]
1577
+ },
1578
+ "currentLocales": {
1579
+ "type": "array",
1580
+ "items": {
1581
+ "type": "object",
1582
+ "properties": {
1583
+ "code": {
1584
+ "type": "string"
1585
+ },
1586
+ "name": {
1587
+ "type": "string"
1588
+ },
1589
+ "emoji": {
1590
+ "type": "string"
1591
+ }
1592
+ },
1593
+ "required": ["code", "name", "emoji"]
1594
+ }
1595
+ },
1596
+ "localeWhitelist": {
1597
+ "type": "array",
1598
+ "items": {
1599
+ "type": "object",
1600
+ "properties": {
1601
+ "code": {
1602
+ "type": "string"
1603
+ },
1604
+ "name": {
1605
+ "type": "string"
1606
+ },
1607
+ "emoji": {
1608
+ "type": "string"
1609
+ }
1610
+ },
1611
+ "required": ["code", "name", "emoji"]
1612
+ }
1535
1613
  }
1536
1614
  },
1537
- "required": ["code", "name", "emoji"]
1615
+ "required": [
1616
+ "id",
1617
+ "name",
1618
+ "integrationId",
1619
+ "sourceLocale",
1620
+ "currentLocales",
1621
+ "localeWhitelist"
1622
+ ]
1538
1623
  },
1539
- "currentLocales": {
1624
+ "supportedLocales": {
1540
1625
  "type": "array",
1541
1626
  "items": {
1542
1627
  "type": "object",
@@ -1554,84 +1639,156 @@
1554
1639
  "required": ["code", "name", "emoji"]
1555
1640
  }
1556
1641
  },
1557
- "localeWhitelist": {
1642
+ "linked": {
1558
1643
  "type": "array",
1559
1644
  "items": {
1560
1645
  "type": "object",
1561
1646
  "properties": {
1562
- "code": {
1647
+ "pageId": {
1563
1648
  "type": "string"
1564
1649
  },
1565
- "name": {
1650
+ "pageName": {
1566
1651
  "type": "string"
1567
1652
  },
1568
- "emoji": {
1653
+ "fileId": {
1654
+ "type": "string"
1655
+ },
1656
+ "versionId": {
1657
+ "type": "string"
1658
+ },
1659
+ "sourceLocale": {
1660
+ "type": "object",
1661
+ "properties": {
1662
+ "code": {
1663
+ "type": "string"
1664
+ },
1665
+ "name": {
1666
+ "type": "string"
1667
+ },
1668
+ "emoji": {
1669
+ "type": "string"
1670
+ }
1671
+ },
1672
+ "required": ["code", "name", "emoji"]
1673
+ },
1674
+ "locales": {
1675
+ "type": "array",
1676
+ "items": {
1677
+ "type": "object",
1678
+ "properties": {
1679
+ "code": {
1680
+ "type": "string"
1681
+ },
1682
+ "name": {
1683
+ "type": "string"
1684
+ },
1685
+ "emoji": {
1686
+ "type": "string"
1687
+ }
1688
+ },
1689
+ "required": ["code", "name", "emoji"]
1690
+ }
1691
+ },
1692
+ "updatedAt": {
1569
1693
  "type": "string"
1694
+ },
1695
+ "skippedCount": {
1696
+ "type": "number"
1697
+ },
1698
+ "skipped": {
1699
+ "type": "array",
1700
+ "items": {
1701
+ "type": "object",
1702
+ "properties": {
1703
+ "key": {
1704
+ "type": "string",
1705
+ "minLength": 1,
1706
+ "maxLength": 255
1707
+ },
1708
+ "structuralPath": {
1709
+ "type": "string",
1710
+ "minLength": 1,
1711
+ "maxLength": 1024
1712
+ },
1713
+ "displayPath": {
1714
+ "type": "array",
1715
+ "items": {
1716
+ "type": "string"
1717
+ },
1718
+ "maxItems": 64
1719
+ },
1720
+ "reason": {
1721
+ "type": "string",
1722
+ "enum": [
1723
+ "not_text_node",
1724
+ "empty_text",
1725
+ "hidden_layer",
1726
+ "missing_characters",
1727
+ "in_component_master"
1728
+ ]
1729
+ },
1730
+ "details": {
1731
+ "type": "object",
1732
+ "additionalProperties": {
1733
+ "anyOf": [
1734
+ {
1735
+ "type": "string"
1736
+ },
1737
+ {
1738
+ "type": "number"
1739
+ },
1740
+ {
1741
+ "type": "boolean"
1742
+ },
1743
+ {
1744
+ "type": "null"
1745
+ }
1746
+ ]
1747
+ }
1748
+ }
1749
+ },
1750
+ "required": [
1751
+ "key",
1752
+ "structuralPath",
1753
+ "displayPath",
1754
+ "reason"
1755
+ ],
1756
+ "additionalProperties": false
1757
+ }
1570
1758
  }
1571
1759
  },
1572
- "required": ["code", "name", "emoji"]
1760
+ "required": [
1761
+ "pageId",
1762
+ "pageName",
1763
+ "fileId",
1764
+ "versionId",
1765
+ "sourceLocale",
1766
+ "locales",
1767
+ "updatedAt",
1768
+ "skippedCount",
1769
+ "skipped"
1770
+ ]
1573
1771
  }
1574
1772
  }
1575
1773
  },
1576
- "required": [
1577
- "id",
1578
- "name",
1579
- "integrationId",
1580
- "sourceLocale",
1581
- "currentLocales",
1582
- "localeWhitelist"
1583
- ]
1584
- },
1585
- "supportedLocales": {
1586
- "type": "array",
1587
- "items": {
1588
- "type": "object",
1589
- "properties": {
1590
- "code": {
1591
- "type": "string"
1592
- },
1593
- "name": {
1594
- "type": "string"
1595
- },
1596
- "emoji": {
1597
- "type": "string"
1598
- }
1599
- },
1600
- "required": ["code", "name", "emoji"]
1601
- }
1774
+ "required": ["project", "supportedLocales", "linked"]
1602
1775
  },
1603
- "linkedPages": {
1604
- "type": "array",
1605
- "items": {
1606
- "type": "object",
1607
- "properties": {
1608
- "pageName": {
1609
- "type": "string"
1610
- },
1611
- "fileId": {
1612
- "type": "string"
1613
- },
1614
- "versionId": {
1615
- "type": "string"
1616
- },
1617
- "sourceLocale": {
1618
- "type": "object",
1619
- "properties": {
1620
- "code": {
1621
- "type": "string"
1622
- },
1623
- "name": {
1624
- "type": "string"
1625
- },
1626
- "emoji": {
1627
- "type": "string"
1628
- }
1776
+ {
1777
+ "type": "object",
1778
+ "properties": {
1779
+ "project": {
1780
+ "type": "object",
1781
+ "properties": {
1782
+ "id": {
1783
+ "type": "string"
1629
1784
  },
1630
- "required": ["code", "name", "emoji"]
1631
- },
1632
- "locales": {
1633
- "type": "array",
1634
- "items": {
1785
+ "name": {
1786
+ "type": "string"
1787
+ },
1788
+ "integrationId": {
1789
+ "type": "string"
1790
+ },
1791
+ "sourceLocale": {
1635
1792
  "type": "object",
1636
1793
  "properties": {
1637
1794
  "code": {
@@ -1645,88 +1802,205 @@
1645
1802
  }
1646
1803
  },
1647
1804
  "required": ["code", "name", "emoji"]
1648
- }
1649
- },
1650
- "updatedAt": {
1651
- "type": "string"
1652
- },
1653
- "skippedCount": {
1654
- "type": "number"
1655
- },
1656
- "skipped": {
1657
- "type": "array",
1658
- "items": {
1659
- "type": "object",
1660
- "properties": {
1661
- "nodeId": {
1662
- "type": "string",
1663
- "minLength": 1,
1664
- "maxLength": 255
1665
- },
1666
- "displayPath": {
1667
- "type": "array",
1668
- "items": {
1805
+ },
1806
+ "currentLocales": {
1807
+ "type": "array",
1808
+ "items": {
1809
+ "type": "object",
1810
+ "properties": {
1811
+ "code": {
1669
1812
  "type": "string"
1670
1813
  },
1671
- "maxItems": 64
1672
- },
1673
- "reason": {
1674
- "type": "string",
1675
- "enum": [
1676
- "not_text_node",
1677
- "empty_text",
1678
- "hidden_layer",
1679
- "missing_characters",
1680
- "in_component_master"
1681
- ]
1814
+ "name": {
1815
+ "type": "string"
1816
+ },
1817
+ "emoji": {
1818
+ "type": "string"
1819
+ }
1682
1820
  },
1683
- "details": {
1684
- "type": "object",
1685
- "additionalProperties": {
1686
- "anyOf": [
1687
- {
1688
- "type": "string"
1689
- },
1690
- {
1691
- "type": "number"
1692
- },
1693
- {
1694
- "type": "boolean"
1695
- },
1696
- {
1697
- "type": "null"
1698
- }
1699
- ]
1821
+ "required": ["code", "name", "emoji"]
1822
+ }
1823
+ },
1824
+ "localeWhitelist": {
1825
+ "type": "array",
1826
+ "items": {
1827
+ "type": "object",
1828
+ "properties": {
1829
+ "code": {
1830
+ "type": "string"
1831
+ },
1832
+ "name": {
1833
+ "type": "string"
1834
+ },
1835
+ "emoji": {
1836
+ "type": "string"
1700
1837
  }
1701
1838
  },
1702
- "pathKey": {
1703
- "type": "string"
1704
- }
1705
- },
1706
- "required": [
1707
- "nodeId",
1708
- "displayPath",
1709
- "reason",
1710
- "pathKey"
1711
- ],
1712
- "additionalProperties": false
1839
+ "required": ["code", "name", "emoji"]
1840
+ }
1713
1841
  }
1714
- }
1842
+ },
1843
+ "required": [
1844
+ "id",
1845
+ "name",
1846
+ "integrationId",
1847
+ "sourceLocale",
1848
+ "currentLocales",
1849
+ "localeWhitelist"
1850
+ ]
1715
1851
  },
1716
- "required": [
1717
- "pageName",
1718
- "fileId",
1719
- "versionId",
1720
- "sourceLocale",
1721
- "locales",
1722
- "updatedAt",
1723
- "skippedCount",
1724
- "skipped"
1725
- ]
1726
- }
1852
+ "supportedLocales": {
1853
+ "type": "array",
1854
+ "items": {
1855
+ "type": "object",
1856
+ "properties": {
1857
+ "code": {
1858
+ "type": "string"
1859
+ },
1860
+ "name": {
1861
+ "type": "string"
1862
+ },
1863
+ "emoji": {
1864
+ "type": "string"
1865
+ }
1866
+ },
1867
+ "required": ["code", "name", "emoji"]
1868
+ }
1869
+ },
1870
+ "linked": {
1871
+ "type": "array",
1872
+ "items": {
1873
+ "type": "object",
1874
+ "properties": {
1875
+ "compId": {
1876
+ "type": "string"
1877
+ },
1878
+ "compName": {
1879
+ "type": "string"
1880
+ },
1881
+ "fileId": {
1882
+ "type": "string"
1883
+ },
1884
+ "versionId": {
1885
+ "type": "string"
1886
+ },
1887
+ "sourceLocale": {
1888
+ "type": "object",
1889
+ "properties": {
1890
+ "code": {
1891
+ "type": "string"
1892
+ },
1893
+ "name": {
1894
+ "type": "string"
1895
+ },
1896
+ "emoji": {
1897
+ "type": "string"
1898
+ }
1899
+ },
1900
+ "required": ["code", "name", "emoji"]
1901
+ },
1902
+ "locales": {
1903
+ "type": "array",
1904
+ "items": {
1905
+ "type": "object",
1906
+ "properties": {
1907
+ "code": {
1908
+ "type": "string"
1909
+ },
1910
+ "name": {
1911
+ "type": "string"
1912
+ },
1913
+ "emoji": {
1914
+ "type": "string"
1915
+ }
1916
+ },
1917
+ "required": ["code", "name", "emoji"]
1918
+ }
1919
+ },
1920
+ "updatedAt": {
1921
+ "type": "string"
1922
+ },
1923
+ "skippedCount": {
1924
+ "type": "number"
1925
+ },
1926
+ "skipped": {
1927
+ "type": "array",
1928
+ "items": {
1929
+ "type": "object",
1930
+ "properties": {
1931
+ "key": {
1932
+ "type": "string",
1933
+ "minLength": 1,
1934
+ "maxLength": 255
1935
+ },
1936
+ "structuralPath": {
1937
+ "type": "string",
1938
+ "minLength": 1,
1939
+ "maxLength": 1024
1940
+ },
1941
+ "displayPath": {
1942
+ "type": "array",
1943
+ "items": {
1944
+ "type": "string"
1945
+ },
1946
+ "maxItems": 64
1947
+ },
1948
+ "reason": {
1949
+ "type": "string",
1950
+ "enum": [
1951
+ "not_text_layer",
1952
+ "empty_text",
1953
+ "expression_driven",
1954
+ "essential_graphics"
1955
+ ]
1956
+ },
1957
+ "details": {
1958
+ "type": "object",
1959
+ "additionalProperties": {
1960
+ "anyOf": [
1961
+ {
1962
+ "type": "string"
1963
+ },
1964
+ {
1965
+ "type": "number"
1966
+ },
1967
+ {
1968
+ "type": "boolean"
1969
+ },
1970
+ {
1971
+ "type": "null"
1972
+ }
1973
+ ]
1974
+ }
1975
+ }
1976
+ },
1977
+ "required": [
1978
+ "key",
1979
+ "structuralPath",
1980
+ "displayPath",
1981
+ "reason"
1982
+ ],
1983
+ "additionalProperties": false
1984
+ }
1985
+ }
1986
+ },
1987
+ "required": [
1988
+ "compId",
1989
+ "compName",
1990
+ "fileId",
1991
+ "versionId",
1992
+ "sourceLocale",
1993
+ "locales",
1994
+ "updatedAt",
1995
+ "skippedCount",
1996
+ "skipped"
1997
+ ]
1998
+ }
1999
+ }
2000
+ },
2001
+ "required": ["project", "supportedLocales", "linked"]
1727
2002
  }
1728
- },
1729
- "required": ["project", "supportedLocales", "linkedPages"]
2003
+ ]
1730
2004
  }
1731
2005
  }
1732
2006
  }
@@ -1869,12 +2143,12 @@
1869
2143
  }
1870
2144
  }
1871
2145
  },
1872
- "/v1/integrations/figma-plugin/sync": {
2146
+ "/v1/integrations/plugins/{provider}/sync": {
1873
2147
  "post": {
1874
- "operationId": "figmaPluginSync",
2148
+ "operationId": "pluginSync",
1875
2149
  "x-internal": true,
1876
- "summary": "Figma plugin sync",
1877
- "description": "Run the Figma plugin sync command.",
2150
+ "summary": "Plugin sync",
2151
+ "description": "Run the sync command for a design-tool plugin.",
1878
2152
  "tags": ["Integrations"],
1879
2153
  "security": [
1880
2154
  {
@@ -1885,6 +2159,15 @@
1885
2159
  }
1886
2160
  ],
1887
2161
  "parameters": [
2162
+ {
2163
+ "schema": {
2164
+ "type": "string",
2165
+ "enum": ["figma", "after-effects"]
2166
+ },
2167
+ "required": true,
2168
+ "name": "provider",
2169
+ "in": "path"
2170
+ },
1888
2171
  {
1889
2172
  "schema": {
1890
2173
  "$ref": "#/components/schemas/ApiVersion"
@@ -1910,353 +2193,639 @@
1910
2193
  "content": {
1911
2194
  "application/json": {
1912
2195
  "schema": {
1913
- "type": "object",
1914
- "properties": {
1915
- "figmaFileName": {
1916
- "type": "string",
1917
- "minLength": 1,
1918
- "maxLength": 255
1919
- },
1920
- "pageName": {
1921
- "type": "string",
1922
- "minLength": 1,
1923
- "maxLength": 255
1924
- },
1925
- "sourceLocale": {
1926
- "type": "string",
1927
- "minLength": 2,
1928
- "maxLength": 16
1929
- },
1930
- "units": {
1931
- "type": "array",
1932
- "items": {
1933
- "type": "object",
1934
- "properties": {
1935
- "nodeId": {
1936
- "type": "string",
1937
- "minLength": 1,
1938
- "maxLength": 255
1939
- },
1940
- "structuralPath": {
1941
- "type": "string",
1942
- "minLength": 1,
1943
- "maxLength": 1024
1944
- },
1945
- "value": {
1946
- "type": "string"
1947
- },
1948
- "displayPath": {
1949
- "type": "array",
1950
- "items": {
1951
- "type": "string"
1952
- },
1953
- "maxItems": 64
1954
- },
1955
- "layout": {
2196
+ "anyOf": [
2197
+ {
2198
+ "type": "object",
2199
+ "properties": {
2200
+ "fileName": {
2201
+ "type": "string",
2202
+ "minLength": 1,
2203
+ "maxLength": 255
2204
+ },
2205
+ "pageId": {
2206
+ "type": "string",
2207
+ "minLength": 1,
2208
+ "maxLength": 255
2209
+ },
2210
+ "pageName": {
2211
+ "type": "string",
2212
+ "minLength": 1,
2213
+ "maxLength": 255
2214
+ },
2215
+ "sourceLocale": {
2216
+ "type": "string",
2217
+ "minLength": 2,
2218
+ "maxLength": 16
2219
+ },
2220
+ "units": {
2221
+ "type": "array",
2222
+ "items": {
1956
2223
  "type": "object",
1957
2224
  "properties": {
1958
- "boxId": {
2225
+ "key": {
1959
2226
  "type": "string",
1960
2227
  "minLength": 1,
1961
2228
  "maxLength": 255
1962
2229
  },
1963
- "frameId": {
2230
+ "structuralPath": {
1964
2231
  "type": "string",
1965
2232
  "minLength": 1,
1966
- "maxLength": 255
2233
+ "maxLength": 1024
2234
+ },
2235
+ "value": {
2236
+ "type": "string"
2237
+ },
2238
+ "displayPath": {
2239
+ "type": "array",
2240
+ "items": {
2241
+ "type": "string"
2242
+ },
2243
+ "maxItems": 64
1967
2244
  },
1968
- "rect": {
2245
+ "layout": {
1969
2246
  "type": "object",
1970
2247
  "properties": {
1971
- "x": {
1972
- "type": "number"
2248
+ "boxId": {
2249
+ "type": "string",
2250
+ "minLength": 1,
2251
+ "maxLength": 255
1973
2252
  },
1974
- "y": {
1975
- "type": "number"
2253
+ "frameId": {
2254
+ "type": "string",
2255
+ "minLength": 1,
2256
+ "maxLength": 255
1976
2257
  },
1977
- "width": {
1978
- "type": "number"
2258
+ "rect": {
2259
+ "type": "object",
2260
+ "properties": {
2261
+ "x": {
2262
+ "type": "number"
2263
+ },
2264
+ "y": {
2265
+ "type": "number"
2266
+ },
2267
+ "width": {
2268
+ "type": "number"
2269
+ },
2270
+ "height": {
2271
+ "type": "number"
2272
+ }
2273
+ },
2274
+ "required": ["x", "y", "width", "height"],
2275
+ "additionalProperties": false
1979
2276
  },
1980
- "height": {
1981
- "type": "number"
1982
- }
1983
- },
1984
- "required": ["x", "y", "width", "height"],
1985
- "additionalProperties": false
1986
- },
1987
- "render": {
1988
- "type": "object",
1989
- "properties": {
1990
- "x": {
1991
- "type": "number"
2277
+ "render": {
2278
+ "type": "object",
2279
+ "properties": {
2280
+ "x": {
2281
+ "type": "number"
2282
+ },
2283
+ "y": {
2284
+ "type": "number"
2285
+ },
2286
+ "width": {
2287
+ "type": "number"
2288
+ },
2289
+ "height": {
2290
+ "type": "number"
2291
+ }
2292
+ },
2293
+ "required": ["x", "y", "width", "height"],
2294
+ "additionalProperties": false
1992
2295
  },
1993
- "y": {
1994
- "type": "number"
2296
+ "room": {
2297
+ "type": "object",
2298
+ "properties": {
2299
+ "left": {
2300
+ "type": "number",
2301
+ "minimum": 0
2302
+ },
2303
+ "right": {
2304
+ "type": "number",
2305
+ "minimum": 0
2306
+ },
2307
+ "up": {
2308
+ "type": "number",
2309
+ "minimum": 0
2310
+ },
2311
+ "down": {
2312
+ "type": "number",
2313
+ "minimum": 0
2314
+ }
2315
+ },
2316
+ "required": ["left", "right", "up", "down"],
2317
+ "additionalProperties": false
1995
2318
  },
1996
- "width": {
1997
- "type": "number"
2319
+ "autoResize": {
2320
+ "type": "string",
2321
+ "enum": [
2322
+ "NONE",
2323
+ "HEIGHT",
2324
+ "WIDTH_AND_HEIGHT",
2325
+ "TRUNCATE"
2326
+ ]
1998
2327
  },
1999
- "height": {
2000
- "type": "number"
2001
- }
2002
- },
2003
- "required": ["x", "y", "width", "height"],
2004
- "additionalProperties": false
2005
- },
2006
- "room": {
2007
- "type": "object",
2008
- "properties": {
2009
- "left": {
2010
- "type": "number",
2011
- "minimum": 0
2328
+ "textAlignHorizontal": {
2329
+ "type": "string",
2330
+ "enum": [
2331
+ "LEFT",
2332
+ "CENTER",
2333
+ "RIGHT",
2334
+ "JUSTIFIED"
2335
+ ]
2012
2336
  },
2013
- "right": {
2014
- "type": "number",
2015
- "minimum": 0
2337
+ "baseFontPt": {
2338
+ "type": "number"
2016
2339
  },
2017
- "up": {
2018
- "type": "number",
2019
- "minimum": 0
2340
+ "equivClass": {
2341
+ "type": "string",
2342
+ "maxLength": 255
2020
2343
  },
2021
- "down": {
2022
- "type": "number",
2023
- "minimum": 0
2344
+ "sizeRank": {
2345
+ "type": "number"
2024
2346
  }
2025
2347
  },
2026
- "required": ["left", "right", "up", "down"],
2348
+ "required": ["boxId"],
2027
2349
  "additionalProperties": false
2028
2350
  },
2029
- "autoResize": {
2030
- "type": "string",
2031
- "enum": [
2032
- "NONE",
2033
- "HEIGHT",
2034
- "WIDTH_AND_HEIGHT",
2035
- "TRUNCATE"
2036
- ]
2037
- },
2038
- "textAlignHorizontal": {
2039
- "type": "string",
2040
- "enum": ["LEFT", "CENTER", "RIGHT", "JUSTIFIED"]
2041
- },
2042
- "baseFontPt": {
2043
- "type": "number"
2044
- },
2045
- "equivClass": {
2046
- "type": "string",
2047
- "maxLength": 255
2048
- },
2049
- "sizeRank": {
2050
- "type": "number"
2051
- }
2052
- },
2053
- "required": ["boxId"],
2054
- "additionalProperties": false
2055
- },
2056
- "styleRuns": {
2057
- "type": "array",
2058
- "items": {
2059
- "type": "object",
2060
- "properties": {
2061
- "start": {
2062
- "type": "integer",
2063
- "minimum": 0
2064
- },
2065
- "end": {
2066
- "type": "integer",
2067
- "minimum": 0
2068
- },
2069
- "fontName": {
2351
+ "styleRuns": {
2352
+ "type": "array",
2353
+ "items": {
2070
2354
  "type": "object",
2071
2355
  "properties": {
2072
- "family": {
2073
- "type": "string"
2356
+ "start": {
2357
+ "type": "integer",
2358
+ "minimum": 0
2074
2359
  },
2075
- "style": {
2076
- "type": "string"
2077
- }
2078
- },
2079
- "required": ["family", "style"],
2080
- "additionalProperties": false
2081
- },
2082
- "fontSize": {
2083
- "type": "number"
2084
- },
2085
- "textDecoration": {
2086
- "type": "string"
2087
- },
2088
- "textCase": {
2089
- "type": "string"
2090
- },
2091
- "letterSpacing": {
2092
- "type": "object",
2093
- "properties": {
2094
- "value": {
2360
+ "end": {
2361
+ "type": "integer",
2362
+ "minimum": 0
2363
+ },
2364
+ "fontName": {
2365
+ "type": "object",
2366
+ "properties": {
2367
+ "family": {
2368
+ "type": "string"
2369
+ },
2370
+ "style": {
2371
+ "type": "string"
2372
+ }
2373
+ },
2374
+ "required": ["family", "style"],
2375
+ "additionalProperties": false
2376
+ },
2377
+ "fontSize": {
2095
2378
  "type": "number"
2096
2379
  },
2097
- "unit": {
2380
+ "textDecoration": {
2098
2381
  "type": "string"
2099
- }
2100
- },
2101
- "required": ["value", "unit"],
2102
- "additionalProperties": false
2103
- },
2104
- "lineHeight": {
2105
- "type": "object",
2106
- "properties": {
2107
- "value": {
2108
- "type": "number"
2109
2382
  },
2110
- "unit": {
2383
+ "textCase": {
2111
2384
  "type": "string"
2385
+ },
2386
+ "letterSpacing": {
2387
+ "type": "object",
2388
+ "properties": {
2389
+ "value": {
2390
+ "type": "number"
2391
+ },
2392
+ "unit": {
2393
+ "type": "string"
2394
+ }
2395
+ },
2396
+ "required": ["value", "unit"],
2397
+ "additionalProperties": false
2398
+ },
2399
+ "lineHeight": {
2400
+ "type": "object",
2401
+ "properties": {
2402
+ "value": {
2403
+ "type": "number"
2404
+ },
2405
+ "unit": {
2406
+ "type": "string"
2407
+ }
2408
+ },
2409
+ "required": ["unit"],
2410
+ "additionalProperties": false
2411
+ },
2412
+ "fills": {
2413
+ "type": "array",
2414
+ "items": {
2415
+ "type": "object",
2416
+ "additionalProperties": {}
2417
+ }
2418
+ },
2419
+ "hyperlink": {
2420
+ "type": ["object", "null"],
2421
+ "additionalProperties": {}
2112
2422
  }
2113
2423
  },
2114
- "required": ["unit"],
2424
+ "required": ["start", "end"],
2115
2425
  "additionalProperties": false
2116
2426
  },
2117
- "fills": {
2118
- "type": "array",
2119
- "items": {
2120
- "type": "object",
2121
- "additionalProperties": {}
2122
- }
2123
- },
2124
- "hyperlink": {
2125
- "type": ["object", "null"],
2126
- "additionalProperties": {}
2127
- }
2427
+ "maxItems": 512
2128
2428
  },
2129
- "required": ["start", "end"],
2130
- "additionalProperties": false
2429
+ "instanceTextOrigin": {
2430
+ "type": "string",
2431
+ "enum": ["inherited", "overridden"]
2432
+ }
2131
2433
  },
2132
- "maxItems": 512
2434
+ "required": [
2435
+ "key",
2436
+ "structuralPath",
2437
+ "value",
2438
+ "displayPath"
2439
+ ],
2440
+ "additionalProperties": false
2133
2441
  },
2134
- "instanceTextOrigin": {
2135
- "type": "string",
2136
- "enum": ["inherited", "overridden"]
2137
- }
2442
+ "maxItems": 20000
2138
2443
  },
2139
- "required": [
2140
- "nodeId",
2141
- "structuralPath",
2142
- "value",
2143
- "displayPath"
2144
- ],
2145
- "additionalProperties": false
2146
- },
2147
- "maxItems": 20000
2148
- },
2149
- "skipped": {
2150
- "type": "array",
2151
- "items": {
2152
- "type": "object",
2153
- "properties": {
2154
- "nodeId": {
2155
- "type": "string",
2156
- "minLength": 1,
2157
- "maxLength": 255
2158
- },
2159
- "structuralPath": {
2160
- "type": "string",
2161
- "minLength": 1,
2162
- "maxLength": 1024
2163
- },
2164
- "displayPath": {
2165
- "type": "array",
2166
- "items": {
2167
- "type": "string"
2444
+ "skipped": {
2445
+ "type": "array",
2446
+ "items": {
2447
+ "type": "object",
2448
+ "properties": {
2449
+ "key": {
2450
+ "type": "string",
2451
+ "minLength": 1,
2452
+ "maxLength": 255
2453
+ },
2454
+ "structuralPath": {
2455
+ "type": "string",
2456
+ "minLength": 1,
2457
+ "maxLength": 1024
2458
+ },
2459
+ "displayPath": {
2460
+ "type": "array",
2461
+ "items": {
2462
+ "type": "string"
2463
+ },
2464
+ "maxItems": 64
2465
+ },
2466
+ "reason": {
2467
+ "type": "string",
2468
+ "enum": [
2469
+ "not_text_node",
2470
+ "empty_text",
2471
+ "hidden_layer",
2472
+ "missing_characters",
2473
+ "in_component_master"
2474
+ ]
2475
+ },
2476
+ "details": {
2477
+ "type": "object",
2478
+ "additionalProperties": {
2479
+ "anyOf": [
2480
+ {
2481
+ "type": "string"
2482
+ },
2483
+ {
2484
+ "type": "number"
2485
+ },
2486
+ {
2487
+ "type": "boolean"
2488
+ },
2489
+ {
2490
+ "type": "null"
2491
+ }
2492
+ ]
2493
+ }
2494
+ }
2168
2495
  },
2169
- "maxItems": 64
2496
+ "required": [
2497
+ "key",
2498
+ "structuralPath",
2499
+ "displayPath",
2500
+ "reason"
2501
+ ],
2502
+ "additionalProperties": false
2170
2503
  },
2171
- "reason": {
2504
+ "maxItems": 20000
2505
+ },
2506
+ "allIds": {
2507
+ "type": "array",
2508
+ "items": {
2172
2509
  "type": "string",
2173
- "enum": [
2174
- "not_text_node",
2175
- "empty_text",
2176
- "hidden_layer",
2177
- "missing_characters",
2178
- "in_component_master"
2179
- ]
2510
+ "minLength": 1,
2511
+ "maxLength": 255
2180
2512
  },
2181
- "details": {
2513
+ "maxItems": 500
2514
+ }
2515
+ },
2516
+ "required": ["fileName", "pageId", "pageName", "units"],
2517
+ "additionalProperties": false
2518
+ },
2519
+ {
2520
+ "type": "object",
2521
+ "properties": {
2522
+ "projectStamp": {
2523
+ "type": "string",
2524
+ "minLength": 1,
2525
+ "maxLength": 255
2526
+ },
2527
+ "compId": {
2528
+ "type": "string",
2529
+ "minLength": 1,
2530
+ "maxLength": 255
2531
+ },
2532
+ "compName": {
2533
+ "type": "string",
2534
+ "minLength": 1,
2535
+ "maxLength": 255
2536
+ },
2537
+ "sourceLocale": {
2538
+ "type": "string",
2539
+ "minLength": 2,
2540
+ "maxLength": 16
2541
+ },
2542
+ "units": {
2543
+ "type": "array",
2544
+ "items": {
2182
2545
  "type": "object",
2183
- "additionalProperties": {
2184
- "anyOf": [
2185
- {
2546
+ "properties": {
2547
+ "key": {
2548
+ "type": "string",
2549
+ "minLength": 1,
2550
+ "maxLength": 255
2551
+ },
2552
+ "structuralPath": {
2553
+ "type": "string",
2554
+ "minLength": 1,
2555
+ "maxLength": 1024
2556
+ },
2557
+ "value": {
2558
+ "type": "string"
2559
+ },
2560
+ "displayPath": {
2561
+ "type": "array",
2562
+ "items": {
2186
2563
  "type": "string"
2187
2564
  },
2188
- {
2189
- "type": "number"
2565
+ "maxItems": 64
2566
+ },
2567
+ "styleRuns": {
2568
+ "type": "array",
2569
+ "items": {
2570
+ "type": "object",
2571
+ "properties": {
2572
+ "start": {
2573
+ "type": "integer",
2574
+ "minimum": 0
2575
+ },
2576
+ "end": {
2577
+ "type": "integer",
2578
+ "minimum": 0
2579
+ },
2580
+ "style": {
2581
+ "type": "object",
2582
+ "properties": {
2583
+ "font": {
2584
+ "type": "string",
2585
+ "maxLength": 255
2586
+ },
2587
+ "fontSize": {
2588
+ "type": "number"
2589
+ },
2590
+ "fillColor": {
2591
+ "type": "array",
2592
+ "prefixItems": [
2593
+ {
2594
+ "type": "number"
2595
+ },
2596
+ {
2597
+ "type": "number"
2598
+ },
2599
+ {
2600
+ "type": "number"
2601
+ }
2602
+ ]
2603
+ },
2604
+ "applyFill": {
2605
+ "type": "boolean"
2606
+ },
2607
+ "fauxBold": {
2608
+ "type": "boolean"
2609
+ },
2610
+ "fauxItalic": {
2611
+ "type": "boolean"
2612
+ },
2613
+ "tracking": {
2614
+ "type": "number"
2615
+ },
2616
+ "applyStroke": {
2617
+ "type": "boolean"
2618
+ },
2619
+ "strokeColor": {
2620
+ "type": "array",
2621
+ "prefixItems": [
2622
+ {
2623
+ "type": "number"
2624
+ },
2625
+ {
2626
+ "type": "number"
2627
+ },
2628
+ {
2629
+ "type": "number"
2630
+ }
2631
+ ]
2632
+ },
2633
+ "strokeWidth": {
2634
+ "type": "number"
2635
+ }
2636
+ },
2637
+ "additionalProperties": false
2638
+ }
2639
+ },
2640
+ "required": ["start", "end", "style"],
2641
+ "additionalProperties": false
2190
2642
  },
2191
- {
2192
- "type": "boolean"
2643
+ "maxItems": 512
2644
+ },
2645
+ "layout": {
2646
+ "type": "object",
2647
+ "properties": {
2648
+ "boxText": {
2649
+ "type": "boolean"
2650
+ },
2651
+ "boxSize": {
2652
+ "type": "array",
2653
+ "prefixItems": [
2654
+ {
2655
+ "type": "number",
2656
+ "minimum": 0
2657
+ },
2658
+ {
2659
+ "type": "number",
2660
+ "minimum": 0
2661
+ }
2662
+ ]
2663
+ },
2664
+ "fontSize": {
2665
+ "type": "number",
2666
+ "minimum": 0
2667
+ }
2668
+ },
2669
+ "required": ["boxText"],
2670
+ "additionalProperties": false
2671
+ }
2672
+ },
2673
+ "required": [
2674
+ "key",
2675
+ "structuralPath",
2676
+ "value",
2677
+ "displayPath"
2678
+ ],
2679
+ "additionalProperties": false
2680
+ },
2681
+ "maxItems": 20000
2682
+ },
2683
+ "skipped": {
2684
+ "type": "array",
2685
+ "items": {
2686
+ "type": "object",
2687
+ "properties": {
2688
+ "key": {
2689
+ "type": "string",
2690
+ "minLength": 1,
2691
+ "maxLength": 255
2692
+ },
2693
+ "structuralPath": {
2694
+ "type": "string",
2695
+ "minLength": 1,
2696
+ "maxLength": 1024
2697
+ },
2698
+ "displayPath": {
2699
+ "type": "array",
2700
+ "items": {
2701
+ "type": "string"
2193
2702
  },
2194
- {
2195
- "type": "null"
2703
+ "maxItems": 64
2704
+ },
2705
+ "reason": {
2706
+ "type": "string",
2707
+ "enum": [
2708
+ "not_text_layer",
2709
+ "empty_text",
2710
+ "expression_driven",
2711
+ "essential_graphics"
2712
+ ]
2713
+ },
2714
+ "details": {
2715
+ "type": "object",
2716
+ "additionalProperties": {
2717
+ "anyOf": [
2718
+ {
2719
+ "type": "string"
2720
+ },
2721
+ {
2722
+ "type": "number"
2723
+ },
2724
+ {
2725
+ "type": "boolean"
2726
+ },
2727
+ {
2728
+ "type": "null"
2729
+ }
2730
+ ]
2196
2731
  }
2197
- ]
2198
- }
2199
- }
2732
+ }
2733
+ },
2734
+ "required": [
2735
+ "key",
2736
+ "structuralPath",
2737
+ "displayPath",
2738
+ "reason"
2739
+ ],
2740
+ "additionalProperties": false
2741
+ },
2742
+ "maxItems": 20000
2200
2743
  },
2201
- "required": [
2202
- "nodeId",
2203
- "structuralPath",
2204
- "displayPath",
2205
- "reason"
2206
- ],
2207
- "additionalProperties": false
2208
- },
2209
- "maxItems": 20000
2210
- },
2211
- "allPageNames": {
2212
- "type": "array",
2213
- "items": {
2214
- "type": "string",
2215
- "minLength": 1,
2216
- "maxLength": 255
2744
+ "allIds": {
2745
+ "type": "array",
2746
+ "items": {
2747
+ "type": "string",
2748
+ "minLength": 1,
2749
+ "maxLength": 255
2750
+ },
2751
+ "maxItems": 500
2752
+ }
2217
2753
  },
2218
- "maxItems": 500
2754
+ "required": ["projectStamp", "compId", "compName", "units"],
2755
+ "additionalProperties": false
2219
2756
  }
2220
- },
2221
- "required": ["figmaFileName", "pageName", "units"],
2222
- "additionalProperties": false
2757
+ ]
2223
2758
  }
2224
2759
  }
2225
2760
  }
2226
2761
  },
2227
2762
  "responses": {
2228
2763
  "200": {
2229
- "description": "Figma plugin result",
2764
+ "description": "Plugin command result",
2230
2765
  "content": {
2231
2766
  "application/json": {
2232
2767
  "schema": {
2233
- "type": "object",
2234
- "properties": {
2235
- "fileId": {
2236
- "type": "string"
2237
- },
2238
- "versionId": {
2239
- "type": "string"
2240
- },
2241
- "sourceLocale": {
2242
- "type": "string"
2243
- },
2244
- "unitCount": {
2245
- "type": "number"
2246
- },
2247
- "skippedCount": {
2248
- "type": "number"
2768
+ "anyOf": [
2769
+ {
2770
+ "type": "object",
2771
+ "properties": {
2772
+ "fileId": {
2773
+ "type": "string"
2774
+ },
2775
+ "versionId": {
2776
+ "type": "string"
2777
+ },
2778
+ "sourceLocale": {
2779
+ "type": "string"
2780
+ },
2781
+ "unitCount": {
2782
+ "type": "number"
2783
+ },
2784
+ "skippedCount": {
2785
+ "type": "number"
2786
+ },
2787
+ "movedFrom": {
2788
+ "type": "string"
2789
+ }
2790
+ },
2791
+ "required": [
2792
+ "fileId",
2793
+ "versionId",
2794
+ "sourceLocale",
2795
+ "unitCount",
2796
+ "skippedCount"
2797
+ ]
2249
2798
  },
2250
- "movedFrom": {
2251
- "type": "string"
2799
+ {
2800
+ "type": "object",
2801
+ "properties": {
2802
+ "fileId": {
2803
+ "type": "string"
2804
+ },
2805
+ "versionId": {
2806
+ "type": "string"
2807
+ },
2808
+ "sourceLocale": {
2809
+ "type": "string"
2810
+ },
2811
+ "unitCount": {
2812
+ "type": "number"
2813
+ },
2814
+ "skippedCount": {
2815
+ "type": "number"
2816
+ },
2817
+ "movedFrom": {
2818
+ "type": "string"
2819
+ }
2820
+ },
2821
+ "required": [
2822
+ "fileId",
2823
+ "versionId",
2824
+ "sourceLocale",
2825
+ "unitCount",
2826
+ "skippedCount"
2827
+ ]
2252
2828
  }
2253
- },
2254
- "required": [
2255
- "fileId",
2256
- "versionId",
2257
- "sourceLocale",
2258
- "unitCount",
2259
- "skippedCount"
2260
2829
  ]
2261
2830
  }
2262
2831
  }
@@ -2400,12 +2969,12 @@
2400
2969
  }
2401
2970
  }
2402
2971
  },
2403
- "/v1/integrations/figma-plugin/import-translations": {
2972
+ "/v1/integrations/plugins/{provider}/import-translations": {
2404
2973
  "post": {
2405
- "operationId": "figmaPluginImportTranslations",
2974
+ "operationId": "pluginImportTranslations",
2406
2975
  "x-internal": true,
2407
- "summary": "Figma plugin import-translations",
2408
- "description": "Run the Figma plugin import-translations command.",
2976
+ "summary": "Plugin import-translations",
2977
+ "description": "Run the import-translations command for a design-tool plugin.",
2409
2978
  "tags": ["Integrations"],
2410
2979
  "security": [
2411
2980
  {
@@ -2416,6 +2985,15 @@
2416
2985
  }
2417
2986
  ],
2418
2987
  "parameters": [
2988
+ {
2989
+ "schema": {
2990
+ "type": "string",
2991
+ "enum": ["figma", "after-effects"]
2992
+ },
2993
+ "required": true,
2994
+ "name": "provider",
2995
+ "in": "path"
2996
+ },
2419
2997
  {
2420
2998
  "schema": {
2421
2999
  "$ref": "#/components/schemas/ApiVersion"
@@ -2441,73 +3019,266 @@
2441
3019
  "content": {
2442
3020
  "application/json": {
2443
3021
  "schema": {
2444
- "type": "object",
2445
- "properties": {
2446
- "figmaFileName": {
2447
- "type": "string",
2448
- "minLength": 1,
2449
- "maxLength": 255
2450
- },
2451
- "pageName": {
2452
- "type": "string",
2453
- "minLength": 1,
2454
- "maxLength": 255
2455
- },
2456
- "locale": {
2457
- "type": "string",
2458
- "minLength": 2,
2459
- "maxLength": 16
2460
- },
2461
- "versionId": {
2462
- "type": "string",
2463
- "minLength": 1,
2464
- "maxLength": 255
3022
+ "anyOf": [
3023
+ {
3024
+ "type": "object",
3025
+ "properties": {
3026
+ "fileName": {
3027
+ "type": "string",
3028
+ "minLength": 1,
3029
+ "maxLength": 255
3030
+ },
3031
+ "pageId": {
3032
+ "type": "string",
3033
+ "minLength": 1,
3034
+ "maxLength": 255
3035
+ },
3036
+ "locale": {
3037
+ "type": "string",
3038
+ "minLength": 2,
3039
+ "maxLength": 16
3040
+ },
3041
+ "versionId": {
3042
+ "type": "string",
3043
+ "minLength": 1,
3044
+ "maxLength": 255
3045
+ },
3046
+ "translations": {
3047
+ "type": "object",
3048
+ "additionalProperties": {
3049
+ "type": "string"
3050
+ }
3051
+ }
3052
+ },
3053
+ "required": [
3054
+ "fileName",
3055
+ "pageId",
3056
+ "locale",
3057
+ "versionId",
3058
+ "translations"
3059
+ ],
3060
+ "additionalProperties": false
2465
3061
  },
2466
- "translations": {
3062
+ {
2467
3063
  "type": "object",
2468
- "additionalProperties": {
2469
- "type": "string"
2470
- }
3064
+ "properties": {
3065
+ "projectStamp": {
3066
+ "type": "string",
3067
+ "minLength": 1,
3068
+ "maxLength": 255
3069
+ },
3070
+ "compId": {
3071
+ "type": "string",
3072
+ "minLength": 1,
3073
+ "maxLength": 255
3074
+ },
3075
+ "locale": {
3076
+ "type": "string",
3077
+ "minLength": 2,
3078
+ "maxLength": 16
3079
+ },
3080
+ "versionId": {
3081
+ "type": "string",
3082
+ "minLength": 1,
3083
+ "maxLength": 255
3084
+ },
3085
+ "translations": {
3086
+ "type": "object",
3087
+ "additionalProperties": {
3088
+ "type": "object",
3089
+ "properties": {
3090
+ "text": {
3091
+ "type": "string"
3092
+ },
3093
+ "styleRuns": {
3094
+ "type": "array",
3095
+ "items": {
3096
+ "type": "object",
3097
+ "properties": {
3098
+ "start": {
3099
+ "type": "integer",
3100
+ "minimum": 0
3101
+ },
3102
+ "end": {
3103
+ "type": "integer",
3104
+ "minimum": 0
3105
+ },
3106
+ "style": {
3107
+ "type": "object",
3108
+ "properties": {
3109
+ "font": {
3110
+ "type": "string",
3111
+ "maxLength": 255
3112
+ },
3113
+ "fontSize": {
3114
+ "type": "number"
3115
+ },
3116
+ "fillColor": {
3117
+ "type": "array",
3118
+ "prefixItems": [
3119
+ {
3120
+ "type": "number"
3121
+ },
3122
+ {
3123
+ "type": "number"
3124
+ },
3125
+ {
3126
+ "type": "number"
3127
+ }
3128
+ ]
3129
+ },
3130
+ "applyFill": {
3131
+ "type": "boolean"
3132
+ },
3133
+ "fauxBold": {
3134
+ "type": "boolean"
3135
+ },
3136
+ "fauxItalic": {
3137
+ "type": "boolean"
3138
+ },
3139
+ "tracking": {
3140
+ "type": "number"
3141
+ },
3142
+ "applyStroke": {
3143
+ "type": "boolean"
3144
+ },
3145
+ "strokeColor": {
3146
+ "type": "array",
3147
+ "prefixItems": [
3148
+ {
3149
+ "type": "number"
3150
+ },
3151
+ {
3152
+ "type": "number"
3153
+ },
3154
+ {
3155
+ "type": "number"
3156
+ }
3157
+ ]
3158
+ },
3159
+ "strokeWidth": {
3160
+ "type": "number"
3161
+ }
3162
+ },
3163
+ "additionalProperties": false
3164
+ }
3165
+ },
3166
+ "required": ["start", "end", "style"],
3167
+ "additionalProperties": false
3168
+ },
3169
+ "maxItems": 512
3170
+ }
3171
+ },
3172
+ "required": ["text"],
3173
+ "additionalProperties": false
3174
+ }
3175
+ }
3176
+ },
3177
+ "required": [
3178
+ "projectStamp",
3179
+ "compId",
3180
+ "locale",
3181
+ "versionId",
3182
+ "translations"
3183
+ ],
3184
+ "additionalProperties": false
2471
3185
  }
2472
- },
2473
- "required": [
2474
- "figmaFileName",
2475
- "pageName",
2476
- "locale",
2477
- "versionId",
2478
- "translations"
2479
- ],
2480
- "additionalProperties": false
3186
+ ]
2481
3187
  }
2482
3188
  }
2483
3189
  }
2484
3190
  },
2485
3191
  "responses": {
2486
3192
  "200": {
2487
- "description": "Figma plugin result",
3193
+ "description": "Plugin command result",
2488
3194
  "content": {
2489
3195
  "application/json": {
2490
3196
  "schema": {
2491
- "type": "object",
2492
- "properties": {
2493
- "saved": {
2494
- "type": "boolean"
2495
- },
2496
- "versionId": {
2497
- "type": "string"
2498
- },
2499
- "importedCount": {
2500
- "type": "number"
3197
+ "anyOf": [
3198
+ {
3199
+ "type": "object",
3200
+ "properties": {
3201
+ "saved": {
3202
+ "type": "boolean"
3203
+ },
3204
+ "versionId": {
3205
+ "type": "string"
3206
+ },
3207
+ "importedCount": {
3208
+ "type": "number"
3209
+ },
3210
+ "unmatchedCount": {
3211
+ "type": "number"
3212
+ },
3213
+ "warnings": {
3214
+ "type": "array",
3215
+ "items": {
3216
+ "type": "object",
3217
+ "properties": {
3218
+ "key": {
3219
+ "type": "string"
3220
+ },
3221
+ "reason": {
3222
+ "type": "string"
3223
+ },
3224
+ "detail": {
3225
+ "type": "string"
3226
+ }
3227
+ },
3228
+ "required": ["key", "reason"]
3229
+ }
3230
+ }
3231
+ },
3232
+ "required": [
3233
+ "saved",
3234
+ "versionId",
3235
+ "importedCount",
3236
+ "unmatchedCount",
3237
+ "warnings"
3238
+ ]
2501
3239
  },
2502
- "unmatchedCount": {
2503
- "type": "number"
3240
+ {
3241
+ "type": "object",
3242
+ "properties": {
3243
+ "saved": {
3244
+ "type": "boolean"
3245
+ },
3246
+ "versionId": {
3247
+ "type": "string"
3248
+ },
3249
+ "importedCount": {
3250
+ "type": "number"
3251
+ },
3252
+ "unmatchedCount": {
3253
+ "type": "number"
3254
+ },
3255
+ "warnings": {
3256
+ "type": "array",
3257
+ "items": {
3258
+ "type": "object",
3259
+ "properties": {
3260
+ "key": {
3261
+ "type": "string"
3262
+ },
3263
+ "reason": {
3264
+ "type": "string"
3265
+ },
3266
+ "detail": {
3267
+ "type": "string"
3268
+ }
3269
+ },
3270
+ "required": ["key", "reason"]
3271
+ }
3272
+ }
3273
+ },
3274
+ "required": [
3275
+ "saved",
3276
+ "versionId",
3277
+ "importedCount",
3278
+ "unmatchedCount",
3279
+ "warnings"
3280
+ ]
2504
3281
  }
2505
- },
2506
- "required": [
2507
- "saved",
2508
- "versionId",
2509
- "importedCount",
2510
- "unmatchedCount"
2511
3282
  ]
2512
3283
  }
2513
3284
  }
@@ -2651,12 +3422,12 @@
2651
3422
  }
2652
3423
  }
2653
3424
  },
2654
- "/v1/integrations/figma-plugin/enqueue": {
3425
+ "/v1/integrations/plugins/{provider}/enqueue": {
2655
3426
  "post": {
2656
- "operationId": "figmaPluginEnqueue",
3427
+ "operationId": "pluginEnqueue",
2657
3428
  "x-internal": true,
2658
- "summary": "Figma plugin enqueue",
2659
- "description": "Run the Figma plugin enqueue command.",
3429
+ "summary": "Plugin enqueue",
3430
+ "description": "Run the enqueue command for a design-tool plugin.",
2660
3431
  "tags": ["Integrations"],
2661
3432
  "security": [
2662
3433
  {
@@ -2667,6 +3438,15 @@
2667
3438
  }
2668
3439
  ],
2669
3440
  "parameters": [
3441
+ {
3442
+ "schema": {
3443
+ "type": "string",
3444
+ "enum": ["figma", "after-effects"]
3445
+ },
3446
+ "required": true,
3447
+ "name": "provider",
3448
+ "in": "path"
3449
+ },
2670
3450
  {
2671
3451
  "schema": {
2672
3452
  "$ref": "#/components/schemas/ApiVersion"
@@ -2692,72 +3472,141 @@
2692
3472
  "content": {
2693
3473
  "application/json": {
2694
3474
  "schema": {
2695
- "type": "object",
2696
- "properties": {
2697
- "figmaFileName": {
2698
- "type": "string",
2699
- "minLength": 1,
2700
- "maxLength": 255
2701
- },
2702
- "pageName": {
2703
- "type": "string",
2704
- "minLength": 1,
2705
- "maxLength": 255
2706
- },
2707
- "targetLocales": {
2708
- "type": "array",
2709
- "items": {
2710
- "type": "string",
2711
- "minLength": 2,
2712
- "maxLength": 16
3475
+ "anyOf": [
3476
+ {
3477
+ "type": "object",
3478
+ "properties": {
3479
+ "fileName": {
3480
+ "type": "string",
3481
+ "minLength": 1,
3482
+ "maxLength": 255
3483
+ },
3484
+ "pageId": {
3485
+ "type": "string",
3486
+ "minLength": 1,
3487
+ "maxLength": 255
3488
+ },
3489
+ "targetLocales": {
3490
+ "type": "array",
3491
+ "items": {
3492
+ "type": "string",
3493
+ "minLength": 2,
3494
+ "maxLength": 16
3495
+ },
3496
+ "minItems": 1,
3497
+ "maxItems": 64
3498
+ },
3499
+ "sourceLocale": {
3500
+ "type": "string",
3501
+ "minLength": 2,
3502
+ "maxLength": 16
3503
+ },
3504
+ "force": {
3505
+ "type": "boolean"
3506
+ }
2713
3507
  },
2714
- "minItems": 1,
2715
- "maxItems": 64
2716
- },
2717
- "sourceLocale": {
2718
- "type": "string",
2719
- "minLength": 2,
2720
- "maxLength": 16
3508
+ "required": ["fileName", "pageId", "targetLocales"],
3509
+ "additionalProperties": false
2721
3510
  },
2722
- "force": {
2723
- "type": "boolean"
3511
+ {
3512
+ "type": "object",
3513
+ "properties": {
3514
+ "projectStamp": {
3515
+ "type": "string",
3516
+ "minLength": 1,
3517
+ "maxLength": 255
3518
+ },
3519
+ "compId": {
3520
+ "type": "string",
3521
+ "minLength": 1,
3522
+ "maxLength": 255
3523
+ },
3524
+ "targetLocales": {
3525
+ "type": "array",
3526
+ "items": {
3527
+ "type": "string",
3528
+ "minLength": 2,
3529
+ "maxLength": 16
3530
+ },
3531
+ "minItems": 1,
3532
+ "maxItems": 64
3533
+ },
3534
+ "sourceLocale": {
3535
+ "type": "string",
3536
+ "minLength": 2,
3537
+ "maxLength": 16
3538
+ },
3539
+ "force": {
3540
+ "type": "boolean"
3541
+ }
3542
+ },
3543
+ "required": ["projectStamp", "compId", "targetLocales"],
3544
+ "additionalProperties": false
2724
3545
  }
2725
- },
2726
- "required": ["figmaFileName", "pageName", "targetLocales"],
2727
- "additionalProperties": false
3546
+ ]
2728
3547
  }
2729
3548
  }
2730
3549
  }
2731
3550
  },
2732
3551
  "responses": {
2733
3552
  "200": {
2734
- "description": "Figma plugin result",
3553
+ "description": "Plugin command result",
2735
3554
  "content": {
2736
3555
  "application/json": {
2737
3556
  "schema": {
2738
- "type": "object",
2739
- "properties": {
2740
- "accepted": {
2741
- "type": "boolean"
2742
- },
2743
- "sourceLocale": {
2744
- "type": "string"
2745
- },
2746
- "targetLocales": {
2747
- "type": "array",
2748
- "items": {
2749
- "type": "string"
2750
- }
3557
+ "anyOf": [
3558
+ {
3559
+ "type": "object",
3560
+ "properties": {
3561
+ "accepted": {
3562
+ "type": "boolean"
3563
+ },
3564
+ "sourceLocale": {
3565
+ "type": "string"
3566
+ },
3567
+ "targetLocales": {
3568
+ "type": "array",
3569
+ "items": {
3570
+ "type": "string"
3571
+ }
3572
+ },
3573
+ "versionId": {
3574
+ "type": "string"
3575
+ }
3576
+ },
3577
+ "required": [
3578
+ "accepted",
3579
+ "sourceLocale",
3580
+ "targetLocales",
3581
+ "versionId"
3582
+ ]
2751
3583
  },
2752
- "versionId": {
2753
- "type": "string"
3584
+ {
3585
+ "type": "object",
3586
+ "properties": {
3587
+ "accepted": {
3588
+ "type": "boolean"
3589
+ },
3590
+ "sourceLocale": {
3591
+ "type": "string"
3592
+ },
3593
+ "targetLocales": {
3594
+ "type": "array",
3595
+ "items": {
3596
+ "type": "string"
3597
+ }
3598
+ },
3599
+ "versionId": {
3600
+ "type": "string"
3601
+ }
3602
+ },
3603
+ "required": [
3604
+ "accepted",
3605
+ "sourceLocale",
3606
+ "targetLocales",
3607
+ "versionId"
3608
+ ]
2754
3609
  }
2755
- },
2756
- "required": [
2757
- "accepted",
2758
- "sourceLocale",
2759
- "targetLocales",
2760
- "versionId"
2761
3610
  ]
2762
3611
  }
2763
3612
  }
@@ -2901,12 +3750,12 @@
2901
3750
  }
2902
3751
  }
2903
3752
  },
2904
- "/v1/integrations/figma-plugin/status": {
3753
+ "/v1/integrations/plugins/{provider}/status": {
2905
3754
  "post": {
2906
- "operationId": "figmaPluginStatus",
3755
+ "operationId": "pluginStatus",
2907
3756
  "x-internal": true,
2908
- "summary": "Figma plugin status",
2909
- "description": "Run the Figma plugin status command.",
3757
+ "summary": "Plugin status",
3758
+ "description": "Run the status command for a design-tool plugin.",
2910
3759
  "tags": ["Integrations"],
2911
3760
  "security": [
2912
3761
  {
@@ -2917,6 +3766,15 @@
2917
3766
  }
2918
3767
  ],
2919
3768
  "parameters": [
3769
+ {
3770
+ "schema": {
3771
+ "type": "string",
3772
+ "enum": ["figma", "after-effects"]
3773
+ },
3774
+ "required": true,
3775
+ "name": "provider",
3776
+ "in": "path"
3777
+ },
2920
3778
  {
2921
3779
  "schema": {
2922
3780
  "$ref": "#/components/schemas/ApiVersion"
@@ -2942,68 +3800,140 @@
2942
3800
  "content": {
2943
3801
  "application/json": {
2944
3802
  "schema": {
2945
- "type": "object",
2946
- "properties": {
2947
- "figmaFileName": {
2948
- "type": "string",
2949
- "minLength": 1,
2950
- "maxLength": 255
2951
- },
2952
- "pageName": {
2953
- "type": "string",
2954
- "minLength": 1,
2955
- "maxLength": 255
3803
+ "anyOf": [
3804
+ {
3805
+ "type": "object",
3806
+ "properties": {
3807
+ "fileName": {
3808
+ "type": "string",
3809
+ "minLength": 1,
3810
+ "maxLength": 255
3811
+ },
3812
+ "pageId": {
3813
+ "type": "string",
3814
+ "minLength": 1,
3815
+ "maxLength": 255
3816
+ }
3817
+ },
3818
+ "required": ["fileName", "pageId"],
3819
+ "additionalProperties": false
3820
+ },
3821
+ {
3822
+ "type": "object",
3823
+ "properties": {
3824
+ "projectStamp": {
3825
+ "type": "string",
3826
+ "minLength": 1,
3827
+ "maxLength": 255
3828
+ },
3829
+ "compId": {
3830
+ "type": "string",
3831
+ "minLength": 1,
3832
+ "maxLength": 255
3833
+ }
3834
+ },
3835
+ "required": ["projectStamp", "compId"],
3836
+ "additionalProperties": false
2956
3837
  }
2957
- },
2958
- "required": ["figmaFileName", "pageName"],
2959
- "additionalProperties": false
3838
+ ]
2960
3839
  }
2961
3840
  }
2962
3841
  }
2963
3842
  },
2964
3843
  "responses": {
2965
3844
  "200": {
2966
- "description": "Figma plugin result",
3845
+ "description": "Plugin command result",
2967
3846
  "content": {
2968
3847
  "application/json": {
2969
3848
  "schema": {
2970
- "type": "object",
2971
- "properties": {
2972
- "versionId": {
2973
- "type": "string"
2974
- },
2975
- "locales": {
2976
- "type": "array",
2977
- "items": {
2978
- "type": "object",
2979
- "properties": {
2980
- "locale": {
3849
+ "anyOf": [
3850
+ {
3851
+ "type": "object",
3852
+ "properties": {
3853
+ "versionId": {
3854
+ "type": "string"
3855
+ },
3856
+ "locales": {
3857
+ "type": "array",
3858
+ "items": {
2981
3859
  "type": "object",
2982
3860
  "properties": {
2983
- "code": {
2984
- "type": "string"
3861
+ "locale": {
3862
+ "type": "object",
3863
+ "properties": {
3864
+ "code": {
3865
+ "type": "string"
3866
+ },
3867
+ "name": {
3868
+ "type": "string"
3869
+ },
3870
+ "emoji": {
3871
+ "type": "string"
3872
+ }
3873
+ },
3874
+ "required": ["code", "name", "emoji"]
2985
3875
  },
2986
- "name": {
2987
- "type": "string"
3876
+ "translationProgress": {
3877
+ "type": ["number", "null"]
2988
3878
  },
2989
- "emoji": {
2990
- "type": "string"
3879
+ "done": {
3880
+ "type": "boolean"
2991
3881
  }
2992
3882
  },
2993
- "required": ["code", "name", "emoji"]
2994
- },
2995
- "translationProgress": {
2996
- "type": ["number", "null"]
2997
- },
2998
- "done": {
2999
- "type": "boolean"
3883
+ "required": [
3884
+ "locale",
3885
+ "translationProgress",
3886
+ "done"
3887
+ ]
3000
3888
  }
3889
+ }
3890
+ },
3891
+ "required": ["versionId", "locales"]
3892
+ },
3893
+ {
3894
+ "type": "object",
3895
+ "properties": {
3896
+ "versionId": {
3897
+ "type": "string"
3001
3898
  },
3002
- "required": ["locale", "translationProgress", "done"]
3003
- }
3899
+ "locales": {
3900
+ "type": "array",
3901
+ "items": {
3902
+ "type": "object",
3903
+ "properties": {
3904
+ "locale": {
3905
+ "type": "object",
3906
+ "properties": {
3907
+ "code": {
3908
+ "type": "string"
3909
+ },
3910
+ "name": {
3911
+ "type": "string"
3912
+ },
3913
+ "emoji": {
3914
+ "type": "string"
3915
+ }
3916
+ },
3917
+ "required": ["code", "name", "emoji"]
3918
+ },
3919
+ "translationProgress": {
3920
+ "type": ["number", "null"]
3921
+ },
3922
+ "done": {
3923
+ "type": "boolean"
3924
+ }
3925
+ },
3926
+ "required": [
3927
+ "locale",
3928
+ "translationProgress",
3929
+ "done"
3930
+ ]
3931
+ }
3932
+ }
3933
+ },
3934
+ "required": ["versionId", "locales"]
3004
3935
  }
3005
- },
3006
- "required": ["versionId", "locales"]
3936
+ ]
3007
3937
  }
3008
3938
  }
3009
3939
  }
@@ -3146,12 +4076,12 @@
3146
4076
  }
3147
4077
  }
3148
4078
  },
3149
- "/v1/integrations/figma-plugin/download": {
4079
+ "/v1/integrations/plugins/{provider}/download": {
3150
4080
  "post": {
3151
- "operationId": "figmaPluginDownload",
4081
+ "operationId": "pluginDownload",
3152
4082
  "x-internal": true,
3153
- "summary": "Figma plugin download",
3154
- "description": "Run the Figma plugin download command.",
4083
+ "summary": "Plugin download",
4084
+ "description": "Run the download command for a design-tool plugin.",
3155
4085
  "tags": ["Integrations"],
3156
4086
  "security": [
3157
4087
  {
@@ -3162,6 +4092,15 @@
3162
4092
  }
3163
4093
  ],
3164
4094
  "parameters": [
4095
+ {
4096
+ "schema": {
4097
+ "type": "string",
4098
+ "enum": ["figma", "after-effects"]
4099
+ },
4100
+ "required": true,
4101
+ "name": "provider",
4102
+ "in": "path"
4103
+ },
3165
4104
  {
3166
4105
  "schema": {
3167
4106
  "$ref": "#/components/schemas/ApiVersion"
@@ -3187,125 +4126,361 @@
3187
4126
  "content": {
3188
4127
  "application/json": {
3189
4128
  "schema": {
3190
- "type": "object",
3191
- "properties": {
3192
- "figmaFileName": {
3193
- "type": "string",
3194
- "minLength": 1,
3195
- "maxLength": 255
3196
- },
3197
- "pageName": {
3198
- "type": "string",
3199
- "minLength": 1,
3200
- "maxLength": 255
4129
+ "anyOf": [
4130
+ {
4131
+ "type": "object",
4132
+ "properties": {
4133
+ "fileName": {
4134
+ "type": "string",
4135
+ "minLength": 1,
4136
+ "maxLength": 255
4137
+ },
4138
+ "pageId": {
4139
+ "type": "string",
4140
+ "minLength": 1,
4141
+ "maxLength": 255
4142
+ },
4143
+ "locale": {
4144
+ "type": "string",
4145
+ "minLength": 2,
4146
+ "maxLength": 16
4147
+ }
4148
+ },
4149
+ "required": ["fileName", "pageId", "locale"],
4150
+ "additionalProperties": false
3201
4151
  },
3202
- "locale": {
3203
- "type": "string",
3204
- "minLength": 2,
3205
- "maxLength": 16
4152
+ {
4153
+ "type": "object",
4154
+ "properties": {
4155
+ "projectStamp": {
4156
+ "type": "string",
4157
+ "minLength": 1,
4158
+ "maxLength": 255
4159
+ },
4160
+ "compId": {
4161
+ "type": "string",
4162
+ "minLength": 1,
4163
+ "maxLength": 255
4164
+ },
4165
+ "locale": {
4166
+ "type": "string",
4167
+ "minLength": 2,
4168
+ "maxLength": 16
4169
+ }
4170
+ },
4171
+ "required": ["projectStamp", "compId", "locale"],
4172
+ "additionalProperties": false
3206
4173
  }
3207
- },
3208
- "required": ["figmaFileName", "pageName", "locale"],
3209
- "additionalProperties": false
4174
+ ]
3210
4175
  }
3211
4176
  }
3212
4177
  }
3213
4178
  },
3214
4179
  "responses": {
3215
4180
  "200": {
3216
- "description": "Figma plugin result",
4181
+ "description": "Plugin command result",
3217
4182
  "content": {
3218
4183
  "application/json": {
3219
4184
  "schema": {
3220
- "type": "object",
3221
- "properties": {
3222
- "versionId": {
3223
- "type": "string"
3224
- },
3225
- "locale": {
3226
- "type": "string"
4185
+ "anyOf": [
4186
+ {
4187
+ "type": "object",
4188
+ "properties": {
4189
+ "versionId": {
4190
+ "type": "string"
4191
+ },
4192
+ "locale": {
4193
+ "type": "string"
4194
+ },
4195
+ "translations": {
4196
+ "type": "object",
4197
+ "additionalProperties": {
4198
+ "type": "string"
4199
+ }
4200
+ },
4201
+ "warnings": {
4202
+ "type": "array",
4203
+ "items": {
4204
+ "type": "object",
4205
+ "properties": {
4206
+ "key": {
4207
+ "type": "string"
4208
+ },
4209
+ "reason": {
4210
+ "type": "string"
4211
+ },
4212
+ "detail": {
4213
+ "type": "string"
4214
+ }
4215
+ },
4216
+ "required": ["key", "reason"]
4217
+ }
4218
+ }
4219
+ },
4220
+ "required": [
4221
+ "versionId",
4222
+ "locale",
4223
+ "translations",
4224
+ "warnings"
4225
+ ]
3227
4226
  },
3228
- "translations": {
4227
+ {
3229
4228
  "type": "object",
3230
- "additionalProperties": {
3231
- "type": "string"
3232
- }
3233
- }
3234
- },
3235
- "required": ["versionId", "locale", "translations"]
3236
- }
3237
- }
3238
- }
3239
- },
3240
- "400": {
3241
- "description": "Request error",
3242
- "content": {
3243
- "application/json": {
3244
- "schema": {
3245
- "$ref": "#/components/schemas/ErrorResponse"
3246
- }
3247
- },
3248
- "text/html": {
3249
- "schema": {
3250
- "type": "string"
3251
- }
3252
- }
3253
- }
3254
- },
3255
- "401": {
3256
- "description": "Request error",
3257
- "content": {
3258
- "application/json": {
3259
- "schema": {
3260
- "$ref": "#/components/schemas/ErrorResponse"
3261
- }
3262
- },
3263
- "text/html": {
3264
- "schema": {
3265
- "type": "string"
3266
- }
3267
- }
3268
- }
3269
- },
3270
- "403": {
3271
- "description": "Request error",
3272
- "content": {
3273
- "application/json": {
3274
- "schema": {
3275
- "$ref": "#/components/schemas/ErrorResponse"
3276
- }
3277
- },
3278
- "text/html": {
3279
- "schema": {
3280
- "type": "string"
3281
- }
3282
- }
3283
- }
3284
- },
3285
- "404": {
3286
- "description": "Request error",
3287
- "content": {
3288
- "application/json": {
3289
- "schema": {
3290
- "$ref": "#/components/schemas/ErrorResponse"
3291
- }
3292
- },
3293
- "text/html": {
3294
- "schema": {
3295
- "type": "string"
3296
- }
3297
- }
3298
- }
3299
- },
3300
- "409": {
3301
- "description": "Request error",
3302
- "content": {
3303
- "application/json": {
3304
- "schema": {
3305
- "$ref": "#/components/schemas/ErrorResponse"
3306
- }
3307
- },
3308
- "text/html": {
4229
+ "properties": {
4230
+ "versionId": {
4231
+ "type": "string"
4232
+ },
4233
+ "locale": {
4234
+ "type": "string"
4235
+ },
4236
+ "translations": {
4237
+ "type": "object",
4238
+ "additionalProperties": {
4239
+ "type": "object",
4240
+ "properties": {
4241
+ "text": {
4242
+ "type": "string"
4243
+ },
4244
+ "baseStyle": {
4245
+ "type": "object",
4246
+ "properties": {
4247
+ "font": {
4248
+ "type": "string",
4249
+ "maxLength": 255
4250
+ },
4251
+ "fontSize": {
4252
+ "type": "number"
4253
+ },
4254
+ "fillColor": {
4255
+ "type": "array",
4256
+ "prefixItems": [
4257
+ {
4258
+ "type": "number"
4259
+ },
4260
+ {
4261
+ "type": "number"
4262
+ },
4263
+ {
4264
+ "type": "number"
4265
+ }
4266
+ ]
4267
+ },
4268
+ "applyFill": {
4269
+ "type": "boolean"
4270
+ },
4271
+ "fauxBold": {
4272
+ "type": "boolean"
4273
+ },
4274
+ "fauxItalic": {
4275
+ "type": "boolean"
4276
+ },
4277
+ "tracking": {
4278
+ "type": "number"
4279
+ },
4280
+ "applyStroke": {
4281
+ "type": "boolean"
4282
+ },
4283
+ "strokeColor": {
4284
+ "type": "array",
4285
+ "prefixItems": [
4286
+ {
4287
+ "type": "number"
4288
+ },
4289
+ {
4290
+ "type": "number"
4291
+ },
4292
+ {
4293
+ "type": "number"
4294
+ }
4295
+ ]
4296
+ },
4297
+ "strokeWidth": {
4298
+ "type": "number"
4299
+ }
4300
+ },
4301
+ "additionalProperties": false
4302
+ },
4303
+ "styleRuns": {
4304
+ "type": "array",
4305
+ "items": {
4306
+ "type": "object",
4307
+ "properties": {
4308
+ "start": {
4309
+ "type": "integer",
4310
+ "minimum": 0
4311
+ },
4312
+ "end": {
4313
+ "type": "integer",
4314
+ "minimum": 0
4315
+ },
4316
+ "style": {
4317
+ "type": "object",
4318
+ "properties": {
4319
+ "font": {
4320
+ "type": "string",
4321
+ "maxLength": 255
4322
+ },
4323
+ "fontSize": {
4324
+ "type": "number"
4325
+ },
4326
+ "fillColor": {
4327
+ "type": "array",
4328
+ "prefixItems": [
4329
+ {
4330
+ "type": "number"
4331
+ },
4332
+ {
4333
+ "type": "number"
4334
+ },
4335
+ {
4336
+ "type": "number"
4337
+ }
4338
+ ]
4339
+ },
4340
+ "applyFill": {
4341
+ "type": "boolean"
4342
+ },
4343
+ "fauxBold": {
4344
+ "type": "boolean"
4345
+ },
4346
+ "fauxItalic": {
4347
+ "type": "boolean"
4348
+ },
4349
+ "tracking": {
4350
+ "type": "number"
4351
+ },
4352
+ "applyStroke": {
4353
+ "type": "boolean"
4354
+ },
4355
+ "strokeColor": {
4356
+ "type": "array",
4357
+ "prefixItems": [
4358
+ {
4359
+ "type": "number"
4360
+ },
4361
+ {
4362
+ "type": "number"
4363
+ },
4364
+ {
4365
+ "type": "number"
4366
+ }
4367
+ ]
4368
+ },
4369
+ "strokeWidth": {
4370
+ "type": "number"
4371
+ }
4372
+ },
4373
+ "additionalProperties": false
4374
+ }
4375
+ },
4376
+ "required": ["start", "end", "style"],
4377
+ "additionalProperties": false
4378
+ }
4379
+ }
4380
+ },
4381
+ "required": ["text", "styleRuns"]
4382
+ }
4383
+ },
4384
+ "warnings": {
4385
+ "type": "array",
4386
+ "items": {
4387
+ "type": "object",
4388
+ "properties": {
4389
+ "key": {
4390
+ "type": "string"
4391
+ },
4392
+ "reason": {
4393
+ "type": "string"
4394
+ },
4395
+ "detail": {
4396
+ "type": "string"
4397
+ }
4398
+ },
4399
+ "required": ["key", "reason"]
4400
+ }
4401
+ }
4402
+ },
4403
+ "required": [
4404
+ "versionId",
4405
+ "locale",
4406
+ "translations",
4407
+ "warnings"
4408
+ ]
4409
+ }
4410
+ ]
4411
+ }
4412
+ }
4413
+ }
4414
+ },
4415
+ "400": {
4416
+ "description": "Request error",
4417
+ "content": {
4418
+ "application/json": {
4419
+ "schema": {
4420
+ "$ref": "#/components/schemas/ErrorResponse"
4421
+ }
4422
+ },
4423
+ "text/html": {
4424
+ "schema": {
4425
+ "type": "string"
4426
+ }
4427
+ }
4428
+ }
4429
+ },
4430
+ "401": {
4431
+ "description": "Request error",
4432
+ "content": {
4433
+ "application/json": {
4434
+ "schema": {
4435
+ "$ref": "#/components/schemas/ErrorResponse"
4436
+ }
4437
+ },
4438
+ "text/html": {
4439
+ "schema": {
4440
+ "type": "string"
4441
+ }
4442
+ }
4443
+ }
4444
+ },
4445
+ "403": {
4446
+ "description": "Request error",
4447
+ "content": {
4448
+ "application/json": {
4449
+ "schema": {
4450
+ "$ref": "#/components/schemas/ErrorResponse"
4451
+ }
4452
+ },
4453
+ "text/html": {
4454
+ "schema": {
4455
+ "type": "string"
4456
+ }
4457
+ }
4458
+ }
4459
+ },
4460
+ "404": {
4461
+ "description": "Request error",
4462
+ "content": {
4463
+ "application/json": {
4464
+ "schema": {
4465
+ "$ref": "#/components/schemas/ErrorResponse"
4466
+ }
4467
+ },
4468
+ "text/html": {
4469
+ "schema": {
4470
+ "type": "string"
4471
+ }
4472
+ }
4473
+ }
4474
+ },
4475
+ "409": {
4476
+ "description": "Request error",
4477
+ "content": {
4478
+ "application/json": {
4479
+ "schema": {
4480
+ "$ref": "#/components/schemas/ErrorResponse"
4481
+ }
4482
+ },
4483
+ "text/html": {
3309
4484
  "schema": {
3310
4485
  "type": "string"
3311
4486
  }
@@ -8130,7 +9305,280 @@
8130
9305
  }
8131
9306
  }
8132
9307
  },
8133
- "400": {
9308
+ "400": {
9309
+ "description": "Request error",
9310
+ "content": {
9311
+ "application/json": {
9312
+ "schema": {
9313
+ "$ref": "#/components/schemas/ErrorResponse"
9314
+ }
9315
+ },
9316
+ "text/html": {
9317
+ "schema": {
9318
+ "type": "string"
9319
+ }
9320
+ }
9321
+ }
9322
+ },
9323
+ "401": {
9324
+ "description": "Request error",
9325
+ "content": {
9326
+ "application/json": {
9327
+ "schema": {
9328
+ "$ref": "#/components/schemas/ErrorResponse"
9329
+ }
9330
+ },
9331
+ "text/html": {
9332
+ "schema": {
9333
+ "type": "string"
9334
+ }
9335
+ }
9336
+ }
9337
+ },
9338
+ "403": {
9339
+ "description": "Request error",
9340
+ "content": {
9341
+ "application/json": {
9342
+ "schema": {
9343
+ "$ref": "#/components/schemas/ErrorResponse"
9344
+ }
9345
+ },
9346
+ "text/html": {
9347
+ "schema": {
9348
+ "type": "string"
9349
+ }
9350
+ }
9351
+ }
9352
+ },
9353
+ "404": {
9354
+ "description": "Request error",
9355
+ "content": {
9356
+ "application/json": {
9357
+ "schema": {
9358
+ "$ref": "#/components/schemas/ErrorResponse"
9359
+ }
9360
+ },
9361
+ "text/html": {
9362
+ "schema": {
9363
+ "type": "string"
9364
+ }
9365
+ }
9366
+ }
9367
+ },
9368
+ "413": {
9369
+ "description": "Request error",
9370
+ "content": {
9371
+ "application/json": {
9372
+ "schema": {
9373
+ "$ref": "#/components/schemas/ErrorResponse"
9374
+ }
9375
+ },
9376
+ "text/html": {
9377
+ "schema": {
9378
+ "type": "string"
9379
+ }
9380
+ }
9381
+ }
9382
+ },
9383
+ "429": {
9384
+ "description": "Request error",
9385
+ "content": {
9386
+ "application/json": {
9387
+ "schema": {
9388
+ "$ref": "#/components/schemas/ErrorResponse"
9389
+ }
9390
+ },
9391
+ "text/html": {
9392
+ "schema": {
9393
+ "type": "string"
9394
+ }
9395
+ }
9396
+ }
9397
+ },
9398
+ "500": {
9399
+ "description": "Request error",
9400
+ "content": {
9401
+ "application/json": {
9402
+ "schema": {
9403
+ "$ref": "#/components/schemas/ErrorResponse"
9404
+ }
9405
+ },
9406
+ "text/html": {
9407
+ "schema": {
9408
+ "type": "string"
9409
+ }
9410
+ }
9411
+ }
9412
+ },
9413
+ "503": {
9414
+ "description": "Request error",
9415
+ "content": {
9416
+ "application/json": {
9417
+ "schema": {
9418
+ "$ref": "#/components/schemas/ErrorResponse"
9419
+ }
9420
+ },
9421
+ "text/html": {
9422
+ "schema": {
9423
+ "type": "string"
9424
+ }
9425
+ }
9426
+ }
9427
+ }
9428
+ },
9429
+ "tags": ["Files"]
9430
+ }
9431
+ },
9432
+ "/v2/projects/{projectId}/api-keys": {
9433
+ "post": {
9434
+ "operationId": "createProjectApiKey",
9435
+ "summary": "Create a Project API Key",
9436
+ "description": "Create an API key for the selected Project. Requires project:api_keys:write. Select permissions to limit the key, or omit them to delegate all grantable Project permissions held by the request identity. Unavailable selections are rejected.",
9437
+ "security": [
9438
+ {
9439
+ "BearerAuth": []
9440
+ },
9441
+ {
9442
+ "UserBearerAuth": []
9443
+ }
9444
+ ],
9445
+ "parameters": [
9446
+ {
9447
+ "schema": {
9448
+ "type": "string",
9449
+ "minLength": 1
9450
+ },
9451
+ "required": true,
9452
+ "name": "projectId",
9453
+ "in": "path"
9454
+ },
9455
+ {
9456
+ "schema": {
9457
+ "$ref": "#/components/schemas/ApiVersion"
9458
+ },
9459
+ "required": false,
9460
+ "description": "API contract version. Defaults to the oldest supported version.",
9461
+ "name": "gt-api-version",
9462
+ "in": "header"
9463
+ }
9464
+ ],
9465
+ "requestBody": {
9466
+ "required": true,
9467
+ "content": {
9468
+ "application/json": {
9469
+ "schema": {
9470
+ "type": "object",
9471
+ "properties": {
9472
+ "name": {
9473
+ "type": "string",
9474
+ "minLength": 1,
9475
+ "maxLength": 255
9476
+ },
9477
+ "permissions": {
9478
+ "type": "array",
9479
+ "items": {
9480
+ "$ref": "#/components/schemas/ProjectApiKeyPermission"
9481
+ },
9482
+ "minItems": 1,
9483
+ "description": "Project permissions to grant. Omit to grant all delegable project permissions held by the caller. Every selected permission must be held by the caller; duplicates are ignored."
9484
+ },
9485
+ "type": {
9486
+ "type": "string",
9487
+ "enum": ["production", "development"],
9488
+ "deprecated": true,
9489
+ "description": "Ignored. All new keys are project-scoped API keys for any environment."
9490
+ }
9491
+ },
9492
+ "required": ["name"],
9493
+ "additionalProperties": false
9494
+ }
9495
+ }
9496
+ }
9497
+ },
9498
+ "responses": {
9499
+ "201": {
9500
+ "description": "Project API key created",
9501
+ "content": {
9502
+ "application/json": {
9503
+ "schema": {
9504
+ "type": "object",
9505
+ "properties": {
9506
+ "apiKey": {
9507
+ "type": "object",
9508
+ "properties": {
9509
+ "id": {
9510
+ "type": "string"
9511
+ },
9512
+ "name": {
9513
+ "type": "string"
9514
+ },
9515
+ "key": {
9516
+ "type": "string"
9517
+ },
9518
+ "projectId": {
9519
+ "type": "string"
9520
+ },
9521
+ "type": {
9522
+ "type": "string",
9523
+ "enum": ["production"],
9524
+ "deprecated": true,
9525
+ "description": "Compatibility field. All project API keys work in any environment."
9526
+ }
9527
+ },
9528
+ "required": ["id", "name", "key", "projectId", "type"]
9529
+ }
9530
+ },
9531
+ "required": ["apiKey"]
9532
+ }
9533
+ }
9534
+ }
9535
+ },
9536
+ "400": {
9537
+ "description": "Request error",
9538
+ "content": {
9539
+ "application/json": {
9540
+ "schema": {
9541
+ "$ref": "#/components/schemas/ErrorResponse"
9542
+ }
9543
+ },
9544
+ "text/html": {
9545
+ "schema": {
9546
+ "type": "string"
9547
+ }
9548
+ }
9549
+ }
9550
+ },
9551
+ "401": {
9552
+ "description": "Request error",
9553
+ "content": {
9554
+ "application/json": {
9555
+ "schema": {
9556
+ "$ref": "#/components/schemas/ErrorResponse"
9557
+ }
9558
+ },
9559
+ "text/html": {
9560
+ "schema": {
9561
+ "type": "string"
9562
+ }
9563
+ }
9564
+ }
9565
+ },
9566
+ "403": {
9567
+ "description": "Request error",
9568
+ "content": {
9569
+ "application/json": {
9570
+ "schema": {
9571
+ "$ref": "#/components/schemas/ErrorResponse"
9572
+ }
9573
+ },
9574
+ "text/html": {
9575
+ "schema": {
9576
+ "type": "string"
9577
+ }
9578
+ }
9579
+ }
9580
+ },
9581
+ "404": {
8134
9582
  "description": "Request error",
8135
9583
  "content": {
8136
9584
  "application/json": {
@@ -8145,7 +9593,7 @@
8145
9593
  }
8146
9594
  }
8147
9595
  },
8148
- "401": {
9596
+ "413": {
8149
9597
  "description": "Request error",
8150
9598
  "content": {
8151
9599
  "application/json": {
@@ -8160,7 +9608,7 @@
8160
9608
  }
8161
9609
  }
8162
9610
  },
8163
- "403": {
9611
+ "429": {
8164
9612
  "description": "Request error",
8165
9613
  "content": {
8166
9614
  "application/json": {
@@ -8175,7 +9623,7 @@
8175
9623
  }
8176
9624
  }
8177
9625
  },
8178
- "404": {
9626
+ "500": {
8179
9627
  "description": "Request error",
8180
9628
  "content": {
8181
9629
  "application/json": {
@@ -8189,8 +9637,94 @@
8189
9637
  }
8190
9638
  }
8191
9639
  }
9640
+ }
9641
+ },
9642
+ "tags": ["Project"]
9643
+ }
9644
+ },
9645
+ "/v2/projects": {
9646
+ "get": {
9647
+ "operationId": "listProjects",
9648
+ "summary": "List Projects",
9649
+ "description": "List Projects the request identity can read, ordered by ID. Requires project:files:read. Pass nextCursor as cursor to fetch the next page.",
9650
+ "security": [
9651
+ {
9652
+ "BearerAuth": []
8192
9653
  },
8193
- "413": {
9654
+ {
9655
+ "UserBearerAuth": []
9656
+ }
9657
+ ],
9658
+ "parameters": [
9659
+ {
9660
+ "schema": {
9661
+ "type": "string",
9662
+ "minLength": 1
9663
+ },
9664
+ "required": false,
9665
+ "name": "cursor",
9666
+ "in": "query"
9667
+ },
9668
+ {
9669
+ "schema": {
9670
+ "type": "integer",
9671
+ "minimum": 1,
9672
+ "maximum": 100,
9673
+ "default": 50
9674
+ },
9675
+ "required": false,
9676
+ "name": "limit",
9677
+ "in": "query"
9678
+ },
9679
+ {
9680
+ "schema": {
9681
+ "$ref": "#/components/schemas/ApiVersion"
9682
+ },
9683
+ "required": false,
9684
+ "description": "API contract version. Defaults to the oldest supported version.",
9685
+ "name": "gt-api-version",
9686
+ "in": "header"
9687
+ }
9688
+ ],
9689
+ "responses": {
9690
+ "200": {
9691
+ "description": "Page of Projects",
9692
+ "content": {
9693
+ "application/json": {
9694
+ "schema": {
9695
+ "type": "object",
9696
+ "properties": {
9697
+ "projects": {
9698
+ "type": "array",
9699
+ "items": {
9700
+ "type": "object",
9701
+ "properties": {
9702
+ "id": {
9703
+ "type": "string"
9704
+ },
9705
+ "name": {
9706
+ "type": "string"
9707
+ },
9708
+ "orgId": {
9709
+ "type": "string"
9710
+ },
9711
+ "orgName": {
9712
+ "type": "string"
9713
+ }
9714
+ },
9715
+ "required": ["id", "name", "orgId", "orgName"]
9716
+ }
9717
+ },
9718
+ "nextCursor": {
9719
+ "type": ["string", "null"]
9720
+ }
9721
+ },
9722
+ "required": ["projects", "nextCursor"]
9723
+ }
9724
+ }
9725
+ }
9726
+ },
9727
+ "400": {
8194
9728
  "description": "Request error",
8195
9729
  "content": {
8196
9730
  "application/json": {
@@ -8205,7 +9739,7 @@
8205
9739
  }
8206
9740
  }
8207
9741
  },
8208
- "429": {
9742
+ "401": {
8209
9743
  "description": "Request error",
8210
9744
  "content": {
8211
9745
  "application/json": {
@@ -8220,7 +9754,7 @@
8220
9754
  }
8221
9755
  }
8222
9756
  },
8223
- "500": {
9757
+ "403": {
8224
9758
  "description": "Request error",
8225
9759
  "content": {
8226
9760
  "application/json": {
@@ -8235,7 +9769,22 @@
8235
9769
  }
8236
9770
  }
8237
9771
  },
8238
- "503": {
9772
+ "429": {
9773
+ "description": "Request error",
9774
+ "content": {
9775
+ "application/json": {
9776
+ "schema": {
9777
+ "$ref": "#/components/schemas/ErrorResponse"
9778
+ }
9779
+ },
9780
+ "text/html": {
9781
+ "schema": {
9782
+ "type": "string"
9783
+ }
9784
+ }
9785
+ }
9786
+ },
9787
+ "500": {
8239
9788
  "description": "Request error",
8240
9789
  "content": {
8241
9790
  "application/json": {
@@ -8251,14 +9800,14 @@
8251
9800
  }
8252
9801
  }
8253
9802
  },
8254
- "tags": ["Files"]
9803
+ "tags": ["Project"]
8255
9804
  }
8256
9805
  },
8257
- "/v2/projects/{projectId}/api-keys": {
9806
+ "/v2/orgs/{orgId}/projects": {
8258
9807
  "post": {
8259
- "operationId": "createProjectApiKey",
8260
- "summary": "Create a Project API Key",
8261
- "description": "Create an API key for the selected Project. Requires project:api_keys:write and delegates only Project permissions held by the request identity.",
9808
+ "operationId": "createProject",
9809
+ "summary": "Create a Project",
9810
+ "description": "Create a Project in the Organization selected by the orgId path parameter, optionally enabling CDN delivery. Requires org:projects:create.",
8262
9811
  "security": [
8263
9812
  {
8264
9813
  "BearerAuth": []
@@ -8274,7 +9823,7 @@
8274
9823
  "minLength": 1
8275
9824
  },
8276
9825
  "required": true,
8277
- "name": "projectId",
9826
+ "name": "orgId",
8278
9827
  "in": "path"
8279
9828
  },
8280
9829
  {
@@ -8295,18 +9844,16 @@
8295
9844
  "type": "object",
8296
9845
  "properties": {
8297
9846
  "name": {
8298
- "type": "string",
8299
- "minLength": 1,
8300
- "maxLength": 255
9847
+ "type": "string"
8301
9848
  },
8302
- "type": {
8303
- "type": "string",
8304
- "enum": ["production", "development"],
8305
- "deprecated": true,
8306
- "description": "Ignored. All new keys are project-scoped API keys for any environment."
9849
+ "defaultLocale": {
9850
+ "type": "string"
9851
+ },
9852
+ "cdnEnabled": {
9853
+ "type": "boolean"
8307
9854
  }
8308
9855
  },
8309
- "required": ["name"],
9856
+ "required": ["name", "defaultLocale"],
8310
9857
  "additionalProperties": false
8311
9858
  }
8312
9859
  }
@@ -8314,13 +9861,13 @@
8314
9861
  },
8315
9862
  "responses": {
8316
9863
  "201": {
8317
- "description": "Project API key created",
9864
+ "description": "Project created",
8318
9865
  "content": {
8319
9866
  "application/json": {
8320
9867
  "schema": {
8321
9868
  "type": "object",
8322
9869
  "properties": {
8323
- "apiKey": {
9870
+ "project": {
8324
9871
  "type": "object",
8325
9872
  "properties": {
8326
9873
  "id": {
@@ -8329,23 +9876,17 @@
8329
9876
  "name": {
8330
9877
  "type": "string"
8331
9878
  },
8332
- "key": {
9879
+ "orgId": {
8333
9880
  "type": "string"
8334
9881
  },
8335
- "projectId": {
9882
+ "defaultLocale": {
8336
9883
  "type": "string"
8337
- },
8338
- "type": {
8339
- "type": "string",
8340
- "enum": ["production"],
8341
- "deprecated": true,
8342
- "description": "Compatibility field. All project API keys work in any environment."
8343
9884
  }
8344
9885
  },
8345
- "required": ["id", "name", "key", "projectId", "type"]
9886
+ "required": ["id", "name", "orgId", "defaultLocale"]
8346
9887
  }
8347
9888
  },
8348
- "required": ["apiKey"]
9889
+ "required": ["project"]
8349
9890
  }
8350
9891
  }
8351
9892
  }
@@ -8395,7 +9936,7 @@
8395
9936
  }
8396
9937
  }
8397
9938
  },
8398
- "404": {
9939
+ "409": {
8399
9940
  "description": "Request error",
8400
9941
  "content": {
8401
9942
  "application/json": {
@@ -8459,15 +10000,12 @@
8459
10000
  "tags": ["Project"]
8460
10001
  }
8461
10002
  },
8462
- "/v2/orgs/{orgId}/projects": {
8463
- "post": {
8464
- "operationId": "createProject",
8465
- "summary": "Create a Project",
8466
- "description": "Create a Project in the Organization selected by the orgId path parameter, optionally enabling CDN delivery. Requires org:projects:create.",
10003
+ "/v2/orgs": {
10004
+ "get": {
10005
+ "operationId": "listOrgs",
10006
+ "summary": "List Organizations",
10007
+ "description": "List Organizations where the signed-in user can create Projects, ordered by ID. Accepts user tokens only and requires org:projects:create. Pass nextCursor as cursor to fetch the next page.",
8467
10008
  "security": [
8468
- {
8469
- "BearerAuth": []
8470
- },
8471
10009
  {
8472
10010
  "UserBearerAuth": []
8473
10011
  }
@@ -8478,9 +10016,20 @@
8478
10016
  "type": "string",
8479
10017
  "minLength": 1
8480
10018
  },
8481
- "required": true,
8482
- "name": "orgId",
8483
- "in": "path"
10019
+ "required": false,
10020
+ "name": "cursor",
10021
+ "in": "query"
10022
+ },
10023
+ {
10024
+ "schema": {
10025
+ "type": "integer",
10026
+ "minimum": 1,
10027
+ "maximum": 100,
10028
+ "default": 50
10029
+ },
10030
+ "required": false,
10031
+ "name": "limit",
10032
+ "in": "query"
8484
10033
  },
8485
10034
  {
8486
10035
  "schema": {
@@ -8492,57 +10041,34 @@
8492
10041
  "in": "header"
8493
10042
  }
8494
10043
  ],
8495
- "requestBody": {
8496
- "required": true,
8497
- "content": {
8498
- "application/json": {
8499
- "schema": {
8500
- "type": "object",
8501
- "properties": {
8502
- "name": {
8503
- "type": "string"
8504
- },
8505
- "defaultLocale": {
8506
- "type": "string"
8507
- },
8508
- "cdnEnabled": {
8509
- "type": "boolean"
8510
- }
8511
- },
8512
- "required": ["name", "defaultLocale"],
8513
- "additionalProperties": false
8514
- }
8515
- }
8516
- }
8517
- },
8518
10044
  "responses": {
8519
- "201": {
8520
- "description": "Project created",
10045
+ "200": {
10046
+ "description": "Page of Organizations",
8521
10047
  "content": {
8522
10048
  "application/json": {
8523
10049
  "schema": {
8524
10050
  "type": "object",
8525
10051
  "properties": {
8526
- "project": {
8527
- "type": "object",
8528
- "properties": {
8529
- "id": {
8530
- "type": "string"
8531
- },
8532
- "name": {
8533
- "type": "string"
8534
- },
8535
- "orgId": {
8536
- "type": "string"
10052
+ "orgs": {
10053
+ "type": "array",
10054
+ "items": {
10055
+ "type": "object",
10056
+ "properties": {
10057
+ "id": {
10058
+ "type": "string"
10059
+ },
10060
+ "name": {
10061
+ "type": "string"
10062
+ }
8537
10063
  },
8538
- "defaultLocale": {
8539
- "type": "string"
8540
- }
8541
- },
8542
- "required": ["id", "name", "orgId", "defaultLocale"]
10064
+ "required": ["id", "name"]
10065
+ }
10066
+ },
10067
+ "nextCursor": {
10068
+ "type": ["string", "null"]
8543
10069
  }
8544
10070
  },
8545
- "required": ["project"]
10071
+ "required": ["orgs", "nextCursor"]
8546
10072
  }
8547
10073
  }
8548
10074
  }
@@ -8592,36 +10118,6 @@
8592
10118
  }
8593
10119
  }
8594
10120
  },
8595
- "409": {
8596
- "description": "Request error",
8597
- "content": {
8598
- "application/json": {
8599
- "schema": {
8600
- "$ref": "#/components/schemas/ErrorResponse"
8601
- }
8602
- },
8603
- "text/html": {
8604
- "schema": {
8605
- "type": "string"
8606
- }
8607
- }
8608
- }
8609
- },
8610
- "413": {
8611
- "description": "Request error",
8612
- "content": {
8613
- "application/json": {
8614
- "schema": {
8615
- "$ref": "#/components/schemas/ErrorResponse"
8616
- }
8617
- },
8618
- "text/html": {
8619
- "schema": {
8620
- "type": "string"
8621
- }
8622
- }
8623
- }
8624
- },
8625
10121
  "429": {
8626
10122
  "description": "Request error",
8627
10123
  "content": {
@@ -8660,6 +10156,7 @@
8660
10156
  "post": {
8661
10157
  "operationId": "createCliWizardSession",
8662
10158
  "x-internal": true,
10159
+ "deprecated": true,
8663
10160
  "summary": "Create a CLI wizard session",
8664
10161
  "description": "Create a temporary session for CLI browser authentication.",
8665
10162
  "tags": ["CLI Wizard"],
@@ -8762,6 +10259,7 @@
8762
10259
  "get": {
8763
10260
  "operationId": "getCliWizardSession",
8764
10261
  "x-internal": true,
10262
+ "deprecated": true,
8765
10263
  "summary": "Get a CLI wizard session",
8766
10264
  "description": "Get credentials for a completed CLI wizard session or its current waiting status.",
8767
10265
  "tags": ["CLI Wizard"],
@@ -8886,6 +10384,7 @@
8886
10384
  "delete": {
8887
10385
  "operationId": "deleteCliWizardSession",
8888
10386
  "x-internal": true,
10387
+ "deprecated": true,
8889
10388
  "summary": "Delete a CLI wizard session",
8890
10389
  "description": "Delete a completed or abandoned CLI wizard session.",
8891
10390
  "tags": ["CLI Wizard"],