@greatwait/contracts 0.1.0-alpha.5 → 0.1.0-alpha.6

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 (119) hide show
  1. package/dist/authority.d.ts +4 -1
  2. package/dist/authority.js +1 -0
  3. package/dist/data-export.d.ts +2 -0
  4. package/dist/delivery.d.ts +26 -0
  5. package/dist/delivery.js +2 -0
  6. package/dist/endpoints.d.ts +168 -0
  7. package/dist/endpoints.js +72 -1
  8. package/dist/http-request.d.ts +193 -0
  9. package/dist/http-request.js +305 -0
  10. package/dist/identity.d.ts +4 -4
  11. package/dist/index.d.ts +5 -3
  12. package/dist/index.js +4 -2
  13. package/dist/mcp.d.ts +2 -1
  14. package/dist/members.d.ts +141 -0
  15. package/dist/members.js +223 -0
  16. package/dist/oauth.d.ts +7 -0
  17. package/dist/operation-definitions.d.ts +20 -4
  18. package/dist/operation-definitions.js +9 -1
  19. package/dist/operations.d.ts +705 -39
  20. package/dist/operations.js +83 -10
  21. package/dist/organization-lifecycle.d.ts +10 -0
  22. package/dist/policy.js +5 -2
  23. package/dist/scheduling-records.d.ts +220 -0
  24. package/dist/scheduling-records.js +5 -0
  25. package/dist/scheduling.d.ts +236 -0
  26. package/dist/scheduling.js +31 -0
  27. package/dist/secrets.d.ts +7 -0
  28. package/dist/tenancy.d.ts +1 -1
  29. package/dist/tenancy.js +1 -1
  30. package/dist/zod-values.d.ts +2 -2
  31. package/dist/zod-values.js +1 -1
  32. package/generated/v1/examples/endpoints.ensure.request.json +3 -0
  33. package/generated/v1/examples/endpoints.ensure.response.json +20 -0
  34. package/generated/v1/examples/invitations.create.request.json +5 -0
  35. package/generated/v1/examples/invitations.create.response.json +7 -0
  36. package/generated/v1/examples/invitations.list.response.json +11 -0
  37. package/generated/v1/examples/invitations.resend.request.json +1 -0
  38. package/generated/v1/examples/invitations.resend.response.json +4 -0
  39. package/generated/v1/examples/invitations.revoke.request.json +3 -0
  40. package/generated/v1/examples/invitations.revoke.response.json +4 -0
  41. package/generated/v1/examples/members.list.response.json +13 -0
  42. package/generated/v1/examples/members.remove.request.json +3 -0
  43. package/generated/v1/examples/members.remove.response.json +4 -0
  44. package/generated/v1/examples/members.role.request.json +3 -0
  45. package/generated/v1/examples/members.role.response.json +4 -0
  46. package/generated/v1/examples/projectmembers.add.request.json +1 -0
  47. package/generated/v1/examples/projectmembers.add.response.json +4 -0
  48. package/generated/v1/examples/projectmembers.remove.request.json +3 -0
  49. package/generated/v1/examples/projectmembers.remove.response.json +4 -0
  50. package/generated/v1/manifest.json +285 -0
  51. package/generated/v1/openapi.json +8339 -773
  52. package/generated/v1/policy-matrix.json +72 -0
  53. package/generated/v1/schemas/context.read.response.json +1 -0
  54. package/generated/v1/schemas/credentials.connection.response.json +1 -0
  55. package/generated/v1/schemas/credentials.create.request.json +1 -0
  56. package/generated/v1/schemas/credentials.create.response.json +1 -0
  57. package/generated/v1/schemas/credentials.list.response.json +1 -0
  58. package/generated/v1/schemas/credentials.revoke.response.json +1 -0
  59. package/generated/v1/schemas/credentials.rotate.response.json +2 -0
  60. package/generated/v1/schemas/endpoints.acknowledgeSigningKeyRotation.response.json +59 -0
  61. package/generated/v1/schemas/endpoints.create.request.json +74 -0
  62. package/generated/v1/schemas/endpoints.create.response.json +59 -0
  63. package/generated/v1/schemas/endpoints.disable.response.json +59 -0
  64. package/generated/v1/schemas/endpoints.enable.response.json +59 -0
  65. package/generated/v1/schemas/endpoints.ensure.request.json +91 -0
  66. package/generated/v1/schemas/endpoints.ensure.response.json +169 -0
  67. package/generated/v1/schemas/endpoints.list.response.json +59 -0
  68. package/generated/v1/schemas/endpoints.read.response.json +59 -0
  69. package/generated/v1/schemas/endpoints.rotateSigningKey.response.json +59 -0
  70. package/generated/v1/schemas/endpoints.update.request.json +74 -0
  71. package/generated/v1/schemas/endpoints.update.response.json +59 -0
  72. package/generated/v1/schemas/grants.list.response.json +1 -0
  73. package/generated/v1/schemas/grants.revoke.response.json +1 -0
  74. package/generated/v1/schemas/invitations.create.request-headers.json +13 -0
  75. package/generated/v1/schemas/invitations.create.request.json +24 -0
  76. package/generated/v1/schemas/invitations.create.response.json +31 -0
  77. package/generated/v1/schemas/invitations.list.response.json +40 -0
  78. package/generated/v1/schemas/invitations.resend.request-headers.json +13 -0
  79. package/generated/v1/schemas/invitations.resend.request.json +6 -0
  80. package/generated/v1/schemas/invitations.resend.response.json +27 -0
  81. package/generated/v1/schemas/invitations.revoke.request-headers.json +13 -0
  82. package/generated/v1/schemas/invitations.revoke.request.json +12 -0
  83. package/generated/v1/schemas/invitations.revoke.response.json +27 -0
  84. package/generated/v1/schemas/members.list.response.json +53 -0
  85. package/generated/v1/schemas/members.remove.request-headers.json +13 -0
  86. package/generated/v1/schemas/members.remove.request.json +12 -0
  87. package/generated/v1/schemas/members.remove.response.json +27 -0
  88. package/generated/v1/schemas/members.role.request-headers.json +13 -0
  89. package/generated/v1/schemas/members.role.request.json +12 -0
  90. package/generated/v1/schemas/members.role.response.json +27 -0
  91. package/generated/v1/schemas/projectmembers.add.request-headers.json +13 -0
  92. package/generated/v1/schemas/projectmembers.add.request.json +6 -0
  93. package/generated/v1/schemas/projectmembers.add.response.json +27 -0
  94. package/generated/v1/schemas/projectmembers.remove.request-headers.json +13 -0
  95. package/generated/v1/schemas/projectmembers.remove.request.json +12 -0
  96. package/generated/v1/schemas/projectmembers.remove.response.json +27 -0
  97. package/generated/v1/schemas/schedules.archive.response.json +138 -1
  98. package/generated/v1/schemas/schedules.cancel.response.json +138 -1
  99. package/generated/v1/schemas/schedules.create.request.json +150 -1
  100. package/generated/v1/schemas/schedules.create.response.json +156 -1
  101. package/generated/v1/schemas/schedules.list.response.json +138 -1
  102. package/generated/v1/schemas/schedules.pause.response.json +138 -1
  103. package/generated/v1/schemas/schedules.read.response.json +138 -1
  104. package/generated/v1/schemas/schedules.replace.request.json +150 -1
  105. package/generated/v1/schemas/schedules.replace.response.json +156 -1
  106. package/generated/v1/schemas/schedules.resume.response.json +138 -1
  107. package/generated/v1/snippets/endpoints.create.json +1 -1
  108. package/generated/v1/snippets/endpoints.ensure.json +6 -0
  109. package/generated/v1/snippets/invitations.create.json +6 -0
  110. package/generated/v1/snippets/invitations.list.json +6 -0
  111. package/generated/v1/snippets/invitations.resend.json +6 -0
  112. package/generated/v1/snippets/invitations.revoke.json +6 -0
  113. package/generated/v1/snippets/journey/create-destination.json +1 -1
  114. package/generated/v1/snippets/members.list.json +6 -0
  115. package/generated/v1/snippets/members.remove.json +6 -0
  116. package/generated/v1/snippets/members.role.json +6 -0
  117. package/generated/v1/snippets/projectmembers.add.json +6 -0
  118. package/generated/v1/snippets/projectmembers.remove.json +6 -0
  119. package/package.json +1 -1
