{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/telnyx/main/json-schema/telnyx-create-assistant-test-request-schema.json",
  "title": "CreateAssistantTestRequest",
  "description": "Request model for creating a new assistant test.\n\nThis model defines all the required and optional parameters needed to create\na comprehensive test for an AI assistant, including test configuration,\nevaluation criteria, and scheduling options.",
  "x-generated": "2026-10-08",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/telnyx-assistants-api-openapi.yml#/components/schemas/CreateAssistantTestRequest",
  "properties": {
    "description": {
      "description": "Optional detailed description of what this test evaluates and its purpose. Helps team members understand the test's objectives.",
      "maxLength": 1000,
      "title": "Description",
      "type": "string"
    },
    "destination": {
      "description": "The target destination for the test conversation. Format depends on the channel: phone number for SMS/voice, webhook URL for web chat, etc.",
      "minLength": 1,
      "title": "Destination",
      "type": "string"
    },
    "instructions": {
      "description": "Detailed instructions that define the test scenario and what the assistant should accomplish. This guides the test execution and evaluation.",
      "maxLength": 5000,
      "minLength": 1,
      "title": "Instructions",
      "type": "string"
    },
    "max_duration_seconds": {
      "description": "Maximum duration in seconds that the test conversation should run before timing out. If not specified, uses system default timeout.",
      "maximum": 3600.0,
      "minimum": 1.0,
      "title": "Max Duration Seconds",
      "type": "integer"
    },
    "name": {
      "description": "A descriptive name for the assistant test. This will be used to identify the test in the UI and reports.",
      "maxLength": 255,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "rubric": {
      "description": "Evaluation criteria used to assess the assistant's performance. Each rubric item contains a name and specific criteria for evaluation.",
      "items": {
        "additionalProperties": false,
        "properties": {
          "criteria": {
            "description": "Specific guidance on how to assess the assistant’s performance for this rubric item.",
            "type": "string"
          },
          "name": {
            "description": "Label for the evaluation criterion, e.g., Empathy, Accuracy, Clarity.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "criteria"
        ],
        "type": "object"
      },
      "minItems": 1,
      "title": "Rubric",
      "type": "array"
    },
    "telnyx_conversation_channel": {
      "allOf": [
        {
          "$ref": "#/$defs/TelnyxConversationChannel"
        }
      ],
      "default": "web_chat",
      "description": "The communication channel through which the test will be conducted. Determines how the assistant will receive and respond to test messages."
    },
    "test_suite": {
      "description": "Optional test suite name to group related tests together. Useful for organizing tests by feature, team, or release cycle.",
      "maxLength": 100,
      "title": "Test Suite",
      "type": "string"
    }
  },
  "required": [
    "name",
    "destination",
    "instructions",
    "rubric"
  ],
  "type": "object",
  "$defs": {
    "TelnyxConversationChannel": {
      "enum": [
        "phone_call",
        "web_call",
        "sms_chat",
        "web_chat"
      ],
      "title": "TelnyxConversationChannel",
      "type": "string"
    }
  }
}