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
View JSON Schema on GitHub

JSON Schema

whisperr-inc-behavior.schema.json Raw ↑
{
  "$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 }
      }
    }
  }
}