@pidgeon-ai/sdk 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -468,7 +468,7 @@ type Message = {
468
468
  downloadable: boolean;
469
469
  }>;
470
470
  /**
471
- * The calendar part this message carried, or null. See `prd/calendar.md`.
471
+ * The calendar part this message carried, or null — the invitation, who was asked, and what they answered.
472
472
  */
473
473
  invitation: {
474
474
  method: string | null;
@@ -1176,7 +1176,13 @@ type Error = {
1176
1176
  };
1177
1177
  type AgentSignUpData = {
1178
1178
  body: {
1179
+ /**
1180
+ * The local part you want on the shared domain.
1181
+ */
1179
1182
  username: string;
1183
+ /**
1184
+ * A person who can be reached. They receive the code that finishes the signup.
1185
+ */
1180
1186
  human_email: string;
1181
1187
  source?: string | null;
1182
1188
  };
@@ -1190,7 +1196,7 @@ type AgentSignUpErrors = {
1190
1196
  */
1191
1197
  401: Error;
1192
1198
  /**
1193
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1199
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1194
1200
  */
1195
1201
  404: Error;
1196
1202
  /**
@@ -1210,7 +1216,13 @@ type AgentSignUpResponses = {
1210
1216
  type AgentSignUpResponse = AgentSignUpResponses[keyof AgentSignUpResponses];
1211
1217
  type AgentAttachHumanData = {
1212
1218
  body: {
1219
+ /**
1220
+ * From the signup this is finishing.
1221
+ */
1213
1222
  signup_id: string;
1223
+ /**
1224
+ * A person who can be reached. They receive the code that finishes the signup.
1225
+ */
1214
1226
  human_email: string;
1215
1227
  };
1216
1228
  path?: never;
@@ -1223,7 +1235,7 @@ type AgentAttachHumanErrors = {
1223
1235
  */
1224
1236
  401: Error;
1225
1237
  /**
1226
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1238
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1227
1239
  */
1228
1240
  404: Error;
1229
1241
  /**
@@ -1243,6 +1255,9 @@ type AgentAttachHumanResponses = {
1243
1255
  type AgentAttachHumanResponse = AgentAttachHumanResponses[keyof AgentAttachHumanResponses];
1244
1256
  type AgentVerifyData = {
1245
1257
  body: {
1258
+ /**
1259
+ * From the signup this is finishing.
1260
+ */
1246
1261
  signup_id: string;
1247
1262
  code: string;
1248
1263
  };
@@ -1256,7 +1271,7 @@ type AgentVerifyErrors = {
1256
1271
  */
1257
1272
  401: Error;
1258
1273
  /**
1259
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1274
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1260
1275
  */
1261
1276
  404: Error;
1262
1277
  /**
@@ -1293,7 +1308,7 @@ type IdentitiesListErrors = {
1293
1308
  */
1294
1309
  401: Error;
1295
1310
  /**
1296
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1311
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1297
1312
  */
1298
1313
  404: Error;
1299
1314
  /**
@@ -1318,15 +1333,49 @@ type IdentitiesListResponses = {
1318
1333
  type IdentitiesListResponse = IdentitiesListResponses[keyof IdentitiesListResponses];
1319
1334
  type IdentitiesCreateData = {
1320
1335
  body: {
1336
+ /**
1337
+ * From `GET /domains`, or the `domain_id` on any address you already have.
1338
+ */
1321
1339
  domain_id?: string;
1340
+ /**
1341
+ * A domain name you own, or the shared one. An alternative to `domain_id`.
1342
+ */
1322
1343
  domain?: string;
1344
+ /**
1345
+ * A whole address — the local part and the domain in one. An alternative to the other two.
1346
+ */
1323
1347
  address?: string;
1348
+ /**
1349
+ * Everything before the `@`.
1350
+ */
1324
1351
  local_part?: string;
1352
+ /**
1353
+ * The name a recipient sees beside the address.
1354
+ */
1325
1355
  display_name?: string | null;
1356
+ /**
1357
+ * Whether it keeps mail. With an inbox what arrives is stored and a person can open it; without one it becomes an event and your webhook fires. Defaults from `type`.
1358
+ */
1359
+ inbox?: boolean;
1360
+ /**
1361
+ * A label for what this address is for. It does not change what the address can do — that is `inbox`.
1362
+ */
1326
1363
  type?: 'human' | 'team' | 'application' | 'workflow' | 'agent';
1364
+ /**
1365
+ * Who answers: a person, software, or both.
1366
+ */
1327
1367
  mode?: 'human' | 'automated' | 'hybrid';
1368
+ /**
1369
+ * When it stops accepting mail. Expiry suspends; it never deletes, so the correspondence survives.
1370
+ */
1328
1371
  expires_at?: string | null;
1372
+ /**
1373
+ * Who it may write to. `reply_only` makes an address structurally unable to start a conversation with a stranger.
1374
+ */
1329
1375
  send_policy?: 'open' | 'reply_only' | 'list';
1376
+ /**
1377
+ * Your own opaque grouping — a customer id, whatever your side calls it. Never parsed here.
1378
+ */
1330
1379
  tenant_id?: string | null;
1331
1380
  };
1332
1381
  path?: never;
@@ -1339,7 +1388,7 @@ type IdentitiesCreateErrors = {
1339
1388
  */
1340
1389
  401: Error;
1341
1390
  /**
1342
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1391
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1343
1392
  */
1344
1393
  404: Error;
1345
1394
  /**
@@ -1371,7 +1420,7 @@ type IdentitiesDeleteErrors = {
1371
1420
  */
1372
1421
  401: Error;
1373
1422
  /**
1374
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1423
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1375
1424
  */
1376
1425
  404: Error;
1377
1426
  /**
@@ -1403,7 +1452,7 @@ type IdentitiesGetErrors = {
1403
1452
  */
1404
1453
  401: Error;
1405
1454
  /**
1406
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1455
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1407
1456
  */
1408
1457
  404: Error;
1409
1458
  /**
@@ -1423,14 +1472,29 @@ type IdentitiesGetResponses = {
1423
1472
  type IdentitiesGetResponse = IdentitiesGetResponses[keyof IdentitiesGetResponses];
1424
1473
  type IdentitiesUpdateData = {
1425
1474
  body: {
1475
+ /**
1476
+ * The name a recipient sees beside the address.
1477
+ */
1426
1478
  display_name?: string | null;
1479
+ /**
1480
+ * Who answers: a person, software, or both.
1481
+ */
1427
1482
  mode?: 'human' | 'automated' | 'hybrid';
1428
1483
  capabilities?: {
1429
1484
  [key: string]: boolean;
1430
1485
  };
1431
1486
  status?: 'active' | 'suspended' | 'archived';
1487
+ /**
1488
+ * When it stops accepting mail. Expiry suspends; it never deletes, so the correspondence survives.
1489
+ */
1432
1490
  expires_at?: string | null;
1491
+ /**
1492
+ * Who it may write to. `reply_only` makes an address structurally unable to start a conversation with a stranger.
1493
+ */
1433
1494
  send_policy?: 'open' | 'reply_only' | 'list';
1495
+ /**
1496
+ * Your own opaque grouping — a customer id, whatever your side calls it. Never parsed here.
1497
+ */
1434
1498
  tenant_id?: string | null;
1435
1499
  };
1436
1500
  path: {
@@ -1445,7 +1509,7 @@ type IdentitiesUpdateErrors = {
1445
1509
  */
1446
1510
  401: Error;
1447
1511
  /**
1448
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1512
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1449
1513
  */
1450
1514
  404: Error;
1451
1515
  /**
@@ -1479,7 +1543,7 @@ type IdentitiesAccessDeleteErrors = {
1479
1543
  */
1480
1544
  401: Error;
1481
1545
  /**
1482
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1546
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1483
1547
  */
1484
1548
  404: Error;
1485
1549
  /**
@@ -1511,7 +1575,7 @@ type IdentitiesAccessGetErrors = {
1511
1575
  */
1512
1576
  401: Error;
1513
1577
  /**
1514
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1578
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1515
1579
  */
1516
1580
  404: Error;
1517
1581
  /**
@@ -1534,6 +1598,9 @@ type IdentitiesAccessCreateData = {
1534
1598
  user_id?: string;
1535
1599
  api_key_id?: string;
1536
1600
  everyone?: true;
1601
+ /**
1602
+ * What a key may do. Give an agent the narrowest one that works.
1603
+ */
1537
1604
  access: 'read' | 'send' | 'admin';
1538
1605
  };
1539
1606
  path: {
@@ -1548,7 +1615,7 @@ type IdentitiesAccessCreateErrors = {
1548
1615
  */
1549
1616
  401: Error;
1550
1617
  /**
1551
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1618
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1552
1619
  */
1553
1620
  404: Error;
1554
1621
  /**
@@ -1582,7 +1649,7 @@ type IdentitiesSendRulesDeleteErrors = {
1582
1649
  */
1583
1650
  401: Error;
1584
1651
  /**
1585
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1652
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1586
1653
  */
1587
1654
  404: Error;
1588
1655
  /**
@@ -1614,7 +1681,7 @@ type IdentitiesSendRulesGetErrors = {
1614
1681
  */
1615
1682
  401: Error;
1616
1683
  /**
1617
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1684
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1618
1685
  */
1619
1686
  404: Error;
1620
1687
  /**
@@ -1649,7 +1716,7 @@ type IdentitiesSendRulesCreateErrors = {
1649
1716
  */
1650
1717
  401: Error;
1651
1718
  /**
1652
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1719
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1653
1720
  */
1654
1721
  404: Error;
1655
1722
  /**
@@ -1683,7 +1750,7 @@ type IdentitiesReceiveRulesDeleteErrors = {
1683
1750
  */
1684
1751
  401: Error;
1685
1752
  /**
1686
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1753
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1687
1754
  */
1688
1755
  404: Error;
1689
1756
  /**
@@ -1715,7 +1782,7 @@ type IdentitiesReceiveRulesGetErrors = {
1715
1782
  */
1716
1783
  401: Error;
1717
1784
  /**
1718
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1785
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1719
1786
  */
1720
1787
  404: Error;
1721
1788
  /**
@@ -1750,7 +1817,7 @@ type IdentitiesReceiveRulesCreateErrors = {
1750
1817
  */
1751
1818
  401: Error;
1752
1819
  /**
1753
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1820
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1754
1821
  */
1755
1822
  404: Error;
1756
1823
  /**
@@ -1785,7 +1852,7 @@ type IdentitiesSuspendTenantErrors = {
1785
1852
  */
1786
1853
  401: Error;
1787
1854
  /**
1788
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1855
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1789
1856
  */
1790
1857
  404: Error;
1791
1858
  /**
@@ -1817,7 +1884,7 @@ type LabelsListErrors = {
1817
1884
  */
1818
1885
  401: Error;
1819
1886
  /**
1820
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1887
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1821
1888
  */
1822
1889
  404: Error;
1823
1890
  /**
@@ -1842,6 +1909,9 @@ type LabelsListResponses = {
1842
1909
  type LabelsListResponse = LabelsListResponses[keyof LabelsListResponses];
1843
1910
  type LabelsCreateData = {
1844
1911
  body: {
1912
+ /**
1913
+ * The address this belongs to.
1914
+ */
1845
1915
  identity_id: string;
1846
1916
  name: string;
1847
1917
  colour?: string;
@@ -1856,7 +1926,7 @@ type LabelsCreateErrors = {
1856
1926
  */
1857
1927
  401: Error;
1858
1928
  /**
1859
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1929
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1860
1930
  */
1861
1931
  404: Error;
1862
1932
  /**
@@ -1888,7 +1958,7 @@ type LabelsDeleteErrors = {
1888
1958
  */
1889
1959
  401: Error;
1890
1960
  /**
1891
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1961
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1892
1962
  */
1893
1963
  404: Error;
1894
1964
  /**
@@ -1923,7 +1993,7 @@ type LabelsUpdateErrors = {
1923
1993
  */
1924
1994
  401: Error;
1925
1995
  /**
1926
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
1996
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1927
1997
  */
1928
1998
  404: Error;
1929
1999
  /**
@@ -1957,7 +2027,7 @@ type ThreadsLabelsDeleteErrors = {
1957
2027
  */
1958
2028
  401: Error;
1959
2029
  /**
1960
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2030
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1961
2031
  */
1962
2032
  404: Error;
1963
2033
  /**
@@ -1989,7 +2059,7 @@ type ThreadsLabelsGetErrors = {
1989
2059
  */
1990
2060
  401: Error;
1991
2061
  /**
1992
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2062
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
1993
2063
  */
1994
2064
  404: Error;
1995
2065
  /**
@@ -2028,7 +2098,7 @@ type ThreadsLabelsCreateErrors = {
2028
2098
  */
2029
2099
  401: Error;
2030
2100
  /**
2031
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2101
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2032
2102
  */
2033
2103
  404: Error;
2034
2104
  /**
@@ -2070,7 +2140,7 @@ type MessagesListInThreadErrors = {
2070
2140
  */
2071
2141
  401: Error;
2072
2142
  /**
2073
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2143
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2074
2144
  */
2075
2145
  404: Error;
2076
2146
  /**
@@ -2095,14 +2165,41 @@ type MessagesListInThreadResponses = {
2095
2165
  type MessagesListInThreadResponse = MessagesListInThreadResponses[keyof MessagesListInThreadResponses];
2096
2166
  type MessagesSendData = {
2097
2167
  body: {
2168
+ /**
2169
+ * An address on a domain you own, and one this key may send from.
2170
+ */
2098
2171
  from: string;
2172
+ /**
2173
+ * One address or several. A string is accepted for the single case.
2174
+ */
2099
2175
  to: string | Array<string>;
2176
+ /**
2177
+ * Copied, and visible to everybody who receives the message.
2178
+ */
2100
2179
  cc?: string | Array<string>;
2180
+ /**
2181
+ * Copied, and visible to nobody else.
2182
+ */
2101
2183
  bcc?: string | Array<string>;
2184
+ /**
2185
+ * Left off a reply, where the thread already has one.
2186
+ */
2102
2187
  subject?: string;
2188
+ /**
2189
+ * The plain-text body. Send this even when you send `html` — some clients only read it.
2190
+ */
2103
2191
  text?: string;
2192
+ /**
2193
+ * The rich body. Sanitised on the way in; scripts and remote content are removed.
2194
+ */
2104
2195
  html?: string;
2196
+ /**
2197
+ * Ids from `POST /attachments`, uploaded before the message that carries them. Up to 20.
2198
+ */
2105
2199
  attachment_ids?: Array<string>;
2200
+ /**
2201
+ * The message being answered. Keeps the conversation together in the recipient’s client too.
2202
+ */
2106
2203
  in_reply_to?: string | null;
2107
2204
  };
2108
2205
  path?: never;
@@ -2115,7 +2212,7 @@ type MessagesSendErrors = {
2115
2212
  */
2116
2213
  401: Error;
2117
2214
  /**
2118
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2215
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2119
2216
  */
2120
2217
  404: Error;
2121
2218
  /**
@@ -2126,10 +2223,10 @@ type MessagesSendErrors = {
2126
2223
  type MessagesSendError = MessagesSendErrors[keyof MessagesSendErrors];
2127
2224
  type MessagesSendResponses = {
2128
2225
  /**
2129
- * The sent message.
2226
+ * Accepted.
2130
2227
  */
2131
- 201: {
2132
- data: Message;
2228
+ 202: {
2229
+ data: Sent;
2133
2230
  };
2134
2231
  };
2135
2232
  type MessagesSendResponse = MessagesSendResponses[keyof MessagesSendResponses];
@@ -2156,7 +2253,7 @@ type MessagesSearchErrors = {
2156
2253
  */
2157
2254
  401: Error;
2158
2255
  /**
2159
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2256
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2160
2257
  */
2161
2258
  404: Error;
2162
2259
  /**
@@ -2194,7 +2291,7 @@ type MessagesActErrors = {
2194
2291
  */
2195
2292
  401: Error;
2196
2293
  /**
2197
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2294
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2198
2295
  */
2199
2296
  404: Error;
2200
2297
  /**
@@ -2226,7 +2323,7 @@ type MessagesUndoErrors = {
2226
2323
  */
2227
2324
  401: Error;
2228
2325
  /**
2229
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2326
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2230
2327
  */
2231
2328
  404: Error;
2232
2329
  /**
@@ -2258,7 +2355,7 @@ type MessagesGetErrors = {
2258
2355
  */
2259
2356
  401: Error;
2260
2357
  /**
2261
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2358
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2262
2359
  */
2263
2360
  404: Error;
2264
2361
  /**
@@ -2294,7 +2391,7 @@ type MessagesUpdateErrors = {
2294
2391
  */
2295
2392
  401: Error;
2296
2393
  /**
2297
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2394
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2298
2395
  */
2299
2396
  404: Error;
2300
2397
  /**
@@ -2314,11 +2411,29 @@ type MessagesUpdateResponses = {
2314
2411
  type MessagesUpdateResponse = MessagesUpdateResponses[keyof MessagesUpdateResponses];
2315
2412
  type MessagesReplyData = {
2316
2413
  body: {
2414
+ /**
2415
+ * The plain-text body. Send this even when you send `html` — some clients only read it.
2416
+ */
2317
2417
  text?: string;
2418
+ /**
2419
+ * The rich body. Sanitised on the way in; scripts and remote content are removed.
2420
+ */
2318
2421
  html?: string;
2422
+ /**
2423
+ * One address or several. A string is accepted for the single case.
2424
+ */
2319
2425
  to?: Array<string>;
2426
+ /**
2427
+ * Copied, and visible to everybody who receives the message.
2428
+ */
2320
2429
  cc?: Array<string>;
2430
+ /**
2431
+ * Copied, and visible to nobody else.
2432
+ */
2321
2433
  bcc?: Array<string>;
2434
+ /**
2435
+ * Ids from `POST /attachments`, uploaded before the message that carries them. Up to 20.
2436
+ */
2322
2437
  attachment_ids?: Array<string>;
2323
2438
  };
2324
2439
  path: {
@@ -2333,7 +2448,7 @@ type MessagesReplyErrors = {
2333
2448
  */
2334
2449
  401: Error;
2335
2450
  /**
2336
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2451
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2337
2452
  */
2338
2453
  404: Error;
2339
2454
  /**
@@ -2353,11 +2468,29 @@ type MessagesReplyResponses = {
2353
2468
  type MessagesReplyResponse = MessagesReplyResponses[keyof MessagesReplyResponses];
2354
2469
  type MessagesReplyAllData = {
2355
2470
  body: {
2471
+ /**
2472
+ * The plain-text body. Send this even when you send `html` — some clients only read it.
2473
+ */
2356
2474
  text?: string;
2475
+ /**
2476
+ * The rich body. Sanitised on the way in; scripts and remote content are removed.
2477
+ */
2357
2478
  html?: string;
2479
+ /**
2480
+ * One address or several. A string is accepted for the single case.
2481
+ */
2358
2482
  to?: Array<string>;
2483
+ /**
2484
+ * Copied, and visible to everybody who receives the message.
2485
+ */
2359
2486
  cc?: Array<string>;
2487
+ /**
2488
+ * Copied, and visible to nobody else.
2489
+ */
2360
2490
  bcc?: Array<string>;
2491
+ /**
2492
+ * Ids from `POST /attachments`, uploaded before the message that carries them. Up to 20.
2493
+ */
2361
2494
  attachment_ids?: Array<string>;
2362
2495
  };
2363
2496
  path: {
@@ -2372,7 +2505,7 @@ type MessagesReplyAllErrors = {
2372
2505
  */
2373
2506
  401: Error;
2374
2507
  /**
2375
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2508
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2376
2509
  */
2377
2510
  404: Error;
2378
2511
  /**
@@ -2392,11 +2525,29 @@ type MessagesReplyAllResponses = {
2392
2525
  type MessagesReplyAllResponse = MessagesReplyAllResponses[keyof MessagesReplyAllResponses];
2393
2526
  type MessagesForwardData = {
2394
2527
  body: {
2528
+ /**
2529
+ * The plain-text body. Send this even when you send `html` — some clients only read it.
2530
+ */
2395
2531
  text?: string;
2532
+ /**
2533
+ * The rich body. Sanitised on the way in; scripts and remote content are removed.
2534
+ */
2396
2535
  html?: string;
2536
+ /**
2537
+ * One address or several. A string is accepted for the single case.
2538
+ */
2397
2539
  to?: Array<string>;
2540
+ /**
2541
+ * Copied, and visible to everybody who receives the message.
2542
+ */
2398
2543
  cc?: Array<string>;
2544
+ /**
2545
+ * Copied, and visible to nobody else.
2546
+ */
2399
2547
  bcc?: Array<string>;
2548
+ /**
2549
+ * Ids from `POST /attachments`, uploaded before the message that carries them. Up to 20.
2550
+ */
2400
2551
  attachment_ids?: Array<string>;
2401
2552
  };
2402
2553
  path: {
@@ -2411,7 +2562,7 @@ type MessagesForwardErrors = {
2411
2562
  */
2412
2563
  401: Error;
2413
2564
  /**
2414
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2565
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2415
2566
  */
2416
2567
  404: Error;
2417
2568
  /**
@@ -2443,7 +2594,7 @@ type MessagesRawErrors = {
2443
2594
  */
2444
2595
  401: Error;
2445
2596
  /**
2446
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2597
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2447
2598
  */
2448
2599
  404: Error;
2449
2600
  /**
@@ -2484,7 +2635,7 @@ type ThreadsListErrors = {
2484
2635
  */
2485
2636
  401: Error;
2486
2637
  /**
2487
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2638
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2488
2639
  */
2489
2640
  404: Error;
2490
2641
  /**
@@ -2521,7 +2672,7 @@ type ThreadsGetErrors = {
2521
2672
  */
2522
2673
  401: Error;
2523
2674
  /**
2524
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2675
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2525
2676
  */
2526
2677
  404: Error;
2527
2678
  /**
@@ -2557,7 +2708,7 @@ type ThreadsUpdateErrors = {
2557
2708
  */
2558
2709
  401: Error;
2559
2710
  /**
2560
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2711
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2561
2712
  */
2562
2713
  404: Error;
2563
2714
  /**
@@ -2593,7 +2744,7 @@ type DomainsListErrors = {
2593
2744
  */
2594
2745
  401: Error;
2595
2746
  /**
2596
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2747
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2597
2748
  */
2598
2749
  404: Error;
2599
2750
  /**
@@ -2618,6 +2769,9 @@ type DomainsListResponses = {
2618
2769
  type DomainsListResponse = DomainsListResponses[keyof DomainsListResponses];
2619
2770
  type DomainsCreateData = {
2620
2771
  body: {
2772
+ /**
2773
+ * A domain name you own, or the shared one. An alternative to `domain_id`.
2774
+ */
2621
2775
  domain: string;
2622
2776
  };
2623
2777
  path?: never;
@@ -2630,7 +2784,7 @@ type DomainsCreateErrors = {
2630
2784
  */
2631
2785
  401: Error;
2632
2786
  /**
2633
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2787
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2634
2788
  */
2635
2789
  404: Error;
2636
2790
  /**
@@ -2662,7 +2816,7 @@ type DomainsZoneFileErrors = {
2662
2816
  */
2663
2817
  401: Error;
2664
2818
  /**
2665
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2819
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2666
2820
  */
2667
2821
  404: Error;
2668
2822
  /**
@@ -2697,7 +2851,7 @@ type DomainsGetSetupLinkErrors = {
2697
2851
  */
2698
2852
  401: Error;
2699
2853
  /**
2700
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2854
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2701
2855
  */
2702
2856
  404: Error;
2703
2857
  /**
@@ -2729,7 +2883,7 @@ type DomainsVerifyErrors = {
2729
2883
  */
2730
2884
  401: Error;
2731
2885
  /**
2732
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2886
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2733
2887
  */
2734
2888
  404: Error;
2735
2889
  /**
@@ -2761,7 +2915,7 @@ type DomainsDeleteErrors = {
2761
2915
  */
2762
2916
  401: Error;
2763
2917
  /**
2764
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2918
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2765
2919
  */
2766
2920
  404: Error;
2767
2921
  /**
@@ -2793,7 +2947,7 @@ type DomainsGetErrors = {
2793
2947
  */
2794
2948
  401: Error;
2795
2949
  /**
2796
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2950
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2797
2951
  */
2798
2952
  404: Error;
2799
2953
  /**
@@ -2827,7 +2981,7 @@ type DomainsUpdateErrors = {
2827
2981
  */
2828
2982
  401: Error;
2829
2983
  /**
2830
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
2984
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2831
2985
  */
2832
2986
  404: Error;
2833
2987
  /**
@@ -2859,7 +3013,7 @@ type RoutingListErrors = {
2859
3013
  */
2860
3014
  401: Error;
2861
3015
  /**
2862
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3016
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2863
3017
  */
2864
3018
  404: Error;
2865
3019
  /**
@@ -2911,7 +3065,7 @@ type RoutingCreateErrors = {
2911
3065
  */
2912
3066
  401: Error;
2913
3067
  /**
2914
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3068
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2915
3069
  */
2916
3070
  404: Error;
2917
3071
  /**
@@ -2943,7 +3097,7 @@ type RoutingDeleteErrors = {
2943
3097
  */
2944
3098
  401: Error;
2945
3099
  /**
2946
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3100
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2947
3101
  */
2948
3102
  404: Error;
2949
3103
  /**
@@ -2977,7 +3131,7 @@ type RoutingUpdateErrors = {
2977
3131
  */
2978
3132
  401: Error;
2979
3133
  /**
2980
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3134
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2981
3135
  */
2982
3136
  404: Error;
2983
3137
  /**
@@ -3009,7 +3163,7 @@ type MailboxesListErrors = {
3009
3163
  */
3010
3164
  401: Error;
3011
3165
  /**
3012
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3166
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3013
3167
  */
3014
3168
  404: Error;
3015
3169
  /**
@@ -3048,7 +3202,7 @@ type MailboxesChangesErrors = {
3048
3202
  */
3049
3203
  401: Error;
3050
3204
  /**
3051
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3205
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3052
3206
  */
3053
3207
  404: Error;
3054
3208
  /**
@@ -3087,7 +3241,7 @@ type MailboxesEmptyTrashErrors = {
3087
3241
  */
3088
3242
  401: Error;
3089
3243
  /**
3090
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3244
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3091
3245
  */
3092
3246
  404: Error;
3093
3247
  /**
@@ -3127,7 +3281,7 @@ type MailboxesListFolderErrors = {
3127
3281
  */
3128
3282
  401: Error;
3129
3283
  /**
3130
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3284
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3131
3285
  */
3132
3286
  404: Error;
3133
3287
  /**
@@ -3162,7 +3316,7 @@ type KeysListErrors = {
3162
3316
  */
3163
3317
  401: Error;
3164
3318
  /**
3165
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3319
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3166
3320
  */
3167
3321
  404: Error;
3168
3322
  /**
@@ -3189,7 +3343,13 @@ type KeysCreateData = {
3189
3343
  body: {
3190
3344
  name: string;
3191
3345
  identity_ids: Array<string>;
3346
+ /**
3347
+ * What a key may do. Give an agent the narrowest one that works.
3348
+ */
3192
3349
  access?: 'read' | 'send' | 'admin';
3350
+ /**
3351
+ * When it stops accepting mail. Expiry suspends; it never deletes, so the correspondence survives.
3352
+ */
3193
3353
  expires_at?: string | null;
3194
3354
  };
3195
3355
  path?: never;
@@ -3202,7 +3362,7 @@ type KeysCreateErrors = {
3202
3362
  */
3203
3363
  401: Error;
3204
3364
  /**
3205
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3365
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3206
3366
  */
3207
3367
  404: Error;
3208
3368
  /**
@@ -3234,7 +3394,7 @@ type KeysRevokeErrors = {
3234
3394
  */
3235
3395
  401: Error;
3236
3396
  /**
3237
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3397
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3238
3398
  */
3239
3399
  404: Error;
3240
3400
  /**
@@ -3266,7 +3426,7 @@ type KeysGetErrors = {
3266
3426
  */
3267
3427
  401: Error;
3268
3428
  /**
3269
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3429
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3270
3430
  */
3271
3431
  404: Error;
3272
3432
  /**
@@ -3300,7 +3460,7 @@ type KeysUpdateErrors = {
3300
3460
  */
3301
3461
  401: Error;
3302
3462
  /**
3303
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3463
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3304
3464
  */
3305
3465
  404: Error;
3306
3466
  /**
@@ -3332,7 +3492,7 @@ type AppPasswordsListErrors = {
3332
3492
  */
3333
3493
  401: Error;
3334
3494
  /**
3335
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3495
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3336
3496
  */
3337
3497
  404: Error;
3338
3498
  /**
@@ -3357,6 +3517,9 @@ type AppPasswordsListResponses = {
3357
3517
  type AppPasswordsListResponse = AppPasswordsListResponses[keyof AppPasswordsListResponses];
3358
3518
  type AppPasswordsCreateData = {
3359
3519
  body: {
3520
+ /**
3521
+ * The address this belongs to.
3522
+ */
3360
3523
  identity_id: string;
3361
3524
  name: string;
3362
3525
  };
@@ -3370,7 +3533,7 @@ type AppPasswordsCreateErrors = {
3370
3533
  */
3371
3534
  401: Error;
3372
3535
  /**
3373
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3536
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3374
3537
  */
3375
3538
  404: Error;
3376
3539
  /**
@@ -3402,7 +3565,7 @@ type AppPasswordsRevokeErrors = {
3402
3565
  */
3403
3566
  401: Error;
3404
3567
  /**
3405
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3568
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3406
3569
  */
3407
3570
  404: Error;
3408
3571
  /**
@@ -3432,7 +3595,7 @@ type WorkspaceGetErrors = {
3432
3595
  */
3433
3596
  401: Error;
3434
3597
  /**
3435
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3598
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3436
3599
  */
3437
3600
  404: Error;
3438
3601
  /**
@@ -3462,7 +3625,7 @@ type WorkspaceMembersErrors = {
3462
3625
  */
3463
3626
  401: Error;
3464
3627
  /**
3465
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3628
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3466
3629
  */
3467
3630
  404: Error;
3468
3631
  /**
@@ -3506,7 +3669,7 @@ type EventsListErrors = {
3506
3669
  */
3507
3670
  401: Error;
3508
3671
  /**
3509
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3672
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3510
3673
  */
3511
3674
  404: Error;
3512
3675
  /**
@@ -3543,7 +3706,7 @@ type EventsGetErrors = {
3543
3706
  */
3544
3707
  401: Error;
3545
3708
  /**
3546
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3709
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3547
3710
  */
3548
3711
  404: Error;
3549
3712
  /**
@@ -3579,7 +3742,7 @@ type WebhooksListErrors = {
3579
3742
  */
3580
3743
  401: Error;
3581
3744
  /**
3582
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3745
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3583
3746
  */
3584
3747
  404: Error;
3585
3748
  /**
@@ -3604,7 +3767,13 @@ type WebhooksListResponses = {
3604
3767
  type WebhooksListResponse = WebhooksListResponses[keyof WebhooksListResponses];
3605
3768
  type WebhooksCreateData = {
3606
3769
  body: {
3770
+ /**
3771
+ * Where we POST. HTTPS, and it has to answer within a few seconds.
3772
+ */
3607
3773
  url: string;
3774
+ /**
3775
+ * The address this belongs to.
3776
+ */
3608
3777
  identity_id?: string | null;
3609
3778
  event_types?: Array<'message.received' | 'message.sent' | 'message.delivered' | 'message.bounced' | 'message.rejected' | 'message.complained' | 'message.spam' | 'message.invitation' | 'message.archived' | 'message.deleted' | 'calendar.event.created' | 'calendar.event.updated' | 'calendar.event.deleted' | 'calendar.event.starting' | 'calendar.event.ending' | 'calendar.event.responded' | 'thread.created' | 'thread.updated' | 'thread.assigned' | 'thread.unassigned' | 'identity.created' | 'identity.updated' | 'identity.suspended' | 'identity.transferred' | 'domain.verified'>;
3610
3779
  };
@@ -3618,7 +3787,7 @@ type WebhooksCreateErrors = {
3618
3787
  */
3619
3788
  401: Error;
3620
3789
  /**
3621
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3790
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3622
3791
  */
3623
3792
  404: Error;
3624
3793
  /**
@@ -3650,7 +3819,7 @@ type WebhooksDeleteErrors = {
3650
3819
  */
3651
3820
  401: Error;
3652
3821
  /**
3653
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3822
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3654
3823
  */
3655
3824
  404: Error;
3656
3825
  /**
@@ -3682,7 +3851,7 @@ type WebhooksGetErrors = {
3682
3851
  */
3683
3852
  401: Error;
3684
3853
  /**
3685
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3854
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3686
3855
  */
3687
3856
  404: Error;
3688
3857
  /**
@@ -3716,7 +3885,7 @@ type WebhooksUpdateErrors = {
3716
3885
  */
3717
3886
  401: Error;
3718
3887
  /**
3719
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3888
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3720
3889
  */
3721
3890
  404: Error;
3722
3891
  /**
@@ -3748,7 +3917,7 @@ type WebhooksGetHeadersErrors = {
3748
3917
  */
3749
3918
  401: Error;
3750
3919
  /**
3751
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3920
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3752
3921
  */
3753
3922
  404: Error;
3754
3923
  /**
@@ -3784,7 +3953,7 @@ type WebhooksUpdateHeadersErrors = {
3784
3953
  */
3785
3954
  401: Error;
3786
3955
  /**
3787
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3956
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3788
3957
  */
3789
3958
  404: Error;
3790
3959
  /**
@@ -3817,7 +3986,7 @@ type WebhooksDeliveriesErrors = {
3817
3986
  */
3818
3987
  401: Error;
3819
3988
  /**
3820
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
3989
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3821
3990
  */
3822
3991
  404: Error;
3823
3992
  /**
@@ -3854,7 +4023,7 @@ type WebhooksReplayErrors = {
3854
4023
  */
3855
4024
  401: Error;
3856
4025
  /**
3857
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4026
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3858
4027
  */
3859
4028
  404: Error;
3860
4029
  /**
@@ -3889,7 +4058,7 @@ type MessagesRespondToInvitationErrors = {
3889
4058
  */
3890
4059
  401: Error;
3891
4060
  /**
3892
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4061
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3893
4062
  */
3894
4063
  404: Error;
3895
4064
  /**
@@ -3927,7 +4096,7 @@ type CalendarGetErrors = {
3927
4096
  */
3928
4097
  401: Error;
3929
4098
  /**
3930
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4099
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3931
4100
  */
3932
4101
  404: Error;
3933
4102
  /**
@@ -3947,6 +4116,9 @@ type CalendarGetResponses = {
3947
4116
  type CalendarGetResponse = CalendarGetResponses[keyof CalendarGetResponses];
3948
4117
  type CalendarUpdateData = {
3949
4118
  body: {
4119
+ /**
4120
+ * An IANA name, like `Europe/Lisbon`. The times above are read in it.
4121
+ */
3950
4122
  timezone: string;
3951
4123
  };
3952
4124
  headers?: {
@@ -3967,7 +4139,7 @@ type CalendarUpdateErrors = {
3967
4139
  */
3968
4140
  401: Error;
3969
4141
  /**
3970
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4142
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3971
4143
  */
3972
4144
  404: Error;
3973
4145
  /**
@@ -4005,7 +4177,7 @@ type CalendarListEventsErrors = {
4005
4177
  */
4006
4178
  401: Error;
4007
4179
  /**
4008
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4180
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4009
4181
  */
4010
4182
  404: Error;
4011
4183
  /**
@@ -4033,6 +4205,9 @@ type CalendarCreateEventData = {
4033
4205
  title: string;
4034
4206
  start: string;
4035
4207
  end: string;
4208
+ /**
4209
+ * An IANA name, like `Europe/Lisbon`. The times above are read in it.
4210
+ */
4036
4211
  timezone?: string | null;
4037
4212
  all_day?: boolean;
4038
4213
  description?: string | null;
@@ -4064,7 +4239,7 @@ type CalendarCreateEventErrors = {
4064
4239
  */
4065
4240
  401: Error;
4066
4241
  /**
4067
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4242
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4068
4243
  */
4069
4244
  404: Error;
4070
4245
  /**
@@ -4107,7 +4282,7 @@ type CalendarRespondToEventErrors = {
4107
4282
  */
4108
4283
  401: Error;
4109
4284
  /**
4110
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4285
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4111
4286
  */
4112
4287
  404: Error;
4113
4288
  /**
@@ -4144,7 +4319,7 @@ type CalendarListEventInstancesErrors = {
4144
4319
  */
4145
4320
  401: Error;
4146
4321
  /**
4147
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4322
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4148
4323
  */
4149
4324
  404: Error;
4150
4325
  /**
@@ -4186,7 +4361,7 @@ type CalendarGetAgendaErrors = {
4186
4361
  */
4187
4362
  401: Error;
4188
4363
  /**
4189
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4364
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4190
4365
  */
4191
4366
  404: Error;
4192
4367
  /**
@@ -4235,7 +4410,7 @@ type CalendarDeleteEventErrors = {
4235
4410
  */
4236
4411
  401: Error;
4237
4412
  /**
4238
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4413
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4239
4414
  */
4240
4415
  404: Error;
4241
4416
  /**
@@ -4268,7 +4443,7 @@ type CalendarGetEventErrors = {
4268
4443
  */
4269
4444
  401: Error;
4270
4445
  /**
4271
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4446
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4272
4447
  */
4273
4448
  404: Error;
4274
4449
  /**
@@ -4291,6 +4466,9 @@ type CalendarUpdateEventData = {
4291
4466
  title?: string;
4292
4467
  start?: string;
4293
4468
  end?: string;
4469
+ /**
4470
+ * An IANA name, like `Europe/Lisbon`. The times above are read in it.
4471
+ */
4294
4472
  timezone?: string;
4295
4473
  all_day?: boolean;
4296
4474
  description?: string | null;
@@ -4334,7 +4512,7 @@ type CalendarUpdateEventErrors = {
4334
4512
  */
4335
4513
  401: Error;
4336
4514
  /**
4337
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4515
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4338
4516
  */
4339
4517
  404: Error;
4340
4518
  /**
@@ -4367,7 +4545,7 @@ type DraftsListErrors = {
4367
4545
  */
4368
4546
  401: Error;
4369
4547
  /**
4370
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4548
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4371
4549
  */
4372
4550
  404: Error;
4373
4551
  /**
@@ -4392,14 +4570,38 @@ type DraftsListResponses = {
4392
4570
  type DraftsListResponse = DraftsListResponses[keyof DraftsListResponses];
4393
4571
  type DraftsCreateData = {
4394
4572
  body: {
4573
+ /**
4574
+ * The address this belongs to.
4575
+ */
4395
4576
  identity_id: string;
4577
+ /**
4578
+ * An address on a domain you own, and one this key may send from.
4579
+ */
4396
4580
  from?: string;
4581
+ /**
4582
+ * One address or several. A string is accepted for the single case.
4583
+ */
4397
4584
  to?: Array<string>;
4585
+ /**
4586
+ * Copied, and visible to everybody who receives the message.
4587
+ */
4398
4588
  cc?: Array<string>;
4589
+ /**
4590
+ * Copied, and visible to nobody else.
4591
+ */
4399
4592
  bcc?: Array<string>;
4593
+ /**
4594
+ * Left off a reply, where the thread already has one.
4595
+ */
4400
4596
  subject?: string | null;
4597
+ /**
4598
+ * The plain-text body. Send this even when you send `html` — some clients only read it.
4599
+ */
4401
4600
  text?: string | null;
4402
4601
  in_reply_to_message_id?: string | null;
4602
+ /**
4603
+ * Ids from `POST /attachments`, uploaded before the message that carries them. Up to 20.
4604
+ */
4403
4605
  attachment_ids?: Array<string>;
4404
4606
  };
4405
4607
  path?: never;
@@ -4412,7 +4614,7 @@ type DraftsCreateErrors = {
4412
4614
  */
4413
4615
  401: Error;
4414
4616
  /**
4415
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4617
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4416
4618
  */
4417
4619
  404: Error;
4418
4620
  /**
@@ -4444,7 +4646,7 @@ type DraftsDeleteErrors = {
4444
4646
  */
4445
4647
  401: Error;
4446
4648
  /**
4447
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4649
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4448
4650
  */
4449
4651
  404: Error;
4450
4652
  /**
@@ -4476,7 +4678,7 @@ type DraftsGetErrors = {
4476
4678
  */
4477
4679
  401: Error;
4478
4680
  /**
4479
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4681
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4480
4682
  */
4481
4683
  404: Error;
4482
4684
  /**
@@ -4496,12 +4698,33 @@ type DraftsGetResponses = {
4496
4698
  type DraftsGetResponse = DraftsGetResponses[keyof DraftsGetResponses];
4497
4699
  type DraftsUpdateData = {
4498
4700
  body: {
4701
+ /**
4702
+ * An address on a domain you own, and one this key may send from.
4703
+ */
4499
4704
  from?: string;
4705
+ /**
4706
+ * One address or several. A string is accepted for the single case.
4707
+ */
4500
4708
  to?: Array<string>;
4709
+ /**
4710
+ * Copied, and visible to everybody who receives the message.
4711
+ */
4501
4712
  cc?: Array<string>;
4713
+ /**
4714
+ * Copied, and visible to nobody else.
4715
+ */
4502
4716
  bcc?: Array<string>;
4717
+ /**
4718
+ * Left off a reply, where the thread already has one.
4719
+ */
4503
4720
  subject?: string | null;
4721
+ /**
4722
+ * The plain-text body. Send this even when you send `html` — some clients only read it.
4723
+ */
4504
4724
  text?: string | null;
4725
+ /**
4726
+ * Ids from `POST /attachments`, uploaded before the message that carries them. Up to 20.
4727
+ */
4505
4728
  attachment_ids?: Array<string>;
4506
4729
  };
4507
4730
  path: {
@@ -4516,7 +4739,7 @@ type DraftsUpdateErrors = {
4516
4739
  */
4517
4740
  401: Error;
4518
4741
  /**
4519
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4742
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4520
4743
  */
4521
4744
  404: Error;
4522
4745
  /**
@@ -4548,7 +4771,7 @@ type DraftsSendErrors = {
4548
4771
  */
4549
4772
  401: Error;
4550
4773
  /**
4551
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4774
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4552
4775
  */
4553
4776
  404: Error;
4554
4777
  /**
@@ -4580,7 +4803,7 @@ type DraftsCancelScheduleErrors = {
4580
4803
  */
4581
4804
  401: Error;
4582
4805
  /**
4583
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4806
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4584
4807
  */
4585
4808
  404: Error;
4586
4809
  /**
@@ -4614,7 +4837,7 @@ type DraftsScheduleErrors = {
4614
4837
  */
4615
4838
  401: Error;
4616
4839
  /**
4617
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4840
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4618
4841
  */
4619
4842
  404: Error;
4620
4843
  /**
@@ -4647,7 +4870,7 @@ type DraftsRemoveAttachmentErrors = {
4647
4870
  */
4648
4871
  401: Error;
4649
4872
  /**
4650
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4873
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4651
4874
  */
4652
4875
  404: Error;
4653
4876
  /**
@@ -4680,7 +4903,7 @@ type MetricsQueryErrors = {
4680
4903
  */
4681
4904
  401: Error;
4682
4905
  /**
4683
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4906
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4684
4907
  */
4685
4908
  404: Error;
4686
4909
  /**
@@ -4713,7 +4936,7 @@ type AttachmentsUploadErrors = {
4713
4936
  */
4714
4937
  401: Error;
4715
4938
  /**
4716
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4939
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4717
4940
  */
4718
4941
  404: Error;
4719
4942
  /**
@@ -4745,7 +4968,7 @@ type AttachmentsDownloadUrlErrors = {
4745
4968
  */
4746
4969
  401: Error;
4747
4970
  /**
4748
- * No such resource, **or** one belonging to another account. The two are deliberately indistinguishable: a different answer would enumerate what exists.
4971
+ * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
4749
4972
  */
4750
4973
  404: Error;
4751
4974
  /**
@@ -4930,7 +5153,7 @@ declare const messagesListInThread: <ThrowOnError extends boolean = false>(optio
4930
5153
  /**
4931
5154
  * Send a message
4932
5155
  *
4933
- * Idempotent with an `Idempotency-Key` header.
5156
+ * Idempotent with an `Idempotency-Key` header. Answers `202` with the id, the thread and anything **rejected** — a recipient the address is not allowed to write to is refused here rather than failing later, so read `rejected` before assuming it went.
4934
5157
  */
4935
5158
  declare const messagesSend: <ThrowOnError extends boolean = false>(options: Options<MessagesSendData, ThrowOnError>) => RequestResult<MessagesSendResponses, MessagesSendErrors, ThrowOnError>;
4936
5159
  /**