@@ -709,6 +709,34 @@ export declare function defaultLatenessPolicyForRecurrence(kind: Recurrence["kin
709
709
  export declare const SCHEDULE_NAME_MAX_LENGTH = 120;
710
710
  export declare const scheduleNameSchema: import("zod").ZodString;
711
711
  export declare const scheduleSchema: import("zod").ZodObject<{
712
+ http: import("zod").ZodOptional<import("zod").ZodObject<{
713
+ method: import("zod").ZodEnum<{
714
+ POST: "POST";
715
+ PUT: "PUT";
716
+ GET: "GET";
717
+ }>;
718
+ body: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
719
+ mode: import("zod").ZodLiteral<"envelope">;
720
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
721
+ mode: import("zod").ZodLiteral<"none">;
722
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
723
+ mode: import("zod").ZodLiteral<"json">;
724
+ value: import("zod").ZodOptional<import("zod").ZodJSONSchema>;
725
+ }, import("zod/v4/core").$strict>], "mode">;
726
+ headers: import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
727
+ name: import("zod").ZodString;
728
+ secret: import("zod").ZodLiteral<false>;
729
+ value: import("zod").ZodString;
730
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
731
+ name: import("zod").ZodString;
732
+ secret: import("zod").ZodLiteral<true>;
733
+ configured: import("zod").ZodLiteral<true>;
734
+ value: import("zod").ZodOptional<import("zod").ZodNever>;
735
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
736
+ name: import("zod").ZodString;
737
+ suppressed: import("zod").ZodLiteral<true>;
738
+ }, import("zod/v4/core").$strict>]>>;
739
+ }, import("zod/v4/core").$strict>>;
712
740
  archivedAt: import("zod").ZodOptional<import("zod").ZodString>;
