@lessly/sdk-app 50.0.0 → 51.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/analytics/index.d.cts +1 -1
  2. package/dist/analytics/index.d.ts +1 -1
  3. package/dist/brain/index.cjs +0 -5
  4. package/dist/brain/index.cjs.map +1 -1
  5. package/dist/brain/index.d.cts +2 -6
  6. package/dist/brain/index.d.ts +2 -6
  7. package/dist/brain/index.js +1 -5
  8. package/dist/brain/index.js.map +1 -1
  9. package/dist/chunk-5IRH5DIK.js +8710 -0
  10. package/dist/chunk-5IRH5DIK.js.map +1 -0
  11. package/dist/{client.gen-Dw0AIIZi.d.cts → client.gen-Boew7CkH.d.cts} +4824 -363
  12. package/dist/{client.gen-Dw0AIIZi.d.ts → client.gen-Boew7CkH.d.ts} +4824 -363
  13. package/dist/consent/index.d.cts +1 -1
  14. package/dist/consent/index.d.ts +1 -1
  15. package/dist/content/index.cjs +161 -0
  16. package/dist/content/index.cjs.map +1 -0
  17. package/dist/content/index.d.cts +128 -0
  18. package/dist/content/index.d.ts +128 -0
  19. package/dist/content/index.js +129 -0
  20. package/dist/content/index.js.map +1 -0
  21. package/dist/deployment/index.cjs +15 -5
  22. package/dist/deployment/index.cjs.map +1 -1
  23. package/dist/deployment/index.d.cts +14 -6
  24. package/dist/deployment/index.d.ts +14 -6
  25. package/dist/deployment/index.js +13 -5
  26. package/dist/deployment/index.js.map +1 -1
  27. package/dist/index.cjs +780 -98
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.cts +4 -83
  30. package/dist/index.d.ts +4 -83
  31. package/dist/index.js +2 -8016
  32. package/dist/index.js.map +1 -1
  33. package/dist/mail/index.d.cts +2 -2
  34. package/dist/mail/index.d.ts +2 -2
  35. package/dist/observe/index.d.cts +1 -1
  36. package/dist/observe/index.d.ts +1 -1
  37. package/dist/organization/index.d.cts +1 -1
  38. package/dist/organization/index.d.ts +1 -1
  39. package/dist/playground/index.cjs +81 -0
  40. package/dist/playground/index.cjs.map +1 -0
  41. package/dist/playground/index.d.cts +55 -0
  42. package/dist/playground/index.d.ts +55 -0
  43. package/dist/playground/index.js +58 -0
  44. package/dist/playground/index.js.map +1 -0
  45. package/dist/realtime/index.d.cts +1 -1
  46. package/dist/realtime/index.d.ts +1 -1
  47. package/dist/support/index.d.cts +1 -1
  48. package/dist/support/index.d.ts +1 -1
  49. package/dist/tracking/index.d.cts +1 -1
  50. package/dist/tracking/index.d.ts +1 -1
  51. package/dist/types-gTIUAUsP.d.cts +82 -0
  52. package/dist/types-gTIUAUsP.d.ts +82 -0
  53. package/dist/users/index.d.cts +1 -1
  54. package/dist/users/index.d.ts +1 -1
  55. package/dist/waitlist/index.d.cts +1 -1
  56. package/dist/waitlist/index.d.ts +1 -1
  57. package/package.json +12 -2
  58. package/src/gen/bindings.gen.ts +789 -99
  59. package/src/gen/brain/index.ts +1 -1
  60. package/src/gen/brain/queryOptions.gen.ts +0 -7
  61. package/src/gen/client.gen.ts +180 -10
  62. package/src/gen/content/index.ts +3 -0
  63. package/src/gen/content/queryOptions.gen.ts +202 -0
  64. package/src/gen/deployment/index.ts +1 -1
  65. package/src/gen/deployment/queryOptions.gen.ts +20 -7
  66. package/src/gen/manifest.gen.ts +1 -1
  67. package/src/gen/playground/connect.gen.ts +9 -0
  68. package/src/gen/playground/index.ts +4 -0
  69. package/src/gen/playground/queryOptions.gen.ts +86 -0
  70. package/src/gen/types.gen.ts +4403 -154
@@ -1028,98 +1028,6 @@ snapshotId: string
1028
1028
  preRestoreSnapshotId: (string | null)
1029
1029
  } | null)
1030
1030
 
1031
- export interface BrainUsageReportInput {
1032
- /**
1033
- * How many UTC days of this product's ledger to return, ending today (default 30, max 90)
1034
- */
1035
- days?: number
1036
- }
1037
-
1038
- export interface BrainUsageReportOutput {
1039
- note: string
1040
- /**
1041
- * Brain's own ledger, for THIS product only
1042
- */
1043
- product: {
1044
- /**
1045
- * Inclusive UTC end of the window (today), YYYY-MM-DD
1046
- */
1047
- to: string
1048
- /**
1049
- * The window actually used, after clamping
1050
- */
1051
- days: number
1052
- /**
1053
- * Inclusive UTC start of the window, YYYY-MM-DD
1054
- */
1055
- from: string
1056
- rows: {
1057
- /**
1058
- * 'sync' | 'batch'; '' when the push carried none
1059
- */
1060
- mode: string
1061
- /**
1062
- * Manifest meter slug, e.g. llm-tokens
1063
- */
1064
- meter: string
1065
- /**
1066
- * Model dimension; '' when the push carried none
1067
- */
1068
- model: string
1069
- /**
1070
- * How many record() calls landed in this slice
1071
- */
1072
- events: number
1073
- /**
1074
- * Tokens we metered for this slice, delivered or not
1075
- */
1076
- tokens: number
1077
- /**
1078
- * Purpose dimension; '' when the push carried none
1079
- */
1080
- purpose: string
1081
- /**
1082
- * UTC calendar day, YYYY-MM-DD
1083
- */
1084
- usage_date: string
1085
- /**
1086
- * Of those events, how many billing did not accept
1087
- */
1088
- delivery_failed: number
1089
- }[]
1090
- /**
1091
- * The rows rolled up per meter across the whole window
1092
- */
1093
- totals: {
1094
- meter: string
1095
- events: number
1096
- tokens: number
1097
- delivery_failed: number
1098
- }[]
1099
- product_id: string
1100
- }
1101
- /**
1102
- * The platform billing aggregate for the whole ORG; null if it could not be read
1103
- */
1104
- platform: ({
1105
- plan: string
1106
- scope: "org"
1107
- meters: {
1108
- unit?: string
1109
- used?: number
1110
- limit?: (number | null)
1111
- remaining?: (number | null)
1112
- unlimited?: boolean
1113
- meter_slug: string
1114
- }[]
1115
- org_id: string
1116
- } | null)
1117
- /**
1118
- * Why the platform aggregate is null; null when it was read successfully
1119
- */
1120
- platform_error: (string | null)
1121
- }
1122
-
1123
1031
  export interface ConsentConfigCookieDomainUpsertInput {
1124
1032
  cookieDomain: ("" | null | string)
1125
1033
  }
@@ -1458,47 +1366,4009 @@ from?: string
1458
1366
  /**
1459
1367
  * Maximum rows to return inline. Default 1000, hard cap 10000. If more rows match, the response sets truncated=true and includes download_url for the full dataset via HTTP.
1460
1368
  */
