@lessly/sdk-app 48.0.1 → 48.0.2

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 (61) 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/{client.gen-BsjxuDLy.d.cts → client.gen-DqvpKriz.d.cts} +4706 -391
  10. package/dist/{client.gen-BsjxuDLy.d.ts → client.gen-DqvpKriz.d.ts} +4706 -391
  11. package/dist/consent/index.d.cts +1 -1
  12. package/dist/consent/index.d.ts +1 -1
  13. package/dist/content/index.cjs +161 -0
  14. package/dist/content/index.cjs.map +1 -0
  15. package/dist/content/index.d.cts +128 -0
  16. package/dist/content/index.d.ts +128 -0
  17. package/dist/content/index.js +129 -0
  18. package/dist/content/index.js.map +1 -0
  19. package/dist/deployment/index.d.cts +1 -1
  20. package/dist/deployment/index.d.ts +1 -1
  21. package/dist/index.cjs +759 -135
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.cts +1 -1
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.js +759 -135
  26. package/dist/index.js.map +1 -1
  27. package/dist/mail/index.d.cts +2 -2
  28. package/dist/mail/index.d.ts +2 -2
  29. package/dist/observe/index.d.cts +1 -1
  30. package/dist/observe/index.d.ts +1 -1
  31. package/dist/organization/index.d.cts +1 -1
  32. package/dist/organization/index.d.ts +1 -1
  33. package/dist/playground/index.cjs +66 -0
  34. package/dist/playground/index.cjs.map +1 -0
  35. package/dist/playground/index.d.cts +52 -0
  36. package/dist/playground/index.d.ts +52 -0
  37. package/dist/playground/index.js +53 -0
  38. package/dist/playground/index.js.map +1 -0
  39. package/dist/realtime/index.d.cts +1 -1
  40. package/dist/realtime/index.d.ts +1 -1
  41. package/dist/support/index.d.cts +1 -1
  42. package/dist/support/index.d.ts +1 -1
  43. package/dist/tracking/index.d.cts +1 -1
  44. package/dist/tracking/index.d.ts +1 -1
  45. package/dist/users/index.d.cts +1 -1
  46. package/dist/users/index.d.ts +1 -1
  47. package/dist/waitlist/index.d.cts +1 -1
  48. package/dist/waitlist/index.d.ts +1 -1
  49. package/docs/recipes/federation.md +3 -1
  50. package/docs/rules.md +6 -4
  51. package/package.json +12 -2
  52. package/src/gen/bindings.gen.ts +759 -135
  53. package/src/gen/brain/index.ts +1 -1
  54. package/src/gen/brain/queryOptions.gen.ts +0 -7
  55. package/src/gen/client.gen.ts +165 -5
  56. package/src/gen/content/index.ts +3 -0
  57. package/src/gen/content/queryOptions.gen.ts +202 -0
  58. package/src/gen/manifest.gen.ts +1 -1
  59. package/src/gen/playground/index.ts +3 -0
  60. package/src/gen/playground/queryOptions.gen.ts +86 -0
  61. package/src/gen/types.gen.ts +4322 -221
@@ -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
  }
@@ -1340,165 +1248,4127 @@ description: string
1340
1248
 