713
741
  data: import("zod").ZodOptional<import("zod").ZodJSONSchema>;
714
742
  createdAt: import("zod").ZodString;
@@ -773,6 +801,34 @@ export type Schedule = z.infer<typeof scheduleSchema>;
773
801
  */
774
802
  export declare const schedulePageSchema: import("zod").ZodObject<{
775
803
  data: import("zod").ZodArray<import("zod").ZodObject<{
804
+ http: import("zod").ZodOptional<import("zod").ZodObject<{
805
+ method: import("zod").ZodEnum<{
806
+ POST: "POST";
807
+ PUT: "PUT";
808
+ GET: "GET";
809
+ }>;
810
+ body: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
811
+ mode: import("zod").ZodLiteral<"envelope">;
812
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
813
+ mode: import("zod").ZodLiteral<"none">;
814
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
815
+ mode: import("zod").ZodLiteral<"json">;
816
+ value: import("zod").ZodOptional<import("zod").ZodJSONSchema>;
817
+ }, import("zod/v4/core").$strict>], "mode">;
818
+ headers: import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
819
+ name: import("zod").ZodString;
820
+ secret: import("zod").ZodLiteral<false>;
821
+ value: import("zod").ZodString;
822
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
823
+ name: import("zod").ZodString;
824
+ secret: import("zod").ZodLiteral<true>;
825
+ configured: import("zod").ZodLiteral<true>;
826
+ value: import("zod").ZodOptional<import("zod").ZodNever>;
827
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
828
+ name: import("zod").ZodString;
829
+ suppressed: import("zod").ZodLiteral<true>;
830
+ }, import("zod/v4/core").$strict>]>>;
831
+ }, import("zod/v4/core").$strict>>;
776
832
  archivedAt: import("zod").ZodOptional<import("zod").ZodString>;
777
833
  data: import("zod").ZodOptional<import("zod").ZodJSONSchema>;
778
834
  createdAt: import("zod").ZodString;
@@ -1286,6 +1342,34 @@ export declare const scheduleViewSchema: import("zod").ZodObject<{
1286
1342
  attemptCount: import("zod").ZodNumber;
1287
1343
  }, import("zod/v4/core").$strip>;
1288
1344
  schedule: import("zod").ZodObject<{
1345
+ http: import("zod").ZodOptional<import("zod").ZodObject<{
1346
+ method: import("zod").ZodEnum<{
1347
+ POST: "POST";
1348
+ PUT: "PUT";
1349
+ GET: "GET";
1350
+ }>;
1351
+ body: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
1352
+ mode: import("zod").ZodLiteral<"envelope">;
1353
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
1354
+ mode: import("zod").ZodLiteral<"none">;
1355
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
1356
+ mode: import("zod").ZodLiteral<"json">;
1357
+ value: import("zod").ZodOptional<import("zod").ZodJSONSchema>;
1358
+ }, import("zod/v4/core").$strict>], "mode">;
1359
+ headers: import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
1360
+ name: import("zod").ZodString;
1361
+ secret: import("zod").ZodLiteral<false>;
1362
+ value: import("zod").ZodString;
1363
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
1364
+ name: import("zod").ZodString;
1365
+ secret: import("zod").ZodLiteral<true>;
1366
+ configured: import("zod").ZodLiteral<true>;
1367
+ value: import("zod").ZodOptional<import("zod").ZodNever>;
1368
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
1369
+ name: import("zod").ZodString;
1370
+ suppressed: import("zod").ZodLiteral<true>;
1371
+ }, import("zod/v4/core").$strict>]>>;
1372
+ }, import("zod/v4/core").$strict>>;
1289
1373
  archivedAt: import("zod").ZodOptional<import("zod").ZodString>;
1290
1374
  data: import("zod").ZodOptional<import("zod").ZodJSONSchema>;
1291
1375
  createdAt: import("zod").ZodString;