1461
- limit?: number
1369
+ limit?: number
1370
+ /**
1371
+ * DSAR (Art. 15) lookup: a visitor-presented record_id (the UUID from their consent cookie). When set, the export is filtered to that visitor's full decision chain (transitive closure over replaces_id), scoped to the current product. Omit for a product-wide admin export.
1372
+ */
1373
+ record_id?: string
1374
+ }
1375
+
1376
+ export interface ConsentRecordsExportOutput {
1377
+ csv: string
1378
+ filters: {
1379
+ to: (string | null)
1380
+ from: (string | null)
1381
+ limit: number
1382
+ }
1383
+ truncated: boolean
1384
+ total_count: number
1385
+ download_url?: string
1386
+ returned_count: number
1387
+ }
1388
+
1389
+ export interface ConsentStatsGetInput {
1390
+ /**
1391
+ * Time window for aggregation in days, e.g. "30d". Omit to use the server default (30d). Maximum: 365d.
1392
+ */
1393
+ range?: string
1394
+ }
1395
+
1396
+ export interface ConsentStatsGetOutput {
1397
+ range: {
1398
+ to: string
1399
+ from: string
1400
+ }
1401
+ total: number
1402
+ custom_pct: number
1403
+ by_category: {
1404
+ marketing_pct: number
1405
+ statistics_pct: number
1406
+ preferences_pct: number
1407
+ }
1408
+ deny_all_pct: number
1409
+ accept_all_pct: number
1410
+ }
1411
+
1412
+ export interface ContentChannelsBindInput {
1413
+ /**
1414
+ * The channel id returned by content_channels_list.
1415
+ */
1416
+ id: string
1417
+ /**
1418
+ * The platform connector to publish through — the id of a connector attached to this product, from the workspace connectors list. Networks with no publishing connector (instagram, LinkedIn company pages) are rejected.
1419
+ */
1420
+ connectorId: string
1421
+ /**
1422
+ * Pass auto to make this API publish through the connector. Omit to keep the current mode: binding alone never switches a channel to automatic publishing.
1423
+ */
1424
+ deliveryMode?: ("auto" | "reminder")
1425
+ }
1426
+
1427
+ export interface ContentChannelsBindOutput {
1428
+ /**
1429
+ * Channel id — pass this to content_publications_schedule.
1430
+ */
1431
+ id: string
1432
+ /**
1433
+ * Social network: linkedin, x, youtube, instagram or reddit.
1434
+ */
1435
+ network: string
1436
+ /**
1437
+ * ISO-8601 time the connector stopped working, or null when healthy. A paused channel keeps its scheduled publications — they are frozen, not cancelled, and dispatch once it resumes.
1438
+ */
1439
+ pausedAt: (string | null)
1440
+ /**
1441
+ * ISO-8601 creation time.
1442
+ */
1443
+ createdAt: string
1444
+ /**
1445
+ * ISO-8601 time of the last change.
1446
+ */
1447
+ updatedAt: string
1448
+ /**
1449
+ * Platform connector this channel publishes through, or null for a reminder channel that needs none. An id — this toolkit never holds social credentials; a token is fetched per call and discarded.
1450
+ */
1451
+ connectorId: (string | null)
1452
+ /**
1453
+ * Human label for the channel.
1454
+ */
1455
+ displayName: string
1456
+ /**
1457
+ * Why it paused: revoked (access was taken away), expired (the credential ran out), or the provider reason code from a failed publish. Null when healthy.
1458
+ */
1459
+ pauseReason: (string | null)
1460
+ /**
1461
+ * Who publishes: member (a personal account) or organization (a company page). Phase 1 channels are all member accounts.
1462
+ */
1463
+ subjectType: ("member" | "organization")
1464
+ /**
1465
+ * What the channel accepts and what it costs: maxTextLength, maxMedia, supportsVideo, supportsLink, costPerPostUsd, costPerLinkPostUsd, dailyPostCeiling, ceilingIsRuntimeData. Read maxTextLength before writing a per-channel text variant.
1466
+ */
1467
+ capabilities: {
1468
+ [k: string]: unknown
1469
+ }
1470
+ /**
1471
+ * How the post reaches the network: auto (this API publishes it) or reminder (the system prepares it and notifies a person, who publishes by hand). Every seeded channel is reminder.
1472
+ */
1473
+ deliveryMode: ("auto" | "reminder")
1474
+ }
1475
+
1476
+ export interface ContentChannelsGetInput {
1477
+ /**
1478
+ * The channel id returned by content_channels_list.
1479
+ */
1480
+ id: string
1481
+ }
1482
+
1483
+ export interface ContentChannelsGetOutput {
1484
+ /**
1485
+ * Channel id — pass this to content_publications_schedule.
1486
+ */
1487
+ id: string
1488
+ /**
1489
+ * Social network: linkedin, x, youtube, instagram or reddit.
1490
+ */
1491
+ network: string
1492
+ /**
1493
+ * ISO-8601 time the connector stopped working, or null when healthy. A paused channel keeps its scheduled publications — they are frozen, not cancelled, and dispatch once it resumes.
1494
+ */
1495
+ pausedAt: (string | null)
1496
+ /**
1497
+ * ISO-8601 creation time.
1498
+ */
1499
+ createdAt: string
1500
+ /**
1501
+ * ISO-8601 time of the last change.
1502
+ */
1503
+ updatedAt: string
1504
+ /**
1505
+ * Platform connector this channel publishes through, or null for a reminder channel that needs none. An id — this toolkit never holds social credentials; a token is fetched per call and discarded.
1506
+ */
1507
+ connectorId: (string | null)
1508
+ /**
1509
+ * Human label for the channel.
1510
+ */
1511
+ displayName: string
1512
+ /**
1513
+ * Why it paused: revoked (access was taken away), expired (the credential ran out), or the provider reason code from a failed publish. Null when healthy.
1514
+ */
1515
+ pauseReason: (string | null)
1516
+ /**
1517
+ * Who publishes: member (a personal account) or organization (a company page). Phase 1 channels are all member accounts.
1518
+ */
1519
+ subjectType: ("member" | "organization")
1520
+ /**
1521
+ * What the channel accepts and what it costs: maxTextLength, maxMedia, supportsVideo, supportsLink, costPerPostUsd, costPerLinkPostUsd, dailyPostCeiling, ceilingIsRuntimeData. Read maxTextLength before writing a per-channel text variant.
1522
+ */
1523
+ capabilities: {
1524
+ [k: string]: unknown
1525
+ }
1526
+ /**
1527
+ * How the post reaches the network: auto (this API publishes it) or reminder (the system prepares it and notifies a person, who publishes by hand). Every seeded channel is reminder.
1528
+ */
1529
+ deliveryMode: ("auto" | "reminder")
1530
+ }
1531
+
1532
+ export interface ContentChannelsListInput {
1533
+ /**
1534
+ * Maximum number of channels to return (1-100, default 50).
1535
+ */
1536
+ limit?: number
1537
+ /**
1538
+ * How many channels to skip, for paging.
1539
+ */
1540
+ offset?: number
1541
+ /**
1542
+ * Return only channels on this network.
1543
+ */
1544
+ network?: ("linkedin" | "x" | "youtube" | "instagram" | "reddit")
1545
+ }
1546
+
1547
+ export interface ContentChannelsListOutput {
1548
+ /**
1549
+ * Total number of matching channels, ignoring paging.
1550
+ */
1551
+ total: number
1552
+ /**
1553
+ * The page of channels, ordered by network.
1554
+ */
1555
+ channels: {
1556
+ /**
1557
+ * Channel id — pass this to content_publications_schedule.
1558
+ */
1559
+ id: string
1560
+ /**
1561
+ * Social network: linkedin, x, youtube, instagram or reddit.
1562
+ */
1563
+ network: string
1564
+ /**
1565
+ * ISO-8601 time the connector stopped working, or null when healthy. A paused channel keeps its scheduled publications — they are frozen, not cancelled, and dispatch once it resumes.
1566
+ */
1567
+ pausedAt: (string | null)
1568
+ /**
1569
+ * ISO-8601 creation time.
1570
+ */
1571
+ createdAt: string
1572
+ /**
1573
+ * ISO-8601 time of the last change.
1574
+ */
1575
+ updatedAt: string
1576
+ /**
1577
+ * Platform connector this channel publishes through, or null for a reminder channel that needs none. An id — this toolkit never holds social credentials; a token is fetched per call and discarded.
1578
+ */
1579
+ connectorId: (string | null)
1580
+ /**
1581
+ * Human label for the channel.
1582
+ */
1583
+ displayName: string
1584
+ /**
1585
+ * Why it paused: revoked (access was taken away), expired (the credential ran out), or the provider reason code from a failed publish. Null when healthy.
1586
+ */
1587
+ pauseReason: (string | null)
1588
+ /**
1589
+ * Who publishes: member (a personal account) or organization (a company page). Phase 1 channels are all member accounts.
1590
+ */
1591
+ subjectType: ("member" | "organization")
1592
+ /**
1593
+ * What the channel accepts and what it costs: maxTextLength, maxMedia, supportsVideo, supportsLink, costPerPostUsd, costPerLinkPostUsd, dailyPostCeiling, ceilingIsRuntimeData. Read maxTextLength before writing a per-channel text variant.
1594
+ */
1595
+ capabilities: {
1596
+ [k: string]: unknown
1597
+ }
1598
+ /**
1599
+ * How the post reaches the network: auto (this API publishes it) or reminder (the system prepares it and notifies a person, who publishes by hand). Every seeded channel is reminder.
1600
+ */
1601
+ deliveryMode: ("auto" | "reminder")
1602
+ }[]
1603
+ }
1604
+
1605
+ export interface ContentChannelsResumeInput {
1606
+ /**
1607
+ * The paused channel to resume, once its connector has been reconnected.
1608
+ */
1609
+ id: string
1610
+ }
1611
+
1612
+ export interface ContentChannelsResumeOutput {
1613
+ /**
1614
+ * Channel id — pass this to content_publications_schedule.
1615
+ */
1616
+ id: string
1617
+ /**
1618
+ * Social network: linkedin, x, youtube, instagram or reddit.
1619
+ */
1620
+ network: string
1621
+ /**
1622
+ * ISO-8601 time the connector stopped working, or null when healthy. A paused channel keeps its scheduled publications — they are frozen, not cancelled, and dispatch once it resumes.
1623
+ */
1624
+ pausedAt: (string | null)
1625
+ /**
1626
+ * ISO-8601 creation time.
1627
+ */
1628
+ createdAt: string
1629
+ /**
1630
+ * ISO-8601 time of the last change.
1631
+ */
1632
+ updatedAt: string
1633
+ /**
1634
+ * Platform connector this channel publishes through, or null for a reminder channel that needs none. An id — this toolkit never holds social credentials; a token is fetched per call and discarded.
1635
+ */
1636
+ connectorId: (string | null)
1637
+ /**
1638
+ * Human label for the channel.
1639
+ */
1640
+ displayName: string
1641
+ /**
1642
+ * Why it paused: revoked (access was taken away), expired (the credential ran out), or the provider reason code from a failed publish. Null when healthy.
1643
+ */
1644
+ pauseReason: (string | null)
1645
+ /**
1646
+ * Who publishes: member (a personal account) or organization (a company page). Phase 1 channels are all member accounts.
1647
+ */
1648
+ subjectType: ("member" | "organization")
1649
+ /**
1650
+ * What the channel accepts and what it costs: maxTextLength, maxMedia, supportsVideo, supportsLink, costPerPostUsd, costPerLinkPostUsd, dailyPostCeiling, ceilingIsRuntimeData. Read maxTextLength before writing a per-channel text variant.
1651
+ */
1652
+ capabilities: {
1653
+ [k: string]: unknown
1654
+ }
1655
+ /**
1656
+ * How the post reaches the network: auto (this API publishes it) or reminder (the system prepares it and notifies a person, who publishes by hand). Every seeded channel is reminder.
1657
+ */
1658
+ deliveryMode: ("auto" | "reminder")
1659
+ }
1660
+
1661
+ export interface ContentChannelsUnbindInput {
1662
+ /**
1663
+ * The channel id returned by content_channels_list.
1664
+ */
1665
+ id: string
1666
+ }
1667
+
1668
+ export interface ContentChannelsUnbindOutput {
1669
+ /**
1670
+ * Channel id — pass this to content_publications_schedule.
1671
+ */
1672
+ id: string
1673
+ /**
1674
+ * Social network: linkedin, x, youtube, instagram or reddit.
1675
+ */
1676
+ network: string
1677
+ /**
1678
+ * ISO-8601 time the connector stopped working, or null when healthy. A paused channel keeps its scheduled publications — they are frozen, not cancelled, and dispatch once it resumes.
1679
+ */
1680
+ pausedAt: (string | null)
1681
+ /**
1682
+ * ISO-8601 creation time.
1683
+ */
1684
+ createdAt: string
1685
+ /**
1686
+ * ISO-8601 time of the last change.
1687
+ */
1688
+ updatedAt: string
1689
+ /**
1690
+ * Platform connector this channel publishes through, or null for a reminder channel that needs none. An id — this toolkit never holds social credentials; a token is fetched per call and discarded.
1691
+ */
1692
+ connectorId: (string | null)
1693
+ /**
1694
+ * Human label for the channel.
1695
+ */
1696
+ displayName: string
1697
+ /**
1698
+ * Why it paused: revoked (access was taken away), expired (the credential ran out), or the provider reason code from a failed publish. Null when healthy.
1699
+ */
1700
+ pauseReason: (string | null)
1701
+ /**
1702
+ * Who publishes: member (a personal account) or organization (a company page). Phase 1 channels are all member accounts.
1703
+ */
1704
+ subjectType: ("member" | "organization")
1705
+ /**
1706
+ * What the channel accepts and what it costs: maxTextLength, maxMedia, supportsVideo, supportsLink, costPerPostUsd, costPerLinkPostUsd, dailyPostCeiling, ceilingIsRuntimeData. Read maxTextLength before writing a per-channel text variant.
1707
+ */
1708
+ capabilities: {
1709
+ [k: string]: unknown
1710
+ }
1711
+ /**
1712
+ * How the post reaches the network: auto (this API publishes it) or reminder (the system prepares it and notifies a person, who publishes by hand). Every seeded channel is reminder.
1713
+ */
1714
+ deliveryMode: ("auto" | "reminder")
1715
+ }
1716
+
1717
+ export interface ContentChannelsUpdateInput {
1718
+ /**
1719
+ * The channel id returned by content_channels_list.
1720
+ */
1721
+ id: string
1722
+ /**
1723
+ * New human label for the channel. Omit to keep the current one.
1724
+ */
1725
+ displayName?: string
1726
+ /**
1727
+ * Override individual capability fields — a known ceiling beats the hand-filled constant. Merges over the existing descriptor; fields you omit keep their current values.
1728
+ */
1729
+ capabilities?: {
1730
+ [k: string]: unknown
1731
+ }
1732
+ /**
1733
+ * Change how the post reaches the network. Only reminder can be scheduled in this release — no publishing adapter exists yet.
1734
+ */
1735
+ deliveryMode?: ("auto" | "reminder")
1736
+ }
1737
+
1738
+ export interface ContentChannelsUpdateOutput {
1739
+ /**
1740
+ * Channel id — pass this to content_publications_schedule.
1741
+ */
1742
+ id: string
1743
+ /**
1744
+ * Social network: linkedin, x, youtube, instagram or reddit.
1745
+ */
1746
+ network: string
1747
+ /**
1748
+ * ISO-8601 time the connector stopped working, or null when healthy. A paused channel keeps its scheduled publications — they are frozen, not cancelled, and dispatch once it resumes.
1749
+ */
1750
+ pausedAt: (string | null)
1751
+ /**
1752
+ * ISO-8601 creation time.
1753
+ */
1754
+ createdAt: string
1755
+ /**
1756
+ * ISO-8601 time of the last change.
1757
+ */
1758
+ updatedAt: string
1759
+ /**
1760
+ * Platform connector this channel publishes through, or null for a reminder channel that needs none. An id — this toolkit never holds social credentials; a token is fetched per call and discarded.
1761
+ */
1762
+ connectorId: (string | null)
1763
+ /**
1764
+ * Human label for the channel.
1765
+ */
1766
+ displayName: string
1767
+ /**
1768
+ * Why it paused: revoked (access was taken away), expired (the credential ran out), or the provider reason code from a failed publish. Null when healthy.
1769
+ */
1770
+ pauseReason: (string | null)
1771
+ /**
1772
+ * Who publishes: member (a personal account) or organization (a company page). Phase 1 channels are all member accounts.
1773
+ */
1774
+ subjectType: ("member" | "organization")
1775
+ /**
1776
+ * What the channel accepts and what it costs: maxTextLength, maxMedia, supportsVideo, supportsLink, costPerPostUsd, costPerLinkPostUsd, dailyPostCeiling, ceilingIsRuntimeData. Read maxTextLength before writing a per-channel text variant.
1777
+ */
1778
+ capabilities: {
1779
+ [k: string]: unknown
1780
+ }
1781
+ /**
1782
+ * How the post reaches the network: auto (this API publishes it) or reminder (the system prepares it and notifies a person, who publishes by hand). Every seeded channel is reminder.
1783
+ */
1784
+ deliveryMode: ("auto" | "reminder")
1785
+ }
1786
+
1787
+ export interface ContentMediaCreateUploadUrlInput {
1788
+ /**
1789
+ * Name to store the file under, for display purposes.
1790
+ */
1791
+ filename?: string
1792
+ /**
1793
+ * The media type the app will PUT, e.g. video/mp4. Must be image/* or video/*.
1794
+ */
1795
+ contentType: string
1796
+ }
1797
+
1798
+ export interface ContentMediaCreateUploadUrlOutput {
1799
+ /**
1800
+ * The pending asset row. It turns ready on finalize.
1801
+ */
1802
+ asset: {
1803
+ /**
1804
+ * Media asset id. Use it to attach the asset to a post.
1805
+ */
1806
+ id: string
1807
+ /**
1808
+ * Object key in the product bucket. Private — hand it to no one, it is not a URL.
1809
+ */
1810
+ key: string
1811
+ /**
1812
+ * Stored media type, or null while still pending.
1813
+ */
1814
+ mime: (string | null)
1815
+ /**
1816
+ * Why the asset is failed — a readable reason, or null when nothing went wrong.
1817
+ */
1818
+ error: (string | null)
1819
+ /**
1820
+ * How the bytes arrived: url (fetched by the toolkit) or upload (PUT by the app).
1821
+ */
1822
+ source: ("url" | "upload")
1823
+ /**
1824
+ * Storage status: pending (the bytes are not in the bucket yet) -> ready (stored, attachable to a post) or failed (ingestion gave up; see error).
1825
+ */
1826
+ status: ("pending" | "ready" | "failed")
1827
+ /**
1828
+ * Original filename, kept for display only.
1829
+ */
1830
+ filename: (string | null)
1831
+ /**
1832
+ * ISO-8601 creation time.
1833
+ */
1834
+ createdAt: string
1835
+ /**
1836
+ * Stored size in bytes, or null while pending.
1837
+ */
1838
+ sizeBytes: (number | null)
1839
+ /**
1840
+ * The URL the bytes were fetched from, if any.
1841
+ */
1842
+ sourceUrl: (string | null)
1843
+ /**
1844
+ * ISO-8601 time of the last change.
1845
+ */
1846
+ updatedAt: string
1847
+ }
1848
+ /**
1849
+ * ISO-8601 time after which the upload URL stops working.
1850
+ */
1851
+ expiresAt: string
1852
+ /**
1853
+ * Time-limited signed PUT URL. Upload the bytes to it, then call the finalize tool.
1854
+ */
1855
+ uploadUrl: string
1856
+ /**
1857
+ * The Content-Type header the PUT must send — the signature covers it.
1858
+ */
1859
+ contentType: string
1860
+ }
1861
+
1862
+ export interface ContentMediaFinalizeInput {
1863
+ /**
1864
+ * The media asset id returned when it was created.
1865
+ */
1866
+ id: string
1867
+ }
1868
+
1869
+ export interface ContentMediaFinalizeOutput {
1870
+ /**
1871
+ * Media asset id. Use it to attach the asset to a post.
1872
+ */
1873
+ id: string
1874
+ /**
1875
+ * Object key in the product bucket. Private — hand it to no one, it is not a URL.
1876
+ */
1877
+ key: string
1878
+ /**
1879
+ * Stored media type, or null while still pending.
1880
+ */
1881
+ mime: (string | null)
1882
+ /**
1883
+ * Why the asset is failed — a readable reason, or null when nothing went wrong.
1884
+ */
1885
+ error: (string | null)
1886
+ /**
1887
+ * How the bytes arrived: url (fetched by the toolkit) or upload (PUT by the app).
1888
+ */
1889
+ source: ("url" | "upload")
1890
+ /**
1891
+ * Storage status: pending (the bytes are not in the bucket yet) -> ready (stored, attachable to a post) or failed (ingestion gave up; see error).
1892
+ */
1893
+ status: ("pending" | "ready" | "failed")
1894
+ /**
1895
+ * Original filename, kept for display only.
1896
+ */
1897
+ filename: (string | null)
1898
+ /**
1899
+ * ISO-8601 creation time.
1900
+ */
1901
+ createdAt: string
1902
+ /**
1903
+ * Stored size in bytes, or null while pending.
1904
+ */
1905
+ sizeBytes: (number | null)
1906
+ /**
1907
+ * The URL the bytes were fetched from, if any.
1908
+ */
1909
+ sourceUrl: (string | null)
1910
+ /**
1911
+ * ISO-8601 time of the last change.
1912
+ */
1913
+ updatedAt: string
1914
+ }
1915
+
1916
+ export interface ContentMediaGetInput {
1917
+ /**
1918
+ * The media asset id returned when it was created.
1919
+ */
1920
+ id: string
1921
+ }
1922
+
1923
+ export interface ContentMediaGetOutput {
1924
+ /**
1925
+ * Media asset id. Use it to attach the asset to a post.
1926
+ */
1927
+ id: string
1928
+ /**
1929
+ * Object key in the product bucket. Private — hand it to no one, it is not a URL.
1930
+ */
1931
+ key: string
1932
+ /**
1933
+ * Stored media type, or null while still pending.
1934
+ */
1935
+ mime: (string | null)
1936
+ /**
1937
+ * Why the asset is failed — a readable reason, or null when nothing went wrong.
1938
+ */
1939
+ error: (string | null)
1940
+ /**
1941
+ * How the bytes arrived: url (fetched by the toolkit) or upload (PUT by the app).
1942
+ */
1943
+ source: ("url" | "upload")
1944
+ /**
1945
+ * Storage status: pending (the bytes are not in the bucket yet) -> ready (stored, attachable to a post) or failed (ingestion gave up; see error).
1946
+ */
1947
+ status: ("pending" | "ready" | "failed")
1948
+ /**
1949
+ * Original filename, kept for display only.
1950
+ */
1951
+ filename: (string | null)
1952
+ /**
1953
+ * ISO-8601 creation time.
1954
+ */
1955
+ createdAt: string
1956
+ /**
1957
+ * Stored size in bytes, or null while pending.
1958
+ */
1959
+ sizeBytes: (number | null)
1960
+ /**
1961
+ * The URL the bytes were fetched from, if any.
1962
+ */
1963
+ sourceUrl: (string | null)
1964
+ /**
1965
+ * ISO-8601 time of the last change.
1966
+ */
1967
+ updatedAt: string
1968
+ }
1969
+
1970
+ export interface ContentMediaListInput {
1971
+ /**
1972
+ * Maximum number of assets to return (1-100, default 50).
1973
+ */
1974
+ limit?: number
1975
+ /**
1976
+ * How many assets to skip, for paging.
1977
+ */
1978
+ offset?: number
1979
+ /**
1980
+ * Return only assets in this storage status.
1981
+ */
1982
+ status?: ("pending" | "ready" | "failed")
1983
+ }
1984
+
1985
+ export interface ContentMediaListOutput {
1986
+ /**
1987
+ * Total number of matching assets, ignoring paging.
1988
+ */
1989
+ total: number
1990
+ /**
1991
+ * The page of assets, newest first.
1992
+ */
1993
+ assets: {
1994
+ /**
1995
+ * Media asset id. Use it to attach the asset to a post.
1996
+ */
1997
+ id: string
1998
+ /**
1999
+ * Object key in the product bucket. Private — hand it to no one, it is not a URL.
2000
+ */
2001
+ key: string
2002
+ /**
2003
+ * Stored media type, or null while still pending.
2004
+ */
2005
+ mime: (string | null)
2006
+ /**
2007
+ * Why the asset is failed — a readable reason, or null when nothing went wrong.
2008
+ */
2009
+ error: (string | null)
2010
+ /**
2011
+ * How the bytes arrived: url (fetched by the toolkit) or upload (PUT by the app).
2012
+ */
2013
+ source: ("url" | "upload")
2014
+ /**
2015
+ * Storage status: pending (the bytes are not in the bucket yet) -> ready (stored, attachable to a post) or failed (ingestion gave up; see error).
2016
+ */
2017
+ status: ("pending" | "ready" | "failed")
2018
+ /**
2019
+ * Original filename, kept for display only.
2020
+ */
2021
+ filename: (string | null)
2022
+ /**
2023
+ * ISO-8601 creation time.
2024
+ */
2025
+ createdAt: string
2026
+ /**
2027
+ * Stored size in bytes, or null while pending.
2028
+ */
2029
+ sizeBytes: (number | null)
2030
+ /**
2031
+ * The URL the bytes were fetched from, if any.
2032
+ */
2033
+ sourceUrl: (string | null)
2034
+ /**
2035
+ * ISO-8601 time of the last change.
2036
+ */
2037
+ updatedAt: string
2038
+ }[]
2039
+ }
2040
+
2041
+ export interface ContentMediaUploadInput {
2042
+ /**
2043
+ * Name to store the file under. Defaults to the last path segment of the URL.
2044
+ */
2045
+ filename?: string
2046
+ /**
2047
+ * Public http(s) URL the toolkit fetches server-side. Images and video only, up to 512 MB.
2048
+ */
2049
+ sourceUrl: string
2050
+ }
2051
+
2052
+ export interface ContentMediaUploadOutput {
2053
+ /**
2054
+ * Media asset id. Use it to attach the asset to a post.
2055
+ */
2056
+ id: string
2057
+ /**
2058
+ * Object key in the product bucket. Private — hand it to no one, it is not a URL.
2059
+ */
2060
+ key: string
2061
+ /**
2062
+ * Stored media type, or null while still pending.
2063
+ */
2064
+ mime: (string | null)
2065
+ /**
2066
+ * Why the asset is failed — a readable reason, or null when nothing went wrong.
2067
+ */
2068
+ error: (string | null)
2069
+ /**
2070
+ * How the bytes arrived: url (fetched by the toolkit) or upload (PUT by the app).
2071
+ */
2072
+ source: ("url" | "upload")
2073
+ /**
2074
+ * Storage status: pending (the bytes are not in the bucket yet) -> ready (stored, attachable to a post) or failed (ingestion gave up; see error).
2075
+ */
2076
+ status: ("pending" | "ready" | "failed")
2077
+ /**
2078
+ * Original filename, kept for display only.
2079
+ */
2080
+ filename: (string | null)
2081
+ /**
2082
+ * ISO-8601 creation time.
2083
+ */
2084
+ createdAt: string
2085
+ /**
2086
+ * Stored size in bytes, or null while pending.
2087
+ */
2088
+ sizeBytes: (number | null)
2089
+ /**
2090
+ * The URL the bytes were fetched from, if any.
2091
+ */
2092
+ sourceUrl: (string | null)
2093
+ /**
2094
+ * ISO-8601 time of the last change.
2095
+ */
2096
+ updatedAt: string
2097
+ }
2098
+
2099
+ export interface ContentMetricsChannelSeriesInput {
2100
+ /**
2101
+ * The channel id, from content_channels_list.
2102
+ */
2103
+ id: string
2104
+ /**
2105
+ * ISO-8601 upper bound on capture time, inclusive. Omit for "up to now".
2106
+ */
2107
+ to?: string
2108
+ /**
2109
+ * ISO-8601 lower bound on capture time, inclusive. Omit for "from the beginning".
2110
+ */
2111
+ from?: string
2112
+ /**
2113
+ * Maximum number of snapshots to return, oldest first.
2114
+ */
2115
+ limit?: number
2116
+ }
2117
+
2118
+ export interface ContentMetricsChannelSeriesOutput {
2119
+ /**
2120
+ * Daily snapshots, oldest first.
2121
+ */
2122
+ points: {
2123
+ /**
2124
+ * The snapshot as the adapter recorded it: the availability it reported, the cross-network metric set (a null field means the network does not report it — never zero), and the raw payload.
2125
+ */
2126
+ metrics: {
2127
+ [k: string]: unknown
2128
+ }
2129
+ /**
2130
+ * ISO-8601 time this snapshot was taken.
2131
+ */
2132
+ capturedAt: string
2133
+ }[]
2134
+ /**
2135
+ * The network the channel publishes to.
2136
+ */
2137
+ network: string
2138
+ /**
2139
+ * What this network reports for this account. "none" means no snapshot will ever be taken — a personal Instagram profile has no API at all; "basic" means fewer numbers than a business account gets, so an absent metric is the network's silence, not a zero.
2140
+ */
2141
+ analytics: ("full" | "basic" | "none")
2142
+ /**
2143
+ * The channel these snapshots belong to.
2144
+ */
2145
+ channelId: string
2146
+ }
2147
+
2148
+ export interface ContentMetricsPostSeriesInput {
2149
+ /**
2150
+ * The publication id, from content_publications_schedule or content_publications_list.
2151
+ */
2152
+ id: string
2153
+ /**
2154
+ * ISO-8601 upper bound on capture time, inclusive. Omit for "up to now".
2155
+ */
2156
+ to?: string
2157
+ /**
2158
+ * ISO-8601 lower bound on capture time, inclusive. Omit for "from the beginning".
2159
+ */
2160
+ from?: string
2161
+ /**
2162
+ * Maximum number of snapshots to return, oldest first.
2163
+ */
2164
+ limit?: number
2165
+ }
2166
+
2167
+ export interface ContentMetricsPostSeriesOutput {
2168
+ /**
2169
+ * Snapshots oldest first. Readings over time, not a current value: reach keeps growing for weeks. Empty means nothing has been captured yet.
2170
+ */
2171
+ points: {
2172
+ /**
2173
+ * The snapshot as the adapter recorded it: the availability it reported, the cross-network metric set (a null field means the network does not report it — never zero), and the raw payload.
2174
+ */
2175
+ metrics: {
2176
+ [k: string]: unknown
2177
+ }
2178
+ /**
2179
+ * ISO-8601 time this snapshot was taken.
2180
+ */
2181
+ capturedAt: string
2182
+ }[]
2183
+ /**
2184
+ * The network the channel publishes to.
2185
+ */
2186
+ network: string
2187
+ /**
2188
+ * What this network reports for this account. "none" means no snapshot will ever be taken — a personal Instagram profile has no API at all; "basic" means fewer numbers than a business account gets, so an absent metric is the network's silence, not a zero.
2189
+ */
2190
+ analytics: ("full" | "basic" | "none")
2191
+ /**
2192
+ * The channel it was published to.
2193
+ */
2194
+ channelId: string
2195
+ /**
2196
+ * The publication these snapshots belong to.
2197
+ */
2198
+ publicationId: string
2199
+ }
2200
+
2201
+ export interface ContentPostsApproveInput {
2202
+ /**
2203
+ * The post id returned by content_posts_create.
2204
+ */
2205
+ id: string
2206
+ }
2207
+
2208
+ export interface ContentPostsApproveOutput {
2209
+ /**
2210
+ * Post id.
2211
+ */
2212
+ id: string
2213
+ /**
2214
+ * The current text of the post, in markdown.
2215
+ */
2216
+ text: string
2217
+ /**
2218
+ * Media references attached to the current version.
2219
+ */
2220
+ media: string[]
2221
+ /**
2222
+ * Identity id of whoever composed the post.
2223
+ */
2224
+ author: string
2225
+ /**
2226
+ * Post lifecycle status: draft (being written) -> pending_approval (submitted) -> approved (cleared to publish); scheduled/published/failed are set by the publishing pipeline.
2227
+ */
2228
+ status: ("draft" | "pending_approval" | "approved" | "scheduled" | "published" | "failed")
2229
+ /**
2230
+ * ISO-8601 creation time.
2231
+ */
2232
+ createdAt: string
2233
+ /**
2234
+ * ISO-8601 time of the last change.
2235
+ */
2236
+ updatedAt: string
2237
+ /**
2238
+ * Version number of the current text.
2239
+ */
2240
+ currentVersion: number
2241
+ /**
2242
+ * The version an approval binds to, or null. Cleared on every edit: approving one text never covers another.
2243
+ */
2244
+ approvedVersion: (number | null)
2245
+ }
2246
+
2247
+ export interface ContentPostsAttachMediaInput {
2248
+ /**
2249
+ * The post id.
2250
+ */
2251
+ id: string
2252
+ /**
2253
+ * Media asset ids, in the order they should appear on the post.
2254
+ *
2255
+ * @minItems 1
2256
+ * @maxItems 20
2257
+ */
2258
+ mediaIds: [string]|[string, string]|[string, string, string]|[string, string, string, string]|[string, string, string, string, string]|[string, string, string, string, string, string]|[string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]
2259
+ }
2260
+
2261
+ export interface ContentPostsAttachMediaOutput {
2262
+ /**
2263
+ * Post id.
2264
+ */
2265
+ id: string
2266
+ /**
2267
+ * The current text of the post, in markdown.
2268
+ */
2269
+ text: string
2270
+ /**
2271
+ * Media references attached to the current version.
2272
+ */
2273
+ media: string[]
2274
+ /**
2275
+ * Identity id of whoever composed the post.
2276
+ */
2277
+ author: string
2278
+ /**
2279
+ * Post lifecycle status: draft (being written) -> pending_approval (submitted) -> approved (cleared to publish); scheduled/published/failed are set by the publishing pipeline.
2280
+ */
2281
+ status: ("draft" | "pending_approval" | "approved" | "scheduled" | "published" | "failed")
2282
+ /**
2283
+ * ISO-8601 creation time.
2284
+ */
2285
+ createdAt: string
2286
+ /**
2287
+ * ISO-8601 time of the last change.
2288
+ */
2289
+ updatedAt: string
2290
+ /**
2291
+ * Version number of the current text.
2292
+ */
2293
+ currentVersion: number
2294
+ /**
2295
+ * The version an approval binds to, or null. Cleared on every edit: approving one text never covers another.
2296
+ */
2297
+ approvedVersion: (number | null)
2298
+ }
2299
+
2300
+ export interface ContentPostsCreateInput {
2301
+ /**
2302
+ * The post text, channel-independent, written in markdown — bold, italic, lists, links. Each network gets it flattened to the plain text that network accepts; content_publications_validate shows exactly what that looks like per channel. Per-channel variants come later, at publish time.
2303
+ */
2304
+ text: string
2305
+ /**
2306
+ * Media references attached to the post, in display order. Opaque strings — the toolkit does not upload or resolve them.
2307
+ *
2308
+ * @maxItems 20
2309
+ */
2310
+ media?: []|[string]|[string, string]|[string, string, string]|[string, string, string, string]|[string, string, string, string, string]|[string, string, string, string, string, string]|[string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]
2311
+ }
2312
+
2313
+ export interface ContentPostsCreateOutput {
2314
+ /**
2315
+ * Post id.
2316
+ */
2317
+ id: string
2318
+ /**
2319
+ * The current text of the post, in markdown.
2320
+ */
2321
+ text: string
2322
+ /**
2323
+ * Media references attached to the current version.
2324
+ */
2325
+ media: string[]
2326
+ /**
2327
+ * Identity id of whoever composed the post.
2328
+ */
2329
+ author: string
2330
+ /**
2331
+ * Post lifecycle status: draft (being written) -> pending_approval (submitted) -> approved (cleared to publish); scheduled/published/failed are set by the publishing pipeline.
2332
+ */
2333
+ status: ("draft" | "pending_approval" | "approved" | "scheduled" | "published" | "failed")
2334
+ /**
2335
+ * ISO-8601 creation time.
2336
+ */
2337
+ createdAt: string
2338
+ /**
2339
+ * ISO-8601 time of the last change.
2340
+ */
2341
+ updatedAt: string
2342
+ /**
2343
+ * Version number of the current text.
2344
+ */
2345
+ currentVersion: number
2346
+ /**
2347
+ * The version an approval binds to, or null. Cleared on every edit: approving one text never covers another.
2348
+ */
2349
+ approvedVersion: (number | null)
2350
+ }
2351
+
2352
+ export interface ContentPostsDetachMediaInput {
2353
+ /**
2354
+ * The post id.
2355
+ */
2356
+ id: string
2357
+ /**
2358
+ * Media asset ids to remove from the post.
2359
+ *
2360
+ * @minItems 1
2361
+ * @maxItems 20
2362
+ */
2363
+ mediaIds: [string]|[string, string]|[string, string, string]|[string, string, string, string]|[string, string, string, string, string]|[string, string, string, string, string, string]|[string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]
2364
+ }
2365
+
2366
+ export interface ContentPostsDetachMediaOutput {
2367
+ /**
2368
+ * Post id.
2369
+ */
2370
+ id: string
2371
+ /**
2372
+ * The current text of the post, in markdown.
2373
+ */
2374
+ text: string
2375
+ /**
2376
+ * Media references attached to the current version.
2377
+ */
2378
+ media: string[]
2379
+ /**
2380
+ * Identity id of whoever composed the post.
2381
+ */
2382
+ author: string
2383
+ /**
2384
+ * Post lifecycle status: draft (being written) -> pending_approval (submitted) -> approved (cleared to publish); scheduled/published/failed are set by the publishing pipeline.
2385
+ */
2386
+ status: ("draft" | "pending_approval" | "approved" | "scheduled" | "published" | "failed")
2387
+ /**
2388
+ * ISO-8601 creation time.
2389
+ */
2390
+ createdAt: string
2391
+ /**
2392
+ * ISO-8601 time of the last change.
2393
+ */
2394
+ updatedAt: string
2395
+ /**
2396
+ * Version number of the current text.
2397
+ */
2398
+ currentVersion: number
2399
+ /**
2400
+ * The version an approval binds to, or null. Cleared on every edit: approving one text never covers another.
2401
+ */
2402
+ approvedVersion: (number | null)
2403
+ }
2404
+
2405
+ export interface ContentPostsGetInput {
2406
+ /**
2407
+ * The post id returned by content_posts_create.
2408
+ */
2409
+ id: string
2410
+ }
2411
+
2412
+ export interface ContentPostsGetOutput {
2413
+ /**
2414
+ * Post id.
2415
+ */
2416
+ id: string
2417
+ /**
2418
+ * The current text of the post, in markdown.
2419
+ */
2420
+ text: string
2421
+ /**
2422
+ * Media references attached to the current version.
2423
+ */
2424
+ media: string[]
2425
+ /**
2426
+ * Identity id of whoever composed the post.
2427
+ */
2428
+ author: string
2429
+ /**
2430
+ * Post lifecycle status: draft (being written) -> pending_approval (submitted) -> approved (cleared to publish); scheduled/published/failed are set by the publishing pipeline.
2431
+ */
2432
+ status: ("draft" | "pending_approval" | "approved" | "scheduled" | "published" | "failed")
2433
+ /**
2434
+ * ISO-8601 creation time.
2435
+ */
2436
+ createdAt: string
2437
+ /**
2438
+ * ISO-8601 time of the last change.
2439
+ */
2440
+ updatedAt: string
2441
+ /**
2442
+ * Version number of the current text.
2443
+ */
2444
+ currentVersion: number
2445
+ /**
2446
+ * The version an approval binds to, or null. Cleared on every edit: approving one text never covers another.
2447
+ */
2448
+ approvedVersion: (number | null)
2449
+ }
2450
+
2451
+ export interface ContentPostsListInput {
2452
+ /**
2453
+ * Maximum number of posts to return (1-100, default 50).
2454
+ */
2455
+ limit?: number
2456
+ /**
2457
+ * How many posts to skip, for paging.
2458
+ */
2459
+ offset?: number
2460
+ /**
2461
+ * Return only posts in this status.
2462
+ */
2463
+ status?: ("draft" | "pending_approval" | "approved" | "scheduled" | "published" | "failed")
2464
+ }
2465
+
2466
+ export interface ContentPostsListOutput {
2467
+ /**
2468
+ * The page of posts, newest first.
2469
+ */
2470
+ posts: {
2471
+ /**
2472
+ * Post id.
2473
+ */
2474
+ id: string
2475
+ /**
2476
+ * The current text of the post, in markdown.
2477
+ */
2478
+ text: string
2479
+ /**
2480
+ * Media references attached to the current version.
2481
+ */
2482
+ media: string[]
2483
+ /**
2484
+ * Identity id of whoever composed the post.
2485
+ */
2486
+ author: string
2487
+ /**
2488
+ * Post lifecycle status: draft (being written) -> pending_approval (submitted) -> approved (cleared to publish); scheduled/published/failed are set by the publishing pipeline.
2489
+ */
2490
+ status: ("draft" | "pending_approval" | "approved" | "scheduled" | "published" | "failed")
2491
+ /**
2492
+ * ISO-8601 creation time.
2493
+ */
2494
+ createdAt: string
2495
+ /**
2496
+ * ISO-8601 time of the last change.
2497
+ */
2498
+ updatedAt: string
2499
+ /**
2500
+ * Version number of the current text.
2501
+ */
2502
+ currentVersion: number
2503
+ /**
2504
+ * The version an approval binds to, or null. Cleared on every edit: approving one text never covers another.
2505
+ */
2506
+ approvedVersion: (number | null)
2507
+ }[]
2508
+ /**
2509
+ * Total number of matching posts, ignoring paging.
2510
+ */
2511
+ total: number
2512
+ }
2513
+
2514
+ export interface ContentPostsSubmitInput {
2515
+ /**
2516
+ * The post id returned by content_posts_create.
2517
+ */
2518
+ id: string
2519
+ }
2520
+
2521
+ export interface ContentPostsSubmitOutput {
2522
+ /**
2523
+ * Post id.
2524
+ */
2525
+ id: string
2526
+ /**
2527
+ * The current text of the post, in markdown.
2528
+ */
2529
+ text: string
2530
+ /**
2531
+ * Media references attached to the current version.
2532
+ */
2533
+ media: string[]
2534
+ /**
2535
+ * Identity id of whoever composed the post.
2536
+ */
2537
+ author: string
2538
+ /**
2539
+ * Post lifecycle status: draft (being written) -> pending_approval (submitted) -> approved (cleared to publish); scheduled/published/failed are set by the publishing pipeline.
2540
+ */
2541
+ status: ("draft" | "pending_approval" | "approved" | "scheduled" | "published" | "failed")
2542
+ /**
2543
+ * ISO-8601 creation time.
2544
+ */
2545
+ createdAt: string
2546
+ /**
2547
+ * ISO-8601 time of the last change.
2548
+ */
2549
+ updatedAt: string
2550
+ /**
2551
+ * Version number of the current text.
2552
+ */
2553
+ currentVersion: number
2554
+ /**
2555
+ * The version an approval binds to, or null. Cleared on every edit: approving one text never covers another.
2556
+ */
2557
+ approvedVersion: (number | null)
2558
+ }
2559
+
2560
+ export interface ContentPostsUpdateInput {
2561
+ /**
2562
+ * The post id returned by content_posts_create.
2563
+ */
2564
+ id: string
2565
+ /**
2566
+ * Replacement text, in markdown. Omit to keep the current text.
2567
+ */
2568
+ text?: string
2569
+ /**
2570
+ * Replacement media list (replaces, never merges). Omit to keep the current media.
2571
+ *
2572
+ * @maxItems 20
2573
+ */
2574
+ media?: []|[string]|[string, string]|[string, string, string]|[string, string, string, string]|[string, string, string, string, string]|[string, string, string, string, string, string]|[string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]
2575
+ }
2576
+
2577
+ export interface ContentPostsUpdateOutput {
2578
+ /**
2579
+ * Post id.
2580
+ */
2581
+ id: string
2582
+ /**
2583
+ * The current text of the post, in markdown.
2584
+ */
2585
+ text: string
2586
+ /**
2587
+ * Media references attached to the current version.
2588
+ */
2589
+ media: string[]
2590
+ /**
2591
+ * Identity id of whoever composed the post.
2592
+ */
2593
+ author: string
2594
+ /**
2595
+ * Post lifecycle status: draft (being written) -> pending_approval (submitted) -> approved (cleared to publish); scheduled/published/failed are set by the publishing pipeline.
2596
+ */
2597
+ status: ("draft" | "pending_approval" | "approved" | "scheduled" | "published" | "failed")
2598
+ /**
2599
+ * ISO-8601 creation time.
2600
+ */
2601
+ createdAt: string
2602
+ /**
2603
+ * ISO-8601 time of the last change.
2604
+ */
2605
+ updatedAt: string
2606
+ /**
2607
+ * Version number of the current text.
2608
+ */
2609
+ currentVersion: number
2610
+ /**
2611
+ * The version an approval binds to, or null. Cleared on every edit: approving one text never covers another.
2612
+ */
2613
+ approvedVersion: (number | null)
2614
+ }
2615
+
2616
+ export interface ContentPostsVersionsInput {
2617
+ /**
2618
+ * The post id returned by content_posts_create.
2619
+ */
2620
+ id: string
2621
+ }
2622
+
2623
+ export interface ContentPostsVersionsOutput {
2624
+ /**
2625
+ * The post these versions belong to.
2626
+ */
2627
+ postId: string
2628
+ /**
2629
+ * Every version, oldest first.
2630
+ */
2631
+ versions: {
2632
+ /**
2633
+ * The text as it stood at this version.
2634
+ */
2635
+ text: string
2636
+ /**
2637
+ * Media references as they stood at this version.
2638
+ */
2639
+ media: string[]
2640
+ /**
2641
+ * Post the version belongs to.
2642
+ */
2643
+ postId: string
2644
+ /**
2645
+ * Version number, starting at 1.
2646
+ */
2647
+ version: number
2648
+ /**
2649
+ * ISO-8601 time the version was recorded.
2650
+ */
2651
+ createdAt: string
2652
+ /**
2653
+ * Identity id of whoever produced this version.
2654
+ */
2655
+ createdBy: string
2656
+ }[]
2657
+ }
2658
+
2659
+ export interface ContentPublicationsCancelInput {
2660
+ /**
2661
+ * The publication id returned by content_publications_schedule.
2662
+ */
2663
+ id: string
2664
+ }
2665
+
2666
+ export interface ContentPublicationsCancelOutput {
2667
+ /**
2668
+ * Publication id.
2669
+ */
2670
+ id: string
2671
+ /**
2672
+ * The exact text that will be published to this channel — markdown already flattened to plain network text at schedule time. Not the markdown source; that stays on the post.
2673
+ */
2674
+ text: string
2675
+ /**
2676
+ * pending (queued) -> publishing (the reminder was sent; a person is publishing by hand) -> published (confirmed) | failed | cancelled.
2677
+ */
2678
+ state: ("pending" | "publishing" | "published" | "failed" | "cancelled")
2679
+ /**
2680
+ * The post being published.
2681
+ */
2682
+ postId: string
2683
+ /**
2684
+ * What publishing this costs in USD, computed when it was scheduled. On X a post carrying a link costs 13x a plain one. Null means the cost is not known — an auto channel refuses to dispatch it.
2685
+ */
2686
+ costUsd: (number | null)
2687
+ /**
2688
+ * How many dispatch attempts have been made.
2689
+ */
2690
+ attempts: number
2691
+ /**
2692
+ * The channel it is published to.
2693
+ */
2694
+ channelId: string
2695
+ /**
2696
+ * Which rate produced costUsd: "plain", "link" or "free".
2697
+ */
2698
+ costBasis: (string | null)
2699
+ /**
2700
+ * ISO-8601 creation time.
2701
+ */
2702
+ createdAt: string
2703
+ /**
2704
+ * The most recent failure, if any.
2705
+ */
2706
+ lastError: (string | null)
2707
+ /**
2708
+ * ISO-8601 time of the last change.
2709
+ */
2710
+ updatedAt: string
2711
+ /**
2712
+ * The network's id for the published post, once known.
2713
+ */
2714
+ externalId: (string | null)
2715
+ /**
2716
+ * URL of the published post, once known.
2717
+ */
2718
+ externalUrl: (string | null)
2719
+ /**
2720
+ * ISO-8601 time it was confirmed published.
2721
+ */
2722
+ publishedAt: (string | null)
2723
+ /**
2724
+ * ISO-8601 time the publication is due.
2725
+ */
2726
+ scheduledAt: string
2727
+ /**
2728
+ * How many reminders have been sent for this publication.
2729
+ */
2730
+ reminderCount: number
2731
+ /**
2732
+ * The key that makes a retry the same publication.
2733
+ */
2734
+ idempotencyKey: string
2735
+ /**
2736
+ * ISO-8601 time the most recent reminder went out, or null if none has.
2737
+ */
2738
+ reminderSentAt: (string | null)
2739
+ }
2740
+
2741
+ export interface ContentPublicationsConfirmInput {
2742
+ /**
2743
+ * The publication id returned by content_publications_schedule.
2744
+ */
2745
+ id: string
2746
+ /**
2747
+ * The network's own id for the post, if known.
2748
+ */
2749
+ externalId?: string
2750
+ /**
2751
+ * URL of the post the person actually published. Worth supplying — it is what identifies the post later.
2752
+ */
2753
+ externalUrl?: string
2754
+ }
2755
+
2756
+ export interface ContentPublicationsConfirmOutput {
2757
+ /**
2758
+ * Publication id.
2759
+ */
2760
+ id: string
2761
+ /**
2762
+ * The exact text that will be published to this channel — markdown already flattened to plain network text at schedule time. Not the markdown source; that stays on the post.
2763
+ */
2764
+ text: string
2765
+ /**
2766
+ * pending (queued) -> publishing (the reminder was sent; a person is publishing by hand) -> published (confirmed) | failed | cancelled.
2767
+ */
2768
+ state: ("pending" | "publishing" | "published" | "failed" | "cancelled")
2769
+ /**
2770
+ * The post being published.
2771
+ */
2772
+ postId: string
2773
+ /**
2774
+ * What publishing this costs in USD, computed when it was scheduled. On X a post carrying a link costs 13x a plain one. Null means the cost is not known — an auto channel refuses to dispatch it.
2775
+ */
2776
+ costUsd: (number | null)
2777
+ /**
2778
+ * How many dispatch attempts have been made.
2779
+ */
2780
+ attempts: number
2781
+ /**
2782
+ * The channel it is published to.
2783
+ */
2784
+ channelId: string
2785
+ /**
2786
+ * Which rate produced costUsd: "plain", "link" or "free".
2787
+ */
2788
+ costBasis: (string | null)
2789
+ /**
2790
+ * ISO-8601 creation time.
2791
+ */
2792
+ createdAt: string
2793
+ /**
2794
+ * The most recent failure, if any.
2795
+ */
2796
+ lastError: (string | null)
2797
+ /**
2798
+ * ISO-8601 time of the last change.
2799
+ */
2800
+ updatedAt: string
2801
+ /**
2802
+ * The network's id for the published post, once known.
2803
+ */
2804
+ externalId: (string | null)
2805
+ /**
2806
+ * URL of the published post, once known.
2807
+ */
2808
+ externalUrl: (string | null)
2809
+ /**
2810
+ * ISO-8601 time it was confirmed published.
2811
+ */
2812
+ publishedAt: (string | null)
2813
+ /**
2814
+ * ISO-8601 time the publication is due.
2815
+ */
2816
+ scheduledAt: string
2817
+ /**
2818
+ * How many reminders have been sent for this publication.
2819
+ */
2820
+ reminderCount: number
2821
+ /**
2822
+ * The key that makes a retry the same publication.
2823
+ */
2824
+ idempotencyKey: string
2825
+ /**
2826
+ * ISO-8601 time the most recent reminder went out, or null if none has.
2827
+ */
2828
+ reminderSentAt: (string | null)
2829
+ }
2830
+
2831
+ export interface ContentPublicationsGetInput {
2832
+ /**
2833
+ * The publication id returned by content_publications_schedule.
2834
+ */
2835
+ id: string
2836
+ }
2837
+
2838
+ export interface ContentPublicationsGetOutput {
2839
+ /**
2840
+ * Publication id.
2841
+ */
2842
+ id: string
2843
+ /**
2844
+ * The exact text that will be published to this channel — markdown already flattened to plain network text at schedule time. Not the markdown source; that stays on the post.
2845
+ */
2846
+ text: string
2847
+ /**
2848
+ * pending (queued) -> publishing (the reminder was sent; a person is publishing by hand) -> published (confirmed) | failed | cancelled.
2849
+ */
2850
+ state: ("pending" | "publishing" | "published" | "failed" | "cancelled")
2851
+ /**
2852
+ * The post being published.
2853
+ */
2854
+ postId: string
2855
+ /**
2856
+ * What publishing this costs in USD, computed when it was scheduled. On X a post carrying a link costs 13x a plain one. Null means the cost is not known — an auto channel refuses to dispatch it.
2857
+ */
2858
+ costUsd: (number | null)
2859
+ /**
2860
+ * How many dispatch attempts have been made.
2861
+ */
2862
+ attempts: number
2863
+ /**
2864
+ * The channel it is published to.
2865
+ */
2866
+ channelId: string
2867
+ /**
2868
+ * Which rate produced costUsd: "plain", "link" or "free".
2869
+ */
2870
+ costBasis: (string | null)
2871
+ /**
2872
+ * ISO-8601 creation time.
2873
+ */
2874
+ createdAt: string
2875
+ /**
2876
+ * The most recent failure, if any.
2877
+ */
2878
+ lastError: (string | null)
2879
+ /**
2880
+ * ISO-8601 time of the last change.
2881
+ */
2882
+ updatedAt: string
2883
+ /**
2884
+ * The network's id for the published post, once known.
2885
+ */
2886
+ externalId: (string | null)
2887
+ /**
2888
+ * URL of the published post, once known.
2889
+ */
2890
+ externalUrl: (string | null)
2891
+ /**
2892
+ * ISO-8601 time it was confirmed published.
2893
+ */
2894
+ publishedAt: (string | null)
2895
+ /**
2896
+ * ISO-8601 time the publication is due.
2897
+ */
2898
+ scheduledAt: string
2899
+ /**
2900
+ * How many reminders have been sent for this publication.
2901
+ */
2902
+ reminderCount: number
2903
+ /**
2904
+ * The key that makes a retry the same publication.
2905
+ */
2906
+ idempotencyKey: string
2907
+ /**
2908
+ * ISO-8601 time the most recent reminder went out, or null if none has.
2909
+ */
2910
+ reminderSentAt: (string | null)
2911
+ }
2912
+
2913
+ export interface ContentPublicationsListInput {
2914
+ /**
2915
+ * Maximum number to return (1-100, default 50).
2916
+ */
2917
+ limit?: number
2918
+ /**
2919
+ * Return only publications in this state.
2920
+ */
2921
+ state?: ("pending" | "publishing" | "published" | "failed" | "cancelled")
2922
+ /**
2923
+ * How many to skip, for paging.
2924
+ */
2925
+ offset?: number
2926
+ /**
2927
+ * Return only publications of this post.
2928
+ */
2929
+ postId?: string
2930
+ /**
2931
+ * Return only publications to this channel.
2932
+ */
2933
+ channelId?: string
2934
+ /**
2935
+ * Return only publications scheduled at or before this ISO-8601 time.
2936
+ */
2937
+ scheduledTo?: string
2938
+ /**
2939
+ * Return only publications scheduled at or after this ISO-8601 time.
2940
+ */
2941
+ scheduledFrom?: string
2942
+ }
2943
+
2944
+ export interface ContentPublicationsListOutput {
2945
+ /**
2946
+ * Total number of matching publications, ignoring paging.
2947
+ */
2948
+ total: number
2949
+ /**
2950
+ * The page of publications, newest slot first.
2951
+ */
2952
+ publications: {
2953
+ /**
2954
+ * Publication id.
2955
+ */
2956
+ id: string
2957
+ /**
2958
+ * The exact text that will be published to this channel — markdown already flattened to plain network text at schedule time. Not the markdown source; that stays on the post.
2959
+ */
2960
+ text: string
2961
+ /**
2962
+ * pending (queued) -> publishing (the reminder was sent; a person is publishing by hand) -> published (confirmed) | failed | cancelled.
2963
+ */
2964
+ state: ("pending" | "publishing" | "published" | "failed" | "cancelled")
2965
+ /**
2966
+ * The post being published.
2967
+ */
2968
+ postId: string
2969
+ /**
2970
+ * What publishing this costs in USD, computed when it was scheduled. On X a post carrying a link costs 13x a plain one. Null means the cost is not known — an auto channel refuses to dispatch it.
2971
+ */
2972
+ costUsd: (number | null)
2973
+ /**
2974
+ * How many dispatch attempts have been made.
2975
+ */
2976
+ attempts: number
2977
+ /**
2978
+ * The channel it is published to.
2979
+ */
2980
+ channelId: string
2981
+ /**
2982
+ * Which rate produced costUsd: "plain", "link" or "free".
2983
+ */
2984
+ costBasis: (string | null)
2985
+ /**
2986
+ * ISO-8601 creation time.
2987
+ */
2988
+ createdAt: string
2989
+ /**
2990
+ * The most recent failure, if any.
2991
+ */
2992
+ lastError: (string | null)
2993
+ /**
2994
+ * ISO-8601 time of the last change.
2995
+ */
2996
+ updatedAt: string
2997
+ /**
2998
+ * The network's id for the published post, once known.
2999
+ */
3000
+ externalId: (string | null)
3001
+ /**
3002
+ * URL of the published post, once known.
3003
+ */
3004
+ externalUrl: (string | null)
3005
+ /**
3006
+ * ISO-8601 time it was confirmed published.
3007
+ */
3008
+ publishedAt: (string | null)
3009
+ /**
3010
+ * ISO-8601 time the publication is due.
3011
+ */
3012
+ scheduledAt: string
3013
+ /**
3014
+ * How many reminders have been sent for this publication.
3015
+ */
3016
+ reminderCount: number
3017
+ /**
3018
+ * The key that makes a retry the same publication.
3019
+ */
3020
+ idempotencyKey: string
3021
+ /**
3022
+ * ISO-8601 time the most recent reminder went out, or null if none has.
3023
+ */
3024
+ reminderSentAt: (string | null)
3025
+ }[]
3026
+ }
3027
+
3028
+ export interface ContentPublicationsPublishInput {
3029
+ /**
3030
+ * Per-channel variant of the text, in markdown. Omit to use the post text. It is rendered to plain network text before it is stored — call content_publications_validate first if you want to see the result.
3031
+ */
3032
+ text?: string
3033
+ /**
3034
+ * The post to publish. It must already be approved.
3035
+ */
3036
+ postId: string
3037
+ /**
3038
+ * The channel to publish to.
3039
+ */
3040
+ channelId: string
3041
+ /**
3042
+ * Your own key for this publishing intent, unique within the product. Resending the same key returns the SAME publication instead of creating a second one — a duplicate in a client feed is the worst defect this product can ship. Omit it and one is derived from post, channel and time.
3043
+ */
3044
+ idempotencyKey?: string
3045
+ }
3046
+
3047
+ export interface ContentPublicationsPublishOutput {
3048
+ /**
3049
+ * Publication id.
3050
+ */
3051
+ id: string
3052
+ /**
3053
+ * The exact text that will be published to this channel — markdown already flattened to plain network text at schedule time. Not the markdown source; that stays on the post.
3054
+ */
3055
+ text: string
3056
+ /**
3057
+ * pending (queued) -> publishing (the reminder was sent; a person is publishing by hand) -> published (confirmed) | failed | cancelled.
3058
+ */
3059
+ state: ("pending" | "publishing" | "published" | "failed" | "cancelled")
3060
+ /**
3061
+ * The post being published.
3062
+ */
3063
+ postId: string
3064
+ /**
3065
+ * What publishing this costs in USD, computed when it was scheduled. On X a post carrying a link costs 13x a plain one. Null means the cost is not known — an auto channel refuses to dispatch it.
3066
+ */
3067
+ costUsd: (number | null)
3068
+ /**
3069
+ * How many dispatch attempts have been made.
3070
+ */
3071
+ attempts: number
3072
+ /**
3073
+ * The channel it is published to.
3074
+ */
3075
+ channelId: string
3076
+ /**
3077
+ * Which rate produced costUsd: "plain", "link" or "free".
3078
+ */
3079
+ costBasis: (string | null)
3080
+ /**
3081
+ * ISO-8601 creation time.
3082
+ */
3083
+ createdAt: string
3084
+ /**
3085
+ * The most recent failure, if any.
3086
+ */
3087
+ lastError: (string | null)
3088
+ /**
3089
+ * ISO-8601 time of the last change.
3090
+ */
3091
+ updatedAt: string
3092
+ /**
3093
+ * The network's id for the published post, once known.
3094
+ */
3095
+ externalId: (string | null)
3096
+ /**
3097
+ * URL of the published post, once known.
3098
+ */
3099
+ externalUrl: (string | null)
3100
+ /**
3101
+ * ISO-8601 time it was confirmed published.
3102
+ */
3103
+ publishedAt: (string | null)
3104
+ /**
3105
+ * ISO-8601 time the publication is due.
3106
+ */
3107
+ scheduledAt: string
3108
+ /**
3109
+ * How many reminders have been sent for this publication.
3110
+ */
3111
+ reminderCount: number
3112
+ /**
3113
+ * The key that makes a retry the same publication.
3114
+ */
3115
+ idempotencyKey: string
3116
+ /**
3117
+ * ISO-8601 time the most recent reminder went out, or null if none has.
3118
+ */
3119
+ reminderSentAt: (string | null)
3120
+ }
3121
+
3122
+ export interface ContentPublicationsRemindInput {
3123
+ /**
3124
+ * The publication id returned by content_publications_schedule.
3125
+ */
3126
+ id: string
3127
+ }
3128
+
3129
+ export interface ContentPublicationsRemindOutput {
3130
+ /**
3131
+ * Publication id.
3132
+ */
3133
+ id: string
3134
+ /**
3135
+ * The exact text that will be published to this channel — markdown already flattened to plain network text at schedule time. Not the markdown source; that stays on the post.
3136
+ */
3137
+ text: string
3138
+ /**
3139
+ * pending (queued) -> publishing (the reminder was sent; a person is publishing by hand) -> published (confirmed) | failed | cancelled.
3140
+ */
3141
+ state: ("pending" | "publishing" | "published" | "failed" | "cancelled")
3142
+ /**
3143
+ * The post being published.
3144
+ */
3145
+ postId: string
3146
+ /**
3147
+ * What publishing this costs in USD, computed when it was scheduled. On X a post carrying a link costs 13x a plain one. Null means the cost is not known — an auto channel refuses to dispatch it.
3148
+ */
3149
+ costUsd: (number | null)
3150
+ /**
3151
+ * How many dispatch attempts have been made.
3152
+ */
3153
+ attempts: number
3154
+ /**
3155
+ * The channel it is published to.
3156
+ */
3157
+ channelId: string
3158
+ /**
3159
+ * Which rate produced costUsd: "plain", "link" or "free".
3160
+ */
3161
+ costBasis: (string | null)
3162
+ /**
3163
+ * ISO-8601 creation time.
3164
+ */
3165
+ createdAt: string
3166
+ /**
3167
+ * The most recent failure, if any.
3168
+ */
3169
+ lastError: (string | null)
3170
+ /**
3171
+ * ISO-8601 time of the last change.
3172
+ */
3173
+ updatedAt: string
3174
+ /**
3175
+ * The network's id for the published post, once known.
3176
+ */
3177
+ externalId: (string | null)
3178
+ /**
3179
+ * URL of the published post, once known.
3180
+ */
3181
+ externalUrl: (string | null)
3182
+ /**
3183
+ * ISO-8601 time it was confirmed published.
3184
+ */
3185
+ publishedAt: (string | null)
3186
+ /**
3187
+ * ISO-8601 time the publication is due.
3188
+ */
3189
+ scheduledAt: string
3190
+ /**
3191
+ * How many reminders have been sent for this publication.
3192
+ */
3193
+ reminderCount: number
3194
+ /**
3195
+ * The key that makes a retry the same publication.
3196
+ */
3197
+ idempotencyKey: string
3198
+ /**
3199
+ * ISO-8601 time the most recent reminder went out, or null if none has.
3200
+ */
3201
+ reminderSentAt: (string | null)
3202
+ }
3203
+
3204
+ export interface ContentPublicationsRescheduleInput {
3205
+ /**
3206
+ * The publication id returned by content_publications_schedule.
3207
+ */
3208
+ id: string
3209
+ /**
3210
+ * New ISO-8601 time. The publication returns to the queue.
3211
+ */
3212
+ scheduledAt: string
3213
+ }
3214
+
3215
+ export interface ContentPublicationsRescheduleOutput {
3216
+ /**
3217
+ * Publication id.
3218
+ */
3219
+ id: string
3220
+ /**
3221
+ * The exact text that will be published to this channel — markdown already flattened to plain network text at schedule time. Not the markdown source; that stays on the post.
3222
+ */
3223
+ text: string
3224
+ /**
3225
+ * pending (queued) -> publishing (the reminder was sent; a person is publishing by hand) -> published (confirmed) | failed | cancelled.
3226
+ */
3227
+ state: ("pending" | "publishing" | "published" | "failed" | "cancelled")
3228
+ /**
3229
+ * The post being published.
3230
+ */
3231
+ postId: string
3232
+ /**
3233
+ * What publishing this costs in USD, computed when it was scheduled. On X a post carrying a link costs 13x a plain one. Null means the cost is not known — an auto channel refuses to dispatch it.
3234
+ */
3235
+ costUsd: (number | null)
3236
+ /**
3237
+ * How many dispatch attempts have been made.
3238
+ */
3239
+ attempts: number
3240
+ /**
3241
+ * The channel it is published to.
3242
+ */
3243
+ channelId: string
3244
+ /**
3245
+ * Which rate produced costUsd: "plain", "link" or "free".
3246
+ */
3247
+ costBasis: (string | null)
3248
+ /**
3249
+ * ISO-8601 creation time.
3250
+ */
3251
+ createdAt: string
3252
+ /**
3253
+ * The most recent failure, if any.
3254
+ */
3255
+ lastError: (string | null)
3256
+ /**
3257
+ * ISO-8601 time of the last change.
3258
+ */
3259
+ updatedAt: string
3260
+ /**
3261
+ * The network's id for the published post, once known.
3262
+ */
3263
+ externalId: (string | null)
3264
+ /**
3265
+ * URL of the published post, once known.
3266
+ */
3267
+ externalUrl: (string | null)
3268
+ /**
3269
+ * ISO-8601 time it was confirmed published.
3270
+ */
3271
+ publishedAt: (string | null)
3272
+ /**
3273
+ * ISO-8601 time the publication is due.
3274
+ */
3275
+ scheduledAt: string
3276
+ /**
3277
+ * How many reminders have been sent for this publication.
3278
+ */
3279
+ reminderCount: number
3280
+ /**
3281
+ * The key that makes a retry the same publication.
3282
+ */
3283
+ idempotencyKey: string
3284
+ /**
3285
+ * ISO-8601 time the most recent reminder went out, or null if none has.
3286
+ */
3287
+ reminderSentAt: (string | null)
3288
+ }
3289
+
3290
+ export interface ContentPublicationsScheduleInput {
3291
+ /**
3292
+ * Per-channel variant of the text, in markdown. Omit to use the post text. It is rendered to plain network text before it is stored — call content_publications_validate first if you want to see the result.
3293
+ */
3294
+ text?: string
3295
+ /**
3296
+ * The post to publish. It must already be approved — an unapproved text never publishes.
3297
+ */
3298
+ postId: string
3299
+ /**
3300
+ * The channel to publish to. Get its character limit from content_channels_get first.
3301
+ */
3302
+ channelId: string
3303
+ /**
3304
+ * ISO-8601 time to publish. In the past means "as soon as the next tick runs".
3305
+ */
3306
+ scheduledAt: string
3307
+ /**
3308
+ * Your own key for this publishing intent, unique within the product. Resending the same key returns the SAME publication instead of creating a second one — a duplicate in a client feed is the worst defect this product can ship. Omit it and one is derived from post, channel and time.
3309
+ */
3310
+ idempotencyKey?: string
3311
+ }
3312
+
3313
+ export interface ContentPublicationsScheduleOutput {
3314
+ /**
3315
+ * Publication id.
3316
+ */
3317
+ id: string
3318
+ /**
3319
+ * The exact text that will be published to this channel — markdown already flattened to plain network text at schedule time. Not the markdown source; that stays on the post.
3320
+ */
3321
+ text: string
3322
+ /**
3323
+ * pending (queued) -> publishing (the reminder was sent; a person is publishing by hand) -> published (confirmed) | failed | cancelled.
3324
+ */
3325
+ state: ("pending" | "publishing" | "published" | "failed" | "cancelled")
3326
+ /**
3327
+ * The post being published.
3328
+ */
3329
+ postId: string
3330
+ /**
3331
+ * What publishing this costs in USD, computed when it was scheduled. On X a post carrying a link costs 13x a plain one. Null means the cost is not known — an auto channel refuses to dispatch it.
3332
+ */
3333
+ costUsd: (number | null)
3334
+ /**
3335
+ * How many dispatch attempts have been made.
3336
+ */
3337
+ attempts: number
3338
+ /**
3339
+ * The channel it is published to.
3340
+ */
3341
+ channelId: string
3342
+ /**
3343
+ * Which rate produced costUsd: "plain", "link" or "free".
3344
+ */
3345
+ costBasis: (string | null)
3346
+ /**
3347
+ * ISO-8601 creation time.
3348
+ */
3349
+ createdAt: string
3350
+ /**
3351
+ * The most recent failure, if any.
3352
+ */
3353
+ lastError: (string | null)
3354
+ /**
3355
+ * ISO-8601 time of the last change.
3356
+ */
3357
+ updatedAt: string
3358
+ /**
3359
+ * The network's id for the published post, once known.
3360
+ */
3361
+ externalId: (string | null)
3362
+ /**
3363
+ * URL of the published post, once known.
3364
+ */
3365
+ externalUrl: (string | null)
3366
+ /**
3367
+ * ISO-8601 time it was confirmed published.
3368
+ */
3369
+ publishedAt: (string | null)
3370
+ /**
3371
+ * ISO-8601 time the publication is due.
3372
+ */
3373
+ scheduledAt: string
3374
+ /**
3375
+ * How many reminders have been sent for this publication.
3376
+ */
3377
+ reminderCount: number
3378
+ /**
3379
+ * The key that makes a retry the same publication.
3380
+ */
3381
+ idempotencyKey: string
3382
+ /**
3383
+ * ISO-8601 time the most recent reminder went out, or null if none has.
3384
+ */
3385
+ reminderSentAt: (string | null)
3386
+ }
3387
+
3388
+ export interface ContentPublicationsValidateInput {
3389
+ /**
3390
+ * The post to check. It does not have to be approved yet — this never publishes.
3391
+ */
3392
+ postId: string
3393
+ /**
3394
+ * One entry per channel you are considering. Check them all in one call.
3395
+ *
3396
+ * @minItems 1
3397
+ * @maxItems 20
3398
+ */
3399
+ channels: [{
3400
+ /**
3401
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3402
+ */
3403
+ text?: string
3404
+ /**
3405
+ * A channel to check this post against.
3406
+ */
3407
+ channelId: string
3408
+ }]|[{
3409
+ /**
3410
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3411
+ */
3412
+ text?: string
3413
+ /**
3414
+ * A channel to check this post against.
3415
+ */
3416
+ channelId: string
3417
+ }, {
3418
+ /**
3419
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3420
+ */
3421
+ text?: string
3422
+ /**
3423
+ * A channel to check this post against.
3424
+ */
3425
+ channelId: string
3426
+ }]|[{
3427
+ /**
3428
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3429
+ */
3430
+ text?: string
3431
+ /**
3432
+ * A channel to check this post against.
3433
+ */
3434
+ channelId: string
3435
+ }, {
3436
+ /**
3437
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3438
+ */
3439
+ text?: string
3440
+ /**
3441
+ * A channel to check this post against.
3442
+ */
3443
+ channelId: string
3444
+ }, {
3445
+ /**
3446
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3447
+ */
3448
+ text?: string
3449
+ /**
3450
+ * A channel to check this post against.
3451
+ */
3452
+ channelId: string
3453
+ }]|[{
3454
+ /**
3455
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3456
+ */
3457
+ text?: string
3458
+ /**
3459
+ * A channel to check this post against.
3460
+ */
3461
+ channelId: string
3462
+ }, {
3463
+ /**
3464
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3465
+ */
3466
+ text?: string
3467
+ /**
3468
+ * A channel to check this post against.
3469
+ */
3470
+ channelId: string
3471
+ }, {
3472
+ /**
3473
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3474
+ */
3475
+ text?: string
3476
+ /**
3477
+ * A channel to check this post against.
3478
+ */
3479
+ channelId: string
3480
+ }, {
3481
+ /**
3482
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3483
+ */
3484
+ text?: string
3485
+ /**
3486
+ * A channel to check this post against.
3487
+ */
3488
+ channelId: string
3489
+ }]|[{
3490
+ /**
3491
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3492
+ */
3493
+ text?: string
3494
+ /**
3495
+ * A channel to check this post against.
3496
+ */
3497
+ channelId: string
3498
+ }, {
3499
+ /**
3500
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3501
+ */
3502
+ text?: string
3503
+ /**
3504
+ * A channel to check this post against.
3505
+ */
3506
+ channelId: string
3507
+ }, {
3508
+ /**
3509
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3510
+ */
3511
+ text?: string
3512
+ /**
3513
+ * A channel to check this post against.
3514
+ */
3515
+ channelId: string
3516
+ }, {
3517
+ /**
3518
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3519
+ */
3520
+ text?: string
3521
+ /**
3522
+ * A channel to check this post against.
3523
+ */
3524
+ channelId: string
3525
+ }, {
3526
+ /**
3527
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3528
+ */
3529
+ text?: string
3530
+ /**
3531
+ * A channel to check this post against.
3532
+ */
3533
+ channelId: string
3534
+ }]|[{
3535
+ /**
3536
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3537
+ */
3538
+ text?: string
3539
+ /**
3540
+ * A channel to check this post against.
3541
+ */
3542
+ channelId: string
3543
+ }, {
3544
+ /**
3545
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3546
+ */
3547
+ text?: string
3548
+ /**
3549
+ * A channel to check this post against.
3550
+ */
3551
+ channelId: string
3552
+ }, {
3553
+ /**
3554
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3555
+ */
3556
+ text?: string
3557
+ /**
3558
+ * A channel to check this post against.
3559
+ */
3560
+ channelId: string
3561
+ }, {
3562
+ /**
3563
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3564
+ */
3565
+ text?: string
3566
+ /**
3567
+ * A channel to check this post against.
3568
+ */
3569
+ channelId: string
3570
+ }, {
3571
+ /**
3572
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3573
+ */
3574
+ text?: string
3575
+ /**
3576
+ * A channel to check this post against.
3577
+ */
3578
+ channelId: string
3579
+ }, {
3580
+ /**
3581
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3582
+ */
3583
+ text?: string
3584
+ /**
3585
+ * A channel to check this post against.
3586
+ */
3587
+ channelId: string
3588
+ }]|[{
3589
+ /**
3590
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3591
+ */
3592
+ text?: string
3593
+ /**
3594
+ * A channel to check this post against.
3595
+ */
3596
+ channelId: string
3597
+ }, {
3598
+ /**
3599
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3600
+ */
3601
+ text?: string
3602
+ /**
3603
+ * A channel to check this post against.
3604
+ */
3605
+ channelId: string
3606
+ }, {
3607
+ /**
3608
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3609
+ */
3610
+ text?: string
3611
+ /**
3612
+ * A channel to check this post against.
3613
+ */
3614
+ channelId: string
3615
+ }, {
3616
+ /**
3617
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3618
+ */
3619
+ text?: string
3620
+ /**
3621
+ * A channel to check this post against.
3622
+ */
3623
+ channelId: string
3624
+ }, {
3625
+ /**
3626
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3627
+ */
3628
+ text?: string
3629
+ /**
3630
+ * A channel to check this post against.
3631
+ */
3632
+ channelId: string
3633
+ }, {
3634
+ /**
3635
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3636
+ */
3637
+ text?: string
3638
+ /**
3639
+ * A channel to check this post against.
3640
+ */
3641
+ channelId: string
3642
+ }, {
3643
+ /**
3644
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3645
+ */
3646
+ text?: string
3647
+ /**
3648
+ * A channel to check this post against.
3649
+ */
3650
+ channelId: string
3651
+ }]|[{
3652
+ /**
3653
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3654
+ */
3655
+ text?: string
3656
+ /**
3657
+ * A channel to check this post against.
3658
+ */
3659
+ channelId: string
3660
+ }, {
3661
+ /**
3662
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3663
+ */
3664
+ text?: string
3665
+ /**
3666
+ * A channel to check this post against.
3667
+ */
3668
+ channelId: string
3669
+ }, {
3670
+ /**
3671
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3672
+ */
3673
+ text?: string
3674
+ /**
3675
+ * A channel to check this post against.
3676
+ */
3677
+ channelId: string
3678
+ }, {
3679
+ /**
3680
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3681
+ */
3682
+ text?: string
3683
+ /**
3684
+ * A channel to check this post against.
3685
+ */
3686
+ channelId: string
3687
+ }, {
3688
+ /**
3689
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3690
+ */
3691
+ text?: string
3692
+ /**
3693
+ * A channel to check this post against.
3694
+ */
3695
+ channelId: string
3696
+ }, {
3697
+ /**
3698
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3699
+ */
3700
+ text?: string
3701
+ /**
3702
+ * A channel to check this post against.
3703
+ */
3704
+ channelId: string
3705
+ }, {
3706
+ /**
3707
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3708
+ */
3709
+ text?: string
3710
+ /**
3711
+ * A channel to check this post against.
3712
+ */
3713
+ channelId: string
3714
+ }, {
3715
+ /**
3716
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3717
+ */
3718
+ text?: string
3719
+ /**
3720
+ * A channel to check this post against.
3721
+ */
3722
+ channelId: string
3723
+ }]|[{
3724
+ /**
3725
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3726
+ */
3727
+ text?: string
3728
+ /**
3729
+ * A channel to check this post against.
3730
+ */
3731
+ channelId: string
3732
+ }, {
3733
+ /**
3734
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3735
+ */
3736
+ text?: string
3737
+ /**
3738
+ * A channel to check this post against.
3739
+ */
3740
+ channelId: string
3741
+ }, {
3742
+ /**
3743
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3744
+ */
3745
+ text?: string
3746
+ /**
3747
+ * A channel to check this post against.
3748
+ */
3749
+ channelId: string
3750
+ }, {
3751
+ /**
3752
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3753
+ */
3754
+ text?: string
3755
+ /**
3756
+ * A channel to check this post against.
3757
+ */
3758
+ channelId: string
3759
+ }, {
3760
+ /**
3761
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3762
+ */
3763
+ text?: string
3764
+ /**
3765
+ * A channel to check this post against.
3766
+ */
3767
+ channelId: string
3768
+ }, {
3769
+ /**
3770
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3771
+ */
3772
+ text?: string
3773
+ /**
3774
+ * A channel to check this post against.
3775
+ */
3776
+ channelId: string
3777
+ }, {
3778
+ /**
3779
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3780
+ */
3781
+ text?: string
3782
+ /**
3783
+ * A channel to check this post against.
3784
+ */
3785
+ channelId: string
3786
+ }, {
3787
+ /**
3788
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3789
+ */
3790
+ text?: string
3791
+ /**
3792
+ * A channel to check this post against.
3793
+ */
3794
+ channelId: string
3795
+ }, {
3796
+ /**
3797
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3798
+ */
3799
+ text?: string
3800
+ /**
3801
+ * A channel to check this post against.
3802
+ */
3803
+ channelId: string
3804
+ }]|[{
3805
+ /**
3806
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3807
+ */
3808
+ text?: string
3809
+ /**
3810
+ * A channel to check this post against.
3811
+ */
3812
+ channelId: string
3813
+ }, {
3814
+ /**
3815
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3816
+ */
3817
+ text?: string
3818
+ /**
3819
+ * A channel to check this post against.
3820
+ */
3821
+ channelId: string
3822
+ }, {
3823
+ /**
3824
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3825
+ */
3826
+ text?: string
3827
+ /**
3828
+ * A channel to check this post against.
3829
+ */
3830
+ channelId: string
3831
+ }, {
3832
+ /**
3833
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3834
+ */
3835
+ text?: string
3836
+ /**
3837
+ * A channel to check this post against.
3838
+ */
3839
+ channelId: string
3840
+ }, {
3841
+ /**
3842
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3843
+ */
3844
+ text?: string
3845
+ /**
3846
+ * A channel to check this post against.
3847
+ */
3848
+ channelId: string
3849
+ }, {
3850
+ /**
3851
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3852
+ */
3853
+ text?: string
3854
+ /**
3855
+ * A channel to check this post against.
3856
+ */
3857
+ channelId: string
3858
+ }, {
3859
+ /**
3860
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3861
+ */
3862
+ text?: string
3863
+ /**
3864
+ * A channel to check this post against.
3865
+ */
3866
+ channelId: string
3867
+ }, {
3868
+ /**
3869
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3870
+ */
3871
+ text?: string
3872
+ /**
3873
+ * A channel to check this post against.
3874
+ */
3875
+ channelId: string
3876
+ }, {
3877
+ /**
3878
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3879
+ */
3880
+ text?: string
3881
+ /**
3882
+ * A channel to check this post against.
3883
+ */
3884
+ channelId: string
3885
+ }, {
3886
+ /**
3887
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3888
+ */
3889
+ text?: string
3890
+ /**
3891
+ * A channel to check this post against.
3892
+ */
3893
+ channelId: string
3894
+ }]|[{
3895
+ /**
3896
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3897
+ */
3898
+ text?: string
3899
+ /**
3900
+ * A channel to check this post against.
3901
+ */
3902
+ channelId: string
3903
+ }, {
3904
+ /**
3905
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3906
+ */
3907
+ text?: string
3908
+ /**
3909
+ * A channel to check this post against.
3910
+ */
3911
+ channelId: string
3912
+ }, {
3913
+ /**
3914
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3915
+ */
3916
+ text?: string
3917
+ /**
3918
+ * A channel to check this post against.
3919
+ */
3920
+ channelId: string
3921
+ }, {
3922
+ /**
3923
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3924
+ */
3925
+ text?: string
3926
+ /**
3927
+ * A channel to check this post against.
3928
+ */
3929
+ channelId: string
3930
+ }, {
3931
+ /**
3932
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3933
+ */
3934
+ text?: string
3935
+ /**
3936
+ * A channel to check this post against.
3937
+ */
3938
+ channelId: string
3939
+ }, {
3940
+ /**
3941
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3942
+ */
3943
+ text?: string
3944
+ /**
3945
+ * A channel to check this post against.
3946
+ */
3947
+ channelId: string
3948
+ }, {
3949
+ /**
3950
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3951
+ */
3952
+ text?: string
3953
+ /**
3954
+ * A channel to check this post against.
3955
+ */
3956
+ channelId: string
3957
+ }, {
3958
+ /**
3959
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3960
+ */
3961
+ text?: string
3962
+ /**
3963
+ * A channel to check this post against.
3964
+ */
3965
+ channelId: string
3966
+ }, {
3967
+ /**
3968
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3969
+ */
3970
+ text?: string
3971
+ /**
3972
+ * A channel to check this post against.
3973
+ */
3974
+ channelId: string
3975
+ }, {
3976
+ /**
3977
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3978
+ */
3979
+ text?: string
3980
+ /**
3981
+ * A channel to check this post against.
3982
+ */
3983
+ channelId: string
3984
+ }, {
3985
+ /**
3986
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3987
+ */
3988
+ text?: string
3989
+ /**
3990
+ * A channel to check this post against.
3991
+ */
3992
+ channelId: string
3993
+ }]|[{
3994
+ /**
3995
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
3996
+ */
3997
+ text?: string
3998
+ /**
3999
+ * A channel to check this post against.
4000
+ */
4001
+ channelId: string
4002
+ }, {
4003
+ /**
4004
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4005
+ */
4006
+ text?: string
4007
+ /**
4008
+ * A channel to check this post against.
4009
+ */
4010
+ channelId: string
4011
+ }, {
4012
+ /**
4013
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4014
+ */
4015
+ text?: string
4016
+ /**
4017
+ * A channel to check this post against.
4018
+ */
4019
+ channelId: string
4020
+ }, {
4021
+ /**
4022
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4023
+ */
4024
+ text?: string
4025
+ /**
4026
+ * A channel to check this post against.
4027
+ */
4028
+ channelId: string
4029
+ }, {
4030
+ /**
4031
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4032
+ */
4033
+ text?: string
4034
+ /**
4035
+ * A channel to check this post against.
4036
+ */
4037
+ channelId: string
4038
+ }, {
4039
+ /**
4040
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4041
+ */
4042
+ text?: string
4043
+ /**
4044
+ * A channel to check this post against.
4045
+ */
4046
+ channelId: string
4047
+ }, {
4048
+ /**
4049
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4050
+ */
4051
+ text?: string
4052
+ /**
4053
+ * A channel to check this post against.
4054
+ */
4055
+ channelId: string
4056
+ }, {
4057
+ /**
4058
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4059
+ */
4060
+ text?: string
4061
+ /**
4062
+ * A channel to check this post against.
4063
+ */
4064
+ channelId: string
4065
+ }, {
4066
+ /**
4067
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4068
+ */
4069
+ text?: string
4070
+ /**
4071
+ * A channel to check this post against.
4072
+ */
4073
+ channelId: string
4074
+ }, {
4075
+ /**
4076
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4077
+ */
4078
+ text?: string
4079
+ /**
4080
+ * A channel to check this post against.
4081
+ */
4082
+ channelId: string
4083
+ }, {
4084
+ /**
4085
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4086
+ */
4087
+ text?: string
4088
+ /**
4089
+ * A channel to check this post against.
4090
+ */
4091
+ channelId: string
4092
+ }, {
4093
+ /**
4094
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4095
+ */
4096
+ text?: string
4097
+ /**
4098
+ * A channel to check this post against.
4099
+ */
4100
+ channelId: string
4101
+ }]|[{
4102
+ /**
4103
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4104
+ */
4105
+ text?: string
4106
+ /**
4107
+ * A channel to check this post against.
4108
+ */
4109
+ channelId: string
4110
+ }, {
4111
+ /**
4112
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4113
+ */
4114
+ text?: string
4115
+ /**
4116
+ * A channel to check this post against.
4117
+ */
4118
+ channelId: string
4119
+ }, {
4120
+ /**
4121
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4122
+ */
4123
+ text?: string
4124
+ /**
4125
+ * A channel to check this post against.
4126
+ */
4127
+ channelId: string
4128
+ }, {
4129
+ /**
4130
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4131
+ */
4132
+ text?: string
4133
+ /**
4134
+ * A channel to check this post against.
4135
+ */
4136
+ channelId: string
4137
+ }, {
4138
+ /**
4139
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4140
+ */
4141
+ text?: string
4142
+ /**
4143
+ * A channel to check this post against.
4144
+ */
4145
+ channelId: string
4146
+ }, {
4147
+ /**
4148
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4149
+ */
4150
+ text?: string
4151
+ /**
4152
+ * A channel to check this post against.
4153
+ */
4154
+ channelId: string
4155
+ }, {
4156
+ /**
4157
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4158
+ */
4159
+ text?: string
4160
+ /**
4161
+ * A channel to check this post against.
4162
+ */
4163
+ channelId: string
4164
+ }, {
4165
+ /**
4166
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4167
+ */
4168
+ text?: string
4169
+ /**
4170
+ * A channel to check this post against.
4171
+ */
4172
+ channelId: string
4173
+ }, {
4174
+ /**
4175
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4176
+ */
4177
+ text?: string
4178
+ /**
4179
+ * A channel to check this post against.
4180
+ */
4181
+ channelId: string
4182
+ }, {
4183
+ /**
4184
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4185
+ */
4186
+ text?: string
4187
+ /**
4188
+ * A channel to check this post against.
4189
+ */
4190
+ channelId: string
4191
+ }, {
4192
+ /**
4193
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4194
+ */
4195
+ text?: string
4196
+ /**
4197
+ * A channel to check this post against.
4198
+ */
4199
+ channelId: string
4200
+ }, {
4201
+ /**
4202
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4203
+ */
4204
+ text?: string
4205
+ /**
4206
+ * A channel to check this post against.
4207
+ */
4208
+ channelId: string
4209
+ }, {
4210
+ /**
4211
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4212
+ */
4213
+ text?: string
4214
+ /**
4215
+ * A channel to check this post against.
4216
+ */
4217
+ channelId: string
4218
+ }]|[{
4219
+ /**
4220
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4221
+ */
4222
+ text?: string
4223
+ /**
4224
+ * A channel to check this post against.
4225
+ */
4226
+ channelId: string
4227
+ }, {
4228
+ /**
4229
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4230
+ */
4231
+ text?: string
4232
+ /**
4233
+ * A channel to check this post against.
4234
+ */
4235
+ channelId: string
4236
+ }, {
4237
+ /**
4238
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4239
+ */
4240
+ text?: string
4241
+ /**
4242
+ * A channel to check this post against.
4243
+ */
4244
+ channelId: string
4245
+ }, {
4246
+ /**
4247
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4248
+ */
4249
+ text?: string
4250
+ /**
4251
+ * A channel to check this post against.
4252
+ */
4253
+ channelId: string
4254
+ }, {
4255
+ /**
4256
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4257
+ */
4258
+ text?: string
4259
+ /**
4260
+ * A channel to check this post against.
4261
+ */
4262
+ channelId: string
4263
+ }, {
4264
+ /**
4265
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4266
+ */
4267
+ text?: string
4268
+ /**
4269
+ * A channel to check this post against.
4270
+ */
4271
+ channelId: string
4272
+ }, {
4273
+ /**
4274
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4275
+ */
4276
+ text?: string
4277
+ /**
4278
+ * A channel to check this post against.
4279
+ */
4280
+ channelId: string
4281
+ }, {
4282
+ /**
4283
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4284
+ */
4285
+ text?: string
4286
+ /**
4287
+ * A channel to check this post against.
4288
+ */
4289
+ channelId: string
4290
+ }, {
4291
+ /**
4292
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4293
+ */
4294
+ text?: string
4295
+ /**
4296
+ * A channel to check this post against.
4297
+ */
4298
+ channelId: string
4299
+ }, {
4300
+ /**
4301
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4302
+ */
4303
+ text?: string
4304
+ /**
4305
+ * A channel to check this post against.
4306
+ */
4307
+ channelId: string
4308
+ }, {
4309
+ /**
4310
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4311
+ */
4312
+ text?: string
4313
+ /**
4314
+ * A channel to check this post against.
4315
+ */
4316
+ channelId: string
4317
+ }, {
4318
+ /**
4319
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4320
+ */
4321
+ text?: string
4322
+ /**
4323
+ * A channel to check this post against.
4324
+ */
4325
+ channelId: string
4326
+ }, {
4327
+ /**
4328
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4329
+ */
4330
+ text?: string
4331
+ /**
4332
+ * A channel to check this post against.
4333
+ */
4334
+ channelId: string
4335
+ }, {
4336
+ /**
4337
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4338
+ */
4339
+ text?: string
4340
+ /**
4341
+ * A channel to check this post against.
4342
+ */
4343
+ channelId: string
4344
+ }]|[{
4345
+ /**
4346
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4347
+ */
4348
+ text?: string
4349
+ /**
4350
+ * A channel to check this post against.
4351
+ */
4352
+ channelId: string
4353
+ }, {
4354
+ /**
4355
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4356
+ */
4357
+ text?: string
4358
+ /**
4359
+ * A channel to check this post against.
4360
+ */
4361
+ channelId: string
4362
+ }, {
4363
+ /**
4364
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4365
+ */
4366
+ text?: string
4367
+ /**
4368
+ * A channel to check this post against.
4369
+ */
4370
+ channelId: string
4371
+ }, {
4372
+ /**
4373
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4374
+ */
4375
+ text?: string
4376
+ /**
4377
+ * A channel to check this post against.
4378
+ */
4379
+ channelId: string
4380
+ }, {
4381
+ /**
4382
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4383
+ */
4384
+ text?: string
4385
+ /**
4386
+ * A channel to check this post against.
4387
+ */
4388
+ channelId: string
4389
+ }, {
4390
+ /**
4391
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4392
+ */
4393
+ text?: string
4394
+ /**
4395
+ * A channel to check this post against.
4396
+ */
4397
+ channelId: string
4398
+ }, {
4399
+ /**
4400
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4401
+ */
4402
+ text?: string
4403
+ /**
4404
+ * A channel to check this post against.
4405
+ */
4406
+ channelId: string
4407
+ }, {
4408
+ /**
4409
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4410
+ */
4411
+ text?: string
4412
+ /**
4413
+ * A channel to check this post against.
4414
+ */
4415
+ channelId: string
4416
+ }, {
4417
+ /**
4418
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4419
+ */
4420
+ text?: string
4421
+ /**
4422
+ * A channel to check this post against.
4423
+ */
4424
+ channelId: string
4425
+ }, {
4426
+ /**
4427
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4428
+ */
4429
+ text?: string
4430
+ /**
4431
+ * A channel to check this post against.
4432
+ */
4433
+ channelId: string
4434
+ }, {
4435
+ /**
4436
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4437
+ */
4438
+ text?: string
4439
+ /**
4440
+ * A channel to check this post against.
4441
+ */
4442
+ channelId: string
4443
+ }, {
4444
+ /**
4445
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4446
+ */
4447
+ text?: string
4448
+ /**
4449
+ * A channel to check this post against.
4450
+ */
4451
+ channelId: string
4452
+ }, {
4453
+ /**
4454
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4455
+ */
4456
+ text?: string
4457
+ /**
4458
+ * A channel to check this post against.
4459
+ */
4460
+ channelId: string
4461
+ }, {
4462
+ /**
4463
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4464
+ */
4465
+ text?: string
4466
+ /**
4467
+ * A channel to check this post against.
4468
+ */
4469
+ channelId: string
4470
+ }, {
4471
+ /**
4472
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4473
+ */
4474
+ text?: string
4475
+ /**
4476
+ * A channel to check this post against.
4477
+ */
4478
+ channelId: string
4479
+ }]|[{
4480
+ /**
4481
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4482
+ */
4483
+ text?: string
4484
+ /**
4485
+ * A channel to check this post against.
4486
+ */
4487
+ channelId: string
4488
+ }, {
4489
+ /**
4490
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4491
+ */
4492
+ text?: string
4493
+ /**
4494
+ * A channel to check this post against.
4495
+ */
4496
+ channelId: string
4497
+ }, {
4498
+ /**
4499
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4500
+ */
4501
+ text?: string
4502
+ /**
4503
+ * A channel to check this post against.
4504
+ */
4505
+ channelId: string
4506
+ }, {
4507
+ /**
4508
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4509
+ */
4510
+ text?: string
4511
+ /**
4512
+ * A channel to check this post against.
4513
+ */
4514
+ channelId: string
4515
+ }, {
4516
+ /**
4517
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4518
+ */
4519
+ text?: string
4520
+ /**
4521
+ * A channel to check this post against.
4522
+ */
4523
+ channelId: string
4524
+ }, {
4525
+ /**
4526
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4527
+ */
4528
+ text?: string
4529
+ /**
4530
+ * A channel to check this post against.
4531
+ */
4532
+ channelId: string
4533
+ }, {
4534
+ /**
4535
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4536
+ */
4537
+ text?: string
4538
+ /**
4539
+ * A channel to check this post against.
4540
+ */
4541
+ channelId: string
4542
+ }, {
4543
+ /**
4544
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4545
+ */
4546
+ text?: string
4547
+ /**
4548
+ * A channel to check this post against.
4549
+ */
4550
+ channelId: string
4551
+ }, {
4552
+ /**
4553
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4554
+ */
4555
+ text?: string
4556
+ /**
4557
+ * A channel to check this post against.
4558
+ */
4559
+ channelId: string
4560
+ }, {
4561
+ /**
4562
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4563
+ */
4564
+ text?: string
4565
+ /**
4566
+ * A channel to check this post against.
4567
+ */
4568
+ channelId: string
4569
+ }, {
4570
+ /**
4571
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4572
+ */
4573
+ text?: string
4574
+ /**
4575
+ * A channel to check this post against.
4576
+ */
4577
+ channelId: string
4578
+ }, {
4579
+ /**
4580
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4581
+ */
4582
+ text?: string
4583
+ /**
4584
+ * A channel to check this post against.
4585
+ */
4586
+ channelId: string
4587
+ }, {
4588
+ /**
4589
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4590
+ */
4591
+ text?: string
4592
+ /**
4593
+ * A channel to check this post against.
4594
+ */
4595
+ channelId: string
4596
+ }, {
4597
+ /**
4598
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4599
+ */
4600
+ text?: string
4601
+ /**
4602
+ * A channel to check this post against.
4603
+ */
4604
+ channelId: string
4605
+ }, {
4606
+ /**
4607
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4608
+ */
4609
+ text?: string
4610
+ /**
4611
+ * A channel to check this post against.
4612
+ */
4613
+ channelId: string
4614
+ }, {
4615
+ /**
4616
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4617
+ */
4618
+ text?: string
4619
+ /**
4620
+ * A channel to check this post against.
4621
+ */
4622
+ channelId: string
4623
+ }]|[{
4624
+ /**
4625
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4626
+ */
4627
+ text?: string
4628
+ /**
4629
+ * A channel to check this post against.
4630
+ */
4631
+ channelId: string
4632
+ }, {
4633
+ /**
4634
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4635
+ */
4636
+ text?: string
4637
+ /**
4638
+ * A channel to check this post against.
4639
+ */
4640
+ channelId: string
4641
+ }, {
4642
+ /**
4643
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4644
+ */
4645
+ text?: string
4646
+ /**
4647
+ * A channel to check this post against.
4648
+ */
4649
+ channelId: string
4650
+ }, {
4651
+ /**
4652
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4653
+ */
4654
+ text?: string
4655
+ /**
4656
+ * A channel to check this post against.
4657
+ */
4658
+ channelId: string
4659
+ }, {
4660
+ /**
4661
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4662
+ */
4663
+ text?: string
4664
+ /**
4665
+ * A channel to check this post against.
4666
+ */
4667
+ channelId: string
4668
+ }, {
4669
+ /**
4670
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4671
+ */
4672
+ text?: string
4673
+ /**
4674
+ * A channel to check this post against.
4675
+ */
4676
+ channelId: string
4677
+ }, {
4678
+ /**
4679
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4680
+ */
4681
+ text?: string
4682
+ /**
4683
+ * A channel to check this post against.
4684
+ */
4685
+ channelId: string
4686
+ }, {
4687
+ /**
4688
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4689
+ */
4690
+ text?: string
4691
+ /**
4692
+ * A channel to check this post against.
4693
+ */
4694
+ channelId: string
4695
+ }, {
4696
+ /**
4697
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4698
+ */
4699
+ text?: string
4700
+ /**
4701
+ * A channel to check this post against.
4702
+ */
4703
+ channelId: string
4704
+ }, {
4705
+ /**
4706
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4707
+ */
4708
+ text?: string
4709
+ /**
4710
+ * A channel to check this post against.
4711
+ */
4712
+ channelId: string
4713
+ }, {
4714
+ /**
4715
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4716
+ */
4717
+ text?: string
4718
+ /**
4719
+ * A channel to check this post against.
4720
+ */
4721
+ channelId: string
4722
+ }, {
4723
+ /**
4724
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4725
+ */
4726
+ text?: string
4727
+ /**
4728
+ * A channel to check this post against.
4729
+ */
4730
+ channelId: string
4731
+ }, {
4732
+ /**
4733
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4734
+ */
4735
+ text?: string
4736
+ /**
4737
+ * A channel to check this post against.
4738
+ */
4739
+ channelId: string
4740
+ }, {
4741
+ /**
4742
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4743
+ */
4744
+ text?: string
4745
+ /**
4746
+ * A channel to check this post against.
4747
+ */
4748
+ channelId: string
4749
+ }, {
4750
+ /**
4751
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4752
+ */
4753
+ text?: string
4754
+ /**
4755
+ * A channel to check this post against.
4756
+ */
4757
+ channelId: string
4758
+ }, {
4759
+ /**
4760
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4761
+ */
4762
+ text?: string
4763
+ /**
4764
+ * A channel to check this post against.
4765
+ */
4766
+ channelId: string
4767
+ }, {
4768
+ /**
4769
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4770
+ */
4771
+ text?: string
4772
+ /**
4773
+ * A channel to check this post against.
4774
+ */
4775
+ channelId: string
4776
+ }]|[{
4777
+ /**
4778
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4779
+ */
4780
+ text?: string
4781
+ /**
4782
+ * A channel to check this post against.
4783
+ */
4784
+ channelId: string
4785
+ }, {
4786
+ /**
4787
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4788
+ */
4789
+ text?: string
4790
+ /**
4791
+ * A channel to check this post against.
4792
+ */
4793
+ channelId: string
4794
+ }, {
4795
+ /**
4796
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4797
+ */
4798
+ text?: string
4799
+ /**
4800
+ * A channel to check this post against.
4801
+ */
4802
+ channelId: string
4803
+ }, {
4804
+ /**
4805
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4806
+ */
4807
+ text?: string
4808
+ /**
4809
+ * A channel to check this post against.
4810
+ */
4811
+ channelId: string
4812
+ }, {
4813
+ /**
4814
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4815
+ */
4816
+ text?: string
4817
+ /**
4818
+ * A channel to check this post against.
4819
+ */
4820
+ channelId: string
4821
+ }, {
4822
+ /**
4823
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4824
+ */
4825
+ text?: string
4826
+ /**
4827
+ * A channel to check this post against.
4828
+ */
4829
+ channelId: string
4830
+ }, {
4831
+ /**
4832
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4833
+ */
4834
+ text?: string
4835
+ /**
4836
+ * A channel to check this post against.
4837
+ */
4838
+ channelId: string
4839
+ }, {
4840
+ /**
4841
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4842
+ */
4843
+ text?: string
4844
+ /**
4845
+ * A channel to check this post against.
4846
+ */
4847
+ channelId: string
4848
+ }, {
4849
+ /**
4850
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4851
+ */
4852
+ text?: string
4853
+ /**
4854
+ * A channel to check this post against.
4855
+ */
4856
+ channelId: string
4857
+ }, {
4858
+ /**
4859
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4860
+ */
4861
+ text?: string
4862
+ /**
4863
+ * A channel to check this post against.
4864
+ */
4865
+ channelId: string
4866
+ }, {
4867
+ /**
4868
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4869
+ */
4870
+ text?: string
4871
+ /**
4872
+ * A channel to check this post against.
4873
+ */
4874
+ channelId: string
4875
+ }, {
4876
+ /**
4877
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4878
+ */
4879
+ text?: string
4880
+ /**
4881
+ * A channel to check this post against.
4882
+ */
4883
+ channelId: string
4884
+ }, {
4885
+ /**
4886
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4887
+ */
4888
+ text?: string
4889
+ /**
4890
+ * A channel to check this post against.
4891
+ */
4892
+ channelId: string
4893
+ }, {
4894
+ /**
4895
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4896
+ */
4897
+ text?: string
4898
+ /**
4899
+ * A channel to check this post against.
4900
+ */
4901
+ channelId: string
4902
+ }, {
4903
+ /**
4904
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4905
+ */
4906
+ text?: string
4907
+ /**
4908
+ * A channel to check this post against.
4909
+ */
4910
+ channelId: string
4911
+ }, {
4912
+ /**
4913
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4914
+ */
4915
+ text?: string
4916
+ /**
4917
+ * A channel to check this post against.
4918
+ */
4919
+ channelId: string
4920
+ }, {
4921
+ /**
4922
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4923
+ */
4924
+ text?: string
4925
+ /**
4926
+ * A channel to check this post against.
4927
+ */
4928
+ channelId: string
4929
+ }, {
4930
+ /**
4931
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4932
+ */
4933
+ text?: string
4934
+ /**
4935
+ * A channel to check this post against.
4936
+ */
4937
+ channelId: string
4938
+ }]|[{
4939
+ /**
4940
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4941
+ */
4942
+ text?: string
4943
+ /**
4944
+ * A channel to check this post against.
4945
+ */
4946
+ channelId: string
4947
+ }, {
4948
+ /**
4949
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4950
+ */
4951
+ text?: string
4952
+ /**
4953
+ * A channel to check this post against.
4954
+ */
4955
+ channelId: string
4956
+ }, {
4957
+ /**
4958
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4959
+ */
4960
+ text?: string
4961
+ /**
4962
+ * A channel to check this post against.
4963
+ */
4964
+ channelId: string
4965
+ }, {
4966
+ /**
4967
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4968
+ */
4969
+ text?: string
4970
+ /**
4971
+ * A channel to check this post against.
4972
+ */
4973
+ channelId: string
4974
+ }, {
4975
+ /**
4976
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4977
+ */
4978
+ text?: string
4979
+ /**
4980
+ * A channel to check this post against.
4981
+ */
4982
+ channelId: string
4983
+ }, {
4984
+ /**
4985
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4986
+ */
4987
+ text?: string
4988
+ /**
4989
+ * A channel to check this post against.
4990
+ */
4991
+ channelId: string
4992
+ }, {
4993
+ /**
4994
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
4995
+ */
4996
+ text?: string
4997
+ /**
4998
+ * A channel to check this post against.
4999
+ */
5000
+ channelId: string
5001
+ }, {
5002
+ /**
5003
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5004
+ */
5005
+ text?: string
5006
+ /**
5007
+ * A channel to check this post against.
5008
+ */
5009
+ channelId: string
5010
+ }, {
5011
+ /**
5012
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5013
+ */
5014
+ text?: string
5015
+ /**
5016
+ * A channel to check this post against.
5017
+ */
5018
+ channelId: string
5019
+ }, {
5020
+ /**
5021
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5022
+ */
5023
+ text?: string
5024
+ /**
5025
+ * A channel to check this post against.
5026
+ */
5027
+ channelId: string
5028
+ }, {
5029
+ /**
5030
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5031
+ */
5032
+ text?: string
5033
+ /**
5034
+ * A channel to check this post against.
5035
+ */
5036
+ channelId: string
5037
+ }, {
5038
+ /**
5039
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5040
+ */
5041
+ text?: string
5042
+ /**
5043
+ * A channel to check this post against.
5044
+ */
5045
+ channelId: string
5046
+ }, {
5047
+ /**
5048
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5049
+ */
5050
+ text?: string
5051
+ /**
5052
+ * A channel to check this post against.
5053
+ */
5054
+ channelId: string
5055
+ }, {
5056
+ /**
5057
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5058
+ */
5059
+ text?: string
5060
+ /**
5061
+ * A channel to check this post against.
5062
+ */
5063
+ channelId: string
5064
+ }, {
5065
+ /**
5066
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5067
+ */
5068
+ text?: string
5069
+ /**
5070
+ * A channel to check this post against.
5071
+ */
5072
+ channelId: string
5073
+ }, {
5074
+ /**
5075
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5076
+ */
5077
+ text?: string
5078
+ /**
5079
+ * A channel to check this post against.
5080
+ */
5081
+ channelId: string
5082
+ }, {
5083
+ /**
5084
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5085
+ */
5086
+ text?: string
5087
+ /**
5088
+ * A channel to check this post against.
5089
+ */
5090
+ channelId: string
5091
+ }, {
5092
+ /**
5093
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5094
+ */
5095
+ text?: string
5096
+ /**
5097
+ * A channel to check this post against.
5098
+ */
5099
+ channelId: string
5100
+ }, {
5101
+ /**
5102
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5103
+ */
5104
+ text?: string
5105
+ /**
5106
+ * A channel to check this post against.
5107
+ */
5108
+ channelId: string
5109
+ }]|[{
5110
+ /**
5111
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5112
+ */
5113
+ text?: string
5114
+ /**
5115
+ * A channel to check this post against.
5116
+ */
5117
+ channelId: string
5118
+ }, {
5119
+ /**
5120
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5121
+ */
5122
+ text?: string
5123
+ /**
5124
+ * A channel to check this post against.
5125
+ */
5126
+ channelId: string
5127
+ }, {
5128
+ /**
5129
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5130
+ */
5131
+ text?: string
5132
+ /**
5133
+ * A channel to check this post against.
5134
+ */
5135
+ channelId: string
5136
+ }, {
5137
+ /**
5138
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5139
+ */
5140
+ text?: string
5141
+ /**
5142
+ * A channel to check this post against.
5143
+ */
5144
+ channelId: string
5145
+ }, {
5146
+ /**
5147
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5148
+ */
5149
+ text?: string
5150
+ /**
5151
+ * A channel to check this post against.
5152
+ */
5153
+ channelId: string
5154
+ }, {
5155
+ /**
5156
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5157
+ */
5158
+ text?: string
5159
+ /**
5160
+ * A channel to check this post against.
5161
+ */
5162
+ channelId: string
5163
+ }, {
5164
+ /**
5165
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5166
+ */
5167
+ text?: string
5168
+ /**
5169
+ * A channel to check this post against.
5170
+ */
5171
+ channelId: string
5172
+ }, {
5173
+ /**
5174
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5175
+ */
5176
+ text?: string
5177
+ /**
5178
+ * A channel to check this post against.
5179
+ */
5180
+ channelId: string
5181
+ }, {
5182
+ /**
5183
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5184
+ */
5185
+ text?: string
5186
+ /**
5187
+ * A channel to check this post against.
5188
+ */
5189
+ channelId: string
5190
+ }, {
5191
+ /**
5192
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5193
+ */
5194
+ text?: string
5195
+ /**
5196
+ * A channel to check this post against.
5197
+ */
5198
+ channelId: string
5199
+ }, {
5200
+ /**
5201
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5202
+ */
5203
+ text?: string
5204
+ /**
5205
+ * A channel to check this post against.
5206
+ */
5207
+ channelId: string
5208
+ }, {
5209
+ /**
5210
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5211
+ */
5212
+ text?: string
5213
+ /**
5214
+ * A channel to check this post against.
5215
+ */
5216
+ channelId: string
5217
+ }, {
5218
+ /**
5219
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5220
+ */
5221
+ text?: string
5222
+ /**
5223
+ * A channel to check this post against.
5224
+ */
5225
+ channelId: string
5226
+ }, {
5227
+ /**
5228
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5229
+ */
5230
+ text?: string
5231
+ /**
5232
+ * A channel to check this post against.
5233
+ */
5234
+ channelId: string
5235
+ }, {
5236
+ /**
5237
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5238
+ */
5239
+ text?: string
5240
+ /**
5241
+ * A channel to check this post against.
5242
+ */
5243
+ channelId: string
5244
+ }, {
5245
+ /**
5246
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5247
+ */
5248
+ text?: string
5249
+ /**
5250
+ * A channel to check this post against.
5251
+ */
5252
+ channelId: string
5253
+ }, {
5254
+ /**
5255
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5256
+ */
5257
+ text?: string
5258
+ /**
5259
+ * A channel to check this post against.
5260
+ */
5261
+ channelId: string
5262
+ }, {
5263
+ /**
5264
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5265
+ */
5266
+ text?: string
5267
+ /**
5268
+ * A channel to check this post against.
5269
+ */
5270
+ channelId: string
5271
+ }, {
5272
+ /**
5273
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5274
+ */
5275
+ text?: string
5276
+ /**
5277
+ * A channel to check this post against.
5278
+ */
5279
+ channelId: string
5280
+ }, {
5281
+ /**
5282
+ * The per-channel variant you intend to schedule, in markdown. Omit to check the post text as written.
5283
+ */
5284
+ text?: string
5285
+ /**
5286
+ * A channel to check this post against.
5287
+ */
5288
+ channelId: string
5289
+ }]
5290
+ /**
5291
+ * The slot you intend to use, ISO-8601. Only the daily ceiling depends on it; omit for "now".
5292
+ */
5293
+ scheduledAt?: string
5294
+ }
5295
+
5296
+ export interface ContentPublicationsValidateOutput {
5297
+ /**
5298
+ * The post that was checked.
5299
+ */
5300
+ postId: string
5301
+ /**
5302
+ * One result per requested channel, in the order they were given.
5303
+ */
5304
+ channels: {
5305
+ /**
5306
+ * The markdown that was checked, exactly as it was given or stored.
5307
+ */
5308
+ text: string
5309
+ /**
5310
+ * Everything wrong, all at once. Any entry with severity "error" means scheduling this would be refused — there is no separate flag to disagree with the list.
5311
+ */
5312
+ issues: {
5313
+ /**
5314
+ * Stable machine code: text_empty, text_too_long, too_many_media, link_not_supported, media_missing, media_not_ready, media_not_supported, cost_unknown, daily_ceiling_exceeded.
5315
+ */
5316
+ code: string
5317
+ /**
5318
+ * Which input the issue is about, when it is about one.
5319
+ */
5320
+ field?: string
5321
+ /**
5322
+ * What is wrong, in a sentence you can show a person.
5323
+ */
5324
+ message: string
5325
+ /**
5326
+ * `error` means scheduling would be refused or the publication would not go out. `warning` is advisory.
5327
+ */
5328
+ severity: ("error" | "warning")
5329
+ }[]
5330
+ /**
5331
+ * The daily ceiling that was checked, or null when nothing knows one.
5332
+ */
5333
+ ceiling: ({
5334
+ /**
5335
+ * How many publications this channel already has in that day, queued or done.
5336
+ */
5337
+ used: number
5338
+ /**
5339
+ * Published posts this channel allows per day, or null when no figure is known.
5340
+ */
5341
+ limit: (number | null)
5342
+ /**
5343
+ * Where the limit came from: `channel` an operator override, `adapter` a live figure from the network, `catalog` the built-in constant (INV-053).
5344
+ */
5345
+ source: ("channel" | "adapter" | "catalog")
5346
+ } | null)
5347
+ /**
5348
+ * What this publication would cost in USD. On X a post carrying a link costs 13x a plain one ($0.20 against $0.015). Null means the cost cannot be computed, which blocks publishing.
5349
+ */
5350
+ costUsd: (number | null)
5351
+ /**
5352
+ * The network behind that channel.
5353
+ */
5354
+ network: string
5355
+ /**
5356
+ * The channel this result is for.
5357
+ */
5358
+ channelId: string
5359
+ /**
5360
+ * Which rate produced costUsd: "plain", "link" or "free".
5361
+ */
5362
+ costBasis: (string | null)
1462
5363
  /**
1463
- * DSAR (Art. 15) lookup: a visitor-presented record_id (the UUID from their consent cookie). When set, the export is filtered to that visitor's full decision chain (transitive closure over replaces_id), scoped to the current product. Omit for a product-wide admin export.
5364
+ * The channel as a person sees it.
1464
5365
  */
1465
- record_id?: string
1466
- }
1467
-
1468
- export interface ConsentRecordsExportOutput {
1469
- csv: string
1470
- filters: {
1471
- to: (string | null)
1472
- from: (string | null)
1473
- limit: number
1474
- }
1475
- truncated: boolean
1476
- total_count: number
1477
- download_url?: string
1478
- returned_count: number
1479
- }
1480
-
1481
- export interface ConsentStatsGetInput {
5366
+ displayName: string
1482
5367
  /**
1483
- * Time window for aggregation in days, e.g. "30d". Omit to use the server default (30d). Maximum: 365d.
5368
+ * The text that would actually be published to this channel: the markdown flattened to plain network text — emphasis as styled characters, lists as bullets, links as "text (url)". Scheduling stores this string, so what you read here is what goes out, character for character. Length and cost are judged on it, not on the markdown.
1484
5369
  */
1485
- range?: string
1486
- }
1487
-
1488
- export interface ConsentStatsGetOutput {
1489
- range: {
1490
- to: string
1491
- from: string
1492
- }
1493
- total: number
1494
- custom_pct: number
1495
- by_category: {
1496
- marketing_pct: number
1497
- statistics_pct: number
1498
- preferences_pct: number
1499
- }
1500
- deny_all_pct: number
1501
- accept_all_pct: number
5370
+ renderedText: string
5371
+ }[]
1502
5372
  }
