{
  "goctl": {
    "short": "A cli tool to generate go-zero code",
    "long": "A cli tool to generate api, zrpc, model code\n\nGitHub: https://github.com/zeromicro/go-zero\nSite:   https://go-zero.dev",
    "api": {
      "short": "Generate api related files",
      "o": "Output a sample api file",
      "home": "{{.global.home}}",
      "remote": "{{.global.remote}}",
      "branch": "{{.global.branch}}",
      "api": "The api file",
      "dir": "The target dir",
      "dart": {
        "short": "Generate dart files for provided api in api file",
        "dir": "{{.goctl.api.dir}}",
        "api": "{{.goctl.api.api}}",
        "legacy": "Legacy generator for flutter v1",
        "hostname": "hostname of the server",
        "scheme": "scheme of the server"
      },
      "doc": {
        "short": "Generate doc files",
        "dir": "{{.goctl.api.dir}}",
        "o": "The output markdown directory"
      },
      "format": {
        "short": "Format api files",
        "dir": "{{.goctl.api.dir}}",
        "iu": "Ignore update",
        "stdin": "Use stdin to input api doc content, press \"ctrl + d\" to send EOF",
        "declare": "Use to skip check api types already declare"
      },
      "go": {
        "short": "Generate go files for provided api in api file",
        "dir": "{{.goctl.api.dir}}",
        "api": "{{.goctl.api.api}}",
        "home": "{{.global.home}}",
        "remote": "{{.global.remote}}",
        "branch": "{{.global.branch}}",
        "style": "{{.global.style}}"
      },
      "new": {
        "short": "Fast create api service",
        "Example": "goctl api new [options] service-name",
        "home": "{{.global.home}}",
        "remote": "{{.global.remote}}",
        "branch": "{{.global.branch}}",
        "style": "{{.global.style}}"
      },
      "validate": {
        "short": "Validate api file",
        "api": "{{.goctl.api.api}}"
      },
      "kt": {
        "short": "Generate kotlin code for provided api file",
        "dir": "{{.goctl.api.dir}}",
        "api": "{{.goctl.api.api}}",
        "pkg": "Define package name for kotlin file"
      },
      "plugin": {
        "short": "Custom file generator",
        "plugin": "The plugin file",
        "dir": "{{.goctl.api.dir}}",
        "api": "{{.goctl.api.api}}",
        "style": "{{.global.style}}"
      },
      "ts": {
        "short": "Generate ts files for provided api in api file",
        "dir": "{{.goctl.api.dir}}",
        "api": "{{.goctl.api.api}}",
        "caller": "The web api caller",
        "unwrap": "Unwrap the webapi caller for import"
      }
    },
    "bug": {
      "short": "Report a bug"
    },
    "docker": {
      "short": "Generate Dockerfile",
      "exe": "The executable name in the built image",
      "go": "The file that contains main function",
      "base": "The base image to build the docker image, default scratch",
      "port": "The port to expose, default none",
      "home": "{{.global.home}}",
      "remote": "{{.global.remote}}",
      "branch": "{{.global.branch}}",
      "version": "The goctl builder golang image version",
      "tz": "The timezone of the container"
    },
    "kube": {
      "short": "Generate kubernetes files",
      "deploy": {
        "short": "Generate deployment yaml file",
        "name": "The name of deployment (required)",
        "namespace": "The namespace of deployment (required)",
        "image": "The docker image of deployment (required)",
        "secret": "The secret to image pull from registry",
        "requestCpu": "The request cpu to deploy",
        "requestMem": "The request memory to deploy",
        "limitCpu": "The limit cpu to deploy",
        "limitMem": "The limit memory to deploy",
        "o": "The output yaml file (required)",
        "replicas": "The number of replicas to deploy",
        "revisions": "The number of revision history to limit",
        "port": "The port of the deployment to listen on pod (required)",
        "nodePort": "The nodePort of the deployment to expose",
        "targetPort": "The targetPort of the deployment, default to port",
        "minReplicas": "The min replicas to deploy",
        "maxReplicas": "The max replicas to deploy",
        "imagePullPolicy": "The image pull policy of the deployment, default to IfNotPresent",
        "home": "{{.global.home}}",
        "remote": "{{.global.remote}}",
        "branch": "{{.global.branch}}",
        "serviceAccount": "TheServiceAccount for the deployment"
      }
    },
    "env": {
      "short": "Check or edit goctl environment",
      "write": "Edit goctl environment",
      "force": "Silent installation of non-existent dependencies",
      "verbose": "Enable log output",
      "install": {
        "short": "Goctl env installation"
      },
      "check": {
        "short": "Detect goctl env and dependency tools",
        "install": "Install dependencies if not found"
      }
    },
    "gateway": {
      "short": "gateway is a tool to generate gateway code",
      "home": "{{.global.home}}",
      "remote": "{{.global.remote}}",
      "branch": "{{.global.branch}}",
      "dir": "The output dir",
      "protoc": {
        "short": "generate gateway code from proto file"
      },
      "protoset": {
        "short": "generate gateway code from protoset file"
      },
      "server": {
        "short": "generate gateway code from grpc server"
      }
    },
    "model": {
      "short": "Generate model code",
      "dir": "The target dir",
      "mysql": {
        "short": "Generate mysql model",
        "strict": "Generate model in strict mode",
        "ignore-columns": "Ignore columns while creating or updating rows",
        "datasource": {
          "short": "Generate model from datasource",
          "url": "The data source of database,like \"root:password@tcp(127.0.0.1:3306)/database",
          "table": "The table or table globbing patterns in the database",
          "cache": "Generate code with cache [optional]",
          "dir": "{{.goctl.model.dir}}",
          "style": "{{.global.style}}",
          "idea": "For idea plugin [optional]",
          "home": "{{.global.home}}",
          "remote": "{{.global.remote}}",
          "branch": "{{.global.branch}}"
        },
        "ddl": {
          "short": "Generate mysql model from ddl",
          "src": "The path or path globbing patterns of the ddl",
          "dir": "{{.goctl.model.dir}}",
          "style": "{{.global.style}}",
          "cache": "Generate code with cache [optional]",
          "idea": "For idea plugin [optional]",
          "home": "{{.global.home}}",
          "remote": "{{.global.remote}}",
          "branch": "{{.global.branch}}"
        }
      },
      "pg": {
        "short": "Generate postgresql model",
        "datasource": {
          "short": "Generate model from datasource",
          "url": "The data source of database,like \"root:password@tcp(127.0.0.1:3306)/database",
          "table": "The table or table globbing patterns in the database",
          "schema": "The schema or schema globbing patterns in the database",
          "cache": "Generate code with cache [optional]",
          "dir": "{{.goctl.model.dir}}",
          "style": "{{.global.style}}",
          "idea": "For idea plugin [optional]",
          "strict": "Generate model in strict mode",
          "home": "{{.global.home}}",
          "remote": "{{.global.remote}}",
          "branch": "{{.global.branch}}"
        }
      },
      "mongo": {
        "short": "Generate mongo model",
        "type": "Specified model type name",
        "cache": "Generate code with cache [optional]",
        "easy": "Generate code with auto generated CollectionName for easy declare [optional]",
        "dir": "{{.goctl.model.dir}}",
        "style": "{{.global.style}}",
        "home": "{{.global.home}}",
        "remote": "{{.global.remote}}",
        "branch": "{{.global.branch}}"
      }
    },
    "migrate": {
      "short": "Migrate from tal-tech to zeromicro",
      "long": "Migrate is a transition command to help users migrate their projects from tal-tech to zeromicro version",
      "verbose": "Verbose enables extra logging",
      "version": "The target release version of github.com/zeromicro/go-zero to migrate"
    },
    "quickstart": {
      "short": "quickly start a project",
      "service-type": "specify the service type, supported values: [mono, micro]"
    },
    "rpc": {
      "short": "Generate rpc code",
      "o": "Output a sample proto file",
      "home": "{{.global.home}}",
      "remote": "{{.global.remote}}",
      "branch": "{{.global.branch}}",
      "new": {
        "short": "Generate rpc demo service",
        "style": "{{.global.style}}",
        "idea": "For idea plugin [optional]",
        "home": "{{.global.home}}",
        "remote": "{{.global.remote}}",
        "branch": "{{.global.branch}}",
        "verbose": "Enable log output",
        "client": "Whether to generate rpc client"
      },
      "template": {
        "short": "Generate proto template",
        "home": "{{.global.home}}",
        "remote": "{{.global.remote}}",
        "branch": "{{.global.branch}}"
      },
      "protoc": {
        "short": "Generate grpc code",
        "example": "goctl rpc protoc xx.proto --go_out=./pb --go-grpc_out=./pb --zrpc_out=.",
        "multiple": "Generated in multiple rpc service mode",
        "zrpc_out": "The zrpc output directory",
        "style": "{{.global.style}}",
        "home": "{{.global.home}}",
        "remote": "{{.global.remote}}",
        "branch": "{{.global.branch}}",
        "verbose": "Enable log output",
        "client": "Whether to generate rpc client"
      }
    },
    "template": {
      "short": "Template operation",
      "home": "The goctl home path of the template",
      "init": {
        "short": "Initialize the all templates(force update)",
        "home": "{{.goctl.template.home}}",
        "category": "The category of template, enum [api,rpc,model,docker,kube]"
      },
      "clean": {
        "short": "Clean the all cache templates",
        "home": "{{.goctl.template.home}}"
      },
      "update": {
        "short": "Update template of the target category to the latest",
        "home": "{{.goctl.template.home}}",
        "category": "{{.goctl.template.category}}"
      },
      "revert": {
        "short": "Revert the target template to the latest",
        "home": "{{.goctl.template.home}}",
        "category": "{{.goctl.template.category}}",
        "name": "The target file name of template"
      }
    },
    "upgrade": {
      "short": "Upgrade goctl to latest version"
    }
  },
  "global": {
    "home": "The goctl home path of the template, --home and --remote cannot be set at the same time, if they are, --remote has higher priority",
    "remote": "The remote git repo of the template, --home and --remote cannot be set at the same time, if they are, --remote has higher priority\nThe git repo directory must be consistent with the https://github.com/zeromicro/go-zero-template directory structure",
    "branch": "The branch of the remote repo, it does work with --remote",
    "style": "The file naming format, see [https://github.com/zeromicro/go-zero/blob/master/tools/goctl/config/readme.md]"
  }
}