1341
1249
  export interface ConsentProvidersDeleteInput {
1342
1250
  /**
1343
- * Provider id
1251
+ * Provider id
1252
+ */
1253
+ id: string
1254
+ }
1255
+
1256
+ export interface ConsentProvidersDeleteOutput {
1257
+ id: string
1258
+ deleted: true
1259
+ }
1260
+
1261
+ export interface ConsentProvidersListInput {
1262
+
1263
+ }
1264
+
1265
+ export type ConsentProvidersListOutput = {
1266
+ id: string
1267
+ name: string
1268
+ hosts: string[]
1269
+ cookies: {
1270
+ id: string
1271
+ name: string
1272
+ type: ("http_cookie" | "local_storage" | "session_storage")
1273
+ purpose: string
1274
+ storageDuration: string
1275
+ }[]
1276
+ category: ("necessary" | "preferences" | "statistics" | "marketing")
1277
+ isSystem?: boolean
1278
+ createdAt: string
1279
+ updatedAt: string
1280
+ catalogKey?: (string | null)
1281
+ orderIndex: number
1282
+ privacyUrl: (string | null)
1283
+ description: string
1284
+ }[]
1285
+
1286
+ export interface ConsentProvidersUpdateInput {
1287
+ /**
1288
+ * Provider id
1289
+ */
1290
+ id: string
1291
+ name?: string
1292
+ /**
1293
+ * If provided, REPLACES the hosts list. Omit to leave unchanged.
1294
+ *
1295
+ * @maxItems 50
1296
+ */
1297
+ hosts?: string[]
1298
+ /**
1299
+ * If provided, REPLACES the whole cookies set for this provider. Omit to leave unchanged.
1300
+ *
1301
+ * @maxItems 200
1302
+ */
1303
+ cookies?: {
1304
+ /**
1305
+ * Cookie/storage key name, e.g. "_ga"
1306
+ */
1307
+ name: string
1308
+ /**
1309
+ * Storage mechanism — matches CHECK constraint on consent_cookies.type
1310
+ */
1311
+ type: ("http_cookie" | "local_storage" | "session_storage")
1312
+ /**
1313
+ * Human-readable description of why the cookie is set
1314
+ */
1315
+ purpose: string
1316
+ /**
1317
+ * Duration like "2 years", "session", "30 days"
1318
+ */
1319
+ storageDuration: string
1320
+ }[]
1321
+ /**
1322
+ * Consent category bucket — matches CHECK constraint on consent_providers.category
1323
+ */
1324
+ category?: ("necessary" | "preferences" | "statistics" | "marketing")
1325
+ orderIndex?: number
1326
+ /**
1327
+ * null clears the field, undefined leaves it unchanged
1328
+ */
1329
+ privacyUrl?: (string | null)
1330
+ /**
1331
+ * Pass empty string to clear; undefined leaves unchanged
1332
+ */
1333
+ description?: string
1334
+ }
1335
+
1336
+ export interface ConsentProvidersUpdateOutput {
1337
+ id: string
1338
+ name: string
1339
+ hosts: string[]
1340
+ cookies: {
1341
+ id: string
1342
+ name: string
1343
+ type: ("http_cookie" | "local_storage" | "session_storage")
1344
+ purpose: string
1345
+ storageDuration: string
1346
+ }[]
1347
+ category: ("necessary" | "preferences" | "statistics" | "marketing")
1348
+ isSystem?: boolean
1349
+ createdAt: string
1350
+ updatedAt: string
1351
+ catalogKey?: (string | null)
1352
+ orderIndex: number
1353
+ privacyUrl: (string | null)
1354
+ description: string
1355
+ }
1356
+
1357
+ export interface ConsentRecordsExportInput {
1358
+ /**
1359
+ * Inclusive upper bound for created_at, ISO-8601. Example: "2026-01-01T00:00:00Z". Omit for "up to now".
1360
+ */
1361
+ to?: string
1362
+ /**
1363
+ * Inclusive lower bound for created_at (server clock), ISO-8601. Example: "2025-01-01T00:00:00Z". Omit for "from the beginning".
1364
+ */
1365
+ from?: string
1366
+ /**
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.
1368
+ */
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.
1344
5287
  */
1345
- id: string
1346
- }
1347
-
1348
- export interface ConsentProvidersDeleteOutput {
1349
- id: string
1350
- deleted: true
1351
- }
1352
-
1353
- export interface ConsentProvidersListInput {
1354
-
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
1355
5294
  }
1356
5295
 