@@ -1339,6 +1423,129 @@ export declare const scheduleViewSchema: import("zod").ZodObject<{
1339
1423
  }, import("zod/v4/core").$strip>;
1340
1424
  }, import("zod/v4/core").$strip>;
1341
1425
  export type ScheduleView = z.infer<typeof scheduleViewSchema>;
1426
+ /**
1427
+ * What a schedule create or replace answers: the schedule view, and — when the
1428
+ * request named its destination by `url` — where that endpoint's signing
1429
+ * secret is (W9-44). Present only then, because only then can the caller have
1430
+ * an endpoint whose secret it never held.
1431
+ */
1432
+ export declare const scheduleWrittenViewSchema: import("zod").ZodObject<{
1433
+ occurrence: import("zod").ZodObject<{
1434
+ generation: import("zod").ZodNumber;
1435
+ id: import("zod").ZodString;
1436
+ plannedFor: import("zod").ZodString;
1437
+ schedule: import("zod").ZodString;
1438
+ sequence: import("zod").ZodNumber;
1439
+ settledAt: import("zod").ZodOptional<import("zod").ZodString>;
1440
+ state: import("zod").ZodEnum<{
1441
+ due: "due";
1442
+ succeeded: "succeeded";
1443
+ ambiguous: "ambiguous";
1444
+ cancelled: "cancelled";
1445
+ planned: "planned";
1446
+ dispatching: "dispatching";
1447
+ retry_wait: "retry_wait";
1448
+ terminal_failed: "terminal_failed";
1449
+ skipped_stale: "skipped_stale";
1450
+ }>;
1451
+ firstAttemptLatenessMs: import("zod").ZodOptional<import("zod").ZodInt>;
1452
+ firstAttemptStartedAt: import("zod").ZodOptional<import("zod").ZodString>;
1453
+ timingEligibility: import("zod").ZodOptional<import("zod").ZodEnum<{
1454
+ customer_blocked: "customer_blocked";
1455
+ eligible: "eligible";
1456
+ platform_blocked: "platform_blocked";
1457
+ }>>;
1458
+ timingEligibilityReason: import("zod").ZodOptional<import("zod").ZodString>;
1459
+ timingPolicyVersion: import("zod").ZodOptional<import("zod").ZodString>;
1460
+ attemptCount: import("zod").ZodNumber;
1461
+ }, import("zod/v4/core").$strip>;
1462
+ schedule: import("zod").ZodObject<{
1463
+ http: import("zod").ZodOptional<import("zod").ZodObject<{
1464
+ method: import("zod").ZodEnum<{
1465
+ POST: "POST";
1466
+ PUT: "PUT";
1467
+ GET: "GET";
1468
+ }>;
1469
+ body: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
1470
+ mode: import("zod").ZodLiteral<"envelope">;
1471
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
1472
+ mode: import("zod").ZodLiteral<"none">;
1473
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
1474
+ mode: import("zod").ZodLiteral<"json">;
1475
+ value: import("zod").ZodOptional<import("zod").ZodJSONSchema>;
1476
+ }, import("zod/v4/core").$strict>], "mode">;
1477
+ headers: import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
1478
+ name: import("zod").ZodString;
1479
+ secret: import("zod").ZodLiteral<false>;
1480
+ value: import("zod").ZodString;
1481
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
1482
+ name: import("zod").ZodString;
1483
+ secret: import("zod").ZodLiteral<true>;
1484
+ configured: import("zod").ZodLiteral<true>;
1485
+ value: import("zod").ZodOptional<import("zod").ZodNever>;
1486
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
1487
+ name: import("zod").ZodString;
1488
+ suppressed: import("zod").ZodLiteral<true>;
1489
+ }, import("zod/v4/core").$strict>]>>;
1490
+ }, import("zod/v4/core").$strict>>;
1491
+ archivedAt: import("zod").ZodOptional<import("zod").ZodString>;
1492
+ data: import("zod").ZodOptional<import("zod").ZodJSONSchema>;
1493
+ createdAt: import("zod").ZodString;
1494
+ delivery: import("zod").ZodOptional<import("zod").ZodObject<{
1495
+ completion: import("zod").ZodEnum<{
1496
+ response: "response";
1497
+ callback: "callback";
1498
+ }>;
1499
+ maxDurationSeconds: import("zod").ZodNumber;
1500
+ onOverlap: import("zod").ZodEnum<{
1501
+ skip: "skip";
1502
+ queue: "queue";
1503
+ }>;
1504
+ }, import("zod/v4/core").$strip>>;
1505
+ endpoint: import("zod").ZodOptional<import("zod").ZodString>;
1506
+ endpointUrl: import("zod").ZodOptional<import("zod").ZodString>;
1507
+ generation: import("zod").ZodNumber;
1508
+ id: import("zod").ZodString;
1509
+ latencyClass: import("zod").ZodEnum<{
1510
+ realtime: "realtime";
1511
+ bulk: "bulk";
1512
+ }>;
1513
+ lateness: import("zod").ZodObject<{
1514
+ maxStalenessSeconds: import("zod").ZodOptional<import("zod").ZodNumber>;
1515
+ policy: import("zod").ZodEnum<{
1516
+ skipAhead: "skipAhead";
1517
+ catchUp: "catchUp";
1518
+ }>;
1519
+ }, import("zod/v4/core").$strict>;
1520
+ name: import("zod").ZodOptional<import("zod").ZodString>;
1521
+ partitionKey: import("zod").ZodOptional<import("zod").ZodString>;
1522
+ nextDueAt: import("zod").ZodOptional<import("zod").ZodString>;
1523
+ recurrence: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
1524
+ kind: import("zod").ZodLiteral<"at">;
1525
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
1526
+ everySeconds: import("zod").ZodNumber;
1527
+ kind: import("zod").ZodLiteral<"every">;
1528
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
1529
+ cron: import("zod").ZodString;
1530
+ kind: import("zod").ZodLiteral<"cron">;
1531
+ timeZone: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
1532
+ }, import("zod/v4/core").$strip>], "kind">;
1533
+ status: import("zod").ZodEnum<{
1534
+ active: "active";
1535
+ completed: "completed";
1536
+ paused: "paused";
1537
+ cancelled: "cancelled";
1538
+ }>;
1539
+ updatedAt: import("zod").ZodString;
1540
+ version: import("zod").ZodNumber;
1541
+ }, import("zod/v4/core").$strip>;
1542
+ endpointSigningSecret: import("zod").ZodOptional<import("zod").ZodObject<{
1543
+ guidance: import("zod").ZodString;
1544
+ returned: import("zod").ZodLiteral<false>;
1545
+ revealUrl: import("zod").ZodOptional<import("zod").ZodString>;
1546
+ }, import("zod/v4/core").$strip>>;
1547
+ }, import("zod/v4/core").$strip>;
1548
+ export type ScheduleWrittenView = z.infer<typeof scheduleWrittenViewSchema>;
1342
1549
  /**
1343
1550
  * The four ways a caller may say when a schedule happens.
1344
1551
  *
@@ -1364,6 +1571,34 @@ export declare const RECURRENCE_REQUEST_FIELDS: readonly ["at", "cron", "delaySe
1364
1571
  * a customer named is the worst kind of helpful.
1365
1572
  */
