samva 0.4.0 → 0.5.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/{categories-CsUa8ojo.js → categories-B9Nw2v_F.js} +5 -1
- package/dist/client/sdk.gen.d.ts +150 -11
- package/dist/client/types.gen.d.ts +893 -37
- package/dist/{client-BmZK_uCt.js → client-B7gEkvEq.js} +952 -110
- package/dist/{client-attribution-BslSOa_8.js → client-attribution-B2yJBXdZ.js} +2 -2
- package/dist/effect/api-keys.js +1 -1
- package/dist/effect/campaigns.d.ts +16 -0
- package/dist/effect/campaigns.js +1 -1
- package/dist/effect/categories.js +1 -1
- package/dist/effect/client.js +1 -1
- package/dist/effect/contacts.js +1 -1
- package/dist/effect/conversations.d.ts +15 -0
- package/dist/effect/conversations.js +1 -1
- package/dist/effect/design.js +1 -1
- package/dist/effect/email.d.ts +700 -2
- package/dist/effect/email.js +27 -3
- package/dist/effect/generated-metadata.d.ts +4 -0
- package/dist/effect/generated.d.ts +4102 -359
- package/dist/effect/index.js +2 -2
- package/dist/effect/internal/operation.d.ts +13 -3
- package/dist/effect/media.d.ts +3 -3
- package/dist/effect/media.js +1 -1
- package/dist/effect/messages.d.ts +180 -1
- package/dist/effect/messages.js +5 -3
- package/dist/effect/operations.js +1 -1
- package/dist/effect/organizations.js +1 -1
- package/dist/effect/retry.js +1 -1
- package/dist/effect/scheduled-messages.d.ts +90 -6
- package/dist/effect/scheduled-messages.js +5 -3
- package/dist/effect/templates.d.ts +12 -0
- package/dist/effect/templates.js +2 -2
- package/dist/effect/webhooks.d.ts +40 -6
- package/dist/effect/webhooks.js +2 -2
- package/dist/index.js +2 -2
- package/dist/{operation-B1knNlxk.js → operation-B4FjN6wq.js} +50 -2
- package/dist/promises/errors.gen.d.ts +21 -2
- package/dist/promises/index.d.ts +1 -0
- package/dist/promises/index.js +2 -2
- package/dist/promises/types.gen.d.ts +1 -1
- package/dist/{promises-n1opem5V.js → promises-CP_nxUus.js} +502 -11
- package/dist/service-map.d.ts +66 -0
- package/package.json +3 -3
package/dist/effect/email.d.ts
CHANGED
|
@@ -78,6 +78,11 @@ export declare const send: (input: EmailSendInput, options?: SendOptions | undef
|
|
|
78
78
|
} | null;
|
|
79
79
|
}[];
|
|
80
80
|
readonly deliveries: readonly {
|
|
81
|
+
readonly scheduling: {
|
|
82
|
+
readonly dueAt: string;
|
|
83
|
+
readonly expiresAt: string;
|
|
84
|
+
readonly waitReason: "campaign-paused" | "daily-quota" | "domain-health" | "domain-warming" | "onboarding-review" | "provider-unavailable" | "rate" | "retry" | "tenant-health" | null;
|
|
85
|
+
} | null;
|
|
81
86
|
readonly id: string;
|
|
82
87
|
readonly messageId: string;
|
|
83
88
|
readonly recipientId: string | null;
|
|
@@ -138,7 +143,7 @@ export declare const send: (input: EmailSendInput, options?: SendOptions | undef
|
|
|
138
143
|
readonly createdAt: string;
|
|
139
144
|
readonly updatedAt: string;
|
|
140
145
|
}[];
|
|
141
|
-
}, import("./generated").BillingProviderError | import("./generated").ConflictError | import("./generated").ExternalServiceError | import("./generated").FlagDisabledError | import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").PaymentRequiredError | import("./generated").RateLimitedError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError | import("./generated").WebhookEnqueueError, import("./client").Service>;
|
|
146
|
+
}, import("./generated").BillingProviderError | import("./generated").ConflictError | import("./generated").ExternalServiceError | import("./generated").FlagDisabledError | import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").OnboardingReviewRequiredError | import("./generated").PaymentRequiredError | import("./generated").RateLimitedError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError | import("./generated").WebhookEnqueueError, import("./client").Service>;
|
|
142
147
|
export declare const getTrackingDefaults: (_?: never) => import("effect/Effect").Effect<{
|
|
143
148
|
readonly opens: boolean;
|
|
144
149
|
readonly clicks: boolean;
|
|
@@ -259,6 +264,28 @@ export declare const addDomain: (input: {
|
|
|
259
264
|
readonly createdAt: string;
|
|
260
265
|
readonly updatedAt: string;
|
|
261
266
|
}, import("./generated").BillingProviderError | import("./generated").ConflictError | import("./generated").EmailChannelError | import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").PaymentRequiredError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
|
|
267
|
+
export declare const rotateDomainDkim: (input: {
|
|
268
|
+
readonly id: string;
|
|
269
|
+
} & {
|
|
270
|
+
readonly idempotencyKey: string;
|
|
271
|
+
}) => import("effect/Effect").Effect<{
|
|
272
|
+
readonly id: string;
|
|
273
|
+
readonly domainId: string & import("effect/Brand").Brand<"EmailDomainId">;
|
|
274
|
+
readonly phase: "complete" | "cutover" | "staged";
|
|
275
|
+
readonly selector: string;
|
|
276
|
+
readonly record: {
|
|
277
|
+
readonly name: string;
|
|
278
|
+
readonly type: "TXT";
|
|
279
|
+
readonly value: string;
|
|
280
|
+
readonly ttl: string;
|
|
281
|
+
};
|
|
282
|
+
readonly formerRecord: {
|
|
283
|
+
readonly name: string;
|
|
284
|
+
readonly type: "TXT";
|
|
285
|
+
readonly value: string;
|
|
286
|
+
};
|
|
287
|
+
readonly minimumRetainUntil: string | null;
|
|
288
|
+
}, import("./generated").ConflictError | import("./generated").EmailChannelError | import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
|
|
262
289
|
export declare const getDomainVerification: (input: {
|
|
263
290
|
readonly id: string;
|
|
264
291
|
}) => import("effect/Effect").Effect<{
|
|
@@ -295,6 +322,54 @@ export declare const getDomainVerification: (input: {
|
|
|
295
322
|
readonly message: string;
|
|
296
323
|
readonly failedAt: string;
|
|
297
324
|
} | null;
|
|
325
|
+
readonly health: {
|
|
326
|
+
readonly actionOwner: "customer" | "none" | "provider" | "samva";
|
|
327
|
+
readonly action: string;
|
|
328
|
+
readonly freshness: "current" | "stale" | "unknown";
|
|
329
|
+
readonly observedAt: string | null;
|
|
330
|
+
readonly staleAt: string | null;
|
|
331
|
+
readonly nextRetryAt: string | null;
|
|
332
|
+
readonly reason: "dns-action-required" | "dns-unavailable" | "inactive" | "observation-stale" | "observation-unknown" | "provider-failed" | "provider-ownership-action-required" | "provider-pending" | "ready" | "samva-repair" | "signing-custody-action-required";
|
|
333
|
+
};
|
|
334
|
+
readonly sending: {
|
|
335
|
+
readonly actionOwner: "customer" | "none" | "provider" | "samva";
|
|
336
|
+
readonly action: string;
|
|
337
|
+
readonly freshness: "current" | "stale" | "unknown";
|
|
338
|
+
readonly observedAt: string | null;
|
|
339
|
+
readonly staleAt: string | null;
|
|
340
|
+
readonly nextRetryAt: string | null;
|
|
341
|
+
readonly status: "blocked" | "ready" | "unknown";
|
|
342
|
+
readonly reason: "domain-not-ready" | "domain-observation-stale" | "operator-paused" | "provider-paused" | "ready" | "tenant-health-stale" | "tenant-health-unknown";
|
|
343
|
+
};
|
|
344
|
+
readonly dmarc: {
|
|
345
|
+
readonly status: "invalid" | "missing" | "multiple" | "unknown" | "valid";
|
|
346
|
+
readonly source: "direct" | "none" | "organizational";
|
|
347
|
+
readonly policyDomain: string | null;
|
|
348
|
+
readonly policy: "none" | "quarantine" | "reject" | null;
|
|
349
|
+
readonly subdomainPolicy: "none" | "quarantine" | "reject" | null;
|
|
350
|
+
readonly effectivePolicy: "none" | "quarantine" | "reject" | null;
|
|
351
|
+
readonly observedAt: string | null;
|
|
352
|
+
readonly staleAt: string | null;
|
|
353
|
+
readonly guidance: string;
|
|
354
|
+
};
|
|
355
|
+
readonly rotation: {
|
|
356
|
+
readonly id: string;
|
|
357
|
+
readonly domainId: string & import("effect/Brand").Brand<"EmailDomainId">;
|
|
358
|
+
readonly phase: "complete" | "cutover" | "staged";
|
|
359
|
+
readonly selector: string;
|
|
360
|
+
readonly record: {
|
|
361
|
+
readonly name: string;
|
|
362
|
+
readonly type: "TXT";
|
|
363
|
+
readonly value: string;
|
|
364
|
+
readonly ttl: string;
|
|
365
|
+
};
|
|
366
|
+
readonly formerRecord: {
|
|
367
|
+
readonly name: string;
|
|
368
|
+
readonly type: "TXT";
|
|
369
|
+
readonly value: string;
|
|
370
|
+
};
|
|
371
|
+
readonly minimumRetainUntil: string | null;
|
|
372
|
+
} | null;
|
|
298
373
|
}, import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
|
|
299
374
|
export declare const advanceDomainVerification: (input: {
|
|
300
375
|
readonly id: string;
|
|
@@ -332,6 +407,54 @@ export declare const advanceDomainVerification: (input: {
|
|
|
332
407
|
readonly message: string;
|
|
333
408
|
readonly failedAt: string;
|
|
334
409
|
} | null;
|
|
410
|
+
readonly health: {
|
|
411
|
+
readonly actionOwner: "customer" | "none" | "provider" | "samva";
|
|
412
|
+
readonly action: string;
|
|
413
|
+
readonly freshness: "current" | "stale" | "unknown";
|
|
414
|
+
readonly observedAt: string | null;
|
|
415
|
+
readonly staleAt: string | null;
|
|
416
|
+
readonly nextRetryAt: string | null;
|
|
417
|
+
readonly reason: "dns-action-required" | "dns-unavailable" | "inactive" | "observation-stale" | "observation-unknown" | "provider-failed" | "provider-ownership-action-required" | "provider-pending" | "ready" | "samva-repair" | "signing-custody-action-required";
|
|
418
|
+
};
|
|
419
|
+
readonly sending: {
|
|
420
|
+
readonly actionOwner: "customer" | "none" | "provider" | "samva";
|
|
421
|
+
readonly action: string;
|
|
422
|
+
readonly freshness: "current" | "stale" | "unknown";
|
|
423
|
+
readonly observedAt: string | null;
|
|
424
|
+
readonly staleAt: string | null;
|
|
425
|
+
readonly nextRetryAt: string | null;
|
|
426
|
+
readonly status: "blocked" | "ready" | "unknown";
|
|
427
|
+
readonly reason: "domain-not-ready" | "domain-observation-stale" | "operator-paused" | "provider-paused" | "ready" | "tenant-health-stale" | "tenant-health-unknown";
|
|
428
|
+
};
|
|
429
|
+
readonly dmarc: {
|
|
430
|
+
readonly status: "invalid" | "missing" | "multiple" | "unknown" | "valid";
|
|
431
|
+
readonly source: "direct" | "none" | "organizational";
|
|
432
|
+
readonly policyDomain: string | null;
|
|
433
|
+
readonly policy: "none" | "quarantine" | "reject" | null;
|
|
434
|
+
readonly subdomainPolicy: "none" | "quarantine" | "reject" | null;
|
|
435
|
+
readonly effectivePolicy: "none" | "quarantine" | "reject" | null;
|
|
436
|
+
readonly observedAt: string | null;
|
|
437
|
+
readonly staleAt: string | null;
|
|
438
|
+
readonly guidance: string;
|
|
439
|
+
};
|
|
440
|
+
readonly rotation: {
|
|
441
|
+
readonly id: string;
|
|
442
|
+
readonly domainId: string & import("effect/Brand").Brand<"EmailDomainId">;
|
|
443
|
+
readonly phase: "complete" | "cutover" | "staged";
|
|
444
|
+
readonly selector: string;
|
|
445
|
+
readonly record: {
|
|
446
|
+
readonly name: string;
|
|
447
|
+
readonly type: "TXT";
|
|
448
|
+
readonly value: string;
|
|
449
|
+
readonly ttl: string;
|
|
450
|
+
};
|
|
451
|
+
readonly formerRecord: {
|
|
452
|
+
readonly name: string;
|
|
453
|
+
readonly type: "TXT";
|
|
454
|
+
readonly value: string;
|
|
455
|
+
};
|
|
456
|
+
readonly minimumRetainUntil: string | null;
|
|
457
|
+
} | null;
|
|
335
458
|
}, import("./generated").ConflictError | import("./generated").EmailChannelError | import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").RateLimitedError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
|
|
336
459
|
export declare const getDomainById: (input: {
|
|
337
460
|
readonly id: string;
|
|
@@ -525,6 +648,557 @@ export declare const disableCustomTracking: (input: {
|
|
|
525
648
|
readonly success: boolean;
|
|
526
649
|
readonly message: string;
|
|
527
650
|
}, import("./generated").ConflictError | import("./generated").EmailChannelError | import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
|
|
651
|
+
export declare const getDomainWarming: (input: {
|
|
652
|
+
readonly id: string;
|
|
653
|
+
}) => import("effect/Effect").Effect<{
|
|
654
|
+
readonly domain: {
|
|
655
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainId">;
|
|
656
|
+
readonly domain: string;
|
|
657
|
+
};
|
|
658
|
+
readonly plan: {
|
|
659
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingPlanId">;
|
|
660
|
+
readonly status: "active" | "completed" | "paused";
|
|
661
|
+
readonly identity: "migrating" | "new" | "returning";
|
|
662
|
+
readonly initialDailyRecipients: number;
|
|
663
|
+
readonly dailyGrowthPercent: number;
|
|
664
|
+
readonly targetDailyRecipients: number;
|
|
665
|
+
readonly holdReason: string | null;
|
|
666
|
+
readonly heldAt: string | null;
|
|
667
|
+
readonly pausedAt: string | null;
|
|
668
|
+
readonly completedAt: string | null;
|
|
669
|
+
readonly createdAt: string;
|
|
670
|
+
readonly updatedAt: string;
|
|
671
|
+
} | null;
|
|
672
|
+
readonly batches: readonly {
|
|
673
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingBatchId">;
|
|
674
|
+
readonly sequence: number;
|
|
675
|
+
readonly state: "cancelled" | "closed" | "open" | "scheduled";
|
|
676
|
+
readonly startsAt: string;
|
|
677
|
+
readonly endsAt: string;
|
|
678
|
+
readonly allowanceRecipients: number;
|
|
679
|
+
readonly dailyGrowthPercent: number;
|
|
680
|
+
readonly targetDailyRecipients: number;
|
|
681
|
+
readonly reservedRecipients: number;
|
|
682
|
+
readonly acceptedRecipients: number;
|
|
683
|
+
readonly cancelledAt: string | null;
|
|
684
|
+
readonly createdAt: string;
|
|
685
|
+
}[];
|
|
686
|
+
readonly decisions: readonly {
|
|
687
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingDecisionId">;
|
|
688
|
+
readonly kind: "completed" | "held" | "paused" | "plan-created" | "policy-updated" | "resumed" | "window-cancelled" | "window-opened";
|
|
689
|
+
readonly batchId: (string & import("effect/Brand").Brand<"EmailDomainWarmingBatchId">) | null;
|
|
690
|
+
readonly actor: string;
|
|
691
|
+
readonly note: string | null;
|
|
692
|
+
readonly createdAt: string;
|
|
693
|
+
}[];
|
|
694
|
+
readonly evidence: {
|
|
695
|
+
readonly observedAt: string;
|
|
696
|
+
readonly windowHours: number;
|
|
697
|
+
readonly minimumSends: number;
|
|
698
|
+
readonly sent: number;
|
|
699
|
+
readonly bounced: number;
|
|
700
|
+
readonly complained: number;
|
|
701
|
+
readonly hourly: readonly {
|
|
702
|
+
readonly sent: number;
|
|
703
|
+
readonly bounced: number;
|
|
704
|
+
readonly complained: number;
|
|
705
|
+
}[];
|
|
706
|
+
readonly bounceThreshold: number;
|
|
707
|
+
readonly complaintThreshold: number;
|
|
708
|
+
readonly verdict: "healthy" | "insufficient-evidence" | "over-threshold";
|
|
709
|
+
readonly thresholdReason: string | null;
|
|
710
|
+
};
|
|
711
|
+
readonly holds: {
|
|
712
|
+
readonly workspacePausedAt: string | null;
|
|
713
|
+
readonly workspacePauseReason: string | null;
|
|
714
|
+
readonly sendingStatus: "disabled" | "enabled" | "reinstated" | "unknown";
|
|
715
|
+
};
|
|
716
|
+
}, import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
|
|
717
|
+
export declare const createDomainWarmingPlan: (input: {
|
|
718
|
+
readonly id: string;
|
|
719
|
+
readonly identity: string;
|
|
720
|
+
readonly initialDailyRecipients: number;
|
|
721
|
+
readonly dailyGrowthPercent: number;
|
|
722
|
+
readonly targetDailyRecipients: number;
|
|
723
|
+
}) => import("effect/Effect").Effect<{
|
|
724
|
+
readonly domain: {
|
|
725
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainId">;
|
|
726
|
+
readonly domain: string;
|
|
727
|
+
};
|
|
728
|
+
readonly plan: {
|
|
729
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingPlanId">;
|
|
730
|
+
readonly status: "active" | "completed" | "paused";
|
|
731
|
+
readonly identity: "migrating" | "new" | "returning";
|
|
732
|
+
readonly initialDailyRecipients: number;
|
|
733
|
+
readonly dailyGrowthPercent: number;
|
|
734
|
+
readonly targetDailyRecipients: number;
|
|
735
|
+
readonly holdReason: string | null;
|
|
736
|
+
readonly heldAt: string | null;
|
|
737
|
+
readonly pausedAt: string | null;
|
|
738
|
+
readonly completedAt: string | null;
|
|
739
|
+
readonly createdAt: string;
|
|
740
|
+
readonly updatedAt: string;
|
|
741
|
+
} | null;
|
|
742
|
+
readonly batches: readonly {
|
|
743
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingBatchId">;
|
|
744
|
+
readonly sequence: number;
|
|
745
|
+
readonly state: "cancelled" | "closed" | "open" | "scheduled";
|
|
746
|
+
readonly startsAt: string;
|
|
747
|
+
readonly endsAt: string;
|
|
748
|
+
readonly allowanceRecipients: number;
|
|
749
|
+
readonly dailyGrowthPercent: number;
|
|
750
|
+
readonly targetDailyRecipients: number;
|
|
751
|
+
readonly reservedRecipients: number;
|
|
752
|
+
readonly acceptedRecipients: number;
|
|
753
|
+
readonly cancelledAt: string | null;
|
|
754
|
+
readonly createdAt: string;
|
|
755
|
+
}[];
|
|
756
|
+
readonly decisions: readonly {
|
|
757
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingDecisionId">;
|
|
758
|
+
readonly kind: "completed" | "held" | "paused" | "plan-created" | "policy-updated" | "resumed" | "window-cancelled" | "window-opened";
|
|
759
|
+
readonly batchId: (string & import("effect/Brand").Brand<"EmailDomainWarmingBatchId">) | null;
|
|
760
|
+
readonly actor: string;
|
|
761
|
+
readonly note: string | null;
|
|
762
|
+
readonly createdAt: string;
|
|
763
|
+
}[];
|
|
764
|
+
readonly evidence: {
|
|
765
|
+
readonly observedAt: string;
|
|
766
|
+
readonly windowHours: number;
|
|
767
|
+
readonly minimumSends: number;
|
|
768
|
+
readonly sent: number;
|
|
769
|
+
readonly bounced: number;
|
|
770
|
+
readonly complained: number;
|
|
771
|
+
readonly hourly: readonly {
|
|
772
|
+
readonly sent: number;
|
|
773
|
+
readonly bounced: number;
|
|
774
|
+
readonly complained: number;
|
|
775
|
+
}[];
|
|
776
|
+
readonly bounceThreshold: number;
|
|
777
|
+
readonly complaintThreshold: number;
|
|
778
|
+
readonly verdict: "healthy" | "insufficient-evidence" | "over-threshold";
|
|
779
|
+
readonly thresholdReason: string | null;
|
|
780
|
+
};
|
|
781
|
+
readonly holds: {
|
|
782
|
+
readonly workspacePausedAt: string | null;
|
|
783
|
+
readonly workspacePauseReason: string | null;
|
|
784
|
+
readonly sendingStatus: "disabled" | "enabled" | "reinstated" | "unknown";
|
|
785
|
+
};
|
|
786
|
+
}, import("./generated").ConflictError | import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
|
|
787
|
+
export declare const updateDomainWarmingPolicy: (input: {
|
|
788
|
+
readonly id: string;
|
|
789
|
+
readonly dailyGrowthPercent: number;
|
|
790
|
+
readonly targetDailyRecipients: number;
|
|
791
|
+
readonly note?: string | null | undefined;
|
|
792
|
+
}) => import("effect/Effect").Effect<{
|
|
793
|
+
readonly domain: {
|
|
794
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainId">;
|
|
795
|
+
readonly domain: string;
|
|
796
|
+
};
|
|
797
|
+
readonly plan: {
|
|
798
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingPlanId">;
|
|
799
|
+
readonly status: "active" | "completed" | "paused";
|
|
800
|
+
readonly identity: "migrating" | "new" | "returning";
|
|
801
|
+
readonly initialDailyRecipients: number;
|
|
802
|
+
readonly dailyGrowthPercent: number;
|
|
803
|
+
readonly targetDailyRecipients: number;
|
|
804
|
+
readonly holdReason: string | null;
|
|
805
|
+
readonly heldAt: string | null;
|
|
806
|
+
readonly pausedAt: string | null;
|
|
807
|
+
readonly completedAt: string | null;
|
|
808
|
+
readonly createdAt: string;
|
|
809
|
+
readonly updatedAt: string;
|
|
810
|
+
} | null;
|
|
811
|
+
readonly batches: readonly {
|
|
812
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingBatchId">;
|
|
813
|
+
readonly sequence: number;
|
|
814
|
+
readonly state: "cancelled" | "closed" | "open" | "scheduled";
|
|
815
|
+
readonly startsAt: string;
|
|
816
|
+
readonly endsAt: string;
|
|
817
|
+
readonly allowanceRecipients: number;
|
|
818
|
+
readonly dailyGrowthPercent: number;
|
|
819
|
+
readonly targetDailyRecipients: number;
|
|
820
|
+
readonly reservedRecipients: number;
|
|
821
|
+
readonly acceptedRecipients: number;
|
|
822
|
+
readonly cancelledAt: string | null;
|
|
823
|
+
readonly createdAt: string;
|
|
824
|
+
}[];
|
|
825
|
+
readonly decisions: readonly {
|
|
826
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingDecisionId">;
|
|
827
|
+
readonly kind: "completed" | "held" | "paused" | "plan-created" | "policy-updated" | "resumed" | "window-cancelled" | "window-opened";
|
|
828
|
+
readonly batchId: (string & import("effect/Brand").Brand<"EmailDomainWarmingBatchId">) | null;
|
|
829
|
+
readonly actor: string;
|
|
830
|
+
readonly note: string | null;
|
|
831
|
+
readonly createdAt: string;
|
|
832
|
+
}[];
|
|
833
|
+
readonly evidence: {
|
|
834
|
+
readonly observedAt: string;
|
|
835
|
+
readonly windowHours: number;
|
|
836
|
+
readonly minimumSends: number;
|
|
837
|
+
readonly sent: number;
|
|
838
|
+
readonly bounced: number;
|
|
839
|
+
readonly complained: number;
|
|
840
|
+
readonly hourly: readonly {
|
|
841
|
+
readonly sent: number;
|
|
842
|
+
readonly bounced: number;
|
|
843
|
+
readonly complained: number;
|
|
844
|
+
}[];
|
|
845
|
+
readonly bounceThreshold: number;
|
|
846
|
+
readonly complaintThreshold: number;
|
|
847
|
+
readonly verdict: "healthy" | "insufficient-evidence" | "over-threshold";
|
|
848
|
+
readonly thresholdReason: string | null;
|
|
849
|
+
};
|
|
850
|
+
readonly holds: {
|
|
851
|
+
readonly workspacePausedAt: string | null;
|
|
852
|
+
readonly workspacePauseReason: string | null;
|
|
853
|
+
readonly sendingStatus: "disabled" | "enabled" | "reinstated" | "unknown";
|
|
854
|
+
};
|
|
855
|
+
}, import("./generated").ConflictError | import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
|
|
856
|
+
export declare const cancelDomainWarmingBatch: (input: {
|
|
857
|
+
readonly id: string;
|
|
858
|
+
readonly batchId: string;
|
|
859
|
+
}) => import("effect/Effect").Effect<{
|
|
860
|
+
readonly domain: {
|
|
861
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainId">;
|
|
862
|
+
readonly domain: string;
|
|
863
|
+
};
|
|
864
|
+
readonly plan: {
|
|
865
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingPlanId">;
|
|
866
|
+
readonly status: "active" | "completed" | "paused";
|
|
867
|
+
readonly identity: "migrating" | "new" | "returning";
|
|
868
|
+
readonly initialDailyRecipients: number;
|
|
869
|
+
readonly dailyGrowthPercent: number;
|
|
870
|
+
readonly targetDailyRecipients: number;
|
|
871
|
+
readonly holdReason: string | null;
|
|
872
|
+
readonly heldAt: string | null;
|
|
873
|
+
readonly pausedAt: string | null;
|
|
874
|
+
readonly completedAt: string | null;
|
|
875
|
+
readonly createdAt: string;
|
|
876
|
+
readonly updatedAt: string;
|
|
877
|
+
} | null;
|
|
878
|
+
readonly batches: readonly {
|
|
879
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingBatchId">;
|
|
880
|
+
readonly sequence: number;
|
|
881
|
+
readonly state: "cancelled" | "closed" | "open" | "scheduled";
|
|
882
|
+
readonly startsAt: string;
|
|
883
|
+
readonly endsAt: string;
|
|
884
|
+
readonly allowanceRecipients: number;
|
|
885
|
+
readonly dailyGrowthPercent: number;
|
|
886
|
+
readonly targetDailyRecipients: number;
|
|
887
|
+
readonly reservedRecipients: number;
|
|
888
|
+
readonly acceptedRecipients: number;
|
|
889
|
+
readonly cancelledAt: string | null;
|
|
890
|
+
readonly createdAt: string;
|
|
891
|
+
}[];
|
|
892
|
+
readonly decisions: readonly {
|
|
893
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingDecisionId">;
|
|
894
|
+
readonly kind: "completed" | "held" | "paused" | "plan-created" | "policy-updated" | "resumed" | "window-cancelled" | "window-opened";
|
|
895
|
+
readonly batchId: (string & import("effect/Brand").Brand<"EmailDomainWarmingBatchId">) | null;
|
|
896
|
+
readonly actor: string;
|
|
897
|
+
readonly note: string | null;
|
|
898
|
+
readonly createdAt: string;
|
|
899
|
+
}[];
|
|
900
|
+
readonly evidence: {
|
|
901
|
+
readonly observedAt: string;
|
|
902
|
+
readonly windowHours: number;
|
|
903
|
+
readonly minimumSends: number;
|
|
904
|
+
readonly sent: number;
|
|
905
|
+
readonly bounced: number;
|
|
906
|
+
readonly complained: number;
|
|
907
|
+
readonly hourly: readonly {
|
|
908
|
+
readonly sent: number;
|
|
909
|
+
readonly bounced: number;
|
|
910
|
+
readonly complained: number;
|
|
911
|
+
}[];
|
|
912
|
+
readonly bounceThreshold: number;
|
|
913
|
+
readonly complaintThreshold: number;
|
|
914
|
+
readonly verdict: "healthy" | "insufficient-evidence" | "over-threshold";
|
|
915
|
+
readonly thresholdReason: string | null;
|
|
916
|
+
};
|
|
917
|
+
readonly holds: {
|
|
918
|
+
readonly workspacePausedAt: string | null;
|
|
919
|
+
readonly workspacePauseReason: string | null;
|
|
920
|
+
readonly sendingStatus: "disabled" | "enabled" | "reinstated" | "unknown";
|
|
921
|
+
};
|
|
922
|
+
}, import("./generated").ConflictError | import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
|
|
923
|
+
export declare const pauseDomainWarming: (input: {
|
|
924
|
+
readonly id: string;
|
|
925
|
+
readonly note?: string | null | undefined;
|
|
926
|
+
}) => import("effect/Effect").Effect<{
|
|
927
|
+
readonly domain: {
|
|
928
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainId">;
|
|
929
|
+
readonly domain: string;
|
|
930
|
+
};
|
|
931
|
+
readonly plan: {
|
|
932
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingPlanId">;
|
|
933
|
+
readonly status: "active" | "completed" | "paused";
|
|
934
|
+
readonly identity: "migrating" | "new" | "returning";
|
|
935
|
+
readonly initialDailyRecipients: number;
|
|
936
|
+
readonly dailyGrowthPercent: number;
|
|
937
|
+
readonly targetDailyRecipients: number;
|
|
938
|
+
readonly holdReason: string | null;
|
|
939
|
+
readonly heldAt: string | null;
|
|
940
|
+
readonly pausedAt: string | null;
|
|
941
|
+
readonly completedAt: string | null;
|
|
942
|
+
readonly createdAt: string;
|
|
943
|
+
readonly updatedAt: string;
|
|
944
|
+
} | null;
|
|
945
|
+
readonly batches: readonly {
|
|
946
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingBatchId">;
|
|
947
|
+
readonly sequence: number;
|
|
948
|
+
readonly state: "cancelled" | "closed" | "open" | "scheduled";
|
|
949
|
+
readonly startsAt: string;
|
|
950
|
+
readonly endsAt: string;
|
|
951
|
+
readonly allowanceRecipients: number;
|
|
952
|
+
readonly dailyGrowthPercent: number;
|
|
953
|
+
readonly targetDailyRecipients: number;
|
|
954
|
+
readonly reservedRecipients: number;
|
|
955
|
+
readonly acceptedRecipients: number;
|
|
956
|
+
readonly cancelledAt: string | null;
|
|
957
|
+
readonly createdAt: string;
|
|
958
|
+
}[];
|
|
959
|
+
readonly decisions: readonly {
|
|
960
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingDecisionId">;
|
|
961
|
+
readonly kind: "completed" | "held" | "paused" | "plan-created" | "policy-updated" | "resumed" | "window-cancelled" | "window-opened";
|
|
962
|
+
readonly batchId: (string & import("effect/Brand").Brand<"EmailDomainWarmingBatchId">) | null;
|
|
963
|
+
readonly actor: string;
|
|
964
|
+
readonly note: string | null;
|
|
965
|
+
readonly createdAt: string;
|
|
966
|
+
}[];
|
|
967
|
+
readonly evidence: {
|
|
968
|
+
readonly observedAt: string;
|
|
969
|
+
readonly windowHours: number;
|
|
970
|
+
readonly minimumSends: number;
|
|
971
|
+
readonly sent: number;
|
|
972
|
+
readonly bounced: number;
|
|
973
|
+
readonly complained: number;
|
|
974
|
+
readonly hourly: readonly {
|
|
975
|
+
readonly sent: number;
|
|
976
|
+
readonly bounced: number;
|
|
977
|
+
readonly complained: number;
|
|
978
|
+
}[];
|
|
979
|
+
readonly bounceThreshold: number;
|
|
980
|
+
readonly complaintThreshold: number;
|
|
981
|
+
readonly verdict: "healthy" | "insufficient-evidence" | "over-threshold";
|
|
982
|
+
readonly thresholdReason: string | null;
|
|
983
|
+
};
|
|
984
|
+
readonly holds: {
|
|
985
|
+
readonly workspacePausedAt: string | null;
|
|
986
|
+
readonly workspacePauseReason: string | null;
|
|
987
|
+
readonly sendingStatus: "disabled" | "enabled" | "reinstated" | "unknown";
|
|
988
|
+
};
|
|
989
|
+
}, import("./generated").ConflictError | import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
|
|
990
|
+
export declare const resumeDomainWarming: (input: {
|
|
991
|
+
readonly id: string;
|
|
992
|
+
readonly note?: string | null | undefined;
|
|
993
|
+
}) => import("effect/Effect").Effect<{
|
|
994
|
+
readonly domain: {
|
|
995
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainId">;
|
|
996
|
+
readonly domain: string;
|
|
997
|
+
};
|
|
998
|
+
readonly plan: {
|
|
999
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingPlanId">;
|
|
1000
|
+
readonly status: "active" | "completed" | "paused";
|
|
1001
|
+
readonly identity: "migrating" | "new" | "returning";
|
|
1002
|
+
readonly initialDailyRecipients: number;
|
|
1003
|
+
readonly dailyGrowthPercent: number;
|
|
1004
|
+
readonly targetDailyRecipients: number;
|
|
1005
|
+
readonly holdReason: string | null;
|
|
1006
|
+
readonly heldAt: string | null;
|
|
1007
|
+
readonly pausedAt: string | null;
|
|
1008
|
+
readonly completedAt: string | null;
|
|
1009
|
+
readonly createdAt: string;
|
|
1010
|
+
readonly updatedAt: string;
|
|
1011
|
+
} | null;
|
|
1012
|
+
readonly batches: readonly {
|
|
1013
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingBatchId">;
|
|
1014
|
+
readonly sequence: number;
|
|
1015
|
+
readonly state: "cancelled" | "closed" | "open" | "scheduled";
|
|
1016
|
+
readonly startsAt: string;
|
|
1017
|
+
readonly endsAt: string;
|
|
1018
|
+
readonly allowanceRecipients: number;
|
|
1019
|
+
readonly dailyGrowthPercent: number;
|
|
1020
|
+
readonly targetDailyRecipients: number;
|
|
1021
|
+
readonly reservedRecipients: number;
|
|
1022
|
+
readonly acceptedRecipients: number;
|
|
1023
|
+
readonly cancelledAt: string | null;
|
|
1024
|
+
readonly createdAt: string;
|
|
1025
|
+
}[];
|
|
1026
|
+
readonly decisions: readonly {
|
|
1027
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingDecisionId">;
|
|
1028
|
+
readonly kind: "completed" | "held" | "paused" | "plan-created" | "policy-updated" | "resumed" | "window-cancelled" | "window-opened";
|
|
1029
|
+
readonly batchId: (string & import("effect/Brand").Brand<"EmailDomainWarmingBatchId">) | null;
|
|
1030
|
+
readonly actor: string;
|
|
1031
|
+
readonly note: string | null;
|
|
1032
|
+
readonly createdAt: string;
|
|
1033
|
+
}[];
|
|
1034
|
+
readonly evidence: {
|
|
1035
|
+
readonly observedAt: string;
|
|
1036
|
+
readonly windowHours: number;
|
|
1037
|
+
readonly minimumSends: number;
|
|
1038
|
+
readonly sent: number;
|
|
1039
|
+
readonly bounced: number;
|
|
1040
|
+
readonly complained: number;
|
|
1041
|
+
readonly hourly: readonly {
|
|
1042
|
+
readonly sent: number;
|
|
1043
|
+
readonly bounced: number;
|
|
1044
|
+
readonly complained: number;
|
|
1045
|
+
}[];
|
|
1046
|
+
readonly bounceThreshold: number;
|
|
1047
|
+
readonly complaintThreshold: number;
|
|
1048
|
+
readonly verdict: "healthy" | "insufficient-evidence" | "over-threshold";
|
|
1049
|
+
readonly thresholdReason: string | null;
|
|
1050
|
+
};
|
|
1051
|
+
readonly holds: {
|
|
1052
|
+
readonly workspacePausedAt: string | null;
|
|
1053
|
+
readonly workspacePauseReason: string | null;
|
|
1054
|
+
readonly sendingStatus: "disabled" | "enabled" | "reinstated" | "unknown";
|
|
1055
|
+
};
|
|
1056
|
+
}, import("./generated").ConflictError | import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
|
|
1057
|
+
export declare const completeDomainWarming: (input: {
|
|
1058
|
+
readonly id: string;
|
|
1059
|
+
readonly note?: string | null | undefined;
|
|
1060
|
+
}) => import("effect/Effect").Effect<{
|
|
1061
|
+
readonly domain: {
|
|
1062
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainId">;
|
|
1063
|
+
readonly domain: string;
|
|
1064
|
+
};
|
|
1065
|
+
readonly plan: {
|
|
1066
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingPlanId">;
|
|
1067
|
+
readonly status: "active" | "completed" | "paused";
|
|
1068
|
+
readonly identity: "migrating" | "new" | "returning";
|
|
1069
|
+
readonly initialDailyRecipients: number;
|
|
1070
|
+
readonly dailyGrowthPercent: number;
|
|
1071
|
+
readonly targetDailyRecipients: number;
|
|
1072
|
+
readonly holdReason: string | null;
|
|
1073
|
+
readonly heldAt: string | null;
|
|
1074
|
+
readonly pausedAt: string | null;
|
|
1075
|
+
readonly completedAt: string | null;
|
|
1076
|
+
readonly createdAt: string;
|
|
1077
|
+
readonly updatedAt: string;
|
|
1078
|
+
} | null;
|
|
1079
|
+
readonly batches: readonly {
|
|
1080
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingBatchId">;
|
|
1081
|
+
readonly sequence: number;
|
|
1082
|
+
readonly state: "cancelled" | "closed" | "open" | "scheduled";
|
|
1083
|
+
readonly startsAt: string;
|
|
1084
|
+
readonly endsAt: string;
|
|
1085
|
+
readonly allowanceRecipients: number;
|
|
1086
|
+
readonly dailyGrowthPercent: number;
|
|
1087
|
+
readonly targetDailyRecipients: number;
|
|
1088
|
+
readonly reservedRecipients: number;
|
|
1089
|
+
readonly acceptedRecipients: number;
|
|
1090
|
+
readonly cancelledAt: string | null;
|
|
1091
|
+
readonly createdAt: string;
|
|
1092
|
+
}[];
|
|
1093
|
+
readonly decisions: readonly {
|
|
1094
|
+
readonly id: string & import("effect/Brand").Brand<"EmailDomainWarmingDecisionId">;
|
|
1095
|
+
readonly kind: "completed" | "held" | "paused" | "plan-created" | "policy-updated" | "resumed" | "window-cancelled" | "window-opened";
|
|
1096
|
+
readonly batchId: (string & import("effect/Brand").Brand<"EmailDomainWarmingBatchId">) | null;
|
|
1097
|
+
readonly actor: string;
|
|
1098
|
+
readonly note: string | null;
|
|
1099
|
+
readonly createdAt: string;
|
|
1100
|
+
}[];
|
|
1101
|
+
readonly evidence: {
|
|
1102
|
+
readonly observedAt: string;
|
|
1103
|
+
readonly windowHours: number;
|
|
1104
|
+
readonly minimumSends: number;
|
|
1105
|
+
readonly sent: number;
|
|
1106
|
+
readonly bounced: number;
|
|
1107
|
+
readonly complained: number;
|
|
1108
|
+
readonly hourly: readonly {
|
|
1109
|
+
readonly sent: number;
|
|
1110
|
+
readonly bounced: number;
|
|
1111
|
+
readonly complained: number;
|
|
1112
|
+
}[];
|
|
1113
|
+
readonly bounceThreshold: number;
|
|
1114
|
+
readonly complaintThreshold: number;
|
|
1115
|
+
readonly verdict: "healthy" | "insufficient-evidence" | "over-threshold";
|
|
1116
|
+
readonly thresholdReason: string | null;
|
|
1117
|
+
};
|
|
1118
|
+
readonly holds: {
|
|
1119
|
+
readonly workspacePausedAt: string | null;
|
|
1120
|
+
readonly workspacePauseReason: string | null;
|
|
1121
|
+
readonly sendingStatus: "disabled" | "enabled" | "reinstated" | "unknown";
|
|
1122
|
+
};
|
|
1123
|
+
}, import("./generated").ConflictError | import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
|
|
1124
|
+
export declare const getOnboardingReview: (_?: never) => import("effect/Effect").Effect<{
|
|
1125
|
+
readonly decision: "approved" | "exempt" | "rejected" | "undecided";
|
|
1126
|
+
readonly stage: "automated_review" | "collecting" | "complete" | "information_requested" | "manual_review";
|
|
1127
|
+
readonly generation: number;
|
|
1128
|
+
readonly canSend: boolean;
|
|
1129
|
+
readonly code: "identity_changed" | "identity_review_rejected" | "identity_review_required" | "information_required" | "review_in_progress" | "review_rejected" | "review_required" | null;
|
|
1130
|
+
readonly nextAction: "contact_support" | "provide_information" | "reapply" | "verify_sending_identity" | "wait_for_review" | null;
|
|
1131
|
+
readonly canReapply: boolean;
|
|
1132
|
+
readonly informationRequest: {
|
|
1133
|
+
readonly id: string;
|
|
1134
|
+
readonly requestedFields: readonly string[];
|
|
1135
|
+
readonly requestedAt: string;
|
|
1136
|
+
readonly canRespond: boolean;
|
|
1137
|
+
} | null;
|
|
1138
|
+
readonly identities: readonly {
|
|
1139
|
+
readonly identityId: string;
|
|
1140
|
+
readonly decision: "approved" | "rejected" | "undecided";
|
|
1141
|
+
readonly generation: number;
|
|
1142
|
+
readonly code: "identity_changed" | "identity_review_rejected" | "identity_review_required" | "information_required" | "review_in_progress" | "review_rejected" | "review_required" | null;
|
|
1143
|
+
readonly nextAction: "contact_support" | "provide_information" | "reapply" | "verify_sending_identity" | "wait_for_review" | null;
|
|
1144
|
+
readonly updatedAt: string;
|
|
1145
|
+
}[];
|
|
1146
|
+
readonly updatedAt: string | null;
|
|
1147
|
+
}, import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
|
|
1148
|
+
export declare const reapplyOnboardingReview: (input: {
|
|
1149
|
+
readonly expectedGeneration: number;
|
|
1150
|
+
}) => import("effect/Effect").Effect<{
|
|
1151
|
+
readonly decision: "approved" | "exempt" | "rejected" | "undecided";
|
|
1152
|
+
readonly stage: "automated_review" | "collecting" | "complete" | "information_requested" | "manual_review";
|
|
1153
|
+
readonly generation: number;
|
|
1154
|
+
readonly canSend: boolean;
|
|
1155
|
+
readonly code: "identity_changed" | "identity_review_rejected" | "identity_review_required" | "information_required" | "review_in_progress" | "review_rejected" | "review_required" | null;
|
|
1156
|
+
readonly nextAction: "contact_support" | "provide_information" | "reapply" | "verify_sending_identity" | "wait_for_review" | null;
|
|
1157
|
+
readonly canReapply: boolean;
|
|
1158
|
+
readonly informationRequest: {
|
|
1159
|
+
readonly id: string;
|
|
1160
|
+
readonly requestedFields: readonly string[];
|
|
1161
|
+
readonly requestedAt: string;
|
|
1162
|
+
readonly canRespond: boolean;
|
|
1163
|
+
} | null;
|
|
1164
|
+
readonly identities: readonly {
|
|
1165
|
+
readonly identityId: string;
|
|
1166
|
+
readonly decision: "approved" | "rejected" | "undecided";
|
|
1167
|
+
readonly generation: number;
|
|
1168
|
+
readonly code: "identity_changed" | "identity_review_rejected" | "identity_review_required" | "information_required" | "review_in_progress" | "review_rejected" | "review_required" | null;
|
|
1169
|
+
readonly nextAction: "contact_support" | "provide_information" | "reapply" | "verify_sending_identity" | "wait_for_review" | null;
|
|
1170
|
+
readonly updatedAt: string;
|
|
1171
|
+
}[];
|
|
1172
|
+
readonly updatedAt: string | null;
|
|
1173
|
+
}, import("./generated").ConflictError | import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
|
|
1174
|
+
export declare const respondToOnboardingInformationRequest: (input: {
|
|
1175
|
+
readonly expectedGeneration: number;
|
|
1176
|
+
readonly responseText: string;
|
|
1177
|
+
readonly evidenceMediaIds: readonly string[];
|
|
1178
|
+
}) => import("effect/Effect").Effect<{
|
|
1179
|
+
readonly decision: "approved" | "exempt" | "rejected" | "undecided";
|
|
1180
|
+
readonly stage: "automated_review" | "collecting" | "complete" | "information_requested" | "manual_review";
|
|
1181
|
+
readonly generation: number;
|
|
1182
|
+
readonly canSend: boolean;
|
|
1183
|
+
readonly code: "identity_changed" | "identity_review_rejected" | "identity_review_required" | "information_required" | "review_in_progress" | "review_rejected" | "review_required" | null;
|
|
1184
|
+
readonly nextAction: "contact_support" | "provide_information" | "reapply" | "verify_sending_identity" | "wait_for_review" | null;
|
|
1185
|
+
readonly canReapply: boolean;
|
|
1186
|
+
readonly informationRequest: {
|
|
1187
|
+
readonly id: string;
|
|
1188
|
+
readonly requestedFields: readonly string[];
|
|
1189
|
+
readonly requestedAt: string;
|
|
1190
|
+
readonly canRespond: boolean;
|
|
1191
|
+
} | null;
|
|
1192
|
+
readonly identities: readonly {
|
|
1193
|
+
readonly identityId: string;
|
|
1194
|
+
readonly decision: "approved" | "rejected" | "undecided";
|
|
1195
|
+
readonly generation: number;
|
|
1196
|
+
readonly code: "identity_changed" | "identity_review_rejected" | "identity_review_required" | "information_required" | "review_in_progress" | "review_rejected" | "review_required" | null;
|
|
1197
|
+
readonly nextAction: "contact_support" | "provide_information" | "reapply" | "verify_sending_identity" | "wait_for_review" | null;
|
|
1198
|
+
readonly updatedAt: string;
|
|
1199
|
+
}[];
|
|
1200
|
+
readonly updatedAt: string | null;
|
|
1201
|
+
}, import("./generated").ConflictError | import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
|
|
528
1202
|
export declare const listSenders: ((input?: {
|
|
529
1203
|
readonly page?: string | null | undefined;
|
|
530
1204
|
readonly limit?: string | null | undefined;
|
|
@@ -626,6 +1300,30 @@ export declare const listSenders: ((input?: {
|
|
|
626
1300
|
readonly updatedAt: string;
|
|
627
1301
|
}, import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
|
|
628
1302
|
};
|
|
1303
|
+
export declare const getSender: (input: {
|
|
1304
|
+
readonly id: string;
|
|
1305
|
+
}) => import("effect/Effect").Effect<{
|
|
1306
|
+
readonly id: string & import("effect/Brand").Brand<"EmailSenderId">;
|
|
1307
|
+
readonly organizationId: string;
|
|
1308
|
+
readonly email: string;
|
|
1309
|
+
readonly name: string | null;
|
|
1310
|
+
readonly domainId: (string & import("effect/Brand").Brand<"EmailDomainId">) | null;
|
|
1311
|
+
readonly verificationStatus: "failed" | "pending" | "verified";
|
|
1312
|
+
readonly verifiedAt: string | null;
|
|
1313
|
+
readonly verificationToken: string | null;
|
|
1314
|
+
readonly providerLifecycle: "active" | "deleting" | "failed" | "provisioning";
|
|
1315
|
+
readonly providerFailureCode: string | null;
|
|
1316
|
+
readonly isDefault: boolean;
|
|
1317
|
+
readonly replyToEmails: readonly string[] | null;
|
|
1318
|
+
readonly deliverability: {
|
|
1319
|
+
readonly bounceRate: number;
|
|
1320
|
+
readonly complaintRate: number;
|
|
1321
|
+
readonly sendingStatus: "disabled" | "enabled" | "reinstated" | "unknown";
|
|
1322
|
+
};
|
|
1323
|
+
readonly isActive: boolean;
|
|
1324
|
+
readonly createdAt: string;
|
|
1325
|
+
readonly updatedAt: string;
|
|
1326
|
+
}, import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
|
|
629
1327
|
export declare const addSender: (input: EmailAddSenderInput, options?: SendOptions | undefined) => import("effect/Effect").Effect<{
|
|
630
1328
|
readonly id: string & import("effect/Brand").Brand<"EmailSenderId">;
|
|
631
1329
|
readonly email: string;
|
|
@@ -902,7 +1600,7 @@ export declare const createForwardingRule: (input: {
|
|
|
902
1600
|
readonly priority: number;
|
|
903
1601
|
readonly isActive: boolean;
|
|
904
1602
|
readonly createdAt: string;
|
|
905
|
-
}, import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
|
|
1603
|
+
}, import("./generated").ForbiddenError | import("effect/unstable/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
|
|
906
1604
|
export declare const deleteForwardingRule: (input: {
|
|
907
1605
|
readonly id: string;
|
|
908
1606
|
}) => import("effect/Effect").Effect<{
|