{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/ansible-playbooks/refs/heads/main/json-schema/ansible-playbooks-inventory-schema.json",
  "title": "Inventory",
  "description": "An Ansible inventory containing groups and hosts targeted by playbook execution.",
  "type": "object",
  "properties": {
    "id": {"type": "integer", "description": "Unique identifier for the inventory.", "example": 42},
    "name": {"type": "string", "description": "Human-readable name for the inventory.", "example": "Production Web Servers"},
    "description": {"type": "string", "description": "Description of the inventory and its purpose.", "example": "All production web server hosts across US-East region."},
    "organization": {"type": "integer", "description": "ID of the organization that owns this inventory.", "example": 1},
    "kind": {"type": "string", "enum": ["", "smart", "constructed"], "description": "Inventory kind — empty for standard, smart, or constructed.", "example": ""},
    "host_filter": {"type": "string", "description": "Filter expression for smart inventories.", "example": ""},
    "variables": {"type": "string", "description": "Inventory-level variables as a JSON or YAML string.", "example": "{\"ansible_user\": \"deploy\"}"},
    "total_hosts": {"type": "integer", "description": "Total number of hosts in this inventory.", "example": 24},
    "hosts_with_active_failures": {"type": "integer", "description": "Number of hosts with active failures.", "example": 0},
    "total_groups": {"type": "integer", "description": "Total number of groups in this inventory.", "example": 4},
    "has_inventory_sources": {"type": "boolean", "description": "Whether this inventory has external inventory sources.", "example": false},
    "created": {"type": "string", "format": "date-time", "description": "Timestamp when the inventory was created.", "example": "2026-01-01T00:00:00Z"},
    "modified": {"type": "string", "format": "date-time", "description": "Timestamp when the inventory was last modified.", "example": "2026-04-19T00:00:00Z"}
  },
  "required": ["id", "name", "organization"]
}