1366
1573
  export declare const scheduleRequestSchema: import("zod").ZodObject<{
1574
+ http: import("zod").ZodOptional<import("zod").ZodObject<{
1575
+ method: import("zod").ZodOptional<import("zod").ZodEnum<{
1576
+ POST: "POST";
1577
+ PUT: "PUT";
1578
+ GET: "GET";
1579
+ }>>;
1580
+ body: import("zod").ZodOptional<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
1581
+ mode: import("zod").ZodLiteral<"envelope">;
1582
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
1583
+ mode: import("zod").ZodLiteral<"json">;
1584
+ value: import("zod").ZodJSONSchema;
1585
+ }, import("zod/v4/core").$strict>], "mode">>;
1586
+ headers: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
1587
+ action: import("zod").ZodLiteral<"set">;
1588
+ name: import("zod").ZodString;
1589
+ value: import("zod").ZodString;
1590
+ secret: import("zod").ZodOptional<import("zod").ZodBoolean>;
1591
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
1592
+ action: import("zod").ZodLiteral<"keep">;
1593
+ name: import("zod").ZodString;
1594
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
1595
+ action: import("zod").ZodLiteral<"remove">;
1596
+ name: import("zod").ZodString;
1597
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
1598
+ action: import("zod").ZodLiteral<"suppress">;
1599
+ name: import("zod").ZodString;
1600
+ }, import("zod/v4/core").$strict>], "action">>>;
1601
+ }, import("zod/v4/core").$strict>>;
1367
1602
  at: import("zod").ZodOptional<import("zod").ZodString>;
1368
1603
  cron: import("zod").ZodOptional<import("zod").ZodString>;
1369
1604
  data: import("zod").ZodOptional<import("zod").ZodJSONSchema>;
@@ -1381,6 +1616,7 @@ export declare const scheduleRequestSchema: import("zod").ZodObject<{
1381
1616
  }, import("zod/v4/core").$strict>>;
1382
1617
  everySeconds: import("zod").ZodOptional<import("zod").ZodNumber>;
1383
1618
  endpoint: import("zod").ZodOptional<import("zod").ZodString>;