1357
- export type ConsentProvidersListOutput = {
1358
- id: string
1359
- name: string
1360
- hosts: string[]
1361
- cookies: {
1362
- id: string
1363
- name: string
1364
- type: ("http_cookie" | "local_storage" | "session_storage")
1365
- purpose: string
1366
- storageDuration: string
1367
- }[]
1368
- category: ("necessary" | "preferences" | "statistics" | "marketing")
1369
- isSystem?: boolean
1370
- createdAt: string
1371
- updatedAt: string
1372
- catalogKey?: (string | null)
1373
- orderIndex: number
1374
- privacyUrl: (string | null)
1375
- description: string
1376
- }[]
1377
-
1378
- export interface ConsentProvidersUpdateInput {
5296
+ export interface ContentPublicationsValidateOutput {
1379
5297
  /**
1380
- * Provider id
5298
+ * The post that was checked.
1381
5299
  */
1382
- id: string
1383
- name?: string
5300
+ postId: string
1384
5301
  /**
1385
- * If provided, REPLACES the hosts list. Omit to leave unchanged.
1386
- *
1387
- * @maxItems 50
5302
+ * One result per requested channel, in the order they were given.
1388
5303
  */
1389
- hosts?: string[]
5304
+ channels: {
1390
5305
  /**
1391
- * If provided, REPLACES the whole cookies set for this provider. Omit to leave unchanged.
1392
- *
1393
- * @maxItems 200
5306
+ * The markdown that was checked, exactly as it was given or stored.
1394
5307
  */
1395
- cookies?: {
5308
+ text: string
1396
5309
  /**
1397
- * Cookie/storage key name, e.g. "_ga"
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.
1398
5311
  */
1399
- name: string
5312
+ issues: {
1400
5313
  /**
1401
- * Storage mechanism matches CHECK constraint on consent_cookies.type
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.
1402
5315
  */
1403
- type: ("http_cookie" | "local_storage" | "session_storage")
5316
+ code: string
1404
5317
  /**
1405
- * Human-readable description of why the cookie is set
5318
+ * Which input the issue is about, when it is about one.
1406
5319
  */
1407
- purpose: string
5320
+ field?: string
1408
5321
  /**
1409
- * Duration like "2 years", "session", "30 days"
5322
+ * What is wrong, in a sentence you can show a person.
1410
5323
  */
1411
- storageDuration: string
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")
1412
5329
  }[]
1413
5330
  /**
1414
- * Consent category bucket matches CHECK constraint on consent_providers.category
5331
+ * The daily ceiling that was checked, or null when nothing knows one.
1415
5332
  */
1416
- category?: ("necessary" | "preferences" | "statistics" | "marketing")
1417
- orderIndex?: number
5333
+ ceiling: ({
1418
5334
  /**
1419
- * null clears the field, undefined leaves it unchanged
5335
+ * How many publications this channel already has in that day, queued or done.
1420
5336
  */
1421
- privacyUrl?: (string | null)
5337
+ used: number
1422
5338
  /**
1423
- * Pass empty string to clear; undefined leaves unchanged
5339
+ * Published posts this channel allows per day, or null when no figure is known.
1424
5340
  */
1425
- description?: string
1426
- }
1427
-
1428
- export interface ConsentProvidersUpdateOutput {
1429
- id: string
1430
- name: string
1431
- hosts: string[]
1432
- cookies: {
1433
- id: string
1434
- name: string
1435
- type: ("http_cookie" | "local_storage" | "session_storage")
1436
- purpose: string
1437
- storageDuration: string
1438
- }[]
1439
- category: ("necessary" | "preferences" | "statistics" | "marketing")
1440
- isSystem?: boolean
1441
- createdAt: string
1442
- updatedAt: string
1443
- catalogKey?: (string | null)
1444
- orderIndex: number
1445
- privacyUrl: (string | null)
1446
- description: string
1447
- }
1448
-
1449
- export interface ConsentRecordsExportInput {
5341
+ limit: (number | null)
1450
5342
  /**
1451
- * Inclusive upper bound for created_at, ISO-8601. Example: "2026-01-01T00:00:00Z". Omit for "up to now".
5343
+ * Where the limit came from: `channel` an operator override, `adapter` a live figure from the network, `catalog` the built-in constant (INV-053).
1452
5344
  */
1453
- to?: string
5345
+ source: ("channel" | "adapter" | "catalog")
5346
+ } | null)
1454
5347
  /**
1455
- * Inclusive lower bound for created_at (server clock), ISO-8601. Example: "2025-01-01T00:00:00Z". Omit for "from the beginning".
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.
1456
5349
  */
1457
- from?: string
5350
+ costUsd: (number | null)
1458
5351
  /**
1459
- * 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.
5352
+ * The network behind that channel.
1460
5353
  */
1461
- limit?: number
5354
+ network: string
1462
5355
  /**
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.
5356
+ * The channel this result is for.
1464
5357
  */
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 {
5358
+ channelId: string
1482
5359
  /**
1483
- * Time window for aggregation in days, e.g. "30d". Omit to use the server default (30d). Maximum: 365d.
5360
+ * Which rate produced costUsd: "plain", "link" or "free".
1484
5361
  */
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
5362
+ costBasis: (string | null)
5363
+ /**
5364
+ * The channel as a person sees it.
5365
+ */
5366
+ displayName: string
5367
+ /**
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.
5369
+ */
5370
+ renderedText: string
5371
+ }[]
1502
5372
  }
1503
5373
 
1504
5374
  export interface DeploymentAlertCreateInput {
@@ -1760,6 +5630,7 @@ memory?: string
1760
5630
  }
1761
5631
  }
1762
5632
  updatedAt: string
5633
+ autoDeploy?: boolean
1763
5634
  sleepState: ("awake" | "sleeping" | "waking" | "stopped" | "wake_failed")
1764
5635
  idleMinutes: number
1765
5636
  scaleToZero: boolean
@@ -2722,7 +6593,7 @@ baseEnvironmentId: (string | null)
2722
6593
  }
2723
6594
 
2724
6595
  export interface DeploymentEventsListByEnvironmentInput {
2725
- type?: ("deployment.queued" | "deployment.build.started" | "deployment.build.succeeded" | "deployment.build.failed" | "deployment.deploying" | "deployment.variable.ignored" | "deployment.healthcheck.passed" | "deployment.healthcheck.failed" | "deployment.healthy" | "deployment.failed" | "deployment.replaced" | "deployment.sourcemaps.uploaded" | "deployment.sourcemaps.upload-failed" | "deployment.requeue-failed" | "deployment.release.started" | "deployment.release.log" | "deployment.release.succeeded" | "deployment.release.failed" | "replica.restarted" | "service.scaled" | "service.restarted" | "service.restart-failed" | "domain.verified" | "domain.tls.issued" | "domain.tls.failed" | "domain.www-tls.issued" | "domain.www-tls.failed" | "domain.routing.active" | "domain.routing.failed" | "domain.removed" | "domain.governance.mirror-failed" | "service.slept" | "service.woke" | "service.wake_failed" | "service.sleep-enabled" | "service.sleep-disabled" | "service.sleep-enable-failed" | "cloud-sql.instance.stopped" | "cloud-sql.instance.started" | "cloud-sql.instance.stop-failed" | "cloud-sql.instance.start-failed" | "suspension.workload-stopped" | "suspension.workload-restored" | "managed-service.restarted")
6596
+ type?: ("deployment.queued" | "deployment.build.started" | "deployment.build.succeeded" | "deployment.build.failed" | "deployment.deploying" | "deployment.variable.ignored" | "deployment.healthcheck.passed" | "deployment.healthcheck.failed" | "deployment.healthy" | "deployment.failed" | "deployment.replaced" | "deployment.sourcemaps.uploaded" | "deployment.sourcemaps.upload-failed" | "deployment.requeue-failed" | "deployment.release.started" | "deployment.release.log" | "deployment.release.succeeded" | "deployment.release.failed" | "replica.restarted" | "service.scaled" | "service.restarted" | "service.restart-failed" | "domain.verified" | "domain.tls.issued" | "domain.tls.failed" | "domain.www-tls.issued" | "domain.www-tls.failed" | "domain.routing.active" | "domain.routing.failed" | "domain.removed" | "domain.governance.mirror-failed" | "service.slept" | "service.woke" | "service.wake_failed" | "service.sleep-enabled" | "service.sleep-disabled" | "service.sleep-enable-failed" | "cloud-sql.instance.stopped" | "cloud-sql.instance.started" | "cloud-sql.instance.stop-failed" | "cloud-sql.instance.start-failed" | "suspension.workload-stopped" | "suspension.workload-restored" | "managed-service.restarted" | "managed-service.port-leak-healed")
2726
6597
  limit?: number
2727
6598
  since?: string
2728
6599
  until?: string
@@ -2731,7 +6602,7 @@ environmentId: string
2731
6602
 
2732
6603
  export type DeploymentEventsListByEnvironmentOutput = {
2733
6604
  id: string
2734
- type: ("deployment.queued" | "deployment.build.started" | "deployment.build.succeeded" | "deployment.build.failed" | "deployment.deploying" | "deployment.variable.ignored" | "deployment.healthcheck.passed" | "deployment.healthcheck.failed" | "deployment.healthy" | "deployment.failed" | "deployment.replaced" | "deployment.sourcemaps.uploaded" | "deployment.sourcemaps.upload-failed" | "deployment.requeue-failed" | "deployment.release.started" | "deployment.release.log" | "deployment.release.succeeded" | "deployment.release.failed" | "replica.restarted" | "service.scaled" | "service.restarted" | "service.restart-failed" | "domain.verified" | "domain.tls.issued" | "domain.tls.failed" | "domain.www-tls.issued" | "domain.www-tls.failed" | "domain.routing.active" | "domain.routing.failed" | "domain.removed" | "domain.governance.mirror-failed" | "service.slept" | "service.woke" | "service.wake_failed" | "service.sleep-enabled" | "service.sleep-disabled" | "service.sleep-enable-failed" | "cloud-sql.instance.stopped" | "cloud-sql.instance.started" | "cloud-sql.instance.stop-failed" | "cloud-sql.instance.start-failed" | "suspension.workload-stopped" | "suspension.workload-restored" | "managed-service.restarted")
6605
+ type: ("deployment.queued" | "deployment.build.started" | "deployment.build.succeeded" | "deployment.build.failed" | "deployment.deploying" | "deployment.variable.ignored" | "deployment.healthcheck.passed" | "deployment.healthcheck.failed" | "deployment.healthy" | "deployment.failed" | "deployment.replaced" | "deployment.sourcemaps.uploaded" | "deployment.sourcemaps.upload-failed" | "deployment.requeue-failed" | "deployment.release.started" | "deployment.release.log" | "deployment.release.succeeded" | "deployment.release.failed" | "replica.restarted" | "service.scaled" | "service.restarted" | "service.restart-failed" | "domain.verified" | "domain.tls.issued" | "domain.tls.failed" | "domain.www-tls.issued" | "domain.www-tls.failed" | "domain.routing.active" | "domain.routing.failed" | "domain.removed" | "domain.governance.mirror-failed" | "service.slept" | "service.woke" | "service.wake_failed" | "service.sleep-enabled" | "service.sleep-disabled" | "service.sleep-enable-failed" | "cloud-sql.instance.stopped" | "cloud-sql.instance.started" | "cloud-sql.instance.stop-failed" | "cloud-sql.instance.start-failed" | "suspension.workload-stopped" | "suspension.workload-restored" | "managed-service.restarted" | "managed-service.port-leak-healed")
2735
6606
  payload: {
2736
6607
  [k: string]: unknown
2737
6608
  }
@@ -2744,7 +6615,7 @@ environmentId: (string | null)
2744
6615
  }[]
2745
6616
 
2746
6617
  export interface DeploymentEventsListByServiceInput {
2747
- type?: ("deployment.queued" | "deployment.build.started" | "deployment.build.succeeded" | "deployment.build.failed" | "deployment.deploying" | "deployment.variable.ignored" | "deployment.healthcheck.passed" | "deployment.healthcheck.failed" | "deployment.healthy" | "deployment.failed" | "deployment.replaced" | "deployment.sourcemaps.uploaded" | "deployment.sourcemaps.upload-failed" | "deployment.requeue-failed" | "deployment.release.started" | "deployment.release.log" | "deployment.release.succeeded" | "deployment.release.failed" | "replica.restarted" | "service.scaled" | "service.restarted" | "service.restart-failed" | "domain.verified" | "domain.tls.issued" | "domain.tls.failed" | "domain.www-tls.issued" | "domain.www-tls.failed" | "domain.routing.active" | "domain.routing.failed" | "domain.removed" | "domain.governance.mirror-failed" | "service.slept" | "service.woke" | "service.wake_failed" | "service.sleep-enabled" | "service.sleep-disabled" | "service.sleep-enable-failed" | "cloud-sql.instance.stopped" | "cloud-sql.instance.started" | "cloud-sql.instance.stop-failed" | "cloud-sql.instance.start-failed" | "suspension.workload-stopped" | "suspension.workload-restored" | "managed-service.restarted")
6618
+ type?: ("deployment.queued" | "deployment.build.started" | "deployment.build.succeeded" | "deployment.build.failed" | "deployment.deploying" | "deployment.variable.ignored" | "deployment.healthcheck.passed" | "deployment.healthcheck.failed" | "deployment.healthy" | "deployment.failed" | "deployment.replaced" | "deployment.sourcemaps.uploaded" | "deployment.sourcemaps.upload-failed" | "deployment.requeue-failed" | "deployment.release.started" | "deployment.release.log" | "deployment.release.succeeded" | "deployment.release.failed" | "replica.restarted" | "service.scaled" | "service.restarted" | "service.restart-failed" | "domain.verified" | "domain.tls.issued" | "domain.tls.failed" | "domain.www-tls.issued" | "domain.www-tls.failed" | "domain.routing.active" | "domain.routing.failed" | "domain.removed" | "domain.governance.mirror-failed" | "service.slept" | "service.woke" | "service.wake_failed" | "service.sleep-enabled" | "service.sleep-disabled" | "service.sleep-enable-failed" | "cloud-sql.instance.stopped" | "cloud-sql.instance.started" | "cloud-sql.instance.stop-failed" | "cloud-sql.instance.start-failed" | "suspension.workload-stopped" | "suspension.workload-restored" | "managed-service.restarted" | "managed-service.port-leak-healed")
2748
6619
  limit?: number
2749
6620
  since?: string
2750
6621
  until?: string
@@ -2754,7 +6625,7 @@ deploymentId?: string
2754
6625
 
2755
6626
  export type DeploymentEventsListByServiceOutput = {
2756
6627
  id: string
2757
- type: ("deployment.queued" | "deployment.build.started" | "deployment.build.succeeded" | "deployment.build.failed" | "deployment.deploying" | "deployment.variable.ignored" | "deployment.healthcheck.passed" | "deployment.healthcheck.failed" | "deployment.healthy" | "deployment.failed" | "deployment.replaced" | "deployment.sourcemaps.uploaded" | "deployment.sourcemaps.upload-failed" | "deployment.requeue-failed" | "deployment.release.started" | "deployment.release.log" | "deployment.release.succeeded" | "deployment.release.failed" | "replica.restarted" | "service.scaled" | "service.restarted" | "service.restart-failed" | "domain.verified" | "domain.tls.issued" | "domain.tls.failed" | "domain.www-tls.issued" | "domain.www-tls.failed" | "domain.routing.active" | "domain.routing.failed" | "domain.removed" | "domain.governance.mirror-failed" | "service.slept" | "service.woke" | "service.wake_failed" | "service.sleep-enabled" | "service.sleep-disabled" | "service.sleep-enable-failed" | "cloud-sql.instance.stopped" | "cloud-sql.instance.started" | "cloud-sql.instance.stop-failed" | "cloud-sql.instance.start-failed" | "suspension.workload-stopped" | "suspension.workload-restored" | "managed-service.restarted")
6628
+ type: ("deployment.queued" | "deployment.build.started" | "deployment.build.succeeded" | "deployment.build.failed" | "deployment.deploying" | "deployment.variable.ignored" | "deployment.healthcheck.passed" | "deployment.healthcheck.failed" | "deployment.healthy" | "deployment.failed" | "deployment.replaced" | "deployment.sourcemaps.uploaded" | "deployment.sourcemaps.upload-failed" | "deployment.requeue-failed" | "deployment.release.started" | "deployment.release.log" | "deployment.release.succeeded" | "deployment.release.failed" | "replica.restarted" | "service.scaled" | "service.restarted" | "service.restart-failed" | "domain.verified" | "domain.tls.issued" | "domain.tls.failed" | "domain.www-tls.issued" | "domain.www-tls.failed" | "domain.routing.active" | "domain.routing.failed" | "domain.removed" | "domain.governance.mirror-failed" | "service.slept" | "service.woke" | "service.wake_failed" | "service.sleep-enabled" | "service.sleep-disabled" | "service.sleep-enable-failed" | "cloud-sql.instance.stopped" | "cloud-sql.instance.started" | "cloud-sql.instance.stop-failed" | "cloud-sql.instance.start-failed" | "suspension.workload-stopped" | "suspension.workload-restored" | "managed-service.restarted" | "managed-service.port-leak-healed")
2758
6629
  payload: {
2759
6630
  [k: string]: unknown
2760
6631
  }
@@ -3318,6 +7189,7 @@ memory?: string
3318
7189
  }
3319
7190
  }
3320
7191
  updatedAt: string
7192
+ autoDeploy?: boolean
3321
7193
  sleepState: ("awake" | "sleeping" | "waking" | "stopped" | "wake_failed")
3322
7194
  idleMinutes: number
3323
7195
  scaleToZero: boolean
@@ -3424,6 +7296,7 @@ memory?: string
3424
7296
  }
3425
7297
  }
