{
  "description": "Manage libvirt guest domains with virsh: list, start and gracefully shut down. The connect URI is a global option. virt-admin and virt-host-validate are left out.",
  "options": [
    {
      "names": [
        "--connect",
        "-c"
      ],
      "description": "For example qemu:///system or qemu:///session.",
      "args": {
        "name": "connect",
        "description": "For example qemu:///system or qemu:///session.",
        "isOptional": false,
        "suggestions": [
          {
            "name": "qemu:///system",
            "description": "QEMU system"
          },
          {
            "name": "qemu:///session",
            "description": "QEMU session"
          }
        ]
      }
    },
    {
      "names": [
        "--readonly",
        "-r"
      ],
      "description": "Read-only connection"
    },
    {
      "names": [
        "--quiet",
        "-q"
      ],
      "description": "Quiet"
    }
  ],
  "name": "virsh",
  "aliases": [
    "virt-admin",
    "virt-host-validate"
  ],
  "subcommands": [
    {
      "name": "list",
      "description": "Print information about domains; running ones by default.",
      "options": [
        {
          "names": [
            "--all"
          ],
          "description": "All domains"
        },
        {
          "names": [
            "--inactive"
          ],
          "description": "Inactive only"
        },
        {
          "names": [
            "--name"
          ],
          "description": "Names only"
        },
        {
          "names": [
            "--uuid"
          ],
          "description": "Show UUIDs"
        },
        {
          "names": [
            "--title"
          ],
          "description": "Show titles"
        },
        {
          "names": [
            "--autostart"
          ],
          "description": "Autostart only"
        }
      ]
    },
    {
      "name": "start",
      "description": "Start a previously defined inactive domain.",
      "options": [
        {
          "names": [
            "--console"
          ],
          "description": "Attach to console"
        },
        {
          "names": [
            "--paused"
          ],
          "description": "Start paused"
        },
        {
          "names": [
            "--force-boot"
          ],
          "description": "Discards any managedsave state.",
          "isDangerous": true
        }
      ],
      "args": [
        {
          "name": "domain",
          "description": "Domain name or UUID.",
          "isOptional": true
        }
      ]
    },
    {
      "name": "shutdown",
      "description": "Gracefully shut down a domain; there is no guarantee it succeeds.",
      "options": [
        {
          "names": [
            "--mode"
          ],
          "description": "Comma-separated list of methods to try.",
          "args": {
            "name": "mode",
            "description": "Comma-separated list of methods to try.",
            "isOptional": false,
            "suggestions": [
              {
                "name": "acpi",
                "description": "ACPI"
              },
              {
                "name": "agent",
                "description": "Guest agent"
              },
              {
                "name": "initctl",
                "description": "initctl"
              },
              {
                "name": "signal",
                "description": "Signal"
              },
              {
                "name": "paravirt",
                "description": "Paravirt"
              }
            ]
          }
        }
      ],
      "args": [
        {
          "name": "domain",
          "description": "Domain name or UUID.",
          "isOptional": true
        }
      ]
    }
  ]
}