1619
+ url: import("zod").ZodOptional<import("zod").ZodString>;
1384
1620
  latencyClass: import("zod").ZodOptional<import("zod").ZodEnum<{
1385
1621
  realtime: "realtime";
1386
1622
  bulk: "bulk";
@@ -1,7 +1,9 @@
1
+ import { httpRequestSchema, publicHttpRequestSchema } from "./http-request.js";
1
2
  import { FIXED_INTERVAL_MIN_SECONDS, FIXED_INTERVAL_MAX_SECONDS, MAX_INLINE_PAYLOAD_BYTES, } from "./configuration-bounds.js";
2
3
  import { z } from "./zod.js";
3
4
  import { attemptIdSchema, deliveryIdSchema, endpointIdSchema, occurrenceIdSchema, scheduleIdSchema, } from "./identifiers.js";
4
5
  import { CALLBACK_ATTEMPT_DIAGNOSTICS } from "./delivery.js";
6
+ import { callbackUrlSchema, signingSecretNoticeSchema } from "./endpoints.js";
5
7
  import { pageRequestSchema, pageSchema, versionSchema, } from "./protocol.js";
6
8
  import { callbackTriggerSchema, } from "./signatures.js";
7
9
  import { durationSecondsSchema, timeZoneSchema, timestampSchema } from "./time.js";
@@ -818,6 +820,7 @@ export const scheduleNameSchema = z
818
820
  .min(1, "must not be blank")
819
821
  .max(SCHEDULE_NAME_MAX_LENGTH, `must be at most ${String(SCHEDULE_NAME_MAX_LENGTH)} characters`);
820
822
  export const scheduleSchema = z.object({
823
+ http: publicHttpRequestSchema.optional(),
821
824
  /**
822
825
  * When the schedule was filed away, and absent until it is.
823
826
  *
@@ -1194,6 +1197,15 @@ export const scheduleViewSchema = z.object({
1194
1197
  occurrence: occurrenceSchema,
1195
1198
  schedule: scheduleSchema,
1196
1199
  });
1200
+ /**
1201
+ * What a schedule create or replace answers: the schedule view, and — when the
1202
+ * request named its destination by `url` — where that endpoint's signing
1203
+ * secret is (W9-44). Present only then, because only then can the caller have
1204
+ * an endpoint whose secret it never held.
1205
+ */
1206
+ export const scheduleWrittenViewSchema = scheduleViewSchema.extend({
1207
+ endpointSigningSecret: signingSecretNoticeSchema.optional(),
1208
+ });
1197
1209
  /**
1198
1210
  * The four ways a caller may say when a schedule happens.
1199
1211
  *
@@ -1225,6 +1237,7 @@ export const RECURRENCE_REQUEST_FIELDS = [
1225
1237
  */
1226
1238
  export const scheduleRequestSchema = z
1227
1239
  .object({
1240
+ http: httpRequestSchema.optional(),
1228
1241
  /** The instant the first occurrence is planned for. */
1229
1242
  at: timestampSchema.optional(),
1230
1243
  /**
@@ -1313,6 +1326,15 @@ export const scheduleRequestSchema = z
1313
1326
  * valid only when the stored schedule already has an endpoint.
1314
1327
  */
1315
1328
  endpoint: endpointIdSchema.optional(),
1329
+ /**
1330
+ * A callback destination named by its address instead of by an endpoint
1331
+ * id (W9-44, FXO-2907). The service uses the project's existing endpoint
1332
+ * at exactly this address, or creates one silently and returns no signing
1333
+ * secret — the response's `endpointSigningSecret` says where a person
1334
+ * reveals it. Reusing needs only `schedules:write`; creating also needs
1335
+ * `endpoints:write`. Give this or `endpoint`, not both.
1336
+ */
1337
+ url: callbackUrlSchema().optional(),
1316
1338
  /**
1317
1339
  * How promptly this schedule's occurrences expect to be served.
1318
1340
  *
@@ -1400,6 +1422,15 @@ export const scheduleRequestSchema = z
1400
1422
  });
1401
1423
  }
1402
1424
  }
1425
+ if (request.url !== undefined && request.endpoint !== undefined) {
1426
+ for (const path of ["endpoint", "url"]) {
1427
+ context.addIssue({
1428
+ code: "custom",
1429
+ message: "give `endpoint` or `url`, not both; `url` finds or creates the endpoint at that address",
1430
+ path: [path],
1431
+ });
1432
+ }
1433
+ }
1403
1434
  if (request.timeZone !== undefined && request.cron === undefined) {
1404
1435
  context.addIssue({
1405
1436
  code: "custom",
package/dist/secrets.d.ts CHANGED
@@ -47,6 +47,7 @@ export declare const credentialMetadataSchema: import("zod").ZodObject<{
47
47
  revokedAt: import("zod").ZodOptional<import("zod").ZodString>;
48
48
  supersededBy: import("zod").ZodOptional<import("zod").ZodString>;
49
49
  scopes: import("zod").ZodArray<import("zod").ZodEnum<{
50
+ "members:manage": "members:manage";
50
51
  "credentials:administer": "credentials:administer";
51
52
  "billing:write": "billing:write";
52
53
  "credentials:read": "credentials:read";
@@ -95,6 +96,7 @@ export declare const credentialPageSchema: import("zod").ZodObject<{
95
96
  revokedAt: import("zod").ZodOptional<import("zod").ZodString>;
96
97
  supersededBy: import("zod").ZodOptional<import("zod").ZodString>;
97
98
  scopes: import("zod").ZodArray<import("zod").ZodEnum<{
99
+ "members:manage": "members:manage";
98
100
  "credentials:administer": "credentials:administer";
99
101
  "billing:write": "billing:write";
100
102
  "credentials:read": "credentials:read";
@@ -143,6 +145,7 @@ export declare const credentialCreatedSchema: import("zod").ZodObject<{
143
145
  revokedAt: import("zod").ZodOptional<import("zod").ZodString>;
144
146
  supersededBy: import("zod").ZodOptional<import("zod").ZodString>;
145
147
  scopes: import("zod").ZodArray<import("zod").ZodEnum<{
148
+ "members:manage": "members:manage";
146
149
  "credentials:administer": "credentials:administer";
147
150
  "billing:write": "billing:write";
148
151
  "credentials:read": "credentials:read";
@@ -181,6 +184,7 @@ export declare const credentialRequestSchema: import("zod").ZodObject<{
181
184
  }>;
182
185
  project: import("zod").ZodString;
183
186
  scopes: import("zod").ZodArray<import("zod").ZodEnum<{
187
+ "members:manage": "members:manage";
184
188
  "credentials:administer": "credentials:administer";
185
189
  "billing:write": "billing:write";
186
190
  "credentials:read": "credentials:read";
@@ -250,6 +254,7 @@ export declare const credentialRotatedSchema: import("zod").ZodObject<{
250
254
  revokedAt: import("zod").ZodOptional<import("zod").ZodString>;
251
255
  supersededBy: import("zod").ZodOptional<import("zod").ZodString>;
252
256
  scopes: import("zod").ZodArray<import("zod").ZodEnum<{
257
+ "members:manage": "members:manage";
253
258
  "credentials:administer": "credentials:administer";
254
259
  "billing:write": "billing:write";
255
260
  "credentials:read": "credentials:read";
@@ -286,6 +291,7 @@ export declare const credentialRotatedSchema: import("zod").ZodObject<{
286
291
  revokedAt: import("zod").ZodOptional<import("zod").ZodString>;
287
292
  supersededBy: import("zod").ZodOptional<import("zod").ZodString>;
288
293
  scopes: import("zod").ZodArray<import("zod").ZodEnum<{
294
+ "members:manage": "members:manage";
289
295
  "credentials:administer": "credentials:administer";
290
296
  "billing:write": "billing:write";
291
297
  "credentials:read": "credentials:read";
@@ -333,6 +339,7 @@ export declare const credentialRevokedSchema: import("zod").ZodObject<{
333
339
  revokedAt: import("zod").ZodOptional<import("zod").ZodString>;
334
340
  supersededBy: import("zod").ZodOptional<import("zod").ZodString>;
335
341
  scopes: import("zod").ZodArray<import("zod").ZodEnum<{
342
+ "members:manage": "members:manage";
336
343
  "credentials:administer": "credentials:administer";
337
344
  "billing:write": "billing:write";
338
345
  "credentials:read": "credentials:read";
package/dist/tenancy.d.ts CHANGED
@@ -177,7 +177,7 @@ export declare const projectDeletionCountsSchema: import("zod").ZodObject<{
177
177
  }, import("zod/v4/core").$strip>;
178
178
  export type ProjectDeletionCounts = z.infer<typeof projectDeletionCountsSchema>;
179
179
  /**
180
- * Every active or archived project in the member's organization.
180
+ * Every active or archived project the member can access. Administrators see all.
181
181
  *
182
182
  * **Unpaged, with a stated ceiling, because the store beneath it is.**
183
183
  * `listProjects` reads an organization's projects in one go; declaring a page
package/dist/tenancy.js CHANGED
@@ -149,7 +149,7 @@ export const projectSummarySchema = z.object({
149
149
  });
150
150
  export const projectDeletionCountsSchema = projectSummarySchema.shape.deletionCounts;
151
151
  /**
152
- * Every active or archived project in the member's organization.
152
+ * Every active or archived project the member can access. Administrators see all.
153
153
  *
154
154
  * **Unpaged, with a stated ceiling, because the store beneath it is.**
155
155
  * `listProjects` reads an organization's projects in one go; declaring a page
@@ -1,3 +1,3 @@
1
1
  /** The exact Zod constructors used by delivery-runtime contract modules. */
2
- export { ZodError, ZodIssueCode, array, boolean, discriminatedUnion, enum, int, json, literal, number, object, partialRecord, record, strictObject, string, toJSONSchema, tuple, union, unknown, url, } from "zod";
3
- export type { RefinementCtx, ZodType, ZodTypeAny, infer } from "zod";
2
+ export { ZodError, ZodIssueCode, array, boolean, discriminatedUnion, enum, int, json, literal, number, never, object, partialRecord, record, strictObject, string, toJSONSchema, tuple, union, unknown, url, } from "zod";
3
+ export type { RefinementCtx, ZodType, ZodTypeAny, infer, input } from "zod";
@@ -1,2 +1,2 @@
1
1
  /** The exact Zod constructors used by delivery-runtime contract modules. */
2
- export { ZodError, ZodIssueCode, array, boolean, discriminatedUnion, enum, int, json, literal, number, object, partialRecord, record, strictObject, string, toJSONSchema, tuple, union, unknown, url, } from "zod";
2
+ export { ZodError, ZodIssueCode, array, boolean, discriminatedUnion, enum, int, json, literal, number, never, object, partialRecord, record, strictObject, string, toJSONSchema, tuple, union, unknown, url, } from "zod";
@@ -0,0 +1,3 @@
1
+ {
2
+ "url": "https://hooks.example.com/greatwait"
3
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "createdAt": "2026-08-05T15:00:00.000Z",
3
+ "environmentKind": "test",
4
+ "id": "ep_01h8xyz9k2m4n6p8r0t2v4w6y8",
5
+ "name": "https://hooks.example.com/greatwait",
6
+ "project": "proj_01h8xyz9k2m4n6p8r0t2v4w6y8",
7
+ "signingKeys": {
8
+ "current": "csk_01h8xyz9k2m4n6p8r0t2v4w6y8"
9
+ },
10
+ "status": "active",
11
+ "updatedAt": "2026-08-05T15:00:00.000Z",
12
+ "url": "https://hooks.example.com/greatwait",
13
+ "version": 1,
14
+ "created": true,
15
+ "signingSecret": {
16
+ "guidance": "GreatWait signs every callback to this endpoint. The signing secret is never returned here; a signed-in member of the project reveals it on the endpoint's page in the GreatWait dashboard, and your receiver uses it to verify that a callback came from GreatWait.",
17
+ "returned": false,
18
+ "revealUrl": "https://app.greatwait.dev/o/org_2example0organization0id/p/proj_01h8xyz9k2m4n6p8r0t2v4w6y8/test/settings/endpoints/ep_01h8xyz9k2m4n6p8r0t2v4w6y8"
19
+ }
20
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "email": "teammate@example.com",
3
+ "role": "member",
4
+ "projects": ["proj_01h8xyz9k2m4n6p8r0t2v4w6y8"]
5
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "id": "inv_0123456789abcdef0123456789",
3
+ "email": "teammate@example.com",
4
+ "role": "member",
5
+ "projects": ["proj_01h8xyz9k2m4n6p8r0t2v4w6y8"],
6
+ "status": "pending"
7
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "data": [
3
+ {
4
+ "id": "inv_0123456789abcdef0123456789",
5
+ "email": "teammate@example.com",
6
+ "role": "member",
7
+ "projects": ["proj_01h8xyz9k2m4n6p8r0t2v4w6y8"],
8
+ "status": "pending"
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "completed": true,
3
+ "id": "inv_0123456789abcdef0123456789"
4
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "confirmed": true
3
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "completed": true,
3
+ "id": "inv_0123456789abcdef0123456789"
4
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "data": [
3
+ {
4
+ "id": "mem_0123456789abcdef0123456789",
5
+ "email": "teammate@example.com",
6
+ "name": "Teammate",
7
+ "role": "member",
8
+ "projects": ["proj_01h8xyz9k2m4n6p8r0t2v4w6y8"],
9
+ "allProjects": false,
10
+ "self": false
11
+ }
12
+ ]
13
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "confirmed": true
3
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "completed": true,
3
+ "id": "mem_0123456789abcdef0123456789"
4
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "role": "member"
3
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "completed": true,
3
+ "id": "mem_0123456789abcdef0123456789"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "completed": true,
3
+ "id": "mem_0123456789abcdef0123456789"
4
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "confirmed": true
3
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "completed": true,
3
+ "id": "mem_0123456789abcdef0123456789"
4
+ }