1503
5373
 
1504
5374
  export interface DeploymentAlertCreateInput {
@@ -1612,31 +5482,6 @@ truncated: boolean
1612
5482
  explanation: string
1613
5483
  }
1614
5484
 
1615
- export interface DeploymentAuditListInput {
1616
- limit?: number
1617
- action?: string
1618
- actorId?: string
1619
- serviceId?: string
1620
- entityType?: ("variable" | "domain" | "service" | "environment" | "deployment" | "managed_service" | "volume" | "cloud-sql-instance" | "cloud-sql-database" | "cloud-sql-attachment" | "ssh_key" | "ssh_session")
1621
- environmentId: string
1622
- }
1623
-
1624
- export type DeploymentAuditListOutput = {
1625
- id: string
1626
- action: string
1627
- actorId: string
1628
- entityId: (string | null)
1629
- metadata: {
1630
- [k: string]: unknown
1631
- }
1632
- createdAt: string
1633
- productId: string
1634
- serviceId: (string | null)
1635
- actorEmail: string
1636
- entityType: ("variable" | "domain" | "service" | "environment" | "deployment" | "managed_service" | "volume" | "cloud-sql-instance" | "cloud-sql-database" | "cloud-sql-attachment" | "ssh_key" | "ssh_session")
1637
- environmentId: (string | null)
1638
- }[]
1639
-
1640
5485
  export interface DeploymentBuildGetInput {
1641
5486
  id: string
1642
5487
  }
