{
  "name": "ansible-playbook",
  "description": "Runs Ansible playbooks, executing the defined tasks on the targeted hosts",
  "options": [
    {
      "names": [
        "--ask-vault-pass"
      ],
      "description": "Ask for vault password"
    },
    {
      "names": [
        "--flush-cache"
      ],
      "description": "Clears the fact cache for every host in inventory"
    },
    {
      "names": [
        "--force-handlers"
      ],
      "description": "Run handlers even if a task fails"
    },
    {
      "names": [
        "--list-hosts"
      ],
      "description": "Outputs a list of matching hosts; does not execute"
    },
    {
      "names": [
        "--list-tags"
      ],
      "description": "List all available tags"
    },
    {
      "names": [
        "--list-tasks"
      ],
      "description": "List all tasks that would be executed"
    },
    {
      "names": [
        "--skip-tags"
      ],
      "description": "Only run plays and tasks whose tags do not match these values",
      "takes_arg": true,
      "arg": {
        "name": "tags"
      }
    },
    {
      "names": [
        "--start-at-task"
      ],
      "description": "Start the playbook at the task matching this name one-step-at-a-time",
      "takes_arg": true,
      "arg": {
        "name": "task name"
      }
    },
    {
      "names": [
        "--step"
      ],
      "description": "Execute one-step-at-a-time"
    },
    {
      "names": [
        "--syntax-check"
      ],
      "description": "Perform a syntax check on the playbook, but do not execute it"
    },
    {
      "names": [
        "--vault-id"
      ],
      "description": "Specify the vault identity to use",
      "takes_arg": true,
      "arg": {
        "name": "vault ID"
      }
    },
    {
      "names": [
        "--vault-password-file"
      ],
      "description": "Specify a vault password file",
      "takes_arg": true,
      "arg": {
        "name": "vault password file",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "--version"
      ],
      "description": "Show program's version number, config file location, configured module search path, module location and executable location"
    },
    {
      "names": [
        "--check",
        "-C"
      ],
      "description": "Don't make any changes; instead, try to predict some of the changes that may occur"
    },
    {
      "names": [
        "--diff",
        "-D"
      ],
      "description": "When changing (small) files and templates, show the differences in those files"
    },
    {
      "names": [
        "--module-path",
        "-M"
      ],
      "description": "Prepend colon-separated path(s) to module library",
      "takes_arg": true,
      "arg": {
        "name": "module path",
        "template": "folders"
      }
    },
    {
      "names": [
        "--extra-vars",
        "-e"
      ],
      "description": "Set additional variables as key=value or YAML/JSON, if filename prepend with @",
      "takes_arg": true,
      "arg": {
        "name": "extra vars"
      }
    },
    {
      "names": [
        "--forks",
        "-f"
      ],
      "description": "Specify number of parallel processes to use",
      "takes_arg": true,
      "arg": {
        "name": "forks"
      }
    },
    {
      "names": [
        "--help",
        "-h"
      ],
      "description": "Show help for ansible"
    },
    {
      "names": [
        "--inventory",
        "-i"
      ],
      "description": "Specify inventory host path or comma separated host list",
      "takes_arg": true,
      "arg": {
        "name": "inventory"
      }
    },
    {
      "names": [
        "--limit",
        "-l"
      ],
      "description": "Limit selected hosts to an additional pattern",
      "takes_arg": true,
      "arg": {
        "name": "subset"
      }
    },
    {
      "names": [
        "--tags",
        "-t"
      ],
      "description": "Only run plays and tasks tagged with these values",
      "takes_arg": true,
      "arg": {
        "name": "tags"
      }
    },
    {
      "names": [
        "--verbose",
        "-v"
      ],
      "description": "Enable verbose mode"
    },
    {
      "names": [
        "-vvv"
      ],
      "description": "Enable very verbose mode"
    },
    {
      "names": [
        "-vvvv"
      ],
      "description": "Enable connection debug mode"
    },
    {
      "names": [
        "--become-method"
      ],
      "description": "Privilege escalation method to use",
      "takes_arg": true,
      "arg": {
        "name": "become method",
        "suggestions": [
          "sudo",
          "su",
          "pbrun",
          "pfexec",
          "doas",
          "dzdo",
          "ksu",
          "runas",
          "machinectl"
        ]
      }
    },
    {
      "names": [
        "--become-user"
      ],
      "description": "Privilege escalation user to use",
      "takes_arg": true,
      "arg": {
        "name": "become user"
      }
    },
    {
      "names": [
        "--ask-become-pass",
        "-K"
      ],
      "description": "Prompt for privilege escalation password"
    },
    {
      "names": [
        "--become",
        "-b"
      ],
      "description": "Run operations with become"
    },
    {
      "names": [
        "--private-key",
        "--key-file"
      ],
      "description": "Use this fole to authenticate the connection",
      "takes_arg": true,
      "arg": {
        "name": "private key",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "--scp-extra-args"
      ],
      "description": "Extra arguments to pass to (only) scp",
      "takes_arg": true,
      "arg": {
        "name": "SCP extra args"
      }
    },
    {
      "names": [
        "--sftp-extra-args"
      ],
      "description": "Extra arguments to pass to (only) sftp",
      "takes_arg": true,
      "arg": {
        "name": "SFTP extra args"
      }
    },
    {
      "names": [
        "-ssh-extra-args"
      ],
      "description": "Extra arguments to pass to (only) ssh",
      "takes_arg": true,
      "arg": {
        "name": "SSH extra args"
      }
    },
    {
      "names": [
        "--ssh-common-args"
      ],
      "description": "Extra arguments to pass to sftp/scp/ssh",
      "takes_arg": true,
      "arg": {
        "name": "SSH common args"
      }
    },
    {
      "names": [
        "--timeout",
        "-T"
      ],
      "description": "Override the connection timeout in seconds",
      "takes_arg": true,
      "arg": {
        "name": "timeout"
      }
    },
    {
      "names": [
        "--connection",
        "-c"
      ],
      "description": "Connection type to use",
      "takes_arg": true,
      "arg": {
        "name": "connection type"
      }
    },
    {
      "names": [
        "--ask-pass",
        "-k"
      ],
      "description": "Ask for connection password"
    },
    {
      "names": [
        "--user",
        "-u"
      ],
      "description": "Connect as this user",
      "takes_arg": true,
      "arg": {
        "name": "user"
      }
    }
  ],
  "args": [
    {
      "name": "playbook",
      "description": "Playbook(s)",
      "is_variadic": true
    }
  ]
}
