{
  "description": "List compute servers or boot a new one. Authentication comes from clouds.yaml or OS_* environment variables; networks, volumes, images and the other resource commands are left out.",
  "name": "openstack",
  "subcommands": [
    {
      "name": "server",
      "subcommands": [
        {
          "name": "list",
          "description": "List servers",
          "options": [
            {
              "names": [
                "--name"
              ],
              "description": "Name (regex)",
              "args": {
                "name": "name",
                "isOptional": false
              }
            },
            {
              "names": [
                "--status"
              ],
              "description": "Status",
              "args": {
                "name": "status",
                "isOptional": false,
                "suggestions": [
                  {
                    "name": "ACTIVE",
                    "description": "Active"
                  },
                  {
                    "name": "SHUTOFF",
                    "description": "Shut off"
                  },
                  {
                    "name": "ERROR",
                    "description": "Error"
                  },
                  {
                    "name": "BUILD",
                    "description": "Build"
                  }
                ]
              }
            },
            {
              "names": [
                "--flavor"
              ],
              "description": "Flavor",
              "args": {
                "name": "flavor",
                "isOptional": false
              }
            },
            {
              "names": [
                "--image"
              ],
              "description": "Image",
              "args": {
                "name": "image",
                "isOptional": false
              }
            },
            {
              "names": [
                "--ip"
              ],
              "description": "IP address (regex)",
              "args": {
                "name": "ip",
                "isOptional": false
              }
            },
            {
              "names": [
                "--all-projects"
              ],
              "description": "Admin only."
            },
            {
              "names": [
                "--long"
              ],
              "description": "Extra columns"
            },
            {
              "names": [
                "--sort-column"
              ],
              "description": "Sort columns",
              "args": {
                "name": "sort_column",
                "isOptional": false,
                "isVariadic": true
              },
              "isRepeatable": true
            },
            {
              "names": [
                "--sort-descending"
              ],
              "description": "Sort descending"
            },
            {
              "names": [
                "--limit"
              ],
              "description": "Page size",
              "args": {
                "name": "limit",
                "isOptional": false
              }
            },
            {
              "names": [
                "--tags"
              ],
              "description": "Tags",
              "args": {
                "name": "tags",
                "isOptional": false,
                "isVariadic": true
              },
              "isRepeatable": true
            }
          ]
        },
        {
          "name": "create",
          "description": "Create a server",
          "options": [
            {
              "names": [
                "--flavor"
              ],
              "description": "Name or ID.",
              "args": {
                "name": "flavor",
                "description": "Name or ID.",
                "isOptional": false
              }
            },
            {
              "names": [
                "--image"
              ],
              "description": "Name or ID of the boot image.",
              "args": {
                "name": "image",
                "description": "Name or ID of the boot image.",
                "isOptional": false
              }
            },
            {
              "names": [
                "--network"
              ],
              "description": "Name or ID; repeat to create several NICs.",
              "args": {
                "name": "network",
                "description": "Name or ID; repeat to create several NICs.",
                "isOptional": false,
                "isVariadic": true
              },
              "isRepeatable": true
            },
            {
              "names": [
                "--security-group"
              ],
              "description": "Security groups",
              "args": {
                "name": "security_group",
                "isOptional": false,
                "isVariadic": true
              },
              "isRepeatable": true
            },
            {
              "names": [
                "--key-name"
              ],
              "description": "Keypair",
              "args": {
                "name": "key_name",
                "isOptional": false
              }
            },
            {
              "names": [
                "--user-data"
              ],
              "description": "User data file",
              "args": {
                "name": "user_data",
                "isOptional": false,
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--availability-zone"
              ],
              "description": "Availability zone",
              "args": {
                "name": "availability_zone",
                "isOptional": false
              }
            },
            {
              "names": [
                "--property"
              ],
              "description": "key=value; repeatable.",
              "args": {
                "name": "property",
                "description": "key=value; repeatable.",
                "isOptional": false,
                "isVariadic": true
              },
              "isRepeatable": true
            },
            {
              "names": [
                "--min"
              ],
              "description": "Minimum count",
              "args": {
                "name": "min",
                "isOptional": false
              }
            },
            {
              "names": [
                "--max"
              ],
              "description": "Maximum count",
              "args": {
                "name": "max",
                "isOptional": false
              }
            },
            {
              "names": [
                "--wait"
              ],
              "description": "Wait for build"
            }
          ],
          "args": [
            {
              "name": "server_name",
              "isOptional": true
            }
          ]
        }
      ]
    }
  ]
}