@@ -1716,6 +5561,7 @@ updatedAt: string
1716
5561
  }[]
1717
5562
  services: {
1718
5563
  id: string
5564
+ mode?: string
1719
5565
  name: string
1720
5566
  slug: string
1721
5567
  probes: {
@@ -1749,10 +5595,19 @@ outputDir?: string
1749
5595
  }
1750
5596
  markdown?: boolean
1751
5597
  })
5598
+ command?: (string | null)
5599
+ lastRun?: ({
5600
+ id: string
5601
+ status: string
5602
+ startedAt: (string | null)
5603
+ finishedAt: (string | null)
5604
+ } | null)
1752
5605
  tracing?: string
1753
5606
  replicas: number
5607
+ schedule?: (string | null)
1754
5608
  createdAt: string
1755
5609
  dependsOn: string[]
5610
+ nextRunAt?: (string | null)
1756
5611
  resources?: {
1757
5612
  limits?: {
1758
5613
  cpu?: string
@@ -1766,7 +5621,10 @@ idleMinutes: number
1766
5621
  scaleToZero: boolean
1767
5622
  containerPort: number
1768
5623
  environmentId: string
5624
+ jobTimeoutSec?: number
5625
+ jobConcurrency?: string
1769
5626
  buildMachineType?: (string | null)
5627
+ scheduleSuspended?: boolean
1770
5628
  suspendedByBilling?: boolean
1771
5629
  lastReplicasRunning: number
1772
5630
  scaleToZeroEligibility?: {
@@ -2767,6 +6625,64 @@ deploymentId: (string | null)
2767
6625
  environmentId: (string | null)
2768
6626
  }[]
2769
6627
 
6628
+ export interface DeploymentJobRunInput {
6629
+ serviceId: string
6630
+ }
6631
+
6632
+ export interface DeploymentJobRunOutput {
6633
+ id: string
6634
+ status: ("Running" | "Succeeded" | "Failed" | "TimedOut" | "Skipped")
6635
+ trigger: ("schedule" | "manual")
6636
+ exitCode: (number | null)
6637
+ createdAt: string
6638
+ serviceId: string
6639
+ startedAt: (string | null)
6640
+ finishedAt: (string | null)
6641
+ k8sJobName: string
6642
+ imageDigest: (string | null)
6643
+ triggeredBy: (string | null)
6644
+ deploymentId: (string | null)
6645
+ environmentId: string
6646
+ failureReason: (string | null)
6647
+ }
6648
+
6649
+ export interface DeploymentJobRunLogsInput {
6650
+ runId: string
6651
+ serviceId: string
6652
+ }
6653
+
6654
+ export interface DeploymentJobRunLogsOutput {
6655
+ live: boolean
6656
+ logs: string
6657
+ status: ("Running" | "Succeeded" | "Failed" | "TimedOut" | "Skipped")
6658
+ }
6659
+
6660
+ export interface DeploymentJobRunsListInput {
6661
+ limit?: number
6662
+ cursor?: string
6663
+ serviceId: string
6664
+ }
6665
+
6666
+ export interface DeploymentJobRunsListOutput {
6667
+ items: {
6668
+ id: string
6669
+ status: ("Running" | "Succeeded" | "Failed" | "TimedOut" | "Skipped")
6670
+ trigger: ("schedule" | "manual")
6671
+ exitCode: (number | null)
6672
+ createdAt: string
6673
+ serviceId: string
6674
+ startedAt: (string | null)
6675
+ finishedAt: (string | null)
6676
+ k8sJobName: string
6677
+ imageDigest: (string | null)
6678
+ triggeredBy: (string | null)
6679
+ deploymentId: (string | null)
6680
+ environmentId: string
6681
+ failureReason: (string | null)
6682
+ }[]
6683
+ nextCursor: (string | null)
6684
+ }
6685
+
2770
6686
  export interface DeploymentManagedServiceBackupInput {
2771
6687
  id: string
2772
6688
  }
@@ -3212,6 +7128,10 @@ baseEnvironmentId: string
3212
7128
  }
3213
7129
 
3214
7130
  export interface DeploymentServiceCreateInput {
7131
+ /**
7132
+ * 'persistent' (a long-running Deployment behind a Service — the default) or 'scheduled' (a k8s CronJob: no port, no replicas, no route). Immutable after create.
7133
+ */
7134
+ mode?: ("persistent" | "scheduled")
3215
7135
  name: string
3216
7136
  slug?: string
3217
7137
  canvas?: {
@@ -3249,11 +7169,19 @@ outputDir?: string
3249
7169
  }
3250
7170
  markdown?: boolean
3251
7171
  })
