{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://gravitee.io/schemas/gravitee/plan.json",
  "title": "Gravitee Plan",
  "description": "Represents an API plan in the Gravitee platform that defines access tiers, security policies, and rate limits for API consumers.",
  "type": "object",
  "required": ["name", "security"],
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the plan."
    },
    "name": {
      "type": "string",
      "description": "Name of the plan.",
      "minLength": 1
    },
    "description": {
      "type": "string",
      "description": "Description of the plan and its access tier."
    },
    "security": {
      "type": "string",
      "description": "Security type required for consumers using this plan.",
      "enum": ["KEY_LESS", "API_KEY", "OAUTH2", "JWT"]
    },
    "status": {
      "type": "string",
      "description": "Current status of the plan.",
      "enum": ["STAGING", "PUBLISHED", "CLOSED", "DEPRECATED"]
    },
    "validation": {
      "type": "string",
      "description": "Subscription validation mode - AUTO approves immediately, MANUAL requires admin approval.",
      "enum": ["AUTO", "MANUAL"]
    }
  }
}
