@greatwait/contracts 0.3.1 → 0.3.2
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/attempt-diagnostics.d.ts +1 -1
- package/dist/attempt-diagnostics.js +13 -1
- package/dist/attempt-search.d.ts +2 -0
- package/dist/billing.d.ts +46 -0
- package/dist/billing.js +29 -0
- package/dist/callback-safety.js +5 -1
- package/dist/configuration.d.ts +2 -2
- package/dist/configuration.js +6 -3
- package/dist/delivery.d.ts +12 -1
- package/dist/delivery.js +1 -0
- package/dist/effective-limits.d.ts +4 -4
- package/dist/endpoints.d.ts +29 -0
- package/dist/endpoints.js +32 -1
- package/dist/forecast.d.ts +2 -2
- package/dist/http-request.d.ts +12 -2
- package/dist/http-request.js +31 -1
- package/dist/index.d.ts +8 -7
- package/dist/index.js +8 -7
- package/dist/mcp.js +1 -0
- package/dist/operational-config.d.ts +174 -22
- package/dist/operational-config.js +207 -74
- package/dist/operations.d.ts +334 -52
- package/dist/operations.js +195 -34
- package/dist/project-notifications.d.ts +35 -9
- package/dist/project-notifications.js +43 -12
- package/dist/protocol.d.ts +28 -0
- package/dist/protocol.js +23 -0
- package/dist/scheduling-records.d.ts +106 -16
- package/dist/scheduling-records.js +36 -12
- package/dist/scheduling.d.ts +155 -43
- package/dist/scheduling.js +188 -50
- package/dist/service-mode.d.ts +88 -0
- package/dist/service-mode.js +130 -0
- package/dist/tenancy.d.ts +54 -30
- package/dist/tenancy.js +35 -17
- package/dist/timing.d.ts +39 -0
- package/dist/timing.js +51 -0
- package/dist/zod-values.d.ts +1 -1
- package/dist/zod-values.js +1 -1
- package/dist/zod.d.ts +1 -1
- package/dist/zod.js +1 -1
- package/generated/v1/examples/billing.noticesdismiss.request.json +3 -0
- package/generated/v1/examples/billing.noticesdismiss.response.json +6 -0
- package/generated/v1/examples/billing.reconcile.response.json +12 -0
- package/generated/v1/examples/billing.summary.response.json +12 -0
- package/generated/v1/examples/executions.list.response.json +1 -0
- package/generated/v1/examples/limits.read.response.json +1 -1
- package/generated/v1/examples/projectnotifications.rotateSigningKey.response.json +1 -0
- package/generated/v1/examples/projects.list.response.json +0 -6
- package/generated/v1/examples/projects.read.response.json +14 -0
- package/generated/v1/examples/schedules.list.response.json +1 -3
- package/generated/v1/examples/schedules.summary.response.json +174 -0
- package/generated/v1/examples/timing.summary.response.json +33 -1
- package/generated/v1/manifest.json +79 -2
- package/generated/v1/openapi.json +4084 -2023
- package/generated/v1/policy-matrix.json +22 -1
- package/generated/v1/schemas/attempts.list.response.json +10 -0
- package/generated/v1/schemas/attempts.read.response.json +10 -0
- package/generated/v1/schemas/attempts.search.response.json +4 -0
- package/generated/v1/schemas/billing.notices.query.json +4 -0
- package/generated/v1/schemas/billing.noticesdismiss.request.json +12 -0
- package/generated/v1/schemas/billing.noticesdismiss.response.json +22 -0
- package/generated/v1/schemas/billing.reconcile.response.json +43 -0
- package/generated/v1/schemas/billing.summary.response.json +43 -0
- package/generated/v1/schemas/endpoints.list.query.json +15 -0
- package/generated/v1/schemas/executions.list.response.json +4 -0
- package/generated/v1/schemas/occurrences.list.response.json +4 -0
- package/generated/v1/schemas/occurrences.read.response.json +4 -0
- package/generated/v1/schemas/occurrences.redeliver.response.json +10 -0
- package/generated/v1/schemas/projectnotifications.read.response.json +4 -0
- package/generated/v1/schemas/projectnotifications.rotateSigningKey.response.json +4 -0
- package/generated/v1/schemas/projectnotifications.update.request.json +41 -17
- package/generated/v1/schemas/projectnotifications.update.response.json +4 -0
- package/generated/v1/schemas/projects.list.response.json +0 -27
- package/generated/v1/schemas/projects.read.response-headers.json +11 -0
- package/generated/v1/schemas/projects.read.response.json +79 -0
- package/generated/v1/schemas/schedules.archive.response.json +8 -0
- package/generated/v1/schemas/schedules.cancel.response.json +8 -0
- package/generated/v1/schemas/schedules.create.request.json +1 -1
- package/generated/v1/schemas/schedules.create.response.json +8 -0
- package/generated/v1/schemas/schedules.list.query.json +6 -0
- package/generated/v1/schemas/schedules.list.response.json +4 -0
- package/generated/v1/schemas/schedules.pause.response.json +8 -0
- package/generated/v1/schemas/schedules.read.response.json +8 -0
- package/generated/v1/schemas/schedules.replace.request.json +1 -1
- package/generated/v1/schemas/schedules.replace.response.json +8 -0
- package/generated/v1/schemas/schedules.resume.response.json +8 -0
- package/generated/v1/schemas/schedules.summary.query.json +11 -0
- package/generated/v1/schemas/schedules.summary.response.json +144 -0
- package/generated/v1/schemas/timing.summary.response.json +69 -0
- package/generated/v1/snippets/billing.noticesdismiss.json +6 -0
- package/generated/v1/snippets/projectnotifications.rotateSigningKey.json +1 -1
- package/generated/v1/snippets/projects.read.json +6 -0
- package/generated/v1/snippets/schedules.summary.json +6 -0
- package/package.json +1 -1
package/dist/operations.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { projectAttemptPageSchema, projectAttemptSearchRequestSchema, } from "./attempt-search.js";
|
|
2
2
|
import { BULK_API_OPERATIONS } from "./bulk-operations.js";
|
|
3
3
|
import { effectiveCustomerLimitsSchema } from "./effective-limits.js";
|
|
4
|
+
import { CONFIGURATION_DEFAULTS } from "./configuration.js";
|
|
4
5
|
import { z } from "./zod.js";
|
|
5
6
|
import { MEMBER_OPERATIONS } from "./members.js";
|
|
6
7
|
import { PROJECT_NOTIFICATION_OPERATIONS } from "./project-notifications.js";
|
|
@@ -8,15 +9,15 @@ import { DATA_EXPORT_OPERATIONS } from "./data-export.js";
|
|
|
8
9
|
import { ORGANIZATION_LIFECYCLE_OPERATIONS } from "./organization-lifecycle.js";
|
|
9
10
|
import { API_UNUSED_RESPONSE_SCHEMA } from "./operation-definitions.js";
|
|
10
11
|
import { credentialContextSchema } from "./authority.js";
|
|
11
|
-
import { callbackEndpointCreatedSchema, callbackEndpointEnsuredSchema, callbackEndpointPageSchema, callbackEndpointRequestSchema, callbackEndpointRotatedSchema, callbackEndpointSchema, callbackEndpointSigningSecretsSchema, callbackSigningKeyRotationRequestSchema, } from "./endpoints.js";
|
|
12
|
+
import { callbackEndpointCreatedSchema, callbackEndpointEnsuredSchema, callbackEndpointListRequestSchema, callbackEndpointPageSchema, callbackEndpointRequestSchema, callbackEndpointRotatedSchema, callbackEndpointSchema, callbackEndpointSigningSecretsSchema, callbackSigningKeyRotationRequestSchema, } from "./endpoints.js";
|
|
12
13
|
import { FORECAST_WINDOW_VERSION, forecastRequestSchema, forecastSchema, forecastRequestHeadersSchema, forecastWindowsSchema, } from "./forecast.js";
|
|
13
14
|
import { usageRequestSchema, usageSchema } from "./usage.js";
|
|
14
15
|
import { deliveryTimingSummarySchema } from "./timing.js";
|
|
15
|
-
import { billingAutoTopUpApplyRequestSchema, billingAutoTopUpPreviewRequestSchema, billingAutoTopUpPreviewSchema, billingCeilingUpdateRequestSchema, billingFundingQuoteRequestSchema, billingFundingQuoteSchema, billingFundingViewSchema, billingNoticePageSchema, billingNotificationSettingsSchema, billingNotificationSettingsUpdateRequestSchema, billingLedgerPageSchema, billingLedgerRequestSchema, billingBudgetUpdateRequestHeadersSchema, billingBudgetUpdateRequestSchema, billingBudgetUpdateResponseSchema, billingPurchaseRequestSchema, billingRefundRequestCreateSchema, billingRefundResolutionRequestSchema, billingRefundRequestViewSchema, billingSummarySchema, billingPromotionsSchema, billingRedeemRequestSchema, billingRedeemResponseSchema, projectBillingStateSchema, projectBillingQuoteSchema, projectBillingQuoteRequestSchema, projectBillingChangeRequestSchema, billingPortalSchema, billingInvoiceListSchema, billingPaymentHistoryPageSchema, billingInvoiceHistoryPageSchema, billingPaymentMethodSchema, billingPaymentMethodSetupRequestSchema, billingPaymentMethodConfirmRequestSchema, billingPaymentMethodRemoveRequestSchema, } from "./billing.js";
|
|
16
|
+
import { billingAutoTopUpApplyRequestSchema, billingAutoTopUpPreviewRequestSchema, billingAutoTopUpPreviewSchema, billingCeilingUpdateRequestSchema, billingFundingQuoteRequestSchema, billingFundingQuoteSchema, billingFundingViewSchema, billingNoticeDismissRequestSchema, billingNoticeDismissResultSchema, billingNoticeListRequestSchema, billingNoticePageSchema, billingNotificationSettingsSchema, billingNotificationSettingsUpdateRequestSchema, billingLedgerPageSchema, billingLedgerRequestSchema, billingBudgetUpdateRequestHeadersSchema, billingBudgetUpdateRequestSchema, billingBudgetUpdateResponseSchema, billingPurchaseRequestSchema, billingRefundRequestCreateSchema, billingRefundResolutionRequestSchema, billingRefundRequestViewSchema, billingSummarySchema, billingPromotionsSchema, billingRedeemRequestSchema, billingRedeemResponseSchema, projectBillingStateSchema, projectBillingQuoteSchema, projectBillingQuoteRequestSchema, projectBillingChangeRequestSchema, billingPortalSchema, billingInvoiceListSchema, billingPaymentHistoryPageSchema, billingInvoiceHistoryPageSchema, billingPaymentMethodSchema, billingPaymentMethodSetupRequestSchema, billingPaymentMethodConfirmRequestSchema, billingPaymentMethodRemoveRequestSchema, } from "./billing.js";
|
|
16
17
|
import { conditionalRequestHeaderSchema, idempotencyReplayResponseHeaderSchema, idempotencyRequestHeaderSchema, historyPageRequestSchema, pageRequestSchema, scheduleListRequestSchema, replayedResponseHeaderSchema, requiredConditionalRequestHeaderSchema, requiredIdempotencyRequestHeaderSchema, versionResponseHeaderSchema, } from "./protocol.js";
|
|
17
18
|
import { oauthGrantListSchema, oauthGrantRevokedSchema } from "./oauth.js";
|
|
18
19
|
import { credentialCreatedSchema, credentialPageSchema, credentialRequestSchema, credentialRevokedSchema, credentialRotatedSchema, credentialRotationRequestSchema, } from "./secrets.js";
|
|
19
|
-
import { attemptPageSchema, attemptViewSchema, occurrencePageSchema, projectOccurrenceListRequestSchema, projectOccurrencePageSchema, occurrenceViewSchema, schedulePageSchema, scheduleRequestSchema, scheduleViewSchema, scheduleWrittenViewSchema, } from "./scheduling.js";
|
|
20
|
+
import { attemptPageSchema, attemptViewSchema, occurrencePageSchema, projectOccurrenceListRequestSchema, projectOccurrencePageSchema, occurrenceViewSchema, schedulePageSchema, scheduleRequestSchema, scheduleSummaryRequestSchema, scheduleSummarySchema, scheduleViewSchema, scheduleWrittenViewSchema, } from "./scheduling.js";
|
|
20
21
|
import { testSinkCreateRequestSchema, testSinkDeliveryBodySchema, testSinkDeliveryPageSchema, testSinkPageSchema, testSinkProgramSchema, testSinkSchema, } from "./test-sink.js";
|
|
21
22
|
import { projectArchiveRequestSchema, projectCreateRequestSchema, projectDeletedSchema, projectListSchema, projectSummarySchema, projectUpdateRequestSchema, } from "./tenancy.js";
|
|
22
23
|
import { mcpConnectionSchema } from "./mcp.js";
|
|
@@ -101,6 +102,10 @@ const BILLING_SUMMARY_EXAMPLE = {
|
|
|
101
102
|
boundary: "2026-09-01T00:00:00.000Z",
|
|
102
103
|
mode: "shadow",
|
|
103
104
|
},
|
|
105
|
+
attemptPrice: {
|
|
106
|
+
bulk: { currency: "USD", microdollars: "10", scale: 6 },
|
|
107
|
+
realtime: { currency: "USD", microdollars: "10", scale: 6 },
|
|
108
|
+
},
|
|
104
109
|
blockingReasons: [],
|
|
105
110
|
budgetPolicy: {
|
|
106
111
|
desired: { advisoryBudget: null, hardCap: null },
|
|
@@ -307,7 +312,7 @@ const BILLING_NOTICE_LIST_OPERATION = {
|
|
|
307
312
|
path: "/v1/billing/notices",
|
|
308
313
|
principals: ["api-credential", "oauth", "session"],
|
|
309
314
|
problems: ["invalid_request", "service_unavailable"],
|
|
310
|
-
query:
|
|
315
|
+
query: billingNoticeListRequestSchema,
|
|
311
316
|
response: globalThis.GREATWAIT_API_REQUEST_REGISTRY
|
|
312
317
|
? API_UNUSED_RESPONSE_SCHEMA
|
|
313
318
|
: billingNoticePageSchema,
|
|
@@ -318,6 +323,42 @@ const BILLING_NOTICE_LIST_OPERATION = {
|
|
|
318
323
|
: "List persistent billing notices",
|
|
319
324
|
surfaces: ["api", "mock"],
|
|
320
325
|
};
|
|
326
|
+
const BILLING_NOTICE_DISMISS_OPERATION = {
|
|
327
|
+
creates: false,
|
|
328
|
+
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
329
|
+
? ""
|
|
330
|
+
: "Dismisses this project's delivery-failure notices (`delivery-failed` and `schedule-auto-paused`) in the verified environment: every one still active that occurred at or before `through` is resolved for every member at once, and stays listed as resolved. Pass the `occurredAt` of the newest notice you saw, so a failure that arrives later stays open. Emails already owed are still sent. Billing notices are never dismissed. Repeating the request changes nothing and reports 0.",
|
|
331
|
+
example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
|
|
332
|
+
? {}
|
|
333
|
+
: { dismissed: 3, freshness: { kind: "authoritative" } },
|
|
334
|
+
id: "billing.noticesdismiss",
|
|
335
|
+
idempotent: true,
|
|
336
|
+
// Not destructive: the notices stay listed, as resolved, and nothing
|
|
337
|
+
// about a schedule, a run or an email changes.
|
|
338
|
+
mcp: { destructive: false, kind: "tool", openWorld: false },
|
|
339
|
+
method: "POST",
|
|
340
|
+
mutates: true,
|
|
341
|
+
path: "/v1/billing/notices/dismiss",
|
|
342
|
+
principals: ["api-credential", "oauth", "session"],
|
|
343
|
+
problems: ["invalid_request", "service_unavailable"],
|
|
344
|
+
request: billingNoticeDismissRequestSchema,
|
|
345
|
+
requestExample: globalThis
|
|
346
|
+
.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
|
|
347
|
+
? {}
|
|
348
|
+
: { through: "2026-09-10T12:00:00.000Z" },
|
|
349
|
+
response: globalThis.GREATWAIT_API_REQUEST_REGISTRY
|
|
350
|
+
? API_UNUSED_RESPONSE_SCHEMA
|
|
351
|
+
: billingNoticeDismissResultSchema,
|
|
352
|
+
// The read's scope, plus schedules:write: a delivery-failure notice is
|
|
353
|
+
// visible with schedules:read, and dismissing it changes what every
|
|
354
|
+
// member sees, so a credential needs the write. Every role holds both.
|
|
355
|
+
scopes: ["usage:read", "schedules:write"],
|
|
356
|
+
sessionAuthority: "headers",
|
|
357
|
+
summary: globalThis.GREATWAIT_API_REQUEST_REGISTRY
|
|
358
|
+
? ""
|
|
359
|
+
: "Dismiss delivery-failure notices",
|
|
360
|
+
surfaces: ["api", "mock"],
|
|
361
|
+
};
|
|
321
362
|
const BILLING_NOTIFICATION_SETTINGS_OPERATION = {
|
|
322
363
|
creates: false,
|
|
323
364
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
@@ -797,7 +838,7 @@ export const OPERATIONS = [
|
|
|
797
838
|
creates: false,
|
|
798
839
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
799
840
|
? ""
|
|
800
|
-
: "Lists the caller's callback endpoints for exactly its own project and environment
|
|
841
|
+
: "Lists the caller's callback endpoints for exactly its own project and environment, oldest first, one page at a time (default 25, at most 100): follow `nextCursor` until it is absent before counting endpoints or concluding one does not exist. Optional `text` (case-insensitive substring of the name, address or identifier), `status` and `rotation=unacknowledged` filters intersect before paging, so a match on any page is found on the first; a cursor continues only under the filters that issued it. Metadata only: no signing secret or sealed key material has a field in this shape.",
|
|
801
842
|
example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
|
|
802
843
|
? {}
|
|
803
844
|
: {
|
|
@@ -824,7 +865,7 @@ export const OPERATIONS = [
|
|
|
824
865
|
path: "/v1/endpoints",
|
|
825
866
|
principals: ["api-credential", "oauth", "session"],
|
|
826
867
|
problems: ["invalid_request"],
|
|
827
|
-
query:
|
|
868
|
+
query: callbackEndpointListRequestSchema,
|
|
828
869
|
response: globalThis.GREATWAIT_API_REQUEST_REGISTRY
|
|
829
870
|
? API_UNUSED_RESPONSE_SCHEMA
|
|
830
871
|
: callbackEndpointPageSchema,
|
|
@@ -1742,19 +1783,13 @@ export const OPERATIONS = [
|
|
|
1742
1783
|
creates: false,
|
|
1743
1784
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
1744
1785
|
? ""
|
|
1745
|
-
: "Lists the active and archived projects in the signed-in member's organization, with the environment kinds, lifecycle state
|
|
1786
|
+
: "Lists the active and archived projects in the signed-in member's organization, with the environment kinds, lifecycle state and version each one has. It carries no deletion counts: counting reads a project's whole history, so the exact counts a permanent deletion would destroy come from `projects.read`, one project at a time. Active and archived rows both occupy a plan slot; deleted projects are absent. Archived rows are management targets rather than projects work may run inside, so a picker must not offer them as switch targets. The result is a display aid rather than an authorization control — naming a project on a later request re-resolves it against the member's own organization, and a project that is not theirs answers exactly as one that does not exist.",
|
|
1746
1787
|
example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
|
|
1747
1788
|
? {}
|
|
1748
1789
|
: {
|
|
1749
1790
|
data: [
|
|
1750
1791
|
{
|
|
1751
1792
|
createdAt: "2026-08-14T11:00:00.000Z",
|
|
1752
|
-
deletionCounts: {
|
|
1753
|
-
endpoints: 2,
|
|
1754
|
-
keys: 4,
|
|
1755
|
-
runs: 37,
|
|
1756
|
-
schedules: 5,
|
|
1757
|
-
},
|
|
1758
1793
|
environmentKinds: ["test", "live"],
|
|
1759
1794
|
id: "proj_01h8xyz9k2m4n6p8r0t2v4w6y8",
|
|
1760
1795
|
name: "Billing reminders",
|
|
@@ -1787,6 +1822,53 @@ export const OPERATIONS = [
|
|
|
1787
1822
|
: "List the member's projects",
|
|
1788
1823
|
surfaces: ["api", "mock"],
|
|
1789
1824
|
},
|
|
1825
|
+
{
|
|
1826
|
+
creates: false,
|
|
1827
|
+
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
1828
|
+
? ""
|
|
1829
|
+
: "Reads one active or archived project in the signed-in member's organization, with the exact counts of the schedules, endpoints, keys and runs a permanent deletion would destroy now. Counting reads the project's whole history, which is why the list does not carry these counts and why this is the read a deletion confirmation makes. A project the member cannot see answers exactly as one that does not exist.",
|
|
1830
|
+
example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
|
|
1831
|
+
? {}
|
|
1832
|
+
: {
|
|
1833
|
+
createdAt: "2026-08-14T11:00:00.000Z",
|
|
1834
|
+
deletionCounts: { endpoints: 2, keys: 4, runs: 37, schedules: 5 },
|
|
1835
|
+
environmentKinds: ["test", "live"],
|
|
1836
|
+
id: "proj_01h8xyz9k2m4n6p8r0t2v4w6y8",
|
|
1837
|
+
name: "Billing reminders",
|
|
1838
|
+
status: "archived",
|
|
1839
|
+
version: 2,
|
|
1840
|
+
},
|
|
1841
|
+
id: "projects.read",
|
|
1842
|
+
idempotent: true,
|
|
1843
|
+
// Withheld from MCP, and accepted from a signed-in member only. The exact
|
|
1844
|
+
// counts are the deletion preview Project General shows before somebody
|
|
1845
|
+
// deletes a project; counting reads every schedule and run the project
|
|
1846
|
+
// has, so publishing it as an automation read would invite a polling
|
|
1847
|
+
// client to pay that on every call. Rename, archive and delete each answer
|
|
1848
|
+
// with the project they changed, counts included, so automation that acts
|
|
1849
|
+
// on a project already learns its version and counts from the act.
|
|
1850
|
+
mcp: {
|
|
1851
|
+
kind: "unavailable",
|
|
1852
|
+
reason: "The counted read is the deletion preview a signed-in member sees before deleting a project. Counting reads the project's whole history, so it is not offered as an agent tool; rename, archive and delete each answer with the project they changed.",
|
|
1853
|
+
},
|
|
1854
|
+
method: "GET",
|
|
1855
|
+
mutates: false,
|
|
1856
|
+
path: "/v1/projects/{projectId}",
|
|
1857
|
+
principals: ["session"],
|
|
1858
|
+
problems: ["not_found"],
|
|
1859
|
+
response: globalThis.GREATWAIT_API_REQUEST_REGISTRY
|
|
1860
|
+
? API_UNUSED_RESPONSE_SCHEMA
|
|
1861
|
+
: projectSummarySchema,
|
|
1862
|
+
...(globalThis.GREATWAIT_API_REQUEST_REGISTRY
|
|
1863
|
+
? {}
|
|
1864
|
+
: { responseHeaders: versionResponseHeaderSchema }),
|
|
1865
|
+
scopes: ["projects:read"],
|
|
1866
|
+
sessionAuthority: "headers",
|
|
1867
|
+
summary: globalThis.GREATWAIT_API_REQUEST_REGISTRY
|
|
1868
|
+
? ""
|
|
1869
|
+
: "Read a project with its deletion counts",
|
|
1870
|
+
surfaces: ["api", "mock"],
|
|
1871
|
+
},
|
|
1790
1872
|
{
|
|
1791
1873
|
creates: true,
|
|
1792
1874
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
@@ -2324,7 +2406,7 @@ export const OPERATIONS = [
|
|
|
2324
2406
|
creates: false,
|
|
2325
2407
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
2326
2408
|
? ""
|
|
2327
|
-
: "Lists the caller's own schedules
|
|
2409
|
+
: "Lists the caller's own schedules one page at a time (default 25, at most 100); follow `nextCursor` until it is absent before counting or ranking schedules, or use schedules.summary for whole-project counts. `order=created` (the default) walks creation order and includes every unarchived schedule; `order=due` walks next-due order and includes only schedules with an occurrence on the books, so cancelled, completed and paused schedules with nothing upcoming are not in it. Giving `dueBefore` or `dueAfter` forces due order. `direction=desc` reverses either order: newest-created first, or latest-due first. Due-order paging is not stable while schedules fire: a schedule's next-due instant moves as it runs, so across pages it can appear twice or be skipped; read again from the first page, or de-duplicate by id, when exactness matters. Archived schedules are left out. Give `endpoint` to keep the page to the schedules that deliver to that endpoint, or `text`, `status`, `recurrence`, `tag` or `external_identifier` to filter; filters intersect before paging, and a cursor continues only under the order, direction and filters that issued it. Creation order examines a bounded number of schedules per page, so a page filtered by `status`, or one crossing many archived schedules, can come back short, or empty, and still carry `nextCursor`: keep following it. Every page is authoritative.",
|
|
2328
2410
|
example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
|
|
2329
2411
|
? {}
|
|
2330
2412
|
: {
|
|
@@ -2342,16 +2424,9 @@ export const OPERATIONS = [
|
|
|
2342
2424
|
version: 1,
|
|
2343
2425
|
},
|
|
2344
2426
|
],
|
|
2345
|
-
// `
|
|
2346
|
-
//
|
|
2347
|
-
|
|
2348
|
-
// ago that was — so a page states how far behind it may be rather than
|
|
2349
|
-
// implying it is current.
|
|
2350
|
-
freshness: {
|
|
2351
|
-
asOf: "2026-07-28T15:00:00.000Z",
|
|
2352
|
-
kind: "projected",
|
|
2353
|
-
lagSeconds: 0,
|
|
2354
|
-
},
|
|
2427
|
+
// `authoritative` since W9-80: the page is read from the committed
|
|
2428
|
+
// scheduling tables the timer moves, not from a lagging projection.
|
|
2429
|
+
freshness: { kind: "authoritative" },
|
|
2355
2430
|
nextCursor: "eyJhIjoxNzg1MjUwODAwMDAwLCJpIjoic2NoXzAxaDh4eXo5azJtNG42cDhyMHQydjR3Nnk4IiwiayI6Ijk1MTM1NDZmIn0",
|
|
2356
2431
|
},
|
|
2357
2432
|
id: "schedules.list",
|
|
@@ -2373,6 +2448,58 @@ export const OPERATIONS = [
|
|
|
2373
2448
|
: "List schedules",
|
|
2374
2449
|
surfaces: ["api", "mock"],
|
|
2375
2450
|
},
|
|
2451
|
+
{
|
|
2452
|
+
creates: false,
|
|
2453
|
+
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
2454
|
+
? ""
|
|
2455
|
+
: "Summarizes every retained, unarchived schedule in the caller's project and environment: exact counts by status (active, paused, completed, cancelled), how many paused schedules paused themselves after repeated failures with up to five of them, and per-day created and finished counts for the last 30 days (today included, zero days included) in `timeZone` (default UTC). Use this rather than counting schedules_list pages. The answer is computed on read and reused for up to five minutes per project, environment and time zone: `freshness` is projected, with `asOf` the instant the counts were taken and `lagSeconds` their age. Counts cover retained schedules only; retention removes cancelled schedules and one-offs that ran once their history horizon passes.",
|
|
2456
|
+
example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
|
|
2457
|
+
? {}
|
|
2458
|
+
: {
|
|
2459
|
+
counts: {
|
|
2460
|
+
active: 4863,
|
|
2461
|
+
cancelled: 212,
|
|
2462
|
+
completed: 148738,
|
|
2463
|
+
paused: 3,
|
|
2464
|
+
},
|
|
2465
|
+
days: Array.from({ length: 30 }, (_, index) => ({
|
|
2466
|
+
created: index === 29 ? 5 : 0,
|
|
2467
|
+
date: new Date(Date.UTC(2026, 9, 24 - 29 + index))
|
|
2468
|
+
.toISOString()
|
|
2469
|
+
.slice(0, 10),
|
|
2470
|
+
finished: index === 29 ? 2 : 0,
|
|
2471
|
+
})),
|
|
2472
|
+
freshness: {
|
|
2473
|
+
asOf: "2026-10-24T14:58:00.000Z",
|
|
2474
|
+
kind: "projected",
|
|
2475
|
+
lagSeconds: 120,
|
|
2476
|
+
},
|
|
2477
|
+
pausedAfterFailures: { count: 0, schedules: [] },
|
|
2478
|
+
window: {
|
|
2479
|
+
from: "2026-09-25",
|
|
2480
|
+
timeZone: "America/Chicago",
|
|
2481
|
+
to: "2026-10-24",
|
|
2482
|
+
},
|
|
2483
|
+
},
|
|
2484
|
+
id: "schedules.summary",
|
|
2485
|
+
idempotent: true,
|
|
2486
|
+
mcp: { destructive: false, kind: "tool", openWorld: false },
|
|
2487
|
+
method: "GET",
|
|
2488
|
+
mutates: false,
|
|
2489
|
+
path: "/v1/schedule-summary",
|
|
2490
|
+
principals: ["api-credential", "oauth", "session"],
|
|
2491
|
+
problems: ["invalid_request"],
|
|
2492
|
+
query: scheduleSummaryRequestSchema,
|
|
2493
|
+
response: globalThis.GREATWAIT_API_REQUEST_REGISTRY
|
|
2494
|
+
? API_UNUSED_RESPONSE_SCHEMA
|
|
2495
|
+
: scheduleSummarySchema,
|
|
2496
|
+
scopes: ["schedules:read"],
|
|
2497
|
+
sessionAuthority: "headers",
|
|
2498
|
+
summary: globalThis.GREATWAIT_API_REQUEST_REGISTRY
|
|
2499
|
+
? ""
|
|
2500
|
+
: "Summarize schedules",
|
|
2501
|
+
surfaces: ["api", "mock"],
|
|
2502
|
+
},
|
|
2376
2503
|
{
|
|
2377
2504
|
creates: false,
|
|
2378
2505
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
@@ -2523,13 +2650,14 @@ export const OPERATIONS = [
|
|
|
2523
2650
|
surfaces: ["api", "mock"],
|
|
2524
2651
|
},
|
|
2525
2652
|
BILLING_NOTICE_LIST_OPERATION,
|
|
2653
|
+
BILLING_NOTICE_DISMISS_OPERATION,
|
|
2526
2654
|
BILLING_NOTIFICATION_SETTINGS_OPERATION,
|
|
2527
2655
|
BILLING_NOTIFICATION_SETTINGS_UPDATE_OPERATION,
|
|
2528
2656
|
withBillingFundingContract({
|
|
2529
2657
|
creates: false,
|
|
2530
2658
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
2531
2659
|
? ""
|
|
2532
|
-
: "Reads the verified principal's authoritative execution-funding position, including available and reserved credit, amount owed, recurring project fees, the current UTC month's automatic-charge ceiling and its settled, pending and remaining gross authority, and bounded payment history. Manual purchases and project subscriptions are separately authorized and never consume the automatic ceiling. Pending gross charges include applicable tax; refunds never restore monthly automatic purchasing authority. Receipt and payment links are limited to supported provider-hosted HTTPS URLs.",
|
|
2660
|
+
: "Reads the verified principal's authoritative execution-funding position, including available and reserved credit, amount owed, recurring project fees, the current UTC month's automatic-charge ceiling and its settled, pending and remaining gross authority, and bounded recent payment history in `paymentOperations` (billing.paymenthistory pages through the full history with a cursor). Manual purchases and project subscriptions are separately authorized and never consume the automatic ceiling. Pending gross charges include applicable tax; refunds never restore monthly automatic purchasing authority. Receipt and payment links are limited to supported provider-hosted HTTPS URLs.",
|
|
2533
2661
|
id: "billing.funding",
|
|
2534
2662
|
idempotent: true,
|
|
2535
2663
|
mcp: { destructive: false, kind: "tool", openWorld: false },
|
|
@@ -2995,7 +3123,7 @@ export const OPERATIONS = [
|
|
|
2995
3123
|
creates: false,
|
|
2996
3124
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
2997
3125
|
? ""
|
|
2998
|
-
: "Lists the verified organization's project subscription charges: the payment provider's invoices for its project subscription, read by authenticated provider call, most recent first and at most 24. Execution-credit purchases are not listed here; billing.
|
|
3126
|
+
: "Lists the verified organization's project subscription charges: the payment provider's invoices for its project subscription, read by authenticated provider call, most recent first and at most 24; billing.invoicehistory pages through the full history with a cursor. Execution-credit purchases are not listed here; billing.paymenthistory pages through them. Draft and zero-amount invoices are omitted. Each amount is the invoice total including tax, and the receipt link, when present, is the provider-hosted invoice page. An organization that has never been billed has an empty list; reading it creates nothing and changes nothing.",
|
|
2999
3127
|
example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
|
|
3000
3128
|
? {}
|
|
3001
3129
|
: {
|
|
@@ -3319,7 +3447,7 @@ export const OPERATIONS = [
|
|
|
3319
3447
|
? {}
|
|
3320
3448
|
: {
|
|
3321
3449
|
limits: {
|
|
3322
|
-
inlinePayloadBytes:
|
|
3450
|
+
inlinePayloadBytes: CONFIGURATION_DEFAULTS.inlinePayloadBytes,
|
|
3323
3451
|
forecastHorizonSeconds: 90000,
|
|
3324
3452
|
usageWindowDays: 366,
|
|
3325
3453
|
},
|
|
@@ -3394,10 +3522,42 @@ export const OPERATIONS = [
|
|
|
3394
3522
|
creates: false,
|
|
3395
3523
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
3396
3524
|
? ""
|
|
3397
|
-
: "Reads the verified principal's project timing cohort over the authoritative rolling 24-hour due-time window.
|
|
3525
|
+
: "Reads the verified principal's project timing cohort over the authoritative rolling 24-hour due-time window. Policy timing-v2-service-bands judges each run from its original plannedFor against its occurrence service band's p95 first-outbound target: realtime 1,000ms, short_bulk 10,000ms, bulk 60,000ms. bandTargets contains the exact per-band counts and 95% verdicts; targets retains the 5,000ms (95%) and 15,000ms (99%) counters for legacy rows with no band only. All counters include eligible work that has not fired; customer blocks, platform blocks, skipped work and missing evidence stay visible beside the verdict. Values equal to a target meet it, and a threshold with no matured population is unknown. Delivered-sample p95 and p99 lateness are separate observations, including negative early-delivery defects. These are internal operating objectives, not a contractual SLA or service-credit promise.",
|
|
3398
3526
|
example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
|
|
3399
3527
|
? {}
|
|
3400
3528
|
: {
|
|
3529
|
+
bandTargets: [
|
|
3530
|
+
{
|
|
3531
|
+
serviceBand: "realtime",
|
|
3532
|
+
targetMs: 1_000,
|
|
3533
|
+
breachCount: 0,
|
|
3534
|
+
customerBlockedCount: 0,
|
|
3535
|
+
eligibleOutstandingBreachCount: 0,
|
|
3536
|
+
maturedCount: 0,
|
|
3537
|
+
verdict: "unknown",
|
|
3538
|
+
withinTargetCount: 0,
|
|
3539
|
+
},
|
|
3540
|
+
{
|
|
3541
|
+
serviceBand: "short_bulk",
|
|
3542
|
+
targetMs: 10_000,
|
|
3543
|
+
breachCount: 0,
|
|
3544
|
+
customerBlockedCount: 0,
|
|
3545
|
+
eligibleOutstandingBreachCount: 0,
|
|
3546
|
+
maturedCount: 0,
|
|
3547
|
+
verdict: "unknown",
|
|
3548
|
+
withinTargetCount: 0,
|
|
3549
|
+
},
|
|
3550
|
+
{
|
|
3551
|
+
serviceBand: "bulk",
|
|
3552
|
+
targetMs: 60_000,
|
|
3553
|
+
breachCount: 0,
|
|
3554
|
+
customerBlockedCount: 0,
|
|
3555
|
+
eligibleOutstandingBreachCount: 0,
|
|
3556
|
+
maturedCount: 0,
|
|
3557
|
+
verdict: "unknown",
|
|
3558
|
+
withinTargetCount: 0,
|
|
3559
|
+
},
|
|
3560
|
+
],
|
|
3401
3561
|
customerBlockedCount: 2,
|
|
3402
3562
|
deliveredSampleCount: 98,
|
|
3403
3563
|
freshness: { kind: "authoritative" },
|
|
@@ -3405,7 +3565,7 @@ export const OPERATIONS = [
|
|
|
3405
3565
|
p95LatenessMs: 4_200,
|
|
3406
3566
|
p99LatenessMs: 12_000,
|
|
3407
3567
|
platformBlockedCount: 1,
|
|
3408
|
-
policyVersion: "timing-
|
|
3568
|
+
policyVersion: "timing-v2-service-bands",
|
|
3409
3569
|
skippedCount: 3,
|
|
3410
3570
|
targets: [
|
|
3411
3571
|
{
|
|
@@ -3545,7 +3705,7 @@ export const OPERATIONS = [
|
|
|
3545
3705
|
creates: false,
|
|
3546
3706
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
3547
3707
|
? ""
|
|
3548
|
-
: "Lists
|
|
3708
|
+
: "Lists retained occurrences in the verified principal's project and environment one page at a time, newest first by planned instant with the occurrence identifier breaking millisecond ties; follow `nextCursor` until it is absent before counting or ranking. The `outcome` filter is applied after a bounded read, so a page can come back short, or empty, and still carry `nextCursor`: keep following it. Optional endpoint, schedule, half-open date-range and outcome filters may be combined; the endpoint is resolved through the schedules that belong to the same authority. The opaque cursor belongs to this operation and the exact normalized filters that issued it, so it cannot be replayed under another view. Every page publishes the authoritative earliest retained instant for the caller's effective plan. Each item carries its schedule's name as `scheduleName`, so a page of runs needs no schedule read per row. Each item is metadata only: callback payloads, destinations, response bodies and signing material have no field in the response.",
|
|
3549
3709
|
example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
|
|
3550
3710
|
? {}
|
|
3551
3711
|
: {
|
|
@@ -3556,6 +3716,7 @@ export const OPERATIONS = [
|
|
|
3556
3716
|
id: "occ_01h8xyz9k2m4n6p8r0t2v4w6y8",
|
|
3557
3717
|
plannedFor: "2026-07-28T15:00:00.000Z",
|
|
3558
3718
|
schedule: "sch_01h8xyz9k2m4n6p8r0t2v4w6y8",
|
|
3719
|
+
scheduleName: "Nightly report",
|
|
3559
3720
|
sequence: 1,
|
|
3560
3721
|
settledAt: "2026-07-28T15:00:01.000Z",
|
|
3561
3722
|
state: "succeeded",
|
|
@@ -3587,7 +3748,7 @@ export const OPERATIONS = [
|
|
|
3587
3748
|
creates: false,
|
|
3588
3749
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
3589
3750
|
? ""
|
|
3590
|
-
: "Reads one retained occurrence from the PostgreSQL authority that owns its schedule. Trusted first-outbound timing is optional for records that predate substantiation; when present, firstAttemptLatenessMs is signed and a negative value exposes an early-delivery defect rather than being clamped to zero. Timing eligibility states whether a customer restriction excluded the occurrence from the internal target cohort. An identifier outside the verified principal's organization, project or environment is indistinguishable from an absent occurrence.",
|
|
3751
|
+
: "Reads one retained occurrence from the PostgreSQL authority that owns its schedule. Trusted first-outbound timing is optional for records that predate substantiation; when present, firstAttemptLatenessMs is signed and a negative value exposes an early-delivery defect rather than being clamped to zero. Timing eligibility states whether a customer restriction excluded the occurrence from the internal target cohort. An identifier outside the verified principal's organization, project or environment is indistinguishable from an absent occurrence. timingPolicyVersion is timing-v2-service-bands when first-outbound evidence is recorded for a banded occurrence; legacy null-band occurrences retain their recorded policy (including payg-v1) and the 5,000ms/15,000ms thresholds.",
|
|
3591
3752
|
example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
|
|
3592
3753
|
? {}
|
|
3593
3754
|
: {
|
|
@@ -3629,7 +3790,7 @@ export const OPERATIONS = [
|
|
|
3629
3790
|
creates: false,
|
|
3630
3791
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
3631
3792
|
? ""
|
|
3632
|
-
: "Search
|
|
3793
|
+
: "Search retained delivery attempts one page at a time by actual startedAt in the required UTC interval [startedFrom, startedBefore), newest first with attempt ID breaking ties; follow `nextCursor` until it is absent before counting. The `outcome` and `diagnostic` filters are applied after a bounded read, so a page can come back short, or empty, and still carry `nextCursor`: keep following it. Combine HTTP responseStatus, statusClass, attempt outcome or diagnostic, endpoint, schedule and exact host identifier/tag filters. The matched attempt outcome remains searchable after recovery; occurrence.state is its current outcome. Follow schedule and occurrence IDs to retained details and attempts.list for the complete retry chain. Only safe metadata is returned. Retention horizons describe normal plan history and attempt-detail limits; absence after expiry is not evidence that a delivery never happened. Unavailable queries fail explicitly. Cursors are bound to the verified authority and every selected filter.",
|
|
3633
3794
|
example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
|
|
3634
3795
|
? {}
|
|
3635
3796
|
: {
|
|
@@ -3693,7 +3854,7 @@ export const OPERATIONS = [
|
|
|
3693
3854
|
creates: false,
|
|
3694
3855
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
3695
3856
|
? ""
|
|
3696
|
-
: "Lists the immutable attempts retained under one occurrence, ordered by start instant and attempt identifier so equal timestamps have a stable position. The PostgreSQL authority answers every page. Optional first-outbound fields carry trusted occurrence timing and its pinned policy; absence means unknown, never zero. Results expose only bounded outcome, response-status, duration, timing, diagnostic, remediation and redelivery-cause metadata; callback payloads, response bodies, destinations, signing material, secrets and transport traces are structurally absent.",
|
|
3857
|
+
: "Lists the immutable attempts retained under one occurrence, ordered by start instant and attempt identifier so equal timestamps have a stable position. The PostgreSQL authority answers every page. Optional first-outbound fields carry trusted occurrence timing and its pinned policy; absence means unknown, never zero. Results expose only bounded outcome, response-status, duration, timing, diagnostic, remediation and redelivery-cause metadata; callback payloads, response bodies, destinations, signing material, secrets and transport traces are structurally absent. timingPolicyVersion is timing-v2-service-bands when first-outbound evidence is recorded for a banded occurrence; legacy null-band occurrences retain their recorded policy (including payg-v1) and the 5,000ms/15,000ms thresholds.",
|
|
3697
3858
|
example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
|
|
3698
3859
|
? {}
|
|
3699
3860
|
: {
|
|
@@ -3745,7 +3906,7 @@ export const OPERATIONS = [
|
|
|
3745
3906
|
creates: false,
|
|
3746
3907
|
description: globalThis.GREATWAIT_RUNTIME_CONTRACTS_ONLY
|
|
3747
3908
|
? ""
|
|
3748
|
-
: "Reads one immutable delivery attempt from its occurrence's PostgreSQL authority. Ambiguous means the receiver may have acted and is never rewritten into certainty without durable result evidence. Optional first-outbound fields come only from trusted transport evidence and absence means unknown, never zero. The bounded response omits callback payloads, response bodies, destinations, signing material, secrets and raw transport failures by construction.",
|
|
3909
|
+
: "Reads one immutable delivery attempt from its occurrence's PostgreSQL authority. Ambiguous means the receiver may have acted and is never rewritten into certainty without durable result evidence. Optional first-outbound fields come only from trusted transport evidence and absence means unknown, never zero. The bounded response omits callback payloads, response bodies, destinations, signing material, secrets and raw transport failures by construction. timingPolicyVersion is timing-v2-service-bands when first-outbound evidence is recorded for a banded occurrence; legacy null-band occurrences retain their recorded policy (including payg-v1) and the 5,000ms/15,000ms thresholds.",
|
|
3749
3910
|
example: globalThis.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES
|
|
3750
3911
|
? {}
|
|
3751
3912
|
: {
|
|
@@ -15,21 +15,35 @@ export declare const notificationEmailSettingsSchema: import("zod").ZodObject<{
|
|
|
15
15
|
memberIds: import("zod").ZodArray<import("zod").ZodString>;
|
|
16
16
|
}, import("zod/v4/core").$strict>], "kind">;
|
|
17
17
|
scheduleKinds: import("zod").ZodEnum<{
|
|
18
|
+
recurring: "recurring";
|
|
18
19
|
both: "both";
|
|
19
20
|
"one-shot": "one-shot";
|
|
20
|
-
recurring: "recurring";
|
|
21
21
|
}>;
|
|
22
22
|
}, import("zod/v4/core").$strict>;
|
|
23
23
|
export declare const statusWebhookEventSchema: import("zod").ZodEnum<{
|
|
24
24
|
failed: "failed";
|
|
25
25
|
}>;
|
|
26
26
|
export type StatusWebhookEvent = z.infer<typeof statusWebhookEventSchema>;
|
|
27
|
+
/**
|
|
28
|
+
* The earlier configuration: a bare URL. Still accepted (W9-84): the endpoint
|
|
29
|
+
* at that URL is found or created, as endpoints.ensure does, and linked.
|
|
30
|
+
*/
|
|
27
31
|
export declare const statusWebhookConfigurationSchema: import("zod").ZodObject<{
|
|
28
32
|
url: import("zod").ZodString;
|
|
29
33
|
events: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
30
34
|
failed: "failed";
|
|
31
35
|
}>>;
|
|
32
36
|
}, import("zod/v4/core").$strict>;
|
|
37
|
+
/**
|
|
38
|
+
* The status webhook's destination (W9-84): a callback endpoint in this
|
|
39
|
+
* project and environment, whose URL, headers and signing keys apply.
|
|
40
|
+
*/
|
|
41
|
+
export declare const statusWebhookEndpointConfigurationSchema: import("zod").ZodObject<{
|
|
42
|
+
endpoint: import("zod").ZodString;
|
|
43
|
+
events: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
44
|
+
failed: "failed";
|
|
45
|
+
}>>;
|
|
46
|
+
}, import("zod/v4/core").$strict>;
|
|
33
47
|
export declare const projectNotificationSettingsSchema: import("zod").ZodObject<{
|
|
34
48
|
project: import("zod").ZodString;
|
|
35
49
|
environmentKind: import("zod").ZodEnum<{
|
|
@@ -46,9 +60,9 @@ export declare const projectNotificationSettingsSchema: import("zod").ZodObject<
|
|
|
46
60
|
memberIds: import("zod").ZodArray<import("zod").ZodString>;
|
|
47
61
|
}, import("zod/v4/core").$strict>], "kind">;
|
|
48
62
|
scheduleKinds: import("zod").ZodEnum<{
|
|
63
|
+
recurring: "recurring";
|
|
49
64
|
both: "both";
|
|
50
65
|
"one-shot": "one-shot";
|
|
51
|
-
recurring: "recurring";
|
|
52
66
|
}>;
|
|
53
67
|
}, import("zod/v4/core").$strict>;
|
|
54
68
|
statusWebhook: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
@@ -56,6 +70,7 @@ export declare const projectNotificationSettingsSchema: import("zod").ZodObject<
|
|
|
56
70
|
events: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
57
71
|
failed: "failed";
|
|
58
72
|
}>>;
|
|
73
|
+
endpoint: import("zod").ZodOptional<import("zod").ZodString>;
|
|
59
74
|
signingKey: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
60
75
|
id: import("zod").ZodString;
|
|
61
76
|
}, import("zod/v4/core").$strict>>;
|
|
@@ -74,17 +89,22 @@ export declare const projectNotificationSettingsUpdateRequestSchema: import("zod
|
|
|
74
89
|
memberIds: import("zod").ZodArray<import("zod").ZodString>;
|
|
75
90
|
}, import("zod/v4/core").$strict>], "kind">;
|
|
76
91
|
scheduleKinds: import("zod").ZodEnum<{
|
|
92
|
+
recurring: "recurring";
|
|
77
93
|
both: "both";
|
|
78
94
|
"one-shot": "one-shot";
|
|
79
|
-
recurring: "recurring";
|
|
80
95
|
}>;
|
|
81
96
|
}, import("zod/v4/core").$strict>>;
|
|
82
|
-
statusWebhook: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
|
|
97
|
+
statusWebhook: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
|
|
98
|
+
endpoint: import("zod").ZodString;
|
|
99
|
+
events: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
100
|
+
failed: "failed";
|
|
101
|
+
}>>;
|
|
102
|
+
}, import("zod/v4/core").$strict>, import("zod").ZodObject<{
|
|
83
103
|
url: import("zod").ZodString;
|
|
84
104
|
events: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
85
105
|
failed: "failed";
|
|
86
106
|
}>>;
|
|
87
|
-
}, import("zod/v4/core").$strict>>>;
|
|
107
|
+
}, import("zod/v4/core").$strict>]>>>;
|
|
88
108
|
}, import("zod/v4/core").$strict>;
|
|
89
109
|
export type ProjectNotificationSettingsUpdateRequest = z.infer<typeof projectNotificationSettingsUpdateRequestSchema>;
|
|
90
110
|
export declare const statusSigningKeyRequestSchema: import("zod").ZodObject<{
|
|
@@ -107,9 +127,9 @@ export declare const statusSigningKeyCreatedSchema: import("zod").ZodObject<{
|
|
|
107
127
|
memberIds: import("zod").ZodArray<import("zod").ZodString>;
|
|
108
128
|
}, import("zod/v4/core").$strict>], "kind">;
|
|
109
129
|
scheduleKinds: import("zod").ZodEnum<{
|
|
130
|
+
recurring: "recurring";
|
|
110
131
|
both: "both";
|
|
111
132
|
"one-shot": "one-shot";
|
|
112
|
-
recurring: "recurring";
|
|
113
133
|
}>;
|
|
114
134
|
}, import("zod/v4/core").$strict>;
|
|
115
135
|
statusWebhook: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
@@ -117,6 +137,7 @@ export declare const statusSigningKeyCreatedSchema: import("zod").ZodObject<{
|
|
|
117
137
|
events: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
118
138
|
failed: "failed";
|
|
119
139
|
}>>;
|
|
140
|
+
endpoint: import("zod").ZodOptional<import("zod").ZodString>;
|
|
120
141
|
signingKey: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
121
142
|
id: import("zod").ZodString;
|
|
122
143
|
}, import("zod/v4/core").$strict>>;
|
|
@@ -215,17 +236,22 @@ export declare const PROJECT_NOTIFICATION_OPERATIONS: readonly [import("./operat
|
|
|
215
236
|
memberIds: import("zod").ZodArray<import("zod").ZodString>;
|
|
216
237
|
}, import("zod/v4/core").$strict>], "kind">;
|
|
217
238
|
scheduleKinds: import("zod").ZodEnum<{
|
|
239
|
+
recurring: "recurring";
|
|
218
240
|
both: "both";
|
|
219
241
|
"one-shot": "one-shot";
|
|
220
|
-
recurring: "recurring";
|
|
221
242
|
}>;
|
|
222
243
|
}, import("zod/v4/core").$strict>>;
|
|
223
|
-
statusWebhook: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
|
|
244
|
+
statusWebhook: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
|
|
245
|
+
endpoint: import("zod").ZodString;
|
|
246
|
+
events: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
247
|
+
failed: "failed";
|
|
248
|
+
}>>;
|
|
249
|
+
}, import("zod/v4/core").$strict>, import("zod").ZodObject<{
|
|
224
250
|
url: import("zod").ZodString;
|
|
225
251
|
events: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
226
252
|
failed: "failed";
|
|
227
253
|
}>>;
|
|
228
|
-
}, import("zod/v4/core").$strict>>>;
|
|
254
|
+
}, import("zod/v4/core").$strict>]>>>;
|
|
229
255
|
}, import("zod/v4/core").$strict>;
|
|
230
256
|
}, import("./operations.js").OperationDefinition & {
|
|
231
257
|
readonly id: "projectnotifications.rotateSigningKey";
|