{
  "description": "Create and list Hetzner Cloud servers. Boolean-valued flags that take true/false, other resources and other subcommands are left out.",
  "name": "hcloud",
  "subcommands": [
    {
      "name": "server",
      "subcommands": [
        {
          "name": "create",
          "description": "Create a server from a type and an image.",
          "options": [
            {
              "names": [
                "--name"
              ],
              "description": "Server name",
              "args": {
                "name": "name",
                "isOptional": false
              }
            },
            {
              "names": [
                "--type"
              ],
              "description": "Server type",
              "args": {
                "name": "type",
                "isOptional": false,
                "suggestions": [
                  {
                    "name": "cx22",
                    "description": "cx22"
                  }
                ]
              }
            },
            {
              "names": [
                "--image"
              ],
              "description": "Image",
              "args": {
                "name": "image",
                "isOptional": false,
                "suggestions": [
                  {
                    "name": "ubuntu-24.04",
                    "description": "ubuntu-24.04"
                  },
                  {
                    "name": "debian-12",
                    "description": "debian-12"
                  }
                ]
              }
            },
            {
              "names": [
                "--location"
              ],
              "description": "Location",
              "args": {
                "name": "location",
                "isOptional": false,
                "suggestions": [
                  {
                    "name": "fsn1",
                    "description": "fsn1"
                  },
                  {
                    "name": "nbg1",
                    "description": "nbg1"
                  },
                  {
                    "name": "hel1",
                    "description": "hel1"
                  }
                ]
              }
            },
            {
              "names": [
                "--ssh-key"
              ],
              "description": "SSH keys",
              "args": {
                "name": "ssh_key",
                "isOptional": false,
                "isVariadic": true
              },
              "isRepeatable": true
            },
            {
              "names": [
                "--firewall"
              ],
              "description": "Firewalls",
              "args": {
                "name": "firewall",
                "isOptional": false,
                "isVariadic": true
              },
              "isRepeatable": true
            },
            {
              "names": [
                "--network"
              ],
              "description": "Networks",
              "args": {
                "name": "network",
                "isOptional": false,
                "isVariadic": true
              },
              "isRepeatable": true
            },
            {
              "names": [
                "--volume"
              ],
              "description": "Volumes",
              "args": {
                "name": "volume",
                "isOptional": false,
                "isVariadic": true
              },
              "isRepeatable": true
            },
            {
              "names": [
                "--user-data-from-file"
              ],
              "description": "Cloud-init user data file",
              "args": {
                "name": "user_data",
                "isOptional": false,
                "template": "filepaths"
              }
            }
          ]
        },
        {
          "name": "list",
          "description": "List servers, optionally filtered by label selector or status.",
          "options": [
            {
              "names": [
                "--selector",
                "-l"
              ],
              "description": "Label selector",
              "args": {
                "name": "selector",
                "isOptional": false
              }
            },
            {
              "names": [
                "--status"
              ],
              "description": "Status",
              "args": {
                "name": "status",
                "isOptional": false,
                "isVariadic": true,
                "suggestions": [
                  {
                    "name": "running",
                    "description": "running"
                  },
                  {
                    "name": "off",
                    "description": "off"
                  }
                ]
              },
              "isRepeatable": true
            },
            {
              "names": [
                "--sort",
                "-s"
              ],
              "description": "Sort by",
              "args": {
                "name": "sort",
                "isOptional": false,
                "isVariadic": true
              },
              "isRepeatable": true
            }
          ]
        }
      ]
    }
  ]
}