7172
+ /**
7173
+ * Shell command a scheduled run executes (`/bin/sh -c <command>`). Scheduled services only; omit it to run the image entrypoint.
7174
+ */
7175
+ command?: string
3252
7176
  /**
3253
7177
  * OTel SDK to inject into this service's pods: 'off' (none), 'node' or 'python'. Read when a deploy builds the workload — takes effect on the next deploy, running pods are untouched.
3254
7178
  */
3255
7179
  tracing?: ("off" | "node" | "python")
3256
7180
  replicas?: number
7181
+ /**
7182
+ * Five-field UTC cron expression (minute hour day-of-month month day-of-week), or null for a scheduled service with no schedule yet.
7183
+ */
7184
+ schedule?: (string | null)
3257
7185
  resources?: {
3258
7186
  limits?: {
3259
7187
  cpu?: string
@@ -3262,6 +7190,14 @@ memory?: string
3262
7190
  }
3263
7191
  containerPort?: number
3264
7192
  environmentId: string
7193
+ /**
7194
+ * Wall-clock budget for one run, in seconds (60..86400). Becomes the Job activeDeadlineSeconds — an overrunning run is killed, not left going.
7195
+ */
7196
+ jobTimeoutSec?: number
7197
+ /**
7198
+ * What happens when a run is still going at the next tick: 'forbid' (skip the tick), 'allow' (run in parallel) or 'replace' (kill the running one).
7199
+ */
7200
+ jobConcurrency?: ("forbid" | "allow" | "replace")
3265
7201
  }
