samva 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +2 -2
  2. package/dist/{categories-4u9Az4No.js → categories-DvsHUJtX.js} +9 -1
  3. package/dist/client/sdk.gen.d.ts +119 -33
  4. package/dist/client/types.gen.d.ts +643 -142
  5. package/dist/{client-DCM6U0-I.js → client-ByJHYp7r.js} +612 -223
  6. package/dist/{client-attribution-DYUSAa76.js → client-attribution-N5A784Zo.js} +2 -2
  7. package/dist/effect/analytics.js +1 -1
  8. package/dist/effect/api-keys.js +1 -1
  9. package/dist/effect/attachments.js +1 -1
  10. package/dist/effect/brands.d.ts +212 -0
  11. package/dist/effect/brands.js +24 -0
  12. package/dist/effect/campaigns.d.ts +35 -1
  13. package/dist/effect/campaigns.js +1 -1
  14. package/dist/effect/categories.js +1 -1
  15. package/dist/effect/client.js +1 -1
  16. package/dist/effect/contact-groups.js +1 -1
  17. package/dist/effect/contacts.js +1 -1
  18. package/dist/effect/conversations.d.ts +21 -12
  19. package/dist/effect/conversations.js +1 -1
  20. package/dist/effect/custom-fields.js +1 -1
  21. package/dist/effect/email.d.ts +17 -6
  22. package/dist/effect/email.js +2 -2
  23. package/dist/effect/generated-metadata.d.ts +8 -0
  24. package/dist/effect/generated.d.ts +2880 -1661
  25. package/dist/effect/index.d.ts +2 -2
  26. package/dist/effect/index.js +4 -4
  27. package/dist/effect/internal/operation.d.ts +10 -4
  28. package/dist/effect/media.js +1 -1
  29. package/dist/effect/messages.d.ts +24 -6
  30. package/dist/effect/messages.js +1 -1
  31. package/dist/effect/operations.js +1 -1
  32. package/dist/effect/organizations.d.ts +5 -268
  33. package/dist/effect/organizations.js +4 -2
  34. package/dist/effect/retry.js +1 -1
  35. package/dist/effect/scheduled-messages.d.ts +16 -0
  36. package/dist/effect/scheduled-messages.js +1 -1
  37. package/dist/effect/templates.d.ts +260 -38
  38. package/dist/effect/templates.js +7 -3
  39. package/dist/effect/unsubscribe-groups.d.ts +17 -0
  40. package/dist/effect/unsubscribe-groups.js +4 -2
  41. package/dist/effect/webhooks.d.ts +6 -6
  42. package/dist/effect/webhooks.js +2 -2
  43. package/dist/index.js +2 -2
  44. package/dist/{operation-02YX3hY9.js → operation-D2nEeKBD.js} +34 -5
  45. package/dist/promises/errors.gen.d.ts +22 -4
  46. package/dist/promises/index.d.ts +3 -3
  47. package/dist/promises/index.js +2 -2
  48. package/dist/promises/types.gen.d.ts +1 -1
  49. package/dist/{promises-8MaPNAam.js → promises-DAv8ZtOX.js} +376 -52
  50. package/dist/service-map.d.ts +45 -6
  51. package/package.json +7 -7
  52. package/dist/effect/design.d.ts +0 -209
  53. package/dist/effect/design.js +0 -13
@@ -130,7 +130,8 @@ export type Message = {
130
130
  scheduling: {
131
131
  dueAt: string;
132
132
  expiresAt: string;
133
- waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | null;
133
+ waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | null;
134
+ reviewExpectedAt: string | null;
134
135
  } | null;
135
136
  id: string;
136
137
  messageId: string;
@@ -191,6 +192,8 @@ export type Message = {
191
192
  createdAt: string;
192
193
  updatedAt: string;
193
194
  }>;
195
+ waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | null;
196
+ reviewExpectedAt: string | null;
194
197
  };
