{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/api-evangelist/lunar-dev/blob/main/json-schema/policy.json",
  "title": "Lunar.dev Policy",
  "description": "Represents a policy configuration for the Lunar Gateway. Policies define rules for traffic management including rate limiting, quota enforcement, caching, and other controls applied to API requests passing through the gateway.",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Human-readable name for the policy."
    },
    "description": {
      "type": "string",
      "description": "Description of the policy and its purpose."
    },
    "enabled": {
      "type": "boolean",
      "description": "Whether the policy is currently active.",
      "default": true
    },
    "endpoint": {
      "type": "string",
      "description": "The target endpoint pattern this policy applies to.",
      "examples": [
        "api.example.com/v1/*"
      ]
    },
    "method": {
      "type": "string",
      "description": "HTTP method this policy applies to. If omitted, applies to all methods.",
      "examples": [
        "GET",
        "POST"
      ]
    },
    "type": {
      "type": "string",
      "description": "The type of policy to enforce.",
      "examples": [
        "rate_limit",
        "quota",
        "caching",
        "retry"
      ]
    },
    "config": {
      "type": "object",
      "description": "Policy-specific configuration parameters."
    },
    "consumer_tag": {
      "type": "string",
      "description": "Optional consumer tag to scope the policy to a specific consumer."
    }
  }
}