{ "$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." } } }