Whisperr, Inc. · Schema
Whisperr behavior conformance cases
CompanyCustomer RetentionChurnMarketing AutomationArtificial IntelligenceSaaSSubscriptionCustomer EngagementEvent IngestionAnalyticsCustomer DataEmail DeliveryAgents
Properties
| Name | Type | Description |
|---|---|---|
| $schema | string | |
| version | integer | |
| description | string | |
| cases | array |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/WhisperrAI/whisperr-spec/main/schemas/behavior.schema.json",
"title": "Whisperr behavior conformance cases",
"type": "object",
"required": ["version", "cases"],
"additionalProperties": false,
"properties": {
"$schema": { "type": "string" },
"version": { "type": "integer", "minimum": 1 },
"description": { "type": "string" },
"cases": {
"type": "array",
"minItems": 1,
"items": { "$ref": "#/$defs/case" }
}
},
"$defs": {
"case": {
"type": "object",
"required": ["name", "op", "scenario", "firstResponse", "recoveryResponse", "expect"],
"additionalProperties": false,
"properties": {
"name": { "type": "string", "minLength": 1 },
"op": { "enum": ["track"] },
"scenario": {
"type": "object",
"required": ["externalUserId", "eventType"],
"additionalProperties": false,
"properties": {
"externalUserId": { "type": "string", "minLength": 1 },
"eventType": { "type": "string", "minLength": 1 },
"properties": { "type": "object" }
}
},
"clientOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"maxRetries": { "type": "integer", "minimum": 0 }
}
},
"firstResponse": { "$ref": "#/$defs/response" },
"recoveryResponse": { "$ref": "#/$defs/response" },
"expect": {
"type": "object",
"required": ["errorType", "retainedAfterFirstFlush", "deliveredAfterRecovery", "retriesAfterRecovery"],
"additionalProperties": false,
"properties": {
"errorType": { "enum": ["auth", "retry_exhausted", "dropped"] },
"retainedAfterFirstFlush": { "type": "boolean" },
"deliveredAfterRecovery": { "type": "boolean" },
"retriesAfterRecovery": { "type": "boolean" },
"stableMessageIdOnRetry": { "type": "boolean" }
}
}
}
},
"response": {
"type": "object",
"required": ["classification", "status"],
"additionalProperties": false,
"properties": {
"classification": { "enum": ["ok", "auth", "retry", "drop"] },
"status": { "type": "integer", "minimum": 100, "maximum": 599 }
}
}
}
}