3266
7202
  export interface DeploymentServiceCreateInputReadiness {
3267
7203
  path: string
@@ -3275,6 +7211,7 @@ initialDelaySeconds?: number
3275
7211
 
3276
7212
  export interface DeploymentServiceCreateOutput {
3277
7213
  id: string
7214
+ mode?: string
3278
7215
  name: string
3279
7216
  slug: string
3280
7217
  probes: {
@@ -3308,10 +7245,19 @@ outputDir?: string
3308
7245
  }
3309
7246
  markdown?: boolean
3310
7247
  })
7248
+ command?: (string | null)
7249
+ lastRun?: ({
7250
+ id: string
7251
+ status: string
7252
+ startedAt: (string | null)
7253
+ finishedAt: (string | null)
7254
+ } | null)
3311
7255
  tracing?: string
3312
7256
  replicas: number
7257
+ schedule?: (string | null)
3313
7258
  createdAt: string
3314
7259
  dependsOn: string[]
7260
+ nextRunAt?: (string | null)
3315
7261
  resources?: {
3316
7262
  limits?: {
3317
7263
  cpu?: string
@@ -3325,7 +7271,10 @@ idleMinutes: number
3325
7271
  scaleToZero: boolean
3326
7272
  containerPort: number
3327
7273
  environmentId: string
7274
+ jobTimeoutSec?: number
7275
+ jobConcurrency?: string
3328
7276
  buildMachineType?: (string | null)
7277
+ scheduleSuspended?: boolean
3329
7278
  suspendedByBilling?: boolean
3330
7279
  lastReplicasRunning: number
3331
7280
  scaleToZeroEligibility?: {
@@ -3382,6 +7331,7 @@ id: string
3382
7331
 
3383
7332
  export interface DeploymentServiceGetOutput {
3384
7333
  id: string
7334
+ mode?: string
3385
7335
  name: string
3386
7336
  slug: string
3387
7337
  probes: {
@@ -3415,10 +7365,19 @@ outputDir?: string
3415
7365
  }
3416
7366
  markdown?: boolean
3417
7367
  })
7368
+ command?: (string | null)
7369
+ lastRun?: ({
7370
+ id: string
7371
+ status: string
7372
+ startedAt: (string | null)
7373
+ finishedAt: (string | null)
7374
+ } | null)
3418
7375
  tracing?: string
3419
7376
  replicas: number
7377
+ schedule?: (string | null)
3420
7378
  createdAt: string
3421
7379
  dependsOn: string[]
7380
+ nextRunAt?: (string | null)
3422
7381
  resources?: {
3423
7382
  limits?: {
3424
7383
  cpu?: string
@@ -3432,7 +7391,10 @@ idleMinutes: number
3432
7391
  scaleToZero: boolean
3433
7392
  containerPort: number
3434
7393
  environmentId: string
7394
+ jobTimeoutSec?: number
7395
+ jobConcurrency?: string
3435
7396
  buildMachineType?: (string | null)
7397
+ scheduleSuspended?: boolean
3436
7398
  suspendedByBilling?: boolean
3437
7399
  lastReplicasRunning: number
3438
7400
  scaleToZeroEligibility?: {
@@ -3456,6 +7418,7 @@ environmentId: string
3456
7418
 
3457
7419
  export type DeploymentServiceListOutput = {
3458
7420
  id: string
7421
+ mode?: string
3459
7422
  name: string
3460
7423
  slug: string
3461
7424
  probes: {
@@ -3489,10 +7452,19 @@ outputDir?: string
3489
7452
  }
3490
7453
  markdown?: boolean
3491
7454
  })
7455
+ command?: (string | null)
7456
+ lastRun?: ({
7457
+ id: string
7458
+ status: string
7459
+ startedAt: (string | null)
7460
+ finishedAt: (string | null)
7461
+ } | null)
3492
7462
  tracing?: string
3493
7463
  replicas: number
7464
+ schedule?: (string | null)
3494
7465
  createdAt: string
3495
7466
  dependsOn: string[]
7467
+ nextRunAt?: (string | null)
3496
7468
  resources?: {
3497
7469
  limits?: {
3498
7470
  cpu?: string
@@ -3506,7 +7478,10 @@ idleMinutes: number
3506
7478
  scaleToZero: boolean
3507
7479
  containerPort: number
3508
7480
  environmentId: string
7481
+ jobTimeoutSec?: number
7482
+ jobConcurrency?: string
3509
7483
  buildMachineType?: (string | null)
7484
+ scheduleSuspended?: boolean
3510
7485
  suspendedByBilling?: boolean
3511
7486
  lastReplicasRunning: number
3512
7487
  scaleToZeroEligibility?: {
@@ -3607,6 +7582,7 @@ replicas: number
3607
7582
 
3608
7583
  export interface DeploymentServiceScaleOutput {
3609
7584
  id: string
7585
+ mode?: string
3610
7586
  name: string
3611
7587
  slug: string
3612
7588
  probes: {
@@ -3640,10 +7616,19 @@ outputDir?: string
3640
7616
  }
3641
7617
  markdown?: boolean
3642
7618
  })
7619
+ command?: (string | null)
7620
+ lastRun?: ({
7621
+ id: string
7622
+ status: string
7623
+ startedAt: (string | null)
7624
+ finishedAt: (string | null)
7625
+ } | null)
3643
7626
  tracing?: string
3644
7627
  replicas: number
7628
+ schedule?: (string | null)
3645
7629
  createdAt: string
3646
7630
  dependsOn: string[]
7631
+ nextRunAt?: (string | null)
3647
7632
  resources?: {
3648
7633
  limits?: {
3649
7634
  cpu?: string
@@ -3657,7 +7642,10 @@ idleMinutes: number
3657
7642
  scaleToZero: boolean
3658
7643
  containerPort: number
3659
7644
  environmentId: string
7645
+ jobTimeoutSec?: number
7646
+ jobConcurrency?: string
3660
7647
  buildMachineType?: (string | null)
7648
+ scheduleSuspended?: boolean
3661
7649
  suspendedByBilling?: boolean
3662
7650
  lastReplicasRunning: number
3663
7651
  scaleToZeroEligibility?: {
@@ -3677,6 +7665,7 @@ initialDelaySeconds?: number
3677
7665
 
3678
7666
  export interface DeploymentServiceUpdateInput {
3679
7667
  id: string
7668
+ mode?: unknown
3680
7669
  name?: string
3681
7670
  probes?: {
3682
7671
  liveness?: DeploymentServiceUpdateInputReadiness
@@ -3709,11 +7698,19 @@ outputDir?: string
3709
7698
  }
3710
7699
  markdown?: boolean
3711
7700
  })
7701
+ /**
7702
+ * Shell command a scheduled run executes (`/bin/sh -c <command>`). Scheduled services only; omit it to run the image entrypoint.
7703
+ */
7704
+ command?: string
3712
7705
  /**
3713
7706
  * OTel SDK to inject into this service's pods: 'off' (none), 'node' or 'python'. Read when a deploy builds the workload — takes effect on the next deploy, running pods are untouched.
3714
7707
  */
3715
7708
  tracing?: ("off" | "node" | "python")
3716
7709
  replicas?: number
7710
+ /**
7711
+ * Five-field UTC cron expression (minute hour day-of-month month day-of-week), or null for a scheduled service with no schedule yet.
7712
+ */
7713
+ schedule?: (string | null)
3717
7714
  resources?: {
3718
7715
  limits?: {
3719
7716
  cpu?: string
@@ -3727,7 +7724,19 @@ autoDeploy?: boolean
3727
7724
  idleMinutes?: number
3728
7725
  scaleToZero?: boolean
3729
7726
  containerPort?: number
7727
+ /**
7728
+ * Wall-clock budget for one run, in seconds (60..86400). Becomes the Job activeDeadlineSeconds — an overrunning run is killed, not left going.
7729
+ */
7730
+ jobTimeoutSec?: number
7731
+ /**
7732
+ * What happens when a run is still going at the next tick: 'forbid' (skip the tick), 'allow' (run in parallel) or 'replace' (kill the running one).
7733
+ */
7734
+ jobConcurrency?: ("forbid" | "allow" | "replace")
3730
7735
  buildMachineType?: (("E2_MEDIUM" | "E2_HIGHCPU_8") | null)
7736
+ /**
7737
+ * Pause or resume a scheduled service without losing its schedule.
7738
+ */
7739
+ scheduleSuspended?: boolean
3731
7740
  }
3732
7741
  export interface DeploymentServiceUpdateInputReadiness {
3733
7742
  path: string
@@ -3741,6 +7750,7 @@ initialDelaySeconds?: number
3741
7750
 
3742
7751
  export interface DeploymentServiceUpdateOutput {
3743
7752
  id: string
7753
+ mode?: string
3744
7754
  name: string
3745
7755
  slug: string
3746
7756
  probes: {
@@ -3774,10 +7784,19 @@ outputDir?: string
3774
7784
  }
3775
7785
  markdown?: boolean
3776
7786
  })
7787
+ command?: (string | null)
7788
+ lastRun?: ({
7789
+ id: string
7790
+ status: string
7791
+ startedAt: (string | null)
7792
+ finishedAt: (string | null)
7793
+ } | null)
3777
7794
  tracing?: string
3778
7795
  replicas: number
7796
+ schedule?: (string | null)
3779
7797
  createdAt: string
3780
7798
  dependsOn: string[]
7799
+ nextRunAt?: (string | null)
3781
7800
  resources?: {
3782
7801
  limits?: {
3783
7802
  cpu?: string
@@ -3791,7 +7810,10 @@ idleMinutes: number
3791
7810
  scaleToZero: boolean
3792
7811
  containerPort: number
3793
7812
  environmentId: string
7813
+ jobTimeoutSec?: number
7814
+ jobConcurrency?: string
3794
7815
  buildMachineType?: (string | null)
7816
+ scheduleSuspended?: boolean
3795
7817
  suspendedByBilling?: boolean
3796
7818
  lastReplicasRunning: number
3797
7819
  scaleToZeroEligibility?: {
@@ -15497,6 +19519,7 @@ displayName: (string | null)
15497
19519
  orgRoles: {
15498
19520
  id: string
15499
19521
  name: string
19522
+ description: (string | null)
15500
19523
  }[]
15501
19524
  canManage: boolean
15502
19525
  inherited: {
@@ -15893,6 +19916,232 @@ lastMessagePreview: (string | null)
15893
19916
  }[]
15894
19917
  }
15895
19918
 
19919
+ export interface PlaygroundAnalyticsOverviewInput {
19920
+ /**
19921
+ * Max records per entity in recent[]; omit for the endpoint default
19922
+ */
19923
+ limit?: number
19924
+ }
19925
+
19926
+ export interface PlaygroundAnalyticsOverviewOutput {
19927
+ ok: boolean
19928
+ minted: boolean
19929
+ overview?: unknown
19930
+ http_status: number
19931
+ }
19932
+
19933
+ export interface PlaygroundBillingEntitlementsInput {
19934
+
19935
+ }
19936
+
19937
+ export interface PlaygroundBillingEntitlementsOutput {
19938
+ ok: boolean
19939
+ minted: boolean
19940
+ http_status: number
19941
+ entitlements?: unknown
19942
+ }
19943
+
19944
+ export interface PlaygroundBillingRecordUsageInput {
19945
+ /**
19946
+ * Quantity of events to record against playground-events (SUM); defaults to 1
19947
+ */
19948
+ value?: number
19949
+ }
19950
+
19951
+ export interface PlaygroundBillingRecordUsageOutput {
19952
+ minted: boolean
19953
+ accepted: (number | null)
19954
+ recorded: boolean
19955
+ duplicates: (number | null)
19956
+ http_status: number
19957
+ }
19958
+
19959
+ export interface PlaygroundClickupCreateTaskInput {
19960
+ /**
19961
+ * Task title; defaults to a fixture label
19962
+ */
19963
+ name?: string
19964
+ /**
19965
+ * ClickUp list id; falls back to CLICKUP_TEST_LIST_ID
19966
+ */
19967
+ listId?: string
19968
+ }
19969
+
19970
+ export interface PlaygroundClickupCreateTaskOutput {
19971
+ minted: boolean
19972
+ task_id: (string | null)
19973
+ list_status: number
19974
+ vend_status: number
19975
+ clickup_status: number
19976
+ installation_count: number
19977
+ }
19978
+
19979
+ export interface PlaygroundClickupGetLastWebhookInput {
19980
+
19981
+ }
19982
+
19983
+ export type PlaygroundClickupGetLastWebhookOutput = ({
19984
+ payload: string
19985
+ event_id: string
19986
+ provider: string
19987
+ verified: boolean
19988
+ product_id: string
19989
+ occurred_at: string
19990
+ connector_id: string
19991
+ clickup_event: (string | null)
19992
+ receipt_count: number
19993
+ } | {
19994
+ found: false
19995
+ })
19996
+
19997
+ export interface PlaygroundClickupGetOverviewInput {
19998
+
19999
+ }
20000
+
20001
+ export interface PlaygroundClickupGetOverviewOutput {
20002
+ team: ({
20003
+ teamId: string
20004
+ teamName: string
20005
+ } | null)
20006
+ lists: PlaygroundClickupGetOverviewOutputItems[]
20007
+ tasks: {
20008
+ id: string
20009
+ name: string
20010
+ status: (string | null)
20011
+ }[]
20012
+ minted: boolean
20013
+ spaces: PlaygroundClickupGetOverviewOutputItems[]
20014
+ list_status: number
20015
+ vend_status: number
20016
+ lists_status: number
20017
+ tasks_status: number
20018
+ spaces_status: number
20019
+ folders_status: number
20020
+ installation_count: number
20021
+ }
20022
+ export interface PlaygroundClickupGetOverviewOutputItems {
20023
+ id: string
20024
+ name: string
20025
+ }
20026
+
20027
+ export interface PlaygroundGdriveGetLastChangeInput {
20028
+
20029
+ }
20030
+
20031
+ export type PlaygroundGdriveGetLastChangeOutput = ({
20032
+ file_id: string
20033
+ removed: boolean
20034
+ file_name: (string | null)
20035
+ mime_type: (string | null)
20036
+ product_id: string
20037
+ occurred_at: string
20038
+ connector_id: string
20039
+ resource_state: string
20040
+ } | {
20041
+ found: false
20042
+ })
20043
+
20044
+ export interface PlaygroundGdriveReadFileInput {
20045
+ /**
20046
+ * Drive file id; falls back to GDRIVE_TEST_FILE_ID, then the first picked file
20047
+ */
20048
+ fileId?: string
20049
+ }
20050
+
20051
+ export interface PlaygroundGdriveReadFileOutput {
20052
+ minted: boolean
20053
+ file_id: (string | null)
20054
+ file_name: (string | null)
20055
+ mime_type: (string | null)
20056
+ file_count: number
20057
+ get_status: number
20058
+ list_status: number
20059
+ vend_status: number
20060
+ content_bytes: (number | null)
20061
+ }
20062
+
20063
+ export interface PlaygroundGoogleadsReadCustomerInput {
20064
+
20065
+ }
20066
+
20067
+ export interface PlaygroundGoogleadsReadCustomerOutput {
20068
+ minted: boolean
20069
+ vended: boolean
20070
+ customer_id: (string | null)
20071
+ vend_status: number
20072
+ result_count: number
20073
+ search_status: number
20074
+ login_customer_id: (string | null)
20075
+ }
20076
+
20077
+ export interface PlaygroundLifecycleGetStateInput {
20078
+
20079
+ }
20080
+
20081
+ export interface PlaygroundLifecycleGetStateOutput {
20082
+ blocked: boolean
20083
+ archived: boolean
20084
+ productId: string
20085
+ lastBlockTransition: ({
20086
+ eventId: string
20087
+ eventName: string
20088
+ productId: string
20089
+ occurredAt: string
20090
+ recordedAt: string
20091
+ receiptCount: number
20092
+ organizationId: string
20093
+ cascadedFromOrg: boolean
20094
+ } | null)
20095
+ lastArchiveTransition: ({
20096
+ eventId: string
20097
+ eventName: string
20098
+ productId: string
20099
+ occurredAt: string
20100
+ recordedAt: string
20101
+ receiptCount: number
20102
+ organizationId: string
20103
+ cascadedFromOrg: boolean
20104
+ } | null)
20105
+ }
20106
+
20107
+ export interface PlaygroundLifecycleListEventsInput {
20108
+
20109
+ }
20110
+
20111
+ export type PlaygroundLifecycleListEventsOutput = {
20112
+ eventId: string
20113
+ eventName: string
20114
+ productId: string
20115
+ occurredAt: string
20116
+ recordedAt: string
20117
+ receiptCount: number
20118
+ organizationId: string
20119
+ cascadedFromOrg: boolean
20120
+ }[]
20121
+
20122
+ export interface PlaygroundWebhookGetLastInput {
20123
+
20124
+ }
20125
+
20126
+ export type PlaygroundWebhookGetLastOutput = ({
20127
+ payload?: unknown
20128
+ event_id: string
20129
+ provider: string
20130
+ verified: boolean
20131
+ product_id: string
20132
+ occurred_at: string
20133
+ connector_id: string
20134
+ delivery_count: number
20135
+ } | {
20136
+ found: false
20137
+ })
20138
+
20139
+ export interface PlaygroundWsEchoInput {
20140
+
20141
+ }
20142
+
20143
+ export type PlaygroundWsEchoOutput = unknown;
20144
+
15896
20145
  export interface RealtimeArchiveExportInput {
15897
20146
  /**
15898
20147
  * Only entries with ts <= to_ts (epoch ms)