@whooshbang/contracts 3.1.0 → 3.3.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 +11 -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 +9597 -4634
- 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 +147 -6
- 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/fixtures/recipient-experience-v1/success/project-recipient-experience.json +2 -0
- package/openapi/generated/whooshbang-v1.bundle.json +582 -19
- package/openapi/whooshbang-v1.yaml +281 -3
- 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 +288 -11
|
@@ -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.3.0
|
|
5
5
|
info:
|
|
6
6
|
title: WhooshBang API
|
|
7
|
-
version: 3.
|
|
7
|
+
version: 3.3.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,191 @@ 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
|
+
description: By default, only current categories are listed. Include archived categories when offering a filter over historical messages.
|
|
84
|
+
tags: [Message categories]
|
|
85
|
+
security:
|
|
86
|
+
- clerkSession: []
|
|
87
|
+
- bearerGrant: []
|
|
88
|
+
- bearerCredential: []
|
|
89
|
+
x-required-scopes: [projects:read]
|
|
90
|
+
parameters:
|
|
91
|
+
- in: query
|
|
92
|
+
name: include_archived
|
|
93
|
+
required: false
|
|
94
|
+
schema:
|
|
95
|
+
type: boolean
|
|
96
|
+
default: false
|
|
97
|
+
responses:
|
|
98
|
+
"200":
|
|
99
|
+
description: Categories in this project.
|
|
100
|
+
content:
|
|
101
|
+
application/json:
|
|
102
|
+
schema:
|
|
103
|
+
$ref: "#/components/schemas/MessageCategoryCollection"
|
|
104
|
+
"401":
|
|
105
|
+
$ref: "#/components/responses/Unauthorized"
|
|
106
|
+
"403":
|
|
107
|
+
$ref: "#/components/responses/Forbidden"
|
|
108
|
+
"404":
|
|
109
|
+
$ref: "#/components/responses/NotFound"
|
|
110
|
+
post:
|
|
111
|
+
operationId: createMessageCategory
|
|
112
|
+
summary: Add a project message category
|
|
113
|
+
tags: [Message categories]
|
|
114
|
+
security:
|
|
115
|
+
- clerkSession: []
|
|
116
|
+
- bearerGrant: []
|
|
117
|
+
- bearerCredential: []
|
|
118
|
+
x-required-scopes: [projects:write]
|
|
119
|
+
requestBody:
|
|
120
|
+
required: true
|
|
121
|
+
content:
|
|
122
|
+
application/json:
|
|
123
|
+
schema:
|
|
124
|
+
$ref: "#/components/schemas/CreateMessageCategoryRequest"
|
|
125
|
+
responses:
|
|
126
|
+
"201":
|
|
127
|
+
description: Category added.
|
|
128
|
+
content:
|
|
129
|
+
application/json:
|
|
130
|
+
schema:
|
|
131
|
+
$ref: "#/components/schemas/MessageCategory"
|
|
132
|
+
"400":
|
|
133
|
+
$ref: "#/components/responses/BadRequest"
|
|
134
|
+
"401":
|
|
135
|
+
$ref: "#/components/responses/Unauthorized"
|
|
136
|
+
"403":
|
|
137
|
+
$ref: "#/components/responses/Forbidden"
|
|
138
|
+
"409":
|
|
139
|
+
$ref: "#/components/responses/Conflict"
|
|
140
|
+
/v1/projects/{project_id}/message-categories/{category_key}:
|
|
141
|
+
parameters:
|
|
142
|
+
- $ref: "#/components/parameters/ProjectId"
|
|
143
|
+
- name: category_key
|
|
144
|
+
in: path
|
|
145
|
+
required: true
|
|
146
|
+
schema:
|
|
147
|
+
$ref: "#/components/schemas/MessageCategoryKey"
|
|
148
|
+
put:
|
|
149
|
+
operationId: updateMessageCategory
|
|
150
|
+
summary: Change a project's message category
|
|
151
|
+
tags: [Message categories]
|
|
152
|
+
security:
|
|
153
|
+
- clerkSession: []
|
|
154
|
+
- bearerGrant: []
|
|
155
|
+
- bearerCredential: []
|
|
156
|
+
x-required-scopes: [projects:write]
|
|
157
|
+
requestBody:
|
|
158
|
+
required: true
|
|
159
|
+
content:
|
|
160
|
+
application/json:
|
|
161
|
+
schema:
|
|
162
|
+
$ref: "#/components/schemas/UpdateMessageCategoryRequest"
|
|
163
|
+
responses:
|
|
164
|
+
"200":
|
|
165
|
+
description: Category updated.
|
|
166
|
+
content:
|
|
167
|
+
application/json:
|
|
168
|
+
schema:
|
|
169
|
+
$ref: "#/components/schemas/MessageCategory"
|
|
170
|
+
"400":
|
|
171
|
+
$ref: "#/components/responses/BadRequest"
|
|
172
|
+
"401":
|
|
173
|
+
$ref: "#/components/responses/Unauthorized"
|
|
174
|
+
"403":
|
|
175
|
+
$ref: "#/components/responses/Forbidden"
|
|
176
|
+
"404":
|
|
177
|
+
$ref: "#/components/responses/NotFound"
|
|
178
|
+
"409":
|
|
179
|
+
$ref: "#/components/responses/Conflict"
|
|
180
|
+
delete:
|
|
181
|
+
operationId: deleteMessageCategory
|
|
182
|
+
summary: Remove an unused message category
|
|
183
|
+
tags: [Message categories]
|
|
184
|
+
description: The default category and a category still used by queued messages cannot be removed.
|
|
185
|
+
security:
|
|
186
|
+
- clerkSession: []
|
|
187
|
+
- bearerGrant: []
|
|
188
|
+
- bearerCredential: []
|
|
189
|
+
x-required-scopes: [projects:write]
|
|
190
|
+
responses:
|
|
191
|
+
"204":
|
|
192
|
+
description: Category removed.
|
|
193
|
+
"401":
|
|
194
|
+
$ref: "#/components/responses/Unauthorized"
|
|
195
|
+
"403":
|
|
196
|
+
$ref: "#/components/responses/Forbidden"
|
|
197
|
+
"404":
|
|
198
|
+
$ref: "#/components/responses/NotFound"
|
|
199
|
+
"409":
|
|
200
|
+
$ref: "#/components/responses/Conflict"
|
|
201
|
+
/v1/projects/{project_id}/environments/{environment_id}/notification-preferences/categories:
|
|
202
|
+
parameters:
|
|
203
|
+
- $ref: "#/components/parameters/ProjectId"
|
|
204
|
+
- $ref: "#/components/parameters/EnvironmentId"
|
|
205
|
+
get:
|
|
206
|
+
operationId: getOwnCategoryPreferences
|
|
207
|
+
summary: Read my message category switches
|
|
208
|
+
tags: [Message categories]
|
|
209
|
+
security:
|
|
210
|
+
- clerkSession: []
|
|
211
|
+
x-required-scopes: [messages:read]
|
|
212
|
+
responses:
|
|
213
|
+
"200":
|
|
214
|
+
description: Category choices for the signed-in person.
|
|
215
|
+
content:
|
|
216
|
+
application/json:
|
|
217
|
+
schema:
|
|
218
|
+
$ref: "#/components/schemas/SubscriberCategoryPreferenceCollection"
|
|
219
|
+
"401":
|
|
220
|
+
$ref: "#/components/responses/Unauthorized"
|
|
221
|
+
"403":
|
|
222
|
+
$ref: "#/components/responses/Forbidden"
|
|
223
|
+
/v1/projects/{project_id}/environments/{environment_id}/notification-preferences/categories/{category_key}:
|
|
224
|
+
parameters:
|
|
225
|
+
- $ref: "#/components/parameters/ProjectId"
|
|
226
|
+
- $ref: "#/components/parameters/EnvironmentId"
|
|
227
|
+
- name: category_key
|
|
228
|
+
in: path
|
|
229
|
+
required: true
|
|
230
|
+
schema:
|
|
231
|
+
$ref: "#/components/schemas/MessageCategoryKey"
|
|
232
|
+
put:
|
|
233
|
+
operationId: setOwnCategoryPreference
|
|
234
|
+
summary: Switch one of my message categories on or off
|
|
235
|
+
tags: [Message categories]
|
|
236
|
+
security:
|
|
237
|
+
- clerkSession: []
|
|
238
|
+
x-required-scopes: [messages:write]
|
|
239
|
+
requestBody:
|
|
240
|
+
required: true
|
|
241
|
+
content:
|
|
242
|
+
application/json:
|
|
243
|
+
schema:
|
|
244
|
+
$ref: "#/components/schemas/SetSubscriberCategoryPreferenceRequest"
|
|
245
|
+
responses:
|
|
246
|
+
"200":
|
|
247
|
+
description: Updated category choice.
|
|
248
|
+
content:
|
|
249
|
+
application/json:
|
|
250
|
+
schema:
|
|
251
|
+
$ref: "#/components/schemas/SubscriberCategoryPreference"
|
|
252
|
+
"400":
|
|
253
|
+
$ref: "#/components/responses/BadRequest"
|
|
254
|
+
"401":
|
|
255
|
+
$ref: "#/components/responses/Unauthorized"
|
|
256
|
+
"403":
|
|
257
|
+
$ref: "#/components/responses/Forbidden"
|
|
258
|
+
"404":
|
|
259
|
+
$ref: "#/components/responses/NotFound"
|
|
260
|
+
"409":
|
|
261
|
+
$ref: "#/components/responses/Conflict"
|
|
75
262
|
/v1/projects/{project_id}/environments/{environment_id}/whoami:
|
|
76
263
|
get:
|
|
77
264
|
operationId: whoAmI
|
|
@@ -5658,6 +5845,60 @@ paths:
|
|
|
5658
5845
|
$ref: "#/components/responses/RecipientCapabilityInvalid"
|
|
5659
5846
|
"403":
|
|
5660
5847
|
$ref: "#/components/responses/RecipientOriginForbidden"
|
|
5848
|
+
/v1/recipient-session/category-preferences:
|
|
5849
|
+
get:
|
|
5850
|
+
operationId: getCategoryPreferences
|
|
5851
|
+
summary: Read this subscriber's message categories and switches
|
|
5852
|
+
tags: [Message categories]
|
|
5853
|
+
security:
|
|
5854
|
+
- recipientSessionCapability: []
|
|
5855
|
+
responses:
|
|
5856
|
+
"200":
|
|
5857
|
+
description: Category choices for this exact subscriber.
|
|
5858
|
+
content:
|
|
5859
|
+
application/json:
|
|
5860
|
+
schema:
|
|
5861
|
+
$ref: "#/components/schemas/SubscriberCategoryPreferenceCollection"
|
|
5862
|
+
"401":
|
|
5863
|
+
$ref: "#/components/responses/RecipientCapabilityInvalid"
|
|
5864
|
+
"403":
|
|
5865
|
+
$ref: "#/components/responses/RecipientOriginForbidden"
|
|
5866
|
+
/v1/recipient-session/category-preferences/{category_key}:
|
|
5867
|
+
parameters:
|
|
5868
|
+
- name: category_key
|
|
5869
|
+
in: path
|
|
5870
|
+
required: true
|
|
5871
|
+
schema:
|
|
5872
|
+
$ref: "#/components/schemas/MessageCategoryKey"
|
|
5873
|
+
put:
|
|
5874
|
+
operationId: setCategoryPreference
|
|
5875
|
+
summary: Switch one of this subscriber's message categories on or off
|
|
5876
|
+
tags: [Message categories]
|
|
5877
|
+
security:
|
|
5878
|
+
- recipientSessionCapability: []
|
|
5879
|
+
requestBody:
|
|
5880
|
+
required: true
|
|
5881
|
+
content:
|
|
5882
|
+
application/json:
|
|
5883
|
+
schema:
|
|
5884
|
+
$ref: "#/components/schemas/SetSubscriberCategoryPreferenceRequest"
|
|
5885
|
+
responses:
|
|
5886
|
+
"200":
|
|
5887
|
+
description: Updated category choice.
|
|
5888
|
+
content:
|
|
5889
|
+
application/json:
|
|
5890
|
+
schema:
|
|
5891
|
+
$ref: "#/components/schemas/SubscriberCategoryPreference"
|
|
5892
|
+
"400":
|
|
5893
|
+
$ref: "#/components/responses/BadRequest"
|
|
5894
|
+
"401":
|
|
5895
|
+
$ref: "#/components/responses/RecipientCapabilityInvalid"
|
|
5896
|
+
"403":
|
|
5897
|
+
$ref: "#/components/responses/RecipientOriginForbidden"
|
|
5898
|
+
"404":
|
|
5899
|
+
$ref: "#/components/responses/NotFound"
|
|
5900
|
+
"409":
|
|
5901
|
+
$ref: "#/components/responses/Conflict"
|
|
5661
5902
|
/v1/recipient-session/logo/{asset_id}:
|
|
5662
5903
|
parameters:
|
|
5663
5904
|
- name: Origin
|
|
@@ -6649,7 +6890,7 @@ paths:
|
|
|
6649
6890
|
get:
|
|
6650
6891
|
operationId: listMessagesInEnvironment
|
|
6651
6892
|
summary: List accepted messages with filters
|
|
6652
|
-
description: "
|
|
6893
|
+
description: "Message history with a retained-content snippet. q searches retained text or an exact message or subscriber ID. After content expires, its message ID still finds it. Filters combine before pagination. accepted_after is inclusive; accepted_before is exclusive. Supply after or page, never both. after accepts the opaque next_after continuation; history intentionally has no total."
|
|
6653
6894
|
tags: [Administration]
|
|
6654
6895
|
security:
|
|
6655
6896
|
- clerkSession: []
|
|
@@ -6680,6 +6921,14 @@ paths:
|
|
|
6680
6921
|
required: false
|
|
6681
6922
|
schema:
|
|
6682
6923
|
$ref: "#/components/schemas/OpaqueIdentifier"
|
|
6924
|
+
- in: query
|
|
6925
|
+
name: q
|
|
6926
|
+
required: false
|
|
6927
|
+
description: Search retained message text or an exact message or subscriber ID. Expired content is found by message ID only.
|
|
6928
|
+
schema:
|
|
6929
|
+
type: string
|
|
6930
|
+
minLength: 1
|
|
6931
|
+
maxLength: 256
|
|
6683
6932
|
- in: query
|
|
6684
6933
|
name: accepted_after
|
|
6685
6934
|
required: false
|
|
@@ -6695,6 +6944,19 @@ paths:
|
|
|
6695
6944
|
required: false
|
|
6696
6945
|
schema:
|
|
6697
6946
|
$ref: "#/components/schemas/OpaqueIdentifier"
|
|
6947
|
+
- in: query
|
|
6948
|
+
name: category_key
|
|
6949
|
+
required: false
|
|
6950
|
+
description: Match the category key captured when the message was accepted.
|
|
6951
|
+
schema:
|
|
6952
|
+
$ref: "#/components/schemas/MessageCategoryKey"
|
|
6953
|
+
- in: query
|
|
6954
|
+
name: no_category
|
|
6955
|
+
required: false
|
|
6956
|
+
description: Match messages accepted before categories were recorded. Cannot be true with category_key.
|
|
6957
|
+
schema:
|
|
6958
|
+
type: boolean
|
|
6959
|
+
default: false
|
|
6698
6960
|
- in: query
|
|
6699
6961
|
name: state
|
|
6700
6962
|
required: false
|
|
@@ -9133,6 +9395,22 @@ components:
|
|
|
9133
9395
|
schema:
|
|
9134
9396
|
$ref: "#/components/schemas/DiagnosticId"
|
|
9135
9397
|
schemas:
|
|
9398
|
+
MessageCategoryKey:
|
|
9399
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/MessageCategoryKey
|
|
9400
|
+
MessageCategory:
|
|
9401
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/MessageCategory
|
|
9402
|
+
MessageCategoryCollection:
|
|
9403
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/MessageCategoryCollection
|
|
9404
|
+
CreateMessageCategoryRequest:
|
|
9405
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/CreateMessageCategoryRequest
|
|
9406
|
+
UpdateMessageCategoryRequest:
|
|
9407
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/UpdateMessageCategoryRequest
|
|
9408
|
+
SubscriberCategoryPreference:
|
|
9409
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/SubscriberCategoryPreference
|
|
9410
|
+
SubscriberCategoryPreferenceCollection:
|
|
9411
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/SubscriberCategoryPreferenceCollection
|
|
9412
|
+
SetSubscriberCategoryPreferenceRequest:
|
|
9413
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/SetSubscriberCategoryPreferenceRequest
|
|
9136
9414
|
WhoAmI:
|
|
9137
9415
|
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/WhoAmI
|
|
9138
9416
|
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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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",
|