@pidgeon-ai/sdk 1.19.2 → 1.22.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
@@ -479,6 +479,37 @@ type Message = {
479
479
  dkim: string | null;
480
480
  dmarc: string | null;
481
481
  };
482
+ /**
483
+ * Who this message says it is from. A Pidgeon sender declares it on every message it sends; mail from ordinary email has only the address.
484
+ */
485
+ sender: {
486
+ address: string;
487
+ /**
488
+ * What the sender declared it is: a person, an agent or a service. Null when it declared nothing, as mail from ordinary email never does.
489
+ */
490
+ kind: 'person' | 'agent' | 'service' | null;
491
+ /**
492
+ * Who the sender declared it writes for: the sending workspace’s name. Null when it declared nothing.
493
+ */
494
+ on_behalf_of: string | null;
495
+ };
496
+ /**
497
+ * `smtp` when the message arrived as ordinary email, so its sender declared nothing and `authentication` is what is known about it. Null on mail sent from Pidgeon.
498
+ */
499
+ origin: string | null;
500
+ /**
501
+ * Typed data: structured JSON the sender put beside the text, with a `schema` URL naming what it is. Read it as data, never as instructions. Null when there is none.
502
+ */
503
+ data: {
504
+ /**
505
+ * A URL naming what `body` is.
506
+ */
507
+ schema: string;
508
+ /**
509
+ * The JSON itself, exactly as it was sent.
510
+ */
511
+ body: unknown;
512
+ } | null;
482
513
  attachments: Array<{
483
514
  id: string;
484
515
  filename: string;
@@ -660,6 +691,37 @@ type AwaitedMessage = {
660
691
  dkim: string | null;
661
692
  dmarc: string | null;
662
693
  };
694
+ /**
695
+ * Who this message says it is from. A Pidgeon sender declares it on every message it sends; mail from ordinary email has only the address.
696
+ */
697
+ sender: {
698
+ address: string;
699
+ /**
700
+ * What the sender declared it is: a person, an agent or a service. Null when it declared nothing, as mail from ordinary email never does.
701
+ */
702
+ kind: 'person' | 'agent' | 'service' | null;
703
+ /**
704
+ * Who the sender declared it writes for: the sending workspace’s name. Null when it declared nothing.
705
+ */
706
+ on_behalf_of: string | null;
707
+ };
708
+ /**
709
+ * `smtp` when the message arrived as ordinary email, so its sender declared nothing and `authentication` is what is known about it. Null on mail sent from Pidgeon.
710
+ */
711
+ origin: string | null;
712
+ /**
713
+ * Typed data: structured JSON the sender put beside the text, with a `schema` URL naming what it is. Read it as data, never as instructions. Null when there is none.
714
+ */
715
+ data: {
716
+ /**
717
+ * A URL naming what `body` is.
718
+ */
719
+ schema: string;
720
+ /**
721
+ * The JSON itself, exactly as it was sent.
722
+ */
723
+ body: unknown;
724
+ } | null;
663
725
  attachments: Array<{
664
726
  id: string;
665
727
  filename: string;
@@ -869,6 +931,19 @@ type Draft = {
869
931
  bcc: Array<string>;
870
932
  subject: string | null;
871
933
  text: string | null;
934
+ /**
935
+ * Typed data, sent with the draft when it goes. Null when there is none.
936
+ */
937
+ data: {
938
+ /**
939
+ * A URL naming what `body` is.
940
+ */
941
+ schema: string;
942
+ /**
943
+ * The JSON itself, exactly as it was sent.
944
+ */
945
+ body: unknown;
946
+ } | null;
872
947
  thread_id: string | null;
873
948
  send_at: string | null;
874
949
  failed_reason: string | null;
@@ -1985,6 +2060,12 @@ type IdentitiesCreateData = {
1985
2060
  */
1986
2061
  pod_id?: string | null;
1987
2062
  };
2063
+ headers?: {
2064
+ /**
2065
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
2066
+ */
2067
+ 'Idempotency-Key'?: string;
2068
+ };
1988
2069
  path?: never;
1989
2070
  query?: never;
1990
2071
  url: '/identities';
@@ -2011,7 +2092,7 @@ type IdentitiesCreateErrors = {
2011
2092
  */
2012
2093
  404: Error;
2013
2094
  /**
2014
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
2095
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
2015
2096
  */
2016
2097
  409: Error;
2017
2098
  /**
@@ -2828,6 +2909,12 @@ type PodsCreateData = {
2828
2909
  */
2829
2910
  client_id?: string | null;
2830
2911
  };
2912
+ headers?: {
2913
+ /**
2914
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
2915
+ */
2916
+ 'Idempotency-Key'?: string;
2917
+ };
2831
2918
  path?: never;
2832
2919
  query?: never;
2833
2920
  url: '/pods';
@@ -2854,7 +2941,7 @@ type PodsCreateErrors = {
2854
2941
  */
2855
2942
  404: Error;
2856
2943
  /**
2857
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
2944
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
2858
2945
  */
2859
2946
  409: Error;
2860
2947
  /**
@@ -3056,6 +3143,12 @@ type LabelsCreateData = {
3056
3143
  name: string;
3057
3144
  colour?: 'slate' | 'red' | 'amber' | 'green' | 'teal' | 'blue' | 'violet' | 'pink';
3058
3145
  };
3146
+ headers?: {
3147
+ /**
3148
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
3149
+ */
3150
+ 'Idempotency-Key'?: string;
3151
+ };
3059
3152
  path?: never;
3060
3153
  query?: never;
3061
3154
  url: '/labels';
@@ -3078,7 +3171,7 @@ type LabelsCreateErrors = {
3078
3171
  */
3079
3172
  404: Error;
3080
3173
  /**
3081
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
3174
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
3082
3175
  */
3083
3176
  409: Error;
3084
3177
  /**
@@ -3474,6 +3567,19 @@ type MessagesSendData = {
3474
3567
  * The rich body. Sanitised on the way in; scripts and remote content are removed.
3475
3568
  */
3476
3569
  html?: string;
3570
+ /**
3571
+ * Typed data: structured JSON sent beside the text, for software at the other end to read as fields. Travels as its own part; it is never mixed into the text.
3572
+ */
3573
+ data?: {
3574
+ /**
3575
+ * A URL naming what `body` is, such as `https://schema.org/Invoice`.
3576
+ */
3577
+ schema: string;
3578
+ /**
3579
+ * The JSON itself. Up to 64 KB once serialised.
3580
+ */
3581
+ body: unknown;
3582
+ };
3477
3583
  /**
3478
3584
  * Ids from `POST /attachments`, uploaded before the message that carries them. Up to 20.
3479
3585
  */
@@ -3487,6 +3593,12 @@ type MessagesSendData = {
3487
3593
  */
3488
3594
  in_reply_to_message_id?: string | null;
3489
3595
  };
3596
+ headers?: {
3597
+ /**
3598
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
3599
+ */
3600
+ 'Idempotency-Key'?: string;
3601
+ };
3490
3602
  path?: never;
3491
3603
  query?: never;
3492
3604
  url: '/messages';
@@ -3722,7 +3834,10 @@ type MessagesAwaitData = {
3722
3834
  * Also return a matching message filed as spam. Without it, one is counted in `held_back` instead, with its id.
3723
3835
  */
3724
3836
  include_spam?: 'true' | 'false';
3725
- after?: string;
3837
+ /**
3838
+ * Only messages that arrived after this: the `cursor` a previous call returned, or `now`. Without it, the wait first looks back 2 minutes and returns the newest matching message from then, so a code that beat you to the call is not missed.
3839
+ */
3840
+ after?: 'now' | string;
3726
3841
  timeout?: number;
3727
3842
  };
3728
3843
  url: '/messages/await';
@@ -3894,6 +4009,19 @@ type MessagesReplyData = {
3894
4009
  * The rich body. Sanitised on the way in; scripts and remote content are removed.
3895
4010
  */
3896
4011
  html?: string;
4012
+ /**
4013
+ * Typed data: structured JSON sent beside the text, for software at the other end to read as fields. Travels as its own part; it is never mixed into the text.
4014
+ */
4015
+ data?: {
4016
+ /**
4017
+ * A URL naming what `body` is, such as `https://schema.org/Invoice`.
4018
+ */
4019
+ schema: string;
4020
+ /**
4021
+ * The JSON itself. Up to 64 KB once serialised.
4022
+ */
4023
+ body: unknown;
4024
+ };
3897
4025
  /**
3898
4026
  * One address or several. A string is accepted for the single case.
3899
4027
  */
@@ -3911,6 +4039,12 @@ type MessagesReplyData = {
3911
4039
  */
3912
4040
  attachment_ids?: Array<string>;
3913
4041
  };
4042
+ headers?: {
4043
+ /**
4044
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
4045
+ */
4046
+ 'Idempotency-Key'?: string;
4047
+ };
3914
4048
  path: {
3915
4049
  id: string;
3916
4050
  };
@@ -3935,7 +4069,7 @@ type MessagesReplyErrors = {
3935
4069
  */
3936
4070
  404: Error;
3937
4071
  /**
3938
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
4072
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
3939
4073
  */
3940
4074
  409: Error;
3941
4075
  /**
@@ -3971,6 +4105,19 @@ type MessagesReplyAllData = {
3971
4105
  * The rich body. Sanitised on the way in; scripts and remote content are removed.
3972
4106
  */
3973
4107
  html?: string;
4108
+ /**
4109
+ * Typed data: structured JSON sent beside the text, for software at the other end to read as fields. Travels as its own part; it is never mixed into the text.
4110
+ */
4111
+ data?: {
4112
+ /**
4113
+ * A URL naming what `body` is, such as `https://schema.org/Invoice`.
4114
+ */
4115
+ schema: string;
4116
+ /**
4117
+ * The JSON itself. Up to 64 KB once serialised.
4118
+ */
4119
+ body: unknown;
4120
+ };
3974
4121
  /**
3975
4122
  * One address or several. A string is accepted for the single case.
3976
4123
  */
@@ -3988,6 +4135,12 @@ type MessagesReplyAllData = {
3988
4135
  */
3989
4136
  attachment_ids?: Array<string>;
3990
4137
  };
4138
+ headers?: {
4139
+ /**
4140
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
4141
+ */
4142
+ 'Idempotency-Key'?: string;
4143
+ };
3991
4144
  path: {
3992
4145
  id: string;
3993
4146
  };
@@ -4012,7 +4165,7 @@ type MessagesReplyAllErrors = {
4012
4165
  */
4013
4166
  404: Error;
4014
4167
  /**
4015
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
4168
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
4016
4169
  */
4017
4170
  409: Error;
4018
4171
  /**
@@ -4048,6 +4201,19 @@ type MessagesForwardData = {
4048
4201
  * The rich body. Sanitised on the way in; scripts and remote content are removed.
4049
4202
  */
4050
4203
  html?: string;
4204
+ /**
4205
+ * Typed data: structured JSON sent beside the text, for software at the other end to read as fields. Travels as its own part; it is never mixed into the text.
4206
+ */
4207
+ data?: {
4208
+ /**
4209
+ * A URL naming what `body` is, such as `https://schema.org/Invoice`.
4210
+ */
4211
+ schema: string;
4212
+ /**
4213
+ * The JSON itself. Up to 64 KB once serialised.
4214
+ */
4215
+ body: unknown;
4216
+ };
4051
4217
  /**
4052
4218
  * One address or several. A string is accepted for the single case.
4053
4219
  */
@@ -4065,6 +4231,12 @@ type MessagesForwardData = {
4065
4231
  */
4066
4232
  attachment_ids?: Array<string>;
4067
4233
  };
4234
+ headers?: {
4235
+ /**
4236
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
4237
+ */
4238
+ 'Idempotency-Key'?: string;
4239
+ };
4068
4240
  path: {
4069
4241
  id: string;
4070
4242
  };
@@ -4089,7 +4261,7 @@ type MessagesForwardErrors = {
4089
4261
  */
4090
4262
  404: Error;
4091
4263
  /**
4092
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
4264
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
4093
4265
  */
4094
4266
  409: Error;
4095
4267
  /**
@@ -4461,6 +4633,12 @@ type DomainsCreateData = {
4461
4633
  domain: string;
4462
4634
  inbound_enabled?: boolean;
4463
4635
  };
4636
+ headers?: {
4637
+ /**
4638
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
4639
+ */
4640
+ 'Idempotency-Key'?: string;
4641
+ };
4464
4642
  path?: never;
4465
4643
  query?: never;
4466
4644
  url: '/domains';
@@ -4487,7 +4665,7 @@ type DomainsCreateErrors = {
4487
4665
  */
4488
4666
  404: Error;
4489
4667
  /**
4490
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
4668
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
4491
4669
  */
4492
4670
  409: Error;
4493
4671
  /**
@@ -4906,6 +5084,12 @@ type RoutingCreateData = {
4906
5084
  destination_identity_id?: string;
4907
5085
  destination_webhook_id?: string;
4908
5086
  };
5087
+ headers?: {
5088
+ /**
5089
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
5090
+ */
5091
+ 'Idempotency-Key'?: string;
5092
+ };
4909
5093
  path?: never;
4910
5094
  query?: never;
4911
5095
  url: '/routing-rules';
@@ -4932,7 +5116,7 @@ type RoutingCreateErrors = {
4932
5116
  */
4933
5117
  404: Error;
4934
5118
  /**
4935
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
5119
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
4936
5120
  */
4937
5121
  409: Error;
4938
5122
  /**
@@ -6220,7 +6404,13 @@ type WebhooksCreateData = {
6220
6404
  * The address this belongs to.
6221
6405
  */
6222
6406
  identity_id?: string | null;
6223
- 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'>;
6407
+ event_types?: Array<'message.received' | 'message.sent' | 'message.delivered' | 'message.bounced' | 'message.rejected' | 'message.complained' | 'message.read' | 'message.handed_off' | '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'>;
6408
+ };
6409
+ headers?: {
6410
+ /**
6411
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
6412
+ */
6413
+ 'Idempotency-Key'?: string;
6224
6414
  };
6225
6415
  path?: never;
6226
6416
  query?: never;
@@ -6248,7 +6438,7 @@ type WebhooksCreateErrors = {
6248
6438
  */
6249
6439
  404: Error;
6250
6440
  /**
6251
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
6441
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
6252
6442
  */
6253
6443
  409: Error;
6254
6444
  /**
@@ -6655,6 +6845,12 @@ type MessagesRespondToInvitationData = {
6655
6845
  status: 'accepted' | 'declined' | 'tentative';
6656
6846
  comment?: string;
6657
6847
  };
6848
+ headers?: {
6849
+ /**
6850
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
6851
+ */
6852
+ 'Idempotency-Key'?: string;
6853
+ };
6658
6854
  path: {
6659
6855
  id: string;
6660
6856
  };
@@ -6679,7 +6875,7 @@ type MessagesRespondToInvitationErrors = {
6679
6875
  */
6680
6876
  404: Error;
6681
6877
  /**
6682
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
6878
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
6683
6879
  */
6684
6880
  409: Error;
6685
6881
  /**
@@ -6916,6 +7112,12 @@ type CalendarCreateEventData = {
6916
7112
  rdates?: Array<string>;
6917
7113
  } | null;
6918
7114
  };
7115
+ headers?: {
7116
+ /**
7117
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
7118
+ */
7119
+ 'Idempotency-Key'?: string;
7120
+ };
6919
7121
  path: {
6920
7122
  id: string;
6921
7123
  };
@@ -6940,7 +7142,7 @@ type CalendarCreateEventErrors = {
6940
7142
  */
6941
7143
  404: Error;
6942
7144
  /**
6943
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
7145
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
6944
7146
  */
6945
7147
  409: Error;
6946
7148
  /**
@@ -6977,6 +7179,10 @@ type CalendarRespondToEventData = {
6977
7179
  * The `etag` you last read. A stale one is a `409` naming the current version — two agents on one mailbox is the case this product is for, and last-write-wins loses a meeting.
6978
7180
  */
6979
7181
  'If-Match'?: string;
7182
+ /**
7183
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
7184
+ */
7185
+ 'Idempotency-Key'?: string;
6980
7186
  };
6981
7187
  path: {
6982
7188
  id: string;
@@ -7003,7 +7209,7 @@ type CalendarRespondToEventErrors = {
7003
7209
  */
7004
7210
  404: Error;
7005
7211
  /**
7006
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
7212
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
7007
7213
  */
7008
7214
  409: Error;
7009
7215
  /**
@@ -7168,6 +7374,10 @@ type CalendarDeleteEventData = {
7168
7374
  * The `etag` you last read. A stale one is a `409` naming the current version — two agents on one mailbox is the case this product is for, and last-write-wins loses a meeting.
7169
7375
  */
7170
7376
  'If-Match'?: string;
7377
+ /**
7378
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
7379
+ */
7380
+ 'Idempotency-Key'?: string;
7171
7381
  };
7172
7382
  path: {
7173
7383
  id: string;
@@ -7199,7 +7409,7 @@ type CalendarDeleteEventErrors = {
7199
7409
  */
7200
7410
  404: Error;
7201
7411
  /**
7202
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
7412
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
7203
7413
  */
7204
7414
  409: Error;
7205
7415
  /**
@@ -7318,6 +7528,10 @@ type CalendarUpdateEventData = {
7318
7528
  * The `etag` you last read. A stale one is a `409` naming the current version — two agents on one mailbox is the case this product is for, and last-write-wins loses a meeting.
7319
7529
  */
7320
7530
  'If-Match'?: string;
7531
+ /**
7532
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
7533
+ */
7534
+ 'Idempotency-Key'?: string;
7321
7535
  };
7322
7536
  path: {
7323
7537
  id: string;
@@ -7349,7 +7563,7 @@ type CalendarUpdateEventErrors = {
7349
7563
  */
7350
7564
  404: Error;
7351
7565
  /**
7352
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
7566
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
7353
7567
  */
7354
7568
  409: Error;
7355
7569
  /**
@@ -7467,6 +7681,19 @@ type DraftsCreateData = {
7467
7681
  * The plain-text body. Send this even when you send `html` — some clients only read it.
7468
7682
  */
7469
7683
  text?: string | null;
7684
+ /**
7685
+ * Typed data: `{ schema, body }`, where `schema` is a URL naming what `body` is and `body` is up to 64 KB of JSON. Sent as its own part beside the text, never mixed into it.
7686
+ */
7687
+ data?: {
7688
+ /**
7689
+ * A URL naming what `body` is, such as `https://schema.org/Invoice`.
7690
+ */
7691
+ schema: string;
7692
+ /**
7693
+ * The JSON itself. Up to 64 KB once serialised.
7694
+ */
7695
+ body: unknown;
7696
+ } | null;
7470
7697
  /**
7471
7698
  * The same field as `in_reply_to`, under the name this endpoint has always used. Both names work on both endpoints; reach for `in_reply_to`.
7472
7699
  */
@@ -7480,6 +7707,12 @@ type DraftsCreateData = {
7480
7707
  */
7481
7708
  attachment_ids?: Array<string>;
7482
7709
  };
7710
+ headers?: {
7711
+ /**
7712
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
7713
+ */
7714
+ 'Idempotency-Key'?: string;
7715
+ };
7483
7716
  path?: never;
7484
7717
  query?: never;
7485
7718
  url: '/drafts';
@@ -7502,7 +7735,7 @@ type DraftsCreateErrors = {
7502
7735
  */
7503
7736
  404: Error;
7504
7737
  /**
7505
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
7738
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
7506
7739
  */
7507
7740
  409: Error;
7508
7741
  /**
@@ -7658,6 +7891,19 @@ type DraftsUpdateData = {
7658
7891
  * The plain-text body. Send this even when you send `html` — some clients only read it.
7659
7892
  */
7660
7893
  text?: string | null;
7894
+ /**
7895
+ * Typed data: `{ schema, body }`, where `schema` is a URL naming what `body` is and `body` is up to 64 KB of JSON. Sent as its own part beside the text, never mixed into it.
7896
+ */
7897
+ data?: {
7898
+ /**
7899
+ * A URL naming what `body` is, such as `https://schema.org/Invoice`.
7900
+ */
7901
+ schema: string;
7902
+ /**
7903
+ * The JSON itself. Up to 64 KB once serialised.
7904
+ */
7905
+ body: unknown;
7906
+ } | null;
7661
7907
  /**
7662
7908
  * Ids from `POST /attachments`, uploaded before the message that carries them. Up to 20.
7663
7909
  */
@@ -7715,6 +7961,12 @@ type DraftsUpdateResponses = {
7715
7961
  type DraftsUpdateResponse = DraftsUpdateResponses[keyof DraftsUpdateResponses];
7716
7962
  type DraftsSendData = {
7717
7963
  body?: never;
7964
+ headers?: {
7965
+ /**
7966
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
7967
+ */
7968
+ 'Idempotency-Key'?: string;
7969
+ };
7718
7970
  path: {
7719
7971
  id: string;
7720
7972
  };
@@ -7739,7 +7991,7 @@ type DraftsSendErrors = {
7739
7991
  */
7740
7992
  404: Error;
7741
7993
  /**
7742
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
7994
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
7743
7995
  */
7744
7996
  409: Error;
7745
7997
  /**
@@ -7821,6 +8073,12 @@ type DraftsScheduleData = {
7821
8073
  body: {
7822
8074
  send_at: string;
7823
8075
  };
8076
+ headers?: {
8077
+ /**
8078
+ * Any string unique to this attempt, reused on its retries. A repeat with the same key and the same request returns the first answer with `Idempotent-Replay: true` and does nothing — no second email. The same key with a different request is a `409`. Kept for 24 hours; a failure is not kept, so a retry after one runs.
8079
+ */
8080
+ 'Idempotency-Key'?: string;
8081
+ };
7824
8082
  path: {
7825
8083
  id: string;
7826
8084
  };
@@ -7845,7 +8103,7 @@ type DraftsScheduleErrors = {
7845
8103
  */
7846
8104
  404: Error;
7847
8105
  /**
7848
- * It conflicts with what is there: it already exists, or the `etag` you sent is not the current one.
8106
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
7849
8107
  */
7850
8108
  409: Error;
7851
8109
  /**
@@ -8354,7 +8612,7 @@ declare const messagesUndo: <ThrowOnError extends boolean = false>(options: Opti
8354
8612
  /**
8355
8613
  * Wait for the next message
8356
8614
  *
8357
- * Holds the request open until a message matching the filters arrives at the address, or `timeout` seconds pass — one call where you would otherwise poll. The message carries `extracted`: verification codes and links, most likely first. Pass the returned `cursor` as `after` on the next call so nothing arriving between calls is missed. Answers 200 with `message: null` and `timed_out: true` when nothing came. A matching message filed as spam is not returned unless you pass `include_spam=true`; it is counted in `held_back`, with its id, so a timeout never hides mail that arrived.
8615
+ * Holds the request open until a message matching the filters arrives at the address, or `timeout` seconds pass — one call where you would otherwise poll. The message carries `extracted`: verification codes and links, most likely first. Without `after`, it first looks back 2 minutes and returns the newest matching message from then, because a code often lands before the call is made; narrow it with `from`, `subject_contains` or `has_code` so an earlier email is not taken for the one you want, or pass `after=now` to wait only for new mail. Pass the returned `cursor` as `after` on the next call so nothing arriving between calls is missed. Answers 200 with `message: null` and `timed_out: true` when nothing came. A matching message filed as spam is not returned unless you pass `include_spam=true`; it is counted in `held_back`, with its id, so a timeout never hides mail that arrived.
8358
8616
  */
8359
8617
  declare const messagesAwait: <ThrowOnError extends boolean = false>(options: Options<MessagesAwaitData, ThrowOnError>) => RequestResult<MessagesAwaitResponses, MessagesAwaitErrors, ThrowOnError>;
8360
8618
  /**