@greatwait/contracts 0.1.0-alpha.7 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -12
- package/dist/billing.d.ts +2 -1
- package/dist/billing.js +8 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/operations.d.ts +42 -5
- package/dist/operations.js +3 -1
- package/dist/policy.d.ts +5 -4
- package/dist/policy.js +5 -4
- package/dist/project-notifications.d.ts +238 -0
- package/dist/project-notifications.js +236 -0
- package/dist/scheduling.js +5 -4
- package/dist/workspace.d.ts +4 -4
- package/generated/v1/examples/projectnotifications.read.response.json +12 -0
- package/generated/v1/examples/projectnotifications.rotateSigningKey.request.json +3 -0
- package/generated/v1/examples/projectnotifications.rotateSigningKey.response.json +25 -0
- package/generated/v1/examples/projectnotifications.update.request.json +10 -0
- package/generated/v1/examples/projectnotifications.update.response.json +12 -0
- package/generated/v1/examples/statusdeliveries.list.response.json +3 -0
- package/generated/v1/manifest.json +110 -0
- package/generated/v1/openapi.json +2525 -3
- package/generated/v1/policy-matrix.json +28 -0
- package/generated/v1/schemas/billing.notices.response.json +3 -2
- package/generated/v1/schemas/billing.purchase.request.json +4 -0
- package/generated/v1/schemas/projectnotifications.read.response.json +101 -0
- package/generated/v1/schemas/projectnotifications.rotateSigningKey.request.json +13 -0
- package/generated/v1/schemas/projectnotifications.rotateSigningKey.response.json +119 -0
- package/generated/v1/schemas/projectnotifications.update.request-headers.json +13 -0
- package/generated/v1/schemas/projectnotifications.update.request.json +90 -0
- package/generated/v1/schemas/projectnotifications.update.response.json +101 -0
- package/generated/v1/schemas/statusdeliveries.list.query.json +16 -0
- package/generated/v1/schemas/statusdeliveries.list.response.json +82 -0
- package/generated/v1/snippets/projectnotifications.read.json +6 -0
- package/generated/v1/snippets/projectnotifications.rotateSigningKey.json +6 -0
- package/generated/v1/snippets/projectnotifications.update.json +6 -0
- package/generated/v1/snippets/statusdeliveries.list.json +6 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,12 +4,8 @@ The public contracts for [GreatWait](https://greatwait.dev): the schemas every
|
|
|
4
4
|
response is parsed with, the stable refusal catalog, the operation registry, and
|
|
5
5
|
the generated OpenAPI documents.
|
|
6
6
|
|
|
7
|
-
> **Alpha.** This package publishes on the `alpha` dist-tag and has no
|
|
8
|
-
> `latest`. Install it explicitly, and pin the exact version in anything you
|
|
9
|
-
> care about.
|
|
10
|
-
|
|
11
7
|
```bash
|
|
12
|
-
npm install @greatwait/contracts
|
|
8
|
+
npm install @greatwait/contracts
|
|
13
9
|
```
|
|
14
10
|
|
|
15
11
|
Most people arrive here through [`@greatwait/api-client`](https://www.npmjs.com/package/@greatwait/api-client),
|
|
@@ -67,13 +63,18 @@ That internal QA surface is deliberately excluded from the published package.
|
|
|
67
63
|
of any deployment, because a service that ships twice a day must not imply the
|
|
68
64
|
contract changed twice a day.
|
|
69
65
|
|
|
70
|
-
##
|
|
66
|
+
## First callback
|
|
67
|
+
|
|
68
|
+
For a signed-in credential, a call scheduled directly to your HTTPS URL, and a
|
|
69
|
+
read of the delivery attempt, follow the
|
|
70
|
+
[JavaScript quickstart](https://docs.greatwait.dev/guides/javascript) with
|
|
71
|
+
[`@greatwait/api-client`](https://www.npmjs.com/package/@greatwait/api-client),
|
|
72
|
+
or the [CLI quickstart](https://docs.greatwait.dev/guides/cli).
|
|
73
|
+
The client already depends on this package; you only need a separate install
|
|
74
|
+
when importing the schemas directly.
|
|
71
75
|
|
|
72
|
-
`generated/v1/first-value-journey.json`
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
it rather than restating the steps: each entry carries the operation, the
|
|
76
|
-
method, the path, the scopes it needs, the refusals it can produce and what to
|
|
77
|
-
do about each of them.
|
|
76
|
+
`generated/v1/first-value-journey.json` contains the expanded operation-by-operation
|
|
77
|
+
journey, including idempotent replay and destination setup. The hosted
|
|
78
|
+
quickstarts use the shorter direct-URL path. Both use the same public contracts.
|
|
78
79
|
|
|
79
80
|
MIT licensed. Issues: <https://github.com/flowxo/greatwait/issues>.
|
package/dist/billing.d.ts
CHANGED
|
@@ -110,6 +110,7 @@ export declare const billingPurchaseRequestSchema: import("zod").ZodObject<{
|
|
|
110
110
|
confirmed: import("zod").ZodLiteral<true>;
|
|
111
111
|
expectedRevision: import("zod").ZodNumber;
|
|
112
112
|
quote: import("zod").ZodString;
|
|
113
|
+
savePaymentMethod: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
113
114
|
}, import("zod/v4/core").$strict>;
|
|
114
115
|
export declare const billingCeilingUpdateRequestSchema: import("zod").ZodObject<{
|
|
115
116
|
automaticExecutionTopUpCeiling: import("zod").ZodNullable<import("zod").ZodObject<{
|
|
@@ -427,7 +428,7 @@ export declare const billingFundingViewSchema: import("zod").ZodObject<{
|
|
|
427
428
|
scale: import("zod").ZodLiteral<6>;
|
|
428
429
|
}, import("zod/v4/core").$strip>;
|
|
429
430
|
}, import("zod/v4/core").$strict>;
|
|
430
|
-
export declare const BILLING_NOTICE_KINDS: readonly ["budget-warning", "budget-exhausted", "low-credit", "automatic-top-up-cap-reached", "funding-blocked", "payment-pending", "payment-succeeded", "payment-failed", "payment-authentication-required", "payment-outcome-unresolved", "service-restored", "schedule-auto-paused"];
|
|
431
|
+
export declare const BILLING_NOTICE_KINDS: readonly ["budget-warning", "budget-exhausted", "low-credit", "automatic-top-up-cap-reached", "funding-blocked", "payment-pending", "payment-succeeded", "payment-failed", "payment-authentication-required", "payment-outcome-unresolved", "service-restored", "schedule-auto-paused", "delivery-failed"];
|
|
431
432
|
type BillingNoticeMoney = z.infer<typeof nonnegativeExactMoneySchema>;
|
|
432
433
|
export interface BillingNotice {
|
|
433
434
|
readonly amounts: {
|
package/dist/billing.js
CHANGED
|
@@ -208,6 +208,12 @@ export const billingPurchaseRequestSchema = z
|
|
|
208
208
|
confirmed: z.literal(true),
|
|
209
209
|
expectedRevision: z.number().int().nonnegative(),
|
|
210
210
|
quote: z.string().min(1).max(128),
|
|
211
|
+
savePaymentMethod: z
|
|
212
|
+
.boolean()
|
|
213
|
+
.meta({
|
|
214
|
+
description: "true: the customer also asks to keep the payment method they pay with, for automatic top-up and for projects past the free one. The hosted payment then saves it for later charges made without the customer present (it offers every method the account enables except Klarna, which cannot be charged that way), and once the provider confirms this payment paid, that method becomes the organization's saved payment method if it has none. An existing saved payment method is never replaced, and saving one never turns automatic top-up on. Omitted or false: the purchase does exactly what it always did.",
|
|
215
|
+
})
|
|
216
|
+
.optional(),
|
|
211
217
|
})
|
|
212
218
|
.strict();
|
|
213
219
|
export const billingCeilingUpdateRequestSchema = z
|
|
@@ -407,13 +413,14 @@ export const BILLING_NOTICE_KINDS = [
|
|
|
407
413
|
"payment-outcome-unresolved",
|
|
408
414
|
"service-restored",
|
|
409
415
|
"schedule-auto-paused",
|
|
416
|
+
"delivery-failed",
|
|
410
417
|
];
|
|
411
418
|
export const billingNoticeRecoveryPathSchema = z.union([
|
|
412
419
|
z.enum(["#billing", "#billing-funding", "#billing-notification-settings"]),
|
|
413
420
|
z
|
|
414
421
|
.string()
|
|
415
422
|
.max(1024)
|
|
416
|
-
.regex(/^\/o\/[A-Za-z0-9_%.-]+\/p\/proj_[0-9abcdefghjkmnpqrstvwxyz]{26}\/(?:live|test)\/schedules
|
|
423
|
+
.regex(/^\/o\/[A-Za-z0-9_%.-]+\/p\/proj_[0-9abcdefghjkmnpqrstvwxyz]{26}\/(?:live|test)\/schedules(?:\/sch_[0-9abcdefghjkmnpqrstvwxyz]{26}(?:\/occurrences\/occ_[0-9abcdefghjkmnpqrstvwxyz]{26})?)?$/u, "must be a scoped schedule recovery route"),
|
|
417
424
|
]);
|
|
418
425
|
export const billingNoticeSchema = z
|
|
419
426
|
.object({
|
package/dist/index.d.ts
CHANGED
|
@@ -33,3 +33,4 @@ export { effectiveCustomerLimitsSchema, type EffectiveCustomerLimits, } from "./
|
|
|
33
33
|
export * from "./members.js";
|
|
34
34
|
export * from "./http-request.js";
|
|
35
35
|
export { sanitizedDiagnosticText, diagnosticBodyText, responseBodySentence, requestCaptureSentence, attemptStatusGuidance, } from "./attempt-diagnostics.js";
|
|
36
|
+
export { PROJECT_NOTIFICATION_OPERATIONS, notificationEmailRecipientsSchema, notificationEmailSettingsSchema, statusWebhookEventSchema, statusWebhookConfigurationSchema, projectNotificationSettingsSchema, projectNotificationSettingsUpdateRequestSchema, statusSigningKeyRequestSchema, statusSigningKeyCreatedSchema, statusWebhookPayloadSchema, statusWebhookDeliverySchema, statusWebhookDeliveryPageSchema, type ProjectNotificationSettings, type ProjectNotificationSettingsUpdateRequest, type StatusSigningKeyCreated, type StatusWebhookEvent, type StatusWebhookPayload, type StatusWebhookDelivery, type StatusWebhookDeliveryPage, } from "./project-notifications.js";
|
package/dist/index.js
CHANGED
|
@@ -33,3 +33,4 @@ export { effectiveCustomerLimitsSchema, } from "./effective-limits.js";
|
|
|
33
33
|
export * from "./members.js";
|
|
34
34
|
export * from "./http-request.js";
|
|
35
35
|
export { sanitizedDiagnosticText, diagnosticBodyText, responseBodySentence, requestCaptureSentence, attemptStatusGuidance, } from "./attempt-diagnostics.js";
|
|
36
|
+
export { PROJECT_NOTIFICATION_OPERATIONS, notificationEmailRecipientsSchema, notificationEmailSettingsSchema, statusWebhookEventSchema, statusWebhookConfigurationSchema, projectNotificationSettingsSchema, projectNotificationSettingsUpdateRequestSchema, statusSigningKeyRequestSchema, statusSigningKeyCreatedSchema, statusWebhookPayloadSchema, statusWebhookDeliverySchema, statusWebhookDeliveryPageSchema, } from "./project-notifications.js";
|
package/dist/operations.d.ts
CHANGED
|
@@ -486,6 +486,42 @@ export declare const OPERATIONS: readonly [{
|
|
|
486
486
|
readonly request: import("zod").ZodObject<{
|
|
487
487
|
confirmed: import("zod").ZodLiteral<true>;
|
|
488
488
|
}, import("zod/v4/core").$strict>;
|
|
489
|
+
}, OperationDefinition & {
|
|
490
|
+
readonly id: "projectnotifications.read";
|
|
491
|
+
}, OperationDefinition & {
|
|
492
|
+
readonly id: "projectnotifications.update";
|
|
493
|
+
} & {
|
|
494
|
+
readonly request: import("zod").ZodObject<{
|
|
495
|
+
expectedRevision: import("zod").ZodNumber;
|
|
496
|
+
email: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
497
|
+
enabled: import("zod").ZodBoolean;
|
|
498
|
+
recipients: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
499
|
+
kind: import("zod").ZodLiteral<"admins">;
|
|
500
|
+
}, import("zod/v4/core").$strict>, import("zod").ZodObject<{
|
|
501
|
+
kind: import("zod").ZodLiteral<"members">;
|
|
502
|
+
memberIds: import("zod").ZodArray<import("zod").ZodString>;
|
|
503
|
+
}, import("zod/v4/core").$strict>], "kind">;
|
|
504
|
+
scheduleKinds: import("zod").ZodEnum<{
|
|
505
|
+
both: "both";
|
|
506
|
+
"one-shot": "one-shot";
|
|
507
|
+
recurring: "recurring";
|
|
508
|
+
}>;
|
|
509
|
+
}, import("zod/v4/core").$strict>>;
|
|
510
|
+
statusWebhook: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
|
|
511
|
+
url: import("zod").ZodString;
|
|
512
|
+
events: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
513
|
+
failed: "failed";
|
|
514
|
+
}>>;
|
|
515
|
+
}, import("zod/v4/core").$strict>>>;
|
|
516
|
+
}, import("zod/v4/core").$strict>;
|
|
517
|
+
}, OperationDefinition & {
|
|
518
|
+
readonly id: "projectnotifications.rotateSigningKey";
|
|
519
|
+
} & {
|
|
520
|
+
readonly request: import("zod").ZodObject<{
|
|
521
|
+
expectedRevision: import("zod").ZodNumber;
|
|
522
|
+
}, import("zod/v4/core").$strict>;
|
|
523
|
+
}, OperationDefinition & {
|
|
524
|
+
readonly id: "statusdeliveries.list";
|
|
489
525
|
}, OperationDefinition & {
|
|
490
526
|
readonly id: "organizations.lifecycle";
|
|
491
527
|
}, OperationDefinition & {
|
|
@@ -558,16 +594,16 @@ export declare const OPERATIONS: readonly [{
|
|
|
558
594
|
readonly problems: readonly [];
|
|
559
595
|
readonly response: import("zod").ZodNever | import("zod").ZodObject<{
|
|
560
596
|
dependsOn: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
561
|
-
contract: "contract";
|
|
562
597
|
platform: "platform";
|
|
598
|
+
contract: "contract";
|
|
563
599
|
domain: "domain";
|
|
564
600
|
application: "application";
|
|
565
601
|
adapter: "adapter";
|
|
566
602
|
"test-support": "test-support";
|
|
567
603
|
}>>;
|
|
568
604
|
layer: import("zod").ZodEnum<{
|
|
569
|
-
contract: "contract";
|
|
570
605
|
platform: "platform";
|
|
606
|
+
contract: "contract";
|
|
571
607
|
domain: "domain";
|
|
572
608
|
application: "application";
|
|
573
609
|
adapter: "adapter";
|
|
@@ -634,16 +670,16 @@ export declare const OPERATIONS: readonly [{
|
|
|
634
670
|
readonly problems: readonly ["not_found"];
|
|
635
671
|
readonly response: import("zod").ZodNever | import("zod").ZodObject<{
|
|
636
672
|
dependsOn: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
637
|
-
contract: "contract";
|
|
638
673
|
platform: "platform";
|
|
674
|
+
contract: "contract";
|
|
639
675
|
domain: "domain";
|
|
640
676
|
application: "application";
|
|
641
677
|
adapter: "adapter";
|
|
642
678
|
"test-support": "test-support";
|
|
643
679
|
}>>;
|
|
644
680
|
layer: import("zod").ZodEnum<{
|
|
645
|
-
contract: "contract";
|
|
646
681
|
platform: "platform";
|
|
682
|
+
contract: "contract";
|
|
647
683
|
domain: "domain";
|
|
648
684
|
application: "application";
|
|
649
685
|
adapter: "adapter";
|
|
@@ -4325,7 +4361,7 @@ export declare const OPERATIONS: readonly [{
|
|
|
4325
4361
|
"Idempotency-Replayed": import("zod").ZodOptional<import("zod").ZodLiteral<"true">>;
|
|
4326
4362
|
}, import("zod/v4/core").$strip>;
|
|
4327
4363
|
readonly creates: true;
|
|
4328
|
-
readonly description: "" | "Confirms one exact manual execution-credit quote and creates or replays its durable payment operation. Billing-owner authority and explicit agent approval apply; the Idempotency-Key preserves one payment identity across retries. Manual funding stays outside the automatic-charge ceiling. A browser redirect never grants credit: only authenticated provider reconciliation can move the operation to paid and grant its exact execution credit once, while the operation reports provider-confirmed tax and gross when known.";
|
|
4364
|
+
readonly description: "" | "Confirms one exact manual execution-credit quote and creates or replays its durable payment operation. Billing-owner authority and explicit agent approval apply; the Idempotency-Key preserves one payment identity across retries. Manual funding stays outside the automatic-charge ceiling. A browser redirect never grants credit: only authenticated provider reconciliation can move the operation to paid and grant its exact execution credit once, while the operation reports provider-confirmed tax and gross when known. With savePaymentMethod, the payment method used becomes the organization's saved payment method once the payment is confirmed, unless one is already saved.";
|
|
4329
4365
|
readonly environments: readonly ["live"];
|
|
4330
4366
|
readonly id: "billing.purchase";
|
|
4331
4367
|
readonly idempotent: true;
|
|
@@ -4344,6 +4380,7 @@ export declare const OPERATIONS: readonly [{
|
|
|
4344
4380
|
confirmed: import("zod").ZodLiteral<true>;
|
|
4345
4381
|
expectedRevision: import("zod").ZodNumber;
|
|
4346
4382
|
quote: import("zod").ZodString;
|
|
4383
|
+
savePaymentMethod: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4347
4384
|
}, import("zod/v4/core").$strict>;
|
|
4348
4385
|
readonly requestExample: {
|
|
4349
4386
|
confirmed?: never;
|
package/dist/operations.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { effectiveCustomerLimitsSchema } from "./effective-limits.js";
|
|
2
2
|
import { z } from "./zod.js";
|
|
3
3
|
import { MEMBER_OPERATIONS } from "./members.js";
|
|
4
|
+
import { PROJECT_NOTIFICATION_OPERATIONS } from "./project-notifications.js";
|
|
4
5
|
import { DATA_EXPORT_OPERATIONS } from "./data-export.js";
|
|
5
6
|
import { ORGANIZATION_LIFECYCLE_OPERATIONS } from "./organization-lifecycle.js";
|
|
6
7
|
import { API_UNUSED_RESPONSE_SCHEMA } from "./operation-definitions.js";
|
|
@@ -527,6 +528,7 @@ export const OPERATIONS = [
|
|
|
527
528
|
},
|
|
528
529
|
...DATA_EXPORT_OPERATIONS,
|
|
529
530
|
...MEMBER_OPERATIONS,
|
|
531
|
+
...PROJECT_NOTIFICATION_OPERATIONS,
|
|
530
532
|
...ORGANIZATION_LIFECYCLE_OPERATIONS,
|
|
531
533
|
{
|
|
532
534
|
creates: false,
|
|
@@ -2492,7 +2494,7 @@ export const OPERATIONS = [
|
|
|
2492
2494
|
creates: true,
|
|
2493
2495
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
2494
2496
|
? ""
|
|
2495
|
-
: "Confirms one exact manual execution-credit quote and creates or replays its durable payment operation. Billing-owner authority and explicit agent approval apply; the Idempotency-Key preserves one payment identity across retries. Manual funding stays outside the automatic-charge ceiling. A browser redirect never grants credit: only authenticated provider reconciliation can move the operation to paid and grant its exact execution credit once, while the operation reports provider-confirmed tax and gross when known.",
|
|
2497
|
+
: "Confirms one exact manual execution-credit quote and creates or replays its durable payment operation. Billing-owner authority and explicit agent approval apply; the Idempotency-Key preserves one payment identity across retries. Manual funding stays outside the automatic-charge ceiling. A browser redirect never grants credit: only authenticated provider reconciliation can move the operation to paid and grant its exact execution credit once, while the operation reports provider-confirmed tax and gross when known. With savePaymentMethod, the payment method used becomes the organization's saved payment method once the payment is confirmed, unless one is already saved.",
|
|
2496
2498
|
environments: ["live"],
|
|
2497
2499
|
id: "billing.purchase",
|
|
2498
2500
|
idempotent: true,
|
package/dist/policy.d.ts
CHANGED
|
@@ -47,10 +47,11 @@ export declare function grantableScopes(): readonly Scope[];
|
|
|
47
47
|
* that will be refused `authentication_required` on the only route it names,
|
|
48
48
|
* for ever, and nothing about the key says so.
|
|
49
49
|
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
50
|
+
* Listing an organization's projects stays a signed-in member's question, and
|
|
51
|
+
* that operation refuses a key. `projects:read` is usable by a key all the same
|
|
52
|
+
* since W9-54, because reading its own project's notification settings declares
|
|
53
|
+
* it. A key's authority already names exactly the one project those reads,
|
|
54
|
+
* and rename/archive/delete, may affect.
|
|
54
55
|
*/
|
|
55
56
|
export declare function credentialScopes(): readonly Scope[];
|
|
56
57
|
/** One row of the generated policy matrix. */
|
package/dist/policy.js
CHANGED
|
@@ -136,10 +136,11 @@ export function grantableScopes() {
|
|
|
136
136
|
* that will be refused `authentication_required` on the only route it names,
|
|
137
137
|
* for ever, and nothing about the key says so.
|
|
138
138
|
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
139
|
+
* Listing an organization's projects stays a signed-in member's question, and
|
|
140
|
+
* that operation refuses a key. `projects:read` is usable by a key all the same
|
|
141
|
+
* since W9-54, because reading its own project's notification settings declares
|
|
142
|
+
* it. A key's authority already names exactly the one project those reads,
|
|
143
|
+
* and rename/archive/delete, may affect.
|
|
143
144
|
*/
|
|
144
145
|
export function credentialScopes() {
|
|
145
146
|
const usable = new Set(allOperations()
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { z } from "./zod.js";
|
|
2
|
+
/** Per-project/environment preferences. Billing-safety notices are separate. */
|
|
3
|
+
export declare const notificationEmailRecipientsSchema: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
4
|
+
kind: import("zod").ZodLiteral<"admins">;
|
|
5
|
+
}, import("zod/v4/core").$strict>, import("zod").ZodObject<{
|
|
6
|
+
kind: import("zod").ZodLiteral<"members">;
|
|
7
|
+
memberIds: import("zod").ZodArray<import("zod").ZodString>;
|
|
8
|
+
}, import("zod/v4/core").$strict>], "kind">;
|
|
9
|
+
export declare const notificationEmailSettingsSchema: import("zod").ZodObject<{
|
|
10
|
+
enabled: import("zod").ZodBoolean;
|
|
11
|
+
recipients: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
12
|
+
kind: import("zod").ZodLiteral<"admins">;
|
|
13
|
+
}, import("zod/v4/core").$strict>, import("zod").ZodObject<{
|
|
14
|
+
kind: import("zod").ZodLiteral<"members">;
|
|
15
|
+
memberIds: import("zod").ZodArray<import("zod").ZodString>;
|
|
16
|
+
}, import("zod/v4/core").$strict>], "kind">;
|
|
17
|
+
scheduleKinds: import("zod").ZodEnum<{
|
|
18
|
+
both: "both";
|
|
19
|
+
"one-shot": "one-shot";
|
|
20
|
+
recurring: "recurring";
|
|
21
|
+
}>;
|
|
22
|
+
}, import("zod/v4/core").$strict>;
|
|
23
|
+
export declare const statusWebhookEventSchema: import("zod").ZodEnum<{
|
|
24
|
+
failed: "failed";
|
|
25
|
+
}>;
|
|
26
|
+
export type StatusWebhookEvent = z.infer<typeof statusWebhookEventSchema>;
|
|
27
|
+
export declare const statusWebhookConfigurationSchema: import("zod").ZodObject<{
|
|
28
|
+
url: import("zod").ZodString;
|
|
29
|
+
events: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
30
|
+
failed: "failed";
|
|
31
|
+
}>>;
|
|
32
|
+
}, import("zod/v4/core").$strict>;
|
|
33
|
+
export declare const projectNotificationSettingsSchema: import("zod").ZodObject<{
|
|
34
|
+
project: import("zod").ZodString;
|
|
35
|
+
environmentKind: import("zod").ZodEnum<{
|
|
36
|
+
test: "test";
|
|
37
|
+
live: "live";
|
|
38
|
+
}>;
|
|
39
|
+
revision: import("zod").ZodNumber;
|
|
40
|
+
email: import("zod").ZodObject<{
|
|
41
|
+
enabled: import("zod").ZodBoolean;
|
|
42
|
+
recipients: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
43
|
+
kind: import("zod").ZodLiteral<"admins">;
|
|
44
|
+
}, import("zod/v4/core").$strict>, import("zod").ZodObject<{
|
|
45
|
+
kind: import("zod").ZodLiteral<"members">;
|
|
46
|
+
memberIds: import("zod").ZodArray<import("zod").ZodString>;
|
|
47
|
+
}, import("zod/v4/core").$strict>], "kind">;
|
|
48
|
+
scheduleKinds: import("zod").ZodEnum<{
|
|
49
|
+
both: "both";
|
|
50
|
+
"one-shot": "one-shot";
|
|
51
|
+
recurring: "recurring";
|
|
52
|
+
}>;
|
|
53
|
+
}, import("zod/v4/core").$strict>;
|
|
54
|
+
statusWebhook: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
55
|
+
url: import("zod").ZodString;
|
|
56
|
+
events: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
57
|
+
failed: "failed";
|
|
58
|
+
}>>;
|
|
59
|
+
signingKey: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
60
|
+
id: import("zod").ZodString;
|
|
61
|
+
}, import("zod/v4/core").$strict>>;
|
|
62
|
+
revision: import("zod").ZodNumber;
|
|
63
|
+
}, import("zod/v4/core").$strict>>;
|
|
64
|
+
}, import("zod/v4/core").$strict>;
|
|
65
|
+
export type ProjectNotificationSettings = z.infer<typeof projectNotificationSettingsSchema>;
|
|
66
|
+
export declare const projectNotificationSettingsUpdateRequestSchema: import("zod").ZodObject<{
|
|
67
|
+
expectedRevision: import("zod").ZodNumber;
|
|
68
|
+
email: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
69
|
+
enabled: import("zod").ZodBoolean;
|
|
70
|
+
recipients: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
71
|
+
kind: import("zod").ZodLiteral<"admins">;
|
|
72
|
+
}, import("zod/v4/core").$strict>, import("zod").ZodObject<{
|
|
73
|
+
kind: import("zod").ZodLiteral<"members">;
|
|
74
|
+
memberIds: import("zod").ZodArray<import("zod").ZodString>;
|
|
75
|
+
}, import("zod/v4/core").$strict>], "kind">;
|
|
76
|
+
scheduleKinds: import("zod").ZodEnum<{
|
|
77
|
+
both: "both";
|
|
78
|
+
"one-shot": "one-shot";
|
|
79
|
+
recurring: "recurring";
|
|
80
|
+
}>;
|
|
81
|
+
}, import("zod/v4/core").$strict>>;
|
|
82
|
+
statusWebhook: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
|
|
83
|
+
url: import("zod").ZodString;
|
|
84
|
+
events: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
85
|
+
failed: "failed";
|
|
86
|
+
}>>;
|
|
87
|
+
}, import("zod/v4/core").$strict>>>;
|
|
88
|
+
}, import("zod/v4/core").$strict>;
|
|
89
|
+
export type ProjectNotificationSettingsUpdateRequest = z.infer<typeof projectNotificationSettingsUpdateRequestSchema>;
|
|
90
|
+
export declare const statusSigningKeyRequestSchema: import("zod").ZodObject<{
|
|
91
|
+
expectedRevision: import("zod").ZodNumber;
|
|
92
|
+
}, import("zod/v4/core").$strict>;
|
|
93
|
+
export declare const statusSigningKeyCreatedSchema: import("zod").ZodObject<{
|
|
94
|
+
settings: import("zod").ZodObject<{
|
|
95
|
+
project: import("zod").ZodString;
|
|
96
|
+
environmentKind: import("zod").ZodEnum<{
|
|
97
|
+
test: "test";
|
|
98
|
+
live: "live";
|
|
99
|
+
}>;
|
|
100
|
+
revision: import("zod").ZodNumber;
|
|
101
|
+
email: import("zod").ZodObject<{
|
|
102
|
+
enabled: import("zod").ZodBoolean;
|
|
103
|
+
recipients: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
104
|
+
kind: import("zod").ZodLiteral<"admins">;
|
|
105
|
+
}, import("zod/v4/core").$strict>, import("zod").ZodObject<{
|
|
106
|
+
kind: import("zod").ZodLiteral<"members">;
|
|
107
|
+
memberIds: import("zod").ZodArray<import("zod").ZodString>;
|
|
108
|
+
}, import("zod/v4/core").$strict>], "kind">;
|
|
109
|
+
scheduleKinds: import("zod").ZodEnum<{
|
|
110
|
+
both: "both";
|
|
111
|
+
"one-shot": "one-shot";
|
|
112
|
+
recurring: "recurring";
|
|
113
|
+
}>;
|
|
114
|
+
}, import("zod/v4/core").$strict>;
|
|
115
|
+
statusWebhook: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
116
|
+
url: import("zod").ZodString;
|
|
117
|
+
events: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
118
|
+
failed: "failed";
|
|
119
|
+
}>>;
|
|
120
|
+
signingKey: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
121
|
+
id: import("zod").ZodString;
|
|
122
|
+
}, import("zod/v4/core").$strict>>;
|
|
123
|
+
revision: import("zod").ZodNumber;
|
|
124
|
+
}, import("zod/v4/core").$strict>>;
|
|
125
|
+
}, import("zod/v4/core").$strict>;
|
|
126
|
+
keyId: import("zod").ZodString;
|
|
127
|
+
secret: import("zod").ZodString;
|
|
128
|
+
shownOnce: import("zod").ZodLiteral<true>;
|
|
129
|
+
}, import("zod/v4/core").$strict>;
|
|
130
|
+
export type StatusSigningKeyCreated = z.infer<typeof statusSigningKeyCreatedSchema>;
|
|
131
|
+
/** Safe notification payload: no customer request or response content. */
|
|
132
|
+
export declare const statusWebhookPayloadSchema: import("zod").ZodObject<{
|
|
133
|
+
version: import("zod").ZodLiteral<"2026-10-08">;
|
|
134
|
+
eventId: import("zod").ZodString;
|
|
135
|
+
type: import("zod").ZodEnum<{
|
|
136
|
+
failed: "failed";
|
|
137
|
+
}>;
|
|
138
|
+
projectId: import("zod").ZodString;
|
|
139
|
+
environmentKind: import("zod").ZodEnum<{
|
|
140
|
+
test: "test";
|
|
141
|
+
live: "live";
|
|
142
|
+
}>;
|
|
143
|
+
scheduleId: import("zod").ZodString;
|
|
144
|
+
occurrenceId: import("zod").ZodString;
|
|
145
|
+
occurredAt: import("zod").ZodString;
|
|
146
|
+
outcomeOrigin: import("zod").ZodEnum<{
|
|
147
|
+
customer: "customer";
|
|
148
|
+
platform: "platform";
|
|
149
|
+
}>;
|
|
150
|
+
diagnostic: import("zod").ZodOptional<import("zod").ZodString>;
|
|
151
|
+
statusCode: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
152
|
+
pause: import("zod").ZodOptional<import("zod").ZodUnknown>;
|
|
153
|
+
}, import("zod/v4/core").$strip>;
|
|
154
|
+
export type StatusWebhookPayload = z.infer<typeof statusWebhookPayloadSchema>;
|
|
155
|
+
export declare const statusWebhookDeliverySchema: import("zod").ZodObject<{
|
|
156
|
+
id: import("zod").ZodString;
|
|
157
|
+
event: import("zod").ZodEnum<{
|
|
158
|
+
failed: "failed";
|
|
159
|
+
}>;
|
|
160
|
+
schedule: import("zod").ZodString;
|
|
161
|
+
occurrence: import("zod").ZodString;
|
|
162
|
+
occurredAt: import("zod").ZodString;
|
|
163
|
+
url: import("zod").ZodString;
|
|
164
|
+
state: import("zod").ZodEnum<{
|
|
165
|
+
suppressed: "suppressed";
|
|
166
|
+
failed: "failed";
|
|
167
|
+
pending: "pending";
|
|
168
|
+
delivered: "delivered";
|
|
169
|
+
delivering: "delivering";
|
|
170
|
+
}>;
|
|
171
|
+
attempts: import("zod").ZodNumber;
|
|
172
|
+
nextAttemptAt: import("zod").ZodOptional<import("zod").ZodString>;
|
|
173
|
+
lastStatus: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
174
|
+
lastError: import("zod").ZodOptional<import("zod").ZodString>;
|
|
175
|
+
}, import("zod/v4/core").$strict>;
|
|
176
|
+
export type StatusWebhookDelivery = z.infer<typeof statusWebhookDeliverySchema>;
|
|
177
|
+
export declare const statusWebhookDeliveryPageSchema: import("zod").ZodObject<{
|
|
178
|
+
data: import("zod").ZodArray<import("zod").ZodObject<{
|
|
179
|
+
id: import("zod").ZodString;
|
|
180
|
+
event: import("zod").ZodEnum<{
|
|
181
|
+
failed: "failed";
|
|
182
|
+
}>;
|
|
183
|
+
schedule: import("zod").ZodString;
|
|
184
|
+
occurrence: import("zod").ZodString;
|
|
185
|
+
occurredAt: import("zod").ZodString;
|
|
186
|
+
url: import("zod").ZodString;
|
|
187
|
+
state: import("zod").ZodEnum<{
|
|
188
|
+
suppressed: "suppressed";
|
|
189
|
+
failed: "failed";
|
|
190
|
+
pending: "pending";
|
|
191
|
+
delivered: "delivered";
|
|
192
|
+
delivering: "delivering";
|
|
193
|
+
}>;
|
|
194
|
+
attempts: import("zod").ZodNumber;
|
|
195
|
+
nextAttemptAt: import("zod").ZodOptional<import("zod").ZodString>;
|
|
196
|
+
lastStatus: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
197
|
+
lastError: import("zod").ZodOptional<import("zod").ZodString>;
|
|
198
|
+
}, import("zod/v4/core").$strict>>;
|
|
199
|
+
nextCursor: import("zod").ZodOptional<import("zod").ZodString>;
|
|
200
|
+
}, import("zod/v4/core").$strict>;
|
|
201
|
+
export type StatusWebhookDeliveryPage = z.infer<typeof statusWebhookDeliveryPageSchema>;
|
|
202
|
+
export declare const PROJECT_NOTIFICATION_OPERATIONS: readonly [import("./operations.js").OperationDefinition & {
|
|
203
|
+
readonly id: "projectnotifications.read";
|
|
204
|
+
}, import("./operations.js").OperationDefinition & {
|
|
205
|
+
readonly id: "projectnotifications.update";
|
|
206
|
+
} & {
|
|
207
|
+
readonly request: import("zod").ZodObject<{
|
|
208
|
+
expectedRevision: import("zod").ZodNumber;
|
|
209
|
+
email: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
210
|
+
enabled: import("zod").ZodBoolean;
|
|
211
|
+
recipients: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
212
|
+
kind: import("zod").ZodLiteral<"admins">;
|
|
213
|
+
}, import("zod/v4/core").$strict>, import("zod").ZodObject<{
|
|
214
|
+
kind: import("zod").ZodLiteral<"members">;
|
|
215
|
+
memberIds: import("zod").ZodArray<import("zod").ZodString>;
|
|
216
|
+
}, import("zod/v4/core").$strict>], "kind">;
|
|
217
|
+
scheduleKinds: import("zod").ZodEnum<{
|
|
218
|
+
both: "both";
|
|
219
|
+
"one-shot": "one-shot";
|
|
220
|
+
recurring: "recurring";
|
|
221
|
+
}>;
|
|
222
|
+
}, import("zod/v4/core").$strict>>;
|
|
223
|
+
statusWebhook: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
|
|
224
|
+
url: import("zod").ZodString;
|
|
225
|
+
events: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
226
|
+
failed: "failed";
|
|
227
|
+
}>>;
|
|
228
|
+
}, import("zod/v4/core").$strict>>>;
|
|
229
|
+
}, import("zod/v4/core").$strict>;
|
|
230
|
+
}, import("./operations.js").OperationDefinition & {
|
|
231
|
+
readonly id: "projectnotifications.rotateSigningKey";
|
|
232
|
+
} & {
|
|
233
|
+
readonly request: import("zod").ZodObject<{
|
|
234
|
+
expectedRevision: import("zod").ZodNumber;
|
|
235
|
+
}, import("zod/v4/core").$strict>;
|
|
236
|
+
}, import("./operations.js").OperationDefinition & {
|
|
237
|
+
readonly id: "statusdeliveries.list";
|
|
238
|
+
}];
|