@whooshbang/contracts 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/contract-manifest.json +35 -32
- package/dist/generated/artifact-index.d.ts +34 -34
- package/dist/generated/artifact-index.js +35 -32
- package/dist/generated/artifact-index.js.map +1 -1
- package/dist/generated/validators-standalone.d.ts +439 -400
- package/dist/generated/validators-standalone.js +6840 -1621
- package/dist/generated/validators-standalone.js.map +1 -1
- package/dist/generated/validators.d.ts +4 -1
- package/dist/generated/validators.js +4 -1
- package/dist/generated/validators.js.map +1 -1
- package/dist/generated/whooshbang-v1.d.ts +112 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/fixtures/core-v1/fixture-index.json +24 -1
- package/fixtures/core-v1/requests/redeem-billing-promotion.json +3 -0
- package/fixtures/core-v1/scenarios/api-credential-invalid-indistinguishable.json +1 -1
- package/fixtures/core-v1/scenarios/api-credential-one-time-reveal.json +1 -1
- package/fixtures/core-v1/scenarios/api-credential-revocation-replay.json +1 -1
- package/fixtures/core-v1/scenarios/api-credential-rotation-overlap.json +1 -1
- package/fixtures/core-v1/scenarios/cancellation-too-late.json +1 -1
- package/fixtures/core-v1/scenarios/cross-organization-project.json +1 -1
- package/fixtures/core-v1/scenarios/cross-project-resource.json +1 -1
- package/fixtures/core-v1/scenarios/environment-mismatch.json +1 -1
- package/fixtures/core-v1/scenarios/idempotency-conflict.json +1 -1
- package/fixtures/core-v1/scenarios/idempotency-equivalent-replay.json +1 -1
- package/fixtures/core-v1/scenarios/malformed-bearer.json +1 -1
- package/fixtures/core-v1/scenarios/metadata-overrun.json +1 -1
- package/fixtures/core-v1/scenarios/missing-scope.json +1 -1
- package/fixtures/core-v1/scenarios/project-create-equivalent-replay.json +1 -1
- package/fixtures/core-v1/scenarios/project-slug-conflict.json +1 -1
- package/fixtures/core-v1/scenarios/provider-outcome-unknown.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-activation-replay.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-authorization-capability-opacity.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-cross-connection-callback-rejected.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-expired-replay.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-selected-connection-replay.json +1 -1
- package/fixtures/core-v1/success/billing-promotion.json +14 -0
- package/fixtures/core-v1/success/billing-promotions.json +64 -0
- package/fixtures/core-v1/success/credit-purchase.json +2 -0
- package/fixtures/core-v1/success/subscription-change.json +7 -0
- package/fixtures/interaction-machine-v1/scenarios/ack-conflict.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-cross-machine.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-out-of-order.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-replay.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ambiguous-free-text.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/callback-token-opacity.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-registration-conflict.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-registration-replay.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-revocation-replay.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-rotation.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/first-credential-activates.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-duplicate.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-expired.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-mismatch.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-retired.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-stale.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-admin-denied.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-bound-message-create.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-cancel-denied.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-crash-before-ack.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-notifier-mismatch.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-other-message-read.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-owned-message-read.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-subscriber-mismatch.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/poll-uncommitted-cursor-rejected.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/project-credential-machine-endpoint-denied.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/quarantine-integrity-rejected.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/quarantine-signature-rejected.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/quarantine-valid.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/revoked-machine-credential.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/membership-broadcast-snapshot.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/preferred-binding-resolution.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/recipient-session-security.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/subscriber-initial-groups-transaction.json +1 -1
- package/openapi/generated/whooshbang-v1.bundle.json +423 -11
- package/openapi/whooshbang-v1.yaml +124 -2
- package/package.json +1 -1
- package/schemas/core-scenario.schema.json +1 -1
- package/schemas/events/agent-binding-degraded-v1.schema.json +1 -1
- package/schemas/events/interaction-expired-v1.schema.json +1 -1
- package/schemas/events/interaction-received-v1.schema.json +1 -1
- package/schemas/events/message-delivered-v1.schema.json +1 -1
- package/schemas/events/message-expired-v1.schema.json +1 -1
- package/schemas/events/message-failed-v1.schema.json +1 -1
- package/schemas/events/message-provider-accepted-v1.schema.json +1 -1
- package/schemas/events/subscription-activated-v1.schema.json +1 -1
- package/schemas/events/subscription-revoked-v1.schema.json +1 -1
- package/schemas/events/whooshbang-event-v1.schema.json +1 -1
- package/schemas/fixture-index.schema.json +1 -1
- package/schemas/interaction-machine-scenario.schema.json +1 -1
- package/schemas/interaction-v1.schema.json +1 -1
- package/schemas/machine-v1.schema.json +1 -1
- package/schemas/provider-capabilities-v1.schema.json +1 -1
- package/schemas/webhooks/webhook-delivery-case-v1.schema.json +1 -1
- package/schemas/webhooks/webhook-signing-vector-v1.schema.json +1 -1
- package/schemas/whooshbang-v1.schema.json +374 -3
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
openapi: 3.1.1
|
|
2
2
|
jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
|
|
3
3
|
# whooshbang:public-origin production api https://api.whooshbang.com
|
|
4
|
-
x-contract-version: 2.
|
|
4
|
+
x-contract-version: 2.5.0
|
|
5
5
|
info:
|
|
6
6
|
title: WhooshBang API
|
|
7
|
-
version: 2.
|
|
7
|
+
version: 2.5.0
|
|
8
8
|
description: |
|
|
9
9
|
The V1 contract for human organization/project administration, project-scoped
|
|
10
10
|
subscription links, and asynchronous text messages. A Clerk session selects
|
|
@@ -75,6 +75,7 @@ paths:
|
|
|
75
75
|
/v1/projects/{project_id}/environments/{environment_id}/whoami:
|
|
76
76
|
get:
|
|
77
77
|
operationId: whoAmI
|
|
78
|
+
x-notification-scopes: [notifications:self, notifications:team]
|
|
78
79
|
summary: Identify the authenticated caller
|
|
79
80
|
description: Personal login identifies me without a recipient question. Shared or service credentials report their actual principal and require an explicit recipient. No account owner or credential creator is inferred.
|
|
80
81
|
tags: [Operators]
|
|
@@ -83,6 +84,8 @@ paths:
|
|
|
83
84
|
- bearerCredential: []
|
|
84
85
|
- bearerOrganizationCredential: []
|
|
85
86
|
- bearerGrant: [messages:read]
|
|
87
|
+
- bearerGrant: [notifications:self]
|
|
88
|
+
- bearerGrant: [notifications:team]
|
|
86
89
|
- machineCredential: []
|
|
87
90
|
x-required-scopes: [messages:read]
|
|
88
91
|
parameters:
|
|
@@ -102,6 +105,7 @@ paths:
|
|
|
102
105
|
/v1/projects/{project_id}/environments/{environment_id}/operators:
|
|
103
106
|
get:
|
|
104
107
|
operationId: listOperators
|
|
108
|
+
x-notification-scopes: [notifications:team]
|
|
105
109
|
summary: listOperators
|
|
106
110
|
description: Membership-derived operator messaging. Only the authenticated human can manage personal preferences.
|
|
107
111
|
tags: [Operators]
|
|
@@ -109,6 +113,7 @@ paths:
|
|
|
109
113
|
- clerkSession: []
|
|
110
114
|
- bearerCredential: []
|
|
111
115
|
- bearerGrant: [messages:read]
|
|
116
|
+
- bearerGrant: [notifications:team]
|
|
112
117
|
x-required-scopes: [messages:read]
|
|
113
118
|
parameters:
|
|
114
119
|
- $ref: "#/components/parameters/ProjectId"
|
|
@@ -130,6 +135,7 @@ paths:
|
|
|
130
135
|
/v1/projects/{project_id}/environments/{environment_id}/operators/resolve:
|
|
131
136
|
get:
|
|
132
137
|
operationId: resolveOperator
|
|
138
|
+
x-notification-scopes: [notifications:team]
|
|
133
139
|
summary: resolveOperator
|
|
134
140
|
description: Membership-derived operator messaging. Only the authenticated human can manage personal preferences.
|
|
135
141
|
tags: [Operators]
|
|
@@ -137,6 +143,7 @@ paths:
|
|
|
137
143
|
- clerkSession: []
|
|
138
144
|
- bearerCredential: []
|
|
139
145
|
- bearerGrant: [messages:read]
|
|
146
|
+
- bearerGrant: [notifications:team]
|
|
140
147
|
x-required-scopes: [messages:read]
|
|
141
148
|
parameters:
|
|
142
149
|
- $ref: "#/components/parameters/ProjectId"
|
|
@@ -159,6 +166,7 @@ paths:
|
|
|
159
166
|
/v1/projects/{project_id}/environments/{environment_id}/operator-messages:
|
|
160
167
|
post:
|
|
161
168
|
operationId: sendOperatorMessage
|
|
169
|
+
x-notification-scopes: [notifications:self, notifications:team]
|
|
162
170
|
summary: sendOperatorMessage
|
|
163
171
|
description: Message a current teammate by name or operator ID. Personal callers may omit recipient or use me. Shared credentials must name a recipient. Runtime machine credentials report recipient_required for omitted or me; named operator sends are forbidden because runtime authority remains subscriber-bound.
|
|
164
172
|
tags: [Operators]
|
|
@@ -168,6 +176,8 @@ paths:
|
|
|
168
176
|
- bearerOrganizationCredential: []
|
|
169
177
|
- machineCredential: []
|
|
170
178
|
- bearerGrant: [messages:write]
|
|
179
|
+
- bearerGrant: [notifications:self]
|
|
180
|
+
- bearerGrant: [notifications:team]
|
|
171
181
|
x-required-scopes: [messages:write]
|
|
172
182
|
parameters:
|
|
173
183
|
- $ref: "#/components/parameters/ProjectId"
|
|
@@ -193,6 +203,7 @@ paths:
|
|
|
193
203
|
/v1/projects/{project_id}/environments/{environment_id}/operators/broadcasts:
|
|
194
204
|
post:
|
|
195
205
|
operationId: broadcastOperators
|
|
206
|
+
x-notification-scopes: [notifications:team]
|
|
196
207
|
summary: broadcastOperators
|
|
197
208
|
description: Membership-derived operator messaging. Only the authenticated human can manage personal preferences.
|
|
198
209
|
tags: [Operators]
|
|
@@ -200,6 +211,7 @@ paths:
|
|
|
200
211
|
- clerkSession: []
|
|
201
212
|
- bearerCredential: []
|
|
202
213
|
- bearerGrant: [messages:write]
|
|
214
|
+
- bearerGrant: [notifications:team]
|
|
203
215
|
x-required-scopes: [messages:write]
|
|
204
216
|
parameters:
|
|
205
217
|
- $ref: "#/components/parameters/ProjectId"
|
|
@@ -225,6 +237,7 @@ paths:
|
|
|
225
237
|
/v1/projects/{project_id}/environments/{environment_id}/operators/broadcasts/{broadcast_id}:
|
|
226
238
|
get:
|
|
227
239
|
operationId: getOperatorBroadcast
|
|
240
|
+
x-notification-scopes: [notifications:team]
|
|
228
241
|
summary: getOperatorBroadcast
|
|
229
242
|
description: Membership-derived operator messaging. Only the authenticated human can manage personal preferences.
|
|
230
243
|
tags: [Operators]
|
|
@@ -232,6 +245,7 @@ paths:
|
|
|
232
245
|
- clerkSession: []
|
|
233
246
|
- bearerCredential: []
|
|
234
247
|
- bearerGrant: [messages:read]
|
|
248
|
+
- bearerGrant: [notifications:team]
|
|
235
249
|
x-required-scopes: [messages:read]
|
|
236
250
|
parameters:
|
|
237
251
|
- $ref: "#/components/parameters/ProjectId"
|
|
@@ -254,6 +268,7 @@ paths:
|
|
|
254
268
|
/v1/projects/{project_id}/environments/{environment_id}/notification-preferences:
|
|
255
269
|
get:
|
|
256
270
|
operationId: getOperatorPreferences
|
|
271
|
+
x-notification-scopes: [notifications:self, notifications:team]
|
|
257
272
|
summary: getOperatorPreferences
|
|
258
273
|
description: Membership-derived operator messaging. Only the authenticated human can manage personal preferences.
|
|
259
274
|
tags: [Operators]
|
|
@@ -261,6 +276,8 @@ paths:
|
|
|
261
276
|
- clerkSession: []
|
|
262
277
|
- bearerCredential: []
|
|
263
278
|
- bearerGrant: [messages:read]
|
|
279
|
+
- bearerGrant: [notifications:self]
|
|
280
|
+
- bearerGrant: [notifications:team]
|
|
264
281
|
x-required-scopes: [messages:read]
|
|
265
282
|
parameters:
|
|
266
283
|
- $ref: "#/components/parameters/ProjectId"
|
|
@@ -279,6 +296,7 @@ paths:
|
|
|
279
296
|
/v1/projects/{project_id}/environments/{environment_id}/notification-preferences/preferred-binding:
|
|
280
297
|
put:
|
|
281
298
|
operationId: setOperatorPreferredBinding
|
|
299
|
+
x-notification-scopes: [notifications:self, notifications:team]
|
|
282
300
|
summary: setOperatorPreferredBinding
|
|
283
301
|
description: Membership-derived operator messaging. Only the authenticated human can manage personal preferences.
|
|
284
302
|
tags: [Operators]
|
|
@@ -286,6 +304,8 @@ paths:
|
|
|
286
304
|
- clerkSession: []
|
|
287
305
|
- bearerCredential: []
|
|
288
306
|
- bearerGrant: [messages:write]
|
|
307
|
+
- bearerGrant: [notifications:self]
|
|
308
|
+
- bearerGrant: [notifications:team]
|
|
289
309
|
x-required-scopes: [messages:write]
|
|
290
310
|
parameters:
|
|
291
311
|
- $ref: "#/components/parameters/ProjectId"
|
|
@@ -310,6 +330,7 @@ paths:
|
|
|
310
330
|
/v1/projects/{project_id}/environments/{environment_id}/notification-preferences/connect:
|
|
311
331
|
post:
|
|
312
332
|
operationId: connectOperatorChannel
|
|
333
|
+
x-notification-scopes: [notifications:self, notifications:team]
|
|
313
334
|
summary: connectOperatorChannel
|
|
314
335
|
description: Membership-derived operator messaging. Only the authenticated human can manage personal preferences.
|
|
315
336
|
tags: [Operators]
|
|
@@ -317,6 +338,8 @@ paths:
|
|
|
317
338
|
- clerkSession: []
|
|
318
339
|
- bearerCredential: []
|
|
319
340
|
- bearerGrant: [messages:write]
|
|
341
|
+
- bearerGrant: [notifications:self]
|
|
342
|
+
- bearerGrant: [notifications:team]
|
|
320
343
|
x-required-scopes: [messages:write]
|
|
321
344
|
parameters:
|
|
322
345
|
- $ref: "#/components/parameters/ProjectId"
|
|
@@ -412,6 +435,93 @@ paths:
|
|
|
412
435
|
$ref: "#/components/responses/Conflict"
|
|
413
436
|
"429":
|
|
414
437
|
$ref: "#/components/responses/RateLimited"
|
|
438
|
+
/v1/billing/promotions:
|
|
439
|
+
get:
|
|
440
|
+
operationId: getBillingPromotions
|
|
441
|
+
summary: Read the organization's promotions
|
|
442
|
+
description: |
|
|
443
|
+
Organization administrators can read every promotion the organization holds: rewards WhooshBang gave it
|
|
444
|
+
and promotion codes it redeemed, with what remains and when each ends. Promotional value has no cash
|
|
445
|
+
value, is never refunded and cannot move to another organization.
|
|
446
|
+
tags: [Organization]
|
|
447
|
+
security:
|
|
448
|
+
- clerkSession: []
|
|
449
|
+
- bearerGrant: []
|
|
450
|
+
x-required-scopes: [billing:read]
|
|
451
|
+
x-organization-membership: required
|
|
452
|
+
responses:
|
|
453
|
+
"200":
|
|
454
|
+
description: The organization's promotions, newest first.
|
|
455
|
+
headers:
|
|
456
|
+
WhooshBang-Diagnostic-Id:
|
|
457
|
+
$ref: "#/components/headers/DiagnosticId"
|
|
458
|
+
content:
|
|
459
|
+
application/json:
|
|
460
|
+
schema:
|
|
461
|
+
$ref: "#/components/schemas/BillingPromotions"
|
|
462
|
+
"401":
|
|
463
|
+
$ref: "#/components/responses/Unauthorized"
|
|
464
|
+
"403":
|
|
465
|
+
$ref: "#/components/responses/Forbidden"
|
|
466
|
+
"404":
|
|
467
|
+
$ref: "#/components/responses/NotFound"
|
|
468
|
+
"429":
|
|
469
|
+
$ref: "#/components/responses/RateLimited"
|
|
470
|
+
/v1/billing/promotions/redeem:
|
|
471
|
+
post:
|
|
472
|
+
operationId: redeemBillingPromotion
|
|
473
|
+
summary: Redeem a promotion code
|
|
474
|
+
description: |
|
|
475
|
+
Organization administrators can redeem a promotion code for their own organization. Nothing is charged.
|
|
476
|
+
Every code that cannot be redeemed (mistyped, ended, fully used, not offered to this organization, or not
|
|
477
|
+
combinable with a promotion it already holds) receives the same `resource_not_found` answer. Repeated
|
|
478
|
+
refusals are rate limited per organization; wait for `Retry-After`. Reuse the same idempotency key after
|
|
479
|
+
an uncertain response: it can never redeem twice.
|
|
480
|
+
tags: [Organization]
|
|
481
|
+
security:
|
|
482
|
+
- clerkSession: []
|
|
483
|
+
- bearerGrant: []
|
|
484
|
+
x-required-scopes: [billing:write]
|
|
485
|
+
x-organization-membership: required
|
|
486
|
+
parameters:
|
|
487
|
+
- $ref: "#/components/parameters/IdempotencyKey"
|
|
488
|
+
requestBody:
|
|
489
|
+
required: true
|
|
490
|
+
content:
|
|
491
|
+
application/json:
|
|
492
|
+
schema:
|
|
493
|
+
$ref: "#/components/schemas/RedeemBillingPromotionRequest"
|
|
494
|
+
responses:
|
|
495
|
+
"200":
|
|
496
|
+
description: The same promotion, replayed for a repeated idempotency key.
|
|
497
|
+
headers:
|
|
498
|
+
WhooshBang-Diagnostic-Id:
|
|
499
|
+
$ref: "#/components/headers/DiagnosticId"
|
|
500
|
+
content:
|
|
501
|
+
application/json:
|
|
502
|
+
schema:
|
|
503
|
+
$ref: "#/components/schemas/BillingPromotion"
|
|
504
|
+
"201":
|
|
505
|
+
description: The promotion the code gave the organization.
|
|
506
|
+
headers:
|
|
507
|
+
WhooshBang-Diagnostic-Id:
|
|
508
|
+
$ref: "#/components/headers/DiagnosticId"
|
|
509
|
+
content:
|
|
510
|
+
application/json:
|
|
511
|
+
schema:
|
|
512
|
+
$ref: "#/components/schemas/BillingPromotion"
|
|
513
|
+
"400":
|
|
514
|
+
$ref: "#/components/responses/BadRequest"
|
|
515
|
+
"401":
|
|
516
|
+
$ref: "#/components/responses/Unauthorized"
|
|
517
|
+
"403":
|
|
518
|
+
$ref: "#/components/responses/Forbidden"
|
|
519
|
+
"404":
|
|
520
|
+
$ref: "#/components/responses/NotFound"
|
|
521
|
+
"409":
|
|
522
|
+
$ref: "#/components/responses/Conflict"
|
|
523
|
+
"429":
|
|
524
|
+
$ref: "#/components/responses/RateLimited"
|
|
415
525
|
/v1/billing/auto-top-up:
|
|
416
526
|
get:
|
|
417
527
|
operationId: getAutoTopUpSettings
|
|
@@ -1961,6 +2071,7 @@ paths:
|
|
|
1961
2071
|
/v1/projects:
|
|
1962
2072
|
get:
|
|
1963
2073
|
operationId: listProjects
|
|
2074
|
+
x-notification-scopes: [notifications:self, notifications:team]
|
|
1964
2075
|
summary: List projects in the current organization
|
|
1965
2076
|
description: |
|
|
1966
2077
|
Returns only projects owned by the organization selected by the verified
|
|
@@ -1971,6 +2082,8 @@ paths:
|
|
|
1971
2082
|
security:
|
|
1972
2083
|
- clerkSession: []
|
|
1973
2084
|
- bearerGrant: []
|
|
2085
|
+
- bearerGrant: [notifications:self]
|
|
2086
|
+
- bearerGrant: [notifications:team]
|
|
1974
2087
|
- bearerOrganizationCredential: []
|
|
1975
2088
|
x-required-scopes:
|
|
1976
2089
|
- projects:read
|
|
@@ -2064,6 +2177,7 @@ paths:
|
|
|
2064
2177
|
- $ref: "#/components/parameters/ProjectId"
|
|
2065
2178
|
get:
|
|
2066
2179
|
operationId: getProject
|
|
2180
|
+
x-notification-scopes: [notifications:self, notifications:team]
|
|
2067
2181
|
summary: Read one project in the current organization
|
|
2068
2182
|
description: |
|
|
2069
2183
|
Returns the complete project bootstrap. An absent project and a project
|
|
@@ -2073,6 +2187,8 @@ paths:
|
|
|
2073
2187
|
security:
|
|
2074
2188
|
- clerkSession: []
|
|
2075
2189
|
- bearerGrant: []
|
|
2190
|
+
- bearerGrant: [notifications:self]
|
|
2191
|
+
- bearerGrant: [notifications:team]
|
|
2076
2192
|
- bearerOrganizationCredential: []
|
|
2077
2193
|
x-required-scopes:
|
|
2078
2194
|
- projects:read
|
|
@@ -8725,6 +8841,12 @@ components:
|
|
|
8725
8841
|
$ref: "../schemas/whooshbang-v1.schema.json#/$defs/BillingProjectSlots"
|
|
8726
8842
|
AssignBillingProjectSlotsRequest:
|
|
8727
8843
|
$ref: "../schemas/whooshbang-v1.schema.json#/$defs/AssignBillingProjectSlotsRequest"
|
|
8844
|
+
BillingPromotions:
|
|
8845
|
+
$ref: "../schemas/whooshbang-v1.schema.json#/$defs/BillingPromotions"
|
|
8846
|
+
BillingPromotion:
|
|
8847
|
+
$ref: "../schemas/whooshbang-v1.schema.json#/$defs/BillingPromotion"
|
|
8848
|
+
RedeemBillingPromotionRequest:
|
|
8849
|
+
$ref: "../schemas/whooshbang-v1.schema.json#/$defs/RedeemBillingPromotionRequest"
|
|
8728
8850
|
BillingEntitlements:
|
|
8729
8851
|
$ref: "../schemas/whooshbang-v1.schema.json#/$defs/BillingEntitlements"
|
|
8730
8852
|
SubscriptionSelection:
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/core-scenario.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "CoreContractScenario",
|
|
6
6
|
"description": "A deterministic C0-02 semantic, state, idempotency, or isolation scenario.",
|
|
7
7
|
"type": "object",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/agent-binding-degraded-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "AgentBindingDegradedEventV1",
|
|
6
6
|
"description": "An agent binding entered a provider-neutral degraded state.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/AgentBindingDegradedEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/interaction-expired-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "InteractionExpiredEventV1",
|
|
6
6
|
"description": "An interaction reached its terminal expiry without a valid answer.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/InteractionExpiredEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/interaction-received-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "InteractionReceivedEventV1",
|
|
6
6
|
"description": "One authenticated, provider-neutral interaction answer was received.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/InteractionReceivedEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/message-delivered-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "MessageDeliveredEventV1",
|
|
6
6
|
"description": "A provider supplied trustworthy evidence that a message was delivered.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/MessageDeliveredEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/message-expired-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "MessageExpiredEventV1",
|
|
6
6
|
"description": "A message expired before reaching a later delivery state.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/MessageExpiredEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/message-failed-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "MessageFailedEventV1",
|
|
6
6
|
"description": "A message reached a classified terminal failure.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/MessageFailedEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/message-provider-accepted-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "MessageProviderAcceptedEventV1",
|
|
6
6
|
"description": "The provider accepted a message without implying delivery.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/MessageProviderAcceptedEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/subscription-activated-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "SubscriptionActivatedEventV1",
|
|
6
6
|
"description": "A subscription became active with a safe public channel binding.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/SubscriptionActivatedEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/subscription-revoked-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "SubscriptionRevokedEventV1",
|
|
6
6
|
"description": "A subscription and its safe public channel binding were revoked.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/SubscriptionRevokedEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/whooshbang-event-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "WhooshBangEventV1ContractDocument",
|
|
6
6
|
"description": "Strict public customer-event envelope and initial WhooshBang event union.",
|
|
7
7
|
"oneOf": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/fixture-index.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "CoreFixtureIndex",
|
|
6
6
|
"description": "The machine-readable index of deterministic C0-02 through C0-04 golden fixtures.",
|
|
7
7
|
"type": "object",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/interaction-machine-scenario.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "InteractionMachineScenario",
|
|
6
6
|
"description": "A deterministic C0-03 interaction, credential, authorization, polling, acknowledgement, or quarantine scenario.",
|
|
7
7
|
"type": "object",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/interaction-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "InteractionV1ContractDocument",
|
|
6
6
|
"description": "Provider-neutral confirm, single-select, input, lifecycle, callback-token, and authenticated answer-event contracts.",
|
|
7
7
|
"$defs": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/machine-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "MachineV1ContractDocument",
|
|
6
6
|
"description": "Machine-client administration, locally generated credential metadata, durable long-poll, and contiguous acknowledgement contracts.",
|
|
7
7
|
"oneOf": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/provider-capabilities-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "ProviderCapabilitiesV1",
|
|
6
6
|
"description": "Provider-neutral, renderer-facing delivery and interaction capabilities with explicit degradation.",
|
|
7
7
|
"type": "object",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/webhooks/webhook-delivery-case-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "WebhookDeliveryCaseSetV1",
|
|
6
6
|
"description": "Deterministic customer webhook response classification, Retry-After, and delivery-bound cases.",
|
|
7
7
|
"type": "object",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/webhooks/webhook-signing-vector-v1.schema.json",
|
|
4
|
-
"x-contract-version": "2.
|
|
4
|
+
"x-contract-version": "2.5.0",
|
|
5
5
|
"title": "WebhookSigningVectorSetV1",
|
|
6
6
|
"description": "Language-neutral deterministic Standard Webhooks V1 verification vectors. All key material is public synthetic test data and must never be used outside fixtures.",
|
|
7
7
|
"type": "object",
|