195
198
  export type PaginationMeta = {
196
199
  page: number;
@@ -255,6 +258,8 @@ export type TemplatePublicationId = string;
255
258
  export type TemplateInputContractId = string;
256
259
  export type TemplateId = string;
257
260
  export type TemplateData = JsonObject | null;
261
+ export type RenderLocale = string;
262
+ export type RenderTimeZone = string;
258
263
  export type ReplyToAddresses = Array<string> | null | null;
259
264
  export type UnsubscribeId = string;
260
265
  export type EmailFooterOverride = {
@@ -270,6 +275,8 @@ export type EmailContent = {
270
275
  templateId?: TemplateId | null | undefined;
271
276
  templateSlug?: string | null | undefined;
272
277
  templateData?: TemplateData | undefined;
278
+ locale?: RenderLocale | undefined;
279
+ timeZone?: RenderTimeZone | undefined;
273
280
  inReplyToMessageId?: MessageId | null | undefined;
274
281
  replyTo?: ReplyToAddresses | undefined;
275
282
  unsubscribeGroupId?: UnsubscribeId | null | undefined;
@@ -321,7 +328,7 @@ export type ValidationError = {
321
328
  export type OnboardingReviewRequiredError = {
322
329
  _tag: "OnboardingReviewRequiredError";
323
330
  code: "review_required" | "review_in_progress" | "information_required" | "review_rejected" | "identity_review_required" | "identity_review_rejected" | "identity_changed";
324
- decision: "undecided" | "approved" | "rejected" | "exempt";
331
+ decision: "undecided" | "approved" | "rejected";
325
332
  stage: "collecting" | "automated_review" | "manual_review" | "information_requested" | "complete";
326
333
  nextAction: "wait_for_review" | "provide_information" | "verify_sending_identity" | "reapply" | "contact_support";
327
334
  identityId?: string | null | undefined;
@@ -396,6 +403,8 @@ export type EmailDispatchContent = {
396
403
  templateId?: TemplateId | null | undefined;
397
404
  templateSlug?: string | null | undefined;
398
405
  templateData?: TemplateData | undefined;
406
+ locale?: RenderLocale | undefined;
407
+ timeZone?: RenderTimeZone | undefined;
399
408
  inReplyToMessageId?: MessageId | null | undefined;
400
409
  replyTo?: ReplyToAddresses | undefined;
401
410
  unsubscribeGroupId?: UnsubscribeId | null | undefined;
@@ -540,6 +549,15 @@ export type CampaignRun = {
540
549
  createdAt: string;
541
550
  updatedAt: string;
542
551
  };
552
+ export type BrandAddressRequiredError = {
553
+ _tag: "BrandAddressRequiredError";
554
+ message: string;
555
+ brand: string | null;
556
+ };
557
+ export type CampaignFooterRequiredError = {
558
+ _tag: "CampaignFooterRequiredError";
559
+ message: string;
560
+ };
543
561
  export type CampaignRunAction = {
544
562
  success: boolean;
545
563
  item: CampaignRun;
@@ -555,7 +573,8 @@ export type IdentityClearanceStatus = {
555
573
  updatedAt: string;
556
574
  };
557
575
  export type OnboardingReviewStatus = {
558
- decision: "undecided" | "approved" | "rejected" | "exempt";
576
+ decision: "undecided" | "approved" | "rejected";
577
+ trustTier: "screened" | "probation" | "established";
559
578
  stage: "collecting" | "automated_review" | "manual_review" | "information_requested" | "complete";
560
579
  generation: number;
561
580
  canSend: boolean;
@@ -734,7 +753,7 @@ export type EmailDomainVerification = {
734
753
  staleAt: string | null;
735
754
  nextRetryAt: string | null;
736
755
  status: "ready" | "blocked" | "unknown";
737
- reason: "domain-not-ready" | "domain-observation-stale" | "operator-paused" | "sending-paused" | "sending-status-stale" | "sending-status-unknown" | "ready";
756
+ reason: "domain-not-ready" | "domain-observation-stale" | "operator-paused" | "sending-paused" | "sending-status-unknown" | "ready";
738
757
  };
739
758
  dmarc: {
740
759
  status: "valid" | "missing" | "invalid" | "multiple" | "unknown";
@@ -975,7 +994,7 @@ export type ActorTracking = {
975
994
  activeActorIds: Array<ActorId>;
976
995
  actorHistory: Array<{
977
996
  actorId: ActorId;
978
- actorType: "contact" | "system" | "sender_identity" | "agent" | "user";
997
+ actorType: "contact" | "system" | "sender" | "agent" | "user";
979
998
  joinedAt: string;
980
999
  leftAt?: string | null | undefined;
981
1000
  role: "initiator" | "responder" | "observer";
@@ -1043,7 +1062,7 @@ export type Conversation = {
1043
1062
  };
1044
1063
  export type ConversationParticipant = {
1045
1064
  actorId: ActorId;
1046
- actorType: "contact" | "system" | "sender_identity" | "agent" | "user";
1065
+ actorType: "contact" | "system" | "sender" | "agent" | "user";
1047
1066
  contact: MessageContact;
1048
1067
  };
1049
1068
  export type ConversationDetail = {
@@ -1220,6 +1239,20 @@ export type TemplateFromDefault = {
1220
1239
  email: string;
1221
1240
  name?: string | null | undefined;
1222
1241
  };
1242
+ export type TemplatePublicationBrand = {
1243
+ /**
1244
+ * The brand the publication imports.
1245
+ */
1246
+ slug: string;
1247
+ /**
1248
+ * The brand's digest when the publication was built.
1249
+ */
1250
+ digest: string;
1251
+ /**
1252
+ * Whether the brand has changed since this publication was built. Publishing the same commit again picks up the change.
1253
+ */
1254
+ stale: boolean;
1255
+ };
1223
1256
  export type Template = {
1224
1257
  id: TemplateId;
1225
1258
  organizationId: OrganizationId;
@@ -1245,6 +1278,7 @@ export type Template = {
1245
1278
  } | null;
1246
1279
  } | null;
1247
1280
  publicationId: TemplatePublicationId | null;
1281
+ brand: TemplatePublicationBrand | null;
1248
1282
  inputContractId: TemplateInputContractId | null;
1249
1283
  inputSchema: {
1250
1284
  [key: string]: JsonValue;
@@ -1284,15 +1318,24 @@ export type CreateTemplatePayload = {
1284
1318
  projectName?: string | null | undefined;
1285
1319
  slug?: string | null | undefined;
1286
1320
  galleryTemplateId?: string | null | undefined;
1321
+ useBrand?: boolean | null | undefined;
1287
1322
  description?: string | null | null | undefined;
1288
1323
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | null | undefined;
1289
1324
  isActive?: boolean | null | undefined;
1290
1325
  idempotencyKey: string;
1291
1326
  };
1327
+ export type AddTemplateEntryPayload = {
1328
+ entryPath: string;
1329
+ name: string;
1330
+ slug: string;
1331
+ description?: string | null | null | undefined;
1332
+ category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | null | undefined;
1333
+ };
1292
1334
  export type UpdateTemplatePayload = {
1293
1335
  data: {
1294
1336
  name?: string | null | undefined;
1295
1337
  slug?: string | null | undefined;
1338
+ entryPath?: string | null | undefined;
1296
1339
  description?: string | null | null | undefined;
1297
1340
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | null | undefined;
1298
1341
  fromDefault?: TemplateFromDefault | null | null | undefined;
@@ -1300,81 +1343,83 @@ export type UpdateTemplatePayload = {
1300
1343
  isActive?: boolean | null | undefined;
1301
1344
  };
1302
1345
  };
1303
- export type ThemeColors = {
1304
- [key: string]: string;
1346
+ export type BrandAssets = {
1347
+ logoUrl?: string | null | undefined;
1348
+ logoDarkUrl?: string | null | undefined;
1349
+ iconUrl?: string | null | undefined;
1305
1350
  };
1306
- export type Design = {
1307
- theme?: {
1308
- colors?: ThemeColors | null | undefined;
1309
- colorsDark?: ThemeColors | null | undefined;
1310
- radiusPx?: {
1311
- [key: string]: number;
1312
- } | null | undefined;
1313
- fontFamilies?: {
1314
- [key: string]: {
1315
- source: "system" | "google" | "custom";
1316
- family: string;
1317
- fallback: string;
1318
- faces?: Array<{
1319
- weight: number;
1320
- style: "normal" | "italic";
1321
- src: string;
1322
- unicodeRange?: string | null | undefined;
1323
- }> | null | undefined;
1324
- };
1325
- } | null | undefined;
1326
- fontWeights?: {
1327
- [key: string]: number;
1328
- } | null | undefined;
1329
- text?: {
1330
- [key: string]: {
1331
- sizePx: number;
1332
- lineHeightPx: number;
1333
- };
1334
- } | null | undefined;
1335
- leading?: {
1336
- [key: string]: number;
1337
- } | null | undefined;
1338
- spacingPx?: number | null | undefined;
1339
- containerPx?: {
1340
- [key: string]: number;
1341
- } | null | undefined;
1342
- tracking?: {
1343
- [key: string]: number;
1344
- } | null | undefined;
1345
- } | null | undefined;
1346
- assets?: {
1347
- logoUrl?: string | null | null | undefined;
1348
- logoDarkUrl?: string | null | null | undefined;
1349
- iconUrl?: string | null | null | undefined;
1350
- } | null | undefined;
1351
- footer?: {
1352
- companyName?: string | null | undefined;
1353
- address?: {
1354
- street1: string;
1355
- street2?: string | null | undefined;
1356
- city: string;
1357
- region: string;
1358
- postalCode: string;
1359
- country: string;
1360
- } | null | undefined;
1361
- socialLinks?: Array<{
1362
- label: string;
1363
- url: string;
1364
- }> | null | undefined;
1365
- customHtml?: string | null | undefined;
1366
- } | null | undefined;
1351
+ export type BrandAddress = {
1352
+ street1: string;
1353
+ street2?: string | null | undefined;
1354
+ city: string;
1355
+ region: string;
1356
+ postalCode: string;
1357
+ country: string;
1367
1358
  };
1368
- export type DesignSettings = {
1369
- design: Design | null;
1370
- footerCompleteness: {
1371
- missingAddress: boolean;
1372
- };
1359
+ export type BrandSocialLink = {
1360
+ label: string;
1361
+ url: string;
1362
+ };
1363
+ export type BrandFooter = {
1364
+ companyName?: string | null | undefined;
1365
+ address?: BrandAddress | null | undefined;
1366
+ socialLinks?: Array<BrandSocialLink> | null | undefined;
1367
+ };
1368
+ export type BrandFooterBlock = {
1369
+ html: string;
1370
+ text: string;
1371
+ };
1372
+ export type BrandRenderedFooter = {
1373
+ withUnsubscribe: BrandFooterBlock;
1374
+ withoutUnsubscribe: BrandFooterBlock;
1375
+ };
1376
+ export type BrandId = string;
1377
+ export type Brand = {
1378
+ id: BrandId;
1379
+ /**
1380
+ * The brand's handle, unique in the organization; `samva:brand/<slug>` names it.
1381
+ */
1382
+ slug: string;
1383
+ name: string;
1384
+ /**
1385
+ * Whether bare `samva:brand` and domains without a brand resolve to this brand.
1386
+ */
1387
+ isDefault: boolean;
1388
+ /**
1389
+ * Brand theme CSS: `@theme` variables, one dark-mode `@theme` of colors, and `@font-face` rules with https WOFF2 sources.
1390
+ */
1391
+ css: string;
1392
+ assets: BrandAssets;
1393
+ footer: BrandFooter;
1394
+ /**
1395
+ * SHA-256 of the brand's css, assets and footer. A publication built against a different digest predates the brand's current content.
1396
+ */
1397
+ digest: string;
1398
+ createdAt: string;
1399
+ updatedAt: string;
1400
+ };
1401
+ export type BrandList = {
1402
+ items: Array<Brand>;
1403
+ };
1404
+ export type CreateBrand = {
1405
+ slug: string;
1406
+ name: string;
1407
+ css?: string | null | undefined;
1408
+ assets?: BrandAssets | null | undefined;
1409
+ footer?: BrandFooter | null | undefined;
1410
+ isDefault?: boolean | null | undefined;
1411
+ };
1412
+ export type UpdateBrand = {
1413
+ newSlug?: string | null | undefined;
1414
+ name?: string | null | undefined;
1415
+ css?: string | null | undefined;
1416
+ assets?: BrandAssets | null | undefined;
1417
+ footer?: BrandFooter | null | undefined;
1373
1418
  };
1374
1419
  export type CreateWebhookPayload = {
1375
1420
  name: string;
1376
1421
  url: string;
1377
- eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated">;
1422
+ eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated">;
1378
1423
  channels?: Array<"email"> | null | undefined;
1379
1424
  headers?: {
1380
1425
  [key: string]: string;
@@ -1385,7 +1430,7 @@ export type WebhookEndpoint = {
1385
1430
  id: WebhookEndpointId;
1386
1431
  name: string;
1387
1432
  url: string;
1388
- eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated">;
1433
+ eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated">;
1389
1434
  channels: Array<"email"> | null;
1390
1435
  status: "active" | "disabled";
1391
1436
  hasCustomHeaders: boolean;
@@ -1405,7 +1450,7 @@ export type WebhookEndpointListItem = {
1405
1450
  id: WebhookEndpointId;
1406
1451
  name: string;
1407
1452
  url: string;
1408
- eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated">;
1453
+ eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated">;
1409
1454
  channels: Array<"email"> | null;
1410
1455
  status: "active" | "disabled";
1411
1456
  hasCustomHeaders: boolean;
@@ -1418,7 +1463,7 @@ export type WebhookEndpointListItem = {
1418
1463
  export type UpdateWebhookPayload = {
1419
1464
  name?: string | null | undefined;
1420
1465
  url?: string | null | undefined;
1421
- eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated"> | null | undefined;
1466
+ eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated"> | null | undefined;
1422
1467
  channels?: Array<"email"> | null | null | undefined;
1423
1468
  headers?: {
1424
1469
  [key: string]: string;
@@ -1462,9 +1507,7 @@ export type Organization = {
1462
1507
  metadata: {
1463
1508
  [key: string]: JsonValue;
1464
1509
  } | null;
1465
- design: Design | null;
1466
1510
  replyToDefault: Array<string> | null;
1467
- defaultUnsubscribeGroupId: UnsubscribeId | null;
1468
1511
  emailFooterEnabledDefault: boolean | null;
1469
1512
  messagesUsed: number;
1470
1513
  messagesUsedThisMonth: number;
@@ -1761,7 +1804,8 @@ export type MessagesGetEmailResponses = {
1761
1804
  scheduling: {
1762
1805
  dueAt: string;
1763
1806
  expiresAt: string;
1764
- waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | null;
1807
+ waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | null;
1808
+ reviewExpectedAt: string | null;
1765
1809
  } | null;
1766
1810
  id: string;
1767
1811
  messageId: string;
@@ -2615,9 +2659,9 @@ export type CampaignsScheduleRunErrors = {
2615
2659
  */
2616
2660
  409: ConflictError;
2617
2661
  /**
2618
- * ValidationError
2662
+ * ValidationError | BrandAddressRequiredError | CampaignFooterRequiredError
2619
2663
  */
2620
- 422: ValidationError;
2664
+ 422: ValidationError | BrandAddressRequiredError | CampaignFooterRequiredError;
2621
2665
  /**
2622
2666
  * InternalError
2623
2667
  */
@@ -3147,6 +3191,7 @@ export type EmailListDomainsData = {
3147
3191
  query?: {
3148
3192
  page?: string | null | undefined;
3149
3193
  limit?: string | null | undefined;
3194
+ sendable?: "true" | null | undefined;
3150
3195
  };
3151
3196
  url: "/v1/email/domains";
3152
3197
  };
@@ -3826,6 +3871,7 @@ export type EmailUpdateDomainConfigData = {
3826
3871
  replyTo?: Array<string> | null | null | undefined;
3827
3872
  unsubscribeGroupId?: UnsubscribeId | null | null | undefined;
3828
3873
  footerEnabled?: boolean | null | null | undefined;
3874
+ brandSlug?: string | null | null | undefined;
3829
3875
  };
3830
3876
  path: {
3831
3877
  id: EmailDomainId;
@@ -3867,6 +3913,7 @@ export type EmailUpdateDomainConfigResponses = {
3867
3913
  replyTo: Array<string> | null;
3868
3914
  unsubscribeGroupId: UnsubscribeId | null;
3869
3915
  footerEnabled: boolean | null;
3916
+ brandSlug: string | null;
3870
3917
  };
3871
3918
  };
3872
3919
  export type EmailUpdateDomainConfigResponse = EmailUpdateDomainConfigResponses[keyof EmailUpdateDomainConfigResponses];
@@ -7920,6 +7967,7 @@ export type UnsubscribeListResponses = {
7920
7967
  organizationId: string;
7921
7968
  name: string;
7922
7969
  description: string | null;
7970
+ isDefault: boolean;
7923
7971
  memberCount: number;
7924
7972
  createdAt: string;
7925
7973
  updatedAt: string;
@@ -7965,6 +8013,7 @@ export type UnsubscribeCreateResponses = {
7965
8013
  organizationId: string;
7966
8014
  name: string;
7967
8015
  description: string | null;
8016
+ isDefault: boolean;
7968
8017
  memberCount: number;
7969
8018
  createdAt: string;
7970
8019
  updatedAt: string;
@@ -7992,6 +8041,10 @@ export type UnsubscribeRemoveErrors = {
7992
8041
  * ResourceNotFoundError
7993
8042
  */
7994
8043
  404: ResourceNotFoundError;
8044
+ /**
8045
+ * ConflictError
8046
+ */
8047
+ 409: ConflictError;
7995
8048
  /**
7996
8049
  * InternalError
7997
8050
  */
@@ -8054,12 +8107,60 @@ export type UnsubscribeUpdateResponses = {
8054
8107
  organizationId: string;
8055
8108
  name: string;
8056
8109
  description: string | null;
8110
+ isDefault: boolean;
8057
8111
  memberCount: number;
8058
8112
  createdAt: string;
8059
8113
  updatedAt: string;
8060
8114
  };
8061
8115
  };
8062
8116
  export type UnsubscribeUpdateResponse = UnsubscribeUpdateResponses[keyof UnsubscribeUpdateResponses];
8117
+ export type UnsubscribeSetDefaultData = {
8118
+ body?: never;
8119
+ path: {
8120
+ id: UnsubscribeId;
8121
+ };
8122
+ query?: never;
8123
+ url: "/v1/unsubscribe-groups/{id}/default";
8124
+ };
8125
+ export type UnsubscribeSetDefaultErrors = {
8126
+ /**
8127
+ * UnauthorizedError
8128
+ */
8129
+ 401: UnauthorizedError;
8130
+ /**
8131
+ * ForbiddenError
8132
+ */
8133
+ 403: ForbiddenError;
8134
+ /**
8135
+ * ResourceNotFoundError
8136
+ */
8137
+ 404: ResourceNotFoundError;
8138
+ /**
8139
+ * InternalError
8140
+ */
8141
+ 500: InternalError;
8142
+ /**
8143
+ * GatewayTimeoutError
8144
+ */
8145
+ 504: GatewayTimeoutError;
8146
+ };
8147
+ export type UnsubscribeSetDefaultError = UnsubscribeSetDefaultErrors[keyof UnsubscribeSetDefaultErrors];
8148
+ export type UnsubscribeSetDefaultResponses = {
8149
+ /**
8150
+ * Success
8151
+ */
8152
+ 200: {
8153
+ id: UnsubscribeId;
8154
+ organizationId: string;
8155
+ name: string;
8156
+ description: string | null;
8157
+ isDefault: boolean;
8158
+ memberCount: number;
8159
+ createdAt: string;
8160
+ updatedAt: string;
8161
+ };
8162
+ };
8163
+ export type UnsubscribeSetDefaultResponse = UnsubscribeSetDefaultResponses[keyof UnsubscribeSetDefaultResponses];
8063
8164
  export type UnsubscribeRemoveEmailsData = {
8064
8165
  body: {
8065
8166
  emails: Array<string>;
@@ -8529,6 +8630,7 @@ export type TemplatesListData = {
8529
8630
  channel?: "email" | null | undefined;
8530
8631
  status?: "draft" | "pending" | "approved" | "published" | "rejected" | "archived" | null | undefined;
8531
8632
  search?: string | null | undefined;
8633
+ projectId?: TemplateProjectId | null | undefined;
8532
8634
  sortBy?: "name" | "createdAt" | "updatedAt" | "usageCount" | "lastUsedAt" | null | undefined;
8533
8635
  sortOrder?: "asc" | "desc" | null | undefined;
8534
8636
  };
@@ -8569,6 +8671,7 @@ export type TemplatesCreateData = {
8569
8671
  projectName?: string | null | undefined;
8570
8672
  slug?: string | null | undefined;
8571
8673
  galleryTemplateId?: string | null | undefined;
8674
+ useBrand?: boolean | null | undefined;
8572
8675
  description?: string | null | null | undefined;
8573
8676
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | null | undefined;
8574
8677
  isActive?: boolean | null | undefined;
@@ -9027,6 +9130,7 @@ export type TemplatesUpdateData = {
9027
9130
  data: {
9028
9131
  name?: string | null | undefined;
9029
9132
  slug?: string | null | undefined;
9133
+ entryPath?: string | null | undefined;
9030
9134
  description?: string | null | null | undefined;
9031
9135
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | null | undefined;
9032
9136
  fromDefault?: TemplateFromDefault | null | null | undefined;
@@ -9078,6 +9182,58 @@ export type TemplatesUpdateResponses = {
9078
9182
  200: Template;
9079
9183
  };
9080
9184
  export type TemplatesUpdateResponse = TemplatesUpdateResponses[keyof TemplatesUpdateResponses];
9185
+ export type TemplatesAddEntryData = {
9186
+ body: {
9187
+ entryPath: string;
9188
+ name: string;
9189
+ slug: string;
9190
+ description?: string | null | null | undefined;
9191
+ category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | null | undefined;
9192
+ };
9193
+ path: {
9194
+ projectId: TemplateProjectId;
9195
+ };
9196
+ query?: never;
9197
+ url: "/v1/templates/projects/{projectId}/entries";
9198
+ };
9199
+ export type TemplatesAddEntryErrors = {
9200
+ /**
9201
+ * UnauthorizedError
9202
+ */
9203
+ 401: UnauthorizedError;
9204
+ /**
9205
+ * ForbiddenError
9206
+ */
9207
+ 403: ForbiddenError;
9208
+ /**
9209
+ * ResourceNotFoundError
9210
+ */
9211
+ 404: ResourceNotFoundError;
9212
+ /**
9213
+ * ConflictError
9214
+ */
9215
+ 409: ConflictError;
9216
+ /**
9217
+ * ValidationError
9218
+ */
9219
+ 422: ValidationError;
9220
+ /**
9221
+ * InternalError
9222
+ */
9223
+ 500: InternalError;
9224
+ /**
9225
+ * GatewayTimeoutError
9226
+ */
9227
+ 504: GatewayTimeoutError;
9228
+ };
9229
+ export type TemplatesAddEntryError = TemplatesAddEntryErrors[keyof TemplatesAddEntryErrors];
9230
+ export type TemplatesAddEntryResponses = {
9231
+ /**
9232
+ * Success
9233
+ */
9234
+ 201: Template;
9235
+ };
9236
+ export type TemplatesAddEntryResponse = TemplatesAddEntryResponses[keyof TemplatesAddEntryResponses];
9081
9237
  export type TemplatesPatchWorkspaceData = {
9082
9238
  body: {
9083
9239
  expectedRevision: string;
@@ -9387,6 +9543,138 @@ export type TemplatesDiffWorkspaceResponses = {
9387
9543
  };
9388
9544
  };
9389
9545
  export type TemplatesDiffWorkspaceResponse = TemplatesDiffWorkspaceResponses[keyof TemplatesDiffWorkspaceResponses];
9546
+ export type TemplatesPutWorkspaceAssetData = {
9547
+ body: {
9548
+ expectedRevision: string;
9549
+ path: string;
9550
+ contentBase64: string;
9551
+ replace: boolean;
9552
+ idempotencyKey: string;
9553
+ };
9554
+ path: {
9555
+ id: TemplateId;
9556
+ };
9557
+ query?: never;
9558
+ url: "/v1/templates/{id}/workspace/assets";
9559
+ };
9560
+ export type TemplatesPutWorkspaceAssetErrors = {
9561
+ /**
9562
+ * UnauthorizedError
9563
+ */
9564
+ 401: UnauthorizedError;
9565
+ /**
9566
+ * ForbiddenError
9567
+ */
9568
+ 403: ForbiddenError;
9569
+ /**
9570
+ * ResourceNotFoundError
9571
+ */
9572
+ 404: ResourceNotFoundError;
9573
+ /**
9574
+ * ConflictError
9575
+ */
9576
+ 409: ConflictError;
9577
+ /**
9578
+ * ValidationError
9579
+ */
9580
+ 422: ValidationError;
9581
+ /**
9582
+ * InternalError
9583
+ */
9584
+ 500: InternalError;
9585
+ /**
9586
+ * GatewayTimeoutError
9587
+ */
9588
+ 504: GatewayTimeoutError;
9589
+ };
9590
+ export type TemplatesPutWorkspaceAssetError = TemplatesPutWorkspaceAssetErrors[keyof TemplatesPutWorkspaceAssetErrors];
9591
+ export type TemplatesPutWorkspaceAssetResponses = {
9592
+ /**
9593
+ * Success
9594
+ */
9595
+ 200: {
9596
+ workspace: {
9597
+ projectId: TemplateProjectId;
9598
+ organizationId: OrganizationId | null;
9599
+ ownerEpoch: number;
9600
+ repositoryName: string;
9601
+ defaultBranch: string;
9602
+ baseCommit: string;
9603
+ remoteHead: string;
9604
+ pendingRemoteHead: string | null;
9605
+ revision: string;
9606
+ overlay: {
9607
+ [key: string]: string | null;
9608
+ };
9609
+ assetChanges: Array<{
9610
+ path: string;
9611
+ status: "added" | "modified" | "deleted";
9612
+ }>;
9613
+ conflicts: Array<{
9614
+ path: string;
9615
+ base: string | null;
9616
+ draft: string | null;
9617
+ main: string | null;
9618
+ }>;
9619
+ provenance: {
9620
+ references: Array<{
9621
+ kind: string;
9622
+ digest: string;
9623
+ locator?: string | undefined;
9624
+ }>;
9625
+ };
9626
+ mounts: Array<{
9627
+ kind: "project";
9628
+ root: "/project";
9629
+ access: "read-write";
9630
+ } | {
9631
+ root: string;
9632
+ digest: string;
9633
+ fileCount: number;
9634
+ byteSize: number;
9635
+ kind: "started-from";
9636
+ access: "read-only";
9637
+ templateId: string;
9638
+ slug: string;
9639
+ name: string;
9640
+ } | {
9641
+ root: string;
9642
+ digest: string;
9643
+ fileCount: number;
9644
+ byteSize: number;
9645
+ kind: "resource";
9646
+ access: "read-only";
9647
+ resourceId: string;
9648
+ name: string;
9649
+ } | {
9650
+ root: string;
9651
+ digest: string;
9652
+ fileCount: number;
9653
+ byteSize: number;
9654
+ kind: "library-template";
9655
+ access: "read-only";
9656
+ templateId: string;
9657
+ slug: string;
9658
+ name: string;
9659
+ }>;
9660
+ libraryManifestDigest: string;
9661
+ createdAt: string;
9662
+ updatedAt: string;
9663
+ createdBy: {
9664
+ userId: UserId;
9665
+ via: "api" | "mcp" | "agent";
9666
+ };
9667
+ updatedBy: {
9668
+ userId: UserId;
9669
+ via: "api" | "mcp" | "agent";
9670
+ };
9671
+ };
9672
+ files: {
9673
+ [key: string]: string;
9674
+ };
9675
+ };
9676
+ };
9677
+ export type TemplatesPutWorkspaceAssetResponse = TemplatesPutWorkspaceAssetResponses[keyof TemplatesPutWorkspaceAssetResponses];
9390
9678
  export type TemplatesReconcileWorkspaceData = {
9391
9679
  body: {
9392
9680
  expectedRevision: string;
@@ -9989,10 +10277,6 @@ export type TemplatesCheckWorkspaceResponses = {
9989
10277
  schemaDigest: string;
9990
10278
  contractDigest: string;
9991
10279
  };
9992
- runtime: {
9993
- now?: number | undefined;
9994
- randomSeed?: number | undefined;
9995
- };
9996
10280
  fixtures: Array<string>;
9997
10281
  } | null;
9998
10282
  diagnostics: Array<{
@@ -10100,10 +10384,6 @@ export type TemplatesRenderWorkspaceFixtureResponses = {
10100
10384
  schemaDigest: string;
10101
10385
  contractDigest: string;
10102
10386
  };
10103
- runtime: {
10104
- now?: number | undefined;
10105
- randomSeed?: number | undefined;
10106
- };
10107
10387
  fixtures: Array<string>;
10108
10388
  } | null;
10109
10389
  diagnostics: Array<{
@@ -10183,6 +10463,7 @@ export type TemplatesPublishData = {
10183
10463
  commitSha: string;
10184
10464
  entryPath: string;
10185
10465
  expectedWorkspaceRevision: string;
10466
+ ifCurrentPublicationId?: TemplatePublicationId | null | undefined;
10186
10467
  };
10187
10468
  path: {
10188
10469
  id: TemplateId;
@@ -10237,26 +10518,16 @@ export type TemplatesPublishResponses = {
10237
10518
  buildIdentity: string;
10238
10519
  manifest: {
10239
10520
  templateKey: string;
10240
- executable: {
10241
- codeDigest: string;
10521
+ ir: {
10522
+ version: number;
10523
+ digest: string;
10242
10524
  bytes: number;
10243
10525
  };
10526
+ compiler: string;
10244
10527
  input: {
10245
10528
  schemaDigest: string;
10246
10529
  contractDigest: string;
10247
10530
  };
10248
- environment: {
10249
- locale: string;
10250
- timeZone: "UTC";
10251
- now?: number | undefined;
10252
- randomSeed?: number | undefined;
10253
- compiler: string;
10254
- runtime: string;
10255
- checker: string;
10256
- lockKind: "bun" | "npm";
10257
- lockDigest: string;
10258
- digest: string;
10259
- };
10260
10531
  assets: {
10261
10532
  base: string;
10262
10533
  entries: Array<{
@@ -10274,8 +10545,17 @@ export type TemplatesPublishResponses = {
10274
10545
  entryPath: string;
10275
10546
  treeDigest: string;
10276
10547
  };
10548
+ brand?: {
10549
+ slug: string;
10550
+ css: string;
10551
+ assets: BrandAssets;
10552
+ footer: BrandFooter;
10553
+ renderedFooter: BrandRenderedFooter;
10554
+ digest: string;
10555
+ rendersFooter: "every" | "some" | "none";
10556
+ } | undefined;
10277
10557
  };
10278
- executable: {
10558
+ ir: {
10279
10559
  key: string;
10280
10560
  digest: string;
10281
10561
  };
@@ -10388,26 +10668,16 @@ export type TemplatesGetPublicationResponses = {
10388
10668
  buildIdentity: string;
10389
10669
  manifest: {
10390
10670
  templateKey: string;
10391
- executable: {
10392
- codeDigest: string;
10671
+ ir: {
10672
+ version: number;
10673
+ digest: string;
10393
10674
  bytes: number;
10394
10675
  };
10676
+ compiler: string;
10395
10677
  input: {
10396
10678
  schemaDigest: string;
10397
10679
  contractDigest: string;
10398
10680
  };
10399
- environment: {
10400
- locale: string;
10401
- timeZone: "UTC";
10402
- now?: number | undefined;
10403
- randomSeed?: number | undefined;
10404
- compiler: string;
10405
- runtime: string;
10406
- checker: string;
10407
- lockKind: "bun" | "npm";
10408
- lockDigest: string;
10409
- digest: string;
10410
- };
10411
10681
  assets: {
10412
10682
  base: string;
10413
10683
  entries: Array<{
@@ -10425,8 +10695,17 @@ export type TemplatesGetPublicationResponses = {
10425
10695
  entryPath: string;
10426
10696
  treeDigest: string;
10427
10697
  };
10698
+ brand?: {
10699
+ slug: string;
10700
+ css: string;
10701
+ assets: BrandAssets;
10702
+ footer: BrandFooter;
10703
+ renderedFooter: BrandRenderedFooter;
10704
+ digest: string;
10705
+ rendersFooter: "every" | "some" | "none";
10706
+ } | undefined;
10428
10707
  };
10429
- executable: {
10708
+ ir: {
10430
10709
  key: string;
10431
10710
  digest: string;
10432
10711
  };
@@ -10932,13 +11211,13 @@ export type TemplatesRemoveWorkspaceResourceResponses = {
10932
11211
  };
10933
11212
  };
10934
11213
  export type TemplatesRemoveWorkspaceResourceResponse = TemplatesRemoveWorkspaceResourceResponses[keyof TemplatesRemoveWorkspaceResourceResponses];
10935
- export type DesignGetData = {
11214
+ export type BrandsListData = {
10936
11215
  body?: never;
10937
11216
  path?: never;
10938
11217
  query?: never;
10939
- url: "/v1/design";
11218
+ url: "/v1/brands";
10940
11219
  };
10941
- export type DesignGetErrors = {
11220
+ export type BrandsListErrors = {
10942
11221
  /**
10943
11222
  * UnauthorizedError
10944
11223
  */
@@ -10956,23 +11235,156 @@ export type DesignGetErrors = {
10956
11235
  */
10957
11236
  504: GatewayTimeoutError;
10958
11237
  };
10959
- export type DesignGetError = DesignGetErrors[keyof DesignGetErrors];
10960
- export type DesignGetResponses = {
11238
+ export type BrandsListError = BrandsListErrors[keyof BrandsListErrors];
11239
+ export type BrandsListResponses = {
10961
11240
  /**
10962
- * DesignSettings
11241
+ * BrandList
10963
11242
  */
10964
- 200: DesignSettings;
11243
+ 200: BrandList;
10965
11244
  };
10966
- export type DesignGetResponse = DesignGetResponses[keyof DesignGetResponses];
10967
- export type DesignUpdateData = {
11245
+ export type BrandsListResponse = BrandsListResponses[keyof BrandsListResponses];
11246
+ export type BrandsCreateData = {
10968
11247
  body: {
10969
- design: Design | null;
11248
+ slug: string;
11249
+ name: string;
11250
+ css?: string | null | undefined;
11251
+ assets?: BrandAssets | null | undefined;
11252
+ footer?: BrandFooter | null | undefined;
11253
+ isDefault?: boolean | null | undefined;
10970
11254
  };
10971
11255
  path?: never;
10972
11256
  query?: never;
10973
- url: "/v1/design";
11257
+ url: "/v1/brands";
11258
+ };
11259
+ export type BrandsCreateErrors = {
11260
+ /**
11261
+ * UnauthorizedError
11262
+ */
11263
+ 401: UnauthorizedError;
11264
+ /**
11265
+ * ForbiddenError
11266
+ */
11267
+ 403: ForbiddenError;
11268
+ /**
11269
+ * ConflictError
11270
+ */
11271
+ 409: ConflictError;
11272
+ /**
11273
+ * ValidationError
11274
+ */
11275
+ 422: ValidationError;
11276
+ /**
11277
+ * InternalError
11278
+ */
11279
+ 500: InternalError;
11280
+ /**
11281
+ * GatewayTimeoutError
11282
+ */
11283
+ 504: GatewayTimeoutError;
11284
+ };
11285
+ export type BrandsCreateError = BrandsCreateErrors[keyof BrandsCreateErrors];
11286
+ export type BrandsCreateResponses = {
11287
+ /**
11288
+ * Success
11289
+ */
11290
+ 201: Brand;
11291
+ };
11292
+ export type BrandsCreateResponse = BrandsCreateResponses[keyof BrandsCreateResponses];
11293
+ export type BrandsRemoveData = {
11294
+ body?: never;
11295
+ path: {
11296
+ slug: string;
11297
+ };
11298
+ query?: never;
11299
+ url: "/v1/brands/{slug}";
11300
+ };
11301
+ export type BrandsRemoveErrors = {
11302
+ /**
11303
+ * UnauthorizedError
11304
+ */
11305
+ 401: UnauthorizedError;
11306
+ /**
11307
+ * ForbiddenError
11308
+ */
11309
+ 403: ForbiddenError;
11310
+ /**
11311
+ * ResourceNotFoundError
11312
+ */
11313
+ 404: ResourceNotFoundError;
11314
+ /**
11315
+ * ConflictError
11316
+ */
11317
+ 409: ConflictError;
11318
+ /**
11319
+ * InternalError
11320
+ */
11321
+ 500: InternalError;
11322
+ /**
11323
+ * GatewayTimeoutError
11324
+ */
11325
+ 504: GatewayTimeoutError;
11326
+ };
11327
+ export type BrandsRemoveError = BrandsRemoveErrors[keyof BrandsRemoveErrors];
11328
+ export type BrandsRemoveResponses = {
11329
+ /**
11330
+ * SuccessResponse
11331
+ */
11332
+ 200: SuccessResponse;
11333
+ };
11334
+ export type BrandsRemoveResponse = BrandsRemoveResponses[keyof BrandsRemoveResponses];
11335
+ export type BrandsGetData = {
11336
+ body?: never;
11337
+ path: {
11338
+ slug: string;
11339
+ };
11340
+ query?: never;
11341
+ url: "/v1/brands/{slug}";
11342
+ };
11343
+ export type BrandsGetErrors = {
11344
+ /**
11345
+ * UnauthorizedError
11346
+ */
11347
+ 401: UnauthorizedError;
11348
+ /**
11349
+ * ForbiddenError
11350
+ */
11351
+ 403: ForbiddenError;
11352
+ /**
11353
+ * ResourceNotFoundError
11354
+ */
11355
+ 404: ResourceNotFoundError;
11356
+ /**
11357
+ * InternalError
11358
+ */
11359
+ 500: InternalError;
11360
+ /**
11361
+ * GatewayTimeoutError
11362
+ */
11363
+ 504: GatewayTimeoutError;
11364
+ };
11365
+ export type BrandsGetError = BrandsGetErrors[keyof BrandsGetErrors];
11366
+ export type BrandsGetResponses = {
11367
+ /**
11368
+ * Brand
11369
+ */
11370
+ 200: Brand;
11371
+ };
11372
+ export type BrandsGetResponse = BrandsGetResponses[keyof BrandsGetResponses];
11373
+ export type BrandsUpdateData = {
11374
+ body: {
11375
+ newSlug?: string | null | undefined;
11376
+ name?: string | null | undefined;
11377
+ css?: string | null | undefined;
11378
+ assets?: BrandAssets | null | undefined;
11379
+ footer?: BrandFooter | null | undefined;
11380
+ };
11381
+ path: {
11382
+ slug: string;
11383
+ };
11384
+ query?: never;
11385
+ url: "/v1/brands/{slug}";
10974
11386
  };
10975
- export type DesignUpdateErrors = {
11387
+ export type BrandsUpdateErrors = {
10976
11388
  /**
10977
11389
  * UnauthorizedError
10978
11390
  */
@@ -10981,6 +11393,14 @@ export type DesignUpdateErrors = {
10981
11393
  * ForbiddenError
10982
11394
  */
10983
11395
  403: ForbiddenError;
11396
+ /**
11397
+ * ResourceNotFoundError
11398
+ */
11399
+ 404: ResourceNotFoundError;
11400
+ /**
11401
+ * ConflictError
11402
+ */
11403
+ 409: ConflictError;
10984
11404
  /**
10985
11405
  * ValidationError
10986
11406
  */
@@ -10994,14 +11414,52 @@ export type DesignUpdateErrors = {
10994
11414
  */
10995
11415
  504: GatewayTimeoutError;
10996
11416
  };
10997
- export type DesignUpdateError = DesignUpdateErrors[keyof DesignUpdateErrors];
10998
- export type DesignUpdateResponses = {
11417
+ export type BrandsUpdateError = BrandsUpdateErrors[keyof BrandsUpdateErrors];
11418
+ export type BrandsUpdateResponses = {
10999
11419
  /**
11000
- * DesignSettings
11420
+ * Brand
11001
11421
  */
11002
- 200: DesignSettings;
11422
+ 200: Brand;
11423
+ };
11424
+ export type BrandsUpdateResponse = BrandsUpdateResponses[keyof BrandsUpdateResponses];
11425
+ export type BrandsSetDefaultData = {
11426
+ body?: never;
11427
+ path: {
11428
+ slug: string;
11429
+ };
11430
+ query?: never;
11431
+ url: "/v1/brands/{slug}/default";
11003
11432
  };
11004
- export type DesignUpdateResponse = DesignUpdateResponses[keyof DesignUpdateResponses];
11433
+ export type BrandsSetDefaultErrors = {
11434
+ /**
11435
+ * UnauthorizedError
11436
+ */
11437
+ 401: UnauthorizedError;
11438
+ /**
11439
+ * ForbiddenError
11440
+ */
11441
+ 403: ForbiddenError;
11442
+ /**
11443
+ * ResourceNotFoundError
11444
+ */
11445
+ 404: ResourceNotFoundError;
11446
+ /**
11447
+ * InternalError
11448
+ */
11449
+ 500: InternalError;
11450
+ /**
11451
+ * GatewayTimeoutError
11452
+ */
11453
+ 504: GatewayTimeoutError;
11454
+ };
11455
+ export type BrandsSetDefaultError = BrandsSetDefaultErrors[keyof BrandsSetDefaultErrors];
11456
+ export type BrandsSetDefaultResponses = {
11457
+ /**
11458
+ * Brand
11459
+ */
11460
+ 200: Brand;
11461
+ };
11462
+ export type BrandsSetDefaultResponse = BrandsSetDefaultResponses[keyof BrandsSetDefaultResponses];
11005
11463
  export type WebhooksListData = {
11006
11464
  body?: never;
11007
11465
  path?: never;
@@ -11046,7 +11504,7 @@ export type WebhooksCreateData = {
11046
11504
  body: {
11047
11505
  name: string;
11048
11506
  url: string;
11049
- eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated">;
11507
+ eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated">;
11050
11508
  channels?: Array<"email"> | null | undefined;
11051
11509
  headers?: {
11052
11510
  [key: string]: string;
@@ -11186,7 +11644,7 @@ export type WebhooksUpdateData = {
11186
11644
  body: {
11187
11645
  name?: string | null | undefined;
11188
11646
  url?: string | null | undefined;
11189
- eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated"> | null | undefined;
11647
+ eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated"> | null | undefined;
11190
11648
  channels?: Array<"email"> | null | null | undefined;
11191
11649
  headers?: {
11192
11650
  [key: string]: string;
@@ -11578,9 +12036,7 @@ export type OrganizationsUpdateData = {
11578
12036
  metadata?: {
11579
12037
  [key: string]: JsonValue;
11580
12038
  } | null | undefined;
11581
- design?: Design | null | null | undefined;
11582
12039
  replyToDefault?: Array<string> | null | null | undefined;
11583
- defaultUnsubscribeGroupId?: UnsubscribeId | null | null | undefined;
11584
12040
  emailFooterEnabledDefault?: boolean | null | null | undefined;
11585
12041
  };
11586
12042
  path?: never;
@@ -11621,6 +12077,51 @@ export type OrganizationsUpdateResponses = {
11621
12077
  200: Organization;
11622
12078
  };
11623
12079
  export type OrganizationsUpdateResponse = OrganizationsUpdateResponses[keyof OrganizationsUpdateResponses];
12080
+ export type OrganizationsGetProfileData = {
12081
+ body?: never;
12082
+ path?: never;
12083
+ query?: never;
12084
+ url: "/v1/organizations/current/profile";
12085
+ };
12086
+ export type OrganizationsGetProfileErrors = {
12087
+ /**
12088
+ * UnauthorizedError
12089
+ */
12090
+ 401: UnauthorizedError;
12091
+ /**
12092
+ * ForbiddenError
12093
+ */
12094
+ 403: ForbiddenError;
12095
+ /**
12096
+ * InternalError
12097
+ */
12098
+ 500: InternalError;
12099
+ /**
12100
+ * GatewayTimeoutError
12101
+ */
12102
+ 504: GatewayTimeoutError;
12103
+ };
12104
+ export type OrganizationsGetProfileError = OrganizationsGetProfileErrors[keyof OrganizationsGetProfileErrors];
12105
+ export type OrganizationsGetProfileResponses = {
12106
+ /**
12107
+ * Success
12108
+ */
12109
+ 200: {
12110
+ /**
12111
+ * Opaque identity for your organization membership
12112
+ */
12113
+ id: string;
12114
+ /**
12115
+ * Your display name
12116
+ */
12117
+ name: string;
12118
+ /**
12119
+ * Your display name and organization name
12120
+ */
12121
+ nickname: string;
12122
+ };
12123
+ };
12124
+ export type OrganizationsGetProfileResponse = OrganizationsGetProfileResponses[keyof OrganizationsGetProfileResponses];
11624
12125
  export type OrganizationsGetUsageData = {
11625
12126
  body?: never;
11626
12127
  path?: never;