{
  "description": "Install providers, generate and describe clusters, and move Cluster API objects with clusterctl. Upgrade, delete and other commands are left out.",
  "name": "clusterctl",
  "subcommands": [
    {
      "name": "init",
      "description": "Install providers",
      "options": [
        {
          "names": [
            "--infrastructure"
          ],
          "description": "e.g. aws or aws:v0.4.1.",
          "args": {
            "name": "infrastructure",
            "description": "e.g. aws or aws:v0.4.1.",
            "isOptional": false
          }
        },
        {
          "names": [
            "--core"
          ],
          "description": "Core provider",
          "args": {
            "name": "core",
            "isOptional": false
          }
        },
        {
          "names": [
            "--bootstrap"
          ],
          "description": "Bootstrap provider",
          "args": {
            "name": "bootstrap",
            "isOptional": false
          }
        },
        {
          "names": [
            "--control-plane"
          ],
          "description": "Control plane provider",
          "args": {
            "name": "control_plane",
            "isOptional": false
          }
        },
        {
          "names": [
            "--target-namespace"
          ],
          "description": "Target namespace",
          "args": {
            "name": "target_namespace",
            "isOptional": false
          }
        }
      ]
    },
    {
      "name": "generate",
      "subcommands": [
        {
          "name": "cluster",
          "description": "Generate a cluster manifest",
          "options": [
            {
              "names": [
                "--kubernetes-version"
              ],
              "description": "Kubernetes version",
              "args": {
                "name": "kubernetes_version",
                "isOptional": false
              }
            },
            {
              "names": [
                "--control-plane-machine-count"
              ],
              "description": "Control plane machines",
              "args": {
                "name": "control_plane_count",
                "isOptional": false
              }
            },
            {
              "names": [
                "--worker-machine-count"
              ],
              "description": "Worker machines",
              "args": {
                "name": "worker_count",
                "isOptional": false
              }
            },
            {
              "names": [
                "--infrastructure"
              ],
              "description": "Infrastructure provider",
              "args": {
                "name": "infrastructure",
                "isOptional": false
              }
            },
            {
              "names": [
                "--flavor"
              ],
              "description": "Template flavor",
              "args": {
                "name": "flavor",
                "isOptional": false
              }
            },
            {
              "names": [
                "--from"
              ],
              "description": "URL or local file path of a cluster template.",
              "args": {
                "name": "from",
                "description": "URL or local file path of a cluster template.",
                "isOptional": false
              }
            },
            {
              "names": [
                "--target-namespace"
              ],
              "description": "Target namespace",
              "args": {
                "name": "target_namespace",
                "isOptional": false
              }
            },
            {
              "names": [
                "--list-variables"
              ],
              "description": "List template variables"
            }
          ],
          "args": [
            {
              "name": "name",
              "isOptional": false
            }
          ]
        }
      ]
    },
    {
      "name": "describe",
      "subcommands": [
        {
          "name": "cluster",
          "description": "Describe a cluster",
          "options": [
            {
              "names": [
                "--grouping"
              ],
              "description": "Group identical machines"
            },
            {
              "names": [
                "--grouping=false"
              ],
              "description": "Group identical machines"
            },
            {
              "names": [
                "--echo"
              ],
              "description": "Show infrastructure and bootstrap objects"
            },
            {
              "names": [
                "--show-conditions"
              ],
              "description": "Comma separated kind or kind/name list.",
              "args": {
                "name": "show_conditions",
                "description": "Comma separated kind or kind/name list.",
                "isOptional": false
              }
            }
          ],
          "args": [
            {
              "name": "name",
              "isOptional": false
            }
          ]
        }
      ]
    },
    {
      "name": "move",
      "description": "Move Cluster API objects",
      "options": [
        {
          "names": [
            "--to-kubeconfig"
          ],
          "description": "Target kubeconfig",
          "args": {
            "name": "to_kubeconfig",
            "isOptional": false,
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--namespace"
          ],
          "description": "Namespace",
          "args": {
            "name": "namespace",
            "isOptional": false
          }
        },
        {
          "names": [
            "--to-directory"
          ],
          "description": "Export to directory",
          "args": {
            "name": "to_directory",
            "isOptional": false,
            "template": "folders"
          }
        },
        {
          "names": [
            "--from-directory"
          ],
          "description": "Import from directory",
          "args": {
            "name": "from_directory",
            "isOptional": false,
            "template": "folders"
          }
        },
        {
          "names": [
            "--dry-run"
          ],
          "description": "Dry run"
        }
      ]
    }
  ]
}
