diff --git a/examples/inventory_script_schema.json b/examples/inventory_script_schema.json new file mode 100644 index 0000000000..c68b7f8270 --- /dev/null +++ b/examples/inventory_script_schema.json @@ -0,0 +1,53 @@ +{ + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Ansible Inventory", + "description" : "Ansible Inventory for the script inventory plugin", + "type": "object", + "patternProperties": { + "^\\w$":{ + "type": "object", + "properties": { + "hosts": { + "description" : "list of hosts that are part of this group", + "type": "array", + "items": { "type": "string" } + }, + "vars": { + "type": "object", + "description": "Variables to assign to hosts that are part of this group" , + "patternProperties": { + "^\\w$":{ "type": "object", "description" : "Vars for this hosts in this group" } + } + }, + "children": { + "description" : "list of groups that are children of this group, their hosts will be added to this group", + "type": "array", + "items": { "type": "string" } + } + }, + "additionalProperties": false + }, + "_meta":{ + "type": "object", + "description" : "Key that avoids calling the script per host", + "required": ["hostvars"], + "properties": { + "hostvars": { + "type": "object", + "description" : "Each key is a hostname and the value is a dictionary of the variables for that host", + "patternProperties": { + "^\\w$":{ + "type": "object", + "description" : "Hosts with their associated vars", + "patternProperties": { + "^\\w$":{ "type": "object", "description" : "Vars for this host" } + } + } + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false +}