@lessly/sdk-app 82.0.0 → 83.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_types/gen/types.gen.d.ts +1871 -129
- package/dist/index.cjs +14 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +14 -14
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/gen/manifest.gen.ts +14 -14
- package/src/gen/types.gen.ts +1872 -130
|
@@ -80186,45 +80186,93 @@ export interface DeploymentVolumeResizeOutput {
|
|
|
80186
80186
|
}
|
|
80187
80187
|
export interface MailApikeyCreateInput {
|
|
80188
80188
|
/**
|
|
80189
|
-
* Human-readable label for the key
|
|
80189
|
+
* Human-readable label for the key, e.g. "production sender"
|
|
80190
80190
|
*/
|
|
80191
80191
|
name: string;
|
|
80192
80192
|
/**
|
|
80193
|
-
* Permission scope:
|
|
80193
|
+
* Permission scope: full_access can call every mail tool, sending_access can only send email
|
|
80194
80194
|
*/
|
|
80195
80195
|
scope: ("full_access" | "sending_access");
|
|
80196
80196
|
/**
|
|
80197
|
-
*
|
|
80197
|
+
* Lock the key to this sending domain; omit to let it send from any verified domain
|
|
80198
80198
|
*/
|
|
80199
80199
|
domainId?: string;
|
|
80200
80200
|
}
|
|
80201
80201
|
export interface MailApikeyCreateOutput {
|
|
80202
|
+
/**
|
|
80203
|
+
* API key id; pass it to mail_apikey_delete to revoke the key
|
|
80204
|
+
*/
|
|
80202
80205
|
id: string;
|
|
80206
|
+
/**
|
|
80207
|
+
* The full secret. Returned only by this call and never retrievable again — store it now
|
|
80208
|
+
*/
|
|
80203
80209
|
key: string;
|
|
80210
|
+
/**
|
|
80211
|
+
* Human-readable label given when the key was issued
|
|
80212
|
+
*/
|
|
80204
80213
|
name: string;
|
|
80205
|
-
|
|
80214
|
+
/**
|
|
80215
|
+
* Permission scope: full_access can call every mail tool, sending_access can only send email
|
|
80216
|
+
*/
|
|
80217
|
+
scope: ("full_access" | "sending_access");
|
|
80218
|
+
/**
|
|
80219
|
+
* Opening characters of the secret, so a key can be recognised in a log or a header
|
|
80220
|
+
*/
|
|
80206
80221
|
prefix: string;
|
|
80222
|
+
/**
|
|
80223
|
+
* Sending domain this key is locked to; null if it may send from any verified domain
|
|
80224
|
+
*/
|
|
80207
80225
|
domainId: (string | null);
|
|
80226
|
+
/**
|
|
80227
|
+
* When the key was issued (ISO 8601 UTC)
|
|
80228
|
+
*/
|
|
80208
80229
|
createdAt: string;
|
|
80209
80230
|
}
|
|
80210
80231
|
export interface MailApikeyDeleteInput {
|
|
80211
80232
|
/**
|
|
80212
|
-
*
|
|
80233
|
+
* Id of the API key to revoke; revocation is immediate and permanent
|
|
80213
80234
|
*/
|
|
80214
80235
|
id: string;
|
|
80215
80236
|
}
|
|
80216
80237
|
export interface MailApikeyDeleteOutput {
|
|
80238
|
+
/**
|
|
80239
|
+
* Id of the key that was revoked
|
|
80240
|
+
*/
|
|
80217
80241
|
id: string;
|
|
80242
|
+
/**
|
|
80243
|
+
* Always true; the call throws rather than reporting a failure here
|
|
80244
|
+
*/
|
|
80218
80245
|
revoked: true;
|
|
80219
80246
|
}
|
|
80220
80247
|
export interface MailApikeyListInput {
|
|
80221
80248
|
}
|
|
80249
|
+
/**
|
|
80250
|
+
* Active API keys for the current product, secrets omitted
|
|
80251
|
+
*/
|
|
80222
80252
|
export type MailApikeyListOutput = {
|
|
80253
|
+
/**
|
|
80254
|
+
* API key id; pass it to mail_apikey_delete to revoke the key
|
|
80255
|
+
*/
|
|
80223
80256
|
id: string;
|
|
80257
|
+
/**
|
|
80258
|
+
* Human-readable label given when the key was issued
|
|
80259
|
+
*/
|
|
80224
80260
|
name: string;
|
|
80225
|
-
|
|
80261
|
+
/**
|
|
80262
|
+
* Permission scope: full_access can call every mail tool, sending_access can only send email
|
|
80263
|
+
*/
|
|
80264
|
+
scope: ("full_access" | "sending_access");
|
|
80265
|
+
/**
|
|
80266
|
+
* Opening characters of the secret, so a key can be recognised in a log or a header
|
|
80267
|
+
*/
|
|
80226
80268
|
prefix: string;
|
|
80269
|
+
/**
|
|
80270
|
+
* Sending domain this key is locked to; null if it may send from any verified domain
|
|
80271
|
+
*/
|
|
80227
80272
|
domainId: (string | null);
|
|
80273
|
+
/**
|
|
80274
|
+
* When the key was issued (ISO 8601 UTC)
|
|
80275
|
+
*/
|
|
80228
80276
|
createdAt: string;
|
|
80229
80277
|
}[];
|
|
80230
80278
|
export interface MailAudienceCreateInput {
|
|
@@ -80234,9 +80282,21 @@ export interface MailAudienceCreateInput {
|
|
|
80234
80282
|
name: string;
|
|
80235
80283
|
}
|
|
80236
80284
|
export interface MailAudienceCreateOutput {
|
|
80285
|
+
/**
|
|
80286
|
+
* Audience id
|
|
80287
|
+
*/
|
|
80237
80288
|
id: string;
|
|
80289
|
+
/**
|
|
80290
|
+
* Human label for the audience
|
|
80291
|
+
*/
|
|
80238
80292
|
name: string;
|
|
80293
|
+
/**
|
|
80294
|
+
* When the audience was created (ISO 8601 UTC)
|
|
80295
|
+
*/
|
|
80239
80296
|
createdAt: string;
|
|
80297
|
+
/**
|
|
80298
|
+
* When the audience was last modified (ISO 8601 UTC)
|
|
80299
|
+
*/
|
|
80240
80300
|
updatedAt: string;
|
|
80241
80301
|
}
|
|
80242
80302
|
export interface MailAudienceDeleteInput {
|
|
@@ -80246,6 +80306,9 @@ export interface MailAudienceDeleteInput {
|
|
|
80246
80306
|
id: string;
|
|
80247
80307
|
}
|
|
80248
80308
|
export interface MailAudienceDeleteOutput {
|
|
80309
|
+
/**
|
|
80310
|
+
* True once the audience and its contacts are gone
|
|
80311
|
+
*/
|
|
80249
80312
|
deleted: boolean;
|
|
80250
80313
|
}
|
|
80251
80314
|
export interface MailAudienceGetInput {
|
|
@@ -80255,17 +80318,41 @@ export interface MailAudienceGetInput {
|
|
|
80255
80318
|
id: string;
|
|
80256
80319
|
}
|
|
80257
80320
|
export interface MailAudienceGetOutput {
|
|
80321
|
+
/**
|
|
80322
|
+
* Audience id
|
|
80323
|
+
*/
|
|
80258
80324
|
id: string;
|
|
80325
|
+
/**
|
|
80326
|
+
* Human label for the audience
|
|
80327
|
+
*/
|
|
80259
80328
|
name: string;
|
|
80329
|
+
/**
|
|
80330
|
+
* When the audience was created (ISO 8601 UTC)
|
|
80331
|
+
*/
|
|
80260
80332
|
createdAt: string;
|
|
80333
|
+
/**
|
|
80334
|
+
* When the audience was last modified (ISO 8601 UTC)
|
|
80335
|
+
*/
|
|
80261
80336
|
updatedAt: string;
|
|
80262
80337
|
}
|
|
80263
80338
|
export interface MailAudienceListInput {
|
|
80264
80339
|
}
|
|
80265
80340
|
export type MailAudienceListOutput = {
|
|
80341
|
+
/**
|
|
80342
|
+
* Audience id
|
|
80343
|
+
*/
|
|
80266
80344
|
id: string;
|
|
80345
|
+
/**
|
|
80346
|
+
* Human label for the audience
|
|
80347
|
+
*/
|
|
80267
80348
|
name: string;
|
|
80349
|
+
/**
|
|
80350
|
+
* When the audience was created (ISO 8601 UTC)
|
|
80351
|
+
*/
|
|
80268
80352
|
createdAt: string;
|
|
80353
|
+
/**
|
|
80354
|
+
* When the audience was last modified (ISO 8601 UTC)
|
|
80355
|
+
*/
|
|
80269
80356
|
updatedAt: string;
|
|
80270
80357
|
}[];
|
|
80271
80358
|
export interface MailAudienceUpdateInput {
|
|
@@ -80279,219 +80366,708 @@ export interface MailAudienceUpdateInput {
|
|
|
80279
80366
|
name?: string;
|
|
80280
80367
|
}
|
|
80281
80368
|
export interface MailAudienceUpdateOutput {
|
|
80369
|
+
/**
|
|
80370
|
+
* Audience id
|
|
80371
|
+
*/
|
|
80282
80372
|
id: string;
|
|
80373
|
+
/**
|
|
80374
|
+
* Human label for the audience
|
|
80375
|
+
*/
|
|
80283
80376
|
name: string;
|
|
80377
|
+
/**
|
|
80378
|
+
* When the audience was created (ISO 8601 UTC)
|
|
80379
|
+
*/
|
|
80284
80380
|
createdAt: string;
|
|
80381
|
+
/**
|
|
80382
|
+
* When the audience was last modified (ISO 8601 UTC)
|
|
80383
|
+
*/
|
|
80285
80384
|
updatedAt: string;
|
|
80286
80385
|
}
|
|
80287
80386
|
export interface MailBroadcastCancelInput {
|
|
80387
|
+
/**
|
|
80388
|
+
* Broadcast id
|
|
80389
|
+
*/
|
|
80288
80390
|
id: string;
|
|
80289
80391
|
}
|
|
80290
80392
|
export interface MailBroadcastCancelOutput {
|
|
80393
|
+
/**
|
|
80394
|
+
* Broadcast id
|
|
80395
|
+
*/
|
|
80291
80396
|
id: string;
|
|
80397
|
+
/**
|
|
80398
|
+
* Sender the messages are sent as
|
|
80399
|
+
*/
|
|
80292
80400
|
from: string;
|
|
80401
|
+
/**
|
|
80402
|
+
* Inline HTML body; null when a template supplies it
|
|
80403
|
+
*/
|
|
80293
80404
|
html: (string | null);
|
|
80405
|
+
/**
|
|
80406
|
+
* Internal label — never shown to recipients
|
|
80407
|
+
*/
|
|
80294
80408
|
name: string;
|
|
80409
|
+
/**
|
|
80410
|
+
* Inline plain-text body; null when a template supplies it
|
|
80411
|
+
*/
|
|
80295
80412
|
text: (string | null);
|
|
80413
|
+
/**
|
|
80414
|
+
* When the last message left; null until sending finishes
|
|
80415
|
+
*/
|
|
80296
80416
|
sentAt: (string | null);
|
|
80297
|
-
|
|
80417
|
+
/**
|
|
80418
|
+
* Lifecycle state: draft (editable), queued (fanned out, sending), sent, failed, canceled
|
|
80419
|
+
*/
|
|
80420
|
+
status: ("draft" | "queued" | "sent" | "failed" | "canceled");
|
|
80421
|
+
/**
|
|
80422
|
+
* Custom MIME headers added to every message
|
|
80423
|
+
*/
|
|
80298
80424
|
headers: {
|
|
80299
80425
|
[k: string]: string;
|
|
80300
80426
|
};
|
|
80427
|
+
/**
|
|
80428
|
+
* Reply-To addresses; empty when replies go to `from`
|
|
80429
|
+
*/
|
|
80301
80430
|
replyTo: string[];
|
|
80431
|
+
/**
|
|
80432
|
+
* Subject line for inline content; null when a template supplies it
|
|
80433
|
+
*/
|
|
80302
80434
|
subject: (string | null);
|
|
80435
|
+
/**
|
|
80436
|
+
* When the broadcast was queued; null while it is a draft
|
|
80437
|
+
*/
|
|
80303
80438
|
queuedAt: (string | null);
|
|
80439
|
+
/**
|
|
80440
|
+
* When the broadcast was created
|
|
80441
|
+
*/
|
|
80304
80442
|
createdAt: string;
|
|
80443
|
+
/**
|
|
80444
|
+
* Why the broadcast failed; null unless status is failed
|
|
80445
|
+
*/
|
|
80305
80446
|
lastError: (string | null);
|
|
80447
|
+
/**
|
|
80448
|
+
* Product the broadcast belongs to
|
|
80449
|
+
*/
|
|
80306
80450
|
productId: string;
|
|
80451
|
+
/**
|
|
80452
|
+
* When the broadcast was last modified
|
|
80453
|
+
*/
|
|
80307
80454
|
updatedAt: string;
|
|
80308
|
-
|
|
80455
|
+
/**
|
|
80456
|
+
* Values passed to the template variables; {} for inline content
|
|
80457
|
+
*/
|
|
80458
|
+
variables: ({
|
|
80459
|
+
[k: string]: unknown;
|
|
80460
|
+
} | null);
|
|
80461
|
+
/**
|
|
80462
|
+
* Audience whose contacts this broadcast is sent to
|
|
80463
|
+
*/
|
|
80309
80464
|
audienceId: string;
|
|
80465
|
+
/**
|
|
80466
|
+
* Template rendered for every recipient; null for inline content
|
|
80467
|
+
*/
|
|
80310
80468
|
templateId: (string | null);
|
|
80469
|
+
/**
|
|
80470
|
+
* Contacts the broadcast fanned out to; 0 while it is still a draft
|
|
80471
|
+
*/
|
|
80311
80472
|
recipientCount: number;
|
|
80312
80473
|
}
|
|
80313
80474
|
export interface MailBroadcastCreateInput {
|
|
80475
|
+
/**
|
|
80476
|
+
* Sender on a verified domain, e.g. "Name <you@your-domain.com>"
|
|
80477
|
+
*/
|
|
80314
80478
|
from: string;
|
|
80479
|
+
/**
|
|
80480
|
+
* HTML body. Inline content only — forbidden with a template.
|
|
80481
|
+
*/
|
|
80315
80482
|
html?: string;
|
|
80483
|
+
/**
|
|
80484
|
+
* Internal label for the broadcast — never shown to recipients
|
|
80485
|
+
*/
|
|
80316
80486
|
name: string;
|
|
80487
|
+
/**
|
|
80488
|
+
* Plain-text body. Inline content only — forbidden with a template.
|
|
80489
|
+
*/
|
|
80317
80490
|
text?: string;
|
|
80491
|
+
/**
|
|
80492
|
+
* Custom MIME headers added to every message. Defaults to {}.
|
|
80493
|
+
*/
|
|
80318
80494
|
headers?: {
|
|
80319
80495
|
[k: string]: string;
|
|
80320
80496
|
};
|
|
80497
|
+
/**
|
|
80498
|
+
* Reply-To addresses. Defaults to [] — replies go to `from`.
|
|
80499
|
+
*/
|
|
80321
80500
|
replyTo?: string[];
|
|
80501
|
+
/**
|
|
80502
|
+
* Subject line, capped at the RFC-5322 line limit. Required with inline content, forbidden with a template.
|
|
80503
|
+
*/
|
|
80322
80504
|
subject?: string;
|
|
80505
|
+
/**
|
|
80506
|
+
* Send by reference to a published template instead of inline content
|
|
80507
|
+
*/
|
|
80323
80508
|
template?: {
|
|
80509
|
+
/**
|
|
80510
|
+
* Published template id to render for every recipient
|
|
80511
|
+
*/
|
|
80324
80512
|
id: string;
|
|
80513
|
+
/**
|
|
80514
|
+
* Values for the template variables, the same for every recipient. Defaults to {}.
|
|
80515
|
+
*/
|
|
80325
80516
|
variables?: {
|
|
80326
80517
|
[k: string]: (string | number | boolean);
|
|
80327
80518
|
};
|
|
80328
80519
|
};
|
|
80520
|
+
/**
|
|
80521
|
+
* Audience whose subscribed contacts receive this broadcast
|
|
80522
|
+
*/
|
|
80329
80523
|
audienceId: string;
|
|
80330
80524
|
}
|
|
80331
80525
|
export interface MailBroadcastCreateOutput {
|
|
80526
|
+
/**
|
|
80527
|
+
* Broadcast id
|
|
80528
|
+
*/
|
|
80332
80529
|
id: string;
|
|
80530
|
+
/**
|
|
80531
|
+
* Sender the messages are sent as
|
|
80532
|
+
*/
|
|
80333
80533
|
from: string;
|
|
80534
|
+
/**
|
|
80535
|
+
* Inline HTML body; null when a template supplies it
|
|
80536
|
+
*/
|
|
80334
80537
|
html: (string | null);
|
|
80538
|
+
/**
|
|
80539
|
+
* Internal label — never shown to recipients
|
|
80540
|
+
*/
|
|
80335
80541
|
name: string;
|
|
80542
|
+
/**
|
|
80543
|
+
* Inline plain-text body; null when a template supplies it
|
|
80544
|
+
*/
|
|
80336
80545
|
text: (string | null);
|
|
80546
|
+
/**
|
|
80547
|
+
* When the last message left; null until sending finishes
|
|
80548
|
+
*/
|
|
80337
80549
|
sentAt: (string | null);
|
|
80338
|
-
|
|
80550
|
+
/**
|
|
80551
|
+
* Lifecycle state: draft (editable), queued (fanned out, sending), sent, failed, canceled
|
|
80552
|
+
*/
|
|
80553
|
+
status: ("draft" | "queued" | "sent" | "failed" | "canceled");
|
|
80554
|
+
/**
|
|
80555
|
+
* Custom MIME headers added to every message
|
|
80556
|
+
*/
|
|
80339
80557
|
headers: {
|
|
80340
80558
|
[k: string]: string;
|
|
80341
80559
|
};
|
|
80560
|
+
/**
|
|
80561
|
+
* Reply-To addresses; empty when replies go to `from`
|
|
80562
|
+
*/
|
|
80342
80563
|
replyTo: string[];
|
|
80564
|
+
/**
|
|
80565
|
+
* Subject line for inline content; null when a template supplies it
|
|
80566
|
+
*/
|
|
80343
80567
|
subject: (string | null);
|
|
80568
|
+
/**
|
|
80569
|
+
* When the broadcast was queued; null while it is a draft
|
|
80570
|
+
*/
|
|
80344
80571
|
queuedAt: (string | null);
|
|
80572
|
+
/**
|
|
80573
|
+
* When the broadcast was created
|
|
80574
|
+
*/
|
|
80345
80575
|
createdAt: string;
|
|
80576
|
+
/**
|
|
80577
|
+
* Why the broadcast failed; null unless status is failed
|
|
80578
|
+
*/
|
|
80346
80579
|
lastError: (string | null);
|
|
80580
|
+
/**
|
|
80581
|
+
* Product the broadcast belongs to
|
|
80582
|
+
*/
|
|
80347
80583
|
productId: string;
|
|
80584
|
+
/**
|
|
80585
|
+
* When the broadcast was last modified
|
|
80586
|
+
*/
|
|
80348
80587
|
updatedAt: string;
|
|
80349
|
-
|
|
80588
|
+
/**
|
|
80589
|
+
* Values passed to the template variables; {} for inline content
|
|
80590
|
+
*/
|
|
80591
|
+
variables: ({
|
|
80592
|
+
[k: string]: unknown;
|
|
80593
|
+
} | null);
|
|
80594
|
+
/**
|
|
80595
|
+
* Audience whose contacts this broadcast is sent to
|
|
80596
|
+
*/
|
|
80350
80597
|
audienceId: string;
|
|
80598
|
+
/**
|
|
80599
|
+
* Template rendered for every recipient; null for inline content
|
|
80600
|
+
*/
|
|
80351
80601
|
templateId: (string | null);
|
|
80602
|
+
/**
|
|
80603
|
+
* Contacts the broadcast fanned out to; 0 while it is still a draft
|
|
80604
|
+
*/
|
|
80352
80605
|
recipientCount: number;
|
|
80353
80606
|
}
|
|
80354
80607
|
export interface MailBroadcastDeleteInput {
|
|
80608
|
+
/**
|
|
80609
|
+
* Broadcast id
|
|
80610
|
+
*/
|
|
80355
80611
|
id: string;
|
|
80356
80612
|
}
|
|
80357
80613
|
export interface MailBroadcastDeleteOutput {
|
|
80614
|
+
/**
|
|
80615
|
+
* Id of the deleted broadcast
|
|
80616
|
+
*/
|
|
80358
80617
|
id: string;
|
|
80618
|
+
/**
|
|
80619
|
+
* True when the broadcast was removed
|
|
80620
|
+
*/
|
|
80359
80621
|
deleted: boolean;
|
|
80360
80622
|
}
|
|
80361
80623
|
export interface MailBroadcastGetInput {
|
|
80624
|
+
/**
|
|
80625
|
+
* Broadcast id
|
|
80626
|
+
*/
|
|
80362
80627
|
id: string;
|
|
80363
80628
|
}
|
|
80364
80629
|
export interface MailBroadcastGetOutput {
|
|
80630
|
+
/**
|
|
80631
|
+
* Broadcast id
|
|
80632
|
+
*/
|
|
80365
80633
|
id: string;
|
|
80634
|
+
/**
|
|
80635
|
+
* Sender the messages are sent as
|
|
80636
|
+
*/
|
|
80366
80637
|
from: string;
|
|
80638
|
+
/**
|
|
80639
|
+
* Inline HTML body; null when a template supplies it
|
|
80640
|
+
*/
|
|
80367
80641
|
html: (string | null);
|
|
80642
|
+
/**
|
|
80643
|
+
* Internal label — never shown to recipients
|
|
80644
|
+
*/
|
|
80368
80645
|
name: string;
|
|
80646
|
+
/**
|
|
80647
|
+
* Inline plain-text body; null when a template supplies it
|
|
80648
|
+
*/
|
|
80369
80649
|
text: (string | null);
|
|
80650
|
+
/**
|
|
80651
|
+
* When the last message left; null until sending finishes
|
|
80652
|
+
*/
|
|
80370
80653
|
sentAt: (string | null);
|
|
80371
|
-
|
|
80654
|
+
/**
|
|
80655
|
+
* Lifecycle state: draft (editable), queued (fanned out, sending), sent, failed, canceled
|
|
80656
|
+
*/
|
|
80657
|
+
status: ("draft" | "queued" | "sent" | "failed" | "canceled");
|
|
80658
|
+
/**
|
|
80659
|
+
* Custom MIME headers added to every message
|
|
80660
|
+
*/
|
|
80372
80661
|
headers: {
|
|
80373
80662
|
[k: string]: string;
|
|
80374
80663
|
};
|
|
80664
|
+
/**
|
|
80665
|
+
* Reply-To addresses; empty when replies go to `from`
|
|
80666
|
+
*/
|
|
80375
80667
|
replyTo: string[];
|
|
80668
|
+
/**
|
|
80669
|
+
* Subject line for inline content; null when a template supplies it
|
|
80670
|
+
*/
|
|
80376
80671
|
subject: (string | null);
|
|
80672
|
+
/**
|
|
80673
|
+
* When the broadcast was queued; null while it is a draft
|
|
80674
|
+
*/
|
|
80377
80675
|
queuedAt: (string | null);
|
|
80676
|
+
/**
|
|
80677
|
+
* When the broadcast was created
|
|
80678
|
+
*/
|
|
80378
80679
|
createdAt: string;
|
|
80680
|
+
/**
|
|
80681
|
+
* Why the broadcast failed; null unless status is failed
|
|
80682
|
+
*/
|
|
80379
80683
|
lastError: (string | null);
|
|
80684
|
+
/**
|
|
80685
|
+
* Product the broadcast belongs to
|
|
80686
|
+
*/
|
|
80380
80687
|
productId: string;
|
|
80688
|
+
/**
|
|
80689
|
+
* When the broadcast was last modified
|
|
80690
|
+
*/
|
|
80381
80691
|
updatedAt: string;
|
|
80382
|
-
|
|
80692
|
+
/**
|
|
80693
|
+
* Values passed to the template variables; {} for inline content
|
|
80694
|
+
*/
|
|
80695
|
+
variables: ({
|
|
80696
|
+
[k: string]: unknown;
|
|
80697
|
+
} | null);
|
|
80698
|
+
/**
|
|
80699
|
+
* Audience whose contacts this broadcast is sent to
|
|
80700
|
+
*/
|
|
80383
80701
|
audienceId: string;
|
|
80702
|
+
/**
|
|
80703
|
+
* Template rendered for every recipient; null for inline content
|
|
80704
|
+
*/
|
|
80384
80705
|
templateId: (string | null);
|
|
80706
|
+
/**
|
|
80707
|
+
* Contacts the broadcast fanned out to; 0 while it is still a draft
|
|
80708
|
+
*/
|
|
80385
80709
|
recipientCount: number;
|
|
80386
80710
|
}
|
|
80387
80711
|
export interface MailBroadcastListInput {
|
|
80712
|
+
/**
|
|
80713
|
+
* Page size, 1-100. Defaults to 50.
|
|
80714
|
+
*/
|
|
80388
80715
|
limit?: number;
|
|
80716
|
+
/**
|
|
80717
|
+
* Opaque cursor from the previous page’s `nextCursor`. Omit for the first page.
|
|
80718
|
+
*/
|
|
80389
80719
|
cursor?: string;
|
|
80390
80720
|
}
|
|
80391
80721
|
export interface MailBroadcastListOutput {
|
|
80722
|
+
/**
|
|
80723
|
+
* The broadcasts on this page, newest first
|
|
80724
|
+
*/
|
|
80392
80725
|
items: {
|
|
80726
|
+
/**
|
|
80727
|
+
* Broadcast id
|
|
80728
|
+
*/
|
|
80393
80729
|
id: string;
|
|
80730
|
+
/**
|
|
80731
|
+
* Sender the messages are sent as
|
|
80732
|
+
*/
|
|
80394
80733
|
from: string;
|
|
80734
|
+
/**
|
|
80735
|
+
* Inline HTML body; null when a template supplies it
|
|
80736
|
+
*/
|
|
80395
80737
|
html: (string | null);
|
|
80738
|
+
/**
|
|
80739
|
+
* Internal label — never shown to recipients
|
|
80740
|
+
*/
|
|
80396
80741
|
name: string;
|
|
80742
|
+
/**
|
|
80743
|
+
* Inline plain-text body; null when a template supplies it
|
|
80744
|
+
*/
|
|
80397
80745
|
text: (string | null);
|
|
80746
|
+
/**
|
|
80747
|
+
* When the last message left; null until sending finishes
|
|
80748
|
+
*/
|
|
80398
80749
|
sentAt: (string | null);
|
|
80399
|
-
|
|
80750
|
+
/**
|
|
80751
|
+
* Lifecycle state: draft (editable), queued (fanned out, sending), sent, failed, canceled
|
|
80752
|
+
*/
|
|
80753
|
+
status: ("draft" | "queued" | "sent" | "failed" | "canceled");
|
|
80754
|
+
/**
|
|
80755
|
+
* Custom MIME headers added to every message
|
|
80756
|
+
*/
|
|
80400
80757
|
headers: {
|
|
80401
80758
|
[k: string]: string;
|
|
80402
80759
|
};
|
|
80760
|
+
/**
|
|
80761
|
+
* Reply-To addresses; empty when replies go to `from`
|
|
80762
|
+
*/
|
|
80403
80763
|
replyTo: string[];
|
|
80764
|
+
/**
|
|
80765
|
+
* Subject line for inline content; null when a template supplies it
|
|
80766
|
+
*/
|
|
80404
80767
|
subject: (string | null);
|
|
80768
|
+
/**
|
|
80769
|
+
* When the broadcast was queued; null while it is a draft
|
|
80770
|
+
*/
|
|
80405
80771
|
queuedAt: (string | null);
|
|
80772
|
+
/**
|
|
80773
|
+
* When the broadcast was created
|
|
80774
|
+
*/
|
|
80406
80775
|
createdAt: string;
|
|
80776
|
+
/**
|
|
80777
|
+
* Why the broadcast failed; null unless status is failed
|
|
80778
|
+
*/
|
|
80407
80779
|
lastError: (string | null);
|
|
80780
|
+
/**
|
|
80781
|
+
* Product the broadcast belongs to
|
|
80782
|
+
*/
|
|
80408
80783
|
productId: string;
|
|
80784
|
+
/**
|
|
80785
|
+
* When the broadcast was last modified
|
|
80786
|
+
*/
|
|
80409
80787
|
updatedAt: string;
|
|
80410
|
-
|
|
80788
|
+
/**
|
|
80789
|
+
* Values passed to the template variables; {} for inline content
|
|
80790
|
+
*/
|
|
80791
|
+
variables: ({
|
|
80792
|
+
[k: string]: unknown;
|
|
80793
|
+
} | null);
|
|
80794
|
+
/**
|
|
80795
|
+
* Audience whose contacts this broadcast is sent to
|
|
80796
|
+
*/
|
|
80411
80797
|
audienceId: string;
|
|
80798
|
+
/**
|
|
80799
|
+
* Template rendered for every recipient; null for inline content
|
|
80800
|
+
*/
|
|
80412
80801
|
templateId: (string | null);
|
|
80802
|
+
/**
|
|
80803
|
+
* Contacts the broadcast fanned out to; 0 while it is still a draft
|
|
80804
|
+
*/
|
|
80413
80805
|
recipientCount: number;
|
|
80414
80806
|
}[];
|
|
80807
|
+
/**
|
|
80808
|
+
* Pass as `cursor` for the next page; null on the last page
|
|
80809
|
+
*/
|
|
80415
80810
|
nextCursor: (string | null);
|
|
80416
80811
|
}
|
|
80417
80812
|
export interface MailBroadcastQueueInput {
|
|
80813
|
+
/**
|
|
80814
|
+
* Broadcast id
|
|
80815
|
+
*/
|
|
80418
80816
|
id: string;
|
|
80419
80817
|
}
|
|
80420
80818
|
export interface MailBroadcastQueueOutput {
|
|
80819
|
+
/**
|
|
80820
|
+
* Broadcast id
|
|
80821
|
+
*/
|
|
80421
80822
|
id: string;
|
|
80823
|
+
/**
|
|
80824
|
+
* Sender the messages are sent as
|
|
80825
|
+
*/
|
|
80422
80826
|
from: string;
|
|
80827
|
+
/**
|
|
80828
|
+
* Inline HTML body; null when a template supplies it
|
|
80829
|
+
*/
|
|
80423
80830
|
html: (string | null);
|
|
80831
|
+
/**
|
|
80832
|
+
* Internal label — never shown to recipients
|
|
80833
|
+
*/
|
|
80424
80834
|
name: string;
|
|
80835
|
+
/**
|
|
80836
|
+
* Inline plain-text body; null when a template supplies it
|
|
80837
|
+
*/
|
|
80425
80838
|
text: (string | null);
|
|
80839
|
+
/**
|
|
80840
|
+
* When the last message left; null until sending finishes
|
|
80841
|
+
*/
|
|
80426
80842
|
sentAt: (string | null);
|
|
80427
|
-
|
|
80843
|
+
/**
|
|
80844
|
+
* Lifecycle state: draft (editable), queued (fanned out, sending), sent, failed, canceled
|
|
80845
|
+
*/
|
|
80846
|
+
status: ("draft" | "queued" | "sent" | "failed" | "canceled");
|
|
80847
|
+
/**
|
|
80848
|
+
* Custom MIME headers added to every message
|
|
80849
|
+
*/
|
|
80428
80850
|
headers: {
|
|
80429
80851
|
[k: string]: string;
|
|
80430
80852
|
};
|
|
80853
|
+
/**
|
|
80854
|
+
* Reply-To addresses; empty when replies go to `from`
|
|
80855
|
+
*/
|
|
80431
80856
|
replyTo: string[];
|
|
80857
|
+
/**
|
|
80858
|
+
* Subject line for inline content; null when a template supplies it
|
|
80859
|
+
*/
|
|
80432
80860
|
subject: (string | null);
|
|
80861
|
+
/**
|
|
80862
|
+
* When the broadcast was queued; null while it is a draft
|
|
80863
|
+
*/
|
|
80433
80864
|
queuedAt: (string | null);
|
|
80865
|
+
/**
|
|
80866
|
+
* When the broadcast was created
|
|
80867
|
+
*/
|
|
80434
80868
|
createdAt: string;
|
|
80869
|
+
/**
|
|
80870
|
+
* Why the broadcast failed; null unless status is failed
|
|
80871
|
+
*/
|
|
80435
80872
|
lastError: (string | null);
|
|
80873
|
+
/**
|
|
80874
|
+
* Product the broadcast belongs to
|
|
80875
|
+
*/
|
|
80436
80876
|
productId: string;
|
|
80877
|
+
/**
|
|
80878
|
+
* When the broadcast was last modified
|
|
80879
|
+
*/
|
|
80437
80880
|
updatedAt: string;
|
|
80438
|
-
|
|
80881
|
+
/**
|
|
80882
|
+
* Values passed to the template variables; {} for inline content
|
|
80883
|
+
*/
|
|
80884
|
+
variables: ({
|
|
80885
|
+
[k: string]: unknown;
|
|
80886
|
+
} | null);
|
|
80887
|
+
/**
|
|
80888
|
+
* Audience whose contacts this broadcast is sent to
|
|
80889
|
+
*/
|
|
80439
80890
|
audienceId: string;
|
|
80891
|
+
/**
|
|
80892
|
+
* Template rendered for every recipient; null for inline content
|
|
80893
|
+
*/
|
|
80440
80894
|
templateId: (string | null);
|
|
80895
|
+
/**
|
|
80896
|
+
* Contacts the broadcast fanned out to; 0 while it is still a draft
|
|
80897
|
+
*/
|
|
80441
80898
|
recipientCount: number;
|
|
80442
80899
|
}
|
|
80443
80900
|
export interface MailBroadcastStatsInput {
|
|
80901
|
+
/**
|
|
80902
|
+
* Broadcast id
|
|
80903
|
+
*/
|
|
80444
80904
|
id: string;
|
|
80445
80905
|
}
|
|
80446
80906
|
export interface MailBroadcastStatsOutput {
|
|
80907
|
+
/**
|
|
80908
|
+
* Messages that could not be handed to the provider
|
|
80909
|
+
*/
|
|
80447
80910
|
failed: number;
|
|
80911
|
+
/**
|
|
80912
|
+
* Messages opened at least once, as seen by the tracking pixel
|
|
80913
|
+
*/
|
|
80448
80914
|
opened: number;
|
|
80915
|
+
/**
|
|
80916
|
+
* Messages that bounced, hard or soft
|
|
80917
|
+
*/
|
|
80449
80918
|
bounced: number;
|
|
80919
|
+
/**
|
|
80920
|
+
* Messages with at least one tracked link click
|
|
80921
|
+
*/
|
|
80450
80922
|
clicked: number;
|
|
80923
|
+
/**
|
|
80924
|
+
* Messages the receiving server accepted
|
|
80925
|
+
*/
|
|
80451
80926
|
delivered: number;
|
|
80927
|
+
/**
|
|
80928
|
+
* Contacts the broadcast fanned out to
|
|
80929
|
+
*/
|
|
80452
80930
|
recipients: number;
|
|
80931
|
+
/**
|
|
80932
|
+
* Recipients skipped because they are on the suppression list
|
|
80933
|
+
*/
|
|
80453
80934
|
suppressed: number;
|
|
80454
80935
|
}
|
|
80455
80936
|
export interface MailBroadcastUpdateInput {
|
|
80937
|
+
/**
|
|
80938
|
+
* Broadcast id
|
|
80939
|
+
*/
|
|
80456
80940
|
id: string;
|
|
80941
|
+
/**
|
|
80942
|
+
* Sender on a verified domain, e.g. "Name <you@your-domain.com>"
|
|
80943
|
+
*/
|
|
80457
80944
|
from?: string;
|
|
80945
|
+
/**
|
|
80946
|
+
* HTML body. Inline content only — forbidden with a template.
|
|
80947
|
+
*/
|
|
80458
80948
|
html?: string;
|
|
80949
|
+
/**
|
|
80950
|
+
* Internal label for the broadcast — never shown to recipients
|
|
80951
|
+
*/
|
|
80459
80952
|
name?: string;
|
|
80953
|
+
/**
|
|
80954
|
+
* Plain-text body. Inline content only — forbidden with a template.
|
|
80955
|
+
*/
|
|
80460
80956
|
text?: string;
|
|
80957
|
+
/**
|
|
80958
|
+
* Custom MIME headers added to every message. Defaults to {}.
|
|
80959
|
+
*/
|
|
80461
80960
|
headers?: {
|
|
80462
80961
|
[k: string]: string;
|
|
80463
80962
|
};
|
|
80963
|
+
/**
|
|
80964
|
+
* Reply-To addresses. Defaults to [] — replies go to `from`.
|
|
80965
|
+
*/
|
|
80464
80966
|
replyTo?: string[];
|
|
80967
|
+
/**
|
|
80968
|
+
* Subject line, capped at the RFC-5322 line limit. Required with inline content, forbidden with a template.
|
|
80969
|
+
*/
|
|
80465
80970
|
subject?: string;
|
|
80971
|
+
/**
|
|
80972
|
+
* Send by reference to a published template instead of inline content
|
|
80973
|
+
*/
|
|
80466
80974
|
template?: {
|
|
80975
|
+
/**
|
|
80976
|
+
* Published template id to render for every recipient
|
|
80977
|
+
*/
|
|
80467
80978
|
id: string;
|
|
80979
|
+
/**
|
|
80980
|
+
* Values for the template variables, the same for every recipient. Defaults to {}.
|
|
80981
|
+
*/
|
|
80468
80982
|
variables?: {
|
|
80469
80983
|
[k: string]: (string | number | boolean);
|
|
80470
80984
|
};
|
|
80471
80985
|
};
|
|
80986
|
+
/**
|
|
80987
|
+
* Audience whose subscribed contacts receive this broadcast
|
|
80988
|
+
*/
|
|
80472
80989
|
audienceId?: string;
|
|
80473
80990
|
}
|
|
80474
80991
|
export interface MailBroadcastUpdateOutput {
|
|
80992
|
+
/**
|
|
80993
|
+
* Broadcast id
|
|
80994
|
+
*/
|
|
80475
80995
|
id: string;
|
|
80996
|
+
/**
|
|
80997
|
+
* Sender the messages are sent as
|
|
80998
|
+
*/
|
|
80476
80999
|
from: string;
|
|
81000
|
+
/**
|
|
81001
|
+
* Inline HTML body; null when a template supplies it
|
|
81002
|
+
*/
|
|
80477
81003
|
html: (string | null);
|
|
81004
|
+
/**
|
|
81005
|
+
* Internal label — never shown to recipients
|
|
81006
|
+
*/
|
|
80478
81007
|
name: string;
|
|
81008
|
+
/**
|
|
81009
|
+
* Inline plain-text body; null when a template supplies it
|
|
81010
|
+
*/
|
|
80479
81011
|
text: (string | null);
|
|
81012
|
+
/**
|
|
81013
|
+
* When the last message left; null until sending finishes
|
|
81014
|
+
*/
|
|
80480
81015
|
sentAt: (string | null);
|
|
80481
|
-
|
|
81016
|
+
/**
|
|
81017
|
+
* Lifecycle state: draft (editable), queued (fanned out, sending), sent, failed, canceled
|
|
81018
|
+
*/
|
|
81019
|
+
status: ("draft" | "queued" | "sent" | "failed" | "canceled");
|
|
81020
|
+
/**
|
|
81021
|
+
* Custom MIME headers added to every message
|
|
81022
|
+
*/
|
|
80482
81023
|
headers: {
|
|
80483
81024
|
[k: string]: string;
|
|
80484
81025
|
};
|
|
81026
|
+
/**
|
|
81027
|
+
* Reply-To addresses; empty when replies go to `from`
|
|
81028
|
+
*/
|
|
80485
81029
|
replyTo: string[];
|
|
81030
|
+
/**
|
|
81031
|
+
* Subject line for inline content; null when a template supplies it
|
|
81032
|
+
*/
|
|
80486
81033
|
subject: (string | null);
|
|
81034
|
+
/**
|
|
81035
|
+
* When the broadcast was queued; null while it is a draft
|
|
81036
|
+
*/
|
|
80487
81037
|
queuedAt: (string | null);
|
|
81038
|
+
/**
|
|
81039
|
+
* When the broadcast was created
|
|
81040
|
+
*/
|
|
80488
81041
|
createdAt: string;
|
|
81042
|
+
/**
|
|
81043
|
+
* Why the broadcast failed; null unless status is failed
|
|
81044
|
+
*/
|
|
80489
81045
|
lastError: (string | null);
|
|
81046
|
+
/**
|
|
81047
|
+
* Product the broadcast belongs to
|
|
81048
|
+
*/
|
|
80490
81049
|
productId: string;
|
|
81050
|
+
/**
|
|
81051
|
+
* When the broadcast was last modified
|
|
81052
|
+
*/
|
|
80491
81053
|
updatedAt: string;
|
|
80492
|
-
|
|
81054
|
+
/**
|
|
81055
|
+
* Values passed to the template variables; {} for inline content
|
|
81056
|
+
*/
|
|
81057
|
+
variables: ({
|
|
81058
|
+
[k: string]: unknown;
|
|
81059
|
+
} | null);
|
|
81060
|
+
/**
|
|
81061
|
+
* Audience whose contacts this broadcast is sent to
|
|
81062
|
+
*/
|
|
80493
81063
|
audienceId: string;
|
|
81064
|
+
/**
|
|
81065
|
+
* Template rendered for every recipient; null for inline content
|
|
81066
|
+
*/
|
|
80494
81067
|
templateId: (string | null);
|
|
81068
|
+
/**
|
|
81069
|
+
* Contacts the broadcast fanned out to; 0 while it is still a draft
|
|
81070
|
+
*/
|
|
80495
81071
|
recipientCount: number;
|
|
80496
81072
|
}
|
|
80497
81073
|
export interface MailContactCreateInput {
|
|
@@ -80515,12 +81091,30 @@ export interface MailContactCreateInput {
|
|
|
80515
81091
|
unsubscribed?: boolean;
|
|
80516
81092
|
}
|
|
80517
81093
|
export interface MailContactCreateOutput {
|
|
81094
|
+
/**
|
|
81095
|
+
* Contact id
|
|
81096
|
+
*/
|
|
80518
81097
|
id: string;
|
|
81098
|
+
/**
|
|
81099
|
+
* Contact email address, normalized to lowercase
|
|
81100
|
+
*/
|
|
80519
81101
|
email: string;
|
|
81102
|
+
/**
|
|
81103
|
+
* When the contact was created (ISO 8601 UTC)
|
|
81104
|
+
*/
|
|
80520
81105
|
createdAt: string;
|
|
81106
|
+
/**
|
|
81107
|
+
* When the contact was last modified (ISO 8601 UTC)
|
|
81108
|
+
*/
|
|
80521
81109
|
updatedAt: string;
|
|
81110
|
+
/**
|
|
81111
|
+
* Audience the contact belongs to
|
|
81112
|
+
*/
|
|
80522
81113
|
audienceId: string;
|
|
80523
81114
|
properties?: unknown;
|
|
81115
|
+
/**
|
|
81116
|
+
* Marketing opt-out flag for this audience
|
|
81117
|
+
*/
|
|
80524
81118
|
unsubscribed: boolean;
|
|
80525
81119
|
}
|
|
80526
81120
|
export interface MailContactDeleteInput {
|
|
@@ -80534,6 +81128,9 @@ export interface MailContactDeleteInput {
|
|
|
80534
81128
|
audience_id: string;
|
|
80535
81129
|
}
|
|
80536
81130
|
export interface MailContactDeleteOutput {
|
|
81131
|
+
/**
|
|
81132
|
+
* True once the contact is gone
|
|
81133
|
+
*/
|
|
80537
81134
|
deleted: boolean;
|
|
80538
81135
|
}
|
|
80539
81136
|
export interface MailContactGetInput {
|
|
@@ -80547,12 +81144,30 @@ export interface MailContactGetInput {
|
|
|
80547
81144
|
audience_id: string;
|
|
80548
81145
|
}
|
|
80549
81146
|
export interface MailContactGetOutput {
|
|
81147
|
+
/**
|
|
81148
|
+
* Contact id
|
|
81149
|
+
*/
|
|
80550
81150
|
id: string;
|
|
81151
|
+
/**
|
|
81152
|
+
* Contact email address, normalized to lowercase
|
|
81153
|
+
*/
|
|
80551
81154
|
email: string;
|
|
81155
|
+
/**
|
|
81156
|
+
* When the contact was created (ISO 8601 UTC)
|
|
81157
|
+
*/
|
|
80552
81158
|
createdAt: string;
|
|
81159
|
+
/**
|
|
81160
|
+
* When the contact was last modified (ISO 8601 UTC)
|
|
81161
|
+
*/
|
|
80553
81162
|
updatedAt: string;
|
|
81163
|
+
/**
|
|
81164
|
+
* Audience the contact belongs to
|
|
81165
|
+
*/
|
|
80554
81166
|
audienceId: string;
|
|
80555
81167
|
properties?: unknown;
|
|
81168
|
+
/**
|
|
81169
|
+
* Marketing opt-out flag for this audience
|
|
81170
|
+
*/
|
|
80556
81171
|
unsubscribed: boolean;
|
|
80557
81172
|
}
|
|
80558
81173
|
export interface MailContactListInput {
|
|
@@ -80561,7 +81176,7 @@ export interface MailContactListInput {
|
|
|
80561
81176
|
*/
|
|
80562
81177
|
limit?: number;
|
|
80563
81178
|
/**
|
|
80564
|
-
* Opaque pagination cursor from a prior page
|
|
81179
|
+
* Opaque pagination cursor from a prior page; omit for the first page
|
|
80565
81180
|
*/
|
|
80566
81181
|
cursor?: string;
|
|
80567
81182
|
/**
|
|
@@ -80574,15 +81189,39 @@ export interface MailContactListInput {
|
|
|
80574
81189
|
unsubscribed?: (("true" | "false") | boolean);
|
|
80575
81190
|
}
|
|
80576
81191
|
export interface MailContactListOutput {
|
|
81192
|
+
/**
|
|
81193
|
+
* Contacts on this page, newest first
|
|
81194
|
+
*/
|
|
80577
81195
|
data: {
|
|
81196
|
+
/**
|
|
81197
|
+
* Contact id
|
|
81198
|
+
*/
|
|
80578
81199
|
id: string;
|
|
81200
|
+
/**
|
|
81201
|
+
* Contact email address, normalized to lowercase
|
|
81202
|
+
*/
|
|
80579
81203
|
email: string;
|
|
81204
|
+
/**
|
|
81205
|
+
* When the contact was created (ISO 8601 UTC)
|
|
81206
|
+
*/
|
|
80580
81207
|
createdAt: string;
|
|
81208
|
+
/**
|
|
81209
|
+
* When the contact was last modified (ISO 8601 UTC)
|
|
81210
|
+
*/
|
|
80581
81211
|
updatedAt: string;
|
|
81212
|
+
/**
|
|
81213
|
+
* Audience the contact belongs to
|
|
81214
|
+
*/
|
|
80582
81215
|
audienceId: string;
|
|
80583
81216
|
properties?: unknown;
|
|
81217
|
+
/**
|
|
81218
|
+
* Marketing opt-out flag for this audience
|
|
81219
|
+
*/
|
|
80584
81220
|
unsubscribed: boolean;
|
|
80585
81221
|
}[];
|
|
81222
|
+
/**
|
|
81223
|
+
* Cursor for the next page; null on the last page
|
|
81224
|
+
*/
|
|
80586
81225
|
nextCursor: (string | null);
|
|
80587
81226
|
}
|
|
80588
81227
|
export interface MailContactUpdateInput {
|
|
@@ -80606,269 +81245,794 @@ export interface MailContactUpdateInput {
|
|
|
80606
81245
|
unsubscribed?: boolean;
|
|
80607
81246
|
}
|
|
80608
81247
|
export interface MailContactUpdateOutput {
|
|
81248
|
+
/**
|
|
81249
|
+
* Contact id
|
|
81250
|
+
*/
|
|
80609
81251
|
id: string;
|
|
81252
|
+
/**
|
|
81253
|
+
* Contact email address, normalized to lowercase
|
|
81254
|
+
*/
|
|
80610
81255
|
email: string;
|
|
81256
|
+
/**
|
|
81257
|
+
* When the contact was created (ISO 8601 UTC)
|
|
81258
|
+
*/
|
|
80611
81259
|
createdAt: string;
|
|
81260
|
+
/**
|
|
81261
|
+
* When the contact was last modified (ISO 8601 UTC)
|
|
81262
|
+
*/
|
|
80612
81263
|
updatedAt: string;
|
|
81264
|
+
/**
|
|
81265
|
+
* Audience the contact belongs to
|
|
81266
|
+
*/
|
|
80613
81267
|
audienceId: string;
|
|
80614
81268
|
properties?: unknown;
|
|
81269
|
+
/**
|
|
81270
|
+
* Marketing opt-out flag for this audience
|
|
81271
|
+
*/
|
|
80615
81272
|
unsubscribed: boolean;
|
|
80616
81273
|
}
|
|
80617
81274
|
export interface MailDomainAllowedListInput {
|
|
80618
81275
|
}
|
|
81276
|
+
/**
|
|
81277
|
+
* Apex domains this product may register sending domains under
|
|
81278
|
+
*/
|
|
80619
81279
|
export type MailDomainAllowedListOutput = {
|
|
80620
|
-
|
|
81280
|
+
/**
|
|
81281
|
+
* Who operates DNS under this apex: managed if the platform publishes the records, external if you do
|
|
81282
|
+
*/
|
|
81283
|
+
mode: ("external" | "managed");
|
|
81284
|
+
/**
|
|
81285
|
+
* The apex domain itself, e.g. "example.com"
|
|
81286
|
+
*/
|
|
80621
81287
|
domain: string;
|
|
81288
|
+
/**
|
|
81289
|
+
* Governance domain id — pass it to the governance console, not to mail_domain_get
|
|
81290
|
+
*/
|
|
80622
81291
|
domainId: string;
|
|
81292
|
+
/**
|
|
81293
|
+
* How many extensions currently send under this apex
|
|
81294
|
+
*/
|
|
80623
81295
|
extensionCount: number;
|
|
80624
81296
|
}[];
|
|
80625
81297
|
export interface MailDomainCreateInput {
|
|
80626
81298
|
/**
|
|
80627
|
-
* The sending domain to register, e.g. "example.com"
|
|
81299
|
+
* The sending domain to register, e.g. "example.com"; it must sit under an apex this product is allowed to use (see mail_domain_allowed_list)
|
|
80628
81300
|
*/
|
|
80629
81301
|
name: string;
|
|
80630
81302
|
/**
|
|
80631
|
-
* AWS region for the SES identity
|
|
81303
|
+
* AWS region for the SES identity, which fixes data residency (default "eu-north-1"); immutable once the domain is created
|
|
80632
81304
|
*/
|
|
80633
81305
|
region?: string;
|
|
80634
81306
|
}
|
|
80635
81307
|
export interface MailDomainCreateOutput {
|
|
81308
|
+
/**
|
|
81309
|
+
* Sending domain id
|
|
81310
|
+
*/
|
|
80636
81311
|
id: string;
|
|
80637
|
-
|
|
81312
|
+
/**
|
|
81313
|
+
* TLS policy for delivery: opportunistic falls back to plaintext if the recipient offers no TLS, enforced fails the send instead
|
|
81314
|
+
*/
|
|
81315
|
+
tls: ("opportunistic" | "enforced");
|
|
81316
|
+
/**
|
|
81317
|
+
* Governed apex this domain sits under; null if it is not governed
|
|
81318
|
+
*/
|
|
80638
81319
|
apex: (string | null);
|
|
80639
|
-
|
|
81320
|
+
/**
|
|
81321
|
+
* Who operates DNS: managed if the platform publishes the records for you, external if you publish them yourself; null if the domain is not governed
|
|
81322
|
+
*/
|
|
81323
|
+
mode: (("external" | "managed") | null);
|
|
81324
|
+
/**
|
|
81325
|
+
* The sending domain itself, e.g. "example.com"
|
|
81326
|
+
*/
|
|
80640
81327
|
name: string;
|
|
81328
|
+
/**
|
|
81329
|
+
* True only when the domain is verified AND its governance binding is active — the condition for sending from it
|
|
81330
|
+
*/
|
|
80641
81331
|
active: boolean;
|
|
81332
|
+
/**
|
|
81333
|
+
* AWS region hosting the SES identity, which fixes data residency; set at create time and immutable
|
|
81334
|
+
*/
|
|
80642
81335
|
region: string;
|
|
80643
|
-
|
|
81336
|
+
/**
|
|
81337
|
+
* SES verification state: not_started before the first check, pending while DNS propagates, verified once sending is allowed, failed or temporary_failure when SES could not verify
|
|
81338
|
+
*/
|
|
81339
|
+
status: ("not_started" | "pending" | "verified" | "failed" | "temporary_failure");
|
|
81340
|
+
/**
|
|
81341
|
+
* DNS records to publish for this domain, each with its last-seen resolution status
|
|
81342
|
+
*/
|
|
80644
81343
|
records: {
|
|
81344
|
+
/**
|
|
81345
|
+
* Fully-qualified host the record is published at
|
|
81346
|
+
*/
|
|
80645
81347
|
name: string;
|
|
80646
|
-
|
|
81348
|
+
/**
|
|
81349
|
+
* DNS record type to publish
|
|
81350
|
+
*/
|
|
81351
|
+
type: ("CNAME" | "TXT" | "MX");
|
|
81352
|
+
/**
|
|
81353
|
+
* Value the record must resolve to
|
|
81354
|
+
*/
|
|
80647
81355
|
value: string;
|
|
80648
|
-
|
|
81356
|
+
/**
|
|
81357
|
+
* What the record is for: dkim signs outgoing mail, spf authorises the sender, return-path-mx routes bounces back, dmarc states the policy
|
|
81358
|
+
*/
|
|
81359
|
+
purpose: ("dkim" | "spf" | "return-path-mx" | "dmarc");
|
|
81360
|
+
/**
|
|
81361
|
+
* MX priority; present only on MX records
|
|
81362
|
+
*/
|
|
80649
81363
|
priority?: number;
|
|
81364
|
+
/**
|
|
81365
|
+
* True if the domain cannot verify without this record; false if it is optional
|
|
81366
|
+
*/
|
|
80650
81367
|
required: boolean;
|
|
81368
|
+
/**
|
|
81369
|
+
* True if the record was found in DNS at the last check; absent when no check has run
|
|
81370
|
+
*/
|
|
80651
81371
|
resolved?: boolean;
|
|
80652
81372
|
}[];
|
|
81373
|
+
/**
|
|
81374
|
+
* When the domain was registered (ISO 8601 UTC)
|
|
81375
|
+
*/
|
|
80653
81376
|
createdAt: string;
|
|
81377
|
+
/**
|
|
81378
|
+
* When the domain record was last changed (ISO 8601 UTC)
|
|
81379
|
+
*/
|
|
80654
81380
|
updatedAt: string;
|
|
81381
|
+
/**
|
|
81382
|
+
* When the domain became verified (ISO 8601 UTC); null while it is not
|
|
81383
|
+
*/
|
|
80655
81384
|
verifiedAt: (string | null);
|
|
81385
|
+
/**
|
|
81386
|
+
* Human-readable steps still outstanding before this domain can send
|
|
81387
|
+
*/
|
|
80656
81388
|
instructions: string[];
|
|
81389
|
+
/**
|
|
81390
|
+
* True if a 1x1 pixel is injected into outgoing mail to record opens
|
|
81391
|
+
*/
|
|
80657
81392
|
openTracking: boolean;
|
|
80658
|
-
|
|
81393
|
+
/**
|
|
81394
|
+
* Governance binding state: pending while it is being granted, active once the domain may be used, failed if it could not be granted
|
|
81395
|
+
*/
|
|
81396
|
+
bindingStatus: ("pending" | "active" | "failed");
|
|
81397
|
+
/**
|
|
81398
|
+
* True if links are rewritten through the tracking host to record clicks
|
|
81399
|
+
*/
|
|
80659
81400
|
clickTracking: boolean;
|
|
81401
|
+
/**
|
|
81402
|
+
* Host used as the bounce (Return-Path) address, so bounces come back to this product
|
|
81403
|
+
*/
|
|
80660
81404
|
customReturnPath: string;
|
|
81405
|
+
/**
|
|
81406
|
+
* Host serving the click redirect and the open pixel; null if tracking is off
|
|
81407
|
+
*/
|
|
80661
81408
|
trackingSubdomain: (string | null);
|
|
81409
|
+
/**
|
|
81410
|
+
* Id of the governance domain this one is registered under; null if it is not governed
|
|
81411
|
+
*/
|
|
80662
81412
|
governanceDomainId: (string | null);
|
|
81413
|
+
/**
|
|
81414
|
+
* Id of the binding between this product and the governance domain; null if unbound
|
|
81415
|
+
*/
|
|
80663
81416
|
governanceBindingId: (string | null);
|
|
81417
|
+
/**
|
|
81418
|
+
* When verification was first requested (ISO 8601 UTC)
|
|
81419
|
+
*/
|
|
80664
81420
|
verificationStartedAt: string;
|
|
81421
|
+
/**
|
|
81422
|
+
* When DNS and SES were last checked (ISO 8601 UTC); null if no check has run yet
|
|
81423
|
+
*/
|
|
80665
81424
|
lastVerificationCheckAt: (string | null);
|
|
80666
81425
|
}
|
|
80667
81426
|
export interface MailDomainDeleteInput {
|
|
80668
81427
|
/**
|
|
80669
|
-
*
|
|
81428
|
+
* Sending domain to delete, along with its SES identity
|
|
80670
81429
|
*/
|
|
80671
81430
|
id: string;
|
|
80672
81431
|
}
|
|
80673
81432
|
export interface MailDomainDeleteOutput {
|
|
81433
|
+
/**
|
|
81434
|
+
* True once the domain and its SES identity are gone
|
|
81435
|
+
*/
|
|
80674
81436
|
deleted: boolean;
|
|
80675
81437
|
}
|
|
80676
81438
|
export interface MailDomainGetInput {
|
|
80677
81439
|
/**
|
|
80678
|
-
*
|
|
81440
|
+
* Sending domain id
|
|
80679
81441
|
*/
|
|
80680
81442
|
id: string;
|
|
80681
81443
|
}
|
|
80682
81444
|
export interface MailDomainGetOutput {
|
|
81445
|
+
/**
|
|
81446
|
+
* Sending domain id
|
|
81447
|
+
*/
|
|
80683
81448
|
id: string;
|
|
80684
|
-
|
|
81449
|
+
/**
|
|
81450
|
+
* TLS policy for delivery: opportunistic falls back to plaintext if the recipient offers no TLS, enforced fails the send instead
|
|
81451
|
+
*/
|
|
81452
|
+
tls: ("opportunistic" | "enforced");
|
|
81453
|
+
/**
|
|
81454
|
+
* Governed apex this domain sits under; null if it is not governed
|
|
81455
|
+
*/
|
|
80685
81456
|
apex: (string | null);
|
|
80686
|
-
|
|
81457
|
+
/**
|
|
81458
|
+
* Who operates DNS: managed if the platform publishes the records for you, external if you publish them yourself; null if the domain is not governed
|
|
81459
|
+
*/
|
|
81460
|
+
mode: (("external" | "managed") | null);
|
|
81461
|
+
/**
|
|
81462
|
+
* The sending domain itself, e.g. "example.com"
|
|
81463
|
+
*/
|
|
80687
81464
|
name: string;
|
|
81465
|
+
/**
|
|
81466
|
+
* True only when the domain is verified AND its governance binding is active — the condition for sending from it
|
|
81467
|
+
*/
|
|
80688
81468
|
active: boolean;
|
|
81469
|
+
/**
|
|
81470
|
+
* AWS region hosting the SES identity, which fixes data residency; set at create time and immutable
|
|
81471
|
+
*/
|
|
80689
81472
|
region: string;
|
|
80690
|
-
|
|
81473
|
+
/**
|
|
81474
|
+
* SES verification state: not_started before the first check, pending while DNS propagates, verified once sending is allowed, failed or temporary_failure when SES could not verify
|
|
81475
|
+
*/
|
|
81476
|
+
status: ("not_started" | "pending" | "verified" | "failed" | "temporary_failure");
|
|
81477
|
+
/**
|
|
81478
|
+
* DNS records to publish for this domain, each with its last-seen resolution status
|
|
81479
|
+
*/
|
|
80691
81480
|
records: {
|
|
81481
|
+
/**
|
|
81482
|
+
* Fully-qualified host the record is published at
|
|
81483
|
+
*/
|
|
80692
81484
|
name: string;
|
|
80693
|
-
|
|
81485
|
+
/**
|
|
81486
|
+
* DNS record type to publish
|
|
81487
|
+
*/
|
|
81488
|
+
type: ("CNAME" | "TXT" | "MX");
|
|
81489
|
+
/**
|
|
81490
|
+
* Value the record must resolve to
|
|
81491
|
+
*/
|
|
80694
81492
|
value: string;
|
|
80695
|
-
|
|
81493
|
+
/**
|
|
81494
|
+
* What the record is for: dkim signs outgoing mail, spf authorises the sender, return-path-mx routes bounces back, dmarc states the policy
|
|
81495
|
+
*/
|
|
81496
|
+
purpose: ("dkim" | "spf" | "return-path-mx" | "dmarc");
|
|
81497
|
+
/**
|
|
81498
|
+
* MX priority; present only on MX records
|
|
81499
|
+
*/
|
|
80696
81500
|
priority?: number;
|
|
81501
|
+
/**
|
|
81502
|
+
* True if the domain cannot verify without this record; false if it is optional
|
|
81503
|
+
*/
|
|
80697
81504
|
required: boolean;
|
|
81505
|
+
/**
|
|
81506
|
+
* True if the record was found in DNS at the last check; absent when no check has run
|
|
81507
|
+
*/
|
|
80698
81508
|
resolved?: boolean;
|
|
80699
81509
|
}[];
|
|
81510
|
+
/**
|
|
81511
|
+
* When the domain was registered (ISO 8601 UTC)
|
|
81512
|
+
*/
|
|
80700
81513
|
createdAt: string;
|
|
81514
|
+
/**
|
|
81515
|
+
* When the domain record was last changed (ISO 8601 UTC)
|
|
81516
|
+
*/
|
|
80701
81517
|
updatedAt: string;
|
|
81518
|
+
/**
|
|
81519
|
+
* When the domain became verified (ISO 8601 UTC); null while it is not
|
|
81520
|
+
*/
|
|
80702
81521
|
verifiedAt: (string | null);
|
|
81522
|
+
/**
|
|
81523
|
+
* Human-readable steps still outstanding before this domain can send
|
|
81524
|
+
*/
|
|
80703
81525
|
instructions: string[];
|
|
81526
|
+
/**
|
|
81527
|
+
* True if a 1x1 pixel is injected into outgoing mail to record opens
|
|
81528
|
+
*/
|
|
80704
81529
|
openTracking: boolean;
|
|
80705
|
-
|
|
81530
|
+
/**
|
|
81531
|
+
* Governance binding state: pending while it is being granted, active once the domain may be used, failed if it could not be granted
|
|
81532
|
+
*/
|
|
81533
|
+
bindingStatus: ("pending" | "active" | "failed");
|
|
81534
|
+
/**
|
|
81535
|
+
* True if links are rewritten through the tracking host to record clicks
|
|
81536
|
+
*/
|
|
80706
81537
|
clickTracking: boolean;
|
|
81538
|
+
/**
|
|
81539
|
+
* Host used as the bounce (Return-Path) address, so bounces come back to this product
|
|
81540
|
+
*/
|
|
80707
81541
|
customReturnPath: string;
|
|
81542
|
+
/**
|
|
81543
|
+
* Host serving the click redirect and the open pixel; null if tracking is off
|
|
81544
|
+
*/
|
|
80708
81545
|
trackingSubdomain: (string | null);
|
|
81546
|
+
/**
|
|
81547
|
+
* Id of the governance domain this one is registered under; null if it is not governed
|
|
81548
|
+
*/
|
|
80709
81549
|
governanceDomainId: (string | null);
|
|
81550
|
+
/**
|
|
81551
|
+
* Id of the binding between this product and the governance domain; null if unbound
|
|
81552
|
+
*/
|
|
80710
81553
|
governanceBindingId: (string | null);
|
|
81554
|
+
/**
|
|
81555
|
+
* When verification was first requested (ISO 8601 UTC)
|
|
81556
|
+
*/
|
|
80711
81557
|
verificationStartedAt: string;
|
|
81558
|
+
/**
|
|
81559
|
+
* When DNS and SES were last checked (ISO 8601 UTC); null if no check has run yet
|
|
81560
|
+
*/
|
|
80712
81561
|
lastVerificationCheckAt: (string | null);
|
|
80713
81562
|
}
|
|
80714
81563
|
export interface MailDomainListInput {
|
|
80715
81564
|
}
|
|
81565
|
+
/**
|
|
81566
|
+
* Sending domains registered for the current product
|
|
81567
|
+
*/
|
|
80716
81568
|
export type MailDomainListOutput = {
|
|
81569
|
+
/**
|
|
81570
|
+
* Sending domain id
|
|
81571
|
+
*/
|
|
80717
81572
|
id: string;
|
|
80718
|
-
|
|
81573
|
+
/**
|
|
81574
|
+
* TLS policy for delivery: opportunistic falls back to plaintext if the recipient offers no TLS, enforced fails the send instead
|
|
81575
|
+
*/
|
|
81576
|
+
tls: ("opportunistic" | "enforced");
|
|
81577
|
+
/**
|
|
81578
|
+
* Governed apex this domain sits under; null if it is not governed
|
|
81579
|
+
*/
|
|
80719
81580
|
apex: (string | null);
|
|
80720
|
-
|
|
81581
|
+
/**
|
|
81582
|
+
* Who operates DNS: managed if the platform publishes the records for you, external if you publish them yourself; null if the domain is not governed
|
|
81583
|
+
*/
|
|
81584
|
+
mode: (("external" | "managed") | null);
|
|
81585
|
+
/**
|
|
81586
|
+
* The sending domain itself, e.g. "example.com"
|
|
81587
|
+
*/
|
|
80721
81588
|
name: string;
|
|
81589
|
+
/**
|
|
81590
|
+
* True only when the domain is verified AND its governance binding is active — the condition for sending from it
|
|
81591
|
+
*/
|
|
80722
81592
|
active: boolean;
|
|
81593
|
+
/**
|
|
81594
|
+
* AWS region hosting the SES identity, which fixes data residency; set at create time and immutable
|
|
81595
|
+
*/
|
|
80723
81596
|
region: string;
|
|
80724
|
-
|
|
81597
|
+
/**
|
|
81598
|
+
* SES verification state: not_started before the first check, pending while DNS propagates, verified once sending is allowed, failed or temporary_failure when SES could not verify
|
|
81599
|
+
*/
|
|
81600
|
+
status: ("not_started" | "pending" | "verified" | "failed" | "temporary_failure");
|
|
81601
|
+
/**
|
|
81602
|
+
* DNS records to publish for this domain, each with its last-seen resolution status
|
|
81603
|
+
*/
|
|
80725
81604
|
records: {
|
|
81605
|
+
/**
|
|
81606
|
+
* Fully-qualified host the record is published at
|
|
81607
|
+
*/
|
|
80726
81608
|
name: string;
|
|
80727
|
-
|
|
81609
|
+
/**
|
|
81610
|
+
* DNS record type to publish
|
|
81611
|
+
*/
|
|
81612
|
+
type: ("CNAME" | "TXT" | "MX");
|
|
81613
|
+
/**
|
|
81614
|
+
* Value the record must resolve to
|
|
81615
|
+
*/
|
|
80728
81616
|
value: string;
|
|
80729
|
-
|
|
81617
|
+
/**
|
|
81618
|
+
* What the record is for: dkim signs outgoing mail, spf authorises the sender, return-path-mx routes bounces back, dmarc states the policy
|
|
81619
|
+
*/
|
|
81620
|
+
purpose: ("dkim" | "spf" | "return-path-mx" | "dmarc");
|
|
81621
|
+
/**
|
|
81622
|
+
* MX priority; present only on MX records
|
|
81623
|
+
*/
|
|
80730
81624
|
priority?: number;
|
|
81625
|
+
/**
|
|
81626
|
+
* True if the domain cannot verify without this record; false if it is optional
|
|
81627
|
+
*/
|
|
80731
81628
|
required: boolean;
|
|
81629
|
+
/**
|
|
81630
|
+
* True if the record was found in DNS at the last check; absent when no check has run
|
|
81631
|
+
*/
|
|
80732
81632
|
resolved?: boolean;
|
|
80733
81633
|
}[];
|
|
81634
|
+
/**
|
|
81635
|
+
* When the domain was registered (ISO 8601 UTC)
|
|
81636
|
+
*/
|
|
80734
81637
|
createdAt: string;
|
|
81638
|
+
/**
|
|
81639
|
+
* When the domain record was last changed (ISO 8601 UTC)
|
|
81640
|
+
*/
|
|
80735
81641
|
updatedAt: string;
|
|
81642
|
+
/**
|
|
81643
|
+
* When the domain became verified (ISO 8601 UTC); null while it is not
|
|
81644
|
+
*/
|
|
80736
81645
|
verifiedAt: (string | null);
|
|
81646
|
+
/**
|
|
81647
|
+
* Human-readable steps still outstanding before this domain can send
|
|
81648
|
+
*/
|
|
80737
81649
|
instructions: string[];
|
|
81650
|
+
/**
|
|
81651
|
+
* True if a 1x1 pixel is injected into outgoing mail to record opens
|
|
81652
|
+
*/
|
|
80738
81653
|
openTracking: boolean;
|
|
80739
|
-
|
|
81654
|
+
/**
|
|
81655
|
+
* Governance binding state: pending while it is being granted, active once the domain may be used, failed if it could not be granted
|
|
81656
|
+
*/
|
|
81657
|
+
bindingStatus: ("pending" | "active" | "failed");
|
|
81658
|
+
/**
|
|
81659
|
+
* True if links are rewritten through the tracking host to record clicks
|
|
81660
|
+
*/
|
|
80740
81661
|
clickTracking: boolean;
|
|
81662
|
+
/**
|
|
81663
|
+
* Host used as the bounce (Return-Path) address, so bounces come back to this product
|
|
81664
|
+
*/
|
|
80741
81665
|
customReturnPath: string;
|
|
81666
|
+
/**
|
|
81667
|
+
* Host serving the click redirect and the open pixel; null if tracking is off
|
|
81668
|
+
*/
|
|
80742
81669
|
trackingSubdomain: (string | null);
|
|
81670
|
+
/**
|
|
81671
|
+
* Id of the governance domain this one is registered under; null if it is not governed
|
|
81672
|
+
*/
|
|
80743
81673
|
governanceDomainId: (string | null);
|
|
81674
|
+
/**
|
|
81675
|
+
* Id of the binding between this product and the governance domain; null if unbound
|
|
81676
|
+
*/
|
|
80744
81677
|
governanceBindingId: (string | null);
|
|
81678
|
+
/**
|
|
81679
|
+
* When verification was first requested (ISO 8601 UTC)
|
|
81680
|
+
*/
|
|
80745
81681
|
verificationStartedAt: string;
|
|
81682
|
+
/**
|
|
81683
|
+
* When DNS and SES were last checked (ISO 8601 UTC); null if no check has run yet
|
|
81684
|
+
*/
|
|
80746
81685
|
lastVerificationCheckAt: (string | null);
|
|
80747
81686
|
}[];
|
|
80748
81687
|
export interface MailDomainUpdateInput {
|
|
80749
81688
|
/**
|
|
80750
|
-
*
|
|
81689
|
+
* Sending domain id
|
|
80751
81690
|
*/
|
|
80752
81691
|
id: string;
|
|
80753
81692
|
/**
|
|
80754
|
-
* TLS policy: opportunistic (default)
|
|
81693
|
+
* TLS policy: opportunistic (default) falls back to plaintext, enforced fails the send instead; omit to leave it unchanged
|
|
80755
81694
|
*/
|
|
80756
81695
|
tls?: ("opportunistic" | "enforced");
|
|
80757
81696
|
/**
|
|
80758
|
-
*
|
|
81697
|
+
* Record opens by injecting a 1x1 pixel (off by default); omit to leave it unchanged
|
|
80759
81698
|
*/
|
|
80760
81699
|
openTracking?: boolean;
|
|
80761
81700
|
/**
|
|
80762
|
-
*
|
|
81701
|
+
* Record clicks by rewriting links through the tracking host (off by default); omit to leave it unchanged
|
|
80763
81702
|
*/
|
|
80764
81703
|
clickTracking?: boolean;
|
|
80765
81704
|
/**
|
|
80766
|
-
* Host
|
|
81705
|
+
* Host to serve the click redirect and open pixel from, or null to clear it; omit to leave it unchanged
|
|
80767
81706
|
*/
|
|
80768
81707
|
trackingSubdomain?: (string | null);
|
|
80769
81708
|
}
|
|
80770
81709
|
export interface MailDomainUpdateOutput {
|
|
81710
|
+
/**
|
|
81711
|
+
* Sending domain id
|
|
81712
|
+
*/
|
|
80771
81713
|
id: string;
|
|
80772
|
-
|
|
81714
|
+
/**
|
|
81715
|
+
* TLS policy for delivery: opportunistic falls back to plaintext if the recipient offers no TLS, enforced fails the send instead
|
|
81716
|
+
*/
|
|
81717
|
+
tls: ("opportunistic" | "enforced");
|
|
81718
|
+
/**
|
|
81719
|
+
* Governed apex this domain sits under; null if it is not governed
|
|
81720
|
+
*/
|
|
80773
81721
|
apex: (string | null);
|
|
80774
|
-
|
|
81722
|
+
/**
|
|
81723
|
+
* Who operates DNS: managed if the platform publishes the records for you, external if you publish them yourself; null if the domain is not governed
|
|
81724
|
+
*/
|
|
81725
|
+
mode: (("external" | "managed") | null);
|
|
81726
|
+
/**
|
|
81727
|
+
* The sending domain itself, e.g. "example.com"
|
|
81728
|
+
*/
|
|
80775
81729
|
name: string;
|
|
81730
|
+
/**
|
|
81731
|
+
* True only when the domain is verified AND its governance binding is active — the condition for sending from it
|
|
81732
|
+
*/
|
|
80776
81733
|
active: boolean;
|
|
81734
|
+
/**
|
|
81735
|
+
* AWS region hosting the SES identity, which fixes data residency; set at create time and immutable
|
|
81736
|
+
*/
|
|
80777
81737
|
region: string;
|
|
80778
|
-
|
|
81738
|
+
/**
|
|
81739
|
+
* SES verification state: not_started before the first check, pending while DNS propagates, verified once sending is allowed, failed or temporary_failure when SES could not verify
|
|
81740
|
+
*/
|
|
81741
|
+
status: ("not_started" | "pending" | "verified" | "failed" | "temporary_failure");
|
|
81742
|
+
/**
|
|
81743
|
+
* DNS records to publish for this domain, each with its last-seen resolution status
|
|
81744
|
+
*/
|
|
80779
81745
|
records: {
|
|
81746
|
+
/**
|
|
81747
|
+
* Fully-qualified host the record is published at
|
|
81748
|
+
*/
|
|
80780
81749
|
name: string;
|
|
80781
|
-
|
|
81750
|
+
/**
|
|
81751
|
+
* DNS record type to publish
|
|
81752
|
+
*/
|
|
81753
|
+
type: ("CNAME" | "TXT" | "MX");
|
|
81754
|
+
/**
|
|
81755
|
+
* Value the record must resolve to
|
|
81756
|
+
*/
|
|
80782
81757
|
value: string;
|
|
80783
|
-
|
|
81758
|
+
/**
|
|
81759
|
+
* What the record is for: dkim signs outgoing mail, spf authorises the sender, return-path-mx routes bounces back, dmarc states the policy
|
|
81760
|
+
*/
|
|
81761
|
+
purpose: ("dkim" | "spf" | "return-path-mx" | "dmarc");
|
|
81762
|
+
/**
|
|
81763
|
+
* MX priority; present only on MX records
|
|
81764
|
+
*/
|
|
80784
81765
|
priority?: number;
|
|
81766
|
+
/**
|
|
81767
|
+
* True if the domain cannot verify without this record; false if it is optional
|
|
81768
|
+
*/
|
|
80785
81769
|
required: boolean;
|
|
81770
|
+
/**
|
|
81771
|
+
* True if the record was found in DNS at the last check; absent when no check has run
|
|
81772
|
+
*/
|
|
80786
81773
|
resolved?: boolean;
|
|
80787
81774
|
}[];
|
|
81775
|
+
/**
|
|
81776
|
+
* When the domain was registered (ISO 8601 UTC)
|
|
81777
|
+
*/
|
|
80788
81778
|
createdAt: string;
|
|
81779
|
+
/**
|
|
81780
|
+
* When the domain record was last changed (ISO 8601 UTC)
|
|
81781
|
+
*/
|
|
80789
81782
|
updatedAt: string;
|
|
81783
|
+
/**
|
|
81784
|
+
* When the domain became verified (ISO 8601 UTC); null while it is not
|
|
81785
|
+
*/
|
|
80790
81786
|
verifiedAt: (string | null);
|
|
81787
|
+
/**
|
|
81788
|
+
* Human-readable steps still outstanding before this domain can send
|
|
81789
|
+
*/
|
|
80791
81790
|
instructions: string[];
|
|
81791
|
+
/**
|
|
81792
|
+
* True if a 1x1 pixel is injected into outgoing mail to record opens
|
|
81793
|
+
*/
|
|
80792
81794
|
openTracking: boolean;
|
|
80793
|
-
|
|
81795
|
+
/**
|
|
81796
|
+
* Governance binding state: pending while it is being granted, active once the domain may be used, failed if it could not be granted
|
|
81797
|
+
*/
|
|
81798
|
+
bindingStatus: ("pending" | "active" | "failed");
|
|
81799
|
+
/**
|
|
81800
|
+
* True if links are rewritten through the tracking host to record clicks
|
|
81801
|
+
*/
|
|
80794
81802
|
clickTracking: boolean;
|
|
81803
|
+
/**
|
|
81804
|
+
* Host used as the bounce (Return-Path) address, so bounces come back to this product
|
|
81805
|
+
*/
|
|
80795
81806
|
customReturnPath: string;
|
|
81807
|
+
/**
|
|
81808
|
+
* Host serving the click redirect and the open pixel; null if tracking is off
|
|
81809
|
+
*/
|
|
80796
81810
|
trackingSubdomain: (string | null);
|
|
81811
|
+
/**
|
|
81812
|
+
* Id of the governance domain this one is registered under; null if it is not governed
|
|
81813
|
+
*/
|
|
80797
81814
|
governanceDomainId: (string | null);
|
|
81815
|
+
/**
|
|
81816
|
+
* Id of the binding between this product and the governance domain; null if unbound
|
|
81817
|
+
*/
|
|
80798
81818
|
governanceBindingId: (string | null);
|
|
81819
|
+
/**
|
|
81820
|
+
* When verification was first requested (ISO 8601 UTC)
|
|
81821
|
+
*/
|
|
80799
81822
|
verificationStartedAt: string;
|
|
81823
|
+
/**
|
|
81824
|
+
* When DNS and SES were last checked (ISO 8601 UTC); null if no check has run yet
|
|
81825
|
+
*/
|
|
80800
81826
|
lastVerificationCheckAt: (string | null);
|
|
80801
81827
|
}
|
|
80802
81828
|
export interface MailDomainVerifyInput {
|
|
80803
81829
|
/**
|
|
80804
|
-
*
|
|
81830
|
+
* Sending domain to re-check against DNS and SES right now, instead of waiting for the next scheduled check
|
|
80805
81831
|
*/
|
|
80806
81832
|
id: string;
|
|
80807
81833
|
}
|
|
80808
81834
|
export interface MailDomainVerifyOutput {
|
|
81835
|
+
/**
|
|
81836
|
+
* Sending domain id
|
|
81837
|
+
*/
|
|
80809
81838
|
id: string;
|
|
80810
|
-
|
|
81839
|
+
/**
|
|
81840
|
+
* TLS policy for delivery: opportunistic falls back to plaintext if the recipient offers no TLS, enforced fails the send instead
|
|
81841
|
+
*/
|
|
81842
|
+
tls: ("opportunistic" | "enforced");
|
|
81843
|
+
/**
|
|
81844
|
+
* Governed apex this domain sits under; null if it is not governed
|
|
81845
|
+
*/
|
|
80811
81846
|
apex: (string | null);
|
|
80812
|
-
|
|
81847
|
+
/**
|
|
81848
|
+
* Who operates DNS: managed if the platform publishes the records for you, external if you publish them yourself; null if the domain is not governed
|
|
81849
|
+
*/
|
|
81850
|
+
mode: (("external" | "managed") | null);
|
|
81851
|
+
/**
|
|
81852
|
+
* The sending domain itself, e.g. "example.com"
|
|
81853
|
+
*/
|
|
80813
81854
|
name: string;
|
|
81855
|
+
/**
|
|
81856
|
+
* True only when the domain is verified AND its governance binding is active — the condition for sending from it
|
|
81857
|
+
*/
|
|
80814
81858
|
active: boolean;
|
|
81859
|
+
/**
|
|
81860
|
+
* AWS region hosting the SES identity, which fixes data residency; set at create time and immutable
|
|
81861
|
+
*/
|
|
80815
81862
|
region: string;
|
|
80816
|
-
|
|
81863
|
+
/**
|
|
81864
|
+
* SES verification state: not_started before the first check, pending while DNS propagates, verified once sending is allowed, failed or temporary_failure when SES could not verify
|
|
81865
|
+
*/
|
|
81866
|
+
status: ("not_started" | "pending" | "verified" | "failed" | "temporary_failure");
|
|
81867
|
+
/**
|
|
81868
|
+
* DNS records to publish for this domain, each with its last-seen resolution status
|
|
81869
|
+
*/
|
|
80817
81870
|
records: {
|
|
81871
|
+
/**
|
|
81872
|
+
* Fully-qualified host the record is published at
|
|
81873
|
+
*/
|
|
80818
81874
|
name: string;
|
|
80819
|
-
|
|
81875
|
+
/**
|
|
81876
|
+
* DNS record type to publish
|
|
81877
|
+
*/
|
|
81878
|
+
type: ("CNAME" | "TXT" | "MX");
|
|
81879
|
+
/**
|
|
81880
|
+
* Value the record must resolve to
|
|
81881
|
+
*/
|
|
80820
81882
|
value: string;
|
|
80821
|
-
|
|
81883
|
+
/**
|
|
81884
|
+
* What the record is for: dkim signs outgoing mail, spf authorises the sender, return-path-mx routes bounces back, dmarc states the policy
|
|
81885
|
+
*/
|
|
81886
|
+
purpose: ("dkim" | "spf" | "return-path-mx" | "dmarc");
|
|
81887
|
+
/**
|
|
81888
|
+
* MX priority; present only on MX records
|
|
81889
|
+
*/
|
|
80822
81890
|
priority?: number;
|
|
81891
|
+
/**
|
|
81892
|
+
* True if the domain cannot verify without this record; false if it is optional
|
|
81893
|
+
*/
|
|
80823
81894
|
required: boolean;
|
|
81895
|
+
/**
|
|
81896
|
+
* True if the record was found in DNS at the last check; absent when no check has run
|
|
81897
|
+
*/
|
|
80824
81898
|
resolved?: boolean;
|
|
80825
81899
|
}[];
|
|
81900
|
+
/**
|
|
81901
|
+
* When the domain was registered (ISO 8601 UTC)
|
|
81902
|
+
*/
|
|
80826
81903
|
createdAt: string;
|
|
81904
|
+
/**
|
|
81905
|
+
* When the domain record was last changed (ISO 8601 UTC)
|
|
81906
|
+
*/
|
|
80827
81907
|
updatedAt: string;
|
|
81908
|
+
/**
|
|
81909
|
+
* When the domain became verified (ISO 8601 UTC); null while it is not
|
|
81910
|
+
*/
|
|
80828
81911
|
verifiedAt: (string | null);
|
|
81912
|
+
/**
|
|
81913
|
+
* Human-readable steps still outstanding before this domain can send
|
|
81914
|
+
*/
|
|
80829
81915
|
instructions: string[];
|
|
81916
|
+
/**
|
|
81917
|
+
* True if a 1x1 pixel is injected into outgoing mail to record opens
|
|
81918
|
+
*/
|
|
80830
81919
|
openTracking: boolean;
|
|
80831
|
-
|
|
81920
|
+
/**
|
|
81921
|
+
* Governance binding state: pending while it is being granted, active once the domain may be used, failed if it could not be granted
|
|
81922
|
+
*/
|
|
81923
|
+
bindingStatus: ("pending" | "active" | "failed");
|
|
81924
|
+
/**
|
|
81925
|
+
* True if links are rewritten through the tracking host to record clicks
|
|
81926
|
+
*/
|
|
80832
81927
|
clickTracking: boolean;
|
|
81928
|
+
/**
|
|
81929
|
+
* Host used as the bounce (Return-Path) address, so bounces come back to this product
|
|
81930
|
+
*/
|
|
80833
81931
|
customReturnPath: string;
|
|
81932
|
+
/**
|
|
81933
|
+
* Host serving the click redirect and the open pixel; null if tracking is off
|
|
81934
|
+
*/
|
|
80834
81935
|
trackingSubdomain: (string | null);
|
|
81936
|
+
/**
|
|
81937
|
+
* Id of the governance domain this one is registered under; null if it is not governed
|
|
81938
|
+
*/
|
|
80835
81939
|
governanceDomainId: (string | null);
|
|
81940
|
+
/**
|
|
81941
|
+
* Id of the binding between this product and the governance domain; null if unbound
|
|
81942
|
+
*/
|
|
80836
81943
|
governanceBindingId: (string | null);
|
|
81944
|
+
/**
|
|
81945
|
+
* When verification was first requested (ISO 8601 UTC)
|
|
81946
|
+
*/
|
|
80837
81947
|
verificationStartedAt: string;
|
|
81948
|
+
/**
|
|
81949
|
+
* When DNS and SES were last checked (ISO 8601 UTC); null if no check has run yet
|
|
81950
|
+
*/
|
|
80838
81951
|
lastVerificationCheckAt: (string | null);
|
|
80839
81952
|
}
|
|
80840
81953
|
export interface MailEmailCancelInput {
|
|
80841
81954
|
/**
|
|
80842
|
-
* Email id
|
|
81955
|
+
* Email id — as returned by mail_email_send
|
|
80843
81956
|
*/
|
|
80844
81957
|
id: string;
|
|
80845
81958
|
}
|
|
80846
81959
|
export interface MailEmailCancelOutput {
|
|
81960
|
+
/**
|
|
81961
|
+
* Id of the canceled email
|
|
81962
|
+
*/
|
|
80847
81963
|
id: string;
|
|
81964
|
+
/**
|
|
81965
|
+
* The email’s state after the call — always "canceled"
|
|
81966
|
+
*/
|
|
80848
81967
|
status: "canceled";
|
|
80849
81968
|
}
|
|
80850
81969
|
export interface MailEmailGetInput {
|
|
80851
81970
|
/**
|
|
80852
|
-
* Email id
|
|
81971
|
+
* Email id — as returned by mail_email_send
|
|
80853
81972
|
*/
|
|
80854
81973
|
id: string;
|
|
80855
81974
|
}
|
|
80856
81975
|
export interface MailEmailGetOutput {
|
|
81976
|
+
/**
|
|
81977
|
+
* Cc recipients; empty when there were none
|
|
81978
|
+
*/
|
|
80857
81979
|
cc: string[];
|
|
81980
|
+
/**
|
|
81981
|
+
* Email id
|
|
81982
|
+
*/
|
|
80858
81983
|
id: string;
|
|
81984
|
+
/**
|
|
81985
|
+
* Primary recipients
|
|
81986
|
+
*/
|
|
80859
81987
|
to: string[];
|
|
81988
|
+
/**
|
|
81989
|
+
* Bcc recipients; empty when there were none. Never appeared in the message headers.
|
|
81990
|
+
*/
|
|
80860
81991
|
bcc: string[];
|
|
81992
|
+
/**
|
|
81993
|
+
* Sender the message was sent as
|
|
81994
|
+
*/
|
|
80861
81995
|
from: string;
|
|
81996
|
+
/**
|
|
81997
|
+
* Where the email stands: scheduled, queued, sent, failed, canceled, delivered, bounced, complained, suppressed or blocked
|
|
81998
|
+
*/
|
|
80862
81999
|
status: ("scheduled" | "queued" | "sent" | "failed" | "canceled" | "delivered" | "bounced" | "complained" | "suppressed" | "blocked");
|
|
82000
|
+
/**
|
|
82001
|
+
* Subject line as sent, after any template rendering
|
|
82002
|
+
*/
|
|
80863
82003
|
subject: string;
|
|
82004
|
+
/**
|
|
82005
|
+
* ISO-8601 instant the email was accepted
|
|
82006
|
+
*/
|
|
80864
82007
|
created_at: string;
|
|
82008
|
+
/**
|
|
82009
|
+
* The latest lifecycle event, the reason `status` reads as it does
|
|
82010
|
+
*/
|
|
80865
82011
|
last_event: {
|
|
82012
|
+
/**
|
|
82013
|
+
* The most recent lifecycle event — `email.` followed by the status it moved to
|
|
82014
|
+
*/
|
|
80866
82015
|
type: ("email.scheduled" | "email.queued" | "email.sent" | "email.failed" | "email.canceled" | "email.delivered" | "email.bounced" | "email.complained" | "email.suppressed" | "email.blocked");
|
|
82016
|
+
/**
|
|
82017
|
+
* ISO-8601 instant of that event; null when no event has been recorded yet
|
|
82018
|
+
*/
|
|
80867
82019
|
created_at: (string | null);
|
|
80868
82020
|
};
|
|
82021
|
+
/**
|
|
82022
|
+
* Template the email was rendered from; null for an inline send
|
|
82023
|
+
*/
|
|
80869
82024
|
template_id: (string | null);
|
|
82025
|
+
/**
|
|
82026
|
+
* ISO-8601 instant the email is scheduled for; null when it was sent immediately
|
|
82027
|
+
*/
|
|
80870
82028
|
scheduled_at: (string | null);
|
|
82029
|
+
/**
|
|
82030
|
+
* Name of that template; null for an inline send
|
|
82031
|
+
*/
|
|
80871
82032
|
template_name: (string | null);
|
|
82033
|
+
/**
|
|
82034
|
+
* The sending provider’s own id, for correlating with its logs; null until the email leaves
|
|
82035
|
+
*/
|
|
80872
82036
|
provider_message_id: (string | null);
|
|
80873
82037
|
}
|
|
80874
82038
|
export interface MailEmailSendInput {
|
|
@@ -80885,38 +82049,41 @@ export interface MailEmailSendInput {
|
|
|
80885
82049
|
*/
|
|
80886
82050
|
bcc?: (string | string[]);
|
|
80887
82051
|
/**
|
|
80888
|
-
* Sender, e.g. "Name <you@your-domain.com>"
|
|
82052
|
+
* Sender on a verified domain, e.g. "Name <you@your-domain.com>"
|
|
80889
82053
|
*/
|
|
80890
82054
|
from: string;
|
|
80891
82055
|
/**
|
|
80892
|
-
* HTML body
|
|
82056
|
+
* HTML body. Inline sends only — forbidden with a template.
|
|
80893
82057
|
*/
|
|
80894
82058
|
html?: string;
|
|
80895
82059
|
/**
|
|
80896
|
-
* Metadata tags
|
|
82060
|
+
* Metadata tags attached to the message as `X-Tag-<name>` headers
|
|
80897
82061
|
*/
|
|
80898
82062
|
tags?: {
|
|
80899
82063
|
/**
|
|
80900
|
-
* Tag name
|
|
82064
|
+
* Tag name — printable US-ASCII without a colon; becomes the `X-Tag-<name>` header
|
|
80901
82065
|
*/
|
|
80902
82066
|
name: string;
|
|
80903
82067
|
/**
|
|
80904
|
-
* Tag value
|
|
82068
|
+
* Tag value; must not contain CR or LF
|
|
80905
82069
|
*/
|
|
80906
82070
|
value: string;
|
|
80907
82071
|
}[];
|
|
80908
82072
|
/**
|
|
80909
|
-
* Plain-text body; auto-derived from html if omitted
|
|
82073
|
+
* Plain-text body; auto-derived from html if omitted. Inline sends only.
|
|
80910
82074
|
*/
|
|
80911
82075
|
text?: string;
|
|
80912
82076
|
/**
|
|
80913
|
-
* Custom headers
|
|
82077
|
+
* Custom MIME headers, keyed by header name
|
|
80914
82078
|
*/
|
|
80915
82079
|
headers?: {
|
|
82080
|
+
/**
|
|
82081
|
+
* Header value; must not contain CR or LF
|
|
82082
|
+
*/
|
|
80916
82083
|
[k: string]: string;
|
|
80917
82084
|
};
|
|
80918
82085
|
/**
|
|
80919
|
-
*
|
|
82086
|
+
* Subject line, capped at the RFC-5322 line limit. Required for inline sends, forbidden with a template.
|
|
80920
82087
|
*/
|
|
80921
82088
|
subject?: string;
|
|
80922
82089
|
/**
|
|
@@ -80932,23 +82099,26 @@ export interface MailEmailSendInput {
|
|
|
80932
82099
|
*/
|
|
80933
82100
|
id: string;
|
|
80934
82101
|
/**
|
|
80935
|
-
* Values for the template variables
|
|
82102
|
+
* Values for the template variables. Defaults to {}.
|
|
80936
82103
|
*/
|
|
80937
82104
|
variables?: {
|
|
80938
82105
|
[k: string]: (string | number | boolean);
|
|
80939
82106
|
};
|
|
80940
82107
|
};
|
|
80941
82108
|
/**
|
|
80942
|
-
* ISO-8601 instant to send at; future
|
|
82109
|
+
* ISO-8601 instant to send at; must be in the future and within 30 days. Omit to send now.
|
|
80943
82110
|
*/
|
|
80944
82111
|
scheduled_at?: string;
|
|
80945
82112
|
}
|
|
80946
82113
|
export interface MailEmailSendOutput {
|
|
82114
|
+
/**
|
|
82115
|
+
* Id of the accepted email — pass it to mail_email_get to follow delivery
|
|
82116
|
+
*/
|
|
80947
82117
|
id: string;
|
|
80948
82118
|
}
|
|
80949
82119
|
export interface MailEmailSendBatchInput {
|
|
80950
82120
|
/**
|
|
80951
|
-
* Up to 100 emails to send
|
|
82121
|
+
* Up to 100 emails to send; `scheduled_at` is not allowed on a batch item
|
|
80952
82122
|
*/
|
|
80953
82123
|
emails: {
|
|
80954
82124
|
/**
|
|
@@ -80964,38 +82134,41 @@ export interface MailEmailSendBatchInput {
|
|
|
80964
82134
|
*/
|
|
80965
82135
|
bcc?: (string | string[]);
|
|
80966
82136
|
/**
|
|
80967
|
-
* Sender, e.g. "Name <you@your-domain.com>"
|
|
82137
|
+
* Sender on a verified domain, e.g. "Name <you@your-domain.com>"
|
|
80968
82138
|
*/
|
|
80969
82139
|
from: string;
|
|
80970
82140
|
/**
|
|
80971
|
-
* HTML body
|
|
82141
|
+
* HTML body. Inline sends only — forbidden with a template.
|
|
80972
82142
|
*/
|
|
80973
82143
|
html?: string;
|
|
80974
82144
|
/**
|
|
80975
|
-
* Metadata tags
|
|
82145
|
+
* Metadata tags attached to the message as `X-Tag-<name>` headers
|
|
80976
82146
|
*/
|
|
80977
82147
|
tags?: {
|
|
80978
82148
|
/**
|
|
80979
|
-
* Tag name
|
|
82149
|
+
* Tag name — printable US-ASCII without a colon; becomes the `X-Tag-<name>` header
|
|
80980
82150
|
*/
|
|
80981
82151
|
name: string;
|
|
80982
82152
|
/**
|
|
80983
|
-
* Tag value
|
|
82153
|
+
* Tag value; must not contain CR or LF
|
|
80984
82154
|
*/
|
|
80985
82155
|
value: string;
|
|
80986
82156
|
}[];
|
|
80987
82157
|
/**
|
|
80988
|
-
* Plain-text body; auto-derived from html if omitted
|
|
82158
|
+
* Plain-text body; auto-derived from html if omitted. Inline sends only.
|
|
80989
82159
|
*/
|
|
80990
82160
|
text?: string;
|
|
80991
82161
|
/**
|
|
80992
|
-
* Custom headers
|
|
82162
|
+
* Custom MIME headers, keyed by header name
|
|
80993
82163
|
*/
|
|
80994
82164
|
headers?: {
|
|
82165
|
+
/**
|
|
82166
|
+
* Header value; must not contain CR or LF
|
|
82167
|
+
*/
|
|
80995
82168
|
[k: string]: string;
|
|
80996
82169
|
};
|
|
80997
82170
|
/**
|
|
80998
|
-
*
|
|
82171
|
+
* Subject line, capped at the RFC-5322 line limit. Required for inline sends, forbidden with a template.
|
|
80999
82172
|
*/
|
|
81000
82173
|
subject?: string;
|
|
81001
82174
|
/**
|
|
@@ -81011,139 +82184,304 @@ export interface MailEmailSendBatchInput {
|
|
|
81011
82184
|
*/
|
|
81012
82185
|
id: string;
|
|
81013
82186
|
/**
|
|
81014
|
-
* Values for the template variables
|
|
82187
|
+
* Values for the template variables. Defaults to {}.
|
|
81015
82188
|
*/
|
|
81016
82189
|
variables?: {
|
|
81017
82190
|
[k: string]: (string | number | boolean);
|
|
81018
82191
|
};
|
|
81019
82192
|
};
|
|
81020
82193
|
/**
|
|
81021
|
-
* ISO-8601 instant to send at; future
|
|
82194
|
+
* ISO-8601 instant to send at; must be in the future and within 30 days. Omit to send now.
|
|
81022
82195
|
*/
|
|
81023
82196
|
scheduled_at?: string;
|
|
81024
82197
|
}[];
|
|
81025
82198
|
}
|
|
82199
|
+
/**
|
|
82200
|
+
* One entry per submitted email, in the order they were submitted
|
|
82201
|
+
*/
|
|
81026
82202
|
export type MailEmailSendBatchOutput = {
|
|
82203
|
+
/**
|
|
82204
|
+
* Id of the accepted email
|
|
82205
|
+
*/
|
|
81027
82206
|
id: string;
|
|
81028
82207
|
}[];
|
|
81029
82208
|
export interface MailEmailUpdateInput {
|
|
81030
82209
|
/**
|
|
81031
|
-
* Email id
|
|
82210
|
+
* Email id — as returned by mail_email_send
|
|
81032
82211
|
*/
|
|
81033
82212
|
id: string;
|
|
81034
82213
|
/**
|
|
81035
|
-
* New ISO-8601 instant; future
|
|
82214
|
+
* New ISO-8601 instant to send at; must be in the future and within 30 days
|
|
81036
82215
|
*/
|
|
81037
82216
|
scheduled_at: string;
|
|
81038
82217
|
}
|
|
81039
82218
|
export interface MailEmailUpdateOutput {
|
|
82219
|
+
/**
|
|
82220
|
+
* Id of the accepted email — pass it to mail_email_get to follow delivery
|
|
82221
|
+
*/
|
|
81040
82222
|
id: string;
|
|
81041
82223
|
}
|
|
81042
82224
|
export interface MailReputationGetInput {
|
|
81043
82225
|
}
|
|
81044
82226
|
export interface MailReputationGetOutput {
|
|
82227
|
+
/**
|
|
82228
|
+
* True when sending is currently throttled because a rate crossed its threshold
|
|
82229
|
+
*/
|
|
81045
82230
|
gated: boolean;
|
|
82231
|
+
/**
|
|
82232
|
+
* Emails sent in the window — the denominator of both rates
|
|
82233
|
+
*/
|
|
81046
82234
|
volume: number;
|
|
82235
|
+
/**
|
|
82236
|
+
* Spam complaints in the window
|
|
82237
|
+
*/
|
|
81047
82238
|
complaints: number;
|
|
82239
|
+
/**
|
|
82240
|
+
* The configured limits the rates above are compared against
|
|
82241
|
+
*/
|
|
81048
82242
|
thresholds: {
|
|
82243
|
+
/**
|
|
82244
|
+
* Emails needed in the window before either rate is acted on — below it the sample is too small to judge
|
|
82245
|
+
*/
|
|
81049
82246
|
min_volume: number;
|
|
82247
|
+
/**
|
|
82248
|
+
* Ratio 0-1 at or above which sending is gated
|
|
82249
|
+
*/
|
|
81050
82250
|
complaint_rate: number;
|
|
82251
|
+
/**
|
|
82252
|
+
* Ratio 0-1 at or above which sending is gated
|
|
82253
|
+
*/
|
|
81051
82254
|
hard_bounce_rate: number;
|
|
81052
82255
|
};
|
|
82256
|
+
/**
|
|
82257
|
+
* Length in days of the rolling window the rates below are measured over
|
|
82258
|
+
*/
|
|
81053
82259
|
window_days: number;
|
|
82260
|
+
/**
|
|
82261
|
+
* Hard bounces in the window
|
|
82262
|
+
*/
|
|
81054
82263
|
hard_bounces: number;
|
|
82264
|
+
/**
|
|
82265
|
+
* Complaints divided by volume, as a ratio 0-1 (0.001 = 0.1%)
|
|
82266
|
+
*/
|
|
81055
82267
|
complaint_rate: number;
|
|
81056
|
-
|
|
82268
|
+
/**
|
|
82269
|
+
* Which rate crossed its threshold, or null when nothing did
|
|
82270
|
+
*/
|
|
82271
|
+
tripped_metric: (("hard_bounce" | "complaint") | null);
|
|
82272
|
+
/**
|
|
82273
|
+
* Hard bounces divided by volume, as a ratio 0-1 (0.05 = 5%)
|
|
82274
|
+
*/
|
|
81057
82275
|
hard_bounce_rate: number;
|
|
81058
82276
|
}
|
|
81059
82277
|
export interface MailStatsGetInput {
|
|
82278
|
+
/**
|
|
82279
|
+
* Rolling window the aggregation covers, ending now. Defaults to 30d.
|
|
82280
|
+
*/
|
|
81060
82281
|
period?: ("7d" | "30d" | "90d");
|
|
81061
82282
|
}
|
|
81062
82283
|
export interface MailStatsGetOutput {
|
|
82284
|
+
/**
|
|
82285
|
+
* The absolute instants the period resolved to
|
|
82286
|
+
*/
|
|
81063
82287
|
range: {
|
|
82288
|
+
/**
|
|
82289
|
+
* Exclusive end of the window (ISO-8601 instant, UTC)
|
|
82290
|
+
*/
|
|
81064
82291
|
to: string;
|
|
82292
|
+
/**
|
|
82293
|
+
* Inclusive start of the window (ISO-8601 instant, UTC)
|
|
82294
|
+
*/
|
|
81065
82295
|
from: string;
|
|
81066
82296
|
};
|
|
82297
|
+
/**
|
|
82298
|
+
* Percent change of each total against the immediately preceding window of the same length
|
|
82299
|
+
*/
|
|
81067
82300
|
deltas: {
|
|
82301
|
+
/**
|
|
82302
|
+
* Change in sent against the previous window of the same length, in percent (-100 = halved to nothing, 25 = a quarter more); null when the previous window was empty
|
|
82303
|
+
*/
|
|
81068
82304
|
sent: (number | null);
|
|
82305
|
+
/**
|
|
82306
|
+
* Change in bounced against the previous window, in percent; null when the previous window was empty
|
|
82307
|
+
*/
|
|
81069
82308
|
bounced: (number | null);
|
|
82309
|
+
/**
|
|
82310
|
+
* Change in delivered against the previous window, in percent; null when the previous window was empty
|
|
82311
|
+
*/
|
|
81070
82312
|
delivered: (number | null);
|
|
82313
|
+
/**
|
|
82314
|
+
* Change in complained against the previous window, in percent; null when the previous window was empty
|
|
82315
|
+
*/
|
|
81071
82316
|
complained: (number | null);
|
|
81072
82317
|
};
|
|
81073
|
-
|
|
82318
|
+
/**
|
|
82319
|
+
* The window these numbers cover — the echo of the requested period
|
|
82320
|
+
*/
|
|
82321
|
+
period: ("7d" | "30d" | "90d");
|
|
82322
|
+
/**
|
|
82323
|
+
* Counts over the window
|
|
82324
|
+
*/
|
|
81074
82325
|
totals: {
|
|
82326
|
+
/**
|
|
82327
|
+
* Emails accepted for delivery in the window
|
|
82328
|
+
*/
|
|
81075
82329
|
sent: number;
|
|
82330
|
+
/**
|
|
82331
|
+
* Emails that bounced, hard or soft
|
|
82332
|
+
*/
|
|
81076
82333
|
bounced: number;
|
|
82334
|
+
/**
|
|
82335
|
+
* Emails the receiving server accepted
|
|
82336
|
+
*/
|
|
81077
82337
|
delivered: number;
|
|
82338
|
+
/**
|
|
82339
|
+
* Emails a recipient marked as spam
|
|
82340
|
+
*/
|
|
81078
82341
|
complained: number;
|
|
81079
82342
|
};
|
|
82343
|
+
/**
|
|
82344
|
+
* One bucket per UTC day in the window, oldest first
|
|
82345
|
+
*/
|
|
81080
82346
|
volume: {
|
|
82347
|
+
/**
|
|
82348
|
+
* The UTC day this bucket covers, as YYYY-MM-DD
|
|
82349
|
+
*/
|
|
81081
82350
|
date: string;
|
|
82351
|
+
/**
|
|
82352
|
+
* Emails accepted for delivery on this day
|
|
82353
|
+
*/
|
|
81082
82354
|
sent: number;
|
|
82355
|
+
/**
|
|
82356
|
+
* Emails bounced on this day
|
|
82357
|
+
*/
|
|
81083
82358
|
bounced: number;
|
|
82359
|
+
/**
|
|
82360
|
+
* Emails delivered on this day
|
|
82361
|
+
*/
|
|
81084
82362
|
delivered: number;
|
|
81085
82363
|
}[];
|
|
82364
|
+
/**
|
|
82365
|
+
* The three rates senders are judged on, as percentages of sent
|
|
82366
|
+
*/
|
|
81086
82367
|
deliverability: {
|
|
82368
|
+
/**
|
|
82369
|
+
* Bounced as a percentage of sent (0-100)
|
|
82370
|
+
*/
|
|
81087
82371
|
bouncedPct: number;
|
|
82372
|
+
/**
|
|
82373
|
+
* Delivered as a percentage of sent (0-100)
|
|
82374
|
+
*/
|
|
81088
82375
|
deliveredPct: number;
|
|
82376
|
+
/**
|
|
82377
|
+
* Complaints as a percentage of sent (0-100)
|
|
82378
|
+
*/
|
|
81089
82379
|
complainedPct: number;
|
|
81090
82380
|
};
|
|
81091
82381
|
}
|
|
81092
82382
|
export interface MailSuppressionAddInput {
|
|
81093
82383
|
/**
|
|
81094
|
-
* Optional free-text note
|
|
82384
|
+
* Optional free-text note explaining why the address was suppressed
|
|
81095
82385
|
*/
|
|
81096
82386
|
note?: string;
|
|
81097
82387
|
/**
|
|
81098
|
-
* Email address to suppress
|
|
82388
|
+
* Email address to suppress, e.g. "user@example.com"; matched case-insensitively
|
|
81099
82389
|
*/
|
|
81100
82390
|
address: string;
|
|
81101
82391
|
}
|
|
81102
82392
|
export interface MailSuppressionAddOutput {
|
|
82393
|
+
/**
|
|
82394
|
+
* Suppression entry id
|
|
82395
|
+
*/
|
|
81103
82396
|
id: string;
|
|
82397
|
+
/**
|
|
82398
|
+
* Free-text note recorded when the entry was added by hand; null otherwise
|
|
82399
|
+
*/
|
|
81104
82400
|
note: (string | null);
|
|
81105
|
-
|
|
82401
|
+
/**
|
|
82402
|
+
* Why the address is suppressed: hard_bounce and complaint come from SES feedback, unsubscribe from the recipient, manual from mail_suppression_add
|
|
82403
|
+
*/
|
|
82404
|
+
reason: ("hard_bounce" | "complaint" | "manual" | "unsubscribe");
|
|
82405
|
+
/**
|
|
82406
|
+
* The suppressed recipient address, lowercased and trimmed
|
|
82407
|
+
*/
|
|
81106
82408
|
address: string;
|
|
82409
|
+
/**
|
|
82410
|
+
* When the address was suppressed (ISO 8601 UTC)
|
|
82411
|
+
*/
|
|
81107
82412
|
created_at: string;
|
|
82413
|
+
/**
|
|
82414
|
+
* Id of the email event that caused the suppression; null for a manual entry
|
|
82415
|
+
*/
|
|
81108
82416
|
source_event_id: (string | null);
|
|
81109
82417
|
}
|
|
81110
82418
|
export interface MailSuppressionListInput {
|
|
81111
82419
|
/**
|
|
81112
|
-
* Case-insensitive substring match on address
|
|
82420
|
+
* Case-insensitive substring match on the address; omit for no address filter
|
|
81113
82421
|
*/
|
|
81114
82422
|
q?: string;
|
|
81115
82423
|
/**
|
|
81116
|
-
* Max
|
|
82424
|
+
* Max entries per page, 1-100 (default 50)
|
|
81117
82425
|
*/
|
|
81118
82426
|
limit?: number;
|
|
81119
82427
|
/**
|
|
81120
|
-
* Opaque pagination cursor from a prior page
|
|
82428
|
+
* Opaque pagination cursor from a prior page's next_cursor; omit for the first page
|
|
81121
82429
|
*/
|
|
81122
82430
|
cursor?: string;
|
|
81123
82431
|
/**
|
|
81124
|
-
*
|
|
82432
|
+
* Only return entries suppressed for this reason; omit for every reason
|
|
81125
82433
|
*/
|
|
81126
82434
|
reason?: ("hard_bounce" | "complaint" | "manual" | "unsubscribe");
|
|
81127
82435
|
}
|
|
81128
82436
|
export interface MailSuppressionListOutput {
|
|
82437
|
+
/**
|
|
82438
|
+
* This page of suppression entries, newest first
|
|
82439
|
+
*/
|
|
81129
82440
|
items: {
|
|
82441
|
+
/**
|
|
82442
|
+
* Suppression entry id
|
|
82443
|
+
*/
|
|
81130
82444
|
id: string;
|
|
82445
|
+
/**
|
|
82446
|
+
* Free-text note recorded when the entry was added by hand; null otherwise
|
|
82447
|
+
*/
|
|
81131
82448
|
note: (string | null);
|
|
81132
|
-
|
|
82449
|
+
/**
|
|
82450
|
+
* Why the address is suppressed: hard_bounce and complaint come from SES feedback, unsubscribe from the recipient, manual from mail_suppression_add
|
|
82451
|
+
*/
|
|
82452
|
+
reason: ("hard_bounce" | "complaint" | "manual" | "unsubscribe");
|
|
82453
|
+
/**
|
|
82454
|
+
* The suppressed recipient address, lowercased and trimmed
|
|
82455
|
+
*/
|
|
81133
82456
|
address: string;
|
|
82457
|
+
/**
|
|
82458
|
+
* When the address was suppressed (ISO 8601 UTC)
|
|
82459
|
+
*/
|
|
81134
82460
|
created_at: string;
|
|
82461
|
+
/**
|
|
82462
|
+
* Id of the email event that caused the suppression; null for a manual entry
|
|
82463
|
+
*/
|
|
81135
82464
|
source_event_id: (string | null);
|
|
81136
82465
|
}[];
|
|
82466
|
+
/**
|
|
82467
|
+
* Opaque cursor to pass back as `cursor` for the next page; null on the last page
|
|
82468
|
+
*/
|
|
81137
82469
|
next_cursor: (string | null);
|
|
81138
82470
|
}
|
|
81139
82471
|
export interface MailSuppressionRemoveInput {
|
|
81140
82472
|
/**
|
|
81141
|
-
* Email address to remove from the suppression list
|
|
82473
|
+
* Email address to remove from the suppression list; matched case-insensitively
|
|
81142
82474
|
*/
|
|
81143
82475
|
address: string;
|
|
81144
82476
|
}
|
|
81145
82477
|
export interface MailSuppressionRemoveOutput {
|
|
82478
|
+
/**
|
|
82479
|
+
* The address the removal was attempted for, as normalized
|
|
82480
|
+
*/
|
|
81146
82481
|
address: string;
|
|
82482
|
+
/**
|
|
82483
|
+
* True if an entry was removed; false if the address was not suppressed (the call is idempotent)
|
|
82484
|
+
*/
|
|
81147
82485
|
removed: boolean;
|
|
81148
82486
|
}
|
|
81149
82487
|
export interface MailTemplateCreateInput {
|
|
@@ -84971,18 +86309,57 @@ export interface MailTemplateCreateInput {
|
|
|
84971
86309
|
];
|
|
84972
86310
|
}
|
|
84973
86311
|
export interface MailTemplateCreateOutput {
|
|
86312
|
+
/**
|
|
86313
|
+
* Template id
|
|
86314
|
+
*/
|
|
84974
86315
|
id: string;
|
|
86316
|
+
/**
|
|
86317
|
+
* HTML body; may contain {{ variable }} placeholders
|
|
86318
|
+
*/
|
|
84975
86319
|
html: string;
|
|
86320
|
+
/**
|
|
86321
|
+
* Human label for the template
|
|
86322
|
+
*/
|
|
84976
86323
|
name: string;
|
|
86324
|
+
/**
|
|
86325
|
+
* Plaintext body; null when none was supplied
|
|
86326
|
+
*/
|
|
84977
86327
|
text: (string | null);
|
|
84978
|
-
|
|
86328
|
+
/**
|
|
86329
|
+
* Lifecycle status: a draft is editable, a published template is not
|
|
86330
|
+
*/
|
|
86331
|
+
status: ("draft" | "published");
|
|
86332
|
+
/**
|
|
86333
|
+
* Email subject; may contain {{ variable }} placeholders
|
|
86334
|
+
*/
|
|
84979
86335
|
subject: string;
|
|
86336
|
+
/**
|
|
86337
|
+
* When the template was created (ISO 8601 UTC)
|
|
86338
|
+
*/
|
|
84980
86339
|
createdAt: string;
|
|
86340
|
+
/**
|
|
86341
|
+
* When the template was last modified (ISO 8601 UTC)
|
|
86342
|
+
*/
|
|
84981
86343
|
updatedAt: string;
|
|
86344
|
+
/**
|
|
86345
|
+
* Declared variables of this template (at most 20)
|
|
86346
|
+
*/
|
|
84982
86347
|
variables: {
|
|
86348
|
+
/**
|
|
86349
|
+
* Placeholder identifier used as {{ name }}
|
|
86350
|
+
*/
|
|
84983
86351
|
name: string;
|
|
84984
|
-
|
|
86352
|
+
/**
|
|
86353
|
+
* Declared type (metadata; rendered as string in v1)
|
|
86354
|
+
*/
|
|
86355
|
+
type: ("string" | "number" | "boolean");
|
|
86356
|
+
/**
|
|
86357
|
+
* Value used when none is supplied
|
|
86358
|
+
*/
|
|
84985
86359
|
fallback?: string;
|
|
86360
|
+
/**
|
|
86361
|
+
* If true, an absent value renders as empty string
|
|
86362
|
+
*/
|
|
84986
86363
|
optional: boolean;
|
|
84987
86364
|
}[];
|
|
84988
86365
|
}
|
|
@@ -84993,6 +86370,9 @@ export interface MailTemplateDeleteInput {
|
|
|
84993
86370
|
id: string;
|
|
84994
86371
|
}
|
|
84995
86372
|
export interface MailTemplateDeleteOutput {
|
|
86373
|
+
/**
|
|
86374
|
+
* True once the template is gone
|
|
86375
|
+
*/
|
|
84996
86376
|
deleted: boolean;
|
|
84997
86377
|
}
|
|
84998
86378
|
export interface MailTemplateGetInput {
|
|
@@ -85002,40 +86382,127 @@ export interface MailTemplateGetInput {
|
|
|
85002
86382
|
id: string;
|
|
85003
86383
|
}
|
|
85004
86384
|
export interface MailTemplateGetOutput {
|
|
86385
|
+
/**
|
|
86386
|
+
* Template id
|
|
86387
|
+
*/
|
|
85005
86388
|
id: string;
|
|
86389
|
+
/**
|
|
86390
|
+
* HTML body; may contain {{ variable }} placeholders
|
|
86391
|
+
*/
|
|
85006
86392
|
html: string;
|
|
86393
|
+
/**
|
|
86394
|
+
* Human label for the template
|
|
86395
|
+
*/
|
|
85007
86396
|
name: string;
|
|
86397
|
+
/**
|
|
86398
|
+
* Plaintext body; null when none was supplied
|
|
86399
|
+
*/
|
|
85008
86400
|
text: (string | null);
|
|
86401
|
+
/**
|
|
86402
|
+
* Send-usage rollup for this template
|
|
86403
|
+
*/
|
|
85009
86404
|
usage: {
|
|
86405
|
+
/**
|
|
86406
|
+
* How many emails were sent from this template
|
|
86407
|
+
*/
|
|
85010
86408
|
email_count: number;
|
|
86409
|
+
/**
|
|
86410
|
+
* When the template was last sent from (ISO 8601 UTC); null if never
|
|
86411
|
+
*/
|
|
85011
86412
|
last_sent_at: (string | null);
|
|
85012
86413
|
};
|
|
85013
|
-
|
|
86414
|
+
/**
|
|
86415
|
+
* Lifecycle status: a draft is editable, a published template is not
|
|
86416
|
+
*/
|
|
86417
|
+
status: ("draft" | "published");
|
|
86418
|
+
/**
|
|
86419
|
+
* Email subject; may contain {{ variable }} placeholders
|
|
86420
|
+
*/
|
|
85014
86421
|
subject: string;
|
|
86422
|
+
/**
|
|
86423
|
+
* When the template was created (ISO 8601 UTC)
|
|
86424
|
+
*/
|
|
85015
86425
|
createdAt: string;
|
|
86426
|
+
/**
|
|
86427
|
+
* When the template was last modified (ISO 8601 UTC)
|
|
86428
|
+
*/
|
|
85016
86429
|
updatedAt: string;
|
|
86430
|
+
/**
|
|
86431
|
+
* Declared variables of this template (at most 20)
|
|
86432
|
+
*/
|
|
85017
86433
|
variables: {
|
|
86434
|
+
/**
|
|
86435
|
+
* Placeholder identifier used as {{ name }}
|
|
86436
|
+
*/
|
|
85018
86437
|
name: string;
|
|
85019
|
-
|
|
86438
|
+
/**
|
|
86439
|
+
* Declared type (metadata; rendered as string in v1)
|
|
86440
|
+
*/
|
|
86441
|
+
type: ("string" | "number" | "boolean");
|
|
86442
|
+
/**
|
|
86443
|
+
* Value used when none is supplied
|
|
86444
|
+
*/
|
|
85020
86445
|
fallback?: string;
|
|
86446
|
+
/**
|
|
86447
|
+
* If true, an absent value renders as empty string
|
|
86448
|
+
*/
|
|
85021
86449
|
optional: boolean;
|
|
85022
86450
|
}[];
|
|
85023
86451
|
}
|
|
85024
86452
|
export interface MailTemplateListInput {
|
|
85025
86453
|
}
|
|
85026
86454
|
export type MailTemplateListOutput = {
|
|
86455
|
+
/**
|
|
86456
|
+
* Template id
|
|
86457
|
+
*/
|
|
85027
86458
|
id: string;
|
|
86459
|
+
/**
|
|
86460
|
+
* HTML body; may contain {{ variable }} placeholders
|
|
86461
|
+
*/
|
|
85028
86462
|
html: string;
|
|
86463
|
+
/**
|
|
86464
|
+
* Human label for the template
|
|
86465
|
+
*/
|
|
85029
86466
|
name: string;
|
|
86467
|
+
/**
|
|
86468
|
+
* Plaintext body; null when none was supplied
|
|
86469
|
+
*/
|
|
85030
86470
|
text: (string | null);
|
|
85031
|
-
|
|
86471
|
+
/**
|
|
86472
|
+
* Lifecycle status: a draft is editable, a published template is not
|
|
86473
|
+
*/
|
|
86474
|
+
status: ("draft" | "published");
|
|
86475
|
+
/**
|
|
86476
|
+
* Email subject; may contain {{ variable }} placeholders
|
|
86477
|
+
*/
|
|
85032
86478
|
subject: string;
|
|
86479
|
+
/**
|
|
86480
|
+
* When the template was created (ISO 8601 UTC)
|
|
86481
|
+
*/
|
|
85033
86482
|
createdAt: string;
|
|
86483
|
+
/**
|
|
86484
|
+
* When the template was last modified (ISO 8601 UTC)
|
|
86485
|
+
*/
|
|
85034
86486
|
updatedAt: string;
|
|
86487
|
+
/**
|
|
86488
|
+
* Declared variables of this template (at most 20)
|
|
86489
|
+
*/
|
|
85035
86490
|
variables: {
|
|
86491
|
+
/**
|
|
86492
|
+
* Placeholder identifier used as {{ name }}
|
|
86493
|
+
*/
|
|
85036
86494
|
name: string;
|
|
85037
|
-
|
|
86495
|
+
/**
|
|
86496
|
+
* Declared type (metadata; rendered as string in v1)
|
|
86497
|
+
*/
|
|
86498
|
+
type: ("string" | "number" | "boolean");
|
|
86499
|
+
/**
|
|
86500
|
+
* Value used when none is supplied
|
|
86501
|
+
*/
|
|
85038
86502
|
fallback?: string;
|
|
86503
|
+
/**
|
|
86504
|
+
* If true, an absent value renders as empty string
|
|
86505
|
+
*/
|
|
85039
86506
|
optional: boolean;
|
|
85040
86507
|
}[];
|
|
85041
86508
|
}[];
|
|
@@ -85046,18 +86513,57 @@ export interface MailTemplatePublishInput {
|
|
|
85046
86513
|
id: string;
|
|
85047
86514
|
}
|
|
85048
86515
|
export interface MailTemplatePublishOutput {
|
|
86516
|
+
/**
|
|
86517
|
+
* Template id
|
|
86518
|
+
*/
|
|
85049
86519
|
id: string;
|
|
86520
|
+
/**
|
|
86521
|
+
* HTML body; may contain {{ variable }} placeholders
|
|
86522
|
+
*/
|
|
85050
86523
|
html: string;
|
|
86524
|
+
/**
|
|
86525
|
+
* Human label for the template
|
|
86526
|
+
*/
|
|
85051
86527
|
name: string;
|
|
86528
|
+
/**
|
|
86529
|
+
* Plaintext body; null when none was supplied
|
|
86530
|
+
*/
|
|
85052
86531
|
text: (string | null);
|
|
85053
|
-
|
|
86532
|
+
/**
|
|
86533
|
+
* Lifecycle status: a draft is editable, a published template is not
|
|
86534
|
+
*/
|
|
86535
|
+
status: ("draft" | "published");
|
|
86536
|
+
/**
|
|
86537
|
+
* Email subject; may contain {{ variable }} placeholders
|
|
86538
|
+
*/
|
|
85054
86539
|
subject: string;
|
|
86540
|
+
/**
|
|
86541
|
+
* When the template was created (ISO 8601 UTC)
|
|
86542
|
+
*/
|
|
85055
86543
|
createdAt: string;
|
|
86544
|
+
/**
|
|
86545
|
+
* When the template was last modified (ISO 8601 UTC)
|
|
86546
|
+
*/
|
|
85056
86547
|
updatedAt: string;
|
|
86548
|
+
/**
|
|
86549
|
+
* Declared variables of this template (at most 20)
|
|
86550
|
+
*/
|
|
85057
86551
|
variables: {
|
|
86552
|
+
/**
|
|
86553
|
+
* Placeholder identifier used as {{ name }}
|
|
86554
|
+
*/
|
|
85058
86555
|
name: string;
|
|
85059
|
-
|
|
86556
|
+
/**
|
|
86557
|
+
* Declared type (metadata; rendered as string in v1)
|
|
86558
|
+
*/
|
|
86559
|
+
type: ("string" | "number" | "boolean");
|
|
86560
|
+
/**
|
|
86561
|
+
* Value used when none is supplied
|
|
86562
|
+
*/
|
|
85060
86563
|
fallback?: string;
|
|
86564
|
+
/**
|
|
86565
|
+
* If true, an absent value renders as empty string
|
|
86566
|
+
*/
|
|
85061
86567
|
optional: boolean;
|
|
85062
86568
|
}[];
|
|
85063
86569
|
}
|
|
@@ -85066,11 +86572,25 @@ export interface MailTemplateUpdateInput {
|
|
|
85066
86572
|
* Template id
|
|
85067
86573
|
*/
|
|
85068
86574
|
id: string;
|
|
86575
|
+
/**
|
|
86576
|
+
* New HTML body; unchanged when omitted
|
|
86577
|
+
*/
|
|
85069
86578
|
html?: string;
|
|
86579
|
+
/**
|
|
86580
|
+
* New human label; unchanged when omitted
|
|
86581
|
+
*/
|
|
85070
86582
|
name?: string;
|
|
86583
|
+
/**
|
|
86584
|
+
* New plaintext body; null clears it and it is re-derived from html. Unchanged when omitted
|
|
86585
|
+
*/
|
|
85071
86586
|
text?: (string | null);
|
|
86587
|
+
/**
|
|
86588
|
+
* New email subject; may contain {{ variable }} placeholders. Unchanged when omitted
|
|
86589
|
+
*/
|
|
85072
86590
|
subject?: string;
|
|
85073
86591
|
/**
|
|
86592
|
+
* Replacement list of declared variables ([{name,type,optional,fallback}], <=20). Unchanged when omitted
|
|
86593
|
+
*
|
|
85074
86594
|
* @maxItems 20
|
|
85075
86595
|
*/
|
|
85076
86596
|
variables?: [] | [
|
|
@@ -88876,100 +90396,256 @@ export interface MailTemplateUpdateInput {
|
|
|
88876
90396
|
];
|
|
88877
90397
|
}
|
|
88878
90398
|
export interface MailTemplateUpdateOutput {
|
|
90399
|
+
/**
|
|
90400
|
+
* Template id
|
|
90401
|
+
*/
|
|
88879
90402
|
id: string;
|
|
90403
|
+
/**
|
|
90404
|
+
* HTML body; may contain {{ variable }} placeholders
|
|
90405
|
+
*/
|
|
88880
90406
|
html: string;
|
|
90407
|
+
/**
|
|
90408
|
+
* Human label for the template
|
|
90409
|
+
*/
|
|
88881
90410
|
name: string;
|
|
90411
|
+
/**
|
|
90412
|
+
* Plaintext body; null when none was supplied
|
|
90413
|
+
*/
|
|
88882
90414
|
text: (string | null);
|
|
88883
|
-
|
|
90415
|
+
/**
|
|
90416
|
+
* Lifecycle status: a draft is editable, a published template is not
|
|
90417
|
+
*/
|
|
90418
|
+
status: ("draft" | "published");
|
|
90419
|
+
/**
|
|
90420
|
+
* Email subject; may contain {{ variable }} placeholders
|
|
90421
|
+
*/
|
|
88884
90422
|
subject: string;
|
|
90423
|
+
/**
|
|
90424
|
+
* When the template was created (ISO 8601 UTC)
|
|
90425
|
+
*/
|
|
88885
90426
|
createdAt: string;
|
|
90427
|
+
/**
|
|
90428
|
+
* When the template was last modified (ISO 8601 UTC)
|
|
90429
|
+
*/
|
|
88886
90430
|
updatedAt: string;
|
|
90431
|
+
/**
|
|
90432
|
+
* Declared variables of this template (at most 20)
|
|
90433
|
+
*/
|
|
88887
90434
|
variables: {
|
|
90435
|
+
/**
|
|
90436
|
+
* Placeholder identifier used as {{ name }}
|
|
90437
|
+
*/
|
|
88888
90438
|
name: string;
|
|
88889
|
-
|
|
90439
|
+
/**
|
|
90440
|
+
* Declared type (metadata; rendered as string in v1)
|
|
90441
|
+
*/
|
|
90442
|
+
type: ("string" | "number" | "boolean");
|
|
90443
|
+
/**
|
|
90444
|
+
* Value used when none is supplied
|
|
90445
|
+
*/
|
|
88890
90446
|
fallback?: string;
|
|
90447
|
+
/**
|
|
90448
|
+
* If true, an absent value renders as empty string
|
|
90449
|
+
*/
|
|
88891
90450
|
optional: boolean;
|
|
88892
90451
|
}[];
|
|
88893
90452
|
}
|
|
88894
90453
|
export interface MailUsageGetInput {
|
|
88895
90454
|
}
|
|
88896
90455
|
export interface MailUsageGetOutput {
|
|
90456
|
+
/**
|
|
90457
|
+
* Email sending usage against the free-tier limits
|
|
90458
|
+
*/
|
|
88897
90459
|
emails: {
|
|
88898
|
-
|
|
88899
|
-
|
|
90460
|
+
/**
|
|
90461
|
+
* Sending allowance today (UTC)
|
|
90462
|
+
*/
|
|
90463
|
+
day: {
|
|
90464
|
+
/**
|
|
90465
|
+
* Emails accepted for delivery so far today (UTC)
|
|
90466
|
+
*/
|
|
90467
|
+
used: number;
|
|
90468
|
+
/**
|
|
90469
|
+
* Free-tier allowance today (UTC)
|
|
90470
|
+
*/
|
|
90471
|
+
limit: number;
|
|
90472
|
+
/**
|
|
90473
|
+
* Allowance left today (UTC) — limit minus used, never below zero
|
|
90474
|
+
*/
|
|
90475
|
+
remaining: number;
|
|
90476
|
+
};
|
|
90477
|
+
/**
|
|
90478
|
+
* Sending allowance this month (UTC)
|
|
90479
|
+
*/
|
|
90480
|
+
month: {
|
|
90481
|
+
/**
|
|
90482
|
+
* Emails accepted for delivery so far this month (UTC)
|
|
90483
|
+
*/
|
|
90484
|
+
used: number;
|
|
90485
|
+
/**
|
|
90486
|
+
* Free-tier allowance this month (UTC)
|
|
90487
|
+
*/
|
|
90488
|
+
limit: number;
|
|
90489
|
+
/**
|
|
90490
|
+
* Allowance left this month (UTC) — limit minus used, never below zero
|
|
90491
|
+
*/
|
|
90492
|
+
remaining: number;
|
|
90493
|
+
};
|
|
90494
|
+
/**
|
|
90495
|
+
* True when a further send would be refused right now because a limit or the hard cap is reached
|
|
90496
|
+
*/
|
|
88900
90497
|
blocked: boolean;
|
|
90498
|
+
/**
|
|
90499
|
+
* Monthly ceiling that cannot be exceeded even with an allowance left elsewhere
|
|
90500
|
+
*/
|
|
88901
90501
|
hard_cap: number;
|
|
88902
90502
|
};
|
|
90503
|
+
/**
|
|
90504
|
+
* The two windows the counters below are scoped to
|
|
90505
|
+
*/
|
|
88903
90506
|
period: {
|
|
90507
|
+
/**
|
|
90508
|
+
* The UTC day the daily counters cover, as YYYY-MM-DD
|
|
90509
|
+
*/
|
|
88904
90510
|
day: string;
|
|
90511
|
+
/**
|
|
90512
|
+
* The UTC month the monthly counters cover, as YYYY-MM
|
|
90513
|
+
*/
|
|
88905
90514
|
month: string;
|
|
88906
90515
|
};
|
|
90516
|
+
/**
|
|
90517
|
+
* Point-in-time contact storage — a stock, not a per-period flow
|
|
90518
|
+
*/
|
|
88907
90519
|
contacts: {
|
|
90520
|
+
/**
|
|
90521
|
+
* Contacts stored for the product at this instant
|
|
90522
|
+
*/
|
|
88908
90523
|
count: number;
|
|
88909
90524
|
};
|
|
88910
90525
|
}
|
|
88911
|
-
export interface MailUsageGetOutputDay {
|
|
88912
|
-
used: number;
|
|
88913
|
-
limit: number;
|
|
88914
|
-
remaining: number;
|
|
88915
|
-
}
|
|
88916
90526
|
export interface MailWebhookCreateInput {
|
|
88917
90527
|
/**
|
|
88918
|
-
* HTTPS URL that signed events are POSTed to
|
|
90528
|
+
* HTTPS URL that signed events are POSTed to; plain http is rejected
|
|
88919
90529
|
*/
|
|
88920
90530
|
url: string;
|
|
88921
90531
|
/**
|
|
88922
|
-
* Optional human label
|
|
90532
|
+
* Optional human label for the endpoint, e.g. "billing service"
|
|
88923
90533
|
*/
|
|
88924
90534
|
description?: string;
|
|
88925
90535
|
/**
|
|
88926
|
-
* Event types to deliver. One or more of: email.delivered, email.bounced, email.complained, email.suppressed, email.opened, email.clicked
|
|
90536
|
+
* Event types to deliver; at least one. One or more of: email.delivered, email.bounced, email.complained, email.suppressed, email.opened, email.clicked
|
|
88927
90537
|
*
|
|
88928
90538
|
* @minItems 1
|
|
88929
90539
|
*/
|
|
88930
90540
|
enabled_events: [("email.delivered" | "email.bounced" | "email.complained" | "email.suppressed" | "email.opened" | "email.clicked"), ...(("email.delivered" | "email.bounced" | "email.complained" | "email.suppressed" | "email.opened" | "email.clicked"))[]];
|
|
88931
90541
|
}
|
|
88932
90542
|
export interface MailWebhookCreateOutput {
|
|
90543
|
+
/**
|
|
90544
|
+
* Webhook endpoint id
|
|
90545
|
+
*/
|
|
88933
90546
|
id: string;
|
|
90547
|
+
/**
|
|
90548
|
+
* HTTPS URL that signed events are POSTed to
|
|
90549
|
+
*/
|
|
88934
90550
|
url: string;
|
|
90551
|
+
/**
|
|
90552
|
+
* Signing secret for verifying the delivery signature. Returned only when the endpoint is created and never retrievable again — store it now
|
|
90553
|
+
*/
|
|
88935
90554
|
secret: string;
|
|
90555
|
+
/**
|
|
90556
|
+
* False if delivery is switched off — the endpoint is kept but nothing is sent to it
|
|
90557
|
+
*/
|
|
88936
90558
|
enabled: boolean;
|
|
90559
|
+
/**
|
|
90560
|
+
* When the endpoint was registered (ISO 8601 UTC)
|
|
90561
|
+
*/
|
|
88937
90562
|
created_at: string;
|
|
90563
|
+
/**
|
|
90564
|
+
* When the endpoint was last changed (ISO 8601 UTC)
|
|
90565
|
+
*/
|
|
88938
90566
|
updated_at: string;
|
|
90567
|
+
/**
|
|
90568
|
+
* Human label for the endpoint; null if none was given
|
|
90569
|
+
*/
|
|
88939
90570
|
description: (string | null);
|
|
88940
|
-
|
|
90571
|
+
/**
|
|
90572
|
+
* Event types this endpoint receives; anything else is not delivered to it
|
|
90573
|
+
*/
|
|
90574
|
+
enabled_events: ("email.delivered" | "email.bounced" | "email.complained" | "email.suppressed" | "email.opened" | "email.clicked")[];
|
|
88941
90575
|
}
|
|
88942
90576
|
export interface MailWebhookDeleteInput {
|
|
88943
90577
|
/**
|
|
88944
|
-
* Webhook endpoint id
|
|
90578
|
+
* Webhook endpoint id; deleting it also discards its delivery history
|
|
88945
90579
|
*/
|
|
88946
90580
|
id: string;
|
|
88947
90581
|
}
|
|
88948
90582
|
export interface MailWebhookDeleteOutput {
|
|
90583
|
+
/**
|
|
90584
|
+
* Id of the endpoint that was deleted
|
|
90585
|
+
*/
|
|
88949
90586
|
id: string;
|
|
90587
|
+
/**
|
|
90588
|
+
* True once the endpoint and its delivery history are gone
|
|
90589
|
+
*/
|
|
88950
90590
|
deleted: boolean;
|
|
88951
90591
|
}
|
|
88952
90592
|
export interface MailWebhookDeliveriesListInput {
|
|
88953
90593
|
/**
|
|
88954
|
-
* Webhook endpoint
|
|
90594
|
+
* Webhook endpoint whose delivery attempts to list
|
|
88955
90595
|
*/
|
|
88956
90596
|
id: string;
|
|
88957
90597
|
/**
|
|
88958
|
-
* Max
|
|
90598
|
+
* Max delivery attempts to return, 1-100 (default 50)
|
|
88959
90599
|
*/
|
|
88960
90600
|
limit?: number;
|
|
88961
90601
|
}
|
|
90602
|
+
/**
|
|
90603
|
+
* Recent delivery attempts for the endpoint, newest first
|
|
90604
|
+
*/
|
|
88962
90605
|
export type MailWebhookDeliveriesListOutput = {
|
|
90606
|
+
/**
|
|
90607
|
+
* Delivery attempt id
|
|
90608
|
+
*/
|
|
88963
90609
|
id: string;
|
|
88964
|
-
|
|
90610
|
+
/**
|
|
90611
|
+
* Delivery state: pending while attempts remain, succeeded once the endpoint answered 2xx, failed once retries are exhausted
|
|
90612
|
+
*/
|
|
90613
|
+
status: ("pending" | "succeeded" | "failed");
|
|
90614
|
+
/**
|
|
90615
|
+
* How many times delivery has been attempted so far
|
|
90616
|
+
*/
|
|
88965
90617
|
attempts: number;
|
|
90618
|
+
/**
|
|
90619
|
+
* Id of the email event that was delivered
|
|
90620
|
+
*/
|
|
88966
90621
|
event_id: string;
|
|
90622
|
+
/**
|
|
90623
|
+
* When the delivery was queued (ISO 8601 UTC)
|
|
90624
|
+
*/
|
|
88967
90625
|
created_at: string;
|
|
88968
|
-
|
|
90626
|
+
/**
|
|
90627
|
+
* Type of the delivered event
|
|
90628
|
+
*/
|
|
90629
|
+
event_type: ("email.delivered" | "email.bounced" | "email.complained" | "email.suppressed" | "email.opened" | "email.clicked");
|
|
90630
|
+
/**
|
|
90631
|
+
* Error from the last failed attempt; null if the last attempt succeeded or none has run
|
|
90632
|
+
*/
|
|
88969
90633
|
last_error: (string | null);
|
|
90634
|
+
/**
|
|
90635
|
+
* When the delivery record was last updated (ISO 8601 UTC)
|
|
90636
|
+
*/
|
|
88970
90637
|
updated_at: string;
|
|
90638
|
+
/**
|
|
90639
|
+
* Id of the webhook endpoint the event was delivered to
|
|
90640
|
+
*/
|
|
88971
90641
|
endpoint_id: string;
|
|
90642
|
+
/**
|
|
90643
|
+
* When delivery was last attempted (ISO 8601 UTC); null before the first attempt
|
|
90644
|
+
*/
|
|
88972
90645
|
last_attempt_at: (string | null);
|
|
90646
|
+
/**
|
|
90647
|
+
* HTTP status the endpoint returned on the last attempt; null if it could not be reached
|
|
90648
|
+
*/
|
|
88973
90649
|
response_status: (number | null);
|
|
88974
90650
|
}[];
|
|
88975
90651
|
export interface MailWebhookGetInput {
|
|
@@ -88979,24 +90655,69 @@ export interface MailWebhookGetInput {
|
|
|
88979
90655
|
id: string;
|
|
88980
90656
|
}
|
|
88981
90657
|
export interface MailWebhookGetOutput {
|
|
90658
|
+
/**
|
|
90659
|
+
* Webhook endpoint id
|
|
90660
|
+
*/
|
|
88982
90661
|
id: string;
|
|
90662
|
+
/**
|
|
90663
|
+
* HTTPS URL that signed events are POSTed to
|
|
90664
|
+
*/
|
|
88983
90665
|
url: string;
|
|
90666
|
+
/**
|
|
90667
|
+
* False if delivery is switched off — the endpoint is kept but nothing is sent to it
|
|
90668
|
+
*/
|
|
88984
90669
|
enabled: boolean;
|
|
90670
|
+
/**
|
|
90671
|
+
* When the endpoint was registered (ISO 8601 UTC)
|
|
90672
|
+
*/
|
|
88985
90673
|
created_at: string;
|
|
90674
|
+
/**
|
|
90675
|
+
* When the endpoint was last changed (ISO 8601 UTC)
|
|
90676
|
+
*/
|
|
88986
90677
|
updated_at: string;
|
|
90678
|
+
/**
|
|
90679
|
+
* Human label for the endpoint; null if none was given
|
|
90680
|
+
*/
|
|
88987
90681
|
description: (string | null);
|
|
88988
|
-
|
|
90682
|
+
/**
|
|
90683
|
+
* Event types this endpoint receives; anything else is not delivered to it
|
|
90684
|
+
*/
|
|
90685
|
+
enabled_events: ("email.delivered" | "email.bounced" | "email.complained" | "email.suppressed" | "email.opened" | "email.clicked")[];
|
|
88989
90686
|
}
|
|
88990
90687
|
export interface MailWebhookListInput {
|
|
88991
90688
|
}
|
|
90689
|
+
/**
|
|
90690
|
+
* Webhook endpoints for the current product, signing secrets omitted
|
|
90691
|
+
*/
|
|
88992
90692
|
export type MailWebhookListOutput = {
|
|
90693
|
+
/**
|
|
90694
|
+
* Webhook endpoint id
|
|
90695
|
+
*/
|
|
88993
90696
|
id: string;
|
|
90697
|
+
/**
|
|
90698
|
+
* HTTPS URL that signed events are POSTed to
|
|
90699
|
+
*/
|
|
88994
90700
|
url: string;
|
|
90701
|
+
/**
|
|
90702
|
+
* False if delivery is switched off — the endpoint is kept but nothing is sent to it
|
|
90703
|
+
*/
|
|
88995
90704
|
enabled: boolean;
|
|
90705
|
+
/**
|
|
90706
|
+
* When the endpoint was registered (ISO 8601 UTC)
|
|
90707
|
+
*/
|
|
88996
90708
|
created_at: string;
|
|
90709
|
+
/**
|
|
90710
|
+
* When the endpoint was last changed (ISO 8601 UTC)
|
|
90711
|
+
*/
|
|
88997
90712
|
updated_at: string;
|
|
90713
|
+
/**
|
|
90714
|
+
* Human label for the endpoint; null if none was given
|
|
90715
|
+
*/
|
|
88998
90716
|
description: (string | null);
|
|
88999
|
-
|
|
90717
|
+
/**
|
|
90718
|
+
* Event types this endpoint receives; anything else is not delivered to it
|
|
90719
|
+
*/
|
|
90720
|
+
enabled_events: ("email.delivered" | "email.bounced" | "email.complained" | "email.suppressed" | "email.opened" | "email.clicked")[];
|
|
89000
90721
|
}[];
|
|
89001
90722
|
export interface MailWebhookUpdateInput {
|
|
89002
90723
|
/**
|
|
@@ -89004,32 +90725,53 @@ export interface MailWebhookUpdateInput {
|
|
|
89004
90725
|
*/
|
|
89005
90726
|
id: string;
|
|
89006
90727
|
/**
|
|
89007
|
-
* HTTPS URL
|
|
90728
|
+
* New HTTPS delivery URL; omit to leave it unchanged
|
|
89008
90729
|
*/
|
|
89009
90730
|
url?: string;
|
|
89010
90731
|
/**
|
|
89011
|
-
*
|
|
90732
|
+
* Switch delivery on (true) or off (false); omit to leave it unchanged
|
|
89012
90733
|
*/
|
|
89013
90734
|
enabled?: boolean;
|
|
89014
90735
|
/**
|
|
89015
|
-
*
|
|
90736
|
+
* New human label, or null to clear it; omit to leave it unchanged
|
|
89016
90737
|
*/
|
|
89017
90738
|
description?: (string | null);
|
|
89018
90739
|
/**
|
|
89019
|
-
*
|
|
90740
|
+
* Replace the delivered event types; omit to leave them unchanged
|
|
89020
90741
|
*
|
|
89021
90742
|
* @minItems 1
|
|
89022
90743
|
*/
|
|
89023
90744
|
enabled_events?: [("email.delivered" | "email.bounced" | "email.complained" | "email.suppressed" | "email.opened" | "email.clicked"), ...(("email.delivered" | "email.bounced" | "email.complained" | "email.suppressed" | "email.opened" | "email.clicked"))[]];
|
|
89024
90745
|
}
|
|
89025
90746
|
export interface MailWebhookUpdateOutput {
|
|
90747
|
+
/**
|
|
90748
|
+
* Webhook endpoint id
|
|
90749
|
+
*/
|
|
89026
90750
|
id: string;
|
|
90751
|
+
/**
|
|
90752
|
+
* HTTPS URL that signed events are POSTed to
|
|
90753
|
+
*/
|
|
89027
90754
|
url: string;
|
|
90755
|
+
/**
|
|
90756
|
+
* False if delivery is switched off — the endpoint is kept but nothing is sent to it
|
|
90757
|
+
*/
|
|
89028
90758
|
enabled: boolean;
|
|
90759
|
+
/**
|
|
90760
|
+
* When the endpoint was registered (ISO 8601 UTC)
|
|
90761
|
+
*/
|
|
89029
90762
|
created_at: string;
|
|
90763
|
+
/**
|
|
90764
|
+
* When the endpoint was last changed (ISO 8601 UTC)
|
|
90765
|
+
*/
|
|
89030
90766
|
updated_at: string;
|
|
90767
|
+
/**
|
|
90768
|
+
* Human label for the endpoint; null if none was given
|
|
90769
|
+
*/
|
|
89031
90770
|
description: (string | null);
|
|
89032
|
-
|
|
90771
|
+
/**
|
|
90772
|
+
* Event types this endpoint receives; anything else is not delivered to it
|
|
90773
|
+
*/
|
|
90774
|
+
enabled_events: ("email.delivered" | "email.bounced" | "email.complained" | "email.suppressed" | "email.opened" | "email.clicked")[];
|
|
89033
90775
|
}
|
|
89034
90776
|
export interface ObserveAlertsCreateInput {
|
|
89035
90777
|
/**
|