{
  "name": "vela",
  "description": "A Highly Extensible Platform Engine based on Kubernetes and Open Application Model",
  "subcommands": [
    {
      "name": "show",
      "description": "Show the reference doc for component, trait or workflow types",
      "options": [
        {
          "names": [
            "-e",
            "--env"
          ],
          "description": "Specify environment name for application",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Help for show command"
        },
        {
          "names": [
            "-n",
            "--namespace"
          ],
          "description": "Specify the Kubernetes namespace to use",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        }
      ],
      "args": [
        {
          "is_variadic": true
        }
      ]
    },
    {
      "name": "env",
      "description": "Manage environments for vela applications to run",
      "subcommands": [
        {
          "name": "delete",
          "description": "Delete an environment",
          "args": [
            {
              "is_variadic": true
            }
          ]
        },
        {
          "name": "init",
          "description": "Delete an environment",
          "options": [
            {
              "names": [
                "--namespace"
              ],
              "description": "Specify K8s namespace for env",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ],
          "args": [
            {
              "is_variadic": true
            }
          ]
        },
        {
          "name": "ls",
          "aliases": [
            "list"
          ],
          "description": "List all environments for vela applications to run",
          "args": [
            {
              "is_variadic": true
            }
          ]
        },
        {
          "name": "set",
          "aliases": [
            "sw"
          ],
          "description": "Set an environment as the default one for running vela applications",
          "args": [
            {
              "is_variadic": true
            }
          ]
        }
      ]
    },
    {
      "name": "init",
      "description": "Create scaffold for vela application",
      "options": [
        {
          "names": [
            "--env",
            "-e"
          ],
          "description": "Specify environment name for application",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        },
        {
          "names": [
            "--namespace",
            "-n"
          ],
          "description": "Specify the Kubernetes namespace to use",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        },
        {
          "names": [
            "--render-only"
          ],
          "description": "Rendering vela.yaml in current dir and do not deploy"
        }
      ]
    },
    {
      "name": "up",
      "description": "Deploy one application",
      "options": [
        {
          "names": [
            "--env",
            "-e"
          ],
          "description": "The environment name for the CLI request",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        },
        {
          "names": [
            "--file",
            "-f"
          ],
          "description": "The file path for appfile or application. It could be a remote url",
          "takes_arg": true,
          "arg": {
            "name": "path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--namespace",
            "-n"
          ],
          "description": "If present, the namespace scope for this CLI request",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        },
        {
          "names": [
            "--publish-version",
            "-v"
          ],
          "description": "The publish version for deploying application",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        },
        {
          "names": [
            "--revision",
            "-r"
          ],
          "description": "The revision to use for deploying the application, if empty, the current application configuration will be used",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        }
      ],
      "args": [
        {
          "is_variadic": true
        }
      ]
    },
    {
      "name": "cluster",
      "description": "Manage Kubernetes Clusters for Continuous Delivery",
      "subcommands": [
        {
          "name": "alias",
          "description": "Alias a named cluster"
        },
        {
          "name": "detach",
          "description": "Detach managed cluster",
          "options": [
            {
              "names": [
                "--kubeconfig-path",
                "-p"
              ],
              "description": "Specify the kubeconfig path of managed cluster. If you use ocm to manage your cluster, you must set the kubeconfig-path",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "filepaths"
              }
            }
          ]
        },
        {
          "name": "join",
          "description": "Join managed cluster by kubeconfig",
          "options": [
            {
              "names": [
                "--create-namespace"
              ],
              "description": "Specifies the namespace need to create in managedCluster (default \"vela-system\")",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--name",
                "-n"
              ],
              "description": "Specify the cluster name. If empty, it will use the cluster name in config file. Default to be empty",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        },
        {
          "name": "labels",
          "description": "Manage Kubernetes Cluster Labels",
          "subcommands": [
            {
              "name": "add",
              "description": "Add labels to managed cluster"
            },
            {
              "name": "del",
              "description": "Delete labels for managed cluster"
            }
          ]
        },
        {
          "name": "list",
          "aliases": [
            "ls"
          ],
          "description": "List managed clusters"
        },
        {
          "name": "probe",
          "description": "Health probe managed cluster"
        },
        {
          "name": "rename",
          "description": "Rename managed cluster"
        }
      ]
    },
    {
      "name": "workflow",
      "description": "Operate the Workflow during Application Delivery",
      "subcommands": [
        {
          "name": "restart",
          "description": "Restart an application workflow",
          "options": [
            {
              "names": [
                "--env",
                "-e"
              ],
              "description": "Specify environment name for application",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--namespace",
                "-n"
              ],
              "description": "Specify the Kubernetes namespace to use",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        },
        {
          "name": "resume",
          "description": "Resume a suspend application workflow",
          "options": [
            {
              "names": [
                "--env",
                "-e"
              ],
              "description": "Specify environment name for application",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--namespace",
                "-n"
              ],
              "description": "Specify the Kubernetes namespace to use",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        },
        {
          "name": "rollback",
          "description": "Rollback an application workflow to the latest revision",
          "options": [
            {
              "names": [
                "--env",
                "-e"
              ],
              "description": "Specify environment name for application",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--namespace",
                "-n"
              ],
              "description": "Specify the Kubernetes namespace to use",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        },
        {
          "name": "suspend",
          "description": "Suspend an application workflow",
          "options": [
            {
              "names": [
                "--env",
                "-e"
              ],
              "description": "Specify environment name for application",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--namespace",
                "-n"
              ],
              "description": "Specify the Kubernetes namespace to use",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        },
        {
          "name": "terminate",
          "description": "Terminate an application workflow",
          "options": [
            {
              "names": [
                "--env",
                "-e"
              ],
              "description": "Specify environment name for application",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--namespace",
                "-n"
              ],
              "description": "Specify the Kubernetes namespace to use",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        }
      ]
    },
    {
      "name": "addon",
      "description": "Manage addons for extension",
      "subcommands": [
        {
          "name": "disable",
          "description": "Disable an addon",
          "options": [
            {
              "names": [
                "--force",
                "-f"
              ],
              "description": "Skip checking if applications are still using this addon"
            }
          ]
        },
        {
          "name": "enable",
          "description": "Enable an addon",
          "options": [
            {
              "names": [
                "--clusters",
                "-c"
              ],
              "description": "Specify the runtime-clusters to enable",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        },
        {
          "name": "list",
          "description": "List addons"
        },
        {
          "name": "registry",
          "description": "Manage addon registry",
          "subcommands": [
            {
              "name": "add",
              "description": "Add an addon registry",
              "options": [
                {
                  "names": [
                    "--bucket"
                  ],
                  "description": "Specify the OSS bucket name",
                  "takes_arg": true,
                  "arg": {
                    "name": "string"
                  }
                },
                {
                  "names": [
                    "--endpoint"
                  ],
                  "description": "Specify the addon registry endpoint",
                  "takes_arg": true,
                  "arg": {
                    "name": "string"
                  }
                },
                {
                  "names": [
                    "--gitToken"
                  ],
                  "description": "Specify the github repo token",
                  "takes_arg": true,
                  "arg": {
                    "name": "string"
                  }
                },
                {
                  "names": [
                    "--path"
                  ],
                  "description": "Specify the addon registry OSS path",
                  "takes_arg": true,
                  "arg": {
                    "name": "string"
                  }
                },
                {
                  "names": [
                    "--type"
                  ],
                  "description": "Specify the addon registry type",
                  "takes_arg": true,
                  "arg": {
                    "name": "string"
                  }
                }
              ]
            },
            {
              "name": "delete",
              "description": "Delete an addon registry"
            },
            {
              "name": "get",
              "description": "Get an addon registry"
            },
            {
              "name": "list",
              "description": "List addon registries"
            },
            {
              "name": "update",
              "description": "Update an addon registry",
              "options": [
                {
                  "names": [
                    "--bucket"
                  ],
                  "description": "Specify the OSS bucket name",
                  "takes_arg": true,
                  "arg": {
                    "name": "string"
                  }
                },
                {
                  "names": [
                    "--endpoint"
                  ],
                  "description": "Specify the addon registry endpoint",
                  "takes_arg": true,
                  "arg": {
                    "name": "string"
                  }
                },
                {
                  "names": [
                    "--gitToken"
                  ],
                  "description": "Specify the github repo token",
                  "takes_arg": true,
                  "arg": {
                    "name": "string"
                  }
                },
                {
                  "names": [
                    "--path"
                  ],
                  "description": "Specify the addon registry OSS path",
                  "takes_arg": true,
                  "arg": {
                    "name": "string"
                  }
                },
                {
                  "names": [
                    "--type"
                  ],
                  "description": "Specify the addon registry type",
                  "takes_arg": true,
                  "arg": {
                    "name": "string"
                  }
                }
              ]
            }
          ]
        },
        {
          "name": "status",
          "description": "Get addon status"
        },
        {
          "name": "upgrade",
          "description": "Upgrade an addon"
        }
      ]
    },
    {
      "name": "uischema",
      "aliases": [
        "ui"
      ],
      "description": "Manage UI schema for addons",
      "subcommands": [
        {
          "name": "apply",
          "description": "Apply UI schema from a file or dir"
        }
      ]
    },
    {
      "name": "def",
      "description": "Manage X-Definition for addons",
      "subcommands": [
        {
          "name": "apply",
          "description": "Apply X-Definition",
          "options": [
            {
              "names": [
                "--dry-run"
              ],
              "description": "Only build definition from CUE into CRB object without applying it to kubernetes clusters"
            },
            {
              "names": [
                "--namespace",
                "-n"
              ],
              "description": "Specify which namespace to apply. (default \"vela-system\")",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ],
          "args": [
            {
              "is_variadic": true,
              "template": "filepaths"
            }
          ]
        },
        {
          "name": "del",
          "description": "Delete X-Definition",
          "options": [
            {
              "names": [
                "--namespace",
                "-n"
              ],
              "description": "Specify which namespace to apply. (default \"vela-system\")",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--type",
                "-t"
              ],
              "description": "Specify the definition type of target. Valid types: workflow-step, component, trait, policy, workload, scope",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ],
          "args": [
            {
              "is_variadic": true,
              "template": "filepaths"
            }
          ]
        },
        {
          "name": "doc-gen",
          "description": "Generate documentation of definitions (Only Terraform typed definitions are supported)",
          "options": [
            {
              "names": [
                "--type",
                "-t"
              ],
              "description": "Specify the definition type of target. Valid types: workflow-step, component, trait, policy, workload, scope",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        },
        {
          "name": "edit",
          "description": "Edit X-Definition",
          "options": [
            {
              "names": [
                "--namespace",
                "-n"
              ],
              "description": "Specify which namespace to apply. (default \"vela-system\")",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--type",
                "-t"
              ],
              "description": "Specify the definition type of target. Valid types: workflow-step, component, trait, policy, workload, scope",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        },
        {
          "name": "get",
          "description": "Get X-Definition",
          "options": [
            {
              "names": [
                "--namespace",
                "-n"
              ],
              "description": "Specify which namespace to apply. (default \"vela-system\")",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--type",
                "-t"
              ],
              "description": "Specify the definition type of target. Valid types: workflow-step, component, trait, policy, workload, scope",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        },
        {
          "name": "init",
          "description": "Init a new definition",
          "options": [
            {
              "names": [
                "--desc",
                "-d"
              ],
              "description": "Specify the description of the new definition",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--interactive",
                "-i"
              ],
              "description": "Specify whether use interactive process to help generate definitions"
            },
            {
              "names": [
                "--git"
              ],
              "description": "Specify which git repository the configuration(HCL) is stored in. Valid when --provider/-p is set",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--local"
              ],
              "description": "Specify the local path of the configuration(HCL) file. Valid when --provider/-p is set",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--output",
                "-o"
              ],
              "description": "Specify the output path of the generated definition. If empty, the definition will be printed in the console",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--path"
              ],
              "description": "Specify which path the configuration(HCL) is stored in the Git repository. Valid when --git is set",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--provider",
                "-p"
              ],
              "description": "Specify which provider the cloud resource definition belongs to. Only alibaba, `aws`, `azure` are supported",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--template-yaml",
                "-f"
              ],
              "description": "Specify the template yaml file that definition will use to build the schema. If empty, a default template for the given definition type will be used",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--type",
                "-t"
              ],
              "description": "Specify the type of the new definition. Valid types: scope, workflow-step, component, trait, policy, workload",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        },
        {
          "name": "list",
          "description": "List X-Definition",
          "options": [
            {
              "names": [
                "--namespace",
                "-n"
              ],
              "description": "Specify which namespace to apply. (default \"vela-system\")",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--type",
                "-t"
              ],
              "description": "Specify the definition type of target. Valid types: workflow-step, component, trait, policy, workload, scope",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        },
        {
          "name": "render",
          "description": "Render X-Definition",
          "options": [
            {
              "names": [
                "--message"
              ],
              "description": "Specify the header message of the generated YAML file. For example, declaring author information",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--output",
                "-o"
              ],
              "description": "Specify the output path of the rendered definition YAML. If empty, the definition will be printed in the console. If input is a directory, the output path is expected to be a directory as well",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "folders"
              }
            }
          ]
        },
        {
          "name": "vet",
          "description": "Validate X-Definition",
          "args": [
            {
              "is_variadic": true,
              "template": "filepaths"
            }
          ]
        }
      ]
    },
    {
      "name": "registry",
      "description": "Manage Registry of X-Definitions for extension",
      "subcommands": [
        {
          "name": "config",
          "description": "Configure (add if not exist) a registry, default is local (built-in capabilities)",
          "options": [
            {
              "names": [
                "--token",
                "-t"
              ],
              "description": "Github Repo token",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        },
        {
          "name": "ls",
          "description": "List all configured registry"
        },
        {
          "name": "remove",
          "aliases": [
            "rm"
          ],
          "description": "Remove specified registry"
        }
      ]
    },
    {
      "name": "component",
      "aliases": [
        "comp",
        "components"
      ],
      "description": "List component types installed and discover more registry",
      "subcommands": [
        {
          "name": "get",
          "description": "Get component from type",
          "options": [
            {
              "names": [
                "--registry"
              ],
              "description": "Specify the registry name (default \"default\")",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--token"
              ],
              "description": "Specify token when using --url to specify registry url",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--url"
              ],
              "description": "Specify the registry url",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        }
      ],
      "options": [
        {
          "names": [
            "--discover"
          ],
          "description": "Discover more registry",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        },
        {
          "names": [
            "--label"
          ],
          "description": "A label to filter components, the format is --label type=terraform",
          "takes_arg": true,
          "arg": {
            "name": "key=value"
          }
        },
        {
          "names": [
            "--registry"
          ],
          "description": "Specify the registry name (default \"default\")",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        },
        {
          "names": [
            "--token"
          ],
          "description": "Specify token when using --url to specify registry url",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        },
        {
          "names": [
            "--url"
          ],
          "description": "Specify the registry url",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        }
      ]
    },
    {
      "name": "trait",
      "aliases": [
        "traits"
      ],
      "description": "List trait types installed and discover more in registry",
      "subcommands": [
        {
          "name": "get",
          "description": "Get trait from registry",
          "options": [
            {
              "names": [
                "--registry"
              ],
              "description": "Specify the registry name (default \"default\")",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--token"
              ],
              "description": "Specify token when using --url to specify registry url",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--url"
              ],
              "description": "Specify the registry url",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        }
      ],
      "options": [
        {
          "names": [
            "--discover"
          ],
          "description": "Discover traits in registries"
        },
        {
          "names": [
            "--registry"
          ],
          "description": "Specify the registry name (default \"default\")",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        },
        {
          "names": [
            "--token"
          ],
          "description": "Specify token when using --url to specify registry url",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        },
        {
          "names": [
            "--url"
          ],
          "description": "Specify the registry url",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        }
      ]
    },
    {
      "name": "uninstall",
      "description": "Uninstalls KubeVela from a Kubernetes cluster",
      "options": [
        {
          "names": [
            "--force",
            "-f"
          ],
          "description": "Force uninstall whole vela include all addons"
        },
        {
          "names": [
            "--detail",
            "-d"
          ],
          "description": "Show detail log of uninstall information"
        },
        {
          "names": [
            "--namespace",
            "-n"
          ],
          "description": "Namespace scope for installing KubeVela Core. (default \"vela-system\")",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        }
      ]
    },
    {
      "name": "install",
      "description": "Installs KubeVela into a Kubernetes cluster",
      "options": [
        {
          "names": [
            "--file",
            "-f"
          ],
          "description": "Custom the chart path of KubeVela control plane",
          "takes_arg": true,
          "arg": {
            "name": "path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--detail",
            "-d"
          ],
          "description": "Show detail log of install information"
        },
        {
          "names": [
            "--namespace",
            "-n"
          ],
          "description": "Namespace scope for installing KubeVela Core",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        },
        {
          "names": [
            "--reuse",
            "-r"
          ],
          "description": "Will re-use the user's last supplied values. (default true)",
          "takes_arg": true,
          "arg": {
            "name": "bool"
          }
        },
        {
          "names": [
            "--version",
            "-v"
          ],
          "description": "Specify the version of KubeVela to install",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        }
      ]
    },
    {
      "name": "completion",
      "description": "Output shell completion code for the specified shell (bash or zsh). The shell code must be evaluated to provide interactive completion of vela commands",
      "subcommands": [
        {
          "name": "bash",
          "description": "Output bash completion code"
        },
        {
          "name": "zsh",
          "description": "Output zsh completion code"
        }
      ]
    },
    {
      "name": "export",
      "description": "Export deploy manifests from appfile or application",
      "options": [
        {
          "names": [
            "--file",
            "-f"
          ],
          "description": "Specify the appfile path",
          "takes_arg": true,
          "arg": {
            "name": "path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--env",
            "-e"
          ],
          "description": "Specify environment name for application",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        },
        {
          "names": [
            "--namespace",
            "-n"
          ],
          "description": "Specify the Kubernetes namespace to use",
          "takes_arg": true,
          "arg": {
            "name": "string"
          }
        }
      ]
    },
    {
      "name": "version",
      "description": "Prints the version",
      "subcommands": [
        {
          "name": "list",
          "description": "List all available versions"
        }
      ]
    }
  ],
  "options": [
    {
      "names": [
        "--help",
        "-h"
      ],
      "description": "Show help for vela"
    }
  ]
}
