@whooshbang/contracts 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/contract-manifest.json +32 -32
- package/dist/generated/artifact-index.d.ts +33 -33
- package/dist/generated/artifact-index.js +32 -32
- package/dist/generated/validators-standalone.d.ts +582 -491
- package/dist/generated/validators-standalone.js +9022 -4354
- package/dist/generated/validators-standalone.js.map +1 -1
- package/dist/generated/validators.d.ts +8 -1
- package/dist/generated/validators.js +8 -1
- package/dist/generated/validators.js.map +1 -1
- package/dist/generated/whooshbang-v1.d.ts +122 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/input-defaults.d.ts +1 -1
- package/dist/input-defaults.js.map +1 -1
- package/fixtures/core-v1/fixture-index.json +1 -1
- 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/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 +520 -15
- package/openapi/whooshbang-v1.yaml +251 -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 +259 -8
|
@@ -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: 3.
|
|
4
|
+
x-contract-version: 3.2.0
|
|
5
5
|
info:
|
|
6
6
|
title: WhooshBang API
|
|
7
|
-
version: 3.
|
|
7
|
+
version: 3.2.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
|
|
@@ -51,6 +51,8 @@ tags:
|
|
|
51
51
|
description: Single-use, expiring Telegram authorization links.
|
|
52
52
|
- name: Messages
|
|
53
53
|
description: Asynchronous logical messages and their highest proven outcomes.
|
|
54
|
+
- name: Message categories
|
|
55
|
+
description: Project categories and subscriber choices for those categories.
|
|
54
56
|
- name: Machine clients
|
|
55
57
|
description: Project-administered, destination-bound local-client identities and one-way credential metadata.
|
|
56
58
|
- name: Machine events
|
|
@@ -72,6 +74,183 @@ tags:
|
|
|
72
74
|
- name: Group broadcasts
|
|
73
75
|
description: Durable group acceptance and aggregate projection over ordinary child messages.
|
|
74
76
|
paths:
|
|
77
|
+
/v1/projects/{project_id}/message-categories:
|
|
78
|
+
parameters:
|
|
79
|
+
- $ref: "#/components/parameters/ProjectId"
|
|
80
|
+
get:
|
|
81
|
+
operationId: listMessageCategories
|
|
82
|
+
summary: List project message categories
|
|
83
|
+
tags: [Message categories]
|
|
84
|
+
security:
|
|
85
|
+
- clerkSession: []
|
|
86
|
+
- bearerGrant: []
|
|
87
|
+
- bearerCredential: []
|
|
88
|
+
x-required-scopes: [projects:read]
|
|
89
|
+
responses:
|
|
90
|
+
"200":
|
|
91
|
+
description: Categories in this project.
|
|
92
|
+
content:
|
|
93
|
+
application/json:
|
|
94
|
+
schema:
|
|
95
|
+
$ref: "#/components/schemas/MessageCategoryCollection"
|
|
96
|
+
"401":
|
|
97
|
+
$ref: "#/components/responses/Unauthorized"
|
|
98
|
+
"403":
|
|
99
|
+
$ref: "#/components/responses/Forbidden"
|
|
100
|
+
"404":
|
|
101
|
+
$ref: "#/components/responses/NotFound"
|
|
102
|
+
post:
|
|
103
|
+
operationId: createMessageCategory
|
|
104
|
+
summary: Add a project message category
|
|
105
|
+
tags: [Message categories]
|
|
106
|
+
security:
|
|
107
|
+
- clerkSession: []
|
|
108
|
+
- bearerGrant: []
|
|
109
|
+
- bearerCredential: []
|
|
110
|
+
x-required-scopes: [projects:write]
|
|
111
|
+
requestBody:
|
|
112
|
+
required: true
|
|
113
|
+
content:
|
|
114
|
+
application/json:
|
|
115
|
+
schema:
|
|
116
|
+
$ref: "#/components/schemas/CreateMessageCategoryRequest"
|
|
117
|
+
responses:
|
|
118
|
+
"201":
|
|
119
|
+
description: Category added.
|
|
120
|
+
content:
|
|
121
|
+
application/json:
|
|
122
|
+
schema:
|
|
123
|
+
$ref: "#/components/schemas/MessageCategory"
|
|
124
|
+
"400":
|
|
125
|
+
$ref: "#/components/responses/BadRequest"
|
|
126
|
+
"401":
|
|
127
|
+
$ref: "#/components/responses/Unauthorized"
|
|
128
|
+
"403":
|
|
129
|
+
$ref: "#/components/responses/Forbidden"
|
|
130
|
+
"409":
|
|
131
|
+
$ref: "#/components/responses/Conflict"
|
|
132
|
+
/v1/projects/{project_id}/message-categories/{category_key}:
|
|
133
|
+
parameters:
|
|
134
|
+
- $ref: "#/components/parameters/ProjectId"
|
|
135
|
+
- name: category_key
|
|
136
|
+
in: path
|
|
137
|
+
required: true
|
|
138
|
+
schema:
|
|
139
|
+
$ref: "#/components/schemas/MessageCategoryKey"
|
|
140
|
+
put:
|
|
141
|
+
operationId: updateMessageCategory
|
|
142
|
+
summary: Change a project's message category
|
|
143
|
+
tags: [Message categories]
|
|
144
|
+
security:
|
|
145
|
+
- clerkSession: []
|
|
146
|
+
- bearerGrant: []
|
|
147
|
+
- bearerCredential: []
|
|
148
|
+
x-required-scopes: [projects:write]
|
|
149
|
+
requestBody:
|
|
150
|
+
required: true
|
|
151
|
+
content:
|
|
152
|
+
application/json:
|
|
153
|
+
schema:
|
|
154
|
+
$ref: "#/components/schemas/UpdateMessageCategoryRequest"
|
|
155
|
+
responses:
|
|
156
|
+
"200":
|
|
157
|
+
description: Category updated.
|
|
158
|
+
content:
|
|
159
|
+
application/json:
|
|
160
|
+
schema:
|
|
161
|
+
$ref: "#/components/schemas/MessageCategory"
|
|
162
|
+
"400":
|
|
163
|
+
$ref: "#/components/responses/BadRequest"
|
|
164
|
+
"401":
|
|
165
|
+
$ref: "#/components/responses/Unauthorized"
|
|
166
|
+
"403":
|
|
167
|
+
$ref: "#/components/responses/Forbidden"
|
|
168
|
+
"404":
|
|
169
|
+
$ref: "#/components/responses/NotFound"
|
|
170
|
+
"409":
|
|
171
|
+
$ref: "#/components/responses/Conflict"
|
|
172
|
+
delete:
|
|
173
|
+
operationId: deleteMessageCategory
|
|
174
|
+
summary: Remove an unused message category
|
|
175
|
+
tags: [Message categories]
|
|
176
|
+
description: The default category and a category still used by queued messages cannot be removed.
|
|
177
|
+
security:
|
|
178
|
+
- clerkSession: []
|
|
179
|
+
- bearerGrant: []
|
|
180
|
+
- bearerCredential: []
|
|
181
|
+
x-required-scopes: [projects:write]
|
|
182
|
+
responses:
|
|
183
|
+
"204":
|
|
184
|
+
description: Category removed.
|
|
185
|
+
"401":
|
|
186
|
+
$ref: "#/components/responses/Unauthorized"
|
|
187
|
+
"403":
|
|
188
|
+
$ref: "#/components/responses/Forbidden"
|
|
189
|
+
"404":
|
|
190
|
+
$ref: "#/components/responses/NotFound"
|
|
191
|
+
"409":
|
|
192
|
+
$ref: "#/components/responses/Conflict"
|
|
193
|
+
/v1/projects/{project_id}/environments/{environment_id}/notification-preferences/categories:
|
|
194
|
+
parameters:
|
|
195
|
+
- $ref: "#/components/parameters/ProjectId"
|
|
196
|
+
- $ref: "#/components/parameters/EnvironmentId"
|
|
197
|
+
get:
|
|
198
|
+
operationId: getOwnCategoryPreferences
|
|
199
|
+
summary: Read my message category switches
|
|
200
|
+
tags: [Message categories]
|
|
201
|
+
security:
|
|
202
|
+
- clerkSession: []
|
|
203
|
+
x-required-scopes: [messages:read]
|
|
204
|
+
responses:
|
|
205
|
+
"200":
|
|
206
|
+
description: Category choices for the signed-in person.
|
|
207
|
+
content:
|
|
208
|
+
application/json:
|
|
209
|
+
schema:
|
|
210
|
+
$ref: "#/components/schemas/SubscriberCategoryPreferenceCollection"
|
|
211
|
+
"401":
|
|
212
|
+
$ref: "#/components/responses/Unauthorized"
|
|
213
|
+
"403":
|
|
214
|
+
$ref: "#/components/responses/Forbidden"
|
|
215
|
+
/v1/projects/{project_id}/environments/{environment_id}/notification-preferences/categories/{category_key}:
|
|
216
|
+
parameters:
|
|
217
|
+
- $ref: "#/components/parameters/ProjectId"
|
|
218
|
+
- $ref: "#/components/parameters/EnvironmentId"
|
|
219
|
+
- name: category_key
|
|
220
|
+
in: path
|
|
221
|
+
required: true
|
|
222
|
+
schema:
|
|
223
|
+
$ref: "#/components/schemas/MessageCategoryKey"
|
|
224
|
+
put:
|
|
225
|
+
operationId: setOwnCategoryPreference
|
|
226
|
+
summary: Switch one of my message categories on or off
|
|
227
|
+
tags: [Message categories]
|
|
228
|
+
security:
|
|
229
|
+
- clerkSession: []
|
|
230
|
+
x-required-scopes: [messages:write]
|
|
231
|
+
requestBody:
|
|
232
|
+
required: true
|
|
233
|
+
content:
|
|
234
|
+
application/json:
|
|
235
|
+
schema:
|
|
236
|
+
$ref: "#/components/schemas/SetSubscriberCategoryPreferenceRequest"
|
|
237
|
+
responses:
|
|
238
|
+
"200":
|
|
239
|
+
description: Updated category choice.
|
|
240
|
+
content:
|
|
241
|
+
application/json:
|
|
242
|
+
schema:
|
|
243
|
+
$ref: "#/components/schemas/SubscriberCategoryPreference"
|
|
244
|
+
"400":
|
|
245
|
+
$ref: "#/components/responses/BadRequest"
|
|
246
|
+
"401":
|
|
247
|
+
$ref: "#/components/responses/Unauthorized"
|
|
248
|
+
"403":
|
|
249
|
+
$ref: "#/components/responses/Forbidden"
|
|
250
|
+
"404":
|
|
251
|
+
$ref: "#/components/responses/NotFound"
|
|
252
|
+
"409":
|
|
253
|
+
$ref: "#/components/responses/Conflict"
|
|
75
254
|
/v1/projects/{project_id}/environments/{environment_id}/whoami:
|
|
76
255
|
get:
|
|
77
256
|
operationId: whoAmI
|
|
@@ -5658,6 +5837,60 @@ paths:
|
|
|
5658
5837
|
$ref: "#/components/responses/RecipientCapabilityInvalid"
|
|
5659
5838
|
"403":
|
|
5660
5839
|
$ref: "#/components/responses/RecipientOriginForbidden"
|
|
5840
|
+
/v1/recipient-session/category-preferences:
|
|
5841
|
+
get:
|
|
5842
|
+
operationId: getCategoryPreferences
|
|
5843
|
+
summary: Read this subscriber's message categories and switches
|
|
5844
|
+
tags: [Message categories]
|
|
5845
|
+
security:
|
|
5846
|
+
- recipientSessionCapability: []
|
|
5847
|
+
responses:
|
|
5848
|
+
"200":
|
|
5849
|
+
description: Category choices for this exact subscriber.
|
|
5850
|
+
content:
|
|
5851
|
+
application/json:
|
|
5852
|
+
schema:
|
|
5853
|
+
$ref: "#/components/schemas/SubscriberCategoryPreferenceCollection"
|
|
5854
|
+
"401":
|
|
5855
|
+
$ref: "#/components/responses/RecipientCapabilityInvalid"
|
|
5856
|
+
"403":
|
|
5857
|
+
$ref: "#/components/responses/RecipientOriginForbidden"
|
|
5858
|
+
/v1/recipient-session/category-preferences/{category_key}:
|
|
5859
|
+
parameters:
|
|
5860
|
+
- name: category_key
|
|
5861
|
+
in: path
|
|
5862
|
+
required: true
|
|
5863
|
+
schema:
|
|
5864
|
+
$ref: "#/components/schemas/MessageCategoryKey"
|
|
5865
|
+
put:
|
|
5866
|
+
operationId: setCategoryPreference
|
|
5867
|
+
summary: Switch one of this subscriber's message categories on or off
|
|
5868
|
+
tags: [Message categories]
|
|
5869
|
+
security:
|
|
5870
|
+
- recipientSessionCapability: []
|
|
5871
|
+
requestBody:
|
|
5872
|
+
required: true
|
|
5873
|
+
content:
|
|
5874
|
+
application/json:
|
|
5875
|
+
schema:
|
|
5876
|
+
$ref: "#/components/schemas/SetSubscriberCategoryPreferenceRequest"
|
|
5877
|
+
responses:
|
|
5878
|
+
"200":
|
|
5879
|
+
description: Updated category choice.
|
|
5880
|
+
content:
|
|
5881
|
+
application/json:
|
|
5882
|
+
schema:
|
|
5883
|
+
$ref: "#/components/schemas/SubscriberCategoryPreference"
|
|
5884
|
+
"400":
|
|
5885
|
+
$ref: "#/components/responses/BadRequest"
|
|
5886
|
+
"401":
|
|
5887
|
+
$ref: "#/components/responses/RecipientCapabilityInvalid"
|
|
5888
|
+
"403":
|
|
5889
|
+
$ref: "#/components/responses/RecipientOriginForbidden"
|
|
5890
|
+
"404":
|
|
5891
|
+
$ref: "#/components/responses/NotFound"
|
|
5892
|
+
"409":
|
|
5893
|
+
$ref: "#/components/responses/Conflict"
|
|
5661
5894
|
/v1/recipient-session/logo/{asset_id}:
|
|
5662
5895
|
parameters:
|
|
5663
5896
|
- name: Origin
|
|
@@ -9133,6 +9366,22 @@ components:
|
|
|
9133
9366
|
schema:
|
|
9134
9367
|
$ref: "#/components/schemas/DiagnosticId"
|
|
9135
9368
|
schemas:
|
|
9369
|
+
MessageCategoryKey:
|
|
9370
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/MessageCategoryKey
|
|
9371
|
+
MessageCategory:
|
|
9372
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/MessageCategory
|
|
9373
|
+
MessageCategoryCollection:
|
|
9374
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/MessageCategoryCollection
|
|
9375
|
+
CreateMessageCategoryRequest:
|
|
9376
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/CreateMessageCategoryRequest
|
|
9377
|
+
UpdateMessageCategoryRequest:
|
|
9378
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/UpdateMessageCategoryRequest
|
|
9379
|
+
SubscriberCategoryPreference:
|
|
9380
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/SubscriberCategoryPreference
|
|
9381
|
+
SubscriberCategoryPreferenceCollection:
|
|
9382
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/SubscriberCategoryPreferenceCollection
|
|
9383
|
+
SetSubscriberCategoryPreferenceRequest:
|
|
9384
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/SetSubscriberCategoryPreferenceRequest
|
|
9136
9385
|
WhoAmI:
|
|
9137
9386
|
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/WhoAmI
|
|
9138
9387
|
Operator:
|
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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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": "3.
|
|
4
|
+
"x-contract-version": "3.2.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",
|