3426
7298
  updatedAt: string
7299
+ autoDeploy?: boolean
3427
7300
  sleepState: ("awake" | "sleeping" | "waking" | "stopped" | "wake_failed")
3428
7301
  idleMinutes: number
3429
7302
  scaleToZero: boolean
@@ -3497,6 +7370,7 @@ memory?: string
3497
7370
  }
3498
7371
  }
3499
7372
  updatedAt: string
7373
+ autoDeploy?: boolean
3500
7374
  sleepState: ("awake" | "sleeping" | "waking" | "stopped" | "wake_failed")
3501
7375
  idleMinutes: number
3502
7376
  scaleToZero: boolean
@@ -3647,6 +7521,7 @@ memory?: string
3647
7521
  }
3648
7522
  }
3649
7523
  updatedAt: string
7524
+ autoDeploy?: boolean
3650
7525
  sleepState: ("awake" | "sleeping" | "waking" | "stopped" | "wake_failed")
3651
7526
  idleMinutes: number
3652
7527
  scaleToZero: boolean
@@ -3715,6 +7590,10 @@ cpu?: string
3715
7590
  memory?: string
3716
7591
  }
3717
7592
  }
7593
+ /**
7594
+ * Whether a push to this service's repo+branch queues a deploy. Default true. Turning it off suppresses push-triggered deploys only — manual and API-triggered deploys still work. Applies to git and static sources alike; the UI toggle is currently git-only, so a static service is switched through this field.
7595
+ */
7596
+ autoDeploy?: boolean
3718
7597
  idleMinutes?: number
3719
7598
  scaleToZero?: boolean
3720
7599
  containerPort?: number
@@ -3776,6 +7655,7 @@ memory?: string
3776
7655
  }
3777
7656
  }
3778
7657
  updatedAt: string
7658
+ autoDeploy?: boolean
3779
7659
  sleepState: ("awake" | "sleeping" | "waking" | "stopped" | "wake_failed")
3780
7660
  idleMinutes: number
3781
7661
  scaleToZero: boolean
@@ -15487,6 +19367,7 @@ displayName: (string | null)
15487
19367
  orgRoles: {
15488
19368
  id: string
15489
19369
  name: string
19370
+ description: (string | null)
15490
19371
  }[]
15491
19372
  canManage: boolean
15492
19373
  inherited: {
@@ -15883,6 +19764,226 @@ lastMessagePreview: (string | null)
15883
19764
  }[]
15884
19765
  }
15885
19766
 
19767
+ export interface PlaygroundAnalyticsOverviewInput {
19768
+ /**
19769
+ * Max records per entity in recent[]; omit for the endpoint default
19770
+ */
19771
+ limit?: number
19772
+ }
19773
+
19774
+ export interface PlaygroundAnalyticsOverviewOutput {
19775
+ ok: boolean
19776
+ minted: boolean
19777
+ overview?: unknown
19778
+ http_status: number
19779
+ }
19780
+
19781
+ export interface PlaygroundBillingEntitlementsInput {
19782
+
19783
+ }
19784
+
19785
+ export interface PlaygroundBillingEntitlementsOutput {
19786
+ ok: boolean
19787
+ minted: boolean
19788
+ http_status: number
19789
+ entitlements?: unknown
19790
+ }
19791
+
19792
+ export interface PlaygroundBillingRecordUsageInput {
19793
+ /**
19794
+ * Quantity of events to record against playground-events (SUM); defaults to 1
19795
+ */
19796
+ value?: number
19797
+ }
19798
+
19799
+ export interface PlaygroundBillingRecordUsageOutput {
19800
+ minted: boolean
19801
+ accepted: (number | null)
19802
+ recorded: boolean
19803
+ duplicates: (number | null)
19804
+ http_status: number
19805
+ }
19806
+
19807
+ export interface PlaygroundClickupCreateTaskInput {
19808
+ /**
19809
+ * Task title; defaults to a fixture label
19810
+ */
19811
+ name?: string
19812
+ /**
19813
+ * ClickUp list id; falls back to CLICKUP_TEST_LIST_ID
19814
+ */
19815
+ listId?: string
19816
+ }
19817
+
19818
+ export interface PlaygroundClickupCreateTaskOutput {
19819
+ minted: boolean
19820
+ task_id: (string | null)
19821
+ list_status: number
19822
+ vend_status: number
19823
+ clickup_status: number
19824
+ installation_count: number
19825
+ }
19826
+
19827
+ export interface PlaygroundClickupGetLastWebhookInput {
19828
+
19829
+ }
19830
+
19831
+ export type PlaygroundClickupGetLastWebhookOutput = ({
19832
+ payload: string
19833
+ event_id: string
19834
+ provider: string
19835
+ verified: boolean
19836
+ product_id: string
19837
+ occurred_at: string
19838
+ connector_id: string
19839
+ clickup_event: (string | null)
19840
+ receipt_count: number
19841
+ } | {
19842
+ found: false
19843
+ })
19844
+
19845
+ export interface PlaygroundClickupGetOverviewInput {
19846
+
19847
+ }
19848
+
19849
+ export interface PlaygroundClickupGetOverviewOutput {
19850
+ team: ({
19851
+ teamId: string
19852
+ teamName: string
19853
+ } | null)
19854
+ lists: PlaygroundClickupGetOverviewOutputItems[]
19855
+ tasks: {
19856
+ id: string
19857
+ name: string
19858
+ status: (string | null)
19859
+ }[]
19860
+ minted: boolean
19861
+ spaces: PlaygroundClickupGetOverviewOutputItems[]
19862
+ list_status: number
19863
+ vend_status: number
19864
+ lists_status: number
19865
+ tasks_status: number
19866
+ spaces_status: number
19867
+ folders_status: number
19868
+ installation_count: number
19869
+ }
19870
+ export interface PlaygroundClickupGetOverviewOutputItems {
19871
+ id: string
19872
+ name: string
19873
+ }
19874
+
19875
+ export interface PlaygroundGdriveGetLastChangeInput {
19876
+
19877
+ }
19878
+
19879
+ export type PlaygroundGdriveGetLastChangeOutput = ({
19880
+ file_id: string
19881
+ removed: boolean
19882
+ file_name: (string | null)
19883
+ mime_type: (string | null)
19884
+ product_id: string
19885
+ occurred_at: string
19886
+ connector_id: string
19887
+ resource_state: string
19888
+ } | {
19889
+ found: false
19890
+ })
19891
+
19892
+ export interface PlaygroundGdriveReadFileInput {
19893
+ /**
19894
+ * Drive file id; falls back to GDRIVE_TEST_FILE_ID, then the first picked file
19895
+ */
19896
+ fileId?: string
19897
+ }
19898
+
19899
+ export interface PlaygroundGdriveReadFileOutput {
19900
+ minted: boolean
19901
+ file_id: (string | null)
19902
+ file_name: (string | null)
19903
+ mime_type: (string | null)
19904
+ file_count: number
19905
+ get_status: number
19906
+ list_status: number
19907
+ vend_status: number
19908
+ content_bytes: (number | null)
19909
+ }
19910
+
19911
+ export interface PlaygroundGoogleadsReadCustomerInput {
19912
+
19913
+ }
19914
+
19915
+ export interface PlaygroundGoogleadsReadCustomerOutput {
19916
+ minted: boolean
19917
+ vended: boolean
19918
+ customer_id: (string | null)
19919
+ vend_status: number
19920
+ result_count: number
19921
+ search_status: number
19922
+ login_customer_id: (string | null)
19923
+ }
19924
+
19925
+ export interface PlaygroundLifecycleGetStateInput {
19926
+
19927
+ }
19928
+
19929
+ export interface PlaygroundLifecycleGetStateOutput {
19930
+ blocked: boolean
19931
+ archived: boolean
19932
+ productId: string
19933
+ lastBlockTransition: ({
19934
+ eventId: string
19935
+ eventName: string
19936
+ productId: string
19937
+ occurredAt: string
19938
+ recordedAt: string
19939
+ receiptCount: number
19940
+ organizationId: string
19941
+ cascadedFromOrg: boolean
19942
+ } | null)
19943
+ lastArchiveTransition: ({
19944
+ eventId: string
19945
+ eventName: string
19946
+ productId: string
19947
+ occurredAt: string
19948
+ recordedAt: string
19949
+ receiptCount: number
19950
+ organizationId: string
19951
+ cascadedFromOrg: boolean
19952
+ } | null)
19953
+ }
19954
+
19955
+ export interface PlaygroundLifecycleListEventsInput {
19956
+
19957
+ }
19958
+
19959
+ export type PlaygroundLifecycleListEventsOutput = {
19960
+ eventId: string
19961
+ eventName: string
19962
+ productId: string
19963
+ occurredAt: string
19964
+ recordedAt: string
19965
+ receiptCount: number
19966
+ organizationId: string
19967
+ cascadedFromOrg: boolean
19968
+ }[]
19969
+
19970
+ export interface PlaygroundWebhookGetLastInput {
19971
+
19972
+ }
19973
+
19974
+ export type PlaygroundWebhookGetLastOutput = ({
19975
+ payload?: unknown
19976
+ event_id: string
19977
+ provider: string
19978
+ verified: boolean
19979
+ product_id: string
19980
+ occurred_at: string
19981
+ connector_id: string
19982
+ delivery_count: number
19983
+ } | {
19984
+ found: false
19985
+ })
19986
+
15886
19987
  export interface RealtimeArchiveExportInput {
15887
19988
  /**
15888
19989
  * Only entries with ts <= to_ts (epoch ms)