{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/whistle/main/json-schema/whistle-rule-schema.json",
  "title": "Whistle Rule",
  "description": "A Whistle proxy rule that matches network requests and applies transformations.",
  "type": "object",
  "properties": {
    "pattern": {
      "type": "string",
      "description": "The pattern to match against request URLs (supports wildcards, regex, and exact match).",
      "examples": ["www.test.com", "^/api/", "*.example.com"]
    },
    "operation": {
      "type": "string",
      "description": "The operation to perform on matched requests.",
      "enum": ["file", "xfile", "tpl", "http", "https", "host", "proxy", "statusCode", "reqHeaders", "resHeaders", "resCors", "log", "weinre", "delay", "speed"]
    },
    "value": {
      "type": "string",
      "description": "The value for the operation (file path, URL, status code, header value, etc.)."
    },
    "comment": {
      "type": "string",
      "description": "Optional comment describing what this rule does."
    }
  },
  "required": ["pattern", "operation"],
  "additionalProperties": false
}
