{
    "$defs": {
        "ansible.builtin.import_playbook": {
            "additionalProperties": false,
            "oneOf": [
                {
                    "not": {
                        "required": [
                            "import_playbook"
                        ]
                    },
                    "required": [
                        "ansible.builtin.import_playbook"
                    ]
                },
                {
                    "not": {
                        "required": [
                            "ansible.builtin.import_playbook"
                        ]
                    },
                    "required": [
                        "import_playbook"
                    ]
                }
            ],
            "patternProperties": {
                "^(ansible\\.builtin\\.)?import_playbook$": {
                    "markdownDescription": "* Includes a file with a list of plays to be executed.\n *  Files with a list of plays can only be included at the top level.\n * You cannot use this action inside a play.\n\nSee [import_playbook](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/import_playbook_module.html)",
                    "title": "Import Playbook",
                    "type": "string"
                },
                "name": {
                    "title": "Name",
                    "type": "string"
                },
                "tags": {
                    "$ref": "#/$defs/tags"
                },
                "vars": {
                    "title": "Vars",
                    "type": "object"
                },
                "when": {
                    "$ref": "#/$defs/complex_conditional",
                    "title": "When"
                }
            },
            "type": "object"
        },
        "become_method": {
            "anyOf": [
                {
                    "enum": [
                        "ansible.builtin.sudo",
                        "ansible.builtin.su",
                        "community.general.pbrun",
                        "community.general.pfexec",
                        "ansible.builtin.runas",
                        "community.general.dzdo",
                        "community.general.ksu",
                        "community.general.doas",
                        "community.general.machinectl",
                        "community.general.pmrun",
                        "community.general.sesu",
                        "community.general.sudosu"
                    ],
                    "type": "string"
                },
                {
                    "$ref": "#/$defs/full-jinja"
                },
                {
                    "pattern": "[A-Za-z0-9_\\.]+",
                    "type": "string"
                }
            ],
            "markdownDescription": "See [become](https://docs.ansible.com/ansible/latest/user_guide/become.html)",
            "title": "Become Method"
        },
        "block": {
            "properties": {
                "always": {
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/task"
                            },
                            {
                                "$ref": "#/$defs/block"
                            }
                        ]
                    },
                    "title": "Always",
                    "type": "array"
                },
                "any_errors_fatal": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Any Errors Fatal"
                },
                "become": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Become"
                },
                "become_exe": {
                    "title": "Become Exe",
                    "type": "string"
                },
                "become_flags": {
                    "title": "Become Flags",
                    "type": "string"
                },
                "become_method": {
                    "$ref": "#/$defs/become_method"
                },
                "become_user": {
                    "title": "Become User",
                    "type": "string"
                },
                "block": {
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/task"
                            },
                            {
                                "$ref": "#/$defs/block"
                            }
                        ]
                    },
                    "markdownDescription": "Blocks create logical groups of tasks. Blocks also offer ways to handle task errors, similar to exception handling in many programming languages. See [blocks](https://docs.ansible.com/ansible/latest/user_guide/playbooks_blocks.html)",
                    "title": "Block",
                    "type": "array"
                },
                "check_mode": {
                    "$ref": "#/$defs/complex_conditional",
                    "title": "Check Mode"
                },
                "collections": {
                    "items": {
                        "type": "string"
                    },
                    "title": "Collections",
                    "type": "array"
                },
                "connection": {
                    "title": "Connection",
                    "type": "string"
                },
                "debugger": {
                    "title": "Debugger",
                    "type": "string"
                },
                "delegate_facts": {
                    "title": "Delegate Facts",
                    "type": "boolean"
                },
                "delegate_to": {
                    "title": "Delegate To",
                    "type": "string"
                },
                "diff": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Diff"
                },
                "environment": {
                    "$ref": "#/$defs/environment"
                },
                "ignore_errors": {
                    "$ref": "#/$defs/ignore_errors"
                },
                "ignore_unreachable": {
                    "title": "Ignore Unreachable",
                    "type": "boolean"
                },
                "module_defaults": {
                    "title": "Module Defaults"
                },
                "name": {
                    "title": "Name",
                    "type": "string"
                },
                "no_log": {
                    "$ref": "#/$defs/templated-boolean"
                },
                "port": {
                    "$ref": "#/$defs/templated-integer"
                },
                "remote_user": {
                    "title": "Remote User",
                    "type": "string"
                },
                "rescue": {
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/task"
                            },
                            {
                                "$ref": "#/$defs/block"
                            }
                        ]
                    },
                    "title": "Rescue",
                    "type": "array"
                },
                "run_once": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Run Once"
                },
                "tags": {
                    "$ref": "#/$defs/tags",
                    "title": "Tags"
                },
                "throttle": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Throttle"
                },
                "timeout": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Timeout"
                },
                "vars": {
                    "title": "Vars",
                    "type": "object"
                },
                "when": {
                    "$ref": "#/$defs/complex_conditional",
                    "title": "When"
                }
            },
            "required": [
                "block"
            ],
            "type": "object"
        },
        "complex_conditional": {
            "oneOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "string"
                },
                {
                    "items": {
                        "anyOf": [
                            {
                                "type": "boolean"
                            },
                            {
                                "type": "string"
                            }
                        ]
                    },
                    "type": "array"
                }
            ]
        },
        "environment": {
            "anyOf": [
                {
                    "additionalProperties": {
                        "type": "string"
                    },
                    "type": "object"
                },
                {
                    "$ref": "#/$defs/full-jinja"
                }
            ],
            "title": "Environment"
        },
        "full-jinja": {
            "pattern": "^\\{[\\{%](.|[\r\n])*[\\}%]\\}$",
            "type": "string"
        },
        "ignore_errors": {
            "$ref": "#/$defs/templated-boolean",
            "markdownDescription": "See [ignore_errors](https://docs.ansible.com/ansible/latest/user_guide/playbooks_error_handling.html#ignoring-failed-commands)",
            "title": "Ignore Errors"
        },
        "no_log": {
            "$ref": "#/$defs/templated-boolean",
            "markdownDescription": "Use for protecting sensitive data. See [no_log](https://docs.ansible.com/ansible/latest/reference_appendices/logging.html)",
            "title": "no_log"
        },
        "play": {
            "additionalProperties": false,
            "allOf": [
                {
                    "not": {
                        "required": [
                            "ansible.builtin.import_playbook"
                        ]
                    }
                },
                {
                    "not": {
                        "required": [
                            "import_playbook"
                        ]
                    }
                }
            ],
            "properties": {
                "any_errors_fatal": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Any Errors Fatal"
                },
                "become": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Become"
                },
                "become_exe": {
                    "title": "Become Exe",
                    "type": "string"
                },
                "become_flags": {
                    "title": "Become Flags",
                    "type": "string"
                },
                "become_method": {
                    "$ref": "#/$defs/become_method"
                },
                "become_user": {
                    "title": "Become User",
                    "type": "string"
                },
                "check_mode": {
                    "$ref": "#/$defs/complex_conditional",
                    "title": "Check Mode"
                },
                "collections": {
                    "items": {
                        "type": "string"
                    },
                    "title": "Collections",
                    "type": "array"
                },
                "connection": {
                    "title": "Connection",
                    "type": "string"
                },
                "debugger": {
                    "title": "Debugger",
                    "type": "string"
                },
                "diff": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Diff"
                },
                "environment": {
                    "$ref": "#/$defs/environment"
                },
                "fact_path": {
                    "title": "Fact Path",
                    "type": "string"
                },
                "force_handlers": {
                    "title": "Force Handlers",
                    "type": "boolean"
                },
                "gather_facts": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Gather Facts"
                },
                "gather_subset": {
                    "items": {
                        "anyOf": [
                            {
                                "enum": [
                                    "all",
                                    "min",
                                    "all_ipv4_addresses",
                                    "all_ipv6_addresses",
                                    "apparmor",
                                    "architecture",
                                    "caps",
                                    "chroot,cmdline",
                                    "date_time",
                                    "default_ipv4",
                                    "default_ipv6",
                                    "devices",
                                    "distribution",
                                    "distribution_major_version",
                                    "distribution_release",
                                    "distribution_version",
                                    "dns",
                                    "effective_group_ids",
                                    "effective_user_id",
                                    "env",
                                    "facter",
                                    "fips",
                                    "hardware",
                                    "interfaces",
                                    "is_chroot",
                                    "iscsi",
                                    "kernel",
                                    "local",
                                    "lsb",
                                    "machine",
                                    "machine_id",
                                    "mounts",
                                    "network",
                                    "ohai",
                                    "os_family",
                                    "pkg_mgr",
                                    "platform",
                                    "processor",
                                    "processor_cores",
                                    "processor_count",
                                    "python",
                                    "python_version",
                                    "real_user_id",
                                    "selinux",
                                    "service_mgr",
                                    "ssh_host_key_dsa_public",
                                    "ssh_host_key_ecdsa_public",
                                    "ssh_host_key_ed25519_public",
                                    "ssh_host_key_rsa_public",
                                    "ssh_host_pub_keys",
                                    "ssh_pub_keys",
                                    "system",
                                    "system_capabilities",
                                    "system_capabilities_enforced",
                                    "user",
                                    "user_dir",
                                    "user_gecos",
                                    "user_gid",
                                    "user_id",
                                    "user_shell",
                                    "user_uid",
                                    "virtual",
                                    "virtualization_role",
                                    "virtualization_type"
                                ],
                                "type": "string"
                            },
                            {
                                "enum": [
                                    "!all",
                                    "!min",
                                    "!all_ipv4_addresses",
                                    "!all_ipv6_addresses",
                                    "!apparmor",
                                    "!architecture",
                                    "!caps",
                                    "!chroot,cmdline",
                                    "!date_time",
                                    "!default_ipv4",
                                    "!default_ipv6",
                                    "!devices",
                                    "!distribution",
                                    "!distribution_major_version",
                                    "!distribution_release",
                                    "!distribution_version",
                                    "!dns",
                                    "!effective_group_ids",
                                    "!effective_user_id",
                                    "!env",
                                    "!facter",
                                    "!fips",
                                    "!hardware",
                                    "!interfaces",
                                    "!is_chroot",
                                    "!iscsi",
                                    "!kernel",
                                    "!local",
                                    "!lsb",
                                    "!machine",
                                    "!machine_id",
                                    "!mounts",
                                    "!network",
                                    "!ohai",
                                    "!os_family",
                                    "!pkg_mgr",
                                    "!platform",
                                    "!processor",
                                    "!processor_cores",
                                    "!processor_count",
                                    "!python",
                                    "!python_version",
                                    "!real_user_id",
                                    "!selinux",
                                    "!service_mgr",
                                    "!ssh_host_key_dsa_public",
                                    "!ssh_host_key_ecdsa_public",
                                    "!ssh_host_key_ed25519_public",
                                    "!ssh_host_key_rsa_public",
                                    "!ssh_host_pub_keys",
                                    "!ssh_pub_keys",
                                    "!system",
                                    "!system_capabilities",
                                    "!system_capabilities_enforced",
                                    "!user",
                                    "!user_dir",
                                    "!user_gecos",
                                    "!user_gid",
                                    "!user_id",
                                    "!user_shell",
                                    "!user_uid",
                                    "!virtual",
                                    "!virtualization_role",
                                    "!virtualization_type"
                                ],
                                "type": "string"
                            }
                        ]
                    },
                    "title": "Gather Subset",
                    "type": "array"
                },
                "gather_timeout": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Gather Timeout"
                },
                "handlers": {
                    "$ref": "#/$defs/tasks"
                },
                "hosts": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "items": {
                                "type": "string"
                            },
                            "type": "array"
                        }
                    ],
                    "title": "Hosts"
                },
                "ignore_errors": {
                    "$ref": "#/$defs/ignore_errors"
                },
                "ignore_unreachable": {
                    "title": "Ignore Unreachable",
                    "type": "boolean"
                },
                "max_fail_percentage": {
                    "title": "Max Fail Percentage",
                    "type": "number"
                },
                "module_defaults": {
                    "title": "Module Defaults"
                },
                "name": {
                    "title": "Name",
                    "type": "string"
                },
                "no_log": {
                    "$ref": "#/$defs/templated-boolean"
                },
                "order": {
                    "enum": [
                        "default",
                        "sorted",
                        "reverse_sorted",
                        "reverse_inventory",
                        "shuffle"
                    ],
                    "title": "Order",
                    "type": "string"
                },
                "port": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Port"
                },
                "post_tasks": {
                    "$ref": "#/$defs/tasks"
                },
                "pre_tasks": {
                    "$ref": "#/$defs/tasks"
                },
                "remote_user": {
                    "title": "Remote User",
                    "type": "string"
                },
                "roles": {
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/play-role"
                            },
                            {
                                "type": "string"
                            }
                        ]
                    },
                    "markdownDescription": "Roles let you automatically load related vars, files, tasks, handlers, and other Ansible artifacts based on a known file structure. After you group your content in roles, you can easily reuse them and share them with other users.\n See [roles](https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html#roles)",
                    "title": "Roles",
                    "type": "array"
                },
                "run_once": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Run Once"
                },
                "serial": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/templated-integer-or-percent"
                        },
                        {
                            "items": {
                                "$ref": "#/$defs/templated-integer-or-percent"
                            },
                            "type": "array"
                        }
                    ],
                    "markdownDescription": "Integer, percentage or list of those. See [Setting the batch size with serial](https://docs.ansible.com/ansible/latest/user_guide/playbooks_strategies.html#setting-the-batch-size-with-serial)",
                    "title": "Batch size"
                },
                "strategy": {
                    "title": "Strategy",
                    "type": "string"
                },
                "tags": {
                    "$ref": "#/$defs/tags",
                    "title": "Tags"
                },
                "tasks": {
                    "$ref": "#/$defs/tasks"
                },
                "throttle": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Throttle"
                },
                "timeout": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Timeout"
                },
                "user": {
                    "title": "Remote User",
                    "type": "string"
                },
                "vars": {
                    "title": "Vars",
                    "type": "object"
                },
                "vars_files": {
                    "items": {
                        "oneOf": [
                            {
                                "type": "string"
                            },
                            {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            }
                        ]
                    },
                    "title": "Vars Files",
                    "type": [
                        "array",
                        "string",
                        "null"
                    ]
                },
                "vars_prompt": {
                    "items": {
                        "$ref": "#/$defs/vars_prompt"
                    },
                    "markdownDescription": "See [vars_prompt](https://docs.ansible.com/ansible/latest/user_guide/playbooks_prompts.html)",
                    "title": "vars_prompt",
                    "type": "array"
                },
                "when": {
                    "$ref": "#/$defs/complex_conditional",
                    "title": "When"
                }
            },
            "required": [
                "hosts"
            ],
            "title": "play",
            "type": "object"
        },
        "play-role": {
            "markdownDescription": "See [roles](https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html#roles)",
            "properties": {
                "any_errors_fatal": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Any Errors Fatal"
                },
                "become": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Become"
                },
                "become_exe": {
                    "title": "Become Exe",
                    "type": "string"
                },
                "become_flags": {
                    "title": "Become Flags",
                    "type": "string"
                },
                "become_method": {
                    "$ref": "#/$defs/become_method"
                },
                "become_user": {
                    "title": "Become User",
                    "type": "string"
                },
                "check_mode": {
                    "$ref": "#/$defs/complex_conditional",
                    "title": "Check Mode"
                },
                "collections": {
                    "items": {
                        "type": "string"
                    },
                    "title": "Collections",
                    "type": "array"
                },
                "connection": {
                    "title": "Connection",
                    "type": "string"
                },
                "debugger": {
                    "title": "Debugger",
                    "type": "string"
                },
                "delegate_to": {
                    "title": "Delegate To",
                    "type": "string"
                },
                "diff": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Diff"
                },
                "environment": {
                    "$ref": "#/$defs/environment"
                },
                "ignore_errors": {
                    "$ref": "#/$defs/ignore_errors"
                },
                "ignore_unreachable": {
                    "title": "Ignore Unreachable",
                    "type": "boolean"
                },
                "module_defaults": {
                    "title": "Module Defaults"
                },
                "name": {
                    "title": "Name",
                    "type": "string"
                },
                "no_log": {
                    "$ref": "#/$defs/templated-boolean"
                },
                "port": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Port"
                },
                "remote_user": {
                    "title": "Remote User",
                    "type": "string"
                },
                "role": {
                    "title": "Role",
                    "type": "string"
                },
                "run_once": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Run Once"
                },
                "tags": {
                    "$ref": "#/$defs/tags",
                    "title": "Tags"
                },
                "throttle": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Throttle"
                },
                "timeout": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Timeout"
                },
                "vars": {
                    "title": "Vars",
                    "type": "object"
                },
                "when": {
                    "$ref": "#/$defs/complex_conditional",
                    "title": "When"
                }
            },
            "required": [
                "role"
            ],
            "title": "play-role",
            "type": "object"
        },
        "playbook": {
            "examples": [
                "playbooks/*.yml",
                "playbooks/*.yaml"
            ],
            "items": {
                "oneOf": [
                    {
                        "$ref": "#/$defs/ansible.builtin.import_playbook"
                    },
                    {
                        "$ref": "#/$defs/play"
                    }
                ]
            },
            "title": "Ansible Playbook",
            "type": "array"
        },
        "tags": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            ],
            "title": "Tags"
        },
        "task": {
            "additionalProperties": true,
            "allOf": [
                {
                    "not": {
                        "required": [
                            "hosts"
                        ]
                    }
                },
                {
                    "not": {
                        "required": [
                            "tasks"
                        ]
                    }
                },
                {
                    "not": {
                        "required": [
                            "import_playbook"
                        ]
                    }
                },
                {
                    "not": {
                        "required": [
                            "block"
                        ]
                    }
                }
            ],
            "properties": {
                "action": {
                    "title": "Action",
                    "type": "string"
                },
                "any_errors_fatal": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Any Errors Fatal"
                },
                "args": {
                    "$ref": "#/$defs/templated-object",
                    "title": "Args"
                },
                "async": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Async"
                },
                "become": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Become"
                },
                "become_exe": {
                    "title": "Become Exe",
                    "type": "string"
                },
                "become_flags": {
                    "title": "Become Flags",
                    "type": "string"
                },
                "become_method": {
                    "$ref": "#/$defs/become_method"
                },
                "become_user": {
                    "title": "Become User",
                    "type": "string"
                },
                "changed_when": {
                    "$ref": "#/$defs/complex_conditional",
                    "markdownDescription": "See [changed_when](https://docs.ansible.com/ansible/latest/user_guide/playbooks_error_handling.html#defining-changed)",
                    "title": "Changed When"
                },
                "check_mode": {
                    "$ref": "#/$defs/complex_conditional",
                    "title": "Check Mode"
                },
                "collections": {
                    "items": {
                        "type": "string"
                    },
                    "title": "Collections",
                    "type": "array"
                },
                "connection": {
                    "title": "Connection",
                    "type": "string"
                },
                "debugger": {
                    "title": "Debugger",
                    "type": "string"
                },
                "delay": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Delay"
                },
                "delegate_facts": {
                    "title": "Delegate Facts",
                    "type": "boolean"
                },
                "delegate_to": {
                    "title": "Delegate To",
                    "type": "string"
                },
                "diff": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Diff"
                },
                "environment": {
                    "$ref": "#/$defs/environment"
                },
                "failed_when": {
                    "$ref": "#/$defs/complex_conditional",
                    "title": "Failed When"
                },
                "ignore_errors": {
                    "$ref": "#/$defs/ignore_errors"
                },
                "ignore_unreachable": {
                    "title": "Ignore Unreachable",
                    "type": "boolean"
                },
                "listen": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "items": {
                                "type": "string"
                            },
                            "type": "array"
                        }
                    ],
                    "markdownDescription": "Applies only to handlers. See [listen](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_handlers.html)",
                    "title": "Listen"
                },
                "local_action": {
                    "title": "Local Action",
                    "type": [
                        "string",
                        "object"
                    ]
                },
                "loop": {
                    "title": "Loop",
                    "type": [
                        "string",
                        "array"
                    ]
                },
                "loop_control": {
                    "title": "Loop Control"
                },
                "module_defaults": {
                    "title": "Module Defaults"
                },
                "name": {
                    "title": "Name",
                    "type": "string"
                },
                "no_log": {
                    "$ref": "#/$defs/no_log"
                },
                "notify": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "items": {
                                "type": "string"
                            },
                            "type": "array"
                        }
                    ],
                    "title": "Notify"
                },
                "poll": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Poll"
                },
                "port": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Port"
                },
                "register": {
                    "title": "Register",
                    "type": "string"
                },
                "remote_user": {
                    "title": "Remote User",
                    "type": "string"
                },
                "retries": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Retries"
                },
                "run_once": {
                    "$ref": "#/$defs/templated-boolean",
                    "title": "Run Once"
                },
                "tags": {
                    "$ref": "#/$defs/tags",
                    "title": "Tags"
                },
                "throttle": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Throttle"
                },
                "timeout": {
                    "$ref": "#/$defs/templated-integer",
                    "title": "Timeout"
                },
                "until": {
                    "$ref": "#/$defs/complex_conditional",
                    "title": "Until"
                },
                "vars": {
                    "title": "Vars",
                    "type": "object"
                },
                "when": {
                    "$ref": "#/$defs/complex_conditional",
                    "title": "When"
                },
                "with_dict": {
                    "title": "With Dict"
                },
                "with_fileglob": {
                    "title": "With Fileglob"
                },
                "with_filetree": {
                    "title": "With Filetree"
                },
                "with_first_found": {
                    "title": "With First Found"
                },
                "with_indexed_items": {
                    "title": "With Indexed Items"
                },
                "with_ini": {
                    "title": "With Ini"
                },
                "with_inventory_hostnames": {
                    "title": "With Inventory Hostnames"
                },
                "with_items": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/full-jinja"
                        },
                        {
                            "type": "array"
                        }
                    ],
                    "markdownDescription": "See [loops](https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#loops)",
                    "title": "With Items"
                },
                "with_lines": {
                    "title": "With Lines"
                },
                "with_random_choice": {
                    "title": "With Random Choice"
                },
                "with_sequence": {
                    "title": "With Sequence"
                },
                "with_subelements": {
                    "title": "With Subelements"
                },
                "with_together": {
                    "title": "With Together"
                }
            },
            "title": "task",
            "type": "object"
        },
        "tasks": {
            "$schema": "http://json-schema.org/draft-07/schema",
            "examples": [
                "tasks/*.yml",
                "handlers/*.yml"
            ],
            "items": {
                "anyOf": [
                    {
                        "$ref": "#/$defs/block"
                    },
                    {
                        "$ref": "#/$defs/task"
                    }
                ]
            },
            "title": "Ansible Tasks Schema",
            "type": [
                "array",
                "null"
            ]
        },
        "templated-boolean": {
            "oneOf": [
                {
                    "type": "boolean"
                },
                {
                    "$ref": "#/$defs/full-jinja",
                    "type": "string"
                }
            ]
        },
        "templated-integer": {
            "oneOf": [
                {
                    "type": "integer"
                },
                {
                    "$ref": "#/$defs/full-jinja",
                    "type": "string"
                }
            ]
        },
        "templated-integer-or-percent": {
            "oneOf": [
                {
                    "type": "integer"
                },
                {
                    "pattern": "^\\d+\\.?\\d*%?$",
                    "type": "string"
                },
                {
                    "$ref": "#/$defs/full-jinja",
                    "type": "string"
                }
            ]
        },
        "templated-object": {
            "oneOf": [
                {
                    "type": "object"
                },
                {
                    "$ref": "#/$defs/full-jinja",
                    "type": "string"
                }
            ]
        },
        "vars_prompt": {
            "additionalProperties": false,
            "properties": {
                "confirm": {
                    "title": "Confirm",
                    "type": "boolean"
                },
                "default": {
                    "title": "Default",
                    "type": "string"
                },
                "encrypt": {
                    "enum": [
                        "des_crypt",
                        "bsdi_crypt",
                        "bigcrypt",
                        "crypt16",
                        "md5_crypt",
                        "bcrypt",
                        "sha1_crypt",
                        "sun_md5_crypt",
                        "sha256_crypt",
                        "sha512_crypt",
                        "apr_md5_crypt",
                        "phpass",
                        "pbkdf2_digest",
                        "cta_pbkdf2_sha1",
                        "dlitz_pbkdf2_sha1",
                        "scram",
                        "bsd_nthash"
                    ],
                    "title": "Encrypt",
                    "type": "string"
                },
                "name": {
                    "title": "Name",
                    "type": "string"
                },
                "private": {
                    "default": true,
                    "title": "Private",
                    "type": "boolean"
                },
                "prompt": {
                    "title": "Prompt",
                    "type": "string"
                },
                "salt_size": {
                    "default": 8,
                    "title": "Salt Size",
                    "type": "integer"
                },
                "unsafe": {
                    "default": false,
                    "markdownDescription": "See [unsafe](https://docs.ansible.com/ansible/latest/user_guide/playbooks_prompts.html#allowing-special-characters-in-vars-prompt-values)",
                    "title": "Unsafe",
                    "type": "boolean"
                }
            },
            "required": [
                "name",
                "prompt"
            ],
            "type": "object"
        }
    },
    "$id": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible.json",
    "$schema": "http://json-schema.org/draft-07/schema",
    "additionalProperties": false,
    "examples": [],
    "title": "Ansible Schemas Bundle 22.4",
    "properties": {
        "$defs.ansible.builtin.import_playbook": {
            "$ref": "#/$defs/ansible.builtin.import_playbook"
        },
        "$defs.become_method": {
            "$ref": "#/$defs/become_method"
        },
        "$defs.block": {
            "$ref": "#/$defs/block"
        },
        "$defs.complex_conditional": {
            "$ref": "#/$defs/complex_conditional"
        },
        "$defs.environment": {
            "$ref": "#/$defs/environment"
        },
        "$defs.full-jinja": {
            "$ref": "#/$defs/full-jinja"
        },
        "$defs.ignore_errors": {
            "$ref": "#/$defs/ignore_errors"
        },
        "$defs.no_log": {
            "$ref": "#/$defs/no_log"
        },
        "$defs.play": {
            "$ref": "#/$defs/play"
        },
        "$defs.play-role": {
            "$ref": "#/$defs/play-role"
        },
        "$defs.playbook": {
            "$ref": "#/$defs/playbook"
        },
        "$defs.tags": {
            "$ref": "#/$defs/tags"
        },
        "$defs.task": {
            "$ref": "#/$defs/task"
        },
        "$defs.tasks": {
            "$ref": "#/$defs/tasks"
        },
        "$defs.templated-boolean": {
            "$ref": "#/$defs/templated-boolean"
        },
        "$defs.templated-integer": {
            "$ref": "#/$defs/templated-integer"
        },
        "$defs.templated-integer-or-percent": {
            "$ref": "#/$defs/templated-integer-or-percent"
        },
        "$defs.templated-object": {
            "$ref": "#/$defs/templated-object"
        },
        "$defs.vars_prompt": {
            "$ref": "#/$defs/vars_prompt"
        }
    },
    "required": [
        "$defs.ansible.builtin.import_playbook",
        "$defs.become_method",
        "$defs.block",
        "$defs.complex_conditional",
        "$defs.environment",
        "$defs.full-jinja",
        "$defs.ignore_errors",
        "$defs.no_log",
        "$defs.play",
        "$defs.play-role",
        "$defs.playbook",
        "$defs.tags",
        "$defs.task",
        "$defs.tasks",
        "$defs.templated-boolean",
        "$defs.templated-integer",
        "$defs.templated-integer-or-percent",
        "$defs.templated-object",
        "$defs.vars_prompt"